История создания CLIPS


Появление языка CLIPS можно датировать 1984 г., место рождения CLIPS — космический центр Джонсона NASA. Именно в это время отдел искусственного интеллекта (теперь Software Technology Branch) разработал множе­ство прототипов экспертных систем, использующих современное программ­ное и техническое обеспечение. Однако, несмотря на большой потенциал экспертных систем, не многие из этих приложений дошли до конечного потребителя. Эта неудача обуславливалась технологией создания экспертных систем, которой в то время оперировали в NASA. Основные ограничения накладывал язык LISP, используемый в качестве базового языка для разра­ботки экспертных систем. В качестве главных недостатков языка LISP можно выделить следующие три:

Ø недостаточная адаптируемость LISP к широкому кругу стандартных ком­пьютеров;

Ø высокая цена технического и программного обеспечения, предназначен­ного для работы с LISP;

Ø низкая способность интеграции систем, написанных на LISP, с системами, написанными на других языках (производство вложенных прило­жений).

Сотрудники отдела искусственного интеллекта поняли, что использование традиционных языков программирования, таких как С, устранит большин­ство возникших проблем, и отдел начал поиски производителей и постав­щиков инструментов для создания экспертных систем, оперирующих одним из традиционных языков программирования. Несмотря на то, что число по­добных инструментов было достаточно велико, цена таких инструментов оказалась весьма высока. Кроме того, большинство из этих инструментов работали на очень небольшом числе платформ, а скорость их работы остав­ляла желать лучшего. Стало очевидно, что для получения инструмента, удовлетворяющего всем требованиям NASA, необходима разработка собст­венного средства для создания экспертных систем.

Прототип CLIPS был разработан весной 1985 г., немногим более чем за два месяца. Особое внимание было уделено созданию языка, совместимого с языками, использующимися в NASA в тот момент. Таким образом, син­таксис языка CLIPS был сделан очень похожим на синтаксис экспертной оболочки ART, разработанной корпорацией Inference. Несмотря на то, что ART послужил прообразом, CLIPS разрабатывался совершенно без помощи Inference или доступа к исходным кодам системы ART.

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

Дальнейшее усовершенствование преобразовало CLIPS из инструмента тре­нировки в инструмент, незаменимый при проектировании, разработке и эксплуатации экспертных систем. Версии CLIPS 4.0 и 4.1 были реализованы соответственно летом и осенью 1987 г. Их характерными особенностями были: сильно увеличенная производительность, усовершенствованные воз­можности интеграции с внешними языками и увеличение потенциальных возможностей. Версия CLIPS 4.2, реализованная летом 1988 г., была пол­ностью переписанной версией CLIPS, позволяющей модульную обработку кода. Кроме того, с этой версией поставлялся справочник по архитектуре, предоставляющий детализированное описание архитектуры CLIPS, а также вспомогательная программа для верификации программ, базирующихся на правилах. Версия CLIPS 4.3 вышла летом 1989 г. и добавила системе еще большую функциональность.

Первоначально CLIPS использовал только методологию обработки данных посредством правил. CLIPS версии 5.0, вышедший весной 1991 г., ввел в CLIPS две новые парадигмы программирования: процедурное программирование (подобное используемому в языках С или Ada) и объектно-ориен­тированное программирование (похожее на языки Common Lisp Object System — CLOS или Smalltalk). Объектно-ориентированный язык програм­мирования, предоставляемый системой CLIPS, называется CLIPS Object-Oriented Language (COOL). Версия CLIPS 5.1, вышедшая осенью 1991 г., улучшала поддержку разработок с использованием новых возможностей CLIPS и усовершенствовала интерфейс CLIPS для X Window, MS-DOS и Macintosh. Версия CLIPS 6.0, вышедшая 1993 г., предоставляла поддержку разработки модульных программ и тесную интеграцию объектно-ориентиро­ванных возможностей CLIPS и возможностей, базирующихся на правилах.

Так как CLIPS обладал портативностью, расширяемостью, мощностью и низкой стоимостью, он получил широкое распространение в государствен­ных организациях, индустрии и учебных заведениях. Разработка CLIPS по­могла усовершенствовать возможности технологии производства экспертных систем среди широкого диапазона приложений. Система CLIPS использует­ся большим числом организаций, включая все отделения NASA, военные ведомства США, множество федеральных, правительственных и государст­венных организаций, университеты и большое число частных компаний.

CLIPS версии 6.1 был выпущен летом 1998 г. Очередная версия содержала несколько существенных улучшений. Во-первых, исходный код CLIPS стал совместим с C++. Теперь для его компиляции можно использовать любой ANSI С- или С++-компилятор. Во-вторых, в систему были добавлены не­сколько новых команд, предоставляющие возможность профилирования по времени выполнения конструкторов языка или определенные пользователем функций.

Последняя, доступная сейчас версия CLIPS 6.2, вышла в свет 31 марта 2002 г. Основными отличиями новой версии CLIPS являются поддержка разработки встроенных приложений, использующих CLIPS, и улучшенный интерфейс для Windows-версии, оптимизированный для использования на платформах Windows 95/98/NT.

Благодаря тому, что CLIPS является свободно распространяемым про­граммным продуктом с доступными исходными кодами, в последнее время было выпущено множество программ и библиотек, усовершенствующих и дополняющих возможности CLIPS. Некоторые из этих продуктов являются собственностью выпустивших их компаний и предназначены для внутреннего использования или коммерческого распространения, другие, как и сам CLIPS, распространяются свободно. В качестве самых известных примеров подобных проектов можно привести DLL/OCX-библиотеку, позволяющую использовать механизм логического вывода CLIPS в ваших приложениях, FuzzyCLIPS, CLIPS++, CLIPS code generator. Большинство перечисленных продуктов, а также различная полезная информация доступна по адресу: http://ourworld.compuserve.com/homepages/marktoml/clipstuf.htm(рис. 3.2).

Рис. 3.2.Домашняя страница CLIPS DLL/OCX

Работа с CLIPS

Для демонстрации примеров, используемых в этой книге, будет применяться Windows-версия CLIPS 6.2. Несмотря на полную совместимость с Apple Macintosh и UNIX-версиями, при работе с данной книгой желательно ис­пользовать именно Windows-версию среды CLIPS. Внешний вид главного окна CLIPS показан на рис. 3.3.

Windows-версия среды CLIPS полностью совместима с базовой специфика­цией языка. Ввод команд осуществляется непосредственно в главное окно CLIPS. Однако по сравнению с базовой Windows-версия предоставляет множество дополнительных визуальных инструментов (например, менедже­ры фактов или правил, речь о которых пойдет в гл. 5 и 6), значительно облегчающих жизнь разработчика экспертных систем.

Экспертные системы, созданные с помощью CLIPS, могут быть запущены тремя основными способами:

Ø вводом соответствующих команд и конструкторов языка непосредствен­но в среду CLIPS;

Ø использованием интерактивного оконного интерфейса CLIPS (например для версий Windows или Macintosh);

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

Рис. 3.3.Главное окно CLIPS

Кроме того, CLIPS при запуске позволяет выполнять командные файлы собственного формата (эта возможность также доступна при помощи команды batch). Для реализации этой возможности необходимо запустить CLIPS (в нашем случае это файл CLIPSWin.exe) с одним из трех следующих аргументов:

Ø -f<имя-файла>

Ø -f2<имя-файла>

Ø -l<имя-файла>

Текстовый файл, заданный с помощью опции -f, должен содержать коман­ды CLIPS. Если заданный файл содержит команду exit, то CLIPS завершит свою работу и пользователь вернется в операционную систему. В случае ес­ли команда exit отсутствует, то после выполнения всех команд из заданно­го файла пользователь попадет в главное окно CLIPS. Команды в текстовом файле должны быть набраны так же, как если бы они вводились непосредственно в командную строку CLIPS (т. е. все команды должны быть заклю­чены в круглые скобки и разделены символом перехода на новую строку). Опция -f фактически эквивалентна запуску команды batch сразу после за­пуска CLIPS.

Опция -f2 идентична -f, но, в отличие от опции -f, она использует коман­ду batch*. Файл, заданный этой опцией, также выполняется после запуска CLIPS, но результаты выполнения команд не отображаются на экране.

Опция -l задает текстовый файл, содержащий конструкторы CLIPS, кото­рые тут же запускаются на выполнение. Использование этой опции эквива­лентно использованию команды load сразу после запуска CLIPS.

Создание программ-оболочек, использующих возможности CLIPS, выходит за рамки этой книги. Желающим использовать эту возможность CLIPS можно рекомендовать обратиться к книге "CLIPS Reference Manual, Volume II, Advanced Programming Guide ".

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



Дата добавления: 2021-12-14; просмотров: 337;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.011 сек.