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 个剧集创建了黑板信息

为什么会有差异?

4

1 回答 1

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
于 2010-06-02T14:43:33.807 回答