Пример 5.3. Применение конструктора deftemplate
(deftemplate MyObject
(slot name)
(slot location)
(slot weight)
(multislot contents))
Как и все конструкторы CLIPS, конструктор deftemplate не возвращает никакого значения. При вводе данной команды в CLIPS вы должны увидеть результат, приведенный на рис. 5.1.
Рис. 5.1.Использование конструктораdeftemplate
Подобная реакция среды говорит об удачном добавлении определения шаблона в систему. Для просмотра всех определенных в текущей базе знаний шаблонов можно воспользоваться командой get-deftemplate-list, речь о которой пойдет ниже, или специальным инструментом Deftemplate Manager(Менеджер шаблонов), доступным в Windows-версии среды CLIPS. Для запуска менеджера шаблонов воспользуйтесь меню Browseи выберите пункт Deftemplate Manager(рис. 5.2).
Менеджер шаблонов позволяет в отдельном окне просматривать список всех шаблонов, доступных в текущей базе знаний, удалять выбранный шаблон и отображать все его свойства (например, такие как имена и типы слотов). Внешний вид менеджера шаблонов представлен на рис. 5.3.
После выполненной нами операции в текущей базе знаний находится два шаблона, о чем сообщается в заголовке окна менеджера (Deftemplate Manager — 2 Items).Первый шаблон является предопределенным шаблоном initial-fact. Он не имеет слотов и всегда добавляется при запуске среды. Его нельзя удалить с помощью менеджера, или просмотреть его определение. Назначение и примеры использования факта initial-fact будут рассмотрены ниже. Вторым шаблоном является только что добавленный шаблон MyObject. Менеджер шаблонов позволяет вывести в главное окно среды его определение с помощью кнопки Pprintили удалить его из среды посредством кнопки Remove.На рис. 5.4 приведен результат последовательных операций вывода информации об определении шаблона и удалении его из текущей базы знаний.
Рис. 5.2.Запуск менеджера шаблонов
Рис. 5.З.Окно менеджера шаблонов
Рис. 5.4.Получение информации и удаление шаблона
Флажок Watchпозволяет включать/выключать режим отображения сообщений об использовании шаблонов для каждого присутствующего в системе шаблона в главном окне среды CLIPS. Если этот режим включен, пользователь будет получать сообщения при добавлении и удалении неупорядоченных фактов, использующих данный шаблон.
В случае, если при добавлении нового шаблона с помощью конструктора deftemplate произошла ошибка, пользователь получит соответствующее предупреждение. Полный список сообщений об ошибках в системе CLIPS приведен в приложениях 2 и 3.
Переопределение уже существующего шаблона приводит к исключению предыдущего определения. Шаблон не может быть переопределен до тех пор, пока он используется (например, фактом или правилом). Шаблон может иметь любое количество простых или составных слотов. CLIPS отличает простые и составные слоты в шаблоне. Например, будет ошибкой сохранять значение составного слота в простой слот.
Рассмотрим полный синтаксис конструктора deftemplate:
Дата добавления: 2021-12-14; просмотров: 261;