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

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

我正在用protege 5.2创建我的第一个本体,我遇到了一些麻烦

假设我有以下课程:

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有许多性别,其中一些是男性等。