使用Protege描述本体中的“包含”

时间:2013-05-17 13:21:37

标签: owl protege protege4

我使用Protege 4.3.0来描述石油损坏地区的修复活动。 我是ontologies的完全新手,并遵循Matthew Horridge's tutorial

他表达了这样一个事实,即每个比萨饼都有一些通过礼仪进行的Toppings,它通过hasBase等有一个基础...... 我想知道创建一般属性“has”并用

表达事实的缺点是什么

Pizza has some Topping

Pizza has max 1 Base

依旧......

有什么考虑吗?

阿德

2 个答案:

答案 0 :(得分:2)

创建本体的一般规则是尽可能具体。基于Pizza本体示例和两个主要对象属性:

hasTopping
hasBase

如果你只定义“has”而不是两个,那就意味着你可以说:

Pizza has max 1 PizzaBase
Pizza has min 3 PizzaTopping

想象一下,你有FrenchPizza,相当于:

has some (TomatoTopping and ThinBase)

这将导致不一致,因为PizzaBase和PizzaTopping是不相交的,并且它无法区分与它们相关的属性。但是,如果您有原始的两个属性,则不会发生这种情况。

希望这有帮助。

答案 1 :(得分:1)

在许多情况下使用has会很好。与征服科学家所说的相反,我认为没有理由尽可能具体。事实上,就是这种情况,比萨本体论不够具体。但是,仅使用动词has作为属性名称可能会出错。但是,您可以拥有比hasIngredienthasTopping更通用的属性hasBase

定义hasTopping的一个好处是,您可以独立于hasBase设置其域和范围,以便:

<p>  <hasTopping>  <t> .

需要:

<t>  a  <Topping> .

,同时:

<p>  <has>  <t> .

<t>没有任何说明。

无论如何,您必须意识到Pizza教程不是良好的本体建模教程。它只是展示了Protégé4的所有功能。如果我销售比萨饼并希望用SemWeb技术组织信息,我绝不会使用这样的本体。