我正在尝试使用别名检索所有电影标题。我正在使用这样的查询(增加OFFSET),起初它似乎有效:
SELECT ?itemLabel ?itemAltLabel WHERE {
?item wdt:P31 wd:Q11424.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
LIMIT 1000
OFFSET 0
虽然它检索了很多有效的电影片,但有些片段丢失了,尽管我可以在维基数据网站上找到它们。我无法对查询进行一些更改(我是SPARQL的新手):
. ?itemLabel = 'fight club'
。我尝试了不同的选择但没有效果。你能帮我建一个这样的查询吗?. ?itemLabel != ""
之类的内容?或者应该以某种方式. ?itemLabel NOT LIKE 'Q[0-9]+'
?ORDER BY ?refName
吗?我可能会犯一些愚蠢的语法错误,所以如果可以,请提供完整的工作查询。如果你认为还有其他任何东西可能阻止我获得所有可用的标题,请告诉我。
我在这里运行查询:https://query.wikidata.org/
答案 0 :(得分:4)
我之前和特别是在处理电影时遇到过这个问题:)我认为发生的事情是某些实体是电影子类别的实例。您想使用以下内容:
?item wdt:P31/wdt:P279* wd:Q11424 .
导航''的实例连锁直到你碰到电影'因为如果像玩具总动员(Q171048)这样的动画电影 - 这是电影的子类 - 那么它就不会被原始查询返回。
希望有所帮助!