如何让用户在不激活特定规则的情况下修改事实?
How to let a user modify a fact without activating a certain rule?
我想知道是否有可能以某种方式构建,以便用户可以在不触发规则的情况下修改规则。所以我的最小示例:
(defrule A-has-B
(A B)
=>
(assert (A-has-B)
)
(assert (A A))
f-1 (A A)
现在,我想在不触发规则的情况下将 (A A) 修改为 (A B) "A-has-B"。
首先我想到了这样的事情:
(defrule A-has-B
(A B)
(not (exists (usercontrol on)))
=>
(assert (A-has-B)
)
但在撤回“(usercontrol on)”后规则会触发。
也许,谁能告诉我这是否可能。
无法禁止模式与事实匹配。
我想知道是否有可能以某种方式构建,以便用户可以在不触发规则的情况下修改规则。所以我的最小示例:
(defrule A-has-B
(A B)
=>
(assert (A-has-B)
)
(assert (A A))
f-1 (A A)
现在,我想在不触发规则的情况下将 (A A) 修改为 (A B) "A-has-B"。
首先我想到了这样的事情:
(defrule A-has-B
(A B)
(not (exists (usercontrol on)))
=>
(assert (A-has-B)
)
但在撤回“(usercontrol on)”后规则会触发。
也许,谁能告诉我这是否可能。
无法禁止模式与事实匹配。