在Open Refine中与Wikidata匹配后能否直接获取维基百科页面ID?
在OpenRefine中直接获取维基百科页面ID的方法
问题背景
在OpenRefine中完成Wikidata匹配后,可通过「从匹配列添加列...」操作,使用「SPARQL: enwiki」属性路径下载英文维基百科站点链接。现希望获取页面变更时更稳定的维基百科页面ID,而非站点链接,询问是否有OpenRefine直接获取的方式。
解决方案
目前OpenRefine没有内置的一键获取选项,但可以通过自定义SPARQL查询实现直接获取,步骤如下:
- 确保已完成Wikidata匹配,拥有对应的匹配列(例如命名为「Wikidata项」)。
- 点击该匹配列的下拉菜单,选择「从匹配列添加列...」。
- 在弹出的配置窗口中,选择「自定义SPARQL查询」作为数据获取方式。
- 输入针对英文维基的SPARQL查询语句:
SELECT ?pageId WHERE { ?item wdt:P31 ?type; wdt:P1842 ?pageId. FILTER(?item = {{id}}) }
说明:wdt:P1842是Wikidata中对应维基百科页面ID的属性,{{id}}是OpenRefine自动替换为当前行匹配的Wikidata项ID的占位符。
- 设置新列名称(如「维基百科页面ID」),点击「确定」即可完成获取。
如果需要其他语言维基的页面ID,只需确认目标语言对应的页面ID属性(多数语言复用wdt:P1842),调整查询语句即可。
内容的提问来源于stack exchange,提问作者Richard Heidler
相关产品推荐
相关产品推荐

