将owl文件映射到neo4j – getOrCreateNodeWithUniqueFactory方法

我尝试将一个本体(* .owl文件)移动到neo4jneo4j进行查询。 我在这里找到了一些有用的信息,但我面临的问题是:

 Node thingNode = getOrCreateNodeWithUniqueFactory("owl:Thing"); 

我不知道“ getOrCreateNodeWithUniqueFactory ”属于哪个类。 这可以在某些库中使用,还是应该由我自己实现?

我在这里想念的是什么?

有几种方法可以创建唯一的节点。 最简单的方法是使用在http://docs.neo4j.org/chunked/milestone/tutorials-java-embedded-unique-nodes.html#tutorials-java-embedded-unique-get下的Neo4j文档中看到的UniqueFactory。 – 或 – 与工厂创建 。 另一个是使用密码约束(参见: http : //components.neo4j.org/neo4j/2.0.0/apidocs/org/neo4j/graphdb/event/TransactionEventHandler.html )。 最后,可以将创建的节点存储在地图中(通过TransactionEventHandler ),然后在创建新节点之前查找它。 使用owl,将IRI作为键输入并将创建的节点的id作为值输入是有意义的。 这种方式比独特的工厂更快但更明智。

我实现了方法:getOrCreateNodeWithUniqueFactory

 private static Node getOrCreateNodeWithUniqueFactory(String nodeName, GraphDatabaseService graphDb) { UniqueFactory factory = new UniqueFactory.UniqueNodeFactory( graphDb, "index") { @Override protected void initialize(Node created, Map properties) { created.setProperty("name", properties.get("name")); } }; return factory.getOrCreate("name", nodeName); }