2010-06-02 59 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