如何使用WDumper获取不同年度版本的Wikidata疾病子模式
用WDumper获取特定年份的Wikidata疾病子模式及日期筛选方法
一、获取目标年份的Wikidata快照文件
Wikidata会定期生成历史数据快照,你需要下载对应年份的dump文件来匹配目标版本:
- 选择对应年份的快照日期,比如要获取2016年的版本,可选用2016年1月1日(
20160101)或12月31日(20161231)的快照,前者代表当年初始状态,后者代表当年最终状态。 - 快照文件格式通常为
wikidata-YYYYMMDD-all.json.gz或wikidata-YYYYMMDD-statements.json.gz(后者仅包含实体属性数据,体积更小)。
二、配置WDumper筛选规则
1. 获取对应年份版本的疾病子模式
通过指定快照文件+疾病类筛选,直接得到目标年份的疾病数据状态:
- 编写SPARQL查询文件(比如
disease-year.rq),内容如下:
SELECT ?item ?property ?value WHERE { ?item wdt:P31 wd:Q12136 . # Q12136是Wikidata中「疾病」类的ID ?item ?property ?value . }
这个查询会提取快照中所有属于疾病类的实体及其关联的属性和值。
2. 基于实体属性的日期筛选
如果需要筛选带有特定年份属性值的疾病实体(比如发现日期在2016年的疾病),可在查询中添加日期过滤条件:
SELECT ?item ?property ?value WHERE { ?item wdt:P31 wd:Q12136 . ?item wdt:P571 ?discoveryDate . # P571是「发现日期」属性ID,可按需替换为其他日期属性 FILTER(YEAR(?discoveryDate) = 2016) . # 指定目标年份 ?item ?property ?value . }
注意:根据需求替换属性ID,比如「首次描述日期」是P1693,「发病日期」是P1214等。
三、运行WDumper生成子模式
在命令行中执行WDumper,指定输入快照、查询文件和输出路径:
java -jar wdumper.jar --input wikidata-20160101-statements.json.gz --query disease-year.rq --output disease-subset-2016.json
- 替换
wikidata-20160101-statements.json.gz为你下载的对应年份快照文件 - 替换
disease-year.rq为你的查询文件 - 替换
disease-subset-2016.json为输出的子模式文件名
注意事项
- 快照文件体积较大,优先选择
statements类型的dump以节省下载和处理时间 - 不同年份的快照格式可能略有差异,确保WDumper版本与dump格式兼容
- 批量处理多个年份时,可编写脚本循环执行下载、查询配置、运行WDumper的流程
内容的提问来源于stack exchange,提问作者atik ishrak
相关产品推荐
相关产品推荐

