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

SPARQL 1.1规范中MIN/MAX聚合器跳过未绑定值的定义位置问询

SPARQL 1.1中MIN/MAX聚合器忽略未绑定值的规范依据

这个行为完全符合SPARQL 1.1的官方规范,具体定义可以在**SPARQL 1.1查询语言规范的第18.5节(聚合函数)**中找到:

首先,所有SPARQL聚合函数(除了COUNT(*)这种特殊情况)的通用规则是:会忽略组内导致聚合表达式未绑定的成员。针对MIN和MAX,规范里还有更明确的说明:

MIN(expr)返回组内表达式expr的最小RDF术语值,计算时会忽略所有使expr未绑定的组成员;MAX(expr)同理,返回最大值,同样跳过未绑定的expr值。

结合你给出的示例来看:
执行插入语句后,数据中有两组匹配:

  1. ?s = <http://s1>时,?o1 = <http://o1>,optional块匹配到?o2 = <http://o2>(绑定状态)
  2. ?s = <http://x>时,?o1 = <http://y>,optional块无匹配,?o2处于未绑定状态

按照规范,MIN(?o2)会自动跳过第二个未绑定的?o2,只基于第一个绑定的<http://o2>计算最小值,所以最终返回<http://o2>,这和Virtuoso、Stardog的表现一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:32:34