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

如何在Wikidata查询服务中批量查询Freebase ID对应的标签?

批量查询Freebase ID对应Wikidata标签的SPARQL修改方案

要实现批量查询,核心是用SPARQL的VALUES子句批量传入所有Freebase ID,替换原查询中单个匹配的语句。以下是两种修改后的版本:

版本1:保留原查询字段(含实体、标签及关联属性)

SELECT ?s ?sLabel ?p ?o ?oLabel WHERE {
  # 批量指定需要查询的Freebase ID
  VALUES ?freebaseId {
    "/m/0gqpg" "/m/0h0vk" "/m/0h3vhfb"
    "/m/0h4xw_" "/m/0h52w" "/m/0hfp" "/m/0hhbr"
  }
  ?s wdt:P646 ?freebaseId.
  # 如需获取实体的所有关联属性和值则保留此行;仅需标签可删除
  ?s ?p ?o.
  
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en".
  }
}

版本2:简化查询(仅返回Freebase ID、Wikidata实体及对应标签)

如果只需要获取Freebase ID对应的实体标签,可简化查询减少冗余结果:

SELECT ?freebaseId ?s ?sLabel WHERE {
  VALUES ?freebaseId {
    "/m/0gqpg" "/m/0h0vk" "/m/0h3vhfb"
    "/m/0h4xw_" "/m/0h52w" "/m/0hfp" "/m/0hhbr"
  }
  ?s wdt:P646 ?freebaseId.
  
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en".
  }
}

关键修改说明

  • VALUES ?freebaseId { ... }:将所有待查询的Freebase ID以字符串形式传入,多个值用空格分隔,也可分行排列提升可读性
  • ?s wdt:P646 ?freebaseId:建立Wikidata实体(?s)与Freebase ID(?freebaseId)的关联,替换原查询中单个ID的匹配语句
  • 标签服务部分保持不变,用于自动获取实体的英文标签;若需要多语言标签,可修改wikibase:language参数,比如"en,zh"

内容的提问来源于stack exchange,提问作者黄言之

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:50:26