拥有超级人,其中包含两个子类学生和员工。学生子类包含3个人(姓名属性):student1,student2,student3。员工子类包含2个人(姓名属性):staff1和staff2。
是否可以查询 Person 类并获取所有个体,因为它是超类?
你还能怎么做呢?特别是当你有这么多的子类?
输出类似于:
人
-----------
student1
STUDENT2
学生三
STAFF1
staff2
答案 0 :(得分:1)
您需要询问属于:Person
或其任何子类的所有资源。如果您使用property path,则查询中只需要一个三元模式:
SELECT ?person
WHERE { ?person a/rdfs:subClassOf* :Person}
此查询要求提供属于类:Person
成员的资源,这是星形为零时的情况,或者是其任何子类的成员,当星形是一个或多个时,就是这种情况
如果需要,您可以进一步将主题限制为owl:NamedIndividual
。