Разработка экспертных систем средствами CLIPS

CLIPS включает язык представления порождающих правил и язык описания процедур. Основными компонентами языка описания правил является база правил Fact Base и на них возлагаются след функции.

База знаний - исходное состояние проблемы.

База правил содержит операторы, которые преобразуют состояние проблемы, приводя его к решению.

Машина логического вывода CLIPS сопоставляет факты и правила и выясняет, какие из правил можно активизировать. Это выполняется циклически, причем каждый цикл состоит из трех шагов:

1)Сопоставление фактов и правил

2)Выбор правила, подлежащего активизации

3)выполнение действий, предписанных правилами.

Такой 3ех шаговый циклический процесс иногда называют циклом «распознавание-действие». Сразу после запуска появляется

CLIPS>

В режиме интерпретатора пользователь может использовать множество команд. Факты можно включить в базу фактов из командной строки с помощью команды

CLIPS>(assert ( today is Sunday))

Выдаст <Fact-0>

 

CLIPS>(assert ( weather is warm))

<Fact-1>

Для вывода списков фактов, имеющихся в базе, используется команда (fatc).

Для удаления фактов из базы используется команда (retract 1)

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

Часто используются команда Clear –очищает базу фактов.

В тексте программы факты можно включать не по одиночке, а целым массивом.

(deffacts today

(today is Sunday)

(weather is warm))

Выражение начинается с команды deffacts, затем приводится имя списка фактов, который нужно определить, а за ним следуют элементы списка, причем их кол-во не ограничивается. Этот массив фактов можно затем удалить из базы командой (undefacts today ) выражение можно вводить в командную строку интерпретатора, но лучше в текстовый файл, с помощью текстового редактора. Загрузить можно с помощью среды, либо из командной строки, либо через меню. Файл должен иметь расширение clp. Однако после загрузки файла факты не передаются сразу же в базу фактов clips, команда deffacts просто указывает интерпретатору, что существует массив today, который содержит множество фактов. Собственно загрузка выполняется командой (reset). Команда сначала очищает базу фактов, а затем включает в нее факты из всех ранее загруженных массивов, она также добавляет в базу единственный системно определенный факт (initial-fatc). Это делается по умолчанию, поскольку иногда имеет смысл включить в программу правило start rule, которое может быть сопоставлено с этим фактом, и позволит выполнять какие-либо нестандартные инициализирующие операции, можно проследить, как выполняется команда reset, если перед выполнение приведенных выше команд установить режим слежения среды разработки, для этого нужно вызвать команду watch из меню execution и установить флажок facts.