use of de.tudarmstadt.ukp.clarin.webanno.tsv.internal.tsv3x.model.TsvDocument in project webanno by webanno.
the class WebannoTsv3XWriter method process.
@Override
public void process(JCas aJCas) throws AnalysisEngineProcessException {
TsvSchema schema = Tsv3XCasSchemaAnalyzer.analyze(aJCas.getTypeSystem());
TsvDocument doc = Tsv3XCasDocumentBuilder.of(schema, aJCas);
try (PrintWriter docOS = new PrintWriter(new OutputStreamWriter(getOutputStream(aJCas, filenameSuffix), encoding))) {
new Tsv3XSerializer().write(docOS, doc);
} catch (IOException e) {
throw new AnalysisEngineProcessException(e);
}
}
use of de.tudarmstadt.ukp.clarin.webanno.tsv.internal.tsv3x.model.TsvDocument in project webanno by webanno.
the class Tsv3XSerializerTest method testRelation.
@Test
public void testRelation() throws Exception {
// Create test document
JCas cas = makeJCasOneSentence("This is a test .");
List<Token> tokens = new ArrayList<>(select(cas, Token.class));
Dependency dep = new Dependency(cas);
dep.setGovernor(tokens.get(0));
dep.setDependent(tokens.get(1));
dep.setDependencyType("dep");
dep.setBegin(dep.getDependent().getBegin());
dep.setEnd(dep.getDependent().getEnd());
dep.addToIndexes();
// Set up TSV schema
TsvSchema schema = new TsvSchema();
Type dependencyType = cas.getCasType(Dependency.type);
schema.addColumn(new TsvColumn(dependencyType, LayerType.RELATION, "DependencyType", FeatureType.PRIMITIVE));
schema.addColumn(new TsvColumn(dependencyType, LayerType.RELATION, "Governor", FeatureType.RELATION_REF));
// Convert test document content to TSV model
TsvDocument doc = Tsv3XCasDocumentBuilder.of(schema, cas);
doc.getSentences().get(0).getTokens().get(1).addUimaAnnotation(dep, false);
assertEquals(join(asList("1-1\t0-4\tThis\t_\t_\t", "1-2\t5-7\tis\tdep\t1-1\t"), "\n"), join(asList(doc.getToken(0, 0), doc.getToken(0, 1)), "\n"));
String expectedSentence = "#Text=This is a test .\n" + "1-1\t0-4\tThis\t_\t_\t\n" + "1-2\t5-7\tis\tdep\t1-1\t\n" + "1-3\t8-9\ta\t_\t_\t\n" + "1-4\t10-14\ttest\t_\t_\t\n" + "1-5\t15-16\t.\t_\t_\t\n";
assertEquals(expectedSentence, doc.getSentences().get(0).toString());
}
use of de.tudarmstadt.ukp.clarin.webanno.tsv.internal.tsv3x.model.TsvDocument in project webanno by webanno.
the class Tsv3XSerializer method write.
public void write(PrintWriter aOut, TsvUnit aUnit) {
TsvDocument doc = aUnit.getDocument();
// Write unit ID
aOut.print(aUnit.getId());
aOut.print(FIELD_SEPARATOR);
// Write unit offset
aOut.printf("%d-%d", aUnit.getBegin(), aUnit.getEnd());
aOut.print(FIELD_SEPARATOR);
// Write unit text
aOut.print(doc.getJCas().getDocumentText().substring(aUnit.getBegin(), aUnit.getEnd()));
aOut.printf(FIELD_SEPARATOR);
// Write the remaining columns according to the schema definition
for (TsvColumn col : doc.getSchema().getHeaderColumns(doc.getActiveColumns())) {
// Write all the values in this column - there could be multiple due to stacking
writeValues(aOut, aUnit, col);
aOut.printf(FIELD_SEPARATOR);
}
}
Aggregations