3.2.2. Программная модель информации в "Консультанте"
База фактов и база правил представляют собой указатели на объекты
-потомки, порожденные от стандартного объекта - коллекции из библиоте-
ки Turbo-Vision:
TCOLLECTION───┬───TDATABASE
└───TRULEBASE
В коллекцию базы данных записываются факты, представляющие собой
также объекты-потомки от коллекции Turbo-Vision:
TCOLLECTION────────TFACT
Объект-потомок отличается от родителя наличием двух полей:
ATRIBUT - объект и QUESTION - вопрос. В коллекцию факта записываются
указатели на значения объекта. В объекте TFACT также перекрываются
два метода: конструктор LOAD и процедура STORE, позволяющие теперь
сохранить в потоке, кроме коллекции значений, еще и новые поля.
В свою очередь, значение - это потомок от базового объекта всей
иерархии стандартных объектов Turbo-Vision:
TOBJECT───────TVALUE
Этот потомок отличается от своего родителя тремя новыми полями:
SLOT - собственно значение (в виде строки), MARK - служебное поле,
применяющееся при создании базы правил и CON - поле-признак того, что
данное значение является заключением.
Такова структура базы фактов. В базу правил же записываются прави-
ла, каждое из которых представляет собой коллекцию, в свою очередь
каждый элемент которой - элемент правила. Элемент правила порожден от
TOBJECT и имеет следующие поля и методы:
- поле SLOT - номер помеченного в поле MARK значения;
- поле CON - поле-метка для определения предпосылки или заключе-
ния;
- метод LOAD - конструктор для загрузки данного объекта из потока;
- метод STORE - процедура для сохранения объекта в потоке.
Следует отметить, что каждый из этих объектов имеет методы LOAD и
STORE, поскольку предполагается, что БЗ будет сохранена в файле ресур-
сов, который представляет собой индексированный поток (поток с произ-
вольным доступом к объектам по ключам).
3.3. Программная реализация составных частей системы
3.3.1. Реализация интерфейса системы и СУБЗ
Интерфейс системы создается следующим образом. Объявляется объект
TEXPERT - потомок от стандартного объекта из библиотеки Turbo-Vision
TAPPLICATION, в котором уже содержатся такие необходимые компоненты
любой программы (приложения), как вывод строк меню и статуса, рабочей
поверхности, поддержка мыши и команды "Выход". Потомок перекрывает та-
кие методы TAPPLICATION, как INITSTATUSLINE для создания собственной
строки статуса, INITMENUBAR - для создания собственной строки "выпада-
ющих" меню, RUN - для вывода на рабочую поверхность окна банка знаний
и установки новой палитры, INIT - для подключения к системе ресурсов
(то есть инициализации файлов EXPERT.AIR и EXPERT.BLC) и регистрации
объектов в этих ресурсах, HANDLEEVENT - для обработки нестандартных
команд.
Главное (верхнее) меню системы имеет следующую структуру (см.рис.
1).
СИСТЕМА БАЗА
┌─────────────┐ ┌──────────────┐
│ ПАУЗА │ │ ОТКРЫТЬ │
│ MS-DOS │ │ НОВАЯ │
│ О ПРОГРАММЕ │ │ ПЕРЕИМЕНОВАТЬ│
│ ВЫХОД │ │ РЕДАКТИРОВАТЬ│
└─────────────┘ │ УДАЛИТЬ │
└──────────────┘
ОКНА СЕРВИС
┌────────────┐ ┌─────────────┐
│ РАСПАХНУТЬ │ │ ПАРОЛЬ │
│ ДВИЖЕНИЕ │ │ КАЛЕНДАРЬ │
│ ЗАКРЫТЬ │ │ КАЛЬКУЛЯТОР │
│ СЛЕДУЮЩЕЕ │ │ ИГРА │
│ ПРЕДЫДУЩЕЕ │ └─────────────┘
└────────────┘
Рисунок 1. Структура меню "Консультанта"
Меню СИСТЕМА содержит наиболее общие опции работы в системе, БАЗА
- операции управления базами знаний, ОКНА - операции над окнами, нахо-
дящимися на рабочей поверхности, СЕРВИС - некоторые инструментальные
средства, упрощающие работу пользователя в системе. Каждая операция
меню программно связана с командой, которая затем обрабатывается в ме-
тоде HANDLEEVENT. Так, например, операция НОВАЯ связана с командой
CMNEW. Процедура - обработчик событий HANDLEEVENT содержит строку:
... CMNEW:NEWBASE ... ,
которая означает, что при поступлении этой команды (событие - вы-
бор операции подсвеченной полосой или двойной щелчок "мышью") обработ-
чик запускает процедуру с именем NEWBASE, которая вызывает из файла
ресурсов окно создания базы (объект TNEWWINDOW), считывает из строки
ввода введенное имя базы, записывает его в файл EXPERT.BLC, создает
на диске новый файл с расширением "PRO", связывает его имя с именем
базы и затем уничтожает окно TNEWWINDOW на экране.
Ниже приводится список всех операций, и, минуя команды, процеду-
ры, с которыми связаны эти операции через обработчик событий:
- ПАУЗА, процедура PAUSE (осуществляет гашение экрана на время от-
лучения пользователя);
- MS-DOS, процедура DOSCALL (осуществляет временный выход в DOS и
возврат в систему по команде EXIT);
- О ПРОГРАММЕ, процедура ABOUT (вызывает из файла ресурсов окно с
краткими сведениями о данной программе);
- ВЫХОД, стандартная команда Turbo-Vision;
- ОТКРЫТЬ, процедура OPENBASE (ищет на диске файл, связанный с
именем выбранной для открытия (работы) базы, извлекает из файла базу
знаний и вызывает основную процедуру машины вывода OUTPUTMACHINE из
файла 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. │
└─────────────────────────┴──────────────────────────────────────────┘
... исследования в области искусственного интеллекта и медицины как совершенно независимые. В этом случае допускается возможность только использования медицинских знаний в плане психологического обеспечения работ по ИИ. Но и работы по искусственному интеллекту тоже влияют на развитие медицины.. В качестве первого результата можно выделить появление новой области психологических исследований, а ...
... основные линии работ по ИИ. Первая связана с совершенствованием самих машин, с повышением "интеллектуальности" ис- кусственных систем. Вторая связана с задачей оптимизации совместной работы "искусственного интеллекта" и собственно интеллектуальных воз- можностей человека. Переходя к собственно психологическим проблемам ИИ О.К. Тихомиров выделяет три позиции по вопросу о взаимодействии ...
... будет несколько другим). Когда система построенная из базовых элементов достаточно разовьется (будет иметь сложную структуру , а следовательно определенное количество опыта), то она сможет стать действительным Искусственным интеллектом, который также как и человек будет непредсказуем и не однозначен. И перед человеком будет задача только в наведении интерфейса с этим ИИ. (для решения определенных ...
... решить большое число сложных задач, либо способность найти нетривиальное решение? Насколько важно, к примеру, развитие дивергентного, "латерального" мышления, и как взаимосвязаны уровень способностей и творческая отдача? Эти вопросы изучаются теорией интеллектуальных различий. В настоящее время существует, как минимум, три трактовки понятия интеллекта: 1. Биологическая трактовка: "способность ...
0 комментариев