我正在使用protege 5开发本体。我已经创建了has_composition
作为对象属性。在我的本体中,相同的object_property用于不同的域及其各自的范围,例如A的has_composition
是B,C的has_composition
是D和E和F。
如何为该映射建模?
答案 0 :(得分:1)
OWL(本体Web语言,定义本体的本体)不允许对您要尝试的操作进行建模。
我可以想到的解决方法是使用子属性。想象一下以下课程:
Pizza
TomatoSauce
ChocolateCake
Chocolate
如果要定义诸如以下的关系
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中查看此示例。
下载它,打开它,然后启动推理机。您将看到黄色的推断的语句。