УДК 004.4'27, 004.89 РАЗРАБОТКА ВИРТУАЛЬНЫХ ИНТЕРАКТИВНЫХ СРЕД НА ОСНОВЕ ОНТОЛОГИЧЕСКОГО ПОДХОДА В.В. Грибова (gribova@iacp.dvo.ru) Институт автоматики и процессов управления ДВО РАН, Владивосток Л.А. Федорищев (fleo1987@mail.ru) Институт автоматики и процессов управления ДВО РАН, Владивосток В работе описываются методы и средства для создания программных виртуальных интерактивных сред на основе онтологического подхода. Рассмотрены основные принципы разработки, архитектура, модель интерпретации и методы реализации таких систем. Введение Стремительное развитие возможностей современных компьютеров привело к прорыву во многих областях, в частности, в применении систем виртуальной реальности. Средства виртуальной реальности служат для создания с помощью компьютерной графики трехмерных сред, в которые человек может быть погружен и где он может реально взаимодействовать с трехмерными объектами, созданными компьютером. В настоящее время они активно используются в бизнес-приложениях, образовании для создания компьютерных тренажеров, виртуальных учебных пособий и лабораторий, ситуационных комнат, компьютерных играх. Основными задачами, которые ставятся перед разработчиками виртуальных интерактивных сред (от англ. virtual environments, син. virtual worlds) являются: разработка трехмерных объектов, их объединение в виртуальную сцену, позволяющую человеку воспринимать динамично изменяющиеся объемные сцены виртуального пространства, разработка и реализация механизмов манипулирования объектами для изменения состояния виртуальной среды и процессов, протекающих в ней, механизмов получения обратной связи, а в некоторых случаях также и средств сравнения действий пользователя с эталонными или правильными, а также объяснение их пользователю. На сегодняшний день известны инструментальные средства, специализированные пакеты и различные технологии, помогающие создать виртуальные среды: Virtools, WorldToolKit, Juggler, Дельфин, ToolBook, Act3D, Amira, Unity3D, Alternativa3D и другие. Однако в их основе лежит кодирование на языке программирования, они ориентированы на высококвалифицированных программистов. Часто для их разработки требуется использовать множество различных библиотек и инструментальных средств (отдельно для графики, отдельно для звука, отдельно для логики и т.д.) и затем собирать из них единую систему. Для интеграции системы с Интернетом приходится сталкиваться с дополнительными трудностями. Еще более сложной задачей является сопровождение таких систем [enc.guru, 2012]. Поэтому актуальной является разработка инструментария, упрощающего создание и сопровождение виртуальных интерактивных сред. Целью данной работы является описание основных принципов и архитектурных компонентов Интернет-комплекса для создания, сопровождения и функционирования виртуальных интерактивных сред. 1. Основные принципы разработки Интернет-комплекса Основными требованиями, предъявляемыми к инструментарию для разработки виртуальных интерактивных сред являются: упрощение разработки и сопровождения системы; привлечение экспертов предметной области, поскольку только они обладают всей полнотой информации о виртуальной среде, не являются программистами, однако в большинстве средств создания виртуальных сред необходимо разрабатывать программный код даже для создания простейшей виртуальной сцены; доступность через Интернет для обеспечения простоты доступа и использования для пользователей, распространение и простую модификацию программ для разработчиков. Для реализации указанных требований предлагается концепция их разработки на основе онтологий и знаний. Разработчики формируют проект системы в терминах онтологии, затем проект интерпретируется в функционирующее приложение. В работе предлагаются следующие основные принципы проектирования инструментария для разработки и функционирования интерактивных виртуальных сред [Грибова и др., 2011]: Разработка онтологий для создания виртуальных интерактивных сред. Онтологии [Клещев, 2008], [Соснин, 2010] необходимы для того, чтобы в их терминах разработчики – эксперты предметной области, дизайнеры, программисты могли определять и модифицировать структуру конкретного проекта виртуальной интерактивной среды. Учитывая разнородность решаемых задач, а также то, что разработчиками являются специалисты различных предметных областей, необходима разработка нескольких онтологий, соответствующих группам специалистов и задачам, которые они решают. Разработка проекта виртуальной интерактивной среды в терминах онтологии. Проект виртуальной интерактивной среды строится на основе онтологий и является их конкретизацией, т.е. проект уточняет множество конкретных характеристик и значений терминов онтологий. Обеспечение функционирования виртуальной интерактивной среды через интерпретацию ее проекта и генерацию по нему виртуального мира. Интерпретатор проекта и генератор виртуального мира необходимы для уменьшения трудоемкости разработки и сопровождения виртуальных интерактивных сред (за счет исключения из жизненного цикла разработки трудоемкого этапа кодирования). Реализация и использование всего программного комплекса как облачного сервиса, доступного всем пользователям через Интернет без необходимости прямой установки на компьютере. Использование Интернета и технологии облачных вычислений дает новый уровень гибкости для управления и сопровождения программных средств, а также значительно расширяет аудиторию пользователей [Концер, 2012]. 2. Архитектура системы В соответствии с представленными основными принципами разработки сформирована общая концепция архитектуры системы (см. рис. 1). Система состоит из нескольких компонентов, которые можно разделить на два класса: информационные и программные. Информационными компонентами системы являются: онтологии, проекты, мультимедиа-данные, внешние функции. Программными компонентам системы являются: редактор проекта – структурный редактор для создания и изменения компонентов проекта на основе онтологий; редактор виртуального мира – визуальное средство редактирования виртуального мира, получаемого на основе созданного ранее проекта; редактор внешних функций – средство написания и редактирования дополнительных независимых программных модулей; интерпретатор – программа для обработки, анализа проекта и изменения в соответствии с ним виртуальной среды; клиентский модуль – программа, отображающая в браузере пользователю виртуальный мир, полученный в результате интерпретации проекта. Проекты создаются разработчиками системы – дизайнерами, программистами, экспертами предметной области на основе онтологий с помощью редакторов. Затем проекты интерпретируются уже в процессе работы с ней конечными пользователями. Все это работает как Интернетсервис, как для разработчиков, так и для пользователей. Рис. 1. Архитектура системы Для реализации указанных требований предлагается концепция их разработки на основе онтологий и знаний. Разработчики формируют проект системы в терминах онтологии, затем Онтологиями для создания виртуальных интерактивных сред являются [Соснин, 2010]: Онтология объектов, описывающая атрибуты объектов, находящихся на виртуальной сцене. Атрибуты объектов делятся на две группы: атрибуты уровня представления, необходимые для представления объекта в виртуальном пространстве и атрибуты логического уровня, необходимые для управления, изменения объекта, а также содержащие информацию, которая может быть использована другими объектами или элементами виртуальной среды для выполнения действий с объектом. Все объекты виртуального мира делятся на элементарные и составные; одушевленные и неодушевленные. Для отображения объектов в пространстве используются модели (трехмерный образ), текстуры, трехмерные мировые координаты. Каждый объект обладает некоторым набором атрибутов, определяющих присущие ему свойства. Атрибуты могут задавать как характеристики объекта в целом, так и характеристики состояний объекта (атрибуты состояний). Исходя из этого, выделены следующие основные классы объектов: Простой, Изменяемый, Составной, Массив. Онтология действий описывает действия, которые пользователь может производить с объектами виртуальной среды. Действия могут быть командные и интерактивные, с оценкой результата, с изменением объектов и т.д. В зависимости от назначения действия они включают различные атрибуты. Если действие предполагает изменение каких-то объектов, в описании действия указывается, какие это должны быть объекты и какие состояния у них должны быть изменены. Если действие должно возвращать результат пользователю, то у этого действия определяются атрибуты, описывающие возможные результаты. Одно и то же действие можно выполнять над разными объектами. Поэтому действия могут быть индивидуализированы с помощью входных параметров. Онтология сценариев описывает свойства сценария – последовательности действий, которые предполагаются для выполнения пользователем в процессе работы с виртуальной интерактивной средой. С одной стороны, сценарий представляет собой граф, в узлах которого находятся действия, а дуги являются переходами от одних действий к другим. С другой стороны, сценарий – это последовательность логических этапов, где каждый этап представляет собой объединенное в группу множество узлов. Этапы могут иметь параметры, уточняющие особенности его выполнения. На основе этих онтологий строится проект, состоящий из множества объектов виртуальной сцены, множества действий, которые можно осуществлять с этими объектами и сценарий. 3. Интерпретатор На основе сформированного проекта происходит его интерпретация: создание виртуальной среды и ее функционирование в процессе работы с пользователем (см. рис. 2). Интерпретация начинается с загрузки проекта и создания виртуальной сцены: создания объектов, привязки событий, установке начальных значений параметрам сцены. Первым шагом является инициализация проекта на сервере: запускается управляющий блок, который производит загрузку проекта, его преобразование, сохранение во временное состояние и передачу проекта клиенту. В клиенте по переданному проекту генератор сцены строит трехмерную виртуальную сцену: генерируются объекты сцены, загружаются необходимые медиа-данные (3d-модели, текстуры), на объекты добавляются анализаторы событий, устанавливается управление сценой. Рис. 2. Модель интерпретация проекта Сгенерированная сцена отображается пользователю, который может с ней взаимодействовать (взаимодействовать с объектами сцены), управляя подвижной камерой. Взаимодействуя с объектами сцены, а также вызывая необходимые команды напрямую, пользователь генерирует события. Эти события отправляются управляющему блоку клиента, который в зависимости от типа произведенного пользователем события осуществляет передачу события обработчику на сервер. Обработчик на сервере на основе текущей версии проекта и полученной информации о событии и об объекте (если есть), связанным с этим событием, определяет необходимое для обработки действие. Обработчик действия на основе информации о действиях из текущего проекта выполняет внутренние и, если необходимо, внешние функции обработки. Результатом этой обработки будет изменение текущего состояния проекта, запись нового состояния проекта и отправка через управляющий блок на генерацию в клиент, который далее отображает изменения сцены пользователю. Кроме непосредственной обработки действия выполняется обработчик проверки действия на соответствие со сценарием, затем на клиент отправляется информационное сообщение с результатом. Каждое произведенное действие записывается в последовательность действий пользователя для дальнейшей обработки. 4. Методы реализации системы Реализация интерпретатора системы выполнена на мультиагентной платформе IACPaaS [Грибова и др., 2011] c использованием Flash-клиента. Информационные и программные ресурсы комплекса, включая онтологии, проекты, медиа-данные, агенты, редакторы располагаются в фонде платформы IACPaaS. Управляющий блок сервера реализуется управляющим и интерфейсным агентом. Управляющий агент выполняет все необходимые действия по загрузке, преобразованию и передаче проекта клиенту. Интерфейсный агент выполняет загрузку и отображение клиентского Flash-модуля. Обработчик событий, обработчик действий и обработчик сценариев реализуются как обрабатывающие агенты. Внешние функции также выполняют обрабатывающие агенты. Взаимодействие между агентами происходит путем передачи сообщений в соответствии с шаблонами сообщений. Вся информация – онтологии, проект, данные (включая временные), имеют унифицированное представление в форме семантических сетей [Грибова и др., 2011]. Форматом, в который преобразуется проект для передачи в клиентский модуль, является формат JSON. Клиентская часть реализуется как Flash-модуль, встраиваемый в вебстраницу и отображаемый пользователю в браузере. Генерация трехмерной виртуальной сцены происходит с применением Flashбиблиотеки Alternativa3D, использующей технологию Molehill. Страница с Flash-модулем загружается один раз и более не обновляется сервером. Flash-модуль работает на странице пользователя как непрерывный процесс, постоянно обновляющий динамически изменяющуюся трехмерную виртуальную сцену. Взаимодействие между клиентским модулем и серверной частью платформы происходит путем передачи клиентом асинхронных сообщений серверному агенту, ответственному за обработку событий, и фонового ожидания от него результирующего сообщения. В результирующем сообщении, которое управляющий агент передает клиенту, указывается, какие объекты сцены и как были изменены, если были какие-то изменения, указывается результат действия, если таковой имеет место, указывается правильность произведенного действия в результате обработки сценария. Структура асинхронного сообщения о произведенном событии в формате JSON: {объект: <объект с которым связано действие>, событие: <произведенное событие>, параметры: <дополнительные параметры события >} Структура результирующего сообщения от управляющего агента клиенту в формате JSON: {объекты: [{<измененный объект1, состояние>}, … {<измененный объектN, состояние>},], результат действия: <строковое сообщение о результате действия>, сценарий: <правильность выполнения>} Заключение Трудоемкость разработки виртуальных интерактивных сред является очень высокой, требует участия высококвалифицированных программистов, отдельными сложными задачами является необходимость интеграции в одной системе различных библиотек и компонентов, из которых она состоит, а также доступность как готовой системы, так и средств ее разработки через Интернет. Основная задача, которая ставилась перед разработчиками инструментария для создания интерактивных виртуальных сред - упростить их разработку и сопровождение. Для реализации указанных требований использован онтологический подход к автоматизации профессиональной деятельности, в соответствии с которым разработчики формируют проект в терминах онтологии, который затем интерпретируется в готовое приложение. В настоящее время разработан и экспериментально исследован прототип системы, ведется работа по реализации полнофункционального инструментального комплекса. С помощью прототипа реализован тренажер обследования зрения по таблицам Сивцева для офтальмологии. Полученный прототип показал достоинства разрабатываемой системы: способность работы в браузере, достаточность декларативного описания компонентов сцены экспертами предметной области на основе онтологий. Разрабатываемый программный комплекс планируется использовать при создании интерактивных виртуальных сред для решения различных задач. Благодарности. Работа выполнена при финансовой поддержке РФФИ (проект № 10-07-00089-а), и ДВОР РАН (проект 12-I-П15-03). Список литературы [Грибова и др., 2011] Грибова В.В., Петряева М.В., Федорищев Л.А. Разработка виртуального мира медицинского компьютерного обучающего тренажера // Дистанционное и виртуальное обучение. – №9, 2011. [Грибова и др., 2011] Грибова В.В,, Клещев А.С., Крылов Д.А., Москаленко Ф.М., Смагин С.В., Тимченко В.А., Тютюнник М.Б., Шалфеева Е.А. Проект IACPaaS – развиваемый комплекс для разработки, управления и использования интеллектуальных систем // Искусственный интеллект и принятие решений. №1, 2011. [Клещев 2008] Клещев А.С. Роль онтологии в программировании Ч. 1. // Информационные технологии. – №10, 2008. [Концер, 2012] Концер Т. "Облачные вычисления: всё как сервис // PC Week/RE. №32 (638). – http://www.pcweek.ru/themes/detail.php?ID=112879 [Соснин, 2010] Соснин П.И. Создание и использование онтологий проектов в разработке автоматизированных систем. – Т.: КИИ 2010, том 2. [enc.guru, 2012] Как работает виртуальная реальность – http://enc.guru.ua/index.php?title_id=90