Как вы проверяете наличие фактов в RHS правил в Clips ? Я пытаюсь
разработайте правило, которое будет «оценивать» текущее состояние, подсчитывая, сколько существует целевых фактов. Очевидно, как проверить факты в LHS, но я не могу найти, как сделать эквивалент в RHS.
Я хочу сделать что-то вроде этого, хотя это недействительно. Код клипа:
(defrule score-state ""
?score <- (score (value ?value))
=>
(modify ?score (value (+ (exists (goal-1)) (exists (goal-2)) (exists (goal-3))))))
Таким образом, если бы ни одно из целевых состояний не существовало, тогда существовал бы факт (оценка (значение 0)). И наоборот, если бы существовали все целевые состояния, то существовал бы факт (оценка (значение 3)).
В справочном руководстве упоминается функция fact-existp, но, похоже, для этого требуется передать адрес факта. Я пытался использовать его как (fact-therep (goal-1)), но Clips дает мне синтаксическую ошибку.