SPARQL Путь между двумя узлами

Дан график:

@prefix da:    <http://example.com/data/> .
@prefix on:    <http://example.com/on/> .

da:Shenaz  on:husband  da:Javed .

da:Rita  on:friend  da:Noor ;
        on:sister  da:Tom .

da:Noor  on:sister  da:Shenaz .

da:Javed  on:child  da:Jaabir .

da:Tom  on:sister  da:James .

da:Jaabir  on:grandFather  da:Rafick .

Между da:Noor и da:James есть путь, который равен da:Noor ^on:friend/on:sister/on:sister da:James ., но следующий запрос возвращает false

PREFIX da:    <http://example.com/data/> 
PREFIX on:    <http://example.com/on/> 
ASK {
  da:Noor ((<>|!<>)|^(<>|!<>))* da:James .
}

Это возможная ошибка в Jena, с RDFLib в Python возвращается True


person Noor    schedule 10.04.2017    source источник
comment
С помощью какого API/тройного хранилища?   -  person UninformedUser    schedule 10.04.2017
comment
Как примечание, вы должны исправить объявление префикса da и on, то есть добавить либо /, либо #.   -  person UninformedUser    schedule 10.04.2017
comment
@AKSW, за разделитель, спасибо, за API, это Jena   -  person Noor    schedule 10.04.2017


Ответы (1)


По какой-то причине путь к свойству не оценивается должным образом. Я попробовал это с более простым запросом:

  PREFIX  :     <http://ex.org/>
  PREFIX  da:   <http://example.com/data/>

  SELECT  ?u
  WHERE
    { da:Noor ^(:p1|!:p1) ?u }

Алгебра выглядит нормально, т.е. путь обратный:

(project (?u)
    (path ?u (alt <http://ex.org/p1> (notoneof <http://ex.org/p1>)) <http://example.com/data/Noor>))

Похоже на баг, но я действительно могу ошибаться. Я спрошу в списке рассылки Jena, а позже опубликую ответ здесь.

Обновлять:

Проблема заключается в отрицании, когда сам объект заземлен, что имеет место здесь из-за обратного оператора ^. Согласно комментарию @AndyS, эта ошибка будет исправлена ​​в Apache Jena 3.3.0. См. JENA-1317.

person UninformedUser    schedule 10.04.2017
comment
да, я тоже так думаю, в RDFlib Python возвращается True - person Noor; 10.04.2017
comment
Спасибо за подробности: это будет исправлено в выпуске 3.3.0: см. ошибки. apache.org/jira/browse/JENA-1317 - person AndyS; 10.04.2017