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

为何Wikidata ID的SPARQL标签查询返回多条相同英文结果?

问题翻译

我尝试通过Wikidata条目的ID获取对应条目标签,使用的SPARQL查询语句如下:

SELECT ?label
WHERE
{
  wd:Q245068 rdfs:label ?label .
  FILTER (langMatches( lang(?label), "EN" ) )
}

运行该查询后我得到了3条结果,内容均为“comedian”,请问为何相同ID和语言筛选条件会返回多条重复结果?

问题解答

出现重复结果是SPARQL的langMatches匹配规则和Wikidata的多语言标签设置共同导致的:

  • langMatches(lang(?label), "EN")是语系宽匹配规则,会匹配所有属于英文语系的标签,不限制具体地区变体
  • Wikidata的实体通常会设置三类英文标签:通用英文(标签语言为en)、美式英文(标签语言为en-US)、英式英文(标签语言为en-GB),你查询的wd:Q245068这三类英文标签的取值恰好都是comedian,所以会返回三条内容相同、仅隐含的语言子标签不同的结果

如果只需要返回单条结果,可以选择两种修改方案:

  • 精准匹配通用英文:将过滤条件修改为FILTER (lang(?label) = "en")
  • 直接对返回结果去重:将查询头修改为SELECT DISTINCT ?label

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:45:03