Исследование фреймовой модели
sergey shishkinВ.М. Левыкин, М.А. Керносов
Харьковский национальный университет радиоэлектроники
Фреймовая модель структуры документа на основе представления фрейма расширенного понятием «интерфейс» с целью реализации средствами объектно-ориентированного программирования и разработана процедура логического вывода, основанная на реализации фреймами интерфейсов.
Ключевые слова: документ, модель, фрейм, интерфейс, структура данных.
Существующие модели и подходы к моделированию электронных документов предназначены либо для создания визуального представления документа (объектная модель документа, Document Object Model – DOM), либо для моделирования жизненного цикла документа и динамики изменения его состояний (UML-модели и модели, применяющие теорию автоматов).
В DOM Документ представляется в виде объекта-дерева, обладающего набором вложенных друг в друга атрибутов. Поддержка DOM реализована в большинстве современных языков программирования и браузеров. Данная модель определяет логическую структуру документа и набор методов, с помощью которых программно может быть получен доступ к документу и внесены в него изменения. Также DOM содержит спецификацию API для HTML-документов с допустимой (valid) структурой и корректно сформированных (well-formed) XML-документов. Понятие «документ» в спецификации DOM применяется в широком смысле: язык XML может быть применен как способ представления информации разных видов, которая может храниться в различных ИС, поэтому «документ» означает ещё и «источник данных». Языки XML и HTML применяются для представления данных, а DOM – для манипулирования данными. В первую очередь DOM предполагает стандартизацию интерфейса программирования создания и обработки документов, который позволяет осуществлять навигацию в структуре документа, добавлять, модифицировать и удалять элементы его содержимого.
Несмотря на то, что DOM ориентирована на конкретные языки программирования и сфера её применения связана только с web-документами, на данный момент DOM остается единственной формализованной моделью документа, позволяющей описать любой документ, созданный в поддерживающем её формате.
DOM может быть представлена в виде иерархической фреймовой структуры, которая не привязана к технологиям XML и HTML, но сохраняет гибкость при программировании с применением объектно-ориентированного подхода. Реализация формализованного представления документа позволит рассматриваться его как элемент ИС, приемник и источник данных. Вследствие этого актуальной является задача исследования и разработки модели документа, представляющей документ как структуру фактографических данных.
Задача разработки фреймовой модели структуры документа
Объектная модель документа описывает его в виде иерархии структур-ных элементов. В качестве элемента модели может применяться фрейм, кото-рый является легко программируемой структурой, содержащей фактографические данные и функциональность для работы с ними. Применением фреймов позволяет реализовать процедуры логического вывода. Поэтому целью проводимого исследования является разработка фреймовой модели документа, описывающей саму структуру документа, фактографические данные в документе и функциональность для работы с ними.
Документ, представленный в виде иерархии элементов, может быть описан структурой пары множеств - множество элементов документа и множество отношений между элементами документа. Отношение определяет элемент как родительский.
Элемент документа также может быть представлен в виде структуры пары множеств - множество свойств или атрибутов элемента, содержащих вносимые в документ фактографические данны и множество значений (данных) атрибутов документа.
Применение такого представления документа позволяет провести аналогию между структурой документа и фреймовой моделью представления знаний, а также представлением иерархии классов в технологии объектно-ориентированного программирования (ООП) и схемы данных в объектно-ориентированной модели данных, которые основаны на теории фреймов.
Фреймовая модель подразумевает представление знаний в виде сети фреймов, состоящей из узлов и связей между ними. Формально фреймовую модель можно задать в том же виде, что и сетевую: множество информационных единиц, фреймов; множество типов связей и отношений между информационными единицами (иерархические, ссылочные и т.п.); отображение, которое задает связи (из заданного множества типов связей) между информационными единицами, входящими в множество фреймов.
Аналогично фреймовой модели, применительно к ООП, в виде сети можно представить иерархию классов (диаграмма классов в UML) в которой классы-родители определяют набор полей (свойств) и функциональности, свойственный всем классам-потомкам. Также в виде сети может быть представлена схема данных в случае применения объектно-ориентированной модели данных (в теории баз данных под моделью данных понимают формализм, предназначенный для описания структур данных, зависимостей между ними, а также ограничений целостности, т.е. тех условий, которым должны удовлетворять допустимые схемы данных.
Согласно определению, фрейм является структурой данных для представления стереотипной ситуации. С каждым фреймом ассоциирована информация разных видов. Одна ее часть указывает, каким образом следует использовать данный фрейм, другая – что предположительно может повлечь за собой его выполнение, третья – что следует предпринять, если эти ожидания не подтвердятся. «Верхние уровни» фрейма четко определены, поскольку образованы такими понятиями, которые всегда справедливы по отношению к предполагаемой ситуации. На более низких уровнях имеется много особых вершин-терминалов или «ячеек», которые должны быть заполнены характерными примерами или данными.
Во фреймах значением терминала может быть указатель на субфрейм определенного типа. (Субфреймы, фреймы и суперфреймы – это иерархически упорядоченные элементы, образующие системы фреймов)». В технологии ООП полями класса также могут быть ссылки на экземпляры других классов, а понятия «субфрейм» и «суперфрейм» имеют аналоги в виде субклассов (классов-потомков) и суперклассов (классов-родителей).
Фреймы подразделяются на два типа: фреймы-прототипы (им соответствуют классы в ООП) и фреймы-примеры (им соответствуют экземпляры классов, поля которых заполнены конкретными данными, или объекты).
Следует отметить, что понятие «фрейм» применяется для описания знаний и выполнения процедур логического вывода – на теории фреймов также базируются языки представления знаний, такие как LISP, Smalltalk и др.
Поскольку теория фреймов является более гибкой и универсальной за счет большей степени абстракции, чем концепция ООП, предоставляет математическое, а не только визуальное, описание базовых понятий, а сети фреймов могут быть реализованы в виде иерархии классов, то для описания элемента структуры документа целесообразно применить понятие фрейма.
Фрейм представляется структурой: имя фрейма; имя слота; значение слота; имя присоединенной процедуры.
В качестве значения слота «имя присоединенной процедуры» можно использовать подпрограмму процедурного типа. Процедура запускается по сообщению, переданному из другого фрейма. В случае реализации фреймов в среде ООП, присоединенные процедуры смогут изменять состояния и других объектов-фреймов и могут быть вызваны другими объектами.
В упрощенном виде структура фрейма принимает вид, аналогичный структуре элемента документа, из пар - имя слота и его значения. В качестве значений слотов могут выступать имена других фреймов, что обеспечивает связь между фреймами.
Описание фрейма полностью соответствует предложенной структуре элемента документа, а описание структуры документа, соответствует частному случаю фреймовой модели при фиксированном множестве типов связей и отношений (элементы документа определены как дочерние или родительские по отношению к другим элементам).
Представление элемента документа в виде фрейма позволяет отделить описание данных, являющихся его атрибутами, от описания структуры документа. В то же время фреймовая модель структуры документа позволит применять процедуры логического вывода к элементам такой модели.
Поскольку объектно-ориентированное представление данных поддерживается ведущими СУБД, логический вывод с применением фреймов может быть реализован не только на уровне программного обеспечения (ПО), но и на уровне информационного обеспечения (ИО), что значительно упрощает разработку экспертных модулей таких систем за счет применения стандартных инструментальных средств и системного ПО.
Вариант реализации процедуры логического вывода на фреймовых структурах в специализированных средах, использующих языки представления знаний (LISP, Smalltalk, KRL, CONCUL, GUS и др.), обладает рядом недостатков:
- требуется дополнительное описание иерархии фреймов на специальном языке;
- среды разработки, применяемые при работе со специальными языками для программирования логического вывода на основе различных моделей знаний, в значительной степени уступают средам ООП в плане надежности, функциональности и удобства;
- низкий уровень распространённости таких сред программирования и малое количество специалистов, имеющих опыт работы с ними;
- необходимость организации обмена данными между ПО,ИС и модулем логического вывода, написанным на специализированном языке (например, через dll-библиотеки).
Поэтому с целью повышения уровня надежности ПО ИС, снижения времени на разработку системы, устранения необходимости привлечения дополнительных специалистов, целесообразна реализация логического вывода на фреймовых структурах с применением технологии ООП.
Объектно-ориентированная иерархия классов включает дополнительные элементы, отсутствующие во фреймовой модели. Поэтому с целью применения формализованного описания структуры электронного документа и внесенных в него данных, а также для упрощения реализации процедуры логического вывода в среде ООП, предлагается модификация представления фрейма и дополнение фреймовой модели представления знаний таким понятием, как «интерфейс фрейма», соответствующим понятию «интерфейс класса», заимствованным из объектно-ориентированной модели.
Интерфейс класса представляет собой объявление базовой функциональности, которую должен реализовать поддерживающий его класс. Путем реализации методов GetPropertyName и SetPropertyName, осуществляющих доступ к полям класса, с помощью интерфейса фактически возможно определение свойств (полей), которые должен содержать класс, реализующий данный интерфейс. Под интерфейсом класса будет пониматься структура, описывающая набор методов (функциональность, бизнес-логика) и свойств класса. Кроме того, интерфейсы, аналогично классам или фреймам, могут между собой образовывать иерархии и содержать ссылочные свойства, т.е. между интерфейсами также могут существовать связи и отношения.
Помимо ввода понятия «интерфейс фрейма», фреймовую модель следует дополнить понятием совокупности всех методов (присоединенных процедур), связанных с фреймом в целом (не только с конкретными слотами).
Согласно данному выше определению интерфейс класса или фрейма представляет собой структуру: глобально уникальный идентификатор (GUID); множество методов, объявленных в интерфейсе, осуществляющих изменение значений экземпляра класса или других объектов, вызов других методов, вычисление значений и т.п., – т.е. реализующих бизнес-логи и множество свойств (полей, слотов), объявленных в интерфейсе фрейма.
В общем случае свойство будет представлено именем свойства (слота) и парой GetName и SetName (метод, возвращающий значение свойства (слота) и метод, устанавливающий значение свойства (слота)).
Тогда структура фрейма примет вид: имя фрейма; множество реализуемых фреймом интерфейсов (может быть пустым); имя слота; значение слота; имя присоединенной процедуры; множество методов (присоединенных процедур), связанных с фреймом.
Фреймовая модель, описывающая сеть фреймов и интерфейсов: множество информационных единиц, фреймов и и интерфейсов; множество типов связей и отношений между информационными единицами модели (между фреймами, между интерфейсами, между фреймами и интерфейсами); отображение, которое задает связи и отношения (из заданного множества типов связей) между информационными единицами, входящими в множество фреймов.
Расширение фреймовой модели представления знаний путем введения понятия «интерфейс фрейма» позволяет реализовать процедуру логического вывода, основанную на реализации фреймами интерфейсов. Предполагается применение данной процедуры для фреймов, не состоящих друг с другом в отношениях «быть субфреймом» или «быть суперфреймом». Это позволит выделить в исходном множестве подмножество всех фреймов, реализующих функциональность, заданную в виде набора интерфейсов, что невозможно путем классического логического вывода на сети фреймов.
На множествах фреймов, интерфейсов и их свойств можно вводить различные функции для разработки технологий динамического формирования интерфейса пользователя и актуализации данных.
В качестве универсального множества задается множество классов, используемых для описания структурных элементов документов. Каждому из множества интерфейсов, которые могут быть реализованы классами, ставится в соответ-ствие множество панелей, применяемых в пользовательском интерфейсе для отображения и ввода данных, вносимых в элементы документов (отношение «много к одному» – одна панель может соответствовать нескольким интерфейсам), и набор процедур по актуализации данных в ИС.
Так как документом является совокупность множеств элементов и отношений между ними , то элементы документа могут быть представлены в виде фреймов, слоты которых содержат фактографические данные. Таким образом, набор фреймов, связанных отношениями подчиненности образуют структуру документа: множество экземпляров фреймов, являющихся элементами документа; множество отношений между элементами документа.
Набор фактографических данных, регламентируемых интерфейсом фрейма равен множеству его свойств, а совокупность фактографических данных, содержащихся в слотах фрейма и во всем документе, можно описать их пересечениями и объединениями.
Выводы
Расширено представление фрейма понятием «интерфейс фрейма», заимствованным из технологии ООП, что позволяет упростить реализацию фреймов в средах ООП и разработана процедура логического вывода, основанная на реализации фреймами интерфейсов. С применением расширенного представления фрейма предложена фреймовая модель представления структуры документа, которая расширяет возможности динамического формирования пользовательского интерфейса, актуализации фактографических данных в ИС на основе документов и может быть применена для обеспечения гибкой настройки и адаптации модулей к требованиям пользователей и изменениям бизнес-процессов.
ЛІТЕРАТУРА:
- Керносов М.А., Левыкин В.М. Система электронного документооборота как элемент информационной системы// Сборник трудов второй международной студенческой научно-технической конференции. – Донецк: ДонНТУ, 2006. – С. 353-354.
- Керносов М.А. Представление объектной модели документа в виде иерархической фреймовой структуры// Управління розвитком. – 2007. – № 7– С. 27-28.
- Осуга С. Обработка знаний. – М.: Мир, 1989. – 283 с. *
- Минский М. Фреймы для представления знаний. – М.: Энергия, 1979. –152 с.
- Искусственный интеллект. – В 3-х кн. Кн. 2. Модели и методы: Справочник/ Под ред. Д.А. Поспелова – М.: Радио и связь, 1990. – 304 с.