8

与列出所有已知 Wikidata 属性的此页面等效的 Wikidata API 是什么?我想搜索一个属性,例如“博士顾问”,然后取回 P184。

items存在类似的功能,但我似乎找不到属性的等价物。

4

4 回答 4

8

使用action=wbsearchentitieswithtype=property应该可以。Wikidata API 文档在此处,搜索“=wb”以获取 Wikidata 特定功能。

于 2014-08-03T13:22:12.763 回答
6

更新:感谢@nerab 的回答,我更新了 wikidata-properties-dumper 以使用Quarry SQL 结果:这已经很干净了 :)

更新 2:Quarry 不是那么灵活,我转而使用SPARQL 查询并将其包装在Wikidata CLI命令中:wd props

我编写了一个小脚本来使用 wikidata API 的action=wbgetentities查询所有属性。它生成一个json文件

核心价值

存在

property Pid:请求语言中的属性标签

我发布了几种语言的输出,并且可以根据要求为其他语言做,直到有一个官方(和更清晰)的答案来满足这个需求

于 2014-09-09T13:18:37.643 回答
4

感谢@maxlath 项目中的评论,我找到了Quarry

可以从中获取所有 Wikidata 属性的列表

http://quarry.wmflabs.org/run/45013/output/1/json

此特定列表是英文的,但查询也可以针对其他语言进行修改。

于 2016-01-30T21:25:12.260 回答
2

您可以使用此 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
于 2018-03-06T11:40:58.613 回答