您将如何请求一个项目具有的所有属性的集合?
具体来说,我正在寻找作为项目属性值的每个项目的英文标签。
例如“地球”:
{
"Challenger Deep",
"Solar System",
"oblate spheroid",
"geoid",
"World Ocean",
"Afro-Eurasia",
...
}
我现在正在使用 Wikidata Toolkit 库,但我会接受建议。
首先,您需要使用带有操作wbgetclaims的 MediaWiki API来获取每个声明的所有属性。例如,对于 Wikidata 项目Earth (Q2),请求将是:
https://www.wikidata.org/w/api.php?action=wbgetclaims&format=xml&props=value&entity=Q2
然后,您需要解析响应并从for each one中获取id。在此示例中,对于属性,项目 id 是。value
property
P1589
Q459173
最后一步是通过另一个请求获取所有英文项目标签。您有两个变体,在这两个变体中,我们都使用上一步中的所有项目 ID,用管道分隔|
:
第一个变体:通过使用操作wbgetentities:
第二个变体:通过使用操作查询:
更新:我找到了如何通过仅使用一个请求来获取所有项目属性值的标签。这个想法是找到所有项目链接,然后从它们中过滤出这些来自命名空间 0的以 Q 开头的链接。
https://www.wikidata.org/w/api.php?action=query&titles=Q2&generator=links&gplnamespace=0&gpllimit=100&prop=pageterms&wbptterms=label