ВУЗ:
Составители:
Рубрика:
21
Работа правила очень напоминает условный оператор if-then,
присутствующий во многих процедурных языках программирования.
Принципиальная разница заключается в том, что оператор if-then выполнится
в любом случае, когда до него дойдет очередь в программе. Что касается
правила, то интерпретатор CLIPS еще “подумает”, выполнять его или нет.
Так, при старте программы, содержащей множество фактов и правил,
интерпретатор CLIPS запускает машину логического вывода, которая
выясняет, какие из правил можно активизировать. Это выполняется
циклически, причем каждый цикл состоит из трех шагов:
· сопоставление фактов и правил;
· выбор правила, подлежащего активизации;
· выполнение действий, предписанных правилом.
Таким образом, правила, взаимодействующие с базой данных в виде
фактов, вносят в нее функциональность и образуют вместе с ней базу знаний.
Для создания правила используется конструктор defrule, который имеет
следующий синтаксис:
(defrule имя_правила
[необязательный комментарий]
[необязательное объявление]
(условие_1)
(условие_2)
......
(условие_M)
=>
(действие_1)
(действие_2)
......
(действие_N))
Обратите внимание: левая часть правила отделяется от правой
комбинацией символов “=>”, а количество условий и действий в правиле в
общем случае не совпадает. Для пояснения вышесказанного рассмотрим
несколько примеров.
Работа правила очень напоминает условный оператор if-then,
присутствующий во многих процедурных языках программирования.
Принципиальная разница заключается в том, что оператор if-then выполнится
в любом случае, когда до него дойдет очередь в программе. Что касается
правила, то интерпретатор CLIPS еще “подумает”, выполнять его или нет.
Так, при старте программы, содержащей множество фактов и правил,
интерпретатор CLIPS запускает машину логического вывода, которая
выясняет, какие из правил можно активизировать. Это выполняется
циклически, причем каждый цикл состоит из трех шагов:
· сопоставление фактов и правил;
· выбор правила, подлежащего активизации;
· выполнение действий, предписанных правилом.
Таким образом, правила, взаимодействующие с базой данных в виде
фактов, вносят в нее функциональность и образуют вместе с ней базу знаний.
Для создания правила используется конструктор defrule, который имеет
следующий синтаксис:
(defrule имя_правила
[необязательный комментарий]
[необязательное объявление]
(условие_1)
(условие_2)
......
(условие_M)
=>
(действие_1)
(действие_2)
......
(действие_N))
Обратите внимание: левая часть правила отделяется от правой
комбинацией символов “=>”, а количество условий и действий в правиле в
общем случае не совпадает. Для пояснения вышесказанного рассмотрим
несколько примеров.
21
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »
