2017-11-03 7 views
0

私は、トリプルPerson-hasFriend-Personリレーションを格納するOWLファイルを持っています。 OWLファイルには10人に関する情報があり、唯一の情報は約hasFriendです。SPARQLの別の変数と共通でない変数の結果を表示

hasFriendとの関係はすべてAであり、5人だけがhasFriendの関係を持つとBです。ここでhasFriendの関係を持つ5人をAと照会すると、hasFriendの関係を持たない人の名前がBと表示されます。これをSPARQLでどのように実装できますか?

hasFriendの関係者の名前をAと表示する間接的な方法を求めています。

+2

テストされていません: 'SELECT?a:hasFriend:A。フィルタは存在しません{?a:hasFriend:B。 }} ' –

+0

ありがとうStanislav Kralin。 –

答えて

1

YousはOWLファイルの詳細を提供する必要があります。しかし、あなたが望むものがわかっていれば、クエリは次のようになります。

select ?person where { 
    ?person hasFriend A. 
    FILTER (NOT EXISTS {?person hasFriend B}) 
} 
+0

ありがとうございました!これはまさに私が必要としていたものです。 –

関連する問題