←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
также перекрываются
два метода: конструктор 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 на экране.
Ниже приводится список всех операций
←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
|
|