如何获取给定维基数据ID的语句列表?

rsk*_*k82 5 wikipedia-api wikidata wikidata-api

我唯一能做的就是这个链接:

https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q568&format=jsonfm
Run Code Online (Sandbox Code Playgroud)

但这会产生大量无用的数据.我需要的是获取给定项的所有语句,但我看不到上面查询中的任何语句.

这将是:

{ "instance of" : "chemical element",
  "element symbol" : "Li",
  "atomic number" : 3,
  "oxidation state" : 1,
  "subclass of" : ["chemical element", "alkali metal"]
 // etc...
}
Run Code Online (Sandbox Code Playgroud)

是否有这样的API或我必须刮网页?

svi*_*ick 4

您想要的信息就在您的查询中,只是很难解码。例如,这个:

\n\n
"P246": [\n          {\n            "id": "q568$E47B8CE7-C91D-484A-9DA4-6153F132997D",\n            "mainsnak": {\n              "snaktype": "value",\n              "property": "P246",\n              "datatype": "string",\n              "datavalue": {\n                "value": "Li",\n                "type": "string"\n              }\n            },\n            "type": "statement",\n            "rank": "normal",\n            "references": \xe2\x80\xa6\n          }\n        ]\n
Run Code Online (Sandbox Code Playgroud)\n\n

意味着 \xe2\x80\x9c 元素符号 \xe2\x80\x9d (属性 P246)是 \xe2\x80\x9cLi\xe2\x80\x9d。因此,您需要从查询中读取所有属性,然后找出找到的每个属性的名称。

\n\n

要仅获取语句,您也可以使用action=wbgetclaims,但其格式与上面相同。

\n