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

SPARQL新手求助:如何查询Bob Dylan/Elvis Presley的专辑及对应艺人

解决SPARQL查询专辑与对应艺人的问题

你的查询只返回专辑是因为子查询里没有保留艺人的关联变量,导致主查询无法获取艺人信息。修改后的查询会同时抓取专辑和对应的艺人,并返回两者的标签:

SELECT DISTINCT ?item ?itemLabel ?artist ?artistLabel WHERE {
  SERVICE wikibase:label { 
    bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". 
    ?item rdfs:label ?itemLabel.
    ?artist rdfs:label ?artistLabel.
  }
  ?item p:P31 ?statement0.
  ?statement0 (ps:P31/(wdt:P279*)) wd:Q482994. # Q482994是专辑的Wikidata ID
  ?item p:P175 ?artistStatement.
  ?artistStatement ps:P175 ?artist.
  FILTER (?artist IN (wd:Q392, wd:Q303)) # 直接过滤目标艺人,替代原UNION写法更简洁
}

修改说明:

  • 新增?artist和?artistLabel变量,存储艺人实体及名称
  • 用FILTER (?artist IN (wd:Q392, wd:Q303))替代原UNION结构,逻辑更清晰
  • 在wikibase:label服务中明确指定获取专辑和艺人的标签,避免匹配异常
  • 去掉嵌套子查询,简化结构同时保留专辑类型、艺人关联的筛选逻辑

调整后查询结果会同时显示专辑名称和对应的艺人名字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:13:29