OWL 公理:给定特定 class 的个体,强制对象与另一个个体存在 属性 关系

OWL axiom: Given an individual of a particular class, enforce an existence of an Object Property relation with another individual

在 OWL 中,有没有一种方法可以说明特定 class 的个体必须通过特定对象 属性 与另一个个体相关?

例如,我想声明:

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

即"For all objects, there exists a shape that is the shape of the object."

所以如果有一个对象类型的个体没有与之关联的形状,推理者会发现它不一致。

我尝试了一个公理:

Object SubClassOf hasShape min 1 Shape

但它不起作用。

问题似乎是因为 OWL 中的对象 属性 没有标识,但是这个问题有解决方法吗?

(我使用的是 Protege 5.2.0)

你是正确的,Object SubClassOf hasShape min 1 Shape 的意思是 Object 的每个个体都通过 hasShape 属性 与 Shape 的个体相关联.

因此,如果您创建了一个 Object 类型的个体 x 而没有 xShape 类型的个体相关联,为什么推理者无法确定您的 ontology不一致?其原因是由于 开放世界假设 。非正式地,这意味着推理者可以从 ontology 中做出的唯一推论是基于 ontology 中陈述的明确信息或可以从明确陈述的信息中得出的内容。

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

Individual: x
  Types: 
    Object,
    hasShape max 0 owl:Thing

顺便说一句,这个问题与你所说的身份无关。

我找到的一个解决方案是使 ontology "closed world",使 owl:Thing 等同于迄今为止定义的所有个体的集合。