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

时间:2018-05-06 14:15:53

标签: class properties ontology protege restrictions

我用5.2号保护创建了我的第一个本体,我遇到了麻烦。

我们说我有以下课程:

带有子类GenderFemale

Male 带有子类HumanPatient

Doctor 带有子类Disease

的子类Cancer

Prostate_Cancer

和属性:

hasDisease(doman:Patient,范围:Disease

hasGender(域名Patient,范围:Gender

现在,我想指定一个Patient hasDisease Prostate_Cancer Patient hasGenderMale {{1}}。

这是否可以在不创建新类的情况下实现?

1 个答案:

答案 0 :(得分:2)

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

hasDisease some Prostate_Cancer SubClassOf: Male

然后,只要您患有前列腺癌的个体,推理者就会推断该个体是Male

您可以将其建模为

hasDisease some Prostate_Cancer SubClassOf: hasGender some Male

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

(1)域和范围限制仅表明每当两个人通过该属性链接时,第一个人将是域中指定的任何类型,第二个人将是指定为的任何类型范围。

(2)实际上,本体论有无数的推论。要成为可用的工具无法提供无限的推论。因此,像Protege这样的工具只提供有命名类的推论,比如Male。像hasGender some Male这样的类被称为匿名类,不会显示为推论。