这个页面:http://wikidata.dbpedia.org/downloads/20160111/有一个名为wikidatawiki-20160111-page-ids.ttl.bz2的转储,其中包含维基数据ID,他们称之为wikipage id。 wikipage id似乎与维基百科的pageid不同。
例如对于德国:
所以基本上这个转储映射Q183到322,而我需要将Q183映射到11867。
作为参考:https://en.wikipedia.org/w/index.php?title=Germany&curid=11867 URL中的curid表示维基百科页面ID。
是否有任何具有维基数据ID和维基百科pageid的等效转储文件? (我不想使用API并逐个循环我的维基百科页面ID,如下所示:https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&format=xml&pageids=11867)
编辑:我不确定waht究竟是wikipage id,但也许在我在问题中提到的转储顶部有一个wikipageId到维基百科pageid映射文件。
如果您愿意考虑API调用解决方案而不是使用dump plus格式调整,则可以使用pageprops
操作的query
属性。
例如,如果我们想找到Albert Einstein的Wikidata项目,给定维基百科页面标题,你会做:
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
检索wikidata项目ID。
(这是Dmitry Brant在Mediawiki-api mailing list最初回答的)
这可能是一个更好的解决方案,因为:
我终于找到了上述请求的转储: https://dumps.wikimedia.org/enwiki/20160720/ 那里有一个文件: enwiki-20160720-page_props.sql.gz 问题是该文件是一个MySql脚本,而我正在寻找一个JSON或XML文件。我写了一个非常简短的PHP脚本来提取括号块并具有适合我需要的格式。
我创建了一个Python包和命令行工具来处理名为wikimapper的问题。它可以通过pip install wikimapper
安装。它使用Wikipedia SQL转储创建索引,然后可以非常快速地映射多次(比Wikidata SPARQL端点快得多)。您可以使用我的precomputed indices之一并使用此sqlite3数据库或使用该程序包将维基百科页面标题/维基百科URL映射到维基数据ID,反之亦然。使用页面名称或URL而不是内部维基百科ID应该更加舒适。
我发现此链接可能对您有所帮助。
enwiki dump progress on 20190401
链接是: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,