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

如何在SPARQL中实现Wikidata树形结构的深度限制查询

如何在Wikidata SPARQL中限制树形查询的深度为1

你的原查询使用wdt:P279*,其中*表示零或任意次数匹配P279(子类关系),所以会返回目标条目下所有层级的子类。要限制深度为1(仅包含父节点和直接子节点),只需将通配符修改为?——?表示零或一次匹配,刚好覆盖自身和直接子类两种情况。

修改后的查询代码:

SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P279? wd:Q3314483.
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
  }
}

如果需要更直观地拆分逻辑(方便后续扩展不同深度的处理),也可以用UNION明确指定两种匹配情况:

SELECT ?item ?itemLabel
WHERE {
  { ?item wd:Q3314483 } # 匹配父节点自身
  UNION
  { ?item wdt:P279 wd:Q3314483 } # 匹配直接子节点
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
  }
}

两种写法都能得到你预期的结果:父节点Q3314483(Fruit)加上所有直接子类如Q89(Apple)、Q169(Mango)等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 06:34:56