首页 > 解决方案 > 选择缺少属性或属性值低于某个限制的实体

问题描述

我想开一个俱乐部。如果有证据表明您的年龄为 48 岁或以上,则您不能加入。

数据:

@prefix ns0: <http://example.com/> .

ns0:Mark 
  a ns0:person ;
  ns0:age 48 .

ns0:Anne
  a ns0:person ;
  ns0:age 41 .

ns0:Steven a ns0:person .

查询一:

prefix ns0: <http://example.com/> 
select ?s
where {
    ?s   a ns0:person ;
         ns0:age ?age .
    filter (?age < 48)
}

结果 1:ns0:Anne

查询 2:

prefix ns0: <http://example.com/> 
select ?s
where {
    ?s   a ns0:person .
    minus {
        ?s ns0:age ?age .
    }
}

结果 2:ns0:Steven

查询 3:

prefix ns0: <http://example.com/> 
select ?s
where {
    {
        ?s   a ns0:person .
        minus {
            ?s ns0:age ?age .
        } 
    }
    union {
        ?s   a ns0:person ;
             ns0:age ?age .
        filter (?age < 48)
    }
}

结果 3:GraphDB 8.6.0 返回两行,但没有命名 Anne 和 Mark:

|   | s        |
|---|----------|
| 1 |          |
| 2 | ns0:Anne |

标签: sparqlgraphdb

解决方案


作为@Damyan Ognyanov 响应的补充,该错误将在即将发布的 8.9 版本中修复。


推荐阅读