在 Open Refine 中与 Wikidata 协调后获取 Wikipedia 页面 ID 而不是 Wikilink

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

我知道如何在与 Wikidata 协调后在 Open Refine 中下载 wikipedia 附加链接。

我使用“从协调列添加列...”并使用“SPARQL:Senwiki”作为英语维基百科的属性路径。

是否可以获取(而不是站点链接)维基百科页面 ID?该页面对于维基百科的后续更改是稳定的。

我知道有一个间接的方法: 如何从维基数据id获取维基百科页面id?

但是有没有直接使用 Open Refine 的方法?

提前致以最诚挚的问候和感谢

wikipedia wikidata openrefine
1个回答
0
投票

我目前不知道一步解决方案。

但是,如果您已经拥有维基百科页面的正确title(使用问题中提到的“SPARQL:Semwiki”属性),您可以从维基百科 API 获取 pageid。

在 OpenRefine 中,在具有正确页面标题的列上使用“编辑列”=>“通过获取 URL 添加列...”。作为 GREL 表达式使用:

"https://en.wikipedia.org/w/api.php?action=query&titles="+escape(value, 'url')+"&format=json"

请注意,您显然必须使用与检索页面标题相同的语言前缀(在您的情况下为

en
)。

您将收到一些 JSON 作为输出,您可以尝试解析它,也可以使用正则表达式将 JSON 内容转换为仅包含 pageid 的列。例如,在包含 Wikipedia API 的 JSON 输出的列上的“编辑单元格”=>“转换...”对话框中使用以下 GREL 表达式:

value.find(/(?<="pageid":)\s*\d+/)[0].trim()

希望这有帮助,也许将来会有更简单的解决方案。

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