如何在维基数据中按实例搜索实体 API

How to search entities by instance in Wikidata API

我试过没有成功得到这个查询:

https://www.wikidata.org/w/api.php?action=wbsearchentities&search=arturo&format=json&language=en&uselang=en&type=item

但仅包含来自实例 "human of" 的元素,这意味着来自 P31 : Q5

任何帮助将不胜感激,因为我找不到设置这些道具的方法。 这种查询在 SPARQL 中呈爆炸式增长,但如果有人有一个相对的答案来获得相同的结果(搜索所有以他的名字开头的人......)也会被预测。

我真的不确定 Mediawiki API 是否可行。这是不可能的 a few years ago,而且我认为该功能从那时起就没有实现。

但 Open Refine 具有基于 API 的 a reconciliation service with Wikidata,可以按类型 ("instance of") 或 属性 进行过滤。它的开发者尚未明确将其作为独立的 API 进行宣传,但这是在项目中。这是一个使用示例:在维基数据中找到称为 "arturo" 人类 (Q5) 并且其职业 (P106) 是演员 (Q33999) 的人。

https://tools.wmflabs.org/openrefine-wikidata/en/api?query={
                      "query":"arturo",
                      "limit":6,
                      "type" : "Q5",
                      "properties" : [
                         { "pid" : "P106" , "v" : "Q33999"}
                         ]
                         }

Result.

这个查询的主要问题是它只会 return Arturos 明确是 Q5 的一个实例。这将是 this one 的情况,但不是那些 "film maker" 的唯一实例(并且电影制作人本身是 class 的子 class 并不重要=26=]). Sparql 可以使用 属性 路径处理 class 传递性(例如:wdt:P279*/wdt:P31*),但是这个 API 还没有(还)实现它们。