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
而没有 x
与 Shape
类型的个体相关联,为什么推理者无法确定您的 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 等同于迄今为止定义的所有个体的集合。
在 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
而没有 x
与 Shape
类型的个体相关联,为什么推理者无法确定您的 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 等同于迄今为止定义的所有个体的集合。