OWL:如何从超类的类中继承两个类之间的属性关系?

时间:2016-05-10 14:41:53

标签: owl protege inference reasoning object-property

我们假设我们有两个名为PeopleDisease的课程。这些类与Object Property has相关联。

:People :has :Disease

People有子类(或个人)JohnDisease有子类(或个人)Cancer

:John a :People
:Cancer a :Disease

我们如何通过推理获得这些子类之间的关系?

:John :has :Cancer

1 个答案:

答案 0 :(得分:3)

在你得到答案之前,你需要解决一些误解。

首先,子类和个体是非常不同的概念。个人(实例)是类的成员。子类表示一个类是另一个类的子集,这意味着一个暗示(通过推断)是一个子类的所有成员都是(超级)类的成员。 (仅供参考:OWL中没有继承的概念。)

第二个类级属性,例如:People :has :Disease对类个体没有意义。定义属性与类的关系的方法是设置属性的域和范围。 (仅使用:has作为属性名称表示可能来自其他类型语言的一系列误解。)因此,我建议使用名称:hasDisease和断言:

:hasDisease rdfs:domain :People .
:hasDisease rdfs:range :Disease .

第三,鉴于:John :hasDisease :Cancer:Cancer的子类,你可以断言:Disease并推断John患有疾病。这需要标准的RDFS推理器。此外,根据上面的域和范围定义以及断言:Joy :hasDisease :Gout,RDFS推理器将推断出:Joy a :Person:Gout a :Disease

您可以通过Google找到一些OWL引物。我建议仔细阅读其中的一些内容,以便对OWL和推理配置文件的工作方式有一个基本的了解。