Правило будет активировано для каждого выражения в условном элементе or, которое было удовлетворено. Таким образом, условный элемент or производит эффект, идентичный написанию нескольких правил с похожими посылками и следствиями.
Данное правило сообщит о поломке системы, если в списке фактов будет присутствовать факт error-status unknown и один из фактов temp high, valve broken или pump off. В случае если будут присутствовать два из этих трех фактов, например temp high и pump off, то сообщение будет выведено два раза. Заметьте, что приведенный пример — точный эквивалент следующих трех отдельных правил:
Пример 6.26. Эквивалент правилу system-fault
(defrule system-fault-1
(error-status unknown)
(pump off)
=>
(printout t "The system has a fault." crlf))
(defrule system-fault-2
(error-status unknown) (valve broken)
=>
(printout t "The system has a fault." crlf))
(defrule system-fault-3
(error-status unknown) (temp high)
=>
(printout t "The system has a fault." crlf))
6.5.4. Условный элемент and
Все условные элементы в левой части правил CLIPS объединены неявным условным элементом and. Это означает, что все условные элементы, заданные в левой части, должны удовлетвориться, для того чтобы правило было активировано. С помощью явного применения условного элемента and можно смешивать различные условия and и or и группировать элементы так, как этого требует логика правил. Условие and удовлетворяется, только если все условия внутри явного and удовлетворены. В случае, если остальные условия в левой части правила также истинны, правило будет активировано. Элемент and может объединять любое число условных элементов.