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

SPARQL查询:如何基于导演属性过滤影片?

SPARQL查询修改:按导演国籍筛选影片

你之前的思路方向是对的,但SPARQL里不能用FILTER来写三元组关系,正确的做法是直接把导演的国籍条件作为图模式加入WHERE块里,具体修改如下:

修改步骤

  • 移除原来限制影片原产国的语句:wdt:P495 wd:Q408;
  • 在获取导演的语句后,添加导演国籍的三元组:?director wdt:P27 wd:Q408;

修改后的完整查询

SELECT ?filmLabel ?genreLabel ?publicationLabel ?directorLabel
WHERE {
  ?film 
  wdt:P31 wd:Q11424; # 实例为电影
  wdt:P136 ?genre;   # 影片类型
  wdt:P577 ?publication; # 上映日期
  wdt:P57 ?director;     # 影片导演
  ?director wdt:P27 wd:Q408; # 导演公民身份为澳大利亚
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } 
}

说明

SPARQL的WHERE块是用来定义要匹配的资源关系(三元组模式),而FILTER是用来对变量的取值做条件过滤(比如数值范围、字符串匹配等)。你之前尝试的FILTER(?director wdt:P27 wd:Q408)是错误用法,因为这不是布尔表达式,正确的方式是直接把这个关系作为三元组加入WHERE,让查询引擎自动匹配符合条件的导演和对应的影片。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:53:16