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
。
有一个 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
。