You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

基于种子实例wd:Q963与wd:Q42320的同类型实例对象属性检索需求

我帮你整理了针对wd:Q963和wd:Q42320这两个种子实例,检索同类实例唯一对象属性的完整方案,包括步骤说明和对应的SPARQL查询语句:

基于Wikidata种子实例检索同类实例的唯一对象属性方案

核心执行步骤

  • 步骤1:定位种子实例的类型及子类型:先获取两个种子实例的直接所属类型,再递归遍历所有父类(子类链),确保覆盖所有相关的同类范畴类型。
  • 步骤2:抓取该类的全部实例:匹配所有属于上述类型及子类型的Wikidata实例,保证样本覆盖的完整性。
  • 步骤3:提取实例的唯一对象属性:从所有实例中筛选出对象属性(区别于字符串、数字类的数据属性),并用DISTINCT关键字去重,得到唯一属性集合。
  • 步骤4:获取属性的标签与描述:为每个属性匹配对应的人类可读标签和描述信息,方便快速理解属性的实际含义。

完整SPARQL查询语句

SELECT DISTINCT ?property ?propertyLabel ?propertyDescription WHERE {
  # 指定初始种子实例
  VALUES ?seed { wd:Q963 wd:Q42320 }
  
  # 获取种子的类型及所有父类(子类链遍历)
  ?seed wdt:P31/?wdt:P279* ?class .
  
  # 获取该类的全部实例
  ?instance wdt:P31/?wdt:P279* ?class .
  
  # 提取实例的对象属性
  ?instance ?property ?object .
  ?property a wikibase:ObjectProperty .
  
  # 获取属性的多语言标签和描述(优先中文,其次英文)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "zh,en" }
}
ORDER BY ?propertyLabel

查询关键点说明

  • VALUES ?seed:明确指定初始的两个种子实例wd:Q963和wd:Q42320。
  • wdt:P31/?wdt:P279*:通过P31(实例属于类)和P279(子类属于父类)的链式查询,覆盖所有相关的类及子类,避免遗漏边缘同类实例。
  • ?property a wikibase:ObjectProperty:精准过滤出对象属性(属性值为Wikidata实体,而非基础数据类型)。
  • SERVICE wikibase:label:调用Wikidata内置的标签服务,自动获取属性的多语言标签和描述,提升结果可读性。
  • DISTINCT:确保最终结果中每个属性仅出现一次,剔除重复条目。

内容的提问来源于stack exchange,提问作者José Martínez

火山引擎 最新活动