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

如何用SPARQL从博物馆实体提取城市信息?适配曼哈顿特殊场景

博物馆所在城市的SPARQL检索优化方案

核心问题分析

你的原查询仅获取博物馆直接关联的P131行政区域,导致两种不符合预期的结果:

  • 曼哈顿这类次级行政区会被直接返回,而非所属的纽约市
  • 柏林这类城市的P131直接指向国家(德国),返回结果不是目标城市

优化方案:基于类型过滤的层级路径查询

通过限定目标实体为城市类型(Q515),并遍历行政区域层级,自动匹配正确的城市节点:

SELECT DISTINCT ?cityName WHERE {
  # 遍历博物馆所属的行政区域层级(至少1层)
  ?museum wdt:P131+ ?city.
  # 限定?city为城市或其子类(Q515是城市的本体ID)
  ?city wdt:P31/wdt:P279* wd:Q515.
  # 获取城市的英文标签
  ?city rdfs:label ?cityName.
  FILTER(lang(?cityName) = "en")
}

方案说明

  • wdt:P131+:沿着「位于行政区域」属性向上遍历至少一层,覆盖两种场景:
    • 博物馆直接位于城市(如柏林):直接匹配到柏林本身
    • 博物馆位于次级行政区(如曼哈顿):向上遍历到所属的纽约市
  • wdt:P31/wdt:P279* wd:Q515:确保返回的实体是城市或城市的子类,自动排除曼哈顿这类非城市的次级行政区,以及德国这类国家实体
  • 若原查询中?item wdt:P276 ?museum指代展品位于博物馆,只需调整为:
    SELECT DISTINCT ?cityName WHERE {
      ?item wdt:P276 ?museum.
      ?museum wdt:P131+ ?city.
      ?city wdt:P31/wdt:P279* wd:Q515.
      ?city rdfs:label ?cityName.
      FILTER(lang(?cityName) = "en")
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:15:36