Пример 5.7. Использование конструктора deffacts
(deffacts startup "Refrigerator Status" (refrigerator light on) (refrigerator door open) (refrigerator temp (+ 5 10 15))
Обратите внимание, что третий факт содержит выражение, в данном примере сумму трех констант, но в качестве выражения, инициализирующего значение факта, могут использоваться и более сложные выражения, например, вызовы функций CLIPS или функций, определенных пользователем.] Проверить работу конструктора deffacts можно воспользовавшись диалогом Watch Options. Для этого выберите пункт Watch меню Execution или используйте комбинацию клавиш <Ctrl>+<W>. В диалоговом окне Watch Options включите режим просмотра изменения списка фактов, поставив галочку в поле Facts,как показано на рис. 5.7.
Рис. 5.7. Диалоговое окно Watch Options
После этого нажмите кнопку ОК и введите в CKIOS приведенный выше конструктор deffacts. Затем в меню Execution выберите пункт Reset (комбинация клавиш <Ctrl>+<E>). Если пример был набран правильно, то на экране должны появиться сообщения, аналогичные приведенным на рис. 5.8. Рис. 5.8. Просмотр процесса добавления файлов Так же, как и для конструкторов deftemplate, CLIPS предоставляет визуальный инструмент для манипуляции с определенными в данный момент в системе конструкторами deffacts -- Deffacts Manager (Менеджер предопределенных фактов). Для запуска Deffacts Manager в меню Browse выберите пункт Deffacts Manager. Внешний вид менеджера приведен на рис. 5.9. Рис. 5.9. Окно менеджера предопределенных фактов Менеджер отображает все введенные на текущий момент в систему конструкторы deffacts. В нашем случае это initial-fact, речь о котором пойдет ниже, и только что добавленный нами startup. Менеджер позволяет выводить в основное окно CLIPS информацию об определениях существующих в данный момент в системе конструкторов deffacts с помощью кнопки Pprint (кроме deffacts initial-fact) и удалять любой существующий конструктор. Пример вывода информации об определении конструктора deffacts startup приведен на рис. 5.10. Обратите внимание, что комментарии, введенные после имени конструктора, сохраняются и выводятся на экран так же, как в конструктореdeftemplate. Рис. 5.10. Получение информации об определенном конструкторе Во время запуска и после выполнения команды clear CLIPS автоматически конструирует следующие предопределенные шаблоны и факты:
|