Я должен получить все экземпляры класса C и подклассы (прямые или косвенные) C в SPARQL.
Я могу получить все прямые подклассы C следующим образом:
SELECT ?entity
WHERE {
?subclass rdfs:subClassOf :C .
?entity rdf:type ?subclass .
}
Но я не могу получить экземпляры косвенного подкласса и ни один экземпляр C.
Насколько я знаю (я предварительно вычислил их) все подклассы (прямые и косвенные из C), и я могу построить динамический запрос, возможно ли построить запрос, подобный следующему?
SELECT ?entity
WHERE {
?entity rdf:type in <list>.
}
Спасибо всем.
РЕДАКТИРОВАТЬ:
Я только что решил это, хотя и не изящным способом.
SELECT ?entity
WHERE {
{ ?entity rdf:type :C }
UNION { ?entity rdf:type :SubClass1 }
UNION { ?entity rdf:type :SubClass2 }
UNION { ?entity rdf:type :SubClass3 }
}