Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Общие сведения и краткая история среды CLIPS



В Название CLIPS – аббревиатура от C Language Integrated Production System. Язык был разработан в центре космических исследований NASA (NASA’s Johnson Space Center). Первая версия системы вышла в 1984 году, текущая версия 6.1. CLIPS используется оригинальный LISP-подобный язык программирования, ориентированный на разработку ЭС. Использование C в качестве языка реализации объясняется тем, что компилятор LISP не поддерживается частью распространенных платформ, а также сложностью интеграции LISP-кода в приложения, которые используют отличный от LIPS язык программирования. Разработанная ими система в настоящее время доступна во всем мире, и нужно сказать, что по своим возможностям она не уступает множеству гораздо более дорогих коммерческих продуктов. CLIPS является одним из распространенных инструментальных средств разработки экспертных систем (ЭС). Представляя собой логически полную среду, содержащую встроенный редактор и средства отладки, CLIPS является оболочкой ЭС. Первая версия представляла собой, по сути, интерпретатор порождающих правил. Процедурный язык и объективно-ориентированное расширение CLIPS Object-Oriented Language (COOL) были включены в этот программный продукт только в 1990-х годах. Существующая в настоящее время версия может эксплуатироваться на платформах UNIX, DOS, Windows и Macintosh. Она является хорошо документированным общедоступным программным продуктом и доступна в интернете с множества университетских ftp-серверов. Исходный код программного пакета CLIPS распространяется совершенно свободно и его можно установить на любой платформе, поддерживающей стандартный компилятор языка C. Однако рекомендуется пользоваться официальной версией для определенной платформы, поскольку такие версии имеют пользовательский интерфейс, включающий меню команд и встроенный редактор.CLIPS использует продукционную модель представления знаний и включает в себя язык представления порождающих правил и язык описания процедур. Основными компонентами языка описания правил являются база фактов (fact base) и база правил (rule base). На них возлагаются следующиефункции:– база фактов представляет собой исходное состояние проблемы;– база правил содержит операторы, которые преобразуют состояние проблемы, приводя его к решению.Машина логического вывода CLIPS сопоставляет эти факты и правила и выясняет, какие из правил можно активизировать. Это выполняется циклически, причем каждый цикл состоит из трех шагов:1) сопоставление фактов и правил;2) выбор правила, подлежащего активизации;3) выполнение действий, предписанных правилом.Такой трехшаговый циклический процесс иногда называют «циклом распознавание – действие»Сразу после запуска CLIPS-приложения на выполнение на экране появится приглашение, извещающее пользователя, что он работает с интерпретатором.CLIPS>В режиме интерпретатора пользователь может использовать множество команд.

Простые типы данных

Для представления информации в CLIPS предусмотрено восемь простых типов данных: float, integer, symbol, string, external-address, fact-address, instance-name и instance-address. Для представления числовой информации используются типы float и integer, символьной – symbol и string. Остановимся на рассмотрении этих четырех типов данных.

При записи числа могут использоваться только цифры (0-9), десятичная точка (.), знак (+) или (–) и (е) при экспоненциальном представлении. Число сохраняется либо как целое, либо как действительное. Любое число, состоящее только из цифр, перед которыми может стоять знак, сохраняется как целое (тип integer представляется внутри CLIPS как тип языка С long integer). Все остальные числа сохраняются как действительные (float – С double float).

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

Примеры целых чисел:

237 15 +12 -32

Примеры чисел с плавающей точкой:

237е3 15.09 +12.0 -32.3е-7

Последовательность символов, которая не удовлетворяет числовым типам, обрабатывается как тип данных symbol.

Тип данных symbol в CLIPS - последовательность символов, состоящая из одного или нескольких любых печатных символов кода ASCII. Как только в последовательности символов встречается символ-разделитель, symbol заканчивается. Следующие символы служат разделителями: любой непечатный ASCII символ (включая пробел, символ табуляции, CR, LF), двойные кавычки,"(",")", "&", "|", "<","~",";". Символы-разделители не могут включаться в symbol за исключением символа "<", который может быть первым символом в symbol. Кроме того, symbol не может начинаться с символа "?" или последовательности символов "$?", поскольку эти символы зарезервированы для переменных. Заметим, что CLIPS различает регистр символов. Ниже приведены примеры выражений символьного типа:

foo Hello B76-HI bad_value

127А 742-42-42 @+=-% Search

Тип данных string - это последовательность символов, состоящая из нуля и более печатных символов и заключенная в двойные кавычки. Если внутри строки встречаются двойные кавычки, то перед ними необходимо поместить символ (\). То же справедливо и для самого (\). Несколько примеров:

"foo" "a and b" "I number" "a\"quote"

Отметим, что строка "abcd" не тоже самое, что abcd. Они содержат одина-ковые наборы символов, но являются экземплярами различного типа.

Функции

Под функцией в CLIPS понимается фрагмент исполняемого кода, с которым связано уникальное имя и который возвращает полезное значение или имеет полезный побочный эффект (например, вывод информации на экран).

Существует несколько типов функций. Пользовательские и системные функции - это фрагменты кода, написанные на внешних языках (например, на С) и связанные со средой CLIPS. Системными называются те функции, которые были определены изначально внутри среды CLIPS. Пользовательскими называются функции, которые были определены вне CLIPS.

Хотя CLIPS и не ориентирована на численные вычисления, в ней предусмотрен ряд стандартных арифметических и математических функций. Среди них:

+ Сложение

- Вычитание

* Умножение

/ Деление

* * Возведение в степень

Abs Определение абсолютного значения

Sqrt Вычисление квадратного корня

Mod Взятие по модулю

Min Нахождение минимума

Мах Нахождение максимума


Поделиться:



Последнее изменение этой страницы: 2019-06-20; Просмотров: 145; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.015 с.)
Главная | Случайная страница | Обратная связь