【问题标题】:How to get all Property value's Labels of an Wikidata Item?如何获取 Wikidata 项目的所有属性值标签?
【发布时间】:2016-01-15 16:07:05
【问题描述】:

您将如何请求一个项目所具有的所有属性的集合?

具体来说,我正在寻找作为项目属性值的每个项目的英文标签。

例如"Earth":

{
    "Challenger Deep",
    "Solar System",
    "oblate spheroid",
    "geoid",
    "World Ocean",
    "Afro-Eurasia",
    ...
}

我目前正在使用 Wikidata Toolkit 库,但我会接受建议。

【问题讨论】:

    标签: java labels items wikidata wikidata-api


    【解决方案1】:

    首先,您需要使用带有操作wbgetclaims 的MediaWiki API 来获取每个声明的所有属性。例如,对于 Wikidata 项目 Earth (Q2),请求将是:

    https://www.wikidata.org/w/api.php?action=wbgetclaims&format=xml&props=value&entity=Q2
    

    然后您需要解析响应并从value 中为每个property 获取id。在此示例中,对于属性 P1589,项目 ID 为 Q459173。

    最后一步是通过另一个请求获取所有英文项目标签。您有两个变体,在这两个变体中,我们都使用上一步中的所有项目 ID,用管道 | 分隔:

    更新:我发现了如何通过仅使用一个请求来获取所有项目属性值的标签。这个想法是找到所有项目links,然后从它们中过滤出namespace 0中以Q开头的项目。

    https://www.wikidata.org/w/api.php?action=query&titles=Q2&generator=links&gplnamespace=0&gpllimit=100&prop=pageterms&wbptterms=label
    

    【讨论】:

    • 但是我可以为此使用维基数据查询服务 SPARQL 吗?
    • 现在看来可以直接用id代替numeric-id了:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    相关资源
    最近更新 更多