SPARQLの推移的クエリの結果が、歩かれた順番に戻ることを保証できますか?推移的SPARQLクエリでの順序付け
が<http://example.com/step0> ex:contains <http://example.com/step1>
<http://example.com/step1> ex:contains <http://example.com/step2>
<http://example.com/step2> ex:contains <http://example.com/step3>
(実際には関係がより多くの回繰り返すことができ)
クエリ(SPARQL 1.1を使用して)::
SELECT ?parent
WHERE {
?parent ex:contains* <http://example.com/step3>
}
そのようなあなたはそのいくつかの簡単なデータ与えそう
、常に[step0、step1、step2]に戻ります。 jenaでこれを試してみると、一貫性があり、ランダムに順序付けられた結果が得られます。また
、私は外にそれを並べ替えることができるように、私は推移散歩に戻って親と子の両方を得ることができれば、それは大丈夫だと思うが、私は両方?parent ex:contains* <http://example.com/step3>
をバインドする方法を知っていると戻って得ることはありませんフィルターを使用して非常に遅いネストされたクエリーを記述することなく、中間関係のオブジェクトを作成します。あなたのデータの例を考えると
ある1つの結果だけを返すんあなたのクエリ 'のhttp://example.com/step2'、したがって、私はあなたがJenaで動作すると言う理由は分かりませんが、結果はランダムに並べられます。 'ex:contains *'のようなプロパティパスが使われていないので、あなたは既にここで推移性のコンセプトを解決しているのを見ることはできません – AKSW
私はその質問に最も重要な一文字を残しました。それはex:contains *、質問を更新しました – Ben