我环顾四周,无法真正找到为什么以下属性限制在一种情况下有效但在另一种情况下无效的答案。我试图将“一些”和“唯一”对象属性限制结合起来,以要求定义的类只有一个特定的属性+对象,并且它还至少定义了一个这样的属性+对象。我无法让这种组合产生预期的类推断。我想用它来识别具有特定类型和属性断言组合的实例作为指定类。我不打算使用它来将实例分配为该类的类型(如果重要的话)。
RDF/OWL 文件位于:https
://pastebin.com/NZMCuZjE
我使用 Protege 5.5 构建了它。两个推理器(FaCT++ 1.6.5 和 HermiT 1.4.3.456)给出了相同的结果。
我希望将X_LetterThing定义为等效于
LetterThing 和( hasLetter only X )和( hasLetter some X )
会产生推断实例x_letter_thing_test属于 X_LetterThing 类型的效果,因为x_letter_thing_test已断言类型LetterThing并且具有对象属性断言hasLetter x,但是是没有这样的推论。
第二个相关问题是实例Compound_letter_thing_test不会被推断为Compound_LetterThing类型,除非我为类LetterThing包含一个覆盖公理,而我真的没有。(此外,添加覆盖公理对第一个问题没有影响。)
这是OWA还是其他?
谢谢!
d.c