我知道如何在与 Wikidata 协调后在 Open Refine 中下载 wikipedia 附加链接。
我使用“从协调列添加列...”并使用“SPARQL:Senwiki”作为英语维基百科的属性路径。
是否可以获取(而不是站点链接)维基百科页面 ID?该页面对于维基百科的后续更改是稳定的。
我知道有一个间接的方法: 如何从维基数据id获取维基百科页面id?
但是有没有直接使用 Open Refine 的方法?
提前致以最诚挚的问候和感谢
我目前不知道一步解决方案。
但是,如果您已经拥有维基百科页面的正确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()
希望这有帮助,也许将来会有更简单的解决方案。