选择缺少属性或属性值低于某个限制的实体

时间:2019-02-26 20:02:26

标签: sparql graphdb

  

我想成立一​​个俱乐部。如果有证据表明您的年龄在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 .

查询1:

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:史蒂文

查询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 |

1 个答案:

答案 0 :(得分:1)

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