Иллюстрированный самоучитель по введению в экспертные системы

Правила

В языке CLIPS правила имеют следующий формат:

(defrule < имя правила>
< необязательный комментарий >
< необязательное объявление >
< предпосылка_1 >
< предпосылка_m > ›
< действие_1 >
< предпосылка_n >)

Например:

(defrule chores
"Things to do on Sunday"
(salience 10)
(today is Sunday)
(weather is warm) ›
(assert (wash car))
(assert (chop wood))

В этом примере Chores – произвольно выбранное имя правила. Предпосылки в условной части правила:

(today is Sunday) (weather is warm)

Сопоставляются затем интерпретатором с базой фактов, а действия, перечисленные в выполняемой части правила (она начинается после пары символов ), вставят в базу два факта:

(wash car) (chop wood)

В случае, если правило будет активизировано. Приведенный в тексте правила комментарий:

"Things to do on Sunday"

("Что сделать в воскресенье"), поможет в дальнейшем вспомнить, чего ради это правило включено в программу.

Выражение:

(salience 10)

Указывает на степень важности правила. Пусть, например, в программе имеется другое правило:

(defrule fun
"Better things to do on Sunday"
(salience 100)
(today is Sunday)
(weather is warm) ›
(assert (drink beer))
(assert (play guitar)))

Поскольку предпосылки обоих правил одинаковы, то при выполнении оговоренных условий они будут "конкурировать" за внимание интерпретатора. Предпочтение будет отдано правилу, у которого параметр salience имеет более высокое значение, в данном случае – правилу fun. Параметру salience может быть присвоено любое целочисленное значение в диапазоне [-10 000, 10 000]. Если параметр salience в определении правила опущен, ему по умолчанию присваивается значение 0.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.