おそらくこれには簡単に答えることができますが、私はそれを見つけるためにGoogleクエリを定式化する方法を見つけられません。SPARQLの構築クエリで空ノードを再帰的に展開するには?
私は空のノードを含むデータセットに対してSPARQL構文を作成しています。私は
CONSTRUCT {?x ?y ?z .} WHERE {?x ?y ?z .}
のようなクエリを行うのであれば次に私の結果の一つは、次のようになります。
_:Node nm:has nm:Hats
のすべての場合は問題あり
nm:John nm:owns _:Node
トリプルは何らかの理由でクエリの結果にもなりません(なぜ私はrdfのようなパーサーを使用しているのでPythonのためのlibは本当にbnodeがついていないのが好きです)。
オリジナルのCONSTRUCTクエリを書き込んで、新しいノードにbノードが残っていないように、すべてのbノードの結果に再帰的に追加する方法はありますか?
。 [Sparqlクエリでrdfs:class定義を構成するすべてのトリプルを再帰的に返す](http://answers.semanticweb.com/questions/26220/sparql-query-to-return-all-triples-recursively- make-up-an-rdfsclass-definition)(そしておそらく[SPARQLの簡潔なバウンド記述の実装](http://answers.semanticweb.com/questions/20361/implementing-concise-bounded-description-in-paran) )。 –
前のコメントの回答の背景にある考え方は、プロパティパス内の述語として効果的に機能する*新しいプロパティ*を作成できるということです。たとえば、各IRIノードiに対して、3つの「i selfIRI i」を追加します。次に、 "?x p/selfIRI?y"のようなパスを記述すると、?yがIRIノードであることが保証されます。 –