Выберите объекты, у которых отсутствует свойство или значение свойства которых ниже некоторого предела - PullRequest
0 голосов
/ 26 февраля 2019

Я хочу создать клуб.Вы не можете присоединиться, если есть доказательства того, что ваш возраст 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: Энн

Запрос 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 возвращает две строки, но неимя Анна и Марк:

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

1 Ответ

0 голосов
/ 27 февраля 2019

В дополнение к ответу @Damyan Ognyanov, ошибка будет исправлена ​​в следующем выпуске 8.9.

...