Apache Jena ベースのオントロジーがあり、その中に 2 つの名前付きグラフがあります。
m_p
p1 pred1 mp1
p2 pred1 mp1
p3 pred1 mp2
p4 pred1 mp2
p5 pred1 mp3
p6 pred1 mp3
とm_p_s
mp1 pred2 w:frnd
mp1 pred2 w:fdlfkdl
mp2 pred2 w:kdsjflk
mp2 pred2 w:jflksdlkj
mp3 pred2 w:frnd
mp3 pred2 w:fjksldjfls
そして、 m_pのすべてのトリプルを取得したいのですが、どのオブジェクトが m_p_s の述語であり、 m_p_sのその述語のオブジェクトはw:frndです
つまり、 m_pからp1、p2、p5、およびp6を返す (結果を返す) クエリを作成し、 p3およびp4を返さないクエリを作成したいと考えています。
ネストされたクエリでこれを実行しようとしていますが、機能しません:例
SELECT $subj $pred $pr
FROM NAMED named_graph:m_p
WHERE
{
SELECT $pr
WHERE
{
GRAPH named_graph:m_p_s { $pr $pred0 w:frnd }
}
}
空の結果を返します。さまざまなことを試しましたが、エラーまたは空の結果、またはm_pのすべてが表示されます。
パフォーマンス上の理由から、UNIONまたはFILTERを使用したくありません。
どうすればそれができるか考えていますか?
よろしく、ステファン