Пример 5.5. Использование атрибутов значения по умолчанию
(deftemplate foo
(slot w (default ?NONE))
(slot x (default ?DERIVE))
(slot у (default (gensym*)))
(slot z (default-dynamic (gensym*))))
Синтаксис и функциональность <атрибута-ограничения> для простого и составного слота детально описаны в гл. 13. В конструкторе deftemplate поддерживается проверка статических и динамических ограничений.
Статическая проверка выполняется во время использования определения шаблона некоторой командой или конструктором. Например, для записи значений в слоты шаблона. Иначе говоря, статическая проверка выполняется до запуска программы. При несоответствии используемых значений с установленными ограничениями пользователю выводится соответствующее предупреждение об ошибке.
Ссылка на индекс факта в командах на изменение значения факта или его дублирование не связывает факт с соответствующим шаблоном явно. Это делает статическую проверку неоднозначной. Поэтому в командах, использующих индекс факта, статическая проверка не выполняется.
Статическая проверка ограничений включена по умолчанию. Эту установку среды CLIPS можно изменить с помощью функции set-static-constraint-checking.
Помимо статической, CLIPS также поддерживает динамическую проверку ограничений. Если режим динамической проверки ограничений включен, го все новые факты, созданные с использованием некоторого шаблона и имеющие определенные значения, проверяются в момент их добавления в список фактов.
В случае если нарушение заданных ограничений произойдет в момент выполнения динамической проверки в процессе выполнения программы, то выполнение программы прекращается и пользователю будет выдано соответствующее сообщение.
По умолчанию в CLIPS отключен режим динамической проверки ограничений. Эту среду установки можно изменить с помощью функции set-dynamic-constraint-checking.
Помимо описанных выше функций для изменения состояний режимов статической и динамической проверки ограничений, пользователям Windows-версии среды CLIPS доступен визуальный способ настройки этих установок. Для этого необходимо открыть диалоговое окно Execution Options, выбрав пункт Options из меню Execution. Внешний вид этого диалогового окна приведен на рис. 5.6.
Рис. 5.6.Диалоговое окноExecution Options
Для включения или выключения необходимых режимов проверки ограничений атрибутов выставите в соответствующее положение флажки Static Constraint Checking и Dynamic Constraint Checking и нажмите кнопку ОК.
Ниже приведен пример использования атрибутов ограничения типа:
Дата добавления: 2021-12-14; просмотров: 320;