-2

N-Triples のダンプを Cypher Text に変換したいので、Neo4j データベースに直接ロードできます。rdf-syntax-ns#typeスクリプトを使用して簡単に変換できるような単純なオントロジーの場合

<http://www.foo.org/triple1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.foo.org/Human>

として簡単に変換できます。

CREATE (t1:Human { type : "triple1" })

そして、それは正確であり、私が望むとおりです。<http://www.w3.org/2002/07/owl#equivalentProperty>しかし、それがめちゃくちゃになるような複雑なものの場合.

したがって、私の質問は<http://www.w3.org/2002/07/owl#equivalentProperty>、述語として使用するトリプルを暗号テキストに変換する方法は?

4

1 に答える 1

3

RDF を Neo4J に取り込む方法の一般的な問題については、この関連する質問を参照してください。

具体的にはequivalentProperty、ここで混乱している理由はequivalentProperty、モデル自体を参照する「メタ」ステートメントであるためです。つまり、この場合、データではなくプロパティに関するステートメントを作成しています。Neo4J では、データベースに明示的なモデルはありません (これが時間の経過とともに変化することを期待していますが、現時点ではそのようになっています)。したがって、プロパティ自体について一般的に話すことはできません。おそらく最善の策は、そのプロパティ メタデータの代わりになる新しい種類のノードを作成することです。

たとえば、RDF がある場合:

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#equivalentProperty> <http://my-ns.org/vocab#foobar>

次に、それを次のように変換できます。

MERGE (p1:Property { ns: "http://www.w3.org/1999/02/22-rdf-syntax-ns#", name:"type" },
      (p2:Property { ns: "http://my-ns.org/vocab#", name: "foobar" }),
      (p1)-[:equivalentProperty]->(p2);

これが機能する理由は:Property、プロパティ メタデータを現実のものにするノードを作成しているためです。neo4j ではデフォルトではそれが得られませんが、RDF では、これらのプロパティが独自の URI を持っているという事実により、それらは RDF の「ノード」です。

于 2014-12-23T20:51:04.943 に答える