2017-02-24 3 views
1

ため門徒に取り組んでいない:クエリの上SPARQL SELECTクエリは、私が弟子に選択クエリを実行しようとしている複数のマッチ

SELECT ?subject WHERE { 
    ?subject uni4:friendof uni4:t3 .         
} 

は、結果として、「D3」を提供します。

SELECT ?subject WHERE { 
    ?subject uni4:friendof uni4:t4 .         
} 

このクエリは結果として 'd4'を返します。

しかし、次のクエリを実行すると結果は得られません。

SELECT ?subject WHERE {  
    ?subject uni4:friendof uni4:t3 .         
    ?subject uni4:friendof uni4:t4 
} 

なぜですか?ここで何が間違っていますか?

答えて

1

最後のクエリでは、友人の両方が友人であることを質問するので、t3t4です。

SELECT DISTINCT ?subject WHERE { 
{ ?subject uni4:friendof uni4:t3 } 
UNION         
{ ?subject uni4:friendof uni4:t4 } 
} 

またはSPARQL 1.1にあなたがよりコンパクトな代替手段としてVALUESを使用することができます:あなたは、両方の結果が返されるようにする場合

UNIONが進むべき道である

SELECT DISTINCT ?subject WHERE { 
    ?subject uni4:friendof ?friend 
    VALUES ?friend { uni4:t3 uni4:t4 } 
} 
+0

おかげで、それを得ました:) –

関連する問題