Я пытаюсь добиться следующего:
Получить все подключенные узлы с переменной глубиной (что-то, что я могу указать как параметр?) Между 1 и 5, из определенного узла в качестве отправной точки,
Пример: я хочу найти всех друзей Джима друзей друзей (глубина 2)
До сих пор я потерпел неудачу и смог сделать только глубину 1, добавив дополнительные свойства, подобные этому:
select * where {
?Source foaf:name ?Name .
?Source foaf:member ?Target .
?Target foaf:name ?Name2 .
?Source2 foaf:member ?Target2 .
filter(?Source = <MYIRI>)
}
Обновление 1: мне удалось добиться чего-то работоспособного, добавив пути:
select distinct * where {
?Source foaf:name ?SourceName .
?Source foaf:member/foaf:member ?Target .
?Target foaf:name ?TargetName .
filter(?Source = <IRI>)
}
Так что это будет поиск с глубиной 1, и если я хочу глубину 2, у меня будетделать
?Source foaf:member/foaf:member/foaf:member ?Target .