Protege:(SPARQL) 为 Sub classes 的个体查询 Super class

Protege: (SPARQL) Query Super class for individuals of Sub classes

有一个 Super class Person 有两个子 classes Student员工。 Student sub-class包含3个人(姓名属性):student1, student2, student3。 Staff Sub-class 包含 2 个人(姓名 属性):staff1 和 staff2。

是否可以查询Person class并获取所有个人,因为它是超级class?

你还能做些什么?特别是当你有这么多子classes?

输出类似于:

------------

学生1

学生2

学生3

员工 1

员工2

您需要请求属于 :Person 或其任何子 class 成员的所有资源。如果您使用 property path,您的查询中只需要一个三重模式:

SELECT ?person
    WHERE { ?person a/rdfs:subClassOf*  :Person}

此查询请求的资源是 class :Person 的成员,当星号为零时就是这种情况,或者是其任何子 class 的成员, 星星一多的时候就是这样了

如果需要,您可以进一步限制主题为owl:NamedIndividual