维基数据API:检查维基导游文章是否在维基数据中链接

4
我希望以编程方式检查一个英文Wikivoyage文章(例如Bronzeville)是否从Wikidata数据库中链接或未链接。
例如,英文Wikivoyage的Bronzeville文章并未从Wikidata中链接(即使该项存在)。
注意:一些Wikidata项目有标签,但这并不意味着存在或不存在,因为有些条目没有标签,有些具有相同标签的条目指的是两个不同的事物(例如地方和人物)。
是否有一种方法可以通过Wikidata API或其他方式实现这一点?
2个回答

3

2
您可以使用wbgetentities方法来实现这一点。为此,请请求与所需文章在enwikivoyage上相关的实体。例如,对于存在链接的实体(Prague):

http://www.wikidata.org/w/api.php?action=wbgetentities&sites=enwikivoyage&titles=Prague&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=查询参数的作用是为了仅获取条目是否存在的信息,而不是所有相关信息。)

不幸的是,在大多数情况下,这并不起作用,因为Wikivoyage和Wikidata的名称非常经常不同(超过50%)。例如,在Wikivoyage上,“Al Hudayda”是在Wikidata上是“Al Hudaydah”。在Wikivoyage上,“Akiu”是在Wikidata上是“Akiu,Miyagi”。等等。 - Nicolas Raoul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接