Class Protege:使用其他属性的属性域限制
我正在用protege 5.2创建我的第一个本体,我遇到了一些麻烦 假设我有以下课程:Class Protege:使用其他属性的属性域限制,class,properties,ontology,protege,restrictions,Class,Properties,Ontology,Protege,Restrictions,我正在用protege 5.2创建我的第一个本体,我遇到了一些麻烦 假设我有以下课程: Gender及其子类Female和Male Human及其子类Patient和Doctor 疾病伴亚类癌症伴亚类前列腺癌 以及物业: hasDisease(多曼:患者,范围:疾病) hasGender(领域:Patient,范围:Gender) 现在我想指定患者who患有疾病前列腺癌是患者也有性别男性 这在不创建新类的情况下是可能的吗?在Protege中,您可以通过添加一个通用类公理来实现这一点: hasDi
Gender
及其子类Female
和Male
Human
及其子类Patient
和Doctor
疾病
伴亚类癌症
伴亚类前列腺癌
以及物业:
hasDisease
(多曼:患者
,范围:疾病
)
hasGender
(领域:Patient
,范围:Gender
)
现在我想指定患者
who患有疾病
前列腺癌
是患者
也有性别
男性
这在不创建新类的情况下是可能的吗?在Protege中,您可以通过添加一个通用类公理来实现这一点:
hasDisease some Prostate_Cancer SubClassOf: Male
然后,每当你有一个人患有前列腺癌,推理者就会推断这个人是男性
您可以将其建模为
hasDisease some Prostate_Cancer SubClassOf: hasGender some Male
正如@StanislavKralin所建议的,但推理者不会推断出一个人无论何时患有前列腺癌都是男性。原因有两方面:
(1) 域和范围限制仅说明,每当两个个体通过该属性链接时,第一个个体将属于域中指定的任何类型,第二个个体将属于指定为范围的任何类型
(2) 事实上,一个本体论有无限多的推论。可用的工具不能提供无限的推论。因此,像Protege这样的工具只提供有命名类的推论,例如
Male
。像hasgenerd一些男性
这样的类被称为匿名类,不会显示为推论。女性和男性
不应该是个人,而不是类吗?或者有像布鲁塔马尔这样的人?我也这么认为,但是练习特别要求这样做-我喜欢你的例子,因为hasexent
的域应该不是Human
而不是Patient
?那么请将练习的全文粘贴到这里。练习表是版权所有的,所以我不能在这里发布。然而,我可以向你保证,它要求一个类层次结构,以及hasexent
成为患者的域,或者可能是。。。子类:hasGender一些男性
,遵循他们奇怪的建模方法(我也理解)。你可以这样做,尽管问题是如果你有一个人患有前列腺癌,它不会推断这个人是男性
。似乎性别
的人不是人,也许OP的意思是这样的:,i。E有许多性别,其中一些是男性等。