/** * Convert from a relation to a map. * * @param relation the relation to convert * @return a map containing the relation's fields (and history is required) */ public Map<String, Object> convertRelation(Relation relation) { Map<String, Object> map = new IgnoreEmptyKeyMapDecorator<>(Maps.newHashMap()); convertFeatures(map, relation); if (outputHistory && documentHistory != null) { convertHistory(map, relation); } map.put(fields.getExternalId(), relation.getExternalId()); return map; }
private void populateJCas(JCas jCas) { jCas.setDocumentText("Eliza was born in December 1972 in Oxford"); Annotations.createTemporal(jCas, 18, 31, "December 1972"); Location oxford = Annotations.createLocation(jCas, 35, 41, "Oxford", null); Person eliza = Annotations.createPerson(jCas, 0, 5, "Eliza"); // deliberate creation of 2 identical relations Relation r1 = createRelation(jCas, oxford, eliza); Relation r2 = createRelation(jCas, oxford, eliza); // externalId is based on hash of entity properties assertEquals(r1.getExternalId(), r2.getExternalId()); assertEquals(2, JCasUtil.select(jCas, Relation.class).size()); assertEquals(1, JCasUtil.select(jCas, Person.class).size()); assertEquals(1, JCasUtil.select(jCas, Temporal.class).size()); assertEquals(1, JCasUtil.select(jCas, Location.class).size()); }
/** * Get a usable unique uid for the relation based on the properties, source and target. * * @param relation the relation to identify * @return hash * @throws BaleenException */ public static String getExternalId(Relation relation) { String[] ids = { relation.getExternalId(), relation.getSource().getExternalId(), relation.getTarget().getExternalId() }; try { return IdentityUtils.hashStrings(ids); } catch (BaleenException e) { return fallbackToUUID(e); } }
.append(fields.getExternalId(), r.getExternalId()) .append(FIELD_RELATIONSHIP_TYPE, r.getRelationshipType()) .append(FIELD_RELATIONSHIP_SUBTYPE, r.getRelationSubType())
r2.addToIndexes(jCas); assertEquals(r1.getExternalId(), r2.getExternalId()); Graph graph = GraphFactory.open(propertiesFile.getAbsolutePath()); assertTrue(graph.traversal().E(r1.getExternalId()).hasNext());
r2.addToIndexes(jCas); assertEquals(r1.getExternalId(), r2.getExternalId()); Graph graph = GraphFactory.open(propertiesFile.getAbsolutePath()); assertTrue(graph.traversal().V(r1.getExternalId()).hasNext());
assertTrue( traversal .E(r.getExternalId()) .hasLabel(RELATION) .has("relationshipType", r.getRelationshipType())
docId, BALEEN_DOC_ID, toId(r1.getExternalId()), r1.getExternalId(), r1.getRelationshipType(), r1.getRelationSubType(), docId, BALEEN_DOC_ID, toId(r2.getExternalId()), r2.getExternalId(), r2.getRelationshipType(), r2.getRelationSubType(),
assertTrue( traversal .E(r.getExternalId()) .hasLabel(RELATION) .has("relationshipType", r.getRelationshipType())
graph .traversal() .E(r.getExternalId()) .hasLabel(RELATION) .has("relationshipType", r.getRelationshipType())
assertTrue( traversal .E(r.getExternalId()) .hasLabel(RELATION) .has("relationshipType", r.getRelationshipType())
graph .traversal() .V(r.getExternalId()) .hasLabel(RELATION) .has("relationshipType", r.getRelationshipType())
assertTrue( traversal .E(r.getExternalId()) .hasLabel(RELATION) .has("relationshipType", r.getRelationshipType())