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

OWL: How to get inheritance of property relations between two classes from those of superclasses?

假设我们有两个 类,名为 PeopleDisease。这些 类 由对象 属性 has 关联。

:People :has :Disease

People 有子类(或个体)JohnDisease 有子类(或个体)Cancer.

:John a :People
:Cancer a :Disease

如何通过推理得到这些sub类之间的关系?

:John :has :Cancer

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

首先,subclass和individual是截然不同的概念。个体(实例)是 classes 的成员。 Subclass 表示一个 class 是另一个 class 的子集,这意味着一个蕴涵(通过推理)是一个 subclass 的所有成员都是(super )class。 (仅供参考:OWL中没有继承的概念。)

第二 class 级属性,例如 :People :has :Disease 对 class 个人没有任何意义。定义属性与classes的关系的方法是设置属性的域和范围。 (仅使用 :has 作为 属性 名称表明存在广泛的误解,可能来自其他类型的语言。)所以我建议使用名称 :hasDisease 和断言:

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

第三,假设 :Cancer:Disease 的子 class,您可以断言 :John :hasDisease :Cancer 并推断约翰患有疾病。这需要一个标准的 RDFS 推理机。此外,鉴于上面的域和范围定义,以及断言 :Joy :hasDisease :Gout,RDFS 推理器将推断出 :Joy a :Person:Gout a :Disease.

您可以通过 Google 找到一些 OWL 引物。我建议复习其中的一些内容,以基本了解 OWL 和推理配置文件的工作原理。