【发布时间】:2018-08-17 10:45:01
【问题描述】:
在 OWL 中,有没有办法声明特定类别的个体必须通过特定对象属性与另一个个体相关联?
例如,我想说:
forall(x) Object(x) -> exists(y) Shape(y) ^ hasShape(x, y)
即“对于所有对象,都存在一个形状就是对象的形状。”
所以如果有一个对象类型的个体没有与之关联的形状,推理器会发现它是不一致的。
我尝试了一个公理:
Object SubClassOf hasShape min 1 Shape
但它不起作用。
问题似乎是因为 OWL 中的 Object Property 没有标识,但是有解决此问题的方法吗?
(我正在使用 Protege 5.2.0)
【问题讨论】:
-
“它不工作”是什么意思? “OWL 中的对象属性没有身份”是什么意思?您在伪一阶逻辑公理中所写的内容与您在 OWL 公理中所写的内容完全相同。
-
推理器在您的案例中没有发现任何不一致之处。 OWL 推理是关于推理,而不是约束验证。还有其他方法可以处理这个问题,例如颗粒 ICV、SHACL 等 ...
-
@AntoineZimmermann 不工作是指推理器没有发现不一致。