SPARQL 构造;并非所有结果都被检索
SPARQL CONSTRUCT; not all results are retrieved
我想在 Wikidata SPARQL query service 上构建一个包含电影及其标签的 RDF 图。
基本上,这是我认为足够的查询:
CONSTRUCT{
?film wdt:P31 wd:Q11424 .
?film rdfs:label ?filmLabel.
}
WHERE{
?film wdt:P31 wd:Q11424 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en, [AUTO_LANGUAGE]". }
}
好像不是所有的影片都出现在结果中(127636个结果),我注意到没有出现的影片基本上都是没有标签的。
但是,SELECT
查询相同信息 returns 更多结果 (215734):
SELECT ?film ?filmLabel
WHERE{
?film wdt:P31 wd:Q11424 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en, [AUTO_LANGUAGE]".
}
}
似乎并不是所有满足 WHERE
子句的变量绑定(WHERE
子句在两个查询之间共享)都在第一个查询的 CONSTRUCT
中使用,但所有其中 SELECT
中使用了它们。
这是为什么?我是不是漏了什么地方?
这是 CONSTRUCT
优化器某处的错误,与标签服务无关。
可能的解决方法是这些 Blazegraph hints:
hint:Query hint:queryEngineChunkHandler "Managed"
hint:Query hint:constructDistinctSPO false
CONSTRUCT {
?film wdt:P31 wd:Q11424 .
?film rdfs:label ?filmLabel .
}
WHERE {
?film wdt:P31 wd:Q11424 .
hint:Query hint:queryEngineChunkHandler "Managed" .
# hint:Query hint:constructDistinctSPO false .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
}
我想在 Wikidata SPARQL query service 上构建一个包含电影及其标签的 RDF 图。 基本上,这是我认为足够的查询:
CONSTRUCT{
?film wdt:P31 wd:Q11424 .
?film rdfs:label ?filmLabel.
}
WHERE{
?film wdt:P31 wd:Q11424 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en, [AUTO_LANGUAGE]". }
}
好像不是所有的影片都出现在结果中(127636个结果),我注意到没有出现的影片基本上都是没有标签的。
但是,SELECT
查询相同信息 returns 更多结果 (215734):
SELECT ?film ?filmLabel
WHERE{
?film wdt:P31 wd:Q11424 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en, [AUTO_LANGUAGE]".
}
}
似乎并不是所有满足 WHERE
子句的变量绑定(WHERE
子句在两个查询之间共享)都在第一个查询的 CONSTRUCT
中使用,但所有其中 SELECT
中使用了它们。
这是为什么?我是不是漏了什么地方?
这是 CONSTRUCT
优化器某处的错误,与标签服务无关。
可能的解决方法是这些 Blazegraph hints:
hint:Query hint:queryEngineChunkHandler "Managed"
hint:Query hint:constructDistinctSPO false
CONSTRUCT {
?film wdt:P31 wd:Q11424 .
?film rdfs:label ?filmLabel .
}
WHERE {
?film wdt:P31 wd:Q11424 .
hint:Query hint:queryEngineChunkHandler "Managed" .
# hint:Query hint:constructDistinctSPO false .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }
}