4

此页面:http : //wikidata.dbpedia.org/downloads/20160111/ 有一个名为 wikidatawiki-20160111-page-ids.ttl.bz2 的转储,其中包含 Wikidata id 到他们所谓的 wikipage id。wikipage id 似乎与 Wikipedia pageid 不同。

例如对于德国:

  • 维基百科 pageid = 11867
  • 维基数据 id = Q183 和维基页面 id = 322。

所以基本上这个转储将 Q183 映射到 322,而我需要将 Q183 映射到 11867。

作为参考:https ://en.wikipedia.org/w/index.php?title=Germany&curid= 11867 URL 中的 curid 代表 Wikipedia 页面 id。

是否有任何具有 Wikidata id 和 Wikipedia pageid 的等效转储文件?(我不想像这样使用 API 并一一循环我的维基百科页面 ID:https ://en.wikipedia.org/w/api.php?action=query&prop=pageprops&format=xml&pageids=11867 )

编辑:我不确定 waht 到底是不是 wikipage id,但在我在问题中提到的转储顶部可能有一个 wikipageId 到 Wikipedia pageid 映射文件。

4

4 回答 4

4

我创建了一个 Python 包和命令行工具来处理名为wikimapper的问题。它可以通过安装pip install wikimapper。它使用 Wikipedia SQL 转储来创建一个索引,然后可以使用该索引以非常快的速度进行多次映射(比 Wikidata SPARQL 端点快得多)。您可以使用我的预计算索引之一并使用此 sqlite3 数据库,也可以使用该包将 Wikipedia 页面标题/Wikipedia URL 映射到 Wikidata ID,反之亦然。使用页面名称或 URL 代替内部 Wikipedia ID 应该更舒服。

于 2019-04-26T19:15:37.517 回答
3

如果您愿意考虑 API 调用解决方案而不是使用转储加格式调整,则可以使用操作的pageprops属性query

例如,如果我们想找出 Albert Einstein 的 Wikidata 项目,给定 wikipedia 页面标题,你会这样做:

 https://en.wikipedia.org/w/api.php?action=query&format=json&prop=pageprops&titles=Albert Einstein

这使:

 {
   "batchcomplete": "",
   "query": {
     "pages": {
       "736": {
         "pageid": 736,
         "ns": 0,
         "title": "Albert Einstein",
         "pageprops": {
           "defaultsort": "Einstein, Albert",
           "page_image": "Einstein_1921_by_F_Schmutzer_-_restoration.jpg",
           "wikibase-badge-Q17437798": "1",
           "wikibase_item": "Q937"
         }
       }
     }
   }
 }

像这样我们可以在wikibase_item.

(最初由Dmitry BrantMediawiki-api 邮件列表中回答)

这可能是一个更好的解决方案,因为:

  1. 您只需搜索您需要的项目,而不必搜索整个转储
  2. 您可以直接在 JSON 或 XML 中获得答案
于 2016-08-11T08:15:00.220 回答
2

我终于找到了上述请求的转储:
https

://dumps.wikimedia.org/enwiki/20160720/那里有一个文件:
enwiki-20160720-page_props.sql.gz

问题是该文件是一个 MySql 脚本,而我正在寻找 JSON 或 XML 文件。我编写了一个非常短的 PHP 脚本来提取括号块并具有适合我需要的格式。

于 2016-08-03T17:01:10.083 回答
-1

我发现这个链接可能对你有帮助。

20190401 上的 enwiki 转储进度

链接是:enwiki-20190401-wbc_entity_usage.sql.gz 212.5 MB

格式是这样的:

(43094421,'P1070','C.P1630',78195)

哪个结构是:

`eu_row_id` bigint(20) NOT NULL AUTO_INCREMENT,
`eu_entity_id` varbinary(255) NOT NULL,
`eu_aspect` varbinary(37) NOT NULL,
`eu_page_id` int(11) NOT NULL,
于 2019-04-15T05:54:44.087 回答