2017-02-24 47 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的朋友。

如果你想有两个结果返回,UNION是要走的路:

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

或者在SPARQL 1.1可以使用VALUES更紧凑的替代:

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

感谢,得到了它:) –