Вы пытаетесь выполнить рекурсивный запрос SPARQL? Другими словами, выберите данного человека и все его свойства. Если объектом свойства является другое лицо, выберите его свойства и т. Д.
Я не верю, что SPARQL поддерживает это.
Наивным подходом было бы сделать что-то подобное (и, предполагая, что вы имеете в виду отдельных лиц, а не классов, это фактически соответствует вашим требованиям, но не обрабатывает следующий «уровень» троек).
CONSTRUCT {
?s ?p ?o .
?o ?p2 ?o2 .
} WHERE {
?s ?p ?o .
?o ?p2 ?o2 .
}
Обратите внимание, что если ?o2
является субъектом каких-либо утверждений, этот запрос не будет их возвращать.