OWL公理:给定特定类的个体,强制存在与另一个人

时间:2018-03-08 23:05:35

标签: owl protege

在OWL中,有没有办法说明某个特定类的个体必须通过特定的对象属性与另一个人相关?

例如,我想说明:

forall(x) Object(x) -> exists(y) Shape(y) ^ hasShape(x, y)

即,"对于所有对象,存在一个形状为对象的形状。"

因此,如果有一个Object类型的个人没有与之关联的形状,推理者会发现它不一致。

我尝试了一个公理:

Object SubClassOf hasShape min 1 Shape

但它不起作用。

似乎问题是因为OWL中的Object Property没有标识,但是这个问题是否有解决方法?

(我使用Protege 5.2.0)

2 个答案:

答案 0 :(得分:2)

您是正确的Object SubClassOf hasShape min 1 Shape的含义是Object的每个人都通过Shape属性与hasShape的个人相关联。

因此,如果您创建的x类型Object没有xShape的个人相关联,那么为什么推理器不会确定您的本体不一致?造成这种情况的原因是开放世界假设。非正式地,它意味着推理者可以从本体论中做出的唯一推论是基于本体论中陈述的明确信息或者可以从明确陈述的信息中得出的内容。

当您声明xObject时,本体中有无明确信息,表明x 通过Shape属性与hasShape个人相关联。要明确表示x不是这样的关系,您必须按如下方式定义x

Individual: x
  Types: 
    Object,
    hasShape max 0 owl:Thing
是的,这个问题与你所说的身份无关。

答案 1 :(得分:0)

我找到的一个解决方案是通过制作猫头鹰来制作本体"封闭的世界",相当于目前为止定义的所有个体的集合。