【问题标题】:Protege: property domain restrictions using other propertiesProtege:使用其他属性的属性域限制
【发布时间】:2018-10-16 11:03:35
【问题描述】:

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

假设我有以下类:

Gender 带有子类 FemaleMale

Human 带有子类 PatientDoctor

Disease 带有子类 Cancer 带有子类 Prostate_Cancer

和属性:

hasDisease(域:Patient,范围:Disease

hasGender(域:Patient,范围:Gender

现在我想指定PatienthasDisease Prostate_CancerPatient 也是hasGender Male

在不创建新类的情况下这可能吗?

【问题讨论】:

  • 不应该FemaleMale 是个人,而不是班级?还是存在BrutalMale 等个人?
  • 我也是这么认为的,但是练习特别要求这样做——不过我喜欢你的例子
  • hasGender 的域应该不是Human 而不是Patient
  • 那么请在此处粘贴该练习的全文。
  • 练习表受版权保护,所以我不能在这里发布。但我可以向你保证,它要求一个类层次结构以及 hasGender 的域是 Patient

标签: class properties ontology protege restrictions


【解决方案1】:

在 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 这样的类被称为匿名类,不会显示为推理。

【讨论】:

  • 或者... SubClassOf: hasGender some Male,遵循他们奇怪的建模方法(据我所知)。
  • 你可以这样做,但问题是如果你有一个患有前列腺癌的人,它不会推断出这个人是Male
  • 看来Gender的个体不是人,或许OP的意思是这样的:stackoverflow.com/a/44387574,i。 e.有很多性别,其中一些是Male 性别等。
猜你喜欢
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-25
  • 2010-09-17
  • 2017-12-16
  • 1970-01-01
  • 2016-06-08
相关资源
最近更新 更多