检索具有维基百科页面的链接维基数据实体

问题描述 投票:0回答:1

我想通过自由文本或类别查询维基数据,以返回具有相应维基百科页面的实体。

对于每个页面(或选定的页面),我想获取所有具有相应维基百科文章的链接维基数据实体。

请注意:

  • 对于每个维基百科页面和链接页面,我想获取相应的维基数据ID
  • 链接的维基数据实体可能存在于其他维基百科上,不一定以查询的语言存在

(例如,法国历史中的页面有多种语言版本;我可能有仅法语版本以及其他多种语言版本的链接页面)。

我无法弄清楚维基百科中相应的维基数据API、查询链接的文章以及如何查询甚至超出所选语言的链接页面。

我看了:

https://www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual/MWAPI

https://stackoverflow.com/a/57983365/305883

https://www.mediawiki.org/wiki/API:链接

例如,我可以从这个 sparql 查询开始:

SELECT ?item ?type ?itemLabel ?typeLabel WHERE {
 {
   SELECT ?item WHERE {
    SERVICE wikibase:mwapi {
      bd:serviceParam wikibase:endpoint "en.wikipedia.org" .
      bd:serviceParam wikibase:api "Generator" .
      bd:serviceParam mwapi:generator "search" .
      bd:serviceParam mwapi:gsrsearch "artificial intelligence" .
      bd:serviceParam mwapi:gsrlimit "max" .
      ?item wikibase:apiOutputItem mwapi:item .
    }
  } LIMIT 100
 }
 hint:Prior hint:runFirst "true".
 ?item wdt:P31|wdt:P279 ?type .
 SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
} LIMIT 100

您能否展示扩展或调整此查询的示例?

您能否建议除了 https://www.mediawiki.org/wiki/Wikidata_Query_Service/User_Manual/MWAPI 之外的其他参考资料,以广泛使用从 SPARQL 调用 Mediawiki API(以便我可以利用 wikidata 和 wikipedia)?

python sparql wikipedia-api wikidata wikidata-api
1个回答
0
投票

从维基百科链接获取维基数据实体的一种方法是执行 SPARQL 查询,例如:

SELECT ?item WHERE {
  <https://en.wikipedia.org/wiki/Albert_Einstein> schema:about ?item
}

一旦您发现 Albert Einstein 的 Wikidata ID 为

wd:Q937
,您就可以运行另一个 SPARQL 查询:

SELECT ?article WHERE {
  ?article schema:about wd:Q937 .
  ?article schema:isPartOf / wikibase:wikiGroup "wikipedia" .
}

检索该实体的所有维基百科文章。

© www.soinside.com 2019 - 2024. All rights reserved.