我需要获取类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 }
}