У меня есть несколько троек, организованных следующим образом.
:A :hasB :B
:B :hasC :C
:C :hasD :D
:D :hasE :E
............
:X :hasY :Y
:Y :hasZ :Z
Все предикаты уникальны.
Мне нужно написать два запроса SPARQL.
Запрос 1 найдет все предикаты от :A
до :Z
с помощью транзитивного запроса (что-то вроде этого :A :has* :Z
). Результат 1 должен выглядеть следующим образом.
Output 1:
--------
hasB
hasC
hasD
....
hasZ
Ouery 2 найдет тройки от :A
до :Z
с помощью транзитивного запроса. Результат 2 должен выглядеть следующим образом.
Output 2:
--------
:B :hasC :C
:C :hasD :D
:D :hasE :E
............
:X :hasY :Y
Пожалуйста, дайте мне знать, как писать эти транзитивные запросы SPARQL.
:has
и использовать его в запросе. Если у ваших данных нет других свойств, вы также можете попробовать использовать шаблон подстановки<p>|!<p>
и запросить пути. - person UninformedUser   schedule 22.11.2017:has
? - person UninformedUser   schedule 22.11.2017