我想知道为什么以下带有命名子查询的 SPARQL 查询在 Blazegraph 实例 Wikidata 查询服务上很慢。在 Wikidata 查询服务上取出子查询并单独执行它大约需要一秒钟的时间,而整个查询的查询会超时。在 INCLUDE 行之后添加任何内容似乎没有帮助。删除 DISTINCT 没有帮助。
SELECT
?author
WITH {
SELECT
DISTINCT ?author
{
[] wdt:P50 ?author .
FILTER EXISTS { [] wdt:P921 ?author }
FILTER EXISTS { ?author wdt:P31 wd:Q5 }
}
LIMIT 1
} AS %authors
WHERE {
INCLUDE %authors .
}
查询提示的某些组合可能会有所帮助吗?我一直在浏览https://github.com/blazegraph/database/wiki/QueryHints上的 Blazegraph 查询提示,但没有想出解决超时的提示组合。
当命名子查询单独执行时,维基数据查询服务上的 LIMIT 甚至可以增加到 10000,而不会遇到超时。