1626434812-e667f6b6e7e69d3a0798830a58e9075b (844135), страница 30
Текст из файла (страница 30)
Это может оказаться удобным при необходимости манипулировать фактами непосредственно из правила. Для такого присвоения используется комбинация "<-". Следующий пример иллюстрирует присвоение переменной значения адреса факта и ее последующее использование: (с(ейгп1е дег-щагг1ес1 ?бцс1 <- (ЬасЬе1ог Эореу) => (геггасг ?с1цсЮ) ) Для определения глобальных переменных, которые видны всюду в среде СПРБ, используется конструкция с(ейц1оЬа1. К глобальной переменной можно обратиться в любом месте, и ее значение остается независимым от других конструкций, Глобальные переменные С1ЛРБ подобны глобальным переменным в процедурных языках программирования, но они значительно слабее типизированы (на них не налагается ограничения хранения данных только одного типа).
б.3.2.5. Дополнительные средства СЕ1РЗ предоставляет ряд дополнительных средств, необходимых при написании программ. Основными из них являются: ° ограничения на значения полей; ° оператор проверки условия Геях; ° использование функций в правилах; ° использование процедурных знаний. Рассмотрим каждое из этих средств по очереди.
(рг1п~оШ ~ "Гоп'Г. иа1Е" сг1Е) ) Ограничения на значения палей Использование ограничений на значения полей позволяет ограничить значения, принимаемые образцами в левой части правила. Рассмотрим три вида ограничений' -, ~ и Й. Ограничение первого типа действует на следующее прямо за ним значение и говорит о том, что поле не может принимать это значение.
Например." (с)ейгп1е ~а1Е (11<уЬ1 -дгееп) Глава б. Системы, основанные на знаниях Ограничение второго типа указывает на то, что поле может принимать одно из следующих значений. Например: (с(ейгы1е саы~1оцз (11дЫ уе11ож~Ь11пЕ1пд-уе11ок) — > (рг1п~оит.
т. "Ве сацс1оцз" сг1Й)) Ограничение третьего типа используется только вместе с ограничениями первых двух типов и указывает на то, что должны удовлетворяться оба соединяемых при его помощи ограничения. Например: (беГгц1е сац~1оцз (11д)т~. ?со1огйуе11ож 1 Ь1Ы)~вопд-уе11оы) > (рг1п1оц1 1 "Бе саи~хоцз Ьесацзе 11цЬ~ 1з ~со1ох' сх1й)) Оператор проверки условия ~ев1 Оператор проверки условия т.ез~ представляет собой мощное средство, при помощи которого можно сравнивать числа, переменные и строки в левой части правила. Он записывается точно так же, как и образцы.
Правило может выполниться только тогда, когда наряду с совпадением всех образцов, записанных в левой части правила, справедливо и условие, описываемое в т.езт.. Функция (еа1 имеет следующий синтаксис: (1ез1 (аргумент сравнения аргумент 1 аргумент 2)) где аргумент сравнения — это тот параметр, по которому сравниваются два следующих аргумента. В С1 1РБ существует ряд предопределенных аргументов сравнения: ея Равно ~сравнивает тип и значение) Не равно Равно (сравнивает только значение) Не равно >= Больше или равно Больше <= Меньше или равно С Меньше Базы данных.
Интеллектуальная обработка информации Все аргументы, кроме ец и пес1, используются только для сравнения чисел. При интерпретации выражения сравнения считается что аргумент 1 стоит слева от аргумента сравнения, а аргумент 2 — справа. Использование функций в правилах Функции могут использоваться и в левой, и в правой части правила. Например: (с)ейти1е асЫ11хоп (пцп~Ьехв ?х ?у) (аваев~ (апачей (+ ?х ?у) ) ) ) При использовании функции в левой части правила перед ней должен стоять знак " = ", показывающий С1 1РБ, что следующее выражение необходимо вычислить, а не использовать буквально. Например: (с(ейхцХе ас(си.т.з.сп (пигпЬегв ~х ?у) (а~осК ?10 = (ас1х~ (+ ('"* ?х 2) ("'" у 2) ) ) ) (рхзп~оШ ~ "а1осК 10 = " ?10 сг1й) ) Использование процедурных знаний С1 1РБ поддерживает также процедурную парадигму представления знаний, подобную принятой в обычных языках программирования (С, Паскаль), Конструкция бе Й Йыпсг.1.
оп позволяет пользователю определять новые функции. Эти новые функции могут вызываться точно так же, как и встроенные функции С1.1РБ. Конструкция с)е атос(ц1е позволяет разбивать базу знаний на части. б.З.З. Интерфейс С1ЛР8 Оболочка ЭС С1.1РЯ может работать в нескольких режимах: 1.
интерактивно, с использованием простого текстового интерфейса командной строки; 2. интерактивно, с использованием О(Л-интерфейса, 3. как ЭС, интегрированная в другие приложения. 6.3.3.1. Интерфейс командной строки Основным методом взаимодействия пользователя с С1 1РБ является ввод команд с командной строки С1 1РЗ. После появления на экране подсказки С1 |РЯ> пользователь может ввести команду. Глава 6. Системы, основанные на знаниях Командами могут быть вызовы функций, конструкции, глобальные переменные или константы.
Если ввести вызов функции, вычисляется значение этой функции и на экран выводится результат. Как уже отмечалось, вызовы функций в С1 1РБ имеют префиксную форму, т.е. аргументы функции могут стоять только после ее названия. Если ввести определение, то будет создана конструкция соответствующего типа. В ответ на ввод глобальной переменной на экран будет выведено ее значение. За вводом константы последует вывод ее на экран «что вряд ли принесет много пользы).
Например: СХ ХРЯ> (+ 3 4) 7 СХХРЯ> (с(ейд1оЬа1 ?*х" = 3) СХ,ХРЯ> 7*к* 3 СХ ХРЯ> тес( тес( СХ ХРЯ> В приведенном примере сначала была вызвана функция сложения с аргументами 3 и 4, которая вернула результат 7. Затем была определена глобальная переменная?~х~, и ей было присвоено значение 3. Далее переменная? ~х~ была введена с командной строки, и было возвращено ее значение 3. И наконец, была введена и тут же возвращена константа гед. Стандартная процедура использования интерфейса командной строки выглядит следующим образом: 1.
создать и редактировать базу знаний при помощи любого текстового редактора; 2. сохранить базу знаний в одном или нескольких текстовых файлах; 3. выйти из редактора и запустить СЬ1РБ; 4. загрузить базу знаний в СЬ1РБ. Рассмотрим пример. 1. Создадим при помощи любого текстового редактора «например, й(о(срам) текстовый документ такого содержания: (с(ейгЫе опе (11дй~ огееп) (рх1п~оц~ ~ "Со !!!" сг11)) 2.
Сохраним его в файле под любым именем «например, ТЕБТ.СЬР). 3. Запустим СЬ1РБ «на экране появится главное диалоговое окно СЬ1РБ). 4. Теперь для загрузки правила опе в базу знаний С1.1РБ воспользуемся командой (1оас( <имя файла>): (1овс( "С: /СХ.ХРЯ(ВХЫ~тКЯТ. СХ.Р") Базы даггных. Иннгеллектуальная обрабонгка инфорыации Таблица 6.3.1.
Краткое описание ИЛ-интерфейса С1 1РБ Меню Пункт Назначение Не 1 оаэи Сопзггцс1з... Загрузка конструкций С1.1РБ из текстового (С1гЩ файла. Эквивалентен команде (1оад <имя файла>). Загрузка командного файла. Эквивалентен команде (Ьа1сЬ <имя файла>). 1 оаэи ВагсЬ... 1 оаэи В1пагу 1гпаяе...
Загрузка конструкций С1 1РБ, сохраненных в двоичном виде. Эквивалентен команде (Ыоад <имя файла>). Начало записи протокола работы с С1.1РБ в текстовый файл. Эквивалентен команде (с1г1ЬЫе-оп <имя файла>). После активации изменяется на Тцгп ОггЬЫе Ой. Тцгп 1,гг1ЬЫе Оп... Тпгп Ог1ЬЫе Ой... Завершение записи протокола работы с С1 1РБ в текстовый файл. Эквивалентен команде С1.1РБ (дг1ЬЫе-ой). Сохранение конструкций С1 1РБ в двоичном виде. Эквивалентен командс (Ьза~е <имя файла>). Ба~е В1пагу...
ЕЙ аког... Запуск встроенного редактора. Яшг С1.1РБ (Сгг1-Я) Выход из С1.1РБ. Ейг Раяге (Сгг!-Ъ') Копировать содержимое буфера обмена в диалоговое окно (вставляемый текст всегда помещается в конце окна). 6.3.3.2. СИ-интерфейс Как уже было отмечено, СЫРБ использует б1Л-интерфейс. В Таблице 6.3.1 приведено краткое описание всех (за исключением нескольких не представляющих в данном случае интереса) пунктов меню, Разделы меню перечислены слева направо, т.е. так, как они написаны в строке меню. Команды внутри каждого меню также перечислены в порядке, в котором они находятся в меню.
Гиава 6. Системы, основанные на знаниях 155 Сотр1еге ... (С!г1- 1) Ехесв- Вези (Ссг143) акоп Кцп (СггШ) На!~ (С~г!-С) Боер (Сп 1-Т) Жа~сЬ ... (Сп1-%) Рге1егепсея ... С!еаг С1.1РБ Вговис МодЫе ВеГгп1е Мапаяег ОейасЬ Мапанег Аяепда Мападег "Завершение" символа, вводимого в данный момент в диалоговом окне. Если не существует никакого возможного продолжения, подается звуковой сигнал. Если существует только одно возможное продолжение, то символ автоматически завершается. Если существует больше чем одно завершение, то список всех возможных продолжений выводится в диалоговом окне.
Нажмите кнопку ОК, чтобы завершить символ текущим выделением. Нажмите кнопку Сапсе1, чтобы закрыть диалоговое окно без завершения команды. Сброс. Эквивалентен команде С1.1РБ (геяес). При сбросе сначала очищаются списки фактов и активированных правил, затем в список фактов заносятся исходный факт (ип6аИас1) и факты, описанные в конструкциях (дейас$в). Запуск. Эквивалентен команде (гцп) С1 1РБ. В ходе выполнения программы изменяется на На1~. Останов. Пошаговое выполнение. Эквивалентен команде С1.1РБ (гцп <количество шагов>). Количество шагов задается в поле Боер Кц1е РЫпд 1псгешеп1 панели настройки параметров С1.1РБ. Смена режимов просмотра.
Настройка параметров С1.1РБ. Очистка С11РБ. Эквивалентна команде С1.1РБ (с1еаг). Система приводится к начальному состоянию. Переключение между модулями программы. По умолчанию создается лишь один модуль — МА1Х. Просмотр и редактирование базы знаний. Просмотр и редактирование списка фактов. Просмотр и редактирование списка активированных в данный момент правил. Базы данных. Интеллектуальная обработка информации ВЫов Расгз %1пйою Просмотр списка фактов. Адепда %ик1ои Просмотр списка активированных в данный момент правил.
ИоЬа1з Ъйпдов Просмотр всех глобальных переменных и их значений. А11 АЬоче Отображение всех окон из данного меню, Закрытие всех окон. 1чопе С1еаг 01а1од %1пс1оъ Очистка диалогового окна. Таблица 6.3.2. Краткое описание ИЛ-интерфейса редактора Назначение Меню Пункт Открывает новый файл для редактирования с именем цпй1ед. Ие Иея (С1г1-1ч) Ореп ... (С~г1-О) Открытие текстового файла для редактирования. Открыт может быть только один файл. Сохранение редактируемого файла. Если файл не был назван, диалоговое окно запросит имя файла, чтобы сохранить файл.
Баче (С1г1-Б) Сохранение редактируемого файла под новым именем. Баче Аз ... Определение параметров страницы (используется при печати). Раде Бешр Рплю ... (Ог1-Р) Печать активного окна редактирования. Яцп Ей~ог ~СЫ4)) Выход из редактора. М~ ак1о <СЫ-г) Отмена последней операции редактирования. Удаление выделенного фрагмента в буфер обмена. Сц~ ~Ссг1-Х) 6.3.3.3. Интерфейс встроенного редактора Редактор С1 1РБ представляет собой встроенный текстовый редактор, предназначенный для написания программ для С1 1РБ. В Таблице 6.3.2 приведено краткое описание всех пунктов меню. Гпава 6.