private void populateJCas(JCas jCas) { jCas.setDocumentText("Eliza was born in December 1972 in Oxford"); Annotations.createTemporal(jCas, 18, 31, "December 1972"); Annotations.createLocation(jCas, 35, 41, "Oxford", null); // deliberate creation of 2 identical people Person eliza1 = Annotations.createPerson(jCas, 0, 5, "Eliza"); Person eliza2 = Annotations.createPerson(jCas, 0, 5, "Eliza"); // externalId is based on hash of entity properties assertEquals(eliza1.getExternalId(), eliza2.getExternalId()); assertEquals(2, JCasUtil.select(jCas, Person.class).size()); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); assertEquals(1, JCasUtil.select(jCas, Location.class).size()); } }
@Test public void testDocumentGraphConsumerCanCopeWithSameEntityExternalId() throws AnalysisEngineProcessException, ResourceInitializationException, IOException, URISyntaxException { properties.setProperty( TinkerGraph.GREMLIN_TINKERGRAPH_DEFAULT_VERTEX_PROPERTY_CARDINALITY, VertexProperty.Cardinality.list.name()); writeProperties(); Person p1 = Annotations.createPerson(jCas, 0, 4, "test"); Person p2 = Annotations.createPerson(jCas, 0, 4, "test"); assertEquals(p1.getExternalId(), p2.getExternalId()); processJCas( DocumentGraphConsumer.PARAM_GRAPH_CONFIG, propertiesFile.getAbsolutePath(), DocumentGraphConsumer.PARAM_OUTPUT_RELATIONS_AS_LINKS, true); Graph graph = GraphFactory.open(propertiesFile.getAbsolutePath()); assertTrue(graph.traversal().V(p1.getExternalId()).hasNext()); }
docId, BALEEN_DOC_ID, toId(e1.getExternalId()), e1.getExternalId(), toId(rt1.getExternalId()), rt1.getExternalId(), docId, BALEEN_DOC_ID, toId(e2.getExternalId()), e2.getExternalId(), toId(rt1.getExternalId()), rt1.getExternalId(), docId, BALEEN_DOC_ID, toId(e3.getExternalId()), e3.getExternalId(), toId(rt2.getExternalId()), rt2.getExternalId(),
graph .traversal() .V(r.getExternalId()) .hasLabel(MENTION) .has("type", Person.class.getSimpleName())
graph .traversal() .V(r.getExternalId()) .hasLabel(MENTION) .has("type", Person.class.getSimpleName())
assertEquals(p.getType().getShortName(), relation.get(FIELD_SOURCE_TYPE)); assertEquals(p.getType().getName(), relation.get(FIELD_SOURCE_TYPE_FULL)); assertEquals(p.getExternalId(), relation.get(FIELD_SOURCE)); assertEquals(l.getValue(), relation.get(FIELD_TARGET_VALUE)); assertEquals(l.getType().getShortName(), relation.get(FIELD_TARGET_TYPE));