Разработка экспертных систем средствами 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.