Пример 5.6. Использование атрибутов ограничения

(deftemplate object

(slot name

(type SYMBOL)

(default?DERIVE))

(slot location

(type SYMBOL)

(default?DERIVE)))

Для полноты картины следует также упомянуть о неявно создаваемых шаб­лонах. При использовании факта или ссылки на упорядоченный факт (на­пример, в правиле) CLIPS неявно создает соответствующий шаблон с од­ним составным слотом. Имя неявно созданного составного слота не ото­бражается при просмотре фактов. Неявно созданным шаблоном можно манипулировать и сравнивать его с любым тождественным, определенным пользователем шаблоном, несмотря на то, что он не имеет отображаемой формы.

5.2.2. Конструктор deffacts

Помимо конструктора deftemplates, CLIPS предоставляет конструктор deffacts, также предназначенный для работы с фактами. Данный конструк­тор позволяет определять список фактов, которые будут автоматически до­бавляться всякий раз после выполнения команды reset, очищающей теку­щий список фактов. Факты, добавленные с помощью конструктора deffacts, могут использоваться и удаляться так же, как и любые другие факты, добав­ленные в базу знаний пользователем или программой, с помощью команды assert.

Определение 5.3. Синтаксис конструктора deffacts

(deffacts <имя-списка-фактов> [<необязательные-комментарии>] [<факт>*])

Добавление конструктора deffacts с именем уже существующего конструк­тора приведет к удалению предыдущего конструктора, даже если новый конструктор содержит ошибки. В среде CLIPS возможно наличие несколь­ких конструкций deffacts одновременно и любое число фактов в них (как упорядоченных, так и неупорядоченных). Факты всех созданных пользова­телем конструкторов deffacts будут добавлены при инициализации системы.

Все замечания по поводу использования комментариев в конструкторе deftemplate применимы и к конструктору deffacts.

В поля факта могут быть включены динамические выражения, значения которых будут вычисляться при добавлении этих фактов в текущую базу знаний CLIPS.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: