与列出所有已知 Wikidata 属性的此页面等效的 Wikidata API 是什么?我想搜索一个属性,例如“博士顾问”,然后取回 P184。
items存在类似的功能,但我似乎找不到属性的等价物。
使用action=wbsearchentities
withtype=property
应该可以。Wikidata API 文档在此处,搜索“=wb”以获取 Wikidata 特定功能。
更新:感谢@nerab 的回答,我更新了 wikidata-properties-dumper 以使用Quarry SQL 结果:这已经很干净了 :)
更新 2:Quarry 不是那么灵活,我转而使用SPARQL 查询并将其包装在Wikidata CLI命令中:wd props
我编写了一个小脚本来使用 wikidata API 的action=wbgetentities查询所有属性。它生成一个json文件
核心价值
存在
property Pid:请求语言中的属性标签
我发布了几种语言的输出,并且可以根据要求为其他语言做,直到有一个官方(和更清晰)的答案来满足这个需求
您可以使用此 SPARQL 查询:它返回属性名称、描述和逗号分隔,也称为来自英语的标签:
SELECT ?property ?propertyLabel ?propertyDescription (GROUP_CONCAT(DISTINCT(?altLabel); separator = ", ") AS ?altLabel_list) WHERE {
?property a wikibase:Property .
OPTIONAL { ?property skos:altLabel ?altLabel . FILTER (lang(?altLabel) = "en") }
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" .}
}
GROUP BY ?property ?propertyLabel ?propertyDescription
LIMIT 5000