【发布时间】:2014-11-26 11:32:20
【问题描述】:
我是专家编程的新手,遇到了一个问题。 我想知道一个事实是否存在,然后在RHS中根据这些事实做一些操作。
例如:- 我有 4 个事实。
(deffacts test (A 1) (B 2) (C 3) (D 4))
在遵循规则事实 E 不存在。所以它永远不会去 RHS。并且不要违反规则。
(defrule rul1
(declare (salience 10))
(A ?var1)
(B ?var2)
(C ?var3)
(E ?var4)
=>
(if
(
or (or (or (= ?var1 1) (= ?var2 1)) (= ?var3 1)) (= ?var4 4)
)
then
(printout t "Rule matched" crlf))
)
)
我的要求是,如果一个事实不存在,只需忽略它或分配一个虚拟值,以便它可以触发 Rule。
我怎样才能做到这一点?
【问题讨论】:
-
你的问题有点含糊。您是始终希望规则触发还是仅在 4 个事实中至少有 3 个匹配时触发?
-
应该是 CLIPS(带“s”吧?)
标签: artificial-intelligence clip expert-system