gpt4 book ai didi

sparql - 使用 SPARQL 从维基数据获取所有电影片名的问题

转载 作者:行者123 更新时间:2023-12-04 02:07:23 25 4
gpt4 key购买 nike

我正在尝试检索所有电影名称及其别名。我正在使用这样的查询(随着 OFFSET 的增加),起初它似乎有效:

SELECT ?itemLabel ?itemAltLabel WHERE {
?item wdt:P31 wd:Q11424.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
LIMIT 1000
OFFSET 0

虽然它检索了很多有效的电影片名,但仍有一些丢失了,尽管我可以在维基数据网站上找到它们。我无法对查询进行一些更改(我是 SPARQL 的新手):

  • 为了调试,我想按 itemLabel 进行过滤,类似于 。 ?itemLabel = '搏击俱乐部'。我尝试了不同的选择,但都没有用。你能帮我构建这样的查询吗?
  • 我想排除没有 itemLabel 的电影。这些当前将其 ID 作为 itemLabel 返回,例如“Q12345”。我如何添加类似 的内容。 ?itemLabel != ""?或者应该是 。 ?itemLabel NOT LIKE 'Q[0-9]+' 不知何故?
  • 排序:我想知道缺少的标题是否可能是由于没有添加任何排序。我只是使用 LIMIT 1000 运行查询并将 OFFSET 增加 1000 直到没有结果。查询之间的排序会发生变化吗?如果是这样,我应该只添加 ORDER BY ?refName 吗?

我可能犯了一些愚蠢的语法错误,所以如果可以的话,请提供完整的工作查询。如果您认为还有其他任何事情可能会阻止我获得所有可用的标题,请告诉我。

我在这里运行查询:https://query.wikidata.org/

最佳答案

我以前遇到过这个问题,特别是在处理电影时 :) 我认为发生的情况是某些实体是电影子类别的实例。您要使用以下内容:

?item wdt:P31/wdt:P279* wd:Q11424 .

在“实例”链中导航,直到您找到“电影”,因为如果某物是动画电影,例如玩具总动员 (Q171048)——它是电影的一个子类——那么它就不会不会被原始查询返回。

希望对您有所帮助!

关于sparql - 使用 SPARQL 从维基数据获取所有电影片名的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42165944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com