У меня есть онтология с двумя типами отношений: amigo_de
и amigo_de_amigo_de
.
Область и диапазон этих отношений одинаковы: pessoa
.
Файл, содержащий эту онтологию, представляет собой файл .nt.
Что мне нужно, так это запрос, чтобы получить все строки, в которых объект имеет предикат amigo_de_amigo_de
.
Я новичок в SPARQL, и у меня возникли проблемы с его изучением.
Полезная информация:
amigo_de_amigo_de
УРИ: file://ontologiaTeste.ntriples#amigo_de_amigo_de
pessoa
УРИ: file://ontologiaTeste.ntriples#pessoa
ontologiaTeste.ntriples
(Я знаю, что расширение файла неправильное, я исправлю его позже.)
Я не пробовал много вещей, но я изучаю SPARQL, чтобы попытаться решить эту проблему.
Вам нужно что-то вроде этого:
SELECT ?obj
WHERE {
_:a <file://ontologiaTeste.ntriples#amigo_de_amigo_de> ?obj
}
Здесь мы указываем шаблон графа, которому должны удовлетворять тройки, чтобы быть возвращенными как часть результата запроса.
Итак, все объекты ?obj
, у которых есть предикат amigo_de_amigo_de
, а для субъекта пустой узел _:a
, так как эта информация вас не интересует.
Если вам также нужна тема, вы можете использовать этот запрос:
SELECT ?sub ?obj
WHERE {
?sub <file://ontologiaTeste.ntriples#amigo_de_amigo_de> ?obj
}
Как указал Стефан, это несколько элементарных запросов. Вы можете найти полезные примеры для каждой семантической веб-концепции в документах W3C, которые их определяют. Не стесняйтесь задавать вопросы здесь, но сначала просмотрите примеры, чтобы ускорить процесс обучения! :))
Вы столкнулись с какой-либо проблемой? То, что вы просите, кажется очень простым запросом. Первые примеры в спецификации SPARQL показывают, как будет выглядеть такой запрос: Создание простых запросов.