我想在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
查询会返回更多结果(215734):
SELECT ?film ?filmLabel
WHERE{
?film wdt:P31 wd:Q11424 .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en, [AUTO_LANGUAGE]".
}
}
似乎并非所有符合WHERE
子句的变量绑定(WHERE
子句在两个查询之间共享)都在第一个查询的CONSTRUCT
中使用,但所有这些都是用于SELECT
。
为什么?我错过了什么地方吗?
答案 0 :(得分:2)
这是public static Class3 func1(Class1... t){
Class2[] target = new Class2[t.length];
for (int i = 0; i < t.length; ++i){
target[i] = transform(t[i]);
}
return func2(target);
}
优化器中某处的错误,与标签服务无关。
可能的解决方法是Blazegraph hints:
CONSTRUCT
hint:Query hint:queryEngineChunkHandler "Managed"
hint:Query hint:constructDistinctSPO false