所以,我不太了解OWL /Protégé:假设我有一个类Clazz
,它是仅包含个人I1
和I2
的枚举类。然后,我创建第三个个人I3
并将其声明为Clazz
类型。如果现在启动推理机,我希望它能推断所有(或至少一些)个人之间的sameIndividualAs
。情况并非如此,我用隐士和佩莱特推理机进行了测试。
如果我明确声明这三个个体彼此不同,则本体将变得不一致。谁能告诉我为什么个人没有出现在Protégé的sameIndividualAs
中?
由于OWL中没有唯一的名称假设,因此在明确断言手动键入的个体为owl:differentFrom
定义类的所有个体(受owl:oneOf
限制的集合)之前,本体是一致的。如果没有断言,则如果有一个以上的个人,则可以做出的唯一推断是,在您的情况下,I1
和I2
是类Clazz
的成员。 I3
应该与其中一个人相同,但是没有信息可以确定哪个。您可以通过将Clazz
定义为owl:oneOf :I1
来消除这种歧义。这样就不会有歧义,也没有足够的信息来推断:I3 owl:sameAs :I1
。