在 LHS 中获取满足 OR 条件的事实

Get fact that satisfied OR condition in LHS

如何在 LHS 中得到满足 or 条件的事实?

例如我试过但失败了:

(defrule rule
    ?f<-(or (fact1) (fact2))
    =>
    (retract ?f)
)

您只能将模式条件元素绑定到模式地址。只需将模式地址绑定分发到您希望在 or 条件元素的每个析取中绑定的特定模式。例如:

(defrule rule
  (or ?f <- (fact1) 
      ?f <- (fact2)
      (and (fact3)
           ?f <- (fact4)))
  =>
  (retract ?f))