我有一个“史密斯”班级,代表史密斯家族。其中有 4 名成员,即父母; “John_Smith”和“Julie_Smith”以及孩子们; “杰克·史密斯”和“吉尔·史密斯”。我有一个对象属性“Is_Parent_Of”,它是推断的逆属性“Is_Child_Of”。我想知道是否有办法使用这两个属性来推断兄弟关系?
我已经使用属性“Has_Sibling”来手动分配它,这是一个对称的传递属性,但我找不到完全推断该属性的方法。 我可以使用 DL 查询函数和“Has_Parent 值 John_Smith 和 Has_Parent 值 Julie_Smith”这样的查询来推断它
我遇到了同样的问题,只需按照 @UninformedUser 提到的那样制作 SWRL 即可解决它。
在 Protégé 中执行此操作的一种方法是进入“窗口”->“视图”->“本体视图”->“规则”以打开“规则”选项卡,然后添加以下规则:
Is_Child_Of(?a,?x), Is_Child_Of(?b,?x), DifferentFrom(?a,?b) -> Has_Sibling(?a,?b)
该规则规定,如果“a”是“x”的子级,“b”也是“x”的子级,并且“a”不是“b”(以防止其自反),则“a”是'b' 的兄弟姐妹。要使原子 DifferentFrom 工作,请记住在“个体”选项卡中声明不同的个体。