其他分享
首页 > 其他分享> > 如何获取维基数据项的所有属性值的标签?

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

作者:互联网

您如何请求Item具有的所有属性集?

具体来说,我正在寻找每个项目的英文标签,这是项目属性的价值.

例如. “Earth”:

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

我现在正在使用维基数据工具包库,但我会提出建议.

解决方法:

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

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

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

最后一步是通过另一个请求获取所有项目标签.你有两个变体,在它们两个中我们使用上一步中的所有项id,用pipe分隔|:

>第一个变体:使用动作wbgetentities

https://www.wikidata.org/w/api.php?action=wbgetentities&props=labels&languages=en&ids=Q459173|Q544|Q3241540|Q185969|Q715269|Q27527
>第二种变体:使用动作query

https://www.wikidata.org/w/api.php?action=query&prop=pageterms&wbptterms=label&titles=Q459173|Q544|Q3241540|Q185969|Q715269|Q27527

更新:我发现如何只使用一个请求获取所有项属性值的标签.我们的想法是找到所有项目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

标签:java,labels,items,wikidata,wikidata-api
来源: https://codeday.me/bug/20190523/1156655.html