如何获取维基数据项的所有 属性 值的标签?
How to get all Property value's Labels of an Wikidata Item?
您将如何请求项目具有的所有属性集?
具体来说,我正在寻找每个项目的英文标签,即项目 属性 的价值。
例如“Earth”:
{
"Challenger Deep",
"Solar System",
"oblate spheroid",
"geoid",
"World Ocean",
"Afro-Eurasia",
...
}
我目前正在使用维基数据工具包库,但我会接受建议。
首先您需要使用 MediaWiki API 和操作 wbgetclaims to get all properties for each one claim. For example for Wikidata item 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:
更新: 我找到了如何只使用一个请求来获取所有项目 属性 值的标签。这个想法是找到所有以 Q.
开头的项目 links, and then to filter from them only these from namespace 0
https://www.wikidata.org/w/api.php?action=query&titles=Q2&generator=links&gplnamespace=0&gpllimit=100&prop=pageterms&wbptterms=label
您将如何请求项目具有的所有属性集?
具体来说,我正在寻找每个项目的英文标签,即项目 属性 的价值。
例如“Earth”:
{
"Challenger Deep",
"Solar System",
"oblate spheroid",
"geoid",
"World Ocean",
"Afro-Eurasia",
...
}
我目前正在使用维基数据工具包库,但我会接受建议。
首先您需要使用 MediaWiki API 和操作 wbgetclaims to get all properties for each one claim. For example for Wikidata item 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:
更新: 我找到了如何只使用一个请求来获取所有项目 属性 值的标签。这个想法是找到所有以 Q.
开头的项目 links, and then to filter from them only these from namespace 0https://www.wikidata.org/w/api.php?action=query&titles=Q2&generator=links&gplnamespace=0&gpllimit=100&prop=pageterms&wbptterms=label