是否有维基百科 Pageid 到维基数据 ID 映射的转储?
Is there any dump for wikipedia Pageid to wikidata id mapping?
本页:http://wikidata.dbpedia.org/downloads/20160111/
有一个名为 wikidawiki-20160111-page-ids.ttl.bz2 的转储
其中包含维基数据 ID。 Wikipedia pageid 似乎与 Wikipedia pageid 不同。
例如德国:
- 维基百科 pageid = 11867
- 维基数据 ID = Q183 和维基页面 ID =
所以基本上这个转储将 Q183 映射到 322,而我需要将 Q183 映射到 11867。
维基百科是维基百科与维基百科之间的链接。
那里有等效的转储文件吗? (我不想使用 API 并像这样一个一个地循环我的维基百科页面 ID:https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&format=xml&pageids=11867)
编辑: 我不确定维基百科页面 ID 到底是什么,但也许在我在问题中提到的转储之上有一个维基百科页面 ID 映射文件。
我终于找到了上述请求的转储:
https://dumps.wikimedia.org/enwiki/20160720/
那里有一个文件:
enwiki-20160720- page_props.sql.gz
问题是文件是 MySql 脚本,而我正在寻找 JSON 或 XML 文件。我写了一个非常短的 PHP 脚本来提取括号块并具有适合我需要的格式。
如果您愿意考虑 API 调用解决方案而不是使用转储加格式调整,则可以使用 query
操作的 pageprops
属性 .
例如,如果我们想找到阿尔伯特·爱因斯坦的维基数据项,给定维基百科页面标题,您可以这样做:
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 in the Mediawiki-api mailing list 最初回答的)
这可能是更好的解决方案,因为:
- 您只需搜索所需的项目,而不必搜索整个转储
- 您可以直接在JSON或XML中得到答案
我发现这个 link 可能对你有帮助。
enwiki dump progress on 20190401
link 是: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,
我创建了一个 Python 包和命令行工具来处理名为 wikimapper. It can be installed via pip install wikimapper
. It uses the Wikipedia SQL dumps to create an index that then can be used to map many times very fast (much faster than the Wikidata SPARQL endpoint). You could either use one of my precomputed indices 的问题并使用此 sqlite3 数据库或使用该包将维基百科页面 titles/Wikipedia URL 映射到维基数据ID 反之亦然。使用页面名称或 URL 而不是内部维基百科 ID 应该更舒服。
本页:http://wikidata.dbpedia.org/downloads/20160111/ 有一个名为 wikidawiki-20160111-page-ids.ttl.bz2 的转储 其中包含维基数据 ID。 Wikipedia pageid 似乎与 Wikipedia pageid 不同。
例如德国:
- 维基百科 pageid = 11867
- 维基数据 ID = Q183 和维基页面 ID =
所以基本上这个转储将 Q183 映射到 322,而我需要将 Q183 映射到 11867。
维基百科是维基百科与维基百科之间的链接。
那里有等效的转储文件吗? (我不想使用 API 并像这样一个一个地循环我的维基百科页面 ID:https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&format=xml&pageids=11867)
编辑: 我不确定维基百科页面 ID 到底是什么,但也许在我在问题中提到的转储之上有一个维基百科页面 ID 映射文件。
我终于找到了上述请求的转储:
https://dumps.wikimedia.org/enwiki/20160720/
那里有一个文件:
enwiki-20160720- page_props.sql.gz
问题是文件是 MySql 脚本,而我正在寻找 JSON 或 XML 文件。我写了一个非常短的 PHP 脚本来提取括号块并具有适合我需要的格式。
如果您愿意考虑 API 调用解决方案而不是使用转储加格式调整,则可以使用 query
操作的 pageprops
属性 .
例如,如果我们想找到阿尔伯特·爱因斯坦的维基数据项,给定维基百科页面标题,您可以这样做:
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 Brant in the Mediawiki-api mailing list 最初回答的)
这可能是更好的解决方案,因为:
- 您只需搜索所需的项目,而不必搜索整个转储
- 您可以直接在JSON或XML中得到答案
我发现这个 link 可能对你有帮助。
enwiki dump progress on 20190401
link 是: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,
我创建了一个 Python 包和命令行工具来处理名为 wikimapper. It can be installed via pip install wikimapper
. It uses the Wikipedia SQL dumps to create an index that then can be used to map many times very fast (much faster than the Wikidata SPARQL endpoint). You could either use one of my precomputed indices 的问题并使用此 sqlite3 数据库或使用该包将维基百科页面 titles/Wikipedia URL 映射到维基数据ID 反之亦然。使用页面名称或 URL 而不是内部维基百科 ID 应该更舒服。