Серия «Математика»
2009. Т. 2, № 2, С. 183-192
Онлайн-доступ к журналу: http://isu.ru/izvestia
УДК 510.62:004.82
Бесконечные ленивые маркированные деревья *
В. С. Ульянов
Иркутский государственный университет
Аннотация. В работе исследуется проблема построения интерфейсов к системам описаний предметных областей в формате логических онтологий. Элитность логических средств, лежащих в основе этого подхода, делает задачу построения интерфейсов, ориентированных на массового пользователя, весьма нетривиальной задачей. В данной работе предлагается подход, основанный на конструкции бесконечного ленивого дерева, исследуются вопросы корректности данного подхода, и способы его реализации.
Ключевые слова: онтологии, Онтобокс, интерфейс, деревья, семантический веб
В работе рассматривается проблема создания интерфейсов для систем представления знаний, основанных на онтологиях, включая семантический веб [4]. Обладая высокой выразительностью и гибкостью, данный подход с большим трудом пробивает себе дорогу к массовому пользователю. Среди ряда причин, одной из ключевых является сложность логических формализмов, лежащих в основе онтологий. В данной работе рассматриваются способы решения данной проблемы через создание интерфейсов, понятных и привычных массовому пользователю. С другой стороны, инкапсулируя сложные логические структуры, такие интерфейсы должны в максимальной степени сохранять преимущества логических описаний. Основными требованиями к интерфейсу системы управления онтологиями для клиента можно назвать следующие:
1. удобство и привычность для пользователя;
2. широкие возможности для редактирования богатых онтологических структур;
* Работа выполнена при частичной финансовой поддержке программ «Фундаментальные исследования и высшее образование» (проект НОЦ-017 «Байкал») и «Развитие научного потенциала высшей школы (2009-2010 гг.)» (проекты
1. Введение
РНП.2.2.1.1/5901 и 3.2.3/3488).
3. сохранение целостности онтологии;
4. поддержка мировых форматов представления онтологий (OWL). Удобство и привычность работы пользователя может обеспечиваться использованием комбинаций стандартных элементов интерфейса (таких как деревья, списки, таблицы, кнопки и др.) вместо логических формул и выражений. Простота использования системы может быть достигнута только посредством скрывания от пользователя онтологической "начинки в идеале он даже не должен знать, что он работает с онтологией и что это такое. Наибольший интерес вызывает возможность представления графа семантической сети в виде деревьев. Для этого необходим общий гибкий и эффективный механизм, расчитанный на обычного пользователя ПК.
2. Представление семантических сетей в виде деревьев
Как известно, любую иерархию можно представить в виде дерева. Это довольно типичный элемент интерфейса, присутствующий в большинстве операционных систем и, в частности, в Windows. Поэтому, для большинства пользователей деревья являются привычным способом представления иерархии, что важно для построения интуитивно понятного интерфейса. Заметим, что иерархия классов - не единственный вид дерева, который можно построить над онтологией. В общем случае, описание предметной области моделируется ориентированным графом, нагруженным информацией в вершинах и на ребрах. Это с одной стороны усложняет задачу выделения деревьев из графа, ввиду многообразия вариантов построения. С другой стороны, по той же самой причине это значительным образом увеличивает спектр возможностей по навигации и управлению онтологическими базами знаний. В частности можно строить иерархии классов и объектов (по принадлежности объектов определенному классу), представлять в виде дерева связи объектов через их свойства. Наличие циклов в семантических графах приводит к тому, что моделирующие их деревья становятся бесконечными, что делает невозможным их актуализацию в ограниченном пространстве компьютера.
Нами был предложен и реализован подход к построению деревьев с помощью т.н. правил. Суть подхода состоит в следующем. Сначала задается типизация узлов дерева в соответствии с типом сущности. Имеются узлы следующих типов: классы, объекты, свойства, типы данных и онтологии. Затем задается набор правил, которые бывают тех же типов, что и узлы: правила для классов, правила для объектов, правила для свойств и т.д.
Правила определяют, в каких условиях они выполняются, а также типизацию и принцип построения дочерних элементов узла. Дан-
ный механизм предоставляет следующие возможности представления иерархий в виде дерева:
— в качестве корня дерева может быть выбрана любая сущность базы знаний;
— дочерние элементы создаются по мере открывания узлов (так называемая "ленивая"обработка);
— в качестве дочерних элементов могут выступать объекты любых типов узлов;
— правило может задаваться как для определенного типа узла, так и для конкретной сущности с уникальным URI;
— можно вводить дополнительные (собственные) типы узлов и правила.
В данной работе строится математическая модель данного вида интерфейсов, и исследуются вопросы ее корректности.
3. Ленивые бесконечные деревья
Определение 1. [Дерево] Пусть V = {Vl,V2, ... } - счетное множество имен, которые будем называть вершинами. Деревом будем называть множество T С Vt X Vt с корнем Vtop и множеством вершин Vt С V, что
1. Vv : (vj, Vtop) € T (корень дерева).
2. Vu € Vt \{vtop} 3vi, ...,vk : (vtop,v 1) € T,..., (vfc ,u) € T (связность).
3. Vvi... Vvk : —I ((vi,v2), . .., (vk, vi) € T) (отсутствие циклов).
Вершину v назовем листом дерева T, если Vv1 € VT : (v, v;) € T. Вершину v назовем непосредственной подвершиной вершины w, если (w, v) € T. Вершина v является подвершиной w, если она либо непосредственная подвершина w, либо существует v1 такая, что v непосредственная подвершина v1 и v1 подвершина w. Аналогичным образом определяются непосредственные и произвольные надвершины.
Пусть W = (C, R, P, O) - словарь онтологии, где C - множество именованных концептов, R - множество ролей, P - множество атрибутов,
O - множество имен объектов [3]. Введем отображение Л : VT ^ O такое, что Vv € VTЗо € O : Л^) = о. Такое о будем называть меткой, и тот факт, что вершина v помечена объектом о будем обозначать vo. Различным элементам из VT могут соответствовать одни и те же элементы из O.
В деревьях, используемых в интерфейсах, подвершины вершин всегда упорядочены. Чтобы отразить этот факт в нашей модели, будем считать, что множество V линейно упорядочено, и для двух подвер-шин vc0z, vjj вершины vo (vo ,v0*) < (vo, vjj) тогда и только тогда, когда vj < vj.
Определение 2. [Маркированное дерево] Четверку Т = (Уу, Т, Л, <) будем называть маркированным деревом.
В пункте 4 мы рассмотрим способ задания маркированных деревьев. Отметим, что именно маркированные деревья будут использоваться нами в качестве основного элемента интерфейса онтологий. Хотя область их применения не ограничивается онтологиями. Механизм построения деревьев может применяться и к другой структурированной информации, которую можно представить в виде иерархий или ориентированных графов. В последнем случае для работы с циклами используются бесконечные ленивые деревья.
Сложность задачи состоит в том, что онтологии могут иметь самую разнообразную структуру и описывать самые разнообразные предметные области. Поэтому система построения деревьев должна обладать гибкими возможностями, достаточными для того, чтобы деревья могли адекватно отображать суть описываемой предметной области, и легко настраиваться на различные способы навигации по онтологии. Поскольку деревья работают в рамках логических формализмов, то наиболее естественным подходом представляется использование логических средств для формирования самих деревьев, для того, чтобы они стали органичной частью логической системы. Ниже представлен подход, реализующий эту общую идею.
4. Правила построения дерева
Определим дерево как выводимый объект нашей логической системы. Для этого введем общую структуру правила построения дерева. Пусть G - одноместный предикат, действующий на объектах O, H - одноместная функция, действующая на объектах O и возвращающая последовательность объектов. Тогда общая структура правила для маркированного дерева T = (VT,T, Л, <т) будет иметь следующий вид:
r[G н]T,vo є VT Gr(o) = true (oi,...,ofc) = Hr(o)
где Т' = (ру, Т', Л', <) дерево такое, что
1. Уу = Уу и {VI,..., V*} и {VI,..., V*;} С V \ Уг;
Ог, если V = Vг € {VI, . . . , V*}
Л(^), если V € Уг
3. Т' = Т и {(V0 ),..., (V0 ^к)}
С содержательной точки зрения, правило «раскрывает» вершину V0 дерева, добавляя к ней подвершины vk1,..., v<кk в следующей последовательности:
±
2. Л/(v) = I
1. сначала проверяется условие Gr (o) на применимость правила к вершине vo, и если оно выполняется, то
2. с помощью Hr(o) генерируется последовательность «маркеров» для подвершин (oi,..., Ofc);
3. для каждого о% из счетного множества V выбирается новая не задействованная в дереве T вершина v с таким расчетом, что если
i < j, то Vi < Vj в V (чтобы обеспечить порядок подвершин);
4. каждая vi, i = 1, k, маркируется сущностью oi и добавляется к множеству VT; а в T добавляется пара инцидентности (vo , );
Отметим, что правило r[G,H] полностью определяется предикатом G и функцией H, в то время как T и vo являются его параметрами.
Пусть имеется вершина vtop и упорядоченная последовательность правил (ri[Gi, Hi],..., rn[Gn, Hn]). Покажем, что этого достаточно для формирования ленивого бесконечного дерева. Для этого, начиная с вершины vtop, производится последовательное разворачивание вершин дерева. На каждом очередном шаге происходит выбор листовой вершины для «разворачивания», что моделирует процесс «кликанья» мышью по этой вершине пользователем. Процесс «разворачивания» состоит в последовательном применении к вершине всех правил ri,..., rn. При этом последовательность подвершин разворачиваемого узла vo, соответствующих правилу r, вычисляется с помощью Fi(o) = if Gi (o) then Hi(o) else 0. Результатом применения всех правил тогда будет
где ф обозначает конкатенацию последовательностей. Очевидно, что при наличии дерева Т и вершины V0 в нем, функция ^ однозначно определяет переход от Т к дереву Т', в котором разворачивается вершина V0. Такой переход обозначим Т' = F(T, V0).
Нажатием вершины V0 назовем результат применения правила:
где click(VT) - функция, возвращающая вершину, к которой применяется операция «нажатие», и T = F(T,vo). Без ограничения общности будем считать, что функция click(VT) возвращает только листья дерева, поскольку легко проверить, что если вершина не является листом дерева, то к ней уже было применено правило 4.1. В этом случае T и T совпадают.
С точки зрения построения интерфейсов ключевым свойством является индеферентность процедуры построения дерева к последовательности вершин, «нажатых» пользователем. Другими словами, неважно, в какой последовательности пользователь нажимал вершины: если в результате были нажаты одни и те же вершины, то и получившиеся
F(o) = Fi(o) ф ... ф F„(o),
vo = click(VT), T T
(4.1)
деревья будут одинаковыми. Доказательство данного факта для деревьев, построенных с помощью правила (4.1), требует определенных рассмотрений.
5. Изоморфизм деревьев
В этом пункте будет показано, что два дерева, построение которых начинается с «одинаковых» вершин, и у которых, хоть и в разной последовательности, но нажимались «одни и те же» вершины, всегда «совпадают». Формально это определяется следующим образом.
Определение 3. [Изоморфизм деревьев] Пусть Т и Т' - два дерева, определенных в алфавите V. Деревья Т и Т' изоморфны, если существует взаимооднозначное отображение ф с множества Уу на такое, что для любых V, Vг и V,:
1 Л(^ = ^С^;
2. ) € Т ^ (фС^фСи,-)) € Т';
3. V» < V,- ^ ф^) < фСи,-).
Определение изоморфизма уточняет, что мы понимаем под «совпадающими» деревьями.
Определение 4. [Изначальное дерево] Дерево Т0 = (У^, Т0, Л0, <) будем называть изначальным, если оно состоит из одной вершины Vkkp и = К^Т0 = 0, Л0 = ^ о} для некоторого о € О.
Очевидно, что два изначальных дерева Т0 и Т'0 изоморфны тогда и только тогда, когда для их единственных вершин v¿kp и выполняется
= Л'«р). 0
Назовем последовательностью нажатий 5 = ,..., vкk) вывод де-
рева, начинающийся с некоторого изначального дерева и состоящий из применений правила (4.1) такой, что на г-м шаге функция с1гсй(Уу) возвращается вершина vki. Чтобы не перегружать запись в дальнейшем в последовательностях нажатий метки вершин Ог будут опускаться (они однозначно восстанавливаются с помощью Л). Напоминаем, что, по условию применимости правила (4.1), вершина VI должна быть листом в построенном к г-ому шагу дереве. Будем говорить, что последовательности нажатий 5 = (VI,..., V*) и 5' = (^1,...,ад*) приводят к одинаковым деревьям, если существует взаимоодназначное отображение между {VI,..., V*} и {^1,..., ад*}, которое индуцирует изоморфизм деревьев, получившихся в результате применения 5 и 5'.
Для того, чтобы более полно охарактеризовать ситуацию, введем понятие канонической последовательности нажатий, которая интуитивно
соответствует обходу дерева «в глубину слева направо». Для этого определим линейный порядок на вершинах дерева, который индуцируется частичным порядком подвершин.
Определение 5. Считаем, что V ^ ад если
1. V и и> являются подвершинами одной вершины и V < ад, либо
2. V является надвершиной ад, либо
3. существует надвершина V' вершины V и надвершина ад' вершины ад такие, что V' и ад' являются непосредственными подвершинами одной вершины и V' < ад'.
Определение 6. Последовательность нажатий 5 = (VI,..., V*) называется канонической, если для любых 0 < г, ] < к, неравенство г < ] влечет неравенство v¿ ^ V,.
Очевидным образом из любой последовательности нажатий
5 = (VI,..., V*)
можно получить каноническую последовательность £С0га = {V*,..., V*}, переупорядочив Vг по возрастанию в соответствии с порядком ^. Заметим, что вершина v¿kp всегда является наименьшей в соответствии со свойствами порядка ^. Следующая лемма делает каноническое упорядочивание корректным:
Лемма 1. Для любой последовательности Б деревья, порожденные Б и 5С0П изоморфны.
Доказательство строится рассмотрением утверждения для произвольного к. Если к = 0, то результат тривиально верен. Для к >
0 доказательство проводится индукцией по первому рассогласованному нажатию г, когда v¿ = VI. Укажем алгоритм, позволяющий нам преодолеть рассогласованность последовательностей:
Алгоритм.
Шаг 0. г := 1
Шаг 1. Если Vг = V*, тогда перейти на шаг 2, иначе перейти на шаг 3. Шаг 2. г := г + 1. Если г > к, СТОП! иначе перейти на шаг 1.
Шаг 3. Найти ] такое, что V* = V,.
Шаг 4. 5 := (VI,..., v¿-l, V,, VI,..., и,-!, ^,+1,..., V*). Перейти на шаг 2.
База индукции очевидна. Пусть элементы последовательности совпадают для каждого г, т.е. v¿ = V*,* = 1,к. Тогда можно построить тождественный изоморфизм
¿Ы = V*.
Очевидно, что так как набор правил совпадает, то последовательное применение к одинаковым вершинам приводит к одинаковым деревьям.
Шаг индукции. Пусть доказано для п — 1 рассогласований, что с помощью последовательности 5 получается дерево Т изоморфное дереву Т;, полученного с помощью 5*. Тогда достаточно доказать что шаг 4 сохраняет изоморфность деревьев. Очевидно, мы вправе сделать такую перестановку, сохранив допустимость последовательности, т.к. из допустимости последовательности в канонической форме следует У' = V* ^ У, V- ^ ^¿+1,..., V- ^ ^^-1. Т.е. переставляемая вершина V-не зависит от вершин ^¿+1,..., Уі-і. Тогда порядок применения правил к вершине V- не влияет на изоморфизм деревьев. Очевидно, что при такой перестановке сохраняется и порядок дочерних подвершин, т.к. правило «нажатие» детерминировано меткой узла. Значит применение правила к одному и тому же узлу приводит к получению одинаковых пар инцидентности (у-, V), с точностью до метки, вне зависимости от очередности в последовательности нажатий 5. □
Из данной леммы напрямую следует теорема, обосновывающая тот факт, что разный порядок нажатий не влияет не структуру получившегося дерева:
Теорема 1. Пусть последовательности нажатий Б и Б; обладают каноническими последовательностями Бсоп и Б^(т, соответственно, причем Бсоп и Б^ порождают изоморфные деревья. Тогда Б и Б; также порождают изоморфные деревья.
Доказательство теоремы 1 следует из коммутативности следующей тривиальной диаграммы:
т ф и т
і/-1
Здесь 1 и 1' - тождественные изоморфизмы между деревьями, порождаемыми последовательностями и их каноническими вариантами, а ф -изоморфизм между деревьями, полученными с помощью канонических последовательностей. Таким образом изоморфизм переводящий из Т в Т' будет иметь следующий вид: 1ф(1')-1 = ф. □
ь
*
6. Примеры
Рассмотрим структуру правил. Для начала возьмем один из простейших видов правил, где переход от родительского узла к дочернему происходит по роли из множества ^ словаря ^, то есть имеет вид Гя[Сд ,#д], где
Сд(о) = о € ^ош(Л)
Hr(o) = {oi : R(0,0i)}
Пример.
GhasChild(о) = o € Person, HhasChild(о) = {oi : hasChild(o, Oi)}
Тогда для построения дерева всех потомков некоторого человека, мы указываем его в качестве вершины дерева и в качестве множества правил - правило [GhasChild, HhasChild].
Тогда при нажатии вершины некоторой персоны откроются вершины его детей.
Очень важной особенностью данного подхода является ленивый характер построения дерева. То есть дерево не строится сразу полностью, а оно постепенно «вырастает» путем «подгрузки» данных из базы знаний. Причем рост дерева происходит только в тех направлениях, которые нужны пользователю. Во-первых, это сокращает объем памяти, необходимый для хранения дерева. Во-вторых, это позволяет работать с бесконечными деревьями. Как упоминалось выше, преобразованием семантической сети онтологии в дерево может привести к появлению бесконечных деревьев ввиду циклов. И тогда построение полного бесконечного дерева невозможно. В нашем же подходе мы имеем актуально конечное состояние бесконечного дерева.
В качестве примера можно привести роль «родственник».
GhasRelative — C(о) P^S0^ HhasRelative — {oi : hasRelative(o, Oi)}
Если A является родственником B, то и B является родственником A. И применяя это правило, даже для двух человек получится бесконечное дерево. В нем переход от родительского узла к дочернему может потенциально происходить сколь угодно долго. Но реально оно ограничено количеством кликов мыши пользователем.
Очевидно, что общий вид правила позволяет нам использовать всю мощь языка OntoBox QL как в качестве процедур получения объектов H, так и для проверки предусловия G. Так как язык запросов OntoBox QL в общем случае возвращает коллекцию, предусловием правила может послужить проверка не пустоты результата.
rql = (Gql (o),Hql(o)),Gql(o) = 3#gl(o),#gl (о) = QL(o)
где QL(o) - запрос на языке OntoBox QL, первым шагом пути которого является o.
В частности для описанного выше примера с потомками запрос будет выглядеть следующим образом:
o/hasChild где o - полное имя объекта онтологии.
7. Заключение
Рассмотренный метод построения бесконечных ленивых маркированных деревьев был реализован в системе МЕТА-2, которая является клиентской программой для сервера управления онтологиями Ontobox. Механизм построения деревьев стал играть ключевую роль при работе с элементами семантической сети. Гибкость построения деревьев на основе правил, в том числе с использованием языка OntoBox QL, показала свою эффективность на ряде проектов (реализованных на базе системы) для различных междисциплинарных исследований озера Байкал, задачи формализации спецификаций, а также для создания интеллектуализированной системы видео-лекций.
Автор благодарен А.В. Манциводе за поддержку в проведении данного исследования.
Список литературы
1. Baader, F. The Description Logic Handbook: Theory, Implementation,
Applications / F. Baader, D. Calvanese , D.L. McGuinness, D. Nardi, P.F. Patel-Schneider. - Cambridge. - 2003. - P.574.
2. Schmidt-Schauss, M. Attributive concept descriptions with complements / M. Schmidt-Schauss, G. Smolka // Artificial Intelligence. - 1991. - V.48. - P. 1-26.
3. Малых, А.А. Логические архитектуры и объектно-ориентированный подход / А.А. Малых, А.В. Манцивода, В.С. Ульянов // Вестник НГУ. Серия: Математика, механика, информатика. - 2009. - Т9. - №3. - С. 64-85.
4. The Semantic Web [Электронный ресурс]. - Режим доступа: http://www.w3.org/2001/sw/ - Загл. с экрана.
5. The NCBI Entrez Taxonomy. [Электронный ресурс]. - Режим доступа: http://www.ncbi.nlm.nih.gov/sites/entrez?db=taxonomy - Загл. с экрана.
6. Web Ontology Language (OWL). [Электронный ресурс]. - Режим доступа: www.w3.org/2004/0WL - Загл. с экрана.
7. Malykh, A. A Query Language for Logic Architectures. / A. Malykh, A. Mantsivoda // Accepted for PSI’09. - [Электронный ресурс]. - Режим доступа: http://meta2project.org/ru/psi09.pdf- Загл. с экрана.
8. Berners-Lee, T. The Semantic Web / T. Berners-Lee, J. Hendler ,0. Lassila. // Scientific American. - 2001. - V.5. - P.34-43.
V. S. Ulyanov
Infinite Lazy Marked Trees
Abstract. This paper is focused on the construction of interfaces to knowledge description systems based on ontologies. The ’elite’ nature of logic, on which knowledge management systems are based, complicates the development of interfaces for the mass of users. In this paper an approach is proposed, which is based on the concept of infinite lazy marked trees. Soundness and implementation issues of the approach are also considered.
Keywords: ontologies, Ontobox, trees, semantic web
Ульянов Владимир Сергеевич, Институт математики,экономики и информатики, Иркутский государственный университет, 664003, Иркутск, ул. К. Маркса, 1 тел.: (3952)242210 ([email protected])
Vladimir Ulyanov, Irkutsk State University, 1, K. Marks St., Irkutsk, 664003 Phone: (3952)242210 ([email protected])