【问题标题】:How to get a list of all films on Wikidata?如何获取 Wikidata 上所有电影的列表?
【发布时间】:2015-08-23 12:38:51
【问题描述】:

我使用 Freebase 为我的网站获取所有电影/电影,但它很快就会关闭。所以我正在寻找另一个免费的电影数据库,并偶然发现了 Wikidata。老实说,了解如何查询所有电影太复杂了。

所以我认为你们可以帮助我获取 Wikidata 中的所有电影。将来我还想包括电视节目和连续剧。

编程语言无关紧要,我想使用带有链接的网络查询。

【问题讨论】:

    标签: freebase wikidata-api


    【解决方案1】:

    您可以查找作为电影实例的所有实体,在 Wikidata 中将其翻译为:

    P31(实例)-> Q11424(电影)

    目前,执行此查询的最佳方法是使用 wdq.wmflabs.org API,此查询转换为:http://wdq.wmflabs.org/api?q=claim[31:11424](避免在浏览器中进行此查询,因为它可能会导致崩溃到)。在我写作的那一刻,这个请求以数字 id 的形式返回 157038 个项目(例如:125)。要获取 Wikidata id,只需添加前导 Q -> Q125

    要从所有这些 Wikidata id 中获取标签和数据,请使用 Wikidata API wbgetentities 操作:https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q180736&format=json&languages=en。 但请注意每个查询 50 个实体的限制

    [更新] Wikidata 现在提供SPARQL 端点:the same query in SPARQL 甚至这个same query but also including subclasses of films

    【讨论】:

    • 感谢您的回复。但是当我得到所有 id 时是否有任何分页?在freebase中,我可以限制每页的查询,然后让当前页面光标稍后进行分页。这可能吗?
    • 我不知道,但是如果您需要一次获得所有电影,您可能更愿意查看 wikidata 转储wikidata.org/wiki/… 并提取其中的一个子集:@987654335 @,看看我在那里做了什么github.com/inventaire/inventaire-authors-birthday
    • 如果您正在考虑将其用于生产应用程序,请注意所引用的 API 是一个实验性的 API,当有可用的生产 Wikidata 查询 API 时可能会停用。
    • 我尝试使用 bash 命令,但我得到了一个 73 KB 的文件,其中只有大约 30 项甚至不是电影。 link 提供不同的项目,这些项目也不是电影。我不明白为什么这么复杂。
    • 还发现了一些条目是Q24869(故事片)的实例。分类也没有我想的那么准确
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2019-02-18
    • 1970-01-01
    • 2021-05-17
    相关资源
    最近更新 更多