使用 Pellet 和 HermiT 了解 Protege 中的通用量化
Understanding Universal Quantification in Protege with Pellet and HermiT
我是 Protégé 的新手,所以我有一个非常基本的问题。
我有 classes Child
和 Parent
。 Child
有子class Girl
.
child1
的类型为 Girl
,child2
的类型为 Child
,anna
和 peter
的类型均为 Parent
。此外,还有关系 anna isParentOf child1
和 peter isParentOf child2
没有进一步的特征。
现在我想定义 class ParentOfGirl
等同于 Parent and isParentOf only Girl
。我希望推理者推断出 anna
有这种新类型,但事实并非如此。
我将 Inverse functional
属性 添加到 isParentOf
因为一个 parent 可以有多个 child。如果我然后也将 Symmetric
添加到关系中,我得到 anna
具有类型 ParentOfGirl
,但我不想 isParentOf
是对称的。
如果我不对称地看上面的语义,我会看到:
ParentOfGirl ≡ {anna, peter} ⋂ { x ∊ owl:Thing | if ∀y (x, y) ∊ isParentOf then y ∊ Girl}
child1 ∊ Child and child1 ∊ Girl
isParentOf ≡ {(anna, child1), (peter, child2)}
那么child1
是唯一一个与anna
相关的Child
类型的个体,它也有Girl
类型。在我看来,在这种情况下,推理者只能从右到左查看关系,因为如果 isParentOf
是对称的,它会推导出 anna
。此外,如果 peter
与 child2 没有关系,我希望它也会在 ParentOfGirl
中。但这也不会发生。
为什么推理者(Pellet 或 HermiT)看不出 anna
是 ParentOfGirl
?
@AKSW 在评论中是正确的。推理者无法判断 parent 是否只有女性 children。您需要断言此功能,例如通过为个人添加类型。
在这种情况下,此断言等同于您寻求的推论 - 所以这不是一个很好的解决方法。
如果将 forall 更改为 some,您将能够找到至少一个女孩的 parents。这是您的目标 class 的超级class,可能有助于您的申请。
我是 Protégé 的新手,所以我有一个非常基本的问题。
我有 classes Child
和 Parent
。 Child
有子class Girl
.
child1
的类型为 Girl
,child2
的类型为 Child
,anna
和 peter
的类型均为 Parent
。此外,还有关系 anna isParentOf child1
和 peter isParentOf child2
没有进一步的特征。
现在我想定义 class ParentOfGirl
等同于 Parent and isParentOf only Girl
。我希望推理者推断出 anna
有这种新类型,但事实并非如此。
我将 Inverse functional
属性 添加到 isParentOf
因为一个 parent 可以有多个 child。如果我然后也将 Symmetric
添加到关系中,我得到 anna
具有类型 ParentOfGirl
,但我不想 isParentOf
是对称的。
如果我不对称地看上面的语义,我会看到:
ParentOfGirl ≡ {anna, peter} ⋂ { x ∊ owl:Thing | if ∀y (x, y) ∊ isParentOf then y ∊ Girl}
child1 ∊ Child and child1 ∊ Girl
isParentOf ≡ {(anna, child1), (peter, child2)}
那么child1
是唯一一个与anna
相关的Child
类型的个体,它也有Girl
类型。在我看来,在这种情况下,推理者只能从右到左查看关系,因为如果 isParentOf
是对称的,它会推导出 anna
。此外,如果 peter
与 child2 没有关系,我希望它也会在 ParentOfGirl
中。但这也不会发生。
为什么推理者(Pellet 或 HermiT)看不出 anna
是 ParentOfGirl
?
@AKSW 在评论中是正确的。推理者无法判断 parent 是否只有女性 children。您需要断言此功能,例如通过为个人添加类型。
在这种情况下,此断言等同于您寻求的推论 - 所以这不是一个很好的解决方法。
如果将 forall 更改为 some,您将能够找到至少一个女孩的 parents。这是您的目标 class 的超级class,可能有助于您的申请。