Определение 6.2. Синтаксис свойств правил
<определение-свойства-правила> ::= (declare <свойство-правила>)
<свойство-правила> ::= (salience <целочисленное выражение>)│
(auto-focus TRUE │FALSE)
6.3.1. Свойство salience
Свойство правила salience позволяет пользователю назначать приоритет для своих правил. Объявляемый приоритет должен быть выражением, имеющим целочисленное значение из диапазона от —10 000 до +10 000. Выражение, представляющее приоритет правила, может использовать глобальные переменные и функции (которые будут описаны в гл. 7 и 8 соответственно). Однако старайтесь не указывать в этом выражении функций, имеющих побочное действие. В случае если приоритет правила явно не задан, ему присваивается значение по умолчанию — 0.
Значение приоритета может быть вычислено в одном из трех случаев: при добавлении нового правила, при активации правила и на каждом шаге основного цикла выполнения правил. Два последних варианта называются динамическим приоритетом (dynamic salience). По умолчанию значение приоритета вычисляется только во время добавления правила. Для изменения этой установки можно использовать команду set-salience-evaluation.
Кроме того, пользователи Windows-версии среды CLIPS могут изменить эту настройку с помощью диалогового окна Execution Options.Для этого выберите пункт Optionsв меню Execution,в появившемся диалоговом окне укажите необходимый режим вычисления приоритета с помощью раскрывающегося списка Salience Evaluation,как показано на рис. 6.3.
Рис. 6.З.Установка способа вычисления приоритетов правил
Замечание
Каждый метод вычисления приоритета содержит в себе предыдущий (т. е. если приоритет вычисляется на каждом шаге основного цикла выполнения правил, то он также вычисляется и при активации правила, а так же при его добавлении в систему).
6.3.2. Свойство auto-focus
Свойство auto-focus позволяет автоматически выполняться команде focus (о которой будет рассказано в гл. 12) при каждой активации правила. Если свойство auto-focus установлено в значение true, то команда focus в модуле, в котором определено данное правило, автоматически выполняется всякий раз при активации правила. Если свойству auto-focus присвоено значение false, то при активации правила не происходит никаких действий. По умолчанию это свойство установлено в false.
Дата добавления: 2021-12-14; просмотров: 269;