我打算在Wikidata SPARQL 查询服务上构建一个包含电影及其标签的 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
对相同信息的查询会返回更多结果 (215734):
SELECT ?film ?filmLabel
WHERE{
?film wdt:P31 wd:Q11424 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en, [AUTO_LANGUAGE]".
}
}
似乎并非所有满足该WHERE
子句的变量绑定(该WHERE
子句在两个查询之间共享)都CONSTRUCT
在第一个查询中使用,但它们都在SELECT
.
这是为什么?我在某处遗漏了什么吗?