为什么终点对查询的最终结果非常重要。
对于此查询:
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个剧集创建了黑板信息。
答案 0 :(得分: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中,并在Thread而不是SPARQL中查询,则此查询可以简单如下:
Episode:(.Subject:<~The Simpsons)^Airdate|Airdate,Blackboard
除了Needle之外,您可能实际上是为电视节目制作电视节目,而不是依赖于通用SKOS主题/更广泛的抽象级别,因此可能实际上有:
Show:=The Simpsons.Season.Episode|Airdate,Blackboard