4

我想以编程方式检查英文 Wikivoyage 文章(例如Bronzeville)是否从Wikidata 数据库链接。

例如,英语 Wikivoyage 上的 Bronzeville 文章未与 Wikidata 链接(即使该项目存在)。

注意:一些维基数据项目有标签,但这并不意味着存在或不存在,因为有些项目没有标签,而一些具有相同标签的项目指的是两个不同的事物(例如一个地方和一个人)。

有没有办法通过Wikidata API或其他方式做到这一点?

4

2 回答 2

3

Wikivoyage 文章是否从 Wikidata 链接可以通过如下查询找到:

https://en.wikivoyage.org/w/api.php?action=query&titles=Bronzeville&prop=pageprops&format=jsonfm

https://en.wikivoyage.org/w/api.php?action=query&titles=Paris&prop=pageprops&format=jsonfm

如果响应包含“wikibase_item”,则表示它已链接。

于 2013-09-06T01:05:14.920 回答
2

您可以使用该wbgetentities方法。为此,请向它询问与 enwikivoyage 上所需文章相关的实体。例如,对于存在链接的实体(布拉格):

http://www.wikidata.org/w/api.php?action=wbgetentities&sites=enwikivoyage&titles=布拉格&format=xml&props=

你得到这样的结果:

<entity id="q1085" type="item" />

如果链接不存在(Bronzeville):

http://www.wikidata.org/w/api.php?action=wbgetentities&sites=enwikivoyage&titles=Bronzeville&format=xml&props=

结果是:

<entity site="enwikivoyage" title="Bronzeville" missing="" />

props=查询的部分在那里,因此您不会获得有关条目的所有信息,只是它是否存在。)

于 2013-09-05T10:24:39.617 回答