Protege反向对象属性

问题描述 投票:0回答:1

我正在尝试定义两个反向对象属性。

对象属性是:

  • hasChild
  • hasParent

很明显,如果JOHN hasParent ANNA,则为ANNA hasChild JOHN。这似乎是通过使用Protege的InverseOf完成的,但是如果我们假设ANNA is Happy,下面的DL查询:

hasChild only Happy

也返回JOHN。推理机解释为hasChild is inverseOf hasParent。有人可以帮我清理一下吗?预先感谢!

artificial-intelligence owl ontology protege protege4
1个回答
1
投票

hasChild only Happy是通用约束,没有附带的存在约束。在“开放世界”假设下,这些通用限制最终包括所有定义的个人,因为for all包括没有该属性填充物的情况。

[要验证是否是这种情况,请创建一个定义为hasChild only Happy的命名类,并检查哪些类与之等效。最有可能在结果中找到owl:Thing。因此,所有个人都将成为该查询的答案。

为避免这种情况,请在查询中添加hasChild some Happy,以便在得出推断之前必须有一个填充符。

但是请注意,您希望父母快乐。也许您是想反转方向并说hasParent only Happy

© www.soinside.com 2019 - 2024. All rights reserved.