Смекни!
smekni.com

Искуственный интеллект (стр. 5 из 13)

файла EXPERT.OVR);

- НОВАЯ, см. выше;

- ПЕРЕИМЕНОВАТЬ, процедура RENAMEBASE (удаляет имя активной базы

из списка баз файла EXPERT.BLC, извлекает из файла ресурсов окно пере-

именования, считывает из строки ввода окна новое имя, записывает его

в EXPERT.BLC и связывает это имя с базой);

- РЕДАКТИРОВАТЬ, процедура EDITING (для активной базы считывает

из из файла ресурсов диалоговое окно установок редактора, запрещает

все команды пользователя до получения установок из данного окна или

команды на его отмену);

- УДАЛИТЬ, процедура ERASEBASE (после второго подверждения пользо-

вателя о его окончательном решении удаляет имя активной базы из спис-

ка имен баз файла EXPERT.BLC, затем уничтожает связанный с этим име-

нем файл БЗ на диске);

- операции меню ОКНА, стандартные процедуры работы с окнами библи-

отеки Turbo-Vision;

- ПАРОЛЬ, процедура PAROLE (устанавливает на выбранную базу па-

роль для защиты ее от других пользователей;

- КАЛЕНДАРЬ, процедура EXPCALEND (вызывает из файла ресурсов окно

календаря);

- КАЛЬКУЛЯТОР, процедура EXPCALC (извлекает из файла ресурсов ок-

но калькулятора);

- ИГРА, процедура EXPGAME (выводит окно игры-головоломки на эк-

ран, предварительно считав его из файла ресурсов системы EXPERT.AIR).

Все данные процедуры инкапсулированы в объект TEXPERT, то есть

объявлены как его методы.

В строке статуса содержатся наиболее часто используемые команды

(операции) и их "горячие" клавиши. Описание этих команд приводится вы-

ше, исключение составляет команда МЕНЮ, активизирующая строку верхне-

го меню - это стандартная команда Turbo-Vision.

Рабочая поверхность представляет собой окно со списком имен БЗ, в

котором одна в данный момент времени активна. На экран окно выводится

процедурой DRAWBANKLIST, которая вызывается непосредственно из проце-

дуры TEXPERT.RUN и, в свою очередь, вызывает из файла ресурсов окно

банка знаний, вставляет в него список имен БЗ из файла EXPERT.BLC.

Таблица 5.

Новые или перекрытые методы объекта TEXPERT

┌─────────────────────────┬──────────────────────────────────────────┐

│ Метод │ Назначение метода │

├─────────────────────────┼──────────────────────────────────────────┤

│INIT │Вывод оболочки системы на экран, иницииро-│

│ │вание файлов EXPERT.AIR и EXPERT.BLC, ре- │

│ │гистрирование объектов этих файлов,наст- │

│ │ройка оверлейного файла,установка палитры.│

│ │ │

│INITSTATUSLINE │Вывод на экран новой строки статуса. │

│ │ │

│INITMENUBAR │Вывод на экран новой строки верхнего меню.│

│ │ │

│HANDLEEVENT │Обработка нестандартных команд (событий). │

│ │ │

│RUN │Извлечение из файла EXPERT.BLC списка │

│ │имен баз знаний, запуск программы на ис- │

│ │полнение. │

│ │ │

│DRAWBANKLIST │Вывод на экран окна банка знаний. │

│ │ │

│IDLE │Обновление индикатора кучи. │

│ │ │

│PAUSE │Гашение экрана. │

│ │ │

│CALLDOS │Временный выход в MS-DOS. │

│ │ │

│CALLWIN │Временный выход в Windows 3.х. │

│ │ │

│CALLNC │Временный выход в Norton Commander. │

│ │ │

│ABOUT │Информация о программе. │

│ │ │

│OPENBASE │Открытие выбранной базы знаний для кон- │

│ │сультации. │

│ │ │

│NEWBASE │Создание новой базы. │

│ │ │

│RENAMEBASE │Переименование базы. │

│ │ │

│EDITING │Редактирование базы. │

│ │ │

│ERASEBASE │Удаление базы. │

│ │ │

│PAROLE │Установка пароля на выбранную базу. │

│ │ │

│EXPCALEND │Вывод календаря. │

│ │ │

│EXPCALC │Вывод калькулятора. │

│ │ │

│EXPGAME │Вывод игры. │

│ │ │

│DONE │Удаление программы из оперативной памяти, │

│ │выход в MS-DOS. │

└─────────────────────────┴──────────────────────────────────────────┘

3.3.2. Реализация редактора знаний

Как уже упоминалось, при выборе в меню БАЗА операции РЕДАКТИРО-

ВАТЬ запускается управляющая процедура EDITING. Данная процедура, как

и прочие, инкапсулированая в объект TEXPERT, по имени активной (выб-

ранной) базы находит связанный с ней файл, извлекает из него объекты

DATABASE и RULEBASE, затем из файла ресурсов вызывает и выводит на эк-

ран диалоговое окно установок редактора. Это окно имеет:

- статический текст, показывающий, какая база будет редактировать-

ся;

- группы переключаемых опций (в терминах Turbo-Vision - кластеры)

двух видов (в библиотеке Turbo-Vision это объекты TRADIOBUTTONS и

TCHECKBOXES);

- командные кнопки.

Группы опций выполняют следующие установки:

- группа ВИД БАЗЫ позволяет установить конфигурацию БЗ и порядок

вывода из нее информации;

- группа ИНТЕРФЕЙС конфигурирует факты и правила таким образом,

чтобы машина вывода могла их вывести в том или ином виде;

- группа ВИД РЕДАКТОРА устанавливает один из двух приведенных ти-

пов редакторов знаний;

- группа РЕСУРСЫ позволяет сделать установки типа объектов, кото-

рые будут обрабатываться БЗ. Это могут быть либо строки либо текст;

- группа СОСТАВЛЯЮЩИЕ вызывает любой из редакторов, входящих в

состав редактора БЗ и представляющих собой редакторы отдельных элемен-

тов БЗ (объектов, вопросов об объектах, возможных значений объектов,

правил);

- группа РЕКВИЗИТЫ БАЗЫ позволяет включить в состав проектируемой

база знаний дополнительные компоненты.

Ниже групп в окне раполагаются четыре командные кнопки:

1. Кнопка ПУСК вызывает из оверлейного файла EXPERT.OVR процедуру

SELECTOR (см. ниже).

2. Кнопка СБРОС приводит переключаемые опции в группах в первона-

чальное положение.

3. Кнопка ОТМЕНА позволяет удалить окно с рабочей поверхности и

выйти из режима редактирования.

4. Кнопка ПОМОЩЬ выдает контекстную справку о том, как пользовать-

ся окном.

Как уже упоминалось выше, по команде ПУСК вызывается процедура

SELECTOR. Эта процедура обрабатывает полученную из диалогового окна

установок редактора информацию и позволяет вызвать ту или иную проце-

дуру в зависимости от этой информации.Например, при начальных установ-

ках по умолчанию вызывается редактор объектов и вопросов

ATRIBUTEDITOR (слово OBJECT внутри ЭС "Консультант" заменено на

ATRIBUT, поскольку OBJECT - зарезервированное слово языка Турбо-Пас-

каль 6.0).

Рассмотрим на уровне процедур процесс создания новой базы. В окне

установок редактора выберем установки по умолчанию. Первым после нажа-

тия кнопки ПУСК (или клавиши <ENTER> на клавиатуре) на экран посредст-

вом процедуры ATRIBUTEDITING (именно эту процедуру запустит SELECTOR

по умолчанию) выведется окно редактора объектов, вызванное из файла

EXPERT.AIR. Редактор объектов представляет собой диалоговое окно с

двумя строками ввода и восьмью управляющими командными кнопками. Каж-

дая кнопка связана с определенной процедурой посредством обработчика

событий окна TATRIBUTEDITOR.HANDLEEVENT. Все эти процедуры инкапсули-

рованы в объект TATRIBUTEDITOR. Словом, эти кнопки генерируют различ-

ные действия как с информацией, считанной из строк ввода процедурой

TINPUTLINE.GETDATA, так и поведения редактора объектов в теле редакто-

ра БЗ, составляющей которого он является. Так, например, кнопка ВВЕС-

ТИ включает полученные из строк ввода окна объект и вопрос о нем в ба-

зу фактов, кнопка ЗАПИСЬ сохраняет объекты или вопросы на диске в фай-

ле создаваемой или редактируемой БЗ, кнопка ДАЛЕЕ позволяет перейти к

следующему шагу редактирования - редактору значений, а кнопка НАЗАД -

к предыдущему (окно установок редактора). Все эти действия описывают-

ся методами объекта TATRIBUTEDITOR (его предок - объект TDIALOG) со-

ответственно INBASE, RECBASE, NEXT, PREVIOUS.

Как уже упоминалось выше, по команде ДАЛЕЕ вызывается процедура

NEXT, которая запускает процедуру VALUEEDITING. VALUEEDITING - проце-

дура, управляющая процессом ввода или редактирования значений. Редак-

тор значений - это ряд последовательно сменяющихся диалоговых окон,

аналогичных редактору объектов; отличие составляют:

- наличие статического текста, указывающего, для какого объекта

идет редактирование значений,

- имеется одна строка ввода вместо двух,

- имеется дополнительная кнопка ДРУГОЙ, позволяющая по окончании

редактирования одного объекта перейти к редактированию другого (то

есть, сменить окно).

Следует отметить, что редактор значений выдает такое количество

окон, сколько имеется объектов в базе знаний.

По команде ДАЛЕЕ окна редактора значений редактор БЗ переходит к

следующему этапу редактирования - редактору правил. Последний постро-

ен по принципу электронной таблицы и представляет собой матрицу, верх-

няя строка которой - имена объектов (FACT^.ATRIBUT), под каждым из ко-

торых в столбец выведены разрешенные значения. Перемещение по таблице

осуществляется клавишами управления курсором или "мышью", выбор значе-

ния для предпосылки - клавишей <ENTER>, выбор значения для заключения

- комбинацией клавиш <CTRL+ENTER>. Подробнее: выбор какого-либо значе-

ния клавишей <ENTER> равносилен записи в правило следующего пункта: