You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Wikidata SPARQL查询仅获取条目的外部标识符

问题根因

你写的筛选查询返回无匹配结果,核心原因是混淆了Wikidata的命名空间规则:

  • 你在三元组谓词位置匹配到的?prop是wdt:前缀的直接取值谓词(比如wdt:P345代表IMDb ID属性的直接取值谓词)
  • 属性的类型元数据是挂载在wd:前缀的属性实体上的(比如IMDb ID作为属性实体是wd:P345,wikibase:propertyType wikibase:ExternalId这个三元组是挂在wd:P345上,而非wdt:P345上)

直接拿谓词去匹配属性类型三元组,永远不会命中结果。另外你两个带VALUES的查询都在SELECT子句里声明了未做任何匹配绑定的?p2 ?p2Label变量,属于冗余无效写法,会返回全空的无意义列。

修正方法

通过wikibase:directClaim谓词关联属性实体和对应的直接取值谓词,再做类型筛选即可,修正后的可执行查询如下:

SELECT ?item ?value ?valueLabel ?propEntity ?propEntityLabel {
  VALUES (?item) {(wd:Q112133367)}
  # 匹配条目上的直接属性和对应取值
  ?item ?directProp ?value .
  # 关联属性实体和它对应的直接取值谓词
  ?propEntity wikibase:directClaim ?directProp .
  # 筛选类型为外部标识符的属性
  ?propEntity wikibase:propertyType wikibase:ExternalId .
  # 加载中文、英文标签
  SERVICE wikibase:label { bd:serviceParam wikibase:language "zh,en" }
}

运行该查询返回的结果,和Wikidata条目页面「标识符」板块展示的内容完全一致,以Q112133367为例,会返回IMDb电影ID、烂番茄ID、AllMovie ID、eIDR ID等全部外部标识符及对应取值。

内容的提问来源于stack exchange,提问作者Everett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:09:18