Опыт построения интерактивного WEB-приложения для работы
с онтологическими моделями

,

Институт проблем управления сложными системами РАН
Самара, Россия
*****@***ru
тел: +7 (8, факс: +7 (8

Ключевые слова: онтологические модели, методы отображения, web-приложение

Abstract

The paper provides a brief overview of the main approaches to the graphical presentation of the ontological models and the proposed approach, which we sure will allow more effective work with ontological models. This approach is based on splitting the set of objects on the groups with which then users are working. It also describes the experience of realization this approach as a WEB-application.

Введение

В связи с увеличившимся объемом информации, с которой приходится работать человеку, возникает необходимость ее представления в структурированном виде [1]. Одним из вариантов такого представления выступают онтологические модели, которые описывают некоторую предметную область с помощью объектов и отношений между ними. После преобразование информации в некоторую онтологическую модель, возникает необходимость в ее удобном представлении. Под представлением в данном случае мы понимаем отображение объектов и связей, описанных в модели, на экране компьютера в удобном для человека виде.

Проблема отображения онтологических моделей, являющихся разновидностями семантических сетей, это проблема отображения большого графа, вершинами в котором выступают объекты, описываемые в модели, а ребрами - отношения (связей) между этими объектами [1]. Если в онтологии много объектов, то их одновременное отображение приводит к трудности, а порой и невозможности анализа модели человеком. Для устранения данной проблемы обычно используют фильтрацию отображаемых объектов и связей.

НЕ нашли? Не то? Что вы ищете?

К такой фильтрации, к примеру, относятся центрально радиальные методы отображения, где в центр отображаемой области помещается рассматриваемый в данный момент объект, а по окружности вокруг него располагаются объекты, с которыми он связан непосредственно. Остальные же объекты либо скрываются полностью, либо отображаются частично, либо выносятся на окружности с еще большими радиусами. В радиальных методах отображения все объекты размещаются на окружности или на прямой и соединяются дугами, которые могут проходить по внешней и внутренней областям круга или по обеим сторонам прямой.

В методе являющемся комбинацией двух предыдущих, предлагается выносить в центральную область сразу несколько объектов, остальные же объекты располагаются на окружности вокруг них. Все эти методы, как правило, позволяют выделить связи для выбранных объектов, но как видно из примеров на рисунке 1, проанализировать структуру связей между объектами достаточно сложно.

Другая стратегия связана с представлением всей модели в виде сети на плоскости и использование при этом увеличения или уменьшения интересуемой нас области. Но при этом возникает так называемая проблема отрисовки графа на плоскости, цель которой достижение наименьшего числа пересекающихся ребер, что позволяет эффективнее проводить анализ связей между объектами и повысить информативность модели. При большом количестве вершин задача уменьшения числа пересечений весьма трудоемка и затрачиваемые усилия порой не приводят к желаемому результату. Еще одним классическим методом отображения, является представление онтологии в виде дерева.

Альтернативным способом представления онтологической модели является разбиение объектов на группы [2, 3], когда отдаленные от данной группы объекты заменяются обобщающими образами, и лишь при сдвиге на них фокуса внимания показываются подробно.

Рисунок 1 – Примеры отображения онтологических моделей

Помимо описанных проблем возникают сложности, связанные с возможностями человека удерживать в памяти, да и в поле зрения, одновременно лишь небольшое количество объектов. В связи с этим в данной работе будет развит способ отображения онтологии связанный с разбиением множества объектов на группы, который имеет в целом общие черты с последним из упомянутых методов.

Задача отображения онтологических моделей тесно связана с необходимостью обеспечить возможность совместной и в тоже время удаленной работы над моделями для большого числа людей, когда наиболее удобным средством связи между ними выступает Интернет. В связи с этим, в качестве инструментария для совместной работы над онтологией как нельзя лучше подходит web-приложение. В предлагаемой статье описан опыт такой разработки.

1 Представление онтологических моделей с помощью групп

Предлагаемый метод представления онтологических моделей заключается в разбиении множества объектов на группы, где каждый объект входит в одну единственную группу. Метод обобщает и развивает подход, предложенный в работе [3]; изменения, касаются отображения связей между объектами из разных групп, и вопросов, связанных с построением иерархии групп.

Отображение объектов и связей на экране происходит по группам, то есть отображаются объекты только одной группы, а навигация по модели осуществляется с помощью специально вводимых объектов обозначающих группы, при клике на которых происходит переход к отображению связанных с ними групп. В пределах одной группы происходит полное отображение связей между всеми объектами данной группы. Связь с объектами расположенными в других группах отображается с помощью добавления в отображаемую группу нового объекта, который обозначает группу, к которой принадлежит объект не входящий в данную группу и объект в отображаемой группе связывается с этим новым объектом, то есть происходит замещение связи. Такой новый объект не является частью модели, а используется только для навигации по ней. Если одновременно несколько объектов отображаемой группы связаны с разными объектами, расположенными в другой группе, то все они связываются с этим новым объектом. Отрицательной чертой такого представления, как видно из выше сказанного, является частичная потеря связей между объектами из разных групп при отображении, а также наполнение модели вспомогательными псевдообъектами.

Рисунок 2 – Пример онтологической модели с разбиением на группы

Проиллюстрируем предлагаемый подход на примере. На рисунке 2 приведена весьма простая сетевая модель. Однако, пусть число объектов модели относительно мало, отобразить ее целиком на экране так, чтобы удобно было проследить все связи между объектами, довольно трудно. На рисунке 2 представлен также один из вариантов разбиения множества объектов модели на группы. При этом связи между объектами входящими в одну группу в дальнейшем оставим нетронутыми, а связи между объектами из разных групп (на рисунке 2 они показаны пунктирными линиями) отображать не будем: вместо этого в группах появятся новые объекты, обозначающие группы, к этим новым объектам мы и устремим данные связи.

Вопрос надлежащего разбиения объектов по группам решается тем, кто занимается проектированием онтологической модели. Это разбиение может иметь некоторый смысл, связанный со спецификой объектов относимых к той или иной группе, либо быть просто обусловлено оптимальным отображением связей между объектами. Помимо этого, такое разбиение может быть осуществлено и автоматически, с помощью методов кластерного анализа данных, проводимого, например, на основе анализа длины связей между объектами.

На рисунке 3 в рассматриваемой примерной модели связи между группами заменены новыми псевдообъектами. Например, связь между объектами 1 и 6 из групп A и B, для объекта 1 из группы A заменяется связью с новым объектом B, который теперь входит в состав группы A, а для объекта 6 из группы B устанавливается связь с новым объектом A входящим в состав группы B. Аналогичные действия по замещению связей происходят и для остальных объектов имеющих связи с объектами из других групп. В дальнейшем при выборе нового объекта обозначающего связь с некоторой группой будет происходить переход в эту группу.

Рисунок 3 – Пример онтологической модели с разбиением на группы и заменой связей между объектами разных групп связями с псевдообъектами

На рисунке 3 иллюстрируется и то, что среди новых объектов появившихся в группах есть и такие, которые могут быть ни с кем не связаны, примером могут служить объект E в группе B и объект B в группе E, они выделены пунктирной линией. Это вызвано тем, что человеку проще ориентироваться в данных, которые организованны иерархически, и добавление таких объектов приводит к появлению в модели некоторой иерархии при переходах между группами. При этом вводимая иерархия не обязательно должна соответствовать структуре связей объектов между группами, а просто может быть вызвана желанием организовать просмотр групп в специальном порядке. В этом случае в нашей модели могут появляться группы, в состав которых будут входить лишь псевдообъекты, обозначающие группы и выполняют функции навигационных ссылок между группами, что влечет к появлению так называемых уровней. То есть помимо нижнего уровня состоящего из групп с объектами и связями между ними, в модели появятся еще и верхние уровни, которые будут состоять из групп и вложенных в них ссылок на группы расположенные на нижних уровнях. Для полноты навигации по модели в группах расположенных на нижних уровнях должны появиться ссылки на группы расположенные на верхних уровнях, в этом случае навигация по модели будет завершенной. Построение иерархической структуры связей между группами, появление уровней и разбиение объектов на группы, в связи с трудоемкостью этой операции, удобно производить автоматически, воспользовавшись каким либо из методов кластеризации данных. Одним из вариантов кластеризации может быть метод, предложенный в работе [4].

Пример такой иерархической структуры приведен на рисунке 4, из которого видно, что в рассматриваемой нами модели появились еще 2 уровня, самый верхний из которых состоит из одной группы J, средний из трех групп G, H, I, а самый нижний из шести ранее показанных групп A, B, C, D, E, F. В группе J расположены объекты, выполняющие связь с группами G, H, I расположенными на среднем уровне. Каждая из трех групп расположенных на среднем уровне в свою очередь связывается с двумя группами на нижнем уровне, и имеет обратную связь с группой J на верхнем уровнем. В группах расположенных на нижнем уровне дополнительно появляются обратные ссылки на группы расположенные на среднем уровне.

Рисунок 4 – Пример иерархии групп

2 Применение кластеризации для разбиения на группы

Как было сказано в предыдущем разделе, построение иерархической структуры связей достаточно трудоемкая операция, и ее удобно производить автоматически, применив кластерный анализ данных.

В качестве объектов для кластерного анализа мы используем объекты нашей модели, которые необходимо разбить на группы. Так как входные данные для кластерного анализа обычно представляются либо в виде набора характеристик описывающих положение объекта в многомерном пространстве, либо в виде матрицы расстояний между объектами, это накладывает ограничение на перечень применяемых методов. В нашем случае входные данные представлены в виде матрицы расстояний между объектами, следовательно, методы которые мы можем использовать, должны выполнять анализ исходя из расстояний между объектами. Предлагаемый для использования метод [4] может работать как с набором характеристик, так и с расстояниями между объектами.

В качестве расстояний между объектами предлагается использовать кратчайшее расстояние между вершинами на графе. В данном случае различные объекты, образующие нашу модель, становятся вершинами, а связи между объектами становятся ребрами графа. При этом если в модели присутствуют направленные связи или различные веса у этих связей, то необходимо при их переносе на ребра графа учитывать, что больший вес или значимость связи должны соответствовать меньшей длине ребра на графе. Помимо этого полученный граф должен быть связным.

Кластеризация и разбиение на группы проходит следующим образом. Первоначально создается пустая корневая группа и проводится кластеризация. Если при кластеризации выявляется только один кластер, то все объекты переносятся в корневую группу. Если при кластеризации выявляется более одного кластера, то мы дополнительно создаем такое же число групп, сколько было выявлено кластеров, и эти новые группы связываем с корневой группой. Предполагается, что объекты в выявленных кластерах распределяются по соответствующим новым группам. Эти новые группы теперь выступают в роли новых корней. Далее над каждым полученным кластером необходимо провести повторную кластеризацию, в которой должны анализироваться только те объекты, которые образуют исходный кластер. Если в результате повторной кластеризации выявляется только один кластер, то объекты его образующие переносятся в соответствующую корневую группу. Если в результате повторной кластеризации выявляется более одного кластера, то мы опять создаем новые группы, которые связываем с соответствующей группой предком. Повторную кластеризацию необходимо проводить до тех пор, пока ее результатом не станет образование одного кластера.

В результате такой процедуры мы получим некоторое число групп, между которыми будет выстроена иерархическая связь. Часть групп будут содержать внутри себя лишь ссылки со связями на другие группы, в других же помимо ссылок будут присутствовать и соответствующие объекты являющиеся частью онтологической модели.

Такое распределение объектов по группам предполагает, что число связей между объектами, принадлежащими одной группе гораздо больше, чем между объектами из разных групп. К примеру, такое разбиение должно позволить поместить объекты, относящиеся к общим классам или обладающие общими признаками в одну группу.

3 Практическая реализация предлагаемого метода

В экспериментальных целях было реализовано web-приложение, которое позволяет проектировщику модели заниматься ее разработкой, а пользователю производить ее обзор. При реализации предлагаемого подхода выдвинуты и соблюдены ряд требований к компонентам приложения.

Для выполнения задач связанных с коллективной работой над проектом, необходимо осуществлять контроль над изменением данных описывающих онтологическую модель. В связи с этим все команды выполняющие действия над данными онтологии должны осуществляться на web-сервере, где помимо прочего должны храниться данные, описывающие онтологическую модель. Все команды для работы с данными, должны быть реализованы таким образом, что при их выполнении не происходит задержек связанных с ожиданием каких либо других параметров или команд во время их выполнения. Команда не должна начинать выполняться до тех пор, пока не поступят все параметры необходимые для ее выполнения, это позволяет избежать ситуации, когда одна команда ожидает поступления параметров, а другая команда в это время уже пытается осуществить работу с данными. Помимо этого выполнение команд должно быть реализовано таким образом, что при передаче в них неверных параметров и их последующее исполнение не приводит к изменениям данных онтологической модели.

Рассмотрим операции доступные с помощью web-приложения. Разработанное web-приложение позволяет контролировать файлы проектов, в которых хранятся описания онтологических моделей. В приложении реализованы функции, позволяющие проводить редактирование списка групп (рисунок 7). При создании новой онтологической модели в нее по умолчанию добавляется пустая группа. При создании или изменении имени группы производится проверка на уникальность имени группы, если группа с таким именем уже существует, то создания или изменения имени группы не происходит. При удалении группы осуществляется проверка на то, не является ли эта группа единственной, если это так, то удаление группы не происходит, в противном случае осуществляется поиск первой по списку группы, имя которой отличается от удаляемой, и все объекты из удаляемой группы, если таковые имеются, переносятся в найденную группу.

Рисунок 7 – Элементы управления группами

Также имеется возможность по установлению и удалению связей между группами, то есть имеется возможность задавать принудительную иерархию для навигации по группам (см. рисунок 7). При этом необходимо учитывать, что если добавляемая связь является излишней и ей не определен специальный тип, связанный с иерархией, то при проверке она будет автоматически удалена. Аналогично и в случае с удалением связи, если связь должна присутствовать в модели исходя из анализа связей между объектами, то она будет добавлена автоматически при проверке.

В приложении реализованы функции, позволяющие проводить редактирование объектов (рисунок 8). Добавление объектов происходит в одну из выбранных групп. При добавлении или редактировании объектов, как и при аналогичных операциях над группами, происходит проверка на уникальность имени объекта, если объект с таким именем в модели отсутствует, то объект добавляется или редактируется. Для объектов, в отличие от групп, существует возможность добавлять внешний файл описания объекта, который закачивается на сервер при создании или редактировании объекта. Помимо этого для объекта можно выбрать один из заранее определенных типов, которые влияют на форму и цвет объекта при отображении. Также можно осуществлять перемещение объектов из одной группы в другую.

Реализована возможность установления связей между объектами, при этом имеется возможность выбора типа связи из заранее определенных, которые влияют на ее вид при отображении, а также возможность по удалению ранее установленных связей между объектами (рисунок 8).

При таких операциях как удаление, перемещение, установление или удаление связи между группами или объектами происходит проверка на корректность структуры данных отвечающих за связь между группами и в случае необходимости происходит автоматическое исправление данных.

В качестве формата хранения данных, описывающих онтологическую модель, выбран XML, и данные, относящиеся к модели, хранятся в отдельном файле на web-сервере. Данный выбор обусловлен, тем, что в среде , которая использовалась для разработки приложения, реализован очень гибкий и удобный инструментарий для работы с XML-данными. Помимо прочего это позволяет сильно упростить процедуру установки web-приложения, сведя к минимуму действия связанные с его настройкой. Также упрощается процесс переноса данных между разными web-приложениями, который сводится к простому копированию файлов.

Рисунок 8 – Элементы управления объектами

Рисунок 9 иллюстрирует возможности графического представления групп, реализованного в созданном приложении. Отображаемая область разбита на 16´12=192 клетки, в каждой из которых, может быть отображен значок группы или объекта. В связи с реализацией нашей системы как web-приложения, управление элементами на странице осуществляется 192 кнопками. При первом отображении группы все объекты, входящие в группу автоматически расставляются по свободным клеткам. В дальнейшем пользователь имеет возможность самостоятельно разместить объекты на экране.

Рисунок 9 – Примеры экранного отображения групп

Перемещение объекта или группы в свободную соседнюю клетку, происходит путем нажатия на нее, если перемещаемый объект, расположенный в соседней клетке от выбранной свободной клетки единственный, то происходит перемещение объекта в эту клетку, в ином случае изменений не происходит. Все действия связанные с перемещением объектов и групп по экрану автоматически сохраняются в файле модели.

Если в выбранной путем нажатия кнопке-клетке расположена группа, то происходит переход в эту группу, если объект, то происходит переход к файлу описания данного объекта. Если при добавлении объекта в модель ему не был присвоен файл описания, то объект будет ссылаться на файл установленный по умолчанию, в дальнейшем для уже созданного объекта можно изменить файл описания. Связи между объектами и группами отображаются в виде стрелок, вид отображения стрелки определяется типом связи, который также можно изменить.

Для того чтобы пользователю было понятно, в какой группе он на данный момент находится, в верхнем левом углу присутствует название текущей группы. Также у каждого объекта в отображаемой области присутствует надпись с его именем, а форма объекта определяется его типом.

Заключение

На основе анализа основных подходов графического представления онтологических моделей предложен метод, который, как мы полагаем, позволит более эффективно работать с онтологическими моделями, что достигается за счет уменьшения числа объектов отображаемых на экране. Метод предполагает производить разбиение множества объектов описывающих онтологическую модель на группы, и обозревать модель с помощью групп.

В экспериментальном прототипе приложения, реализующего предлагаемый метод, был проработан вопрос, связанный с системой хранения и структурой данных описывающих онтологическую модель. Основной задачей на данный момент является исследование эффективности такого представления онтологической модели и удобство работы с ней через web‑приложение. В дальнейшем в приложении планируется реализовать автоматическое разбиение на группы с помощью кластеризации, что позволит снизить нагрузку на разработчика модели.

Список литературы

[1]  Апанович  для работы с графами большого объема: построение и оптимизация компоновочных планов // Системная информатика: Сб. науч. тр. – Новосибирск: Издательство СО РАН, 2006. – Вып. 10. Методы и модели современного программирования. – С. 7-58

[2]  Holten D. Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data // IEEE Transactions on visualization and computer graphics, Vol. 12, NO. 5, September/October 2006.

[3]  Смирнов  онтологий: объектно-ориентированная модель знаний о предметной области // Одиннадцатая Национальная конф. по искусственному интеллекту с международным участием КИИ-2 сентября-03 октября 2008 г., Дубна, Россия): Труды конф. Т.3. – М.: ЛЕНАНД, 2008. - С. 208‑216.

[4]  Заякин  объектов через анализ плотности их распределения // Проблемы управления и информационные технологии: Материалы конференции. – Казань, 2008.