如何用同一个对象创建多个关系 属性?
How to create multiple relations with same object property?
我正在使用 protege 5 开发 ontology。我创建了 has_composition
作为对象 属性。在我的 ontology 中,相同的 object_property 用于不同的域及其各自的范围,例如 A 的 has_composition
是 B,C 和 D 的 has_composition
是 E 和 F。
如何为这个映射建模?
OWL(Ontology Web 语言,定义本体的 ontology)不允许对您尝试做的事情进行建模。
我能想到的解决方法是使用子属性。想象以下 类:
Pizza
TomatoSauce
ChocolateCake
Chocolate
如果要定义关系如
- A
Pizza
has_composition
TomatoSauce
,
- 一个
ChocolateCake
has_composition
Chocolate
然后定义如下关系:
has_composition
:没有域也没有范围(或者常见的超类,例如 Dish
和 Ingredient
)
has_tomato_sauce
:域Pizza
,范围TomatoSauce
has_chocolate
:域ChocolateCake
,范围Chocolate
这将允许推理器(计算推理的软件)推断如果 something
has_chocolate
a_chocolate
,则
something
rdf:type
Chocolate
(由has_chocolate
的域推断);
something
has_composition
a_chocolate
(因为 has_chocolate
是 has_composition
的子 属性)。
您可以在 this Gist I made 中查看此示例。
下载、打开并启动推理器。您将看到黄色的推断语句。
我正在使用 protege 5 开发 ontology。我创建了 has_composition
作为对象 属性。在我的 ontology 中,相同的 object_property 用于不同的域及其各自的范围,例如 A 的 has_composition
是 B,C 和 D 的 has_composition
是 E 和 F。
如何为这个映射建模?
OWL(Ontology Web 语言,定义本体的 ontology)不允许对您尝试做的事情进行建模。
我能想到的解决方法是使用子属性。想象以下 类:
Pizza
TomatoSauce
ChocolateCake
Chocolate
如果要定义关系如
- A
Pizza
has_composition
TomatoSauce
, - 一个
ChocolateCake
has_composition
Chocolate
然后定义如下关系:
has_composition
:没有域也没有范围(或者常见的超类,例如Dish
和Ingredient
)has_tomato_sauce
:域Pizza
,范围TomatoSauce
has_chocolate
:域ChocolateCake
,范围Chocolate
这将允许推理器(计算推理的软件)推断如果 something
has_chocolate
a_chocolate
,则
something
rdf:type
Chocolate
(由has_chocolate
的域推断);something
has_composition
a_chocolate
(因为has_chocolate
是has_composition
的子 属性)。
您可以在 this Gist I made 中查看此示例。
下载、打开并启动推理器。您将看到黄色的推断语句。