我刚刚开始使用Protegé进行本体研究,我正在努力了解如何使用SWRL规则。恐怕我不知道这个概念,也不知道如何正确对待它们,因为我无法产生任何输出。我将更多地解释我创建的一个简单的案例来测试这个:
我创建了三个人,分别叫A、B和C。每个人都有一个测试属性,该属性有一个布尔值范围。在每一个的属性断言选项卡上,我都初始化了它们的值,所以它们是test(A,true)
、test(B,true)
和test(C,true)
。为了测试规则是如何工作的,我创建了一个这样的规则:test(A,true), test(B,true) -> test(C,false)
。我的理解是,如果A和B的测试性质为真,那么C的测试性质就会变为假。为此,我启动了推理器(佩莱),但什么也没发生。我的意思是,它说推理器是活动的,没有出现"不一致的本体"消息,但C的测试值没有改变。我确信这一定是一个非常简单的困惑,但我似乎在任何地方都找不到它,也无法检查规则是否已激活。
提前谢谢。
推理不是这样工作的,如果你断言了test(C, true)
,你就不能收回它。你的本体可能包括test(C, true)
和test(C, false)
,除非你另有规定,否则这是完全合法的;在这种情况下,然后您会看到不一致性。