如何获取维基数据项的所有属性值标签?

时间:2016-01-15 16:07:05

标签: java labels items wikidata wikidata-api

您如何申请物品所有属性的集合?

具体来说,我正在寻找每件商品的英文标签,这是商品属性的价值。

E.g。 “Earth”:

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

我现在正在使用维基数据工具包库,但我会接受建议。

1 个答案:

答案 0 :(得分:4)

首先,您需要使用MediaWiki API和操作wbgetclaims来获取每个声明的所有属性。例如,对于维基数据项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