Искуственный интеллект
│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).
Рассмотрим на уровне процедур процесс создания новой базы. В окне
установок редактора выберем установки по умолчанию. Первым после нажа-
тия
кнопки ПУСК
(или клавиши
вом процедуры ATRIBUTEDITING (именно эту процедуру запустит SELECTOR
по умолчанию) выведется окно редактора объектов, вызванное из файла
EXPERT.AIR. Редактор объектов представляет собой диалоговое окно с
двумя строками ввода и восьмью управляющими командными кнопками. Каж-
дая кнопка связана с определенной процедурой посредством обработчика
событий окна TATRIBUTEDITOR.HANDLEEVENT. Все эти процедуры инкапсули-
рованы в объект TATRIBUTEDITOR. Словом, эти кнопки генерируют различ-
ные действия как с информацией, считанной из строк ввода процедурой
TINPUTLINE.GETDATA, так и поведения редактора объектов в теле редакто-
ра БЗ, составляющей которого он является. Так, например, кнопка ВВЕС-
ТИ включает полученные из строк ввода окна объект и вопрос о нем в ба-
зу фактов, кнопка ЗАПИСЬ сохраняет объекты или вопросы на диске в фай-
ле создаваемой или редактируемой БЗ, кнопка ДАЛЕЕ позволяет перейти к
следующему шагу редактирования - редактору значений, а кнопка НАЗАД -
к предыдущему (окно установок редактора). Все эти действия описывают-
ся методами объекта TATRIBUTEDITOR (его предок - объект TDIALOG) со-
ответственно INBASE, RECBASE, NEXT, PREVIOUS.
Как уже упоминалось выше, по команде ДАЛЕЕ вызывается процедура
NEXT, которая запускает процедуру VALUEEDITING. VALUEEDITING - проце-
дура, управляющая процессом ввода или редактирования значений. Редак-
тор значений - это ряд последовательно сменяющихся диалоговых окон,
аналогичных редактору объектов; отличие составляют:
- наличие статического текста, указывающего, для какого объекта
идет редактирование значений,
- имеется одна строка ввода вместо двух,
- имеется дополнительная кнопка ДРУГОЙ, позволяющая по окончании
редактирования одного объекта перейти к редактированию другого (то
есть, сменить окно).
Следует отметить, что редактор значений выдает такое количество
окон, сколько имеется объектов в базе знаний.
По команде ДАЛЕЕ окна редактора значений редактор БЗ переходит к
следующему этапу редактирования - редактору правил. Последний постро-
ен по принципу электронной таблицы и представляет собой матрицу, верх-
няя строка которой - имена объектов (FACT^.ATRIBUT), под каждым из ко-
торых в столбец выведены разрешенные значения. Перемещение по таблице
осуществляется клавишами управления курсором или "мышью", выбор значе-
ния
для предпосылки
- клавишей
-
комбинацией
клавиш
ния
клавишей
...ЕСЛИ <ОБЪЕКТ - заголовок столбца выбранного значения>=<выбранное
ЗНАЧЕНИЕ>... ,