我正在寻找一个允许类型分类映射到另一个应用程序的本体。我需要找到所有类型Person
的实例,而没有明确定义Jack
为Person
. 目前使用 Protege 我无法仅使用子类来做到这一点。
让我们假设以下内容:
MaleCollegeStudent is a subclass of CollegeStudent.
CollegeStudent is a subclass of Student.
Student is a subclass of Person.
ApplicationPersonType
是 的等价类Person
。这用于从 RDF 类显式映射应用程序类型。
Hierarchy:
MaleCollegeStudent
-> CollegeStudent
-> Student
-> Person
-> ApplicationPersonType
# Class Declarations
:MaleCollegeStudent a owl:Class .
:CollegeStudent a owl:Class .
:Student a owl:Class .
:Person a owl:Class .
:ApplicationPersonType a owl:Class .
# SubClass Declarations
:MaleCollegeStudent rdfs:subClassOf :CollegeStudent .
:CollegeStudent rdfs:subClassOf :Student .
:Student rdfs:subClassOf :Person .
# Equivalence Declarations
:ApplicationPersonType owl:equivalentClass :Person .
# Instances
:Jack a :MaleCollegeStudent .
:Ellen a :Student .
# Assumed Inferred Relations
:Jack a :Person .
:Jack a :Student .
:Jack a :CollegeStudent .
:Ellen a :Person .
:Jack a :ApplicationPersonType .
:Ellen a :ApplicationPersonType .
出于某种原因,我使用的 Protégé 工具没有给我上述推断的结果。我的假设是推理器不起作用/没有在层次结构的那个高度列出推理。
Q1。该工具是否列出了所有推论?IE。它是否会走捷径并且只列出直接推论,即使推断出更高层次的层次之间有更多的联系?
为了满足我的要求,我希望关系推断:
杰克是类型ApplicationPersonType
艾伦是类型ApplicationPersonType
Q2。我是否遗漏了上述内容来实现这一目标?
当我向每个类添加域和范围时,我可以看到推理在该工具上工作。理想情况下,我还想知道是否有一种方法可以在只有子类的多级层次结构中推断类型。
Q3。是否可以推断出 Jack 是ApplicationPersonType
没有为任何项目映射的域和范围的类型?
提前感谢您的回复!