RDF 使用 OWL 和 Protégé 推断子类

问题描述

我正在寻找一个本体,允许将类型分类映射到另一个应用程序。我需要找到所有类型为 Person 的实例,而没有明确定义 JackPerson 的三元组。目前使用 Protege 我还不能只使用子类。

假设如下:

MaleCollegeStudent is a subclass of CollegeStudent. 
CollegeStudent is a subclass of Student.
Student is a subclass of Person.

ApplicationPersonTypePerson 的等效类。这用于从 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é 工具没有给出上述推断结果。我的假设是推理器不起作用/没有在层次结构的那么高的层次上列出推理。

第一季度。该工具是否列出了所有推理? IE。即使推断出更高级别的层次结构之间存在更多链接,它是否会走捷径并仅列出直接推论?

为了满足我的要求,我想推断出以下关系:

杰克属于 ApplicationPersonType 类型

艾伦属于 ApplicationPersonType

第二季度。为了实现这一目标,我是否遗漏了上述内容

当我向每个类添加域和范围时,我可以看到在工具上进行推理。理想情况下,我还想知道是否有办法在只有子类的多级层次结构上推断类型。

第三季度。是否可以推断 Jack 属于 ApplicationPersonType 类型,但没有为任何项目映射域和范围?

提前感谢您的回复

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...