Учитывая модульную организацию системы, возможно использование разработанных модулей системы отдельно, например, при реализации функционала какой-либо другой системы, нуждающейся в морфологическом анализе, онтологической обработке текстовых запросов и других видах обработки информации, реализуемой в нашей системе. Отметим также, что разработанную систему можно полностью интегрировать в другие информационные системы, определив необходимые для ее функционирования интерфейсы. Например, это могут быть системы, предоставляющие доступ к различным коллекциям документов, внедрение в которые позволит производить интеллектуальный поиск по этим документам.
Литература
1. Россеева О. И., Загорулько Ю.А. Организация эффективного поиска на основе онтологий //
Труды Международного семинара Диалог'2001 по компьютерной лингвистике и ее приложениям, т.2, 2001. - [Электронный ресурс]: [Статья]. - Режим доступа:
http://www.dialog-21.ru/materials/archive.asp?id=7029&v=2001&vol=6078
2. Krylov A.Yu., Galiaskarov E.G. The basic organization of an ontology driven retrieval system.
Object Systems - 2011 (English session): Proceedings of the Fourth International Theoretical and Practical Conference. Rostov-on-Don, Russia, 10-12 November, 2011. Edited by Pavel P. Oleynik. -p. 11-16. Также: [Электронный ресурс]: [Статья] - Режим доступа:
http://obiectsystems.ru/files/2011ES/Qbiect Systems 2011 English session Proceedings.pdf
3. Редактор онтологии и шаблон построения базы знаний “Protege”. - [Электронный ресурс]: [Сайт продукта] - Режим доступа: http://protege.stanford.edu/
4. Спецификация языка веб-онтологий OWL. - [Электронный ресурс]: [Страница
спецификации] - http://www.w3.org/TR/owl-features/
5. Технологический комплекс АЛОТ - Автоматизированная Лингвистическая Обработка
Текстов. - [Электронный ресурс]: [Сайт комплекса] -
http://www.cir.ru/docs/ips/techno/index.htm
6. Полнотекстовый поисковый сервер Sphinx. - [Электронный ресурс]:[Сайт продукта] -http://sphinxsearch.com/
УДК 681.3
РЕДАКТОР МЕТАМОДЕЛИ ОНТОЛОГИЧЕСКОЙ СИСТЕМЫ
Грегер Сергей Эдуардович, доцент, Уральский федеральный университет имени первого Президента России Б.Н.Ельцина, Нижнетагильский технологический институт (филиал), Россия,
Нижний Тагил, [email protected]
Рост объема информационных потоков породил тенденцию смещения разработок в направлении крупных информационных систем - корпоративных порталов. В решении проблем, связанных с эффективностью проектировании, реализации и сопровождении порталов, все шире используются возможности, предоставляемые семантическими моделями на базе онтологии (онтологические модели). Для создания и поддержки онтологий существует целый ряд инструментов, которые помимо общих функций редактирования и просмотра выполняют поддержку документирования онтологий, импорт и экспорт онтологий разных форматов и языков, поддержку графического редактирования, управление библиотеками онтологий и т.д. В то же время появилась тенденция к поддержке онтологических моделей в системах управления контентом (CMS), являющихся основой для построения современных веб-приложений. Такая поддержка в настоящее время в определенной степени реализована в CMS Drupal, Django и некоторых других. Использование таких моделей переводит веб-приложения в категорию онтологоуправляемых информационных систем, что требует разработки соответствующих инструментов управления.
88
Редактор онтологий - это приложение, поддерживающее создание онтологий или манипулирование ими [1]. Онтологический редактор может обеспечивать различные возможности работы с одним или несколькими языками представления онтологий, импорт/экспорт, средства библиотек онтологий, визуализацию, машины вывода, языки запросов, поддержу онтологий верхнего уровня и многое другое. Основная функция любого редактора онтологий состоит в поддержке процесса формализации знаний и представлении онтологии как спецификации (точного и полного описания). Существующие веб-редакторы онтологий, в частности, веб-версия хорошо известного редактора Protege — WebProtege, — предназначены прежде всего для поддержки совместной разработки онтологий и непосредственно не могут быть использованы в качестве инструмента в составе онтологоуправляемой информационной системы.
Наши исследования направлены на изучение особенностей построения корпоративных порталов на основе CMS Plone [2,3] с использованием онтологических моделей. Основной особенностью, отличающей эту систему разработки от других CMS, является использование в качестве хранилища контента объектной базы Zope Object Database (ZODB). Таким образом, целью нашей разработки являлось создание редактора онтологии, хранимой в объектной базе ZODB. При разработке редактора ставилась задача создания web-приложения, позволяющего как создавать новые, так и редактировать уже существующие онтологии. При этом предполагалось, что режим доступа к редактируемой онтологии может быть как online, так и offline. Кроме этих основных требований к приложению был предъявлен еще ряд как функциональных, так и нефункциональных требований:
1. Редактор должен обладать возможностью загружать и визуализировать любую представленную на языке OWL онтологию.
2. Редактор должен предоставлять пользователю дружественный интерфейс, позволяющий быстро создавать и редактировать концепты онтологии.
3. Редактор должен предоставлять гибкий поисковый механизм, позволяющий легко искать и редактировать концепты онтологии.
Для реализации предъявленных требований была выбрана технология AJAX, позволяющая создавать интерактивные web-приложения, реализующие асинхронное взаимодействие между клиентской и серверной частями приложения.
Редактор реализован на языке Javascript с использованием библиотеки JQuery. Для эффективного управления онтологиями на стороне клиента реализована система классов, обеспечивающих хранение редактируемой части онтологии в оперативной памяти, а также построения запросов к серверу извлечения данных об элементах различных элементах онтологии.
Редактор состоит из клиентской и серверной части. Для эффективного клиентсерверного взаимодействия серверная часть приложения организована в виде JSON-сервера запросов. Сервер реализует выполнение различного вида запросов к объектной базе и формирование результата в структуру данных, пересылаемую редактору в формате JSON. Он реализован компонентом Ontology Service, реализующим все алгоритмы, связанные с загрузкой и управлением онтологией и набором классов, обеспечивающих хранение и обработку концептов онтологии. Компонент предоставляет набор взаимосвязанных сервисов, каждый из которых обеспечивает обработку специфических концептов онтологии и коммуникацию с клиентской частью редактора. Серверная часть приложения предоставляет следующие сервисы:
1. Загрузку OWL-онтологии из удаленного источника.
2. Выполнение запроса на получение всей онтологии или ее отдельной части, определяемой указанным частичным классом онтологии и формирование соответствующего JSON-пакета.
3. Поиск всех онтологических классов, являющихся дочерними классами указанного концепта онтологии.
4. Поиск всех объектов указанного класса.
89
5. Предоставление информации о структуре указанного класса, объекта или свойства.
6. Отображение всех метаданных загруженной онтологии.
Объектная модель компонентов представлена на рисунке 1.
Рис. 1 - Объектная модель компонентов
Для хранения онтологии в объектной базе данных разработан набор компонент [4], обеспечивающих представление концептов языка OWL, таких как Class, Data Property, Object Property и их атрибутов. Для хранения индивидуальных объектов онтологии предназначен компонент Individual. Использование таких компонент позволило эффективно хранить онтологию и реализовать выполнение запросов к онтологии. При создании и модификации элементов онтологии сервер запросов манипулирует объектами указанных классов, используя средства управления объектной базой данных.
Клиентская часть редактора выполнена с использованием AJAX-технологий и функционирует в соответствии с клиентской моделью онтологии. Модель содержит классы, обеспечивающие выполнение запросов к сервисной части редактора, хранение онтологии на стороне клиента, а также построение графического пользовательского интерфейса (рис.2).
Рис. 2 - Клиентская модель онтологии
Класс Ontology обеспечивает хранения онтологии в виде многоуровневых массивов и предоставлет методы доступ к элементам онтологии;
Класс OntoEditorUI предназначен автоматической генерации форм, шаблонов на основе структуры данных, полученных из онтологии;
Класс OntoEditor является связующим звеном между уровнем хранения данных (класс Ontology) и уровнем представления данных (класс OntoEditorUI) и содержит в себе всю бизнес-логику редактора.
90
Пользовательский интерфейс редактора построен с использованием паттерна «portlet». Этот паттерн предлагает декомпозировать страницу веб-приложения на ряд визуальных компонент — портлетов, каждый из которых обладает собственными моделями хранения, обработки и отображения данных определенного типа. Использование этого паттерна соответствует принятой в CMS Plone концепции пользовательского интерфейса, хотя и имеет некоторые отличия. Так портлет отображения дерева элементов онтологии в «стандартном» интерфейсе CMS Plone может быть размещен только в левой или правой колонке страницы при ее «трехколоночной» разметке. В представленном редакторе указанный портлет расположен в центральной части страницы. И хотя такое построение позволяет использовать редактор отдельно от CMS Plone, при наличии соответствующей реализации серверной части редактора, в настоящее время активно разрабатывается версия редактора, использующего специфические особенности указанной CMS.
Интерфейс редактора включает в себя нескольких портлетов, отображающих иерархическую структуру классов онтологии, список свойств, список индивидулов классов и индивидуалов свойств. В каждом портлете имеется кнопка, позволяющая вызывать форму создания объекта, тип которого соответствует типу отображаемых портлетом элементов. В центральной части редактора отображаются свойства выбранного элемента онтологии. Реализация интерфейса редактора представлена на рисунке (рис.3).
Рис. 3 - Интерфейс клиентской части редактора
Разработанный редактор используется в составе инструментальной среды семантического моделирования учебного процесса [5].
Литература
1. Овдий О.М., Проскудина Г.Ю. Обзор инструментов инженерии онтологий. -
http://www.elbib.ru/index.phtml?page=elbib/rus/joumal/2004/part4/op
2. Грегер С.Э. Сервер приложений «Zope». Учебное пособие для вузов. -
М.: Горячая линия - Телеком, 2009. - 256 с.:ил.
3. Грегер С.Э. Администрирование и интерфейс пользователя CMS Plone (монография). Федер. Агентство по образованию, ГОУ ВПО "УГТУ-УПИ им.первого Президента России Б.Н.Ельцина". Нижнетагил. технол. ин-т (фил.). - Нижний Тагил: НТИ(ф) УГТУ-УПИ, 2009. -140 с.
91
4. Грегер С.Э., Сковородин Е.Ю. Построение онтологического портала с использованием объектной базы // Объектные системы - 2010: Материалы I Международной научнопрактической конференции. Россия, Ростов-на-Дону, 10-12 мая 2010 г / под общ. ред. П.П. Олейника. - Ростов-на-Дону, 2010. - С. 74-78.
5. Грегер С.Э. Реализация инструментальной среды семантического моделирования учебного процесса. Объектные системы - 2011: материалы III Международной научно-практической конференции, (Ростов-на-Дону, 10-12 мая 2011 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону, 2011. - С.58-61.
УДК 004.4’23 +004.43
РАЗРАБОТКА УЧЕБНОГО ЯЗЫКА ПРОГРАММИРОВАНИЯ И ИНТЕРПРЕТАТОРА1
Лаптев Валерий Викторович, к.т.н., доцент, Астраханский государственный технический университет, Россия, Астрахань, [email protected] Грачев Дмитрий Александрович, магистрант, Астраханский государственный технический университет, Россия, Астрахань, [email protected]
Введение
В работе [1] одним из авторов сформулированы требования к языку программирования и к интегрированной среде обучения программированию. В частности, обучающая среда должна включать исполняющую подсистему, в которой реализуются программы на учебном языке программирования. Основными компонентами исполняющей подсистемы являются редактор кода и интерпретатор программ на учебном языке.
В настоящей работе описывается разработанный авторами учебный язык, названный Semantic Language (SL), и интерпретатор, позволяющий выполнять программы на этом языке. При разработке учебного языка нужно следовать некоторым основополагающим принципам (концепциям). Концепции разработки языка программирования делятся на три группы: семантические, синтаксические и прагматические (реализационные). Основные семантические концепции, принятые при разработке учебного языка, следующие:
• понятия языка для обучения должны соответствовать понятиям промышленных императивных языков программирования;
• множество понятий языка для обучения должно быть минимально;
• конструкции языка не должны зависеть ни от аппаратной платформы, ни от операционной системы;
• язык должен поддерживать модульность, процедурное программирование и объектно-ориентированное программирование;
• язык должен поддерживать структурное программирование;
• намерения программиста должны указываться явным образом (запрет умолчаний).
В качестве примеров запрета умолчаний можно привести следующие:
• отсутствие неявных преобразований типа (кроме преобразования в арифметических выражениях целый -> вещественный);
• явный параметр this, задаваемый при определении метода класса;
• явное определение записи как базовой для наследования;
• явное указание типа константы при определении.
При разработке учебного языка были приняты следующие основные синтаксические концепции:
• базовая лексика языка должна быть русскоязычной;
• ключевые слова должны иметь английский эквивалент;
1 Лауреат номинации "Лучший доклад о методах преподавания объектных технологий в ВУЗе". Автор доклада награждается правом бесплатной публикации одного доклада по данной тематике на следующей конференции
92