файла 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> равносилен записи в правило следующего пункта: