我正在使用 Protege 4.3.0 来描述石油受损地区的修复活动。我是本体的新手,并遵循Matthew Horridge 的教程。
他表达了这样一个事实,即每个比萨饼都通过专有的 hasTopping 有一些浇头,它通过 hasBase 等有一个基础......我想知道创建一个通用属性“has”并表达这个事实的缺点是什么
Pizza has some Topping
Pizza has max 1 Base
等等 ...
有什么考虑吗?
阿德里亚诺
我正在使用 Protege 4.3.0 来描述石油受损地区的修复活动。我是本体的新手,并遵循Matthew Horridge 的教程。
他表达了这样一个事实,即每个比萨饼都通过专有的 hasTopping 有一些浇头,它通过 hasBase 等有一个基础......我想知道创建一个通用属性“has”并表达这个事实的缺点是什么
Pizza has some Topping
Pizza has max 1 Base
等等 ...
有什么考虑吗?
阿德里亚诺
创建本体的一般规则是尽可能具体。基于 Pizza 本体示例和两个主要对象属性:
hasTopping
hasBase
如果你只定义“有”而不是两个,这意味着你可以说:
Pizza has max 1 PizzaBase
Pizza has min 3 PizzaTopping
想象一下,您的 FrenchPizza 相当于:
has some (TomatoTopping and ThinBase)
这将导致不一致,因为 PizzaBase 和 PizzaTopping 是不相交的,并且无法区分与它们相关的属性。但是,如果您拥有原始的两个属性,则不会发生这种情况。
希望这可以帮助。
在许多情况下使用has
会很好。与征服科学家所说的相反,我认为没有理由尽可能具体。其实就是这样,Pizza本体就不够具体了。但是,简单地使用动词has
作为属性名称可能容易出错。但是你可以有一个hasIngredient
比hasTopping
和更一般的属性hasBase
。
定义的一个优点hasTopping
是您可以独立于 设置其域和范围hasBase
,以便:
<p> <hasTopping> <t> .
包括:
<t> a <Topping> .
尽管:
<p> <has> <t> .
没有说什么<t>
。
无论如何,您必须意识到 Pizza 教程并不是一个好的本体建模教程。它只是展示了 Protégé 4 的所有功能。如果我在卖比萨饼并想用 SemWeb 技术组织信息,我永远不会使用这样的本体。