Содержание к диссертации
Введение
1 Дескриптивные логики и семантический веб 14
1.1 Логические методы и информационные пространства . 14
1.2 Основные понятия дескриптивных логик 22
1.3 Блок терминологии (Т-бокс) 27
1.4 Блок утверждений (А-бокс) 28
2 Логические архитектуры и объектно-ориентированное программирование 31
2.1 Логические архитектуры 31
2.2 Объектно-ориентированные проекции 37
2.3 Абстрактный объектно-ориентированный язык 45
2.4 Отображение 56
2.5 Мультиметоды 66
3 Построение интерфейсов для онтологии на базе оо проекций 70
3.1 Общая концепция интерфейсов для онтологии 70
3.2 Представление семантических сетей в виде деревьев 72
3.3 Ленивые бесконечные деревья 74
3.4 Правила построения дерева 76
3.5 Изоморфизм деревьев 78
3.5.1 Примеры правил 83
3.5.2 Логический подход 85
3.5.3 Функциональный подход 86
3.6 Обзор системы Meta2 95
3.6.1 Архитектура клиентской части системы Meta2 . 96
3.6.2 Механизм построения деревьев 97
3.6.3 Формы для работы с объектами 99
3.6.4 Модульность и система проектов 101
3.6.5 Приложения системы Meta2 105
Заключение 107
Литература 109
Приложение 121
- Основные понятия дескриптивных логик
- Абстрактный объектно-ориентированный язык
- Представление семантических сетей в виде деревьев
- Архитектура клиентской части системы Meta2
Введение к работе
Актуальность проблемы
С развитием Интернета стало очевидным, что это глобальное информационное пространство является мощным независимо наполняемым банком знаний человечества. Одна из фундаментальных проблем среды Интернет - несоответствие больших объемов информации и примитивных алгоритмов ее обработки, например, индексирование текстовой составляющей документов, поиск по тексту, и методами многомерного статисти-чекого анализа данных. Задачи, требующие интеллектуальной обработки информации, такие как систематизация, классификация и планирование, выполняются, как правило, человеком. Поэтому автоматизация интеллектуальной обработки информации является актуальной фундаментальной проблемой. Для ее решения по инициативе Т. Бернерса Ли развивается концепция интернета нового поколения - семантического веба [5]. В основе СВ лежит многоуровневый подход, базирующийся на стандартизированных логических формализмах. На роль этих формализмов выбраны дескриптивные логики, обеспечивающие оптимальное сочетание выразительности и эффективности. Ключевым понятием данного подхода являются онтологии, объединяющие разнородную информацию о предметной области в рамках единой структуры.
Одной из трудностей СВ является то, что огромную долю обращаю- щейся в Интернете информации составляют такие структуры данных как объектные и реляционные (табличные) модели. Логические формализмы слишком мощны и поэтому неэффективны по производительности при работе с объектами, что выводит этот ключевой сегмент данных из под непосредственного влияния СВ. В качестве магистрального пути решения этой проблемы сегодня предлагается развитие гибридных логических конструкций, объединяющих дескриптивные формализмы с классическими реляционными [22], [15]. Однако такой подход обладает рядом существенных недостатков. Во-первых, сами дескриптивные формализмы обладают всем необходимым для представления структур, ориентированных на работу с конкретными данными. Это делает привлечение внешних инструментов, в принципе, излишним. Поэтому формирование сложных гибридных механизмов в ситуации, когда дескриптивные логики способны сами справиться с проблемой, представляется далеко не оптимальным решением. Единственное препятствие к этому сегодня - отсутствие эффективных стратегий работы с примитивными данными. Во-вторых, гибридный подход ограничивает распространение продвинутых логических средств СВ, не выстраивая необходимой мотивации для разработчиков, которые так и не выходят за рамки реляционных баз данных. В-третьих, хорошо известна проблема моделирования предметных областей средствами БД-таблиц, когда объектная модель предметной области погружается в таблицы. Это делает гибридные подходы несбалансированными, поскольку в них логические средства работы с общими знаниями совмещаются с представлением конкретных данных (объектов) в рамках реляционной модели. Все эти проблемы делают актуальной задачу моделирования объектно-ориентированного подхода непосредственно в рамках дескриптивных логик с выстраиванием иерархии логик, где нижний уровень предназначен для эффективной (с точки зрения производительности) работы с конкретными данными. Иными словами, актуальной является задача построения внутренней архитектуры логик с совмещеннием уровней, ориентированных как на работу с логическими описаниями предметных областей, так и эффективную работу с конкретными данными об этих областях.
Цели и задачи исследования
Цель диссертационной работы состоит в моделировании объектных структур данных в рамках дескриптивной логики SHOXAf(D), допускающих реализации, эффективность которых по производительности сравнима с реляционными базами данных.
Основные задачи диссертационной работы
Разработка системы логических архитектур как платформы для интеграции методов представления данных и знаний в информационном пространстве.
Моделирование объектных структур данных через построение оо-проекций как дескриптивных логик, ориентированных на эффективную работу с объектами.
Построение и доказательство корректности отображения оо-проекций в систему типов данных абстрактного языка объектно-ориентированного программирования (ООП).
Разработка метода аксиоматизации и автоматической генерации пользовательских интерфейсов с помощью логических описаний на примере бесконечных деревьев.
Реализация программной системы Meta2 для апробации разработанных подходов.
Методы исследования
В диссертации используются методы теории доказательств, теории вычислимости, теории моделей и теории программирования.
Научная новизна
В работе впервые предложен метод построения объектных подмоделей логических моделей в рамках дескриптивных логик на базе оо-проекций - специализированных дескриптивных логик, моделирующих объектно-ориентированный подход к представлению и обработке информационных ресурсов. Предложен новый метод погружения объектных структур данных в логические модели, ориентированный на сочетание эффективной обработки объектных структур с интеллектуальной обработкой знаний общего характера. Разработан новый метод отображения объектных структур из логических описаний в системы структурных типов данных языков ООП. Также разработан новый метод построения интерфейсов к онтологиям в соответствии с концепцией логических архитектур. Сформулированы и доказаны свойства полноты и корректности оо-проекций. Основные результаты, представленные в диссертационной работе, являются
8 новыми.
Научная и практическая значимость работы
В работе предлагается метод построения информационных систем, ориентированных на создание баз данных и знаний, в которых эффективная обработка структур данных на уровне объектной модели сочетается с интеллектуальной обработкой знаний на логическом уровне. Данный подход к построению информационных систем апробирован на онтологических базах реальной сложности в рамках разработанного нами программного комплекса Meta2. Одно из основных приложений данного метода -использование для разработки распределенных систем знаний в глобальной информационной среде, а также метаописания информационных ресурсов, разработки интеллекуализированных образовательных систем и систем поддержки научных исследованиий. Реализованный в рамках Meta2 метод автоматической генерации пользовательских интерфейсов для онтологии обеспечивает доступ к системам логических описаний предметных областей для пользователей системы.
Основные результаты, выносимые на защиту:
Система логических архитектур как платформа для интеграции методов представления данных и знаний в информационном пространстве.
Формализм оо-проекций как средство построения объектных моделей в рамках дескриптивных логик.
Метод отображения структур данных из оо-проекций в языки ООП.
Метод аксиоматизации и автоматической генерации пользовательских интерфейсов с помощью логических описаний на основе бесконечных деревьев.
Система Meta2 как экспериментальная реализация разработанных методов.
Структура и объем диссертации
Диссертация состоит из введения, трех глав, заключения и списка использованной литературы.
В первой главе приводится обзор дескриптивных логик как наиболее перспективного формализма к представлению знаний. Представлены основные конструкции, которые используются в основных результатах работы.
В параграфе 1.1 рассматривается словарь дескриптивных логик, основные диалекты и способы расширения базовой логики. В параграфе 1.2 рассматривается структура описания терминологии дескриптивных логик. В параграфе 1.3 рассматривается блок утверждений дескриптивных логик.
Во второй главе вводятся логические архитектуры и на их основе выстраивается конструкция объектно-ориентированных проекций дескриптивной логики.
В параграфе 2.1 выстраивается общая схема взаимодействия элементов логической архитектуры. В параграфе 2.2 вводится понятие объектно-ориентированной проекции, базирующейся на расширении логики TLq.
В параграфе 2.3 с помощью лямбда-исчисления моделируется абстрактный объектно-ориентированный язык. В параграфе 2.4 строится отображение из объектно-ориентированных проекций в абстрактный объектно-ориентированный язык с доказательством корректности. В параграфе 2.5 рассматривается возможности и проблемы применения мультиметодов объектно-ориентированного программирования к обработке знаний, представленных в формате онтологии.
В третьей главе исследуются способы построения интерфейсов для систем, основанных на представлении знаний в виде объектно-ориентированных проекций. Разрабатывается метод построения интерфейсов для семантических сетей в виде бесконечных ленивых деревьев.
В параграфе 3.1 рассматриваются общие проблемы и задачи по построению интерфейсов для онтологических систем на основе ОО-проекций. В параграфе 3.2 разрабатывается представление семантических сетей в виде деревьев. Вводится понятие ленивого бесконечного дерева. В параграфе 3.3 описывается реализация разработанных подходов на базе системы Meta2.
Основные результаты диссертации опубликованы в следующих работах:
По теме диссертации опубликовано 9 работ. Наиболее значимые результаты представлены в работах [1] - [6]. В число указанных работ входят одна статья [1] из «Перечня ведущих и рецензируемых журналов и изданий ВАК РФ 2008г.», одна статья [2] из «Перечня ведущих и рецензируемых журналов и изданий ВАК РФ 2006г.», 2 статьи [3]-[4] в научных сборниках,
2 полных текста докладов [5]-[6] в материалах всероссийских конференций. Работа [1] выполнена в нераздельном соавторстве с научным руководителем. Из совместных публикаций [1], [2], [б] в диссертационную работу включены результаты, полученные автором самостоятельно и не затрагивающие интересы других соавторов.
Малых А.А. Логические архитектуры и объектно-ориентированный подход / А.А. Малых, А.В. Манцивода, B.C. Ульянов // Вестник НГУ. Серия: Математика, механика, информатика. 2009. - Т 9. -Вып. 3. - С. 64-85.
Малых А.А. Организация пользовательского интерфейса информационных систем на основе онтологии / А.А. Малых, B.C. Ульянов // Вестник Бурятского университета. Серия 13: Математика и информатика. - Улан-Удэ.: Изд-во Бурят, ун-та, 2006. - Вып. 3. - С. 250-253.
Ульянов B.C. Бесконечные ленивые маркированные деревья / B.C. Ульянов // Известия Иркутского государственного университета. Серия «Математика». - Иркутск, 2009. - №3. - С. 183-193.
Ульянов B.C. Интерфейсы к онтологиям и система Мета2 / B.C. Ульянов // «Информационные системы и логика». - Иркутск: Издательство Иркутского государственного университета, 2010. -Вып. 3. - 33 с.
Ульянов B.C. Создание пользовательского интерфейса для системы управления онтологиями / B.C. Ульянов // Сборник материалов всероссийского конкурса инновационных проектов аспирантов и студентов по приоритетному направлению развития науки и техники «информационно-телекоммуникационные системы». - Москва, 2006. - С. 64.
6. Малых А.А. Логические формализмы представления знаний и объектно-ориентированный подход / А.А. Малых, В.С.Ульянов. // Труды Всероссийской конференции «Телематика'2009». - С. - Петербург, 2009. - С. 47.
Апробация результатов
Основные результаты диссертационной работы были представлены на следующих конференциях и конкурсах: «Всероссийская научно-методическая конференция Телематика» (Санкт-Петербург, 2005, 2006, 2009 гг.). VII школа-семинар «Математическое моделирование и информационные технологии» (Иркутск, 2005 г.).
Всероссийский конкурс инновационных проектов по приоритетному направлению развития науки и техники «Информационно-телекоммуникационные системы» (Москва, 2006 г., 1 премия).
Семинары Института математики, экономики и информатики.
Семинар в Иркутской государственной педагогической академии.
Семинар в Институте динамики систем и теории управления СО РАН.
13 Личный вклад автора
Личный вклад автора состоит в следующем [в скобках указаны ссылки на статьи, где опубликован результат]: разработана система логических архитектур (в нераздельном соавторстве совместно с руководителем и А.А. Малых) [1][6]; разработан формализм оо-проекций (в нераздельном соавторстве совместно с руководителем) [1]; разработан метод отображения структур данных из оо-проекций в языки ООП (в нераздельном соавторстве совместно с руководителем) разработан метод автоматической генерации пользовательских интерфейсов на основе бесконечных деревьев (в неразделимом соавторстве с руководителем) [2][3][5]; реализованы разработанные методы в рамках системы МЕТА-2 и апробированы на ряде практических задач [2] [4] [5].
Благодарности
Хочется выразить благодарность моему научному руководителю проф. А.В. Манциводе за неоценимую помощь в написании диссертации, а также коллективу преподавателей, студентов и аспирантов кафедры информационных систем ИГУ за ценную помощь в апробации объектно-ориентированных проекций и тестирование системы Meta2, а также разработке приложений, базирующихся на ней.
Основные понятия дескриптивных логик
Дескриптивными логиками [2] принято называть класс формализмов, предназначенных для представления и обработки знаний (KR-формализмов). В рамках дескриптивных логик знания о предметной области (о мире) представляются через выстраивание отношений между понятиями предметной области. На основе этих понятий, которые еще назы вают терминологией, определяются свойства объектов в домене. Данную совокупность знаний называют описанием предметной области.
Дескриптивные логики являются распространенным инструментом, на котором базируются системы описаний знаний. Доказательством этому служит то, что дескриптивные логики занимают ключевую позицию как система формализации знаний в концепции Интернета нового поколения — семантическом вебе (Semantic Web [84]).
Дескриптивные логики являются подклассом широкого класса логик первого порядка. Данные логики характеризуются особым балансом между между выразительностью и алгоритмической эффективностью.
Словарь дескриптивных логик состоит из концептов (понятий) и ролей (отношений). Понятия обозначают множества объектов («индивидуалов»), а роли представляют бинарные отношения между объектами предметной области.
Простейшими описаниями в дескриптивной логике являются атомарные концепты и атомарные роли. Из атомарных концептов могут быть построены сложные описания. Данное построение производится индуктивно с помощью соответствующих конструкторов.
Далее буквами А и В будем обозначать атомарные концепты, буквой R - атомарные роли, а буквами С и D - сложные концепты (описания).
Следует сказать, что существует множество различных языков дескриптивной логики. Для упрощения в дальнейшем будем называть их дескриптивными языками. Их основные отличия между собой заключаются в наборе используемых конструкторов. Язык AL (Atributive Language) был представлен в работе [40] в 1991 году как минимальный язык, на основе которого строятся все другие дескриптивные языки.
Элементами описаний концептов в языке AL являются: атомарный концепта А, универсальный концепт Т, нижний концепт ±, атомарное отрицание -іД пересечение концептов СП Д ограничение значения \fR.C, ограниченный квантор существования Зі?.Т. Заметим, что в AL отрицание может быть применено только к атомарным концептам, и только универсальный концепт может быть в области действия квантора существования (за ролью R).
Чтобы формально определить семантику AL-концептов, рассмотрим интерпретацию І, состоящую из непустого множества А1 (область интерпретации) и функции интерпретации. Данная функция является отображением каждого атомарного концепта А в множество А1 С А1 и каждой атомарной роли R в бинарное отношение R1 С А1 х А1. Функцию интерпретации можно расширить на описание любых концептов. Это возможно за счет использования следующего индуктивного определения: T7 = AJ 1/ = 0
Через интерпретацию можно сравнивать различные концепты. В частности, из равенства интерпретируемых множеств двух концептов (С1 = D1, для любой интерпретации /) следует эквивалентность данных концептов. Общепринятая запись эквивалентности двух концептов: С = D.
Рассмотрим другие языки AL-семейства, которые получаются добавлением новых конструкторов, и поэтому являются более выразительными. Введем ряд конструкторов: Объединение концептов (принято обозначать буквой U). Записывается как Си D и интерпретируются как (С U D)1 — С1 U D1. Полный квантор существования (принято обозначать буквой Е). Записывается как 3R.C и интерпретируется как 3R.C отличается от 3R.T тем, что в области действия квантора существования может стоять произвольный концепт.
Количественные ограничения (обозначим буквой N). Записываются как nR (ограничение — по меньшей мере) и nR (ограничение — не больше чем), где п 0. Данные ограничения интерпретируются как соответственно, где - обозначает кардинальность множества. Отрицание произвольного концепта (обозначим буквой С). Записы вается как - С и интерпретируется как (- С)1 = AT\CJ. Расширением языка AL любым подмножеством данных конструкторов получается отдельный дескриптивный язык. Принято именовать такие языки как AL[U][E][N][C], в соответствии с включением в язык соответствующего букве конструктора. Например, язык ALC есть расширение языка AL конструктором отрицания произвольного концепта. С точки зрения денотационной семантики дескриптивные языки соответствуют логике предикатов первого порядка. Как упоминалось выше, интерпретация / назначает каждому атомарному концепту и роли унарное и бинарное отношение над А1, соответственно. Это позволяет рассматривать атомарные концепты как унарные предикаты, а роли как бинарные предикаты. Нетрудно видеть, что для любого концепта С можно определить эквивалентную формулу языка первого порядка фс(%) с одной свободной переменной х такую, что для любой интерпретации / элементы множества С1 удовлетворяет фс(х). Конструкторы пересечения, объединения и отрицания переводятся в логическую конъюнкцию, дизъюнкцию и отрицание, соответственно. Пусть С транслирован в эквивалентную формулу фс{%) и R есть атомарная роль. Тогда можно записать следующие формулы, соответствующие количественным ограничениям и кванторам существования:
Абстрактный объектно-ориентированный язык
Чтобы исследовать взаимодействие оо-проекций с системой типов данных в объектно-ориентированном подходе, введем абстрактный объектно-ориентированный язык (AOOL) с множественным наследовани- ем. Традиционно объектно-ориентированные языки описываются в рамках лямбда-исчисления с включением типов и рекурсией (см., например, [10] [11] [16]). Домены данных формируются из базовых типов данных с помощью конструктора записей. В некоторых языках также используется конструктор варианта (прямой суммы). Будем считать, что в качестве базовых типов данных в AOOL работают те же типы данных, что и в оо-проекциях, то есть, принадлежащие области Т . Определение 2.3.1 (Запись) Запись - это конечное отображение из имен полей в значения: Домен записи обозначаем через dora(o) — {ai,..., а }. Через точку определяем оператор взятия значения поля: 0. = ег-. Определение 2.3.2 (композиция записей)
Пусть о\ и o i - две записи. = Некоторые примеры записей: Например, marie.name = Marie и John, age = 40. Иногда значение поля записи неизвестно или не существует. Для отражения этого факта в AOOL добавляется специальное «пустое» значение nil. Пример использования nil: [а ь- 1, b t— nil]. Рекурсивные функции и их семантика определяются через стандартный оператор неподвижной точки Fix(.) [41], который для каждого Л-выражения F возвращает f = Fix(F), такой что f = F(f). Классический пример: для определения функции факториала, вместо можно написать и затем определить fact = Fix (FACT). Внешняя переменная А-выражения (в случае FACT это self) интерпретируется при вычислении неподвижной точки как ссылка на сам объект, определенный А-выражением.
Это дает еще одну возможность использовать оператор неподвижной точки - для моделирования переменных, ссылающихся на сам объект. Ссылки из объекта на него самого играют важную роль в объектно-ориентированных языках (например, в Java это this). Для определения семантики такой «само-ссылки» также используется Fix, например: Данные переменные требуют специального подхода при определении композиции двух записей: С неформальной точки зрения композиция двух записей означает, что они описывают один и тот же объект, который должен обозначаться одной и той же переменной self. Теперь рассмотрим, как в AOOL определяются классы и наследование.
Начнем с примера- определения класса Point [11]: class Point(X:Float, Y:Float) = Aself. [ x:Float н- Благодаря оператору неподвижной точки, это определение может быть использовано как генератор объектов, например, Мы говорим, что этот объект сгенерирован классом Point. Чтобы научить классы наследовать от других классов, введем операцию суперкласса superclass class: Операция суперкласса D интуитивно достаточно понятна. Если у нас есть описание класса Aself .Asuper .а включающее ссылку объекта на себя (переменная self) и ссылку на суперкласс (переменная super), и если этот суперкласс определен с помощью выражения Aself .b, тогда Aself. ((Asuper.a) (b)) говорит, что b должна восприниматься как описание суперкласса в а. Также, нам необходимо иметь доступ в а к полям, определенным в записи суперкласса. Это достигается добавлением . . . ф Aself .Ъ.
Представление семантических сетей в виде деревьев
Такое применение объектно-ориентированных методов вызывает ряд вопросов. Наиболее серьезные связаны с взаимодействием логического обработчика онтологии и процедурного обработчика алгоритмического языка. Не существует общего решения, чтобы преодолеть противоречия, возникающие между двумя парадигмами. Например, если мы используем язык ООП пассивным образом, проблема исчезает, т. к. логическая часть не модифицируется. Если же в результате обработки языка ООП изменяется логическое описание, здесь возможны различные подходы. Например, мы можем перезапускать логический обработчик каждый раз после возникновения изменений, произведенных процедурным обработчиком, для того чтобы актуализировать данные, содержащиеся в онтологии. Или же можно отслеживать изменения и проводить их локализованную обработку. Взаимодействие между логической и процедурной парадигмами жизненно необходимо, если мы хотим принципиально расширить область применения онтологии.
Проблема взаимодействия логической и процедурной компонент носит общий характер. Но существует много других конкретных задач, связанных с этим взаимодействием. Например, рассмотрим, как мультимето-ды могут применяться к обработке онтологии. Мультиметоды (также известные как multiple dispatch) - концепция, характерная для некоторых объектно-ориентированных языков [81]. Согласно этой концепции, функция или метод динамически вызывается, исходя из типов аргументов времени исполнения (runime). Суть заключается в том, что несколько методов имеют одинаковые имена, выполняющие концептуально похожие задачи, но ведут себя по разному в зависимости от типа переданных параметров. Решение о вызове того или иного метода происходит динамически. Мы рассматриваем мультиметоды как один из перспективных инструментов обработки онтологических данных. Ясно, что определения мультиме-тодов не могут быть частью описания класса и должны быть внешними по отношению к нему. Чтобы ввести мультиметоды в AOOL, расширим язык следующей конструкцией:
Например, если у нас есть класс GeometricFigure с подклассами Circle и Triangle, мы можем определить мультиметод dist состоящий из методов: dist ь- Afigl:Circle Afig2:Triangle. distance circle - triangle dist и-» Af igl: Circle Afig2: Circle. distance circle - circle
В общем случае мультиметод М состоит из набора отдельных методов М — {mi,... ,77}. Сигнатура метода т в форме (2.3) - это множество (М, тгі,..., rrn), где М - имя мультиметода М, а тТ± - структурный тип г і. Пусть V - AOOL программа. Будем говорить, что одна сигнатура меньше другой: ковое число параметров, и для каждого г = 1..п, т; р т[.
В зависимости от типов параметров, динамически выбирается наиболее подходящий метод. Пусть М = {mi,..., rrik} - мультиметод, a si,..., St - сигнатуры mi,...,m;t, соответственно. Пусть также M(ol, . . . , on) - вызов М со значениями параметров ol, ..., on. Поедположим, что структурным типом любого объекта оі в данном вызове является т0±. Теперь, чтобы выбрать наиболее подходящий метод мультиметода М, выполняются следующие шаги:
Важным компонентом построения информационных систем является обеспечение пользователя доступом к разнородной информации. Ключевую роль здесь играют интерфейсы доступа к знаниям, сконцентрированным в логических структурах, например, в онтологиях. Особую сложность задача построения интерфейсов обретает в ситуации, когда «элитная» логическая информация должна быть представлена в виде, приемлемом для обычного пользователя, не обладающего высокой квалификацией. Но без решения этой проблемы очень трудно обеспечить массовое использование логических средств. Таким образом, необходимо разработать подход к построению пользовательских интерфейсов информационных систем на основе онтологии, главным критерием которых должно быть удобство и простота. При этом нельзя терять гибкость и мощность логических инструментов описания информации - интерфейсы должны поддерживать эту гибкость, и доносить ее до пользователя. В этом плане очень показательными являются информационные ресурсы, ориентированные на поддержку научных исследованй. К обработке информации может относиться и выстраивание полученных данных в сложную иерархию, и построение интерфейсов, отражающих динамику исследуемой области за определенный период времени и т.д.
Таким образом, существенным барьером для широкого применения онтологии является отсутствие интерфейсов к этим логическим структурам, рассчитанных на массового пользователя. Существующие системы ориентированы на профессиональное использование и предназначены для оперирования онтологиями в «тяжелых» форматах RDF и OWL. Как правило, такие системы требуют глубоких знаний и предоставляют возможности для низкоуровневой работы с предметными областями. По сути, пользователю на данный момент приходится работать не напрямую с предметными областями, а через редактирование документов особого типа.
Архитектура клиентской части системы Meta2
Можно говорить о системе Meta2 не как о замкнутом программном продукте, а как о платформе, на базе которой можно создавать различные информационные системы. Для достижения таких качеств была разработана концепция системы Meta2 как приложения, состоящего из различных модулей и компонентов, комбинируя которые можно решать разнообразные задачи, связанные с онтологиями, как средством представления и обработки знаний.
Пользовательский графический интерфейс системы Meta2 строится с применением стандартной библиотеки Java Swing. Главное окно программы состоит из меню, зоны иерархических структур онтологии, а также области контекстной информации. Основная часть функционального пространства программы разделена на две части. В левой части отображается дерево онтологии (о механизме построения деревьев в системе см. ниже), а в правой части отображается информация, контекстно-зависимая от текущего узла дерева. Этот принцип разделения рабочего пространства весьма популярен и используется во многих системах, например, в проводнике операционной системы Windows. Распространенность дайной структуры интерфейса позволяет сравнительно легко адаптироваться большинству пользователей. И в левой и правой части предусмотрена панель закладок, которая показала свою эффективность на примере браузера Mozilla.
Механизм построения деревьев во вкладках левой части окна программы является ключевым для организации всего интерфейса, так как большинство элементов GUI, так или иначе, зависит от текущего узла дерева или же от дерева в целом. Реализация деревьев в системе основана на подходе, развитом в параграфе 3.4. Дерево задается с помощью указания вершины и набора правил. Наш подход заключается в том, что вершиной может быть любой узел. Под узлом мы понимаем некоторое отождествление сущности онтологии (класса, объекта, свойства) его графическому представлению в GUI-компоненте. Чаще всего таким узлом является класс Thing, общий класс для всех классов онтологии. Исходя из этого, в системе предусмотрен выбор этого класса в качестве вершины дерева для некоторых стандартных видов деревьев: иерархии классов и др.
В соответствии с определениями из параграфа 3.4, под правилом в нашей системе подразумевается некоторый принцип построения дочерних узлов текущего узла. Этот принцип в точности соответствует семантике ленивых маркированных деревьев, описанных выше. Т.е. деревья строятся рекурсивно, через последовательное прріменение набора соответствующих правил к узлам одного типа. С технической точки зрения, правило представляет собой Java-класс, реализующий определенный интерфейс.
Данный механизм предоставляет следующие возможности представления иерархий в виде дерева: 1. в качестве корня дерева может быть выбрана любая сущность онтологии; 2. дочерние элементы создаются по мере открывания узлов (так называемая «ленивая» обработка); 3. в качестве дочерних элементов могут выступать объекты любых типов узлов; 4. правило может задаваться как для определенного типа узла, так и для конкретного класса, объекта или свойства; 5. можно создавать собственные типы узлов и собственные правила. Приведем пример построения деревьев с помощью правил. Возьмем стандартный вид дерева - иерархию классов. Чтобы создать данное дерево в нашей системе необходимо сделать всего два шага: 1. указать корнем класс Thing. 2. добавить правило «подкласс» с учетом транзитивности
Здесь нужно отметить, что «с учетом транзитивности» означает один из видов настройки правила. Правила в нашей системе представляют собой не детерминированные единицы, а настраиваемые механизмы. Стандартный пакет включает набор правил с минимально-необходимым набором настроек. То, что настроек немного, на самом деле является большим плюсом.
Это означает, что правила просты в использовании и создании - без умаления их гибкости и функциональности. Стандартный набор правил позволяет строить деревья различных типов и сложности. Нужно отметить, что благодаря нашему подходу была реализована возможность построения деревьев по объектным свойствам. Такая возможность построения деревьев никогда нами ранее не встречалась, хотя имеет большую практическую значимость.
Вернемся к примеру построения генеалогического дерева некоторого человека. Person - это класс онтологии. У данного класса есть свойство parent со значениями из класса Person, который является рангом этого свойства. Нетрудно видеть, что генеалогическое дерево есть ни что иное, как транзитивное замыкание свойства parent. Таким образом, в качестве корня дерева указывается конкретный объект класса Person и используется единственное правило «значение объектного свойства» с учетом транзитивности. Данный способ построения деревьев имеет большую практическую значимость, так как многие существующие иерархии строятся по данному принципу. В частности, по этому принципу нами построен справочник УДК, ставший сегодня популярным веб-ресурсом.