如何让用户在不激活特定规则的情况下修改事实?

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)”后规则会触发。

也许,谁能告诉我这是否可能。

无法禁止模式与事实匹配。