您如何申请物品所有属性的集合?
具体来说,我正在寻找每件商品的英文标签,这是商品属性的价值。
E.g。 “Earth”:
{
"Challenger Deep",
"Solar System",
"oblate spheroid",
"geoid",
"World Ocean",
"Afro-Eurasia",
...
}
我现在正在使用维基数据工具包库,但我会接受建议。
答案 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,用管道|
分隔:
第一个变体,使用操作wbgetentities:
第二种变体:使用操作query:
更新:我发现如何只使用一个请求获取所有商品属性值的标签。我们的想法是找到所有项目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