Обновленный код: куда добавить чек на ?f<-(practice-is-on-off OFF)
Как сделать логический или в CLIPS?
(defrule no-practice "Rules for when practice cannot be held"
(or ?f <- (practice (number-of-paddlers ?p&:(< ?p 6)))
?f <- (practice (number-of-coaches ?c&:(< ?c 1))))
=>
(modify ?f (practice-is-on-off OFF)))
;end
я определяю шаблон в клипах, и я использую логический оператор OR. Однако, когда я загрузить шаблон, он бросает ошибку говоря
[TMPLTDEF1] Invalid slot or not defined in corresponding deftemplate practice.
ERROR:
(defrule MAIN::no-practice "Rules for when practice cannot be held"
?f <- (practice (or
Вот что у меня есть: Спасибо заранее для любой проницательности. Благодаря
(deftemplate practice "structure of a practice"
(slot number-of-paddlers (type NUMBER))
(slot number-of-coaches (type NUMBER))
(slot practice-is-on-off (type SYMBOL) (default ON))
(slot practice-id (type NUMBER))
)
(defrule no-practice "Rules for when practice cannot be held"
?f <- (practice
(or
(number-of-paddlers
?v_number-of-paddlers&:(
< ?v_number-of-paddlers 6))
(number-of-coaches
?v_number-of-coaches&:(
< ?v_number-of-coaches 1))
)
)
=>
(modify ?f (practice-is-on-off OFF)
)
)
Благодаря @bogatron. Мне нравится версия 1. Однако это приводит к тому, что правило переходит в бесконечный цикл, когда я это делаю. Я пытаюсь поставить чек '? F <- (практика (on-on-off) ON)) ... но я теряюсь в синтаксисе этого ... у вас может быть комбинация AND и OR в том же правиле в CLIPS? Ваша помощь очень ценится! – engr007
, если вы также не проверяете, что практика - это - включено-выключено, «ON» в CE ... что такое CE? как я могу это сделать ... это то, о чем я спрашивал и в вышеупомянутом вопросе; Наверное, я пропустил твою записку. Еще раз спасибо @bogatron. – engr007
CE = «Условный элемент» - это только один из антецедентов в «if» части правила. Чтобы проверить ON/OFF, вы, вероятно, захотите изменить свой оператор соответствия 'practice', чтобы он был как' (практика (число-paddlers? P &: ( P 6)) (практика-это-on-off ON) ' Я буду изменять свой ответ, чтобы добавить это. – bogatron