Protege:属性 使用其他属性的域限制

Protege: property domain restrictions using other properties

我正在用 protege 5.2 创建我的第一个 ontology,我 运行 遇到了一些麻烦。

假设我有以下 类:

Gender 子类 FemaleMale

Human 子类 PatientDoctor

Disease 子类 Cancer 子类 Prostate_Cancer

和属性:

hasDisease(域:Patient,范围:Disease

hasGender(域:Patient,范围:Gender

现在我想指定 Patient hasDisease Prostate_CancerPatient hasGender Male

这是否可以不创建新的 类?

在 Protege 中,您可以通过添加通用 class 公理来实现此目的:

hasDisease some Prostate_Cancer SubClassOf: Male

那么每当你有一个人患有前列腺癌的疾病时,推理者就会推断出这个人是Male

您可以将其建模为

hasDisease some Prostate_Cancer SubClassOf: hasGender some Male

正如@StanislavKralin 所建议的那样,但是推理者不会推断出一个人只要患有前列腺癌就 Male。这样做的原因有两个:

(1) 域和范围限制仅说明只要两个个体通过 属性 链接,第一个个体将属于域中指定的任何类型,第二个个体将是指定为范围的任何类型。

(2) 实际上 ontology 有无限多的推论。可用的工具不能提供无限的推论。因此,像 Protege 这样的工具只提供名为 classes 的推论,即 Male。 类 与 hasGender some Male 一样被称为匿名 class 并且不会显示为推论。