автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Система построения сетевых баз данных и знаний
Автореферат диссертации по теме "Система построения сетевых баз данных и знаний"
Санкт-Петербургский государственный университет
■ " .л л
г , й ^Ч-;
На правах рукописи
Барышников Вячеслав Владимирович Система построения сетевых баз данных и знаний.
05.13.11 - математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей.
АВТОРЕФЕРАТ
диссертации на соискание ученой степени кандидата физико-математических наук.
Санкт-Петербург - 1995
Работа выполнена на кафедре технологии программирования факультета прикладной математики - процессов управления Санкт-Петербургского государственного университета.
Научный руководитель - доктор физико-математических
наук, профессор В.А.Тузов Официальные оппоненты - доктор физико-математических
наук, профессор С.Н.Баранов - кандидат физико-математических наук, С.Ю.Гарнаев Ведущая организация - Институт проблем информатики
Российской академии наук (г.Москва)
Защита состоится " 28 " 1995 г. в ^ час. мин, на
заседании диссертационного совета К 063.57.54 по защите диссертаций на соискание ученой степени кандидата физико-математических наук в Санкт-Петербургском государственном университете по адресу: 198904, Санкт-Петербург, Старый Петергоф, Библиотечная площадь, 2, математико-механический факультет СПбГУ.
С диссертацией можно ознакомиться в библиотеке Санкт-Петербургского государственного университета по адресу: 199034, Санкт-Петербург, Университетская наб.,7/9
Автореферат разослан " 24 " __ 1995 г.
Ученый секретарь диссертационного совета кандидат физ.-мат. наук, доцент
Б.К.Мартыненко
Общая характеристика работы
Актуальность темы. Занимаясь программированием сложных систем различного назначения, многие разработчики сталкиваются с одними и теми же проблемами. В настоящее время многие из систем сильно переусложнены, и борьба за сохранение контроля над такими системами становится все более острой. К сложным системам относятся системы управления базами данных и системы, основанные на знаниях, обладающие сложной внутренней логикой. В результате работы над большими программными проектами были выработаны различные подходы к снижению сложности системы на различных концептуальных уровнях. Одним из таких подходов является объектная декомпозиция, позволяющая уже на ранних этапах разработки видеть проект в целом.
Язык Форт обладает рядом преимуществ перед другими языками программирования, делающих его привлекательным средством для разработки сложных систем и систем искусственного интеллекта в частности. Нетривиальность подходов при создании таких систем предъявляет высокие требования к возможностям языка реализации. Полную свободу действий как с компилятором, так и со всеми внутренними структурами данных и функций дает только этот язык и язык ассемблера, который по известным причинам сложно использовать.
Цель работы. Основной целью диссертационной работы является создание расширения базовой Форт-системы, позволяющее на основе объектно-ориентированного подхода разрабатывать приложения в области обработки баз данных и
знаний, обладающие современным пользовательским интерфейсом и способные работать вне среды разработки.
Методы исследования. Стандарт языка Форт описывает минимальные средства, которые должны присутствовать в реализациях языка. Поэтому в качестве базовой форт-системы для решения поставленных задач была выбрана система F-PC версии 3.5. Решение некоторых проблем, а также неполное соответствие стандарту языка потребовало изменений в ядре форт-системы. Однако способ ' реализации объектно-ориентированной технологии полностью совместим с F-PC и может использоваться без каких-либо ограничений.
Научная новизна. В результате проделанной работы созданы средства для объектно-ориентированного программирования в данной форт-системе, на базе которых создан интерфейс разработки приложений в стандарте GUI. Разработан механизм виртуальной памяти для реального режима работы процессора, используемый прозрачно для программиста и позволяющий форт-системе использовать расширенную память наравне с оперативной. Был разработан метод отторжения законченного программного продукта от многосегментной форт-системы, что является одной из актуальных задач для большинства существующих форт-систем. Метод предусматривает использование сегментированной модели F-PC основного адресного пространства форт-системы.
Практическая ценность. Практическая ценность определяется возможностью создания независимых приложений, обладающих развитым многооконным интерфейсом с пользователем. Наличие виртуальной памяти позволяет использовать всю доступную процессору память, включая
недоступную средствами DOS. Возможность использования всех символов кодовой таблицы в именах функций форт-системы, а также наличие именованых локальных переменных и параметров позволяет значительно проще разрабатывать приложения, чем в других, аналогичных форт-системах. На основании результатов работы, автором диссертации были реализованы вспомогательные программы по обработке почтовых сообщений в локальной сети.
Апробация работы. Основные результаты работы докладывались и обсуждались на заседаниях кафедры технологии программирования факультета прикладной математики, на кафедре математического обеспечения математико-механического факультета Санкт-Петербургского
государственного университета. Часть работы, связанная с отторжением кода, оформленная в виде независимой разработки, была представлена на региональный конкурс "Программно-технические разработки по информатике и автоматизации".
Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы (65 наименований) и приложения. Объем основной части работы -125 страниц.
Содержание работы
Во введении определена область решаемых в диссертации задач, кратко обоснован выбор языка программирования, выбранного для выполнения работы. Приведены основные результаты работы.
В первой главе проводится обзор существующих работ в области решаемых в диссертации задач. Рассматриваются
различные системы на основе объектно-ориентированного подхода, а также системы, ориентированные на обработку знаний.
Форт-разработки в области объектно-ориентированного программирования весьма немногочисленны и различаются по полноте реализации. Некоторые из них носят либо характер примеров и непригодны для полноценного использования, либо являются специализированными разработками, используемыми в частных задачах, и представляют собой точки соприкосновения форт-технологии с объектно-ориентированной. Существуют также средства, реализующие возможности языка Смоллток.
Для обработки знаний в языке Форт характерны попытки удовлетворить требованиям работы системы в реальном времени, что логически вытекает из ранних применений языка. Универсальные системы, созданные на базе этого языка, имитируют продукционные Лисп-системы. И в этом случае форт был выбран для получения возможности установки системы на микропроцессорное оборудование (DELTA/CATS). Для форт-программ не характерно использование унифицированного механизма управления памятью. В той же мере это относится и к хранимым данным. Форт-система, изначально обладая механизмом блоков при работе с диском, именно его и использует для хранения различного рода данных. Широкое распространение dbf-формата для хранения данных на персональных компьютерах делает необходимым иметь возможность использовать его в среде Форта. В настоящей работе были устранены основные препятствия для оптимальной реализации. Dbf-файлы представлены как отдельные объекты системы.
Вторая глава посвящена общим вопросам, связанным с объектно-ориентированным подходом в проектировании и разработке систем. Анализируются используемые подходы в различных языках программирования.
Началом времени существования любого объекта является момент отведения ему участка памяти, а окончанием - момент освобождения этого участка. Классифицируя данные по времени существования можно выделить следующие шесть групп:
1! промежуточные результаты;
2. локальные переменные;
3. глобальные переменные;
4. межмодульные данные (сохраняющиеся между вызовами основного модуля); г
5. данные, сохраняющиеся от версии к версии программы;
6. данные, полностью независимые от программы.
Все множество таких объектов определяет степени устойчивости объектов. Устойчивость - свойство объекта существовать в пространстве и времени. Для универсальных языков программирования характерно представление только первых трех уровней. Уровни с четвертого по шестой характерны для технологий баз данных. Четвертый уровень может представлять константы операционной среды. Граница между третьим и четвертым уровнями зачастую сравнима с границей между оперативной и дисковой памятью. Это вызывает необходимость разработки схем сохранения объектов между запусками программы при использовании универсальных языков программирования и адаптацию технологии баз данных ко временно живущим объектам. К сожалению, ни один из объектно-ориентированных языков напрямую не поддерживает
концепцию устойчивости объектов. Сохранение полей данных объекта как правило не вызывает трудностей. Сохранение методов обработки, т.е. машинного кода, требует определенных усилий. Предлагаемая в работе методика отторжения кода позволяет, в известной степени, получить решение проблемы.
Здесь же содержится сравнительный анализ моделей данных и способов представления знаний. В этой главе рассмотрен пример, на основании которого показано, что набор таблиц .должен 'снабжаться дополнительными указателями, отражающими связи предметной области и упрощающими обработку данных. Реализация не должна быть основана на наборах промежуточных таблиц. Использование класса межтабличных связей позволяет сделать прозрачными некоторые операции по обработке данных. К недостаткам, в первую очередь, можно отнести несовместимый с сПэГ-форматом формат хранения связей.
Для экспертных систем не характерно использование дисковых структур данных при обработке знаний. Хранимая на диске база знаний представляет собой статические данные, загружаемые в момент начала использования системы. Отчасти это связано со сложной внутренней структурой знаний, их активной природой. Для такого вида информации наиболее адекватной формой представления может служить только исполнимый (активный) код. Эта проблема не столь актуальна для систем, основанных на правилах. Правила могут быть представлены в относительно однообразной форме, допускающей использование в процессе логического вывода. Однако при получении решения чаще всего используется только оперативная память, используемая для базы знаний. Более сложная ситуация
возникает при использовании фреймов. Отдельные фреймы могут содержать в себе (или ссылаться) на подфреймы, образуя сеть. Присоединенные процедуры также являются неотъемлемой частью. Сохранение таких структур требует достаточно сложной организации базы данных. Использование объектов в качестве основы для фреймового представления знаний совместно с методикой отторжения кода может служить основой для построения базы знаний.
В третьей главе рассмотрены преимущества и недостатки как языка Форт в целом, так и отдельных его реализаций. Используемые механизмы частичной параметризации не в полной мере удовлетворяют потребностям разработчиков. Приведено подробное описание реализации объектно-ориентированной технологии в языке Форт, рассмотрен генерируемый при этом код. Использование такого подхода позволило на его основе создать интерфейс с пользователем, обладающий максимальной гибкостью и простотой для понимания. Рассмотрены основные концепции его построения, а также структура базовых классов.
В одной из наиболее полных разработок, совмещающей в себе возможности языков Форт и Смоллток, позднее связывание реализуется через поиск в словаре методов функции с идентификатором, соответствующим полученному сообщению. На основании проведенных сравнений эффективности таких вызовов с вызовами через таблицу виртуальных методов, а также на основании анализа возможных иерархий классов, в которых требуется отложенное связывание, автором использован подход с таблицей виртуальных методов. Такая реализация позволяет сократить до минимума все накладные расходы, связанные с
поздним связыванием. В результате принятой структуры объектов возможен вызов методов для структур . данных, первоначально не являющихся объектами. Синтаксис вызовов следующий:
1. <имя-объекта> -> <имя-поля/метода>
2. <имя-класса> -> <имя-поля/метода>
3. <имя-поля/метода>
4. <имя-класса> late> <имя-метода>
Первая и вторая формы могут использоваться в любом месте и-fe любом состоянии. Третья форма применима только в состоянии компиляции методов класса и подразумевает обращение к своему классу. Четвертая используется для позднего связывания и не может использоваться на произвольных структурах данных, поскольку требует наличия ссылки на класс объекта. Конструкции, использующие имя класса, требуют адрес объекта на вершине стека в качестве параметра в момент вызова. Создание классов и объектов производится следующим образом:
<предок> class: <имя> ( ... описание ... ) class;
<класс> object: <имя>
При описании методов допустимо использование встроенного ассемблера. Как и в обычных определениях через двоеточие возможно использование именованых локальных переменных и параметров. В качестве атрибутов класса допустимо использование других объектов. Это достигается за счет конструкции, полностью аналогичной описанию объекта. Таким образом, становится возможным использование следующих вызовов для серии вложенных объектов: <объект> -> <влож.-объект1> -> ... <влож.-объектЫ> -> метод
На этой основе автором реализован многооконный пользовательский интерфейс. Например, используемый в
системе редактор представляет собой группу, состоящую из поля редактирования и строки-состояния, являющиеся объектами. Для обращения к этим объектам используется конструкция, приведенная выше.
Четвертая глава посвящена отторжению кода и реализации механизма виртуальной памяти.
Разработка программ в форт-системе, а затем генерация независимых приложений остается актуальной задачей для интерактивного Форта. Основная проблема заключается в невозможности определить по скомпилированной информации: данные это или адреса. Данная проблема решается за счет введения частичной типизации на уровне ядра языка.- Для односегментной модели компилируемые адреса имеют однозначное толкование. Иначе обстоят дела с многосегментными форт-системами. Адрес может состоять только из одного значения сегмента (Б-РС) или являтся смещением в другом сегменте. Существующий формат объектного модуля предполагает описание любого из адресов, каким бы он не был. Однако усложненное в целях компактности описание способов разрешения ссылок между отдельными модулями, а также анализ используемых типов адресов позволило создать более простые средства.
Для системы Р-РС характерно использование четырех типов адресов (сегмент заголовков в рассмотрение не принимается). Основными компилирующими словами являются "X," и ",". Первое слово позволяет системе снять ограничение на размеры получаемого шитого кода. При этом используется отдельные сегменты памяти. Для адресации сегментов используется относительный адрес. сегмента (с нулевым
смещением). Необходимо также различать адреса, получаемые в результате компиляции команд ассемблера, использующих адресацию относительно текущего значения регистра IP. Итак, для возможных адресов введены четыре слова, осуществляющие их компиляцию: "ХАС,", "САС,", "СОС,", "СВХ,". В обычном состоянии первое имеет семантику "X,", а остальные - ",". Для получения модуля необходимо использовать программу: компилятор модулей. Данная программа не является компилятором в полном смысле этого слова. Более того, ею осуществляются обратные действия для сборки модуля. При переопределении описаных выше слов компилируемая программа оставляет "след" - информацию о типах данных. По "следу" компиляции осуществляется построение модуля.
Основными преимуществами подхода являются полное соответствие шитого кода в независимом приложении и форт-системе, возможность строить и использовать нестандартные расширения компилятора самим программистом. Естественно, такие определения как DEFER должны выглядеть следующим образом:
: DEFER CREATE ['] NOOP САС, DOES> PERFORM ;
Работа с базами данных требует развитого управления памятью. В стандарте Форта для этих целей предусмотрено три функции: отведение памяти, освобождение и изменение размера блока. Поскольку базовая форт-система работает в реальном режиме процессора, то для использования всего доступного адресного пространства (свыше одного мегабайта), в данной работе предложен механизм виртуальной памяти, позволяющий не заботиться о пересылке блоков между основной и расширенной памятью. Также возможно использование диска, в
качестве дополнительной памяти. Использование виртуальной памяти производится следующим образом:
virtual v-seg : test 50000 gmem v-seg .... fmem vseg ; Таким образом, если переменная v-seg была ранее описана через value, то для использования той же программы нужно изменить только описание переменной и отведение/освобождение памяти.
В заключении приводятся основные результаты проделанной работы, а также направления для дальнейшего усовершенствования системы.
Приложение содержит исходные тексты наиболее важных функции различных подсистем. Сюда включены полный текст объектно-ориентированной надстройки, частичное описание классов, реализующих интерфейс с пользователем, компилятор модулей и основные функции подсистемы управления виртуальной памятью.
Основные результаты
В результате проделанной работы автором решены следующие задачи:
• проанализировано состояние разработок для форт-систем примененительно к объектно-ориентированному программированию и обработке знаний.
• унифицированого взаимодействия пользователя с системой;
• построения сложных программных разработок на базе объектно- ориентированного подхода в языке Форт;
• поддеРжки объектно-ориентированного программирования в среде языка;
• устойчивости объектов; '
• отторжения получаемого кода от многосегментной форт-системы;
• создания независимых модулей и библиотек определений;
• создания независимых мини-приложений, не требующих форт-системы.
В ходе работы получены следующие результаты:
• разработан синтаксис объектной надстройки языка;
• реализована объектно-ориентированная надстройка, допускающая постфиксную нотацию, раннее и позднее связывание;
• разработан текстовый многооконный интерфейс взаимодействия с . пользователем, содержащий основные элементы управления;
• реализован механизм частичной типизации компилируемых определений;
• на основе частичной типизации реализовано построение модулей, полностью сохраняющих структуру шитого кода и содержащих отдельные определения;
• реализована виртуальная память для реального режима работы процессора;
• форт система дополнена механизмами именованых локальных переменных и вложенной обработкой ошибок.
Основные положения диссертации опубликованы в следующих работах:
[1] Барышников В.В. Объекты в Форте. / Вестник СПбГУ Вып.2 (Ы 8), 1995
[2] Барышников В.В. Целевая компиляция для многосегментных форт-систем. / Вестник СПбГУ Вып.З (Ы 15), 1995
-
Похожие работы
- Оптимизация технической доступности сетевых ресурсов программными средствами
- Высокопараллельная система выявления сетевых уязвимостей на основе генетических алгоритмов
- Разработка методов анализа и управления в обобщенных сетевых моделях
- Идентификация недекларированных воздействий в процессе сетевой передачи информации
- Адаптация политики маршрутизации сетевого трафика к требованиям по информационной безопасности
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность