我是 Protégé 的新手,所以我有一个非常基本的问题。我有课程Child
和Parent
. Child
有子类Girl
。
child1
有类型Girl
有child2
类型Child
和anna
都peter
有 类型Parent
. 此外,还有关系,没有进一步的anna isParentOf child1
特征peter isParentOf child2
。
现在我想定义类ParentOfGirl
,使其等价于Parent and isParentOf only Girl
. 我希望推理器推断出anna
具有这种新类型,但事实并非如此。
我添加了该Inverse functional
属性,isParentOf
因为父母可以有多个孩子。如果我再添Symmetric
加到我得到的anna
具有 type的关系ParentOfGirl
,但我不想必须isParentOf
是对称的。
如果我在没有对称的情况下查看上述语义,我会看到:
ParentOfGirl ≡ {anna, peter} ⋂ { x ∊ owl:Thing | 如果 ∀y (x, y) ∊ isParentOf 那么 y ∊ 女孩}
child1 ∊ 孩子和 child1 ∊ 女孩
isParentOf ≡ {(anna, child1), (peter, child2)}
thenchild1
是唯一与 typeChild
相关的个体,anna
它也有 type Girl
。在我看来,在这种情况下,推理器只能从右到左查看关系,因为如果isParentOf
是对称的,它会推导出anna
。此外,如果它与 child2 无关,我希望它peter
也会存在。ParentOfGirl
但这也不会发生。
为什么推理器(Pellet 或 HermiT)看不到那anna
是 a ParentOfGirl
?