【问题标题】:Protege SWRL rules保护 SWRL 规则
【发布时间】:2015-05-24 14:43:23
【问题描述】:

我一直在尝试在我的本体中定义规则来推断,如果一个人的朋友彼此之间是朋友,那么所有人都是朋友,但如果有 1 个或多个彼此不是朋友,那么我的本体会推断出他们都不是朋友。

谢谢

【问题讨论】:

  • 您的isFriendWith(?y) 缺少第二个变量,如果它想成为一个关系。

标签: semantics semantic-web owl protege rdfs


【解决方案1】:

您可能需要进一步理顺您的预期语义。

据我所知,您希望 isFriendWith 至少是对称的,即当 isFriendWith(bob, alice) 时也是 isFriendWith(alice, bob)

另外,如果你想让friendsAll 有任何意义,isFriendWith 不能传递。这也将捕捉到自然的含义,因为我朋友的朋友不一定是我的朋友。

详细说明:如果isFriendWith where symmetrictransitive bob 的每个朋友也将自动成为 bob 所有朋友的朋友(因为 isFriendWith(bob, alice)暗示isFriendWith(alice, bob)。从那时起,任何isFriendWith(bob, carol) 传递都暗示isFriendWith(alice, carol)。因此,如果isFriendWith 是对称且传递的,则您会自动获得集团。

但如上所述,这可能不是你想要的。

至于在SWRL中制定这个,让我们试一试,好吗?

friendsAll 很可能是反身,即假设每个人都是他/她自己的朋友。现在,我们需要一个递归规则来扩展这个集合,同时仍然满足条件:“在这个集合中,每个人都是每个人的朋友”。

要包括 bob 的朋友,您需要能够量化超过 isFriendWith 并检查 bob 的任何 候选朋友 是否也是 all 的朋友> bob 的其他朋友。由于您不能在 SWRL 中嵌套量词,我或多或少肯定,您不能仅用规则语言表达该算法。但是,我在这里可能错了,语义中隐藏着一个巧妙的小技巧。然而,这不是我所知道的,而且直接公式中量词嵌套的需要让我相信这是不可能的。

它基本上归结为一个众所周知的图论问题:给定一个起点bobfriendsAllbob 的朋友的最大子集,因此该组中的每个人都是其他人的朋友,即鲍勃的最大值Clique

【讨论】:

  • 很有启发性。您会添加有关“不能传递”的信息吗?第二个变量可能是什么?另外,您能否详细说明 O(N2) v. SWIRL 规则。我相信您是说 SWIRL 无法解决固定规模的集团。你能解释一下原因吗?
  • 正如我所说,您的问题甚至没有正确的语法,所以我建议您进行更多研究。 OWL/DL 和 SWRL 规则。
  • 我没有问 SO 问题。我正在阅读您的有用回复并要求澄清。 TY 获取更新的回复。
  • 对不起,我没有看用户名。另请参阅编辑后的答案。
  • @dhke 感谢您的好评!抱歉,我没有非常清楚地指定我的规则,我已经将该属性定义为对称的。传递性可能是解决方案,但我不能假设 Bob 和 Carol 因为 Alice 而成为朋友。正如你所说,有一个派系问题!你能帮我解决这个问题吗?我必须为这种关系添加描述。例如,A isFriendWith B -> "他们是 St Vicent 的学生" 我想为这种关系分配一个或多个描述。我是否必须定义另一个 IRI 或空白节点来表示关系?
猜你喜欢
  • 2019-01-28
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 2015-11-23
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多