如何获取Wikidata中实体出生地(P19)属性的最后编辑日期?
获取Wikidata中猫的出生地属性最后编辑日期的查询方法
原查询仅能获取实体整体的最后修改日期,要获取出生地(P19)属性声明的最后编辑日期,需要访问Wikidata的声明(statement)层级数据,具体修改后的SPARQL查询如下:
SELECT ?item ?itemLabel ?placeofbirthLabel ?entityLastModified ?birthStatementLastModified WHERE { # 匹配属于猫的实体,关联其出生地的声明节点 ?item wdt:P31 wd:Q146; p:P19 ?birthStatement; schema:dateModified ?entityLastModified. # 从声明节点中提取出生地的具体值,并获取该声明的最后修改日期 ?birthStatement ps:P19 ?placeofbirth; schema:dateModified ?birthStatementLastModified. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } }
核心修改说明:
- 用
p:P19替代wdt:P19:p:前缀指向属性的声明节点,而非直接取属性值,这样才能获取声明的元数据(比如修改日期) - 通过
ps:P19从声明节点中提取出生地的实际值,保留原查询的核心数据内容 - 给声明节点
?birthStatement绑定schema:dateModified ?birthStatementLastModified,以此获取该出生地属性的最后编辑日期 - 保留原有的实体整体修改日期
?entityLastModified,方便对比实体和属性声明的修改时间
内容的提问来源于stack exchange,提问作者relizt
相关产品推荐
相关产品推荐

