2010-06-02 54 views
2

爲什麼結束點對查詢的最終結果非常重要。鏈接的數據和端點

對於此查詢:

 

SELECT ?episode,?chalkboard_gag WHERE { 
    ?episode skos:subject 
    http://dbpedia.org/resource/Category:The_Simpsons_episodes%2C_season_12 . 
    ?episode dbpedia2:blackboard ?chalkboard_gag 
} 
 
端點「OpenLink Virtuoso SPARQL協議」返回1結果。
http://dbpedia.org/snorql」(「 http://dbpedia.org/sparql」,我也使用jena)產生4個結果,這是正確的,因爲只有4個情節有創建的黑板信息。

爲什麼不同?

回答

1

對於第一個端點,你的意思是http://lod.openlinksw.com/sparql?我看不到與http://dbpedia.org/sparql不同的結果。例如,這個擴展你的查詢似乎從兩個端點返回相同的東西(如果確實它們實際上是不同的服務器,我不知道)。

prefix skos: <http://www.w3.org/2004/02/skos/core#> 
prefix category: <http://dbpedia.org/resource/Category:> 
prefix dbpedia2: <http://dbpedia.org/property/> 
prefix xsd: <http://www.w3.org/2001/XMLSchema#> 

SELECT DISTINCT ?airdate ?chalkboard_gag ?episode 
WHERE { 
    ?episode skos:subject ?cat . 
    ?cat skos:broader category:The_Simpsons_episodes . 
    ?episode dbpedia2:airdate ?airdate . 
    ?episode dbpedia2:blackboard ?chalkboard_gag . 
    FILTER langMatches(lang(?chalkboard_gag), 'en') . 
    FILTER xsd:dateTime(?airdate) 
} 
ORDER BY ?airdate 

我知道的一件事會產生不同的結果將是查詢超時。 Virtuoso可以在運行一段時間後關閉查詢,並且當您嘗試使用不同的負載和/或使用不同的超時配置時,您的不同負載可能會處於不同的負載下。


 
我注意到,插一句,如果這個數據是在Needle,和線程,而不是SPARQL查詢,這個查詢可以是簡單的:

Episode:(.Subject:<~The Simpsons)^Airdate|Airdate,Blackboard 

除針,你會可能實際上模擬電視節目等電視節目,而不是依賴通用SKOS主題/更廣泛抽象層次,因此可能實際上具有以下內容:

Show:=The Simpsons.Season.Episode|Airdate,Blackboard