Работа с правилами
CLIPS предоставляет 12 команд, предназначенных для работы с правилами и конструкторами defrule (табл. 16.5). Таблица 16.5. Команды работы с правилами
Команда ppdefrule выводит в диалоговое окно системы определение заданного конструктора defrule. Определение 16.23. Команда ppdefrule (ppdefrule <имя-конструктора>) Команда list-defrules предназначена для отображения в диалоговом окне списка имен всех определенных в системе конструкторов defrules. Определение 16.24. Команда list-defrules (list-defrules [<имя-модуля>]) Если необязательный параметр <имя-модуля> не указан, то данная команда выводит имена всех конструкторов defrule, определенных в текущем модуле. Если параметр содержит имя конкретного модуля, команда list-defrules выводит список конструкторов, определенных в заданном модуле. Допускается использование символа *, в этом случае команда выведет в диалоговое окно имена всех конструкторов defrules, определенных во всех модулях системы. Команда undefrule предназначена для удаления определенных пользователем конструкторов defrules. Определение 16.25. Команда undefrules (undefrule <имя-конструктора>) В качестве параметра <имя-конструктора> допускается использование символа *. В этом случае команда попытается удалить все определенные пользователем правила. Для просмотра всех наборов данных (фактов и объектов), способных активировать заданное правило, предназначена команда matches, синтаксис которой приведен ниже. Определение 16.26. Команда matches (matches <имя-правила>) Пример использования данной команды приведен в разд. 6.6.5. Команды set-break и remove-break предназначены для задания и удаления точек останова на указанном правиле. Эта возможность чрезвычайно полезна при отладке и проверке правильности правил сложной экспертной системы. Цикл выполнения правил прерывается перед исполнением правила, для которого определена точка останова. Если такое правило является первым в плане решения задачи, приостановка цикла выполнения правил производиться не будет. Определение 16.27. Команды set-break и remove-break (set-break <имя-правила>) (remove-break [<имя-правила>]) Если при выполнении команды remove-break не указан необязательный параметр <имя-правила>, будут сняты все определенные ранее точки останова. Для просмотра списка всех правил, на которых установлена точка останова, предназначена команда show-breaks. Определение 16.28. Команда show-breaks (show-breaks [<имя-модуля>]) С помощью необязательного параметра <имя-модуля> можно указать имя конкретного модуля, и в этом случае команда будет выводить только правила, определенные в заданном модуле. Если в качестве данного параметра использовать *, то команда отобразит правила с определенными точками останова во всех модулях системы. Если параметр <имя-модуля> не задан, в диалоговое окно системы будут выведены правила, определенные в текущем модуле. Команда refresh предназначена для помещения всех текущих активаций заданного правила в план решения задачи.
|