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

SPARQL查询调试求助:筛选名字以R开头且年龄超20的条目

SPARQL查询调试提示
  • 逻辑关系错误:你需要的是“名字以R开头且年龄大于20”的条目,但当前用UNION(逻辑或)会返回满足任意一个条件的结果,应该把两个筛选条件合并到同一个FILTER块,或者放在同一组模式中。
  • 变量未绑定:?Age变量没有对应的三元组匹配,WHERE子句里缺少?Person foaf:age ?Age这样的语句,导致筛选时?Age是未定义状态,查询无法正常判断。
  • 变量拼写错误:筛选名字的FILTER里写的是?givename,但三元组里的变量是?firstName,SELECT里又出现了?givenname,变量名不统一,应该保持一致(比如都用?firstName)。
  • 数据类型错误:年龄比较时用了字符串'20',如果你的数据里?Age是数值类型,应该直接写20(不带引号),否则字符串比较会按字典序处理,结果不符合预期。
  • 冗余变量:SELECT里同时出现?givenname和?firstName,但三元组里只绑定了?firstName,?givenname未定义,应该去掉冗余的变量。

修正后的示例查询:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?firstName ?Age
WHERE {
    ?Person foaf:givenname ?firstName ;
            foaf:age ?Age .
    FILTER (?Age > 20 && regex(?firstName, "^R"))
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:20:47