РОССИЙСКИЙ НАУЧНЫЙ ЭЛЕКТРОННЫЙ ЖУРНАЛ Электронные библиотеки
2012 - Том 15 - Выпуск 3

Базы знаний для описания информационных ресурсов в молекулярной спектроскопии. 4. Программное обеспечение ИВС "Молекулярная спектроскопия"

Ахлёстин А.Ю., Козодоев А.В., Лаврентьев Н.А., Привезенцев А.И., Фазлиев А.З.

 

Аннотация

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

Введение

Построение автоматизированных информационно-вычислительных систем (ИВС) требует использования и создания программного обеспечения для реализации их функционального назначения. В большинстве случаев усилия разработчиков программного обеспечения сосредоточены на создании промежуточного программного обеспечения (ППО) и прикладного программного обеспечения (ПрПО). Структуры ППО и ПрПО зависят от архитектуры информационных ресурсов и информационных задач, решаемых в ИВС.

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

В этой работе представлены результаты нашей работы по созданию ППО и ПрПО за последние десять лет. Эта работа была сконцентрирована на создании промежуточного программного обеспечения, информационного слоя и слоя знаний ИВС и прикладного программного обеспечения, обеспечивающих функциональность ИВС. На начальном этапе работы было создано ППО [1-3], для работы с информационными ресурсами и приложениями, относящимися к разным предметным областям атмосферных наук, от спектроскопии и химии до климатологии [4]. В научных и прикладных публикациях термин «промежуточное программное обеспечение» имеет неоднозначную трактовку. Широкая трактовка относит промежуточному программному обеспечению роль «клея между операционными системами и прикладным программным обеспечением», обеспечивающего коммуникации между пользователем и ИВС. В узкой трактовке, относящейся к Интернет доступным системам, его рассматривают как слой между клиентом и сервером. Последняя трактовка используется нами в данной работе.

Сложности в обеспечении коммуникации между пользователем и ИВС в значительной мере связаны со структурой информационных ресурсов, представленных в ней. Мы используем термин «трехслойная архитектура ИВС» [6] в смысле работы [5], в которой исследована инфраструктура цифровых информационных ресурсов и выделены три слоя (слой данных, информационный слой и слой знаний). Предполагается, что возможно разбиение информационных ресурсов ИВС по слоям в соответствии с их представлением.

В первом параграфе описана структура распределенной ИВС в двух измерениях. Одному измерению соответствует дифференциация ИВС на данные, приложения и интерфейсы [7], а другому измерению дифференциация по слоям информационных ресурсов. Во втором параграфе статьи обсуждается оригинальное промежуточное программное обеспечение, использованное для создания ИВС. Оно состоит из трех частей: ядра ППО, административной консоли для формирования конфигурационных файлов и данных для работы ядра и ряда встроенных предметно независимых приложений. Приведена структура запроса и рассмотрены допустимые состояния и переходы при реализации запроса. Дан перечень классов и методов с описанием входных и выходных данных и их функций.

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

В информационном слое определяются высказывания, относящиеся к индивидам онтологии информационных ресурсов молекулярной спектроскопии. Эти высказывания связаны с формальными и неформальными свойствами информационных ресурсов [8].

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

1. Информационная система трехслойной архитектуры по молекулярной спектроскопии

Информационно-вычислительная система «Молекулярная спектроскопия» предназначена для предоставления доступа к данным, информации и логическим теориям (онтологиям), необходимым для решения прикладных и фундаментальных задач предметных областей (оптики атмосферы, спектроскопии, астрономии и т.д.). Она является основой для формирования распределенной ИВС (РИВС), узлы которой размещены в Нижнем Новгороде, Петербурге и Томске.

На рис.1 показана структура узла РИВС по спектроскопии, реализованного нами в рамках ряда проектов РФФИ [9-11]. Выделены основные компоненты ИВС: данные, приложения и интерфейсы [7]. Приложения, связанные с веб-сервисами, отнесены к отдельной компоненте. Обращаясь к описанию рис.1, отметим, что в предыдущих работах описаны модель данных количественной спектроскопии [12] и прикладные онтологии [8]. По этой причине мы не останавливаемся на детальном описании структур данных.

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

Классификация относит ресурсы к трем слоям. К слою данных относятся ресурсы, формальное описание которых не содержит описание семантики. К информационному слою относятся ресурсы, формальное описание которых основано на использовании понятия «высказывание» [13] с заданной семантикой. Наконец, к слою знаний отнесем ресурсы в представлении, в котором формальной семантикой обладают как «высказывание», так и «класс» [14].

Рис.1. Структура узла распределенной ИВС по спектроскопии.

На рис.1 приведены основные информационные задачи, решаемые с помощью приложений в разных слоях, основные данные предметной области и интерфейсы ИВС. Стрелки, входящие в приложения, указывают из каких БД извлекаются входные данные, а выходящие стрелки указывают в каких БД размещаются их выходные данные.

Для отображения, проверки целостности и хранения информационных ресурсов в ИВС использованы разные представления информационных ресурсов. Эти представления реализованы с помощью языков разметки (XML, OWL DL), а хранение ресурсов осуществляется в СУБД MySQL.

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

1.1. Слой данных

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

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

Наполнение информационной системы значениями данных осуществляется через импорт в ИВС опубликованных решений предметных задач.

С помощью импорта публикаций и библиографических ссылок формируется цифровая библиотека публикаций в предметной области (она недоступна пользователям) и библиографические данные, относящиеся к публикациям. В предметной области число молекул и их изотопологов составляет несколько сотен, и в ИВС созданы приложения, позволяющие формировать соответствующие им информационные объекты. Эти объекты используются в ИВС по атмосферной спектроскопии и химии [15].

Эти источники данных являются входными или выходными ресурсами для четырех информационных задач.

Загружаемые пользователем данные образуют элементарные ресурсы, которые характеризуются первичным источником данных, содержащим библиографическую ссылку. Выделено шесть групп для слоя приложений. Например, пакет приложений, относящийся к реализации задачи «Импорт решений задач спектроскопии» содержит около десятки классов, реализующие импорт данных для молекул разной симметрии и спектроскопических классов. Ввод данных в ИВС сформирован в соответствие с иерархией задач. Для каждого класса решения задач созданы отдельные приложения. Общей для всех процедур ввода данных является процедура создания источника данных, с которым связываются импортируемые ресурсы. Источник данных характеризуется уникальным идентификатором, названием, связью с публикацией, хранящейся в БД, и типом задачи спектроскопии.

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

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

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

1.2. Информационный слой

В информационном слое описывается расширение предметной области «Количественная спектроскопия», включающее в себя свойства и концепты, не включенные в рассмотрение при исследовании решений задач спектроскопии в слое данных. Такое расширение предметной области зависит от набора информационных задач, которые ставятся при создании ИВС и способов описания информационных ресурсов. В ИВС «Молекулярная спектроскопия» предметная область, относящаяся к информационному слою, представляет собой набор свойств и их значений, относящихся к решениям шести задач спектроскопии. К числу этих свойств относятся интервалы изменения физических величин, определенных в соответствующих решениях, число вакуумных волновых чисел, удовлетворяющих правилам отбора, стандартные отклонения решений однотипных задач и т.д.

Для описания информационных ресурсов предметной области, связанных с этим слоем, в ИВС используется язык разметки OWL DL [14]. Эти ресурсы представляют собой фактологическую часть онтологий. Большая часть ресурсов создается автоматически. Свойства решений задач спектроскопии делятся на две группы. Большая часть свойств имеет значения, которые можно вычислить. Вычисление значений некоторых свойств требует значительного (по меркам Интернет систем) количества времени, например, свойств, связанных с вхождением опубликованных значений физических величин в составные источники данных.

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

Третьей задачей информационного слоя является визуализация фактологической компоненты и формирование связей между формальными значениями свойств и данными, которые соответствуют им. Например, значение свойства «число отклоненных экспертами переходов», представляемое целым числом, является гиперссылкой на данные, соответствующие таким переходам. Пользователь может визуализировать в ИВС свойства решений задач и значения этих свойств. Анализ свойств позволяет разделять ресурсы на достоверные и недостоверные в рамках выбранных пользователем критериев.

1.3. Слой знаний

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

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

2. Промежуточное программное обеспечение "ATMOS"

Развитие инфраструктуры сети Интернет, сопровождаемое созданием набора технических стандартов, языков разметки данных для отображения (HTML) и структурирования, хранения и обмена данными (XML) и других стандартов W3C, породило множество подходов к созданию ИВС в веб-среде. Ключевое различие в подходах связано с программным обеспечением. Системное программное обеспечение и программный инструментарий, используемый при создании ИВС, достаточно быстро разделилось на две группы, связанные с операционными системами. Наиболее популярной из них является группа LAMP (Linux-Apache-MySQL-PHP).

Промежуточное программное обеспечение, используемое на практике, достаточно разнообразно. Это разнообразие обусловлено различными структурами запросов от клиента к серверу, используемыми создателями ИВС. Структура запроса существенным образом зависит от многих факторов, в первую очередь от набора сервисов, предоставляемых на сервере. Авторами при выполнении ряда грантов было создано оригинальное промежуточное программное обеспечение (ППО «ATMOS»), часть которого описывается в данном параграфе.

ППО “ATMOS” состоит из трех частей: ядра ППО «ATMOS», административной консоли и встроенных приложений. Оно доступно в сети Интернет [16].

Промежуточное програмное обеспечение создано, используя шаблон проектирования MVC (Model–View–Controller), позволяющий отделить логику приложения от его представления. Шаблон предполагает разделение данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента. Разделение на компоненты (Модель, Представление и Контроллер) проводится таким образом, что модификация одного из компонентов оказывает минимальное воздействие на остальные. Модель предоставляет данные предметной области для отображения и реагирует на команды контроллера, изменяя свое состояние. Компонента Представление отвечает за отображение данных предметной области пользователю, реагируя на изменения модели. Контроллер интерпретирует действия пользователя, оповещая модель о необходимости изменений.

Рис. 2. Структура программного обеспечения ИВС «Молекулярная спектроскопия»

Ядро ППО “ATMOS”, в широком смысле слова, выполняет функции монитора обработки транзакций в архитектуре клиент-сервер. Оно регулирует все рабочие потоки системы. Работает с данными о пользователе, структурой динамически формируемой диалоговой системы, модулем поддержки комплексных задач, модулем поддержки метаданных и знаний (машинно обрабатываемых утверждений). Разработанный нами оригинальный модуль поддержки комплексных задач в ИВС предоставляет прикладному программисту унифицированный интерфейс для работы с данными предметных задач и обеспечивает проверку целостности данных в портфеле пользователя [17].

Административная консоль (система построения и поддержки ИВС) предназначена для формирования настроек для ядра ИВС и включает в себя модули для работы с правами доступа пользователя и групп пользователей, логикой формирования динамически создаваемой диалоговой системы и логикой обеспечения целостности данных предметных задач.

Ко встроенным приложениям отнесены приложения, использующиеся во многих ИВС, связанных с предметными областями, относящимися к атмосферным наукам. Структура программного обеспечения ИВС «Молекулярная спектроскопия» показана на рис.2.

2.1. Обработка запроса пользователя

Техническая сторона работы пользователя в ИВС «Молекулярная спектроскопия» состоит из формирования и отправки запросов к веб–серверу и получении ответов от веб-сервера. Структура запроса к веб-серверу состоит из пути до запрашиваемого узла, идентификатора сессии, идентификатора языка интерфейса и входных параметров (Get, Post, Cookies). При запросе инициализируется ядро ППО. В ядре происходит обработка запроса, находится пользователь по идентификатору сессии, определяются права доступа пользователя, находится запрашиваемый узел (разбираются его свойства и отслеживается целостность данных пользователя), инициализируется приложение (входные и выходные параметры) и строится страница на основе выбранного языкового словаря и шаблона, включающего выходные данные приложения.

На рис.3 показана сеть потока работ, выполняющегося при каждом запросе к веб-серверу.

Рис.3. Сеть потока работ при обработке запроса клиента на сервере

Опишем переходы представленного на рис.3 потока работ. При переходе Тr1 происходит разборка запроса, cookies (авторизация и сессия), POST, инициализируются переменные среды, заданные по умолчанию, при первом обращении пользователя создается сессия, определяется пользователь (авторизован или нет), загружается дерево меню для ИВС (сервис диалоговая система), находится требуемый URL узла, параметры узла добавляются в параметры среды окружения.

При переходе Тr2 находится и исполняется приложение, связанное с узлом, определенном по URL. При этом задействован сервис управления данными пользователя. Для облегчения работы прикладных программистов часть логики приложений была внесена в систему управления потоком работ в виде логических таблиц с состоянием данных пользователя на сервере, связывающих действия пользователя, приводящие к вмешательству [16]. При переходе Тr3 находится шаблонная страница, формирующая представление данных на клиентском месте. При переходе Тr4 сформированная HTML-страница передается на сторону клиента. При переходе Тr6 происходит передача бинарного файла от приложения клиенту без обращения к шаблону. При переходе Тr5 выбирается очередное приложение из списка, содержащегося в шаблоне выходного документа, и система возвращается в состояние Р1.

Таблица 1. Данные, связанные с переходами Т

Тr1 Тr2 Тr3 Тr4 Тr5 Тr6
REQUEST +       +  
CLIENT +          
NODE +       +  
TASK + +        
TUNING +       +  
APPLIC-S + + +      
TEMPLATE + + +      

Данные, с которыми работают скрипты при обработке запроса, представляются в оперативной памяти в виде семи групп данных, содержащих различные параметры. К этим группам относятся REQUEST (параметры запроса пользователя), NODE (параметры узла пункта меню, к которому обращается пользователь), CLIENT (параметры клиента, делающего запрос), TAS (параметры, необходимые для хранения результатов решения предметных задач), TUNING (параметры для настройки ИВС), TEMPLATE (параметры шаблона информационного раздела выходного документа) и APPLIC-S (параметры для встроенных приложений). Детальное описание параметров можно найти в документации (http://atmos.iao.ru/doc/core/ve/). В таблице «+» означает, что при реализации перехода (Т) программному обеспечению доступны соответствующие данные из перечисленных выше семи групп.

Таблица 2. Перечень состояний (мест)

Место Результаты действий
Р1 Результат инициализации переменных среды, формирования сессии, задания атрибутов пользователя, выбора языка интерфейса, формирования дерева меню, нахождения требуемого в URL узла и выбора параметров узла, нахождения приложения, связанного с узлом
P2 Результат работы приложения
P3 Результат размещения данных приложения в переменных окружения и формирования HTML-страницы по шаблону
P4 Данные для клиента подготовлены

2.2. Ядро промежуточного программного обеспечения «ATMOS»

Ядро ППО исполняет функции Контроллера – компонента ядра Kernel обеспечивает интерактивное взаимодействие с внешней средой Web и выполняет предварительную обработку этого взаимодействия. Функции реализации логики прикладного приложения, то есть Модель, реализуются в рамках ППО «ATMOS» в компоненте Module. Компонента Module представляет собой набор классов, реализующих определенную функциональность и оформленных по правилам для обработки ядром ИВС. Функции реализации представления результатов работы прикладного приложения, то есть Представление, реализуется в рамках ППО в компоненте Template. КомпонентаTemplate представляет собой набор HTML-шаблонов, позволяющих визуализировать результаты работы прикладных приложений с помощью дополнительных конструкций, обрабатываемых ядром ИВС.

В процессе работы ИВС все компоненты ядра, находящиеся в каталоге inc, загружены в память и доступны из всех приложений. Эти каталоги, а также все остальные, упоминаемые ниже, находятся в домашнем каталоге ППО «ATMOS». Класс Kernel является основным компонентом ядра ППО «ATMOS», обеспечивающим всю функциональность Контроллера.

Таблица 3. Перечень методов класса Kernel, используемых при обработке событий (переходов)

Переход Метод Описание метода Входные данные Некоторые выходные данные
Т1 Kernel::Kernel (конструктор) Метод создает глобальный массив параметров ядра $kernelVars (параметры окружающей среды), используя конфигурационные файлы из каталога etc и параметры запроса пользователя. Конфигурационные файлы из каталога etc, запрос пользователя, переменные веб-сервера, переменные PHP. Создает глобальный массив параметров ядра $kernelVars. Задает значения по умолчанию для параметров sessOn, userId, userOn, groupId, groupAcc из группы CLIENT. Задает все параметры группы REQUEST.
Kernel::KernelMysql Метод устанавливает прямое подключение к базе данных ядра ИВС. Добавляет ссылку на подключение в параметры окружающей среды. Параметры окружающей среды $kernelVars (параметры mysqlHost, mysqlLogin, mysqlPasswd, mysqlBase, mysqlCharset из группы TUNING) Подключение к базе данных ядра (параметр mysqlLink из группы TUNING). Изменяется состояние параметра mysqlOn из группы TUNING
Kernel::KernelSess и Kernel::KernelUser Методы предназначены для поддержки сессии и авторизации пользователя, определения его принадлежности к группе и права доступа. Все параметры пользователя извлекаются из базы данных ИВС и записываются в параметры окружающей среды. Параметры окружающей среды $kernelVars, база данных ядра ИВС. Создание параметров sessId, sessUpdate, sessCreate, proxyIp, browserName, browserVersion, userLogin, userCreate, lastName, firstName, userHide. Изменение параметров sessOn, userId, userOn, groupId, groupAcc. Все параметры входят в группу CLIENT
Kernel::KernelDirs Этот метод строит в памяти полное дерево пунктов меню сайта, доступных для пользователя Параметры окружающей среды $kernelVars, база данных ядра ИВС.  
Kernel::KernelVars Этот метод находит пункт меню, который запрашивает пользователь. Создает массив параметров данного пункта меню $moduleVars, в который добавляет параметры окружающей среды из $kernelVars. Параметры окружающей среды $kernelVars, база данных ядра ИВС. Создает параметры окружающей среды для запрашиваемого пункта меню $moduleVars. Задает все параметры группы NODE и TASK.
Т2 Kernel::KernelFrame Метод запускает обработчик файлов шаблонов для найденного приложения при помощи классаTemplate, также обрабатывает тег (фрейм), предназначенный для подключения в определенную область шаблона данных и шаблонов от других приложений в рамках одного сайта. Параметры окружающей среды для запрашиваемого узла $moduleVars. Формирует html-страницу интерфейса ИВС из шаблонов.
T3 Kernel::KernelVars Этот метод находит пункт меню, который запрашивает пользователь. Создает массив параметров данного пункта меню $moduleVars, в который добавляет параметры окружающей среды из $kernelVars. Параметры окружающей среды $kernelVars, база данных ядра ИВС. Создает параметры окружающей среды для запрашиваемого пункта меню $moduleVars. Задает все параметры группы NODE и TASK.
Т4 Kernel::KernelDown Передает клиенту сформированную HTML-страницу интерфейса ИВС. Закрывает подключение к базе данных ядра ППО. Параметры окружающей среды $kernelVars. Передает html-страницу пользователю.
Т5 Kernel::KernelVars Этот метод находит пункт меню сайта, который запрашивается из фрейма, в полном дереве меню сайта. Создает массив параметров данного пункта меню $moduleVars, в который добавляет параметры окружающей среды из $kernelVars. Параметры окружающей среды $kernelVars. Новые параметры запроса группы REQUEST заданные в теге фрейма. Создает параметры окружающей среды для запрашиваемого из фрейма пункта меню $moduleVars. Задает все параметры группы NODE и TASK для нового узла.
Т6 Kernel::KernelDown Передает клиенту бинарные данные от приложения. Закрывает подключение к базе данных ядра ИВС. Параметры окружающей среды $kernelVars. Выдача бинарных данных

Класс Template предназначен для обработки файлов шаблонов Представления. Все файлы шаблонов Представления для приложений находятся в каталоге tmpl, также там находятся словари языковой локализации, используемые при формировании интерфейсов пользователя. Файлы шаблонов сформированы с помощью языка разметки HTML и ряда оригинальных тегов, обрабатываемых ядром ППО «ATMOS».

Таблица 4. Основные методы обработки дополнительных тегов в классе Template

Метод Назначение метода
Template::TmplDicParser Обрабатывает тег <dic/> - этот тег предназначен для вывода слова или фразы из языкового словаря.
Template::TmplVarParser Обрабатывает тег <var/> - этот тег предназначен для вывода значения одной или нескольких переменных.
Template::TmplIncludeParser Обрабатывает тег <include/> - этот тег предназначен для вставки содержимого внешнего файла внутрь шаблона.
Template::TmplIfParser Обрабатывает тег <if>[<else>]</if> - этот тег предназначен для отображения части шаблона при выполнении определенного условия.
Template::TmplLoopParser Обрабатывает тег <loop></loop> - этот тег предназначен для циклического повторения заданной области шаблона.
Template::TmplMenuParser Обрабатывает тег <menu></menu> - этот тег предназначен для отображения различных типов меню сайта.

Таблица 5. Классы, включенные в ядро ППО «ATMOS»

Классы Назначение класса
Math и Table Предоставляет дополнительный набор математических функций и поддержку таблиц, которые можно использовать в приложениях.
Choice Обеспечивает возможность работы со списком каталогов и экземпляров задач для портфеля пользователя. (Подробнее http://help.saga.iao.ru/intro/cs/task/)
Editor Предоставляет поддержку CMS на страницах ИВС. В некоторые области на странице ИВС можно закрепить статический текст, который можно редактировать с помощью веб-редактора в административной консоли.
SessVars Предоставляет методы для работы с переменными сессии. Методы SessVars::Get, SessVars::Add, SessVars::Del обеспечивают возможность получения, добавления и удаления значения переменной.
UserVars Предоставляет методы для работы с переменными пользователя. Методы UserVars::Get, UserVars::Add, UserVars::Del обеспечивают возможность получения, добавления и удаления значения переменной.
DirVars Предоставляет методы для работы с переменными узла дерева меню сайта. Методы DirVars::Get, DirVars::Add, DirVars::Del обеспечивают возможность получения, добавления и удаления значения переменной.
SetVars Предоставляет методы для работы с данными в портфеле пользователя. Методы SetVars::Get, SetVars::Add, SetVars::Del обеспечивают возможность получения, добавления и удаления значения переменной.
Admin Обеспечивает всю функциональность административной консоли.

2.3 Административная консоль

Программное обеспечение «Административная консоль» является частью ППО «ATMOS». Оно состоит из одного класса содержащего 6 методов. Описание методов дано в Таб. 6.

Таблица 6. Методы класса Admin, определяющие основную функциональность административной консоли

Название раздела Метод Назначение метода
Меню Admin::AdminMenu Данный раздел административной консоли ориентирован на создание дерева меню сайта. С каждым пунктом меню связаны статическая или динамическая страница для отображения при запросе пользователя. Пункт меню имеет ряд атрибутов. Создание, редактирование и удаление пункта меню и его атрибутов выполняется данным методом. (Подробнее http://help.saga.iao.ru/admin/menu/)
Контент Admin::AdminContent Это сервис для двуязыкового формирования пунктов меню, работы со статическими страницами и подключения разных типов контента. (Подробнее http://help.saga.iao.ru/admin/content/)
Приложения Admin::AdminModules В этом разделе подключаются приложения к текущему узлу дерева меню сайта. (Подробнее http://help.saga.iao.ru/admin/modules/)
Доступ Admin::AdminAccess В данном разделе задаются параметры доступа пользователя по группам и узлам дерева меню сайта. (Подробнее http://help.saga.iao.ru/admin/access/)
Управление данными Admin::AdminPortfolio Раздел предназначен для управления параметрами портфеля пользователя. В этом разделе создаются зависимости пунктов меню от наличия данных в портфеле пользователя. (Подробнее http://help.saga.iao.ru/admin/portfolio/dir/ и http://help.saga.iao.ru/admin/portfolio/set/)
Каталог Admin::AdminCatalog Данный раздел административной консоли предназначен для работы с тематическим каталогом предметных областей. (Подробнее http://help.saga.iao.ru/admin/catalogue/)

2.4. Встроенные приложения

Все приложения, как встроенные, так и предметные, представляются классами на языке PHP, расположенными в папке module.

Таблица 7. Встроенные приложения

Правка Класс Назначение класса
Паспорт пользователя Passport Предназначен для регистрации и авторизации пользователя. Так же для зарегистрированных пользователей доступна возможность изменения регистрационных данных.
PassportAdmin Строит список всех пользователей на сайте с возможностью контекстного поиска и фильтрации по группам пользователей. Редактирует регистрационные данные пользователя, включая принадлежность к группе пользователей. Деактивирует или полностью удаляет пользователя. Работает со списком групп пользователей, добавляет и удаляет группы. Это приложение работает в административной консоли и доступно только администраторам портала.
Предметный словарь Glossary Отображает список слов из предметного словаря или значение конкретного слова. Осуществляет контекстный поиск слов в словаре. Фильтрует слова по каталогу предметных областей.
GlossaryAdmin Позволяет добавлять новые слова в предметный словарь, редактировать значения слов и удалять слова из словаря. Данное приложение работает в административной консоли и доступно только администраторам портала.
Новости News Отображает новости для различных сайтов в портале.
NewsAdmin Позволяет добавлять и редактировать новости для различных сайтов в портале. Удаляет новости. Данное приложение работает в административной консоли и доступно только администраторам портала.
Библиография BiblioSearch Осуществляет контекстный поиск по библиографическим ссылкам. При поиски есть возможность фильтрации библиографических ссылок по типу и принадлежности к конкретному сайту в портале.
BiblioX Строит список всех загруженных в базу данных библиотечных ссылок типа X. Отображает их в виде таблицы.
BiblioXAdd Создает новую библиографическую ссылку типа X. Добавляет её в базу данных библиографии.
BiblioXEdit Позволяет редактировать параметры библиографической ссылки в базе данных библиографии.
BiblioXDel Удаляет библиотечную ссылку типа X из базы данных библиографии.Тип X может быть следующим:
  1. Article - Статьи
  2. Monograph - Монографии
  3. Digest - Редактируемые сборники статей, труды конференций и т. п.
  4. Link - Интернет ссылки
  5. Journal – Журналы
  6. Publisher - Издательства

3. Прикладное программное обеспечение ИВС «Молекулярная спектроскопия»

Прикладное программное обеспечение ИВС разделено на две части. Первая часть содержит приложения, реализующее решения информационных задач слоя данных. Вторая часть связана с приложениями, реализующими информационные задачи слоя знаний и информационного слоя. Ниже мы ссылаемся на эти части как на ПО «Данные+» и ПО «Мета+».

3.1. Программное обеспечение слоя данных

3.1.1. Описание структуры

Импорт и сравнение, формирование, обработка и визуализация источников данных требует создания программного обеспечения, реализующего указанные действия. В структуру ПО «Данные+» входят:

  • базы данных, содержащие решения задач спектроскопии, информационные объекты, характеризующие молекулы, спектральные характеристики которых размещены в БД, и цифровая библиотека публикаций, из которых извлечены решения задач спектроскопии, содержащая БД библиографических ссылок;
  • классы и библиотеки функций, выполняющие информационные задачи, ориентированные на импорт, хранение, сравнение, формирование составных данных и визуализацию информационных ресурсов слоя данных;
  • конфигурационные файлы и шаблоны ПО «Данные+» для настройки и обеспечения работы пакетов.

Кроме перечисленных блоков в ПО «Данные+» входят модули и шаблоны, реализуемые по правилам, предлагаемым ядром ППО «ATMOS»:

  • модули для взаимодействия с внешней средой через ядро ППО «ATMOS», организующие web-ориентированное интерактивное взаимодействие с пользователем;
  • - шаблоны визуализации.
3.1.2. Описание приложений

Рассмотрим приложения слоя данных ИВС (см. рис.1). Они созданы для решения следующих задач: импорт опубликованных решений задач спектроскопии, формирование источников данных, сравнение и отображение данных, декомпозиция составных источников данных, представление парных отношений источников данных и т.д. В таблицах, приведенных ниже, указаны классы, входящие в пакеты с указанием функций, выполняемых ими. Описания пакетов представлены в таблицах строками, каждая из которых содержит наименование класса и его назначение при решении информационной задачи. В заголовках таблиц указана информационная задача, с которой связан описываемый пакет.

Таблица 8. Приложения для импорта решений задач (пакеты «DataSource» и «UPLOAD»). (Импорт решений задач спектроскопии).

Пакет Класс Назначение класса
Создание источника данных "DataSource" Х_ds_show Отображает в табличном виде все источники данных, доступные пользователю из базы данных по спектроскопии.
Х_ds_add Предназначен для добавления нового источника данных в базу данных по спектроскопии. Также позволяет установить связь между источником данных и библиографической ссылкой из библиографической базы данных.
Х_ds_edit Позволяет редактировать название источника данных и аннотацию к нему.
Х_ds_del Предназначен для удаления источника данных из спектроскопической базы данных вместе с загруженными данными.
Импорт источника данных "UPLOAD" Х_load_ds Позволяет выбрать источник данных для загрузки.
Х_load_cc Позволяет выбрать вещество и количество колонок в загружаемом файле.
Х_load_cd Предназначен для выбора типа колонок и задания позиций в загружаемом файле.
Х_load_up Осуществляет загрузку файла на сервер. Полученные из файла данные он трансформирует в XML-документ. Далее вызывается XML-парсер, проверяющий документ по схеме для выбранного вещества. Если ошибок нет, полученные данные записывается в базу данных по спектроскопии.

Здесь Х может принимать значение «energy», «transition», «lineprof». Все классы с названиями, начинающимися с energy_*, относятся к задачам спектроскопии T1, T7; c transition _* - T2, T6; с lineprof_* - T3,T5 [2].

Таблица 9. Приложения для отображения, сравнения и экспорта спектральных данных (пакет CREx)

Для задач спектроскопии T2, T6 [12]

Класс Назначение класса
TransitionCompareSelect Осуществляет поиск источников данных для выбранного вещества по контексту, содержащемуся в аннотации или ссылке на публикацию. Для поиска источников данных используются некоторые фильтры: диапазон вакуумных частот и выбор спектральной полосы. Из найденных источников данных позволяет сформировать набор, участвующий в сравнении или табличном отображении данных.
TransitionCompareTable Позволяет отображать в табличном виде данные из набора выбранных источников данных. Осуществляет попарное сравнение источников данных по значениям вакуумных волновых чисел или квантовым числам. Предоставляет возможность экспорта данных из таблицы в виде файлов TXT, Excel, PDF, XML.
TransitionCompareApplet Строит график зависимости коэффициента Эйнштейна от вакуумной частоты для выбранного набора источников данных.

Для задач спектроскопии T3, T5 [12]

LineprofCompareSelect Осуществляет поиск источников данных для выбранного вещества по контексту, содержащемуся в аннотации или ссылке на публикацию. Для поиска источников данных используются некоторые фильтры: уширяющее вещество, диапазон вакуумных частот, интервал значений интенсивности и выбор спектральной полосы. Из найденных источников данных позволяет сформировать набор, который будет участвовать в сравнении или табличном отображении данных.
LineprofCompareTable Позволяет отображать в табличном виде данные из набора выбранных источников данных и осуществляет возможность попарного сравнения источников данных по вакуумным волновым или квантовым числам. Предоставляет возможность экспорта данных из таблицы в виде файлов TXT, Excel, PDF, XML.
LineprofCompareApplet Строит график зависимости интенсивности спектральной линии от вакуумной частоты для выбранного набора источников данных.

Таблица 10. Создание составного источника данных (пакет «CoDS»)

Класс Назначение класса
TransitionMultisetView Отображает в табличном виде мультимножество измеренных переходов.
LineprofMultisetIntensityView Отображает в табличном виде мультимножество измеренных значений интенсивности спектральных линий.
LineprofMultisetHalfwidthView Отображает в табличном виде мультимножество измеренных значений столкновительных полуширин.
LineprofMultisetShiftView Отображает в табличном виде мультимножество измеренных значений сдвига давлением.

Таблица 11. Декомпозиция составных источников данных (пакет DeCoDS) [18].

Классы Назначение класса
decomposition_sel Выбор источника данных для декомпозиции. Предоставляет возможность фильтровать источники данных по типу задачи (профили линий и переходы), веществу, диапазону вакуумных волновых чисел и ключевым словам в описании источника.
decomposition Осуществление декомпозиции. Позволяет пользователю задать параметры декомпозиции, такие как: ошибка определения вакуумных волновых чисел, диапазон изменения вакуумных волновых чисел и тип источников, по которым проводится декомпозиция (экспериментальные и расчетные). Показывает результаты декомпозиции в формате: название источника, число записей в источнике, число совпадений при декомпозиции, ссылка на совпадающие переходы и публикация, к которой привязан источник.
decomposition_equal Табличное представление совпадающих переходов для пары источников. Показывает квантовые числа, вакуумные волновые числа и интенсивность линий для первого и второго источника и их разность.
decomposition_rem Табличный вывод остатка: переходов, содержащихся в раскладываемом источнике, но не имеющих в заданном диапазоне изменения вакуумных волновых чисел совпадений со всеми остальными первичными источниками. Показывает в зависимости от задачи вакуумные волновые числа и интенсивность соответствующего перехода и его квантовые числа.
vars Технический класс содержащий ассоциативные массивы конфигурационных переменных для всех классов пакета DeCoDS, наследующих класс decomposition_vars, содержащийся в vars.php.

Таблица 12. Представление парных отношений источников данных (пакет PaRel)

Классы Назначение класса
EnergyRMSD Строит таблицу попарных отношений для всех источников данных в задачах спектроскопии T1 и T7. В таблице указывается для каждой пары источников данных максимальное значение разности уровней энергии среди всех колебательных состояний или максимальное среднеквадратичное отклонение уровней энергии.
TransitionRMSD Строит таблицу попарных отношений для всех источников данных в задачах спектроскопии T2 и T6. В таблице указывается для каждой пары источников данных максимальное значение разности вакуумных волновых чисел или максимальное среднеквадратичное отклонение вакуумных волновых чисел.
LineprofRMSD Строит таблицу попарных отношений для всех источников данных в задачах спектроскопии T3 и T5. В таблице указывается для каждой пары источников данных максимальное значение разности физических величин или максимальное среднеквадратическое отклонение физических величин. Здесь физическими величинами являются вакуумные волновые числа, интенсивности, столкновительная полуширина и сдвиг давлением.

Класс ViewArray, являющийся частью ПО «Мета+», содержит функции для отображения данных, соответствующих метаданным, кроме этого содержит функции для редактирования этих таблиц данных, визуализации части данных, соответствующих значению свойства. Примером может служить визуализация значения свойства «все переходы, отклоненные экспертами». Гиперссылка связана с числовым значением этого свойства, а переход по гиперссылке дает таблицу, содержащую параметры переходов отклоненных экспертами.

3.2. Программное обеспечение информационного слоя и слоя знаний

3.2.1. Структура

Для формирования, хранения, обработки и визуализации онтологического описания информационных ресурсов необходимо спроектировать и реализовать программное обеспечение, предоставляющее такую функциональность. В основу архитектуры ПО «Мета+» положены предложенные алгоритмы формирования и использования прикладных онтологий. Общая структура ПО «Мета+» включает в себя [19]:

Общая структура ПО «Мета+» включает в себя [19]:

  • онтологическую БЗ, содержащую фактологическую компоненту (ABox) и понятийную компоненту (TBox) прикладной онтологии;
  • прикладные программные интерфейсы POWL (модифицированный) и RAP, созданные сторонними разработчиками и предоставляющие функции доступа к онтологическому хранилищу;
  • классы и библиотеки функций, составляющие ядро ПО «Мета+» и выполняющие задачи формирования, хранения, обработки и визуализации онтологического описания.
  • конфигурационные файлы и шаблоны ПО «Мета+», позволяющие настраивать и организовывать работу различных функциональных блоков ПО.

Кроме перечисленных блоков в ПО «Мета+» входят модули и шаблоны, реализуемые по правилам, предлагаемым ядром ППО «ATMOS»:

  • модули для взаимодействия с внешней средой через ядро ППО «ATMOS», организующие web-ориентированное интерактивное взаимодействие с пользователем;
  • шаблоны для формирования визуализации функциональности, реализуемой модулями.

Кроме взаимодействия с ядром ППО «ATMOS» программное обеспечение «Мета+» работает непосредственно с конфигурационными файлами ИВС и её базой данных. Такая организация работы обеспечивает интеграцию с ИВС и гибкую и адекватную связь при поддержке работающей системы.

3.2.3. Функциональность

Назначение ПО «Мета+» состоит в реализации следующих функций:

  • визуализации массивов данных с учетом их метаданных, например, отображение уникального количества полос в переходах для определенного источника данных;
  • экспорта OWL/RDF моделей из ИВС во внешнюю среду в XML-синтаксисе;
  • визуализации в HTML-формате индивида OWL-класса решения задач по молекулярной спектроскопии воды;
  • импорта OWL/RDF моделей в ИВС;
  • формировании значений не вычисляемых метаданных предметной области для составления индивидов OWL-классов решений задач, используя HTML-формы и их обработку;
  • формировании значений вычисляемых метаданных в предметной области для составления индивидов OWL-классов решений задач, используя автоматический обсчёт имеющихся массивов данных;
  • создании каталога онтологий, используя интерфейс составления индивидов в виде RDF/XML шаблонов.
3.2.3. Пакеты классов В структуру ПО входит несколько десятков классов. Среди них выделим семь классов, а классы, к которым они обращаются, объединим в пакеты . На рис. 4 показано к каким пакетам обращаются базовые классы при их выполнении.

Рис.4. Структура программного обеспечения «Мета+»

Базовые классы связаны с выполнением задач в слое знаний и информационном слое. Класс OntologyURL обеспечивает визуализацию списка онтологий для последующего экспорта и содержит функции для отображения списка доступных URL-онтологий и их комбинаций, класс OWLtoXML предназначен для создания фактологической части онтологии и экспорта OWL/RDF моделей из ИВС во внешнюю среду в XML-синтаксисе, класс QueryMeta реализует автоматическое создание таксономии, отвечающей намерению пользователя, класс ViewArray связан с визуализацией части данных соответствующих значениям свойств (например, все свойства «переходы отклоненные экспертами»), класс ViewMeta обеспечивает визуализацию в HTML-формате индивида OWL-класса решения задач по молекулярной спектроскопии и содержит функции HTML-визуализации индивидов OWL-классов решений задач, класс MetaForm предназначен для реализации задачи описания не вычисляемых значений свойств, класс MetaDigest осуществляет расчет вычисляемых значений свойств и формирует вычисляемые метаданные для составления индивидов OWL-классов решений задач, используя автоматический обсчёт имеющихся массивов данных, класс QueryMeta создает таксономии онтологий, отвечающих определенным намерениям пользователя, используя интерфейс составления индивидов в виде RDF/XML шаблонов.

Опишем пакеты и содержащиеся в них классы, указав основные функции классов.

Пакет mainсодержит классы для выполнения базовых функций программного обеспечения «Мета+». В этот пакет входят классы ConfRead, Check, MetaCheck, MetaDigest, MetaForm, Query, QueryF, Update.

  Классы пакета main Функции класса
1 Update Обновление дайджеста метаданных для информационных источников, которые указаны в передаваемых параметрах. Обновление может происходить как для одного конкретного источника, так и для группы источников. Группировка может происходить по решаемым задачам одного класса, по всему диапазону источников, по исключающим параметрам; обновление индивидов онтологии (ABox) для информационных источников, которые задаются в передаваемых параметрах. Обновление может происходить как для одного конкретного источника, так и для группы источников. Группировка может происходить по решаемым задачам одного класса, по всему диапазону источников, по исключающим параметрам; обновление онтологических структур (TBox) прикладной онтологии на новую версию, указанную в передаваемых параметрах.
2 QueryF Управление пулом объектов класса Query для доступа к базе данных
3 Query Управление доступом к базе данных, расширяя и специфицируя стандартные возможности под конкретные нужды ПО «Мета+».
4 ConfRead Чтение конфигурационного файла параметров окружения выполняемого модуля в ИВС
5 Check проверка передаваемых параметров и установка необходимых пользовательских данных для работы с ПО «Мета+»; управление правами доступа к метаданным дайджеста и индивидам OWL-классов решений задач прикладной онтологии; чтение из базы данных дайджеста метаданных с различными параметрами доступа
6 MetaCheck поддержка преобразования индивидов онтологии (ABox) под разные версии онтологических структур (TBox) прикладной онтологии; добавление, удаление индивидов OWL-классов информационных источников, по уникальному идентификатору
7 MetaDigest преобразование метаданных из дайджеста в семантические метаданные прикладной онтологии молекулярной спектроскопии по заданному XML-документу; обработка вычисляемых метаданных, полученных путём программной обработки данных решений задач, и запись их в дайджест метаданных; изменение прав доступа к метаданным дайджеста и индивидам OWL-классов решений задач.
8 MetaForm обработка не вычисляемых метаданных, полученных из HTML-форм, и запись их в дайджест метаданных

Пакет conf содержит конфигурационные настройки программного обеспечения «Мета+» и классы для их обработки.

  Классы пакета conf Функции класса
1 DataBase осуществляет доступ к системе управления базой данных для различных баз данных
2 NameConf предоставляет конфигурации параметров задач предметной области, доступ к словарям ИВС для различных языков
3 RealPath предоставляет доступ к реальным путям в ИВС
4 TaskConf реализует парсер XML-документа, в котором задаются правила преобразования метаданных из дайджеста в семантические метаданные онтологии

Пакет digest содержит классы, реализующие функции построения дайджестов метаданных.

  Классы пакета digest Функции класса
1 Digest содержит общие методы для работы с базой данных по молекулярной спектроскопии, специфицируемые в классах DataDigest и RMSDeviation
2 DataDigest специфицирует построение дайджеста метаданных по источникам информации.
3 RMSDeviation специфицирует построение дайджеста метаданных по среднеквадратическим отклонениям
4 DigestF является абстрактным классом–фабрикой, специфицируемым в классах DataDigestF, RMSDeviationF, IdentificationF, используемых для создания классов производных от DataDigest, RMSDeviation, Identification соответственно
5 Identification содержит общие методы для работы с набором квантовых чисел, специфицируемые в классах QuantumNumbers и Transition
6 QuantumNumbers содержит общие методы для работы с набором квантовых чисел, специфицируемые в классах QuantumNumbers и Transition
7 Transition специфицирует манипуляции с квантовыми числами, используемыми в идентификации переходов
8 EnergyDigest, TransitionDigest, LineprofDigest являются конкретной реализацией функций манипуляции базой данных по молекулярной спектроскопии для задач по уровням энергии, переходам, профилям линий, соответственно
9 EnergyRMSD, TransitionRMSD, LineprofRMSD являются конкретной реализацией функций манипуляции базой данных по среднеквадратическим отклонениям для задач по уровням энергии, переходам, профилям линий, соответственно
10 EnergyIdent, TransitionIdent, LineprofIdent являются конкретной реализацией функций манипуляции квантовыми числами для задач по уровням энергии, переходам, профилям линий, соответственно
11 DBDependence находится в подпакетах пакета digest и содержит статическую информацию по конкретной базе данных saga2, используемой для работы с молекулярной спектроскопией воды. Кроме этого класса в подпакете saga2 может переопределяться любой другой класс из списка EnergyDigest, TransitionDigest, LineprofDigest, EnergyIdent, TransitionIdent, LineprofIdent, EnergyRMSD, TransitionRMSD, LineprofRMSD с учётом зависимости от конкретной реализации базы данных.

Пакет exception содержит классы возможных пользовательских исключений программного обеспечения «Мета+». В этот пакет входят классы CatalogException, DuplicateException, FormException, ModelException, NullException, ParseException.

Пакет ontology содержит классы работы с прикладными онтологиями предметной области. В этот пакет входят классы Connection, FullPath, MetaModel, OWLStoreT, OWLStoreCorrelation, OWLStoreFactory.

  Классы пакета ontology Функции класса
1 Connection осуществляет доступ к системе управления базой знаний через прикладную библиотеку pOWL
2 FullPath создаёт полные пути к пространствам имён прикладных онтологий, содержащих индивиды OWL-классов решений задач, создаёт доступ к реальным путям XML-шаблонов индивидов OWL-классов решений задач в ИВС
3 MetaModel реализует доступ к модели онтологии программы через прикладную библиотеку pOWL, осуществляет парсинг URL-адресов для составления онтологий, осуществляет преобразование онтологической модели программы в XML-представление
4 OWLStoreT содержит функции для составления, чтения, удаления индивида решения задачи
5 OWLStoreCorrelation содержит функции для составления, чтения, удаления индивида среднеквадратических отклонений решений задач

Пакет template содержит классы парсеров XML-шаблонов индивидов OWL-классов.

  Классы пакета template Функции класса
1 RdfParserT является оберткой для класса RdfParser прикладной библиотеки RAP, переопределяя некоторые её функции
2 VarsTemplate является реализацией SAX парсера и осуществляет разбор XML-шаблона индивида OWL-класса, создавая ассоциативный массив переменных XML-шаблона
3 ParseTemplate является расширением класса VarsTemplate и осуществляет составление XML-представления индивида OWL-класса

Пакет xsd содержит классы для построения XML-документов с данными из массивов данных и их валидации по XML-схеме.

  Классы пакета xsd Функции класса
1 DocumentBuilder создаёт XML-документ, используя XML-схему в качестве источника информации о структуре
2 Parser составляет единую XML-схему из множества мелких XML-схем и осуществляет валидацию XML-документа по единой XML-схеме
3 SubstanceFile содержит функции для динамического создания корневых XML-схем по молекулам, хранящимся в системе

Пакет task содержит XML-шаблоны индивидов решений задач, XML-шаблоны индивидов среднеквадратических отклонений решений задач, XML-документ, в котором задаются правила преобразования метаданных из дайджеста в семантические метаданные онтологии. Шаблоны разбиты по версиям онтологий.

Пакет thesaurus содержит классы работы со словарем ИВС.

  Классы пакета thesaurus Функции класса
1 ParseModel анализирует программную модель онтологии, выделяя концепты и отношения в ней, классифицируя их описания по разным языковым меткам
2 ModelList содержит функции для загрузки, редактирования, удаления прикладных онтологий в ИВС и интеграцией со словарем ИВС
3 Catalog содержит функции для интеграции прикладных онтологий в словарный каталог ИВС
Term содержит функции для интеграции концептов и отношений онтологий в словарь терминов ИВС

Пакет util содержит класс InChI, осуществляющий создание InChI и InChIKey для ряда атмосферных молекул, находящихся в ИВС.

Пакет test содержит классы пользовательских тестов программного обеспечения «Мета+». В этот пакет входят 18 классов тестов, созданных с использованием прикладной библиотеки PHPUnit.

3.3. Реализация программного обеспечения

Основная реализация программного обеспечения осуществлена на языке РHP 5 [20. Этот язык был выбран, исходя из следующих посылок:

  • полноценная поддержка объектно-ориентированного программирования;
  • наличие существующих API для работы с RDF/OWL.

Программное обеспечение использует библиотеки с открытым кодом для работы с RDF и OWL. Для работы с RDF используется RDF API for PHP (RAP) [21] под лицензией LGPL [22], а для работы с OWL используется API pOWL [23] под лицензией GPL [24], основанное на API RAP.

Данное API включает в себя:

  • API для работы с RDF графами как множеством утверждений;
  • API для работы с RDF графами как множеством ресурсов;
  • интегрированный RDF/XML парсер;
  • интегрированный RDF/XML сериализатор;
  • хранение моделей в памяти или БД;
  • поддержку языка запросов SPARQL.

Программный интерфейс позволяет работать с RDF графами, используя две различных программных модели. Первая модель MemModel хранит RDF граф в памяти, а вторая DbModelх - в реляционной БД.

В RAP в качестве абстрактного слоя по работе с реляционными БД используется API ADOdb Database Abstraction Library for PHP [25], которое позволяет абстрагироваться от конкретной БД.

pOWL [24] – Web-ориентированный RDFS/OWL публикатор, браузер, редактор. Данное API состоит из следующих компонентов:

  • RDF API for PHP - независимый проект;
  • RDFS и OWL API для PHP - основная часть pOWL;
  • фреймворк для просмотра и редактирования онтологий.

Процесс реализации приложений сопровождался предварительным тестированием основных функций классов, постоянной итерационной интеграцией с ИВС и осуществлением рефакторинга [26]. Для реализации тестирования использовалась сторонняя библиотека PHPUnit [27], представляющая собой фреймворк с открытым исходным кодом для разработки с применением тестирования на языке программирования PHP.

Существующая система управления базами данных MySQL [28] в ИВС по молекулярной спектроскопии предполагает использование возможностей стандартного SQL по оптимизации запросов к БД. Это используется для формирования метаданных при осуществлении запросов к массивам данных, используемым в ИВС. Наличие существующей СУБД в ИВС явилось основой для использования её в качестве хранилища онтологической базы знаний по молекулярной спектроскопии.

Кроме языка PHP для реализации приложений использовался язык JavaScript [29]. В отличие от PHP, который является серверным скриптовым языком, язык JavaScript является интерпретируемым скриптовым языком и используется преимущественно на стороне клиента. Для составления полноценного приложения использовалась связка JavaScript и PHP, вернее AJAX и PHP. Для работы с асинхронным JavaScript’ом, использовалась стандартная библиотека jQuery[30]. Она распространяется в виде программного обеспечения с открытыми исходными кодами.

Языком для разметки информации в ПО является язык XML [31]. В частности на этом языке создавались конфигурационные файлы и шаблоны для генерации индивидов OWL-классов решений задач. Представление понятийной части прикладной онтологии (TBox) осуществлялось в XML-синтаксисе OWL/RDF моделей.

Заключение

В работе описаны результаты работ по созданию программного обеспечения ИВС по количественной спектроскопии с трехслойной архитектурой. Оригинальными частями программного обеспечения являются

промежуточное программное обеспечение «ATMOS», обеспечивающее обработку запроса от клиента к серверу и формирования экстенсионала данных для обеспечения корректной обработки;
прикладное программное обеспечение «Данные+» и «Мета+», интегрированное с ППО «ATMOS» с целью решения 12 информационных задач в рамках ИВС трехслойной архитектуры;
ПО «Данные+», относящееся к слою данных, позволяет импортировать в ИВС решения шести типов задач количественной спектроскопии, создавать составные источники данных трех типов, предназначенные для формирования экспертных данных по спектроскопии, визуализировать источники данных для сравнения и экспорта, проводить декомпозицию составных источников данных;
ПО «Мета+», относящееся к информационному слою и слою знаний ИВС, обеспечивает
- вычисление значений метаданных источника информации о решении задачи
- создание индивидов, характеризующих источники информации, являющихся экземплярами OWL-класса;
- использование индивидов при работе пользователя с решениями предметных задач посредством просмотра, попарного сравнения физических величин (отклонение, среднеквадратичное отклонение) и атрибутного и семантического поиска;
- перевод кода прикладной онтологии из внутреннего представления в XML-синтаксис для практической работы с ней редакторов онтологий и машин вывода.

Реализация программного обеспечения произведена с использованием современных подходов к созданию Web-ориентированных приложений, используя существующие прикладные интерфейсы (pOWL, RAP, jQuery).

Авторы благодарны РФФИ за поддержку работы (гранты 05-07-90196-в, 06-07-89201-а, 08-07-00318-а, 11-07-00660-а)

Литература

1. Гордов Е.П., Атмосферный веб портал / Гордов Е.П., ДеРуддер А., Ипполитов И.И., Крутиков В.А., Лыкосов В.Н., Михалев А.В., Фазлиев А.З., Федра К., // Сборник трудов 3 Всероссийской конференции по электронным библиотекам, Петрозаводск 11-13 сентября 2001, с. 174-180

2. Ахлестин А.Ю., Интернет-портал о свойствах атмосферы. Структура и технологии / Ахлестин А.Ю., Гордов Е.П., DeRudder A., Крутиков В.А., Лыкосов В.Н., Михалев А.В., Фазлиев А.З., Fedra K., // Труды Всероссийской конференции “Математические и информационные технологии в энергетике, экономике и экологии”, Ч.2, Иркутск, 2003, с. 247-254.

3. Ахлестин А.Ю., Промежуточное программное обеспечение для Интернет ориентированных ИВС / Ахлестин А.Ю., Фазлиев А.З. // Труды 12 Байкальской Международной конференции “Информационные и математические технологии”, Иркутск, ИСЭМ СО РАН, Ч. 2, 2007, с.197-203.

4. Gordov E.P., Web portal on environmental sciences “ATMOS”/ Gordov E.P., Lykosov V.N., Fazliev A.Z., // Adv. Geosci., V.8, P.33–38, 2006

5. De Roure D., A Future e-Science Infrastructure / De Roure D., Jennings N., Shadbolt N., //Report commissioned for EPSRC/DTI Core e-Science Programme, 2001, 78p.

6. Ахлёстин А.Ю. Информационная система трехслойной архитектуры / Ахлёстин А.Ю., Лаврентьев Н.А., Привезенцев А.И. Фазлиев А.З. // Труды семинара «Наукоемкое программное обеспечение». 2011. Новосибирск, C.38-43.

7. Guarino N. Formal ontology in information systems / Guarino N. // Proc. of Conf. on Formal Ontology in Information Systems (FOIS'98). - Trento, 6 – 8 June 1998. Amsterdam: IOS Press, 1998. P. 3-15.

8. Привезенцев А.И., Базы знаний для описания информационных ресурсов в молекулярной спектроскопии 3. Базовая и прикладная онтологии / Привезенцев А.И., Царьков Д.В., Фазлиев А.З. // Электронные библиотеки, 2012, Т. 15, В.2. [Электронный ресурс]. – Режим доступа: http://elbib.ru/index.phtml?page=elbib/rus/journal/2012/part2

9. Проект «Распределенная информационная система "Молекулярная спектроскопия"», грант РФФИ 05-07-90196,

10. Проект «Промежуточное программное обеспечение, средства создания и поддержки информационно-вычислительных систем», грант РФФИ 06-07-89201

11. Проект «Интернет доступная информационная система по молекулярной спектроскопии, основанная на знаниях», грант РФФИ 08-07-00318-а

12. Лаврентьев Н.А., Базы знаний для описания информационных ресурсов в молекулярной спектроскопии 2. Модель данных в количественной спектроскопии / Лаврентьев Н.А., Привезенцев А.И., Фазлиев А.З. // Электронные библиотеки, 2011, Т. 14, В.2. [Электронный ресурс]. – Режим доступа: http://elbib.ru/index.phtml?page=elbib/rus/journal/2011/part2

13. Resource Description Framework (RDF):Concepts and Abstract Syntax // Editors: Graham Klyne, Jeremy J. Carroll [Электронный ресурс] – Режим доступа: http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/

14. OWL Web Ontology Language Overview // W3C Recommendation, edited by D.L. McGuinness, F. van Harmelen. 2004 [Электронный ресурс] – Режим доступа: http://www.w3.org/TR/owl-features/.W3C Recommendation.

15. Гордов Е.П., Атмосферно-оптические процессы: простые нелинейные модели / Гордов Е.П., Родимова О.Б., Фазлиев А.З. - Томск, Из-во ИОА СО РАН, 2002, 252С.

16. Промежуточное программное обеспечение “ATMOS”, [Электронный ресурс]. – Режим доступа:http://atmos.iao.ru/middleware/

17. Лаврентьев Н.А., Учет вмешательства в системах управления потоками работ / Лаврентьев Н.А., Фазлиев А.З. // Вычислительные технологии, спец. выпуск №3, 2008, Т.13, С.12-18.

18. Лаврентьев Н.А., Сравнение спектральных массивов данных HITRAN и GEISA с учетом ограничения на опубликование спектральных данных / Лаврентьев Н.А., Макогон М.М., Фазлиев А.З. // Оптика атмосферы и океана, 2011, Т.24, № 04, С.279-292.

19. Привезенцев А. И., Организация онтологических баз знаний и программное обеспечение для описания информационных ресурсов в молекулярной спектроскопии, Дисс. на соис. уч. ст. канд. тех. наук, Томск, 2009.

20. Гутманс Э. PHP 5. Профессиональное программирование / Э. Гутманс, С. Баккен, Д. Ретанс. – СПб.: Символ-Плюс, 2006. – 704С.

21. RAP - RDF API for PHP Home Page/ Freie Universitat Berlin. 2007. [Электронный ресурс]. – Режим доступа: http://sites.wiwiss.fu-berlin.de/suhl/bizer/rdfapi/.

22. GNU LESSER GENERAL PUBLIC LICENSE, Version 3, 29 June 2007, [Электронный ресурс]. – Режим доступа: http://www.gnu.org/copyleft/lesser.txt

23. pOWL - Semantic Web Development Plattform Home Page / Universitat Leipzig. 2007. [Электронный ресурс]. – Режим доступа: http://sourceforge.net/projects/powl.

24. GNU General Public License, [Электронный ресурс]. – Режим доступа:http://www.gnu.org/copyleft/gpl.html

25. ADOdb Database Abstraction Library for PHP (and Python), [Электронный ресурс]. – Режим доступа: http://adodb.sourceforge.net/

26. Фаулер М. Рефакторинг: улучшение существующего кода / М. Фаулер. – СПб.: Символ-Плюс, 2003. – 432С.

27. PHPUnit, http://www.phpunit.de/

28. Suehring, S. MySQL Bible / S. Suehring. – New York: Wiley, 2002. – 686P.

29. Goodman D. JavaScript Bible / D. Goodman, M. Morrison. – Indianapolis: Wiley, 2004. – 1236 P.

30. JavaScript Library, [Электронный ресурс]. – Режим доступа: http://jquery.com/

31. Harold E. R. XML 1.1 Bible / E. R. Harold. – Indianapolis: Wiley, 2004. – 102P.

Об авторах

Ахлёстин Алексей Юрьевич – программист Центра интегрированных информационных систем Института оптики атмосферы им. В.Зуева СО РАН, E-mail: lexa@iao.ru;

Козодоев Алексей Викторович – младший научный сотрудник Центра интегрированных информационных систем Института оптики атмосферы им. В.Зуева СО РАН, E-mail: kav@iao.ru;

Лаврентьев Николай Александрович - научный сотрудник Центра интегрированных информационных систем Института оптики атмосферы им. В.Зуева СО РАН, E-mail: lnick@iao.ru;

Привезенцев Алексей Иванович - к.т.н., научный сотрудник Центра интегрированных информационных систем Института оптики атмосферы им. В.Зуева СО РАН, E-mail: remake@iao.ru;

Фазлиев Александр Зарипович - к.ф.-м.н., заведующий Центром интегрированных информационных систем Института оптики атмосферы им. В.Зуева СО РАН


Последнее обновление страницы было произведено: 2012-05-28

Все предложения и пожелания по содержанию и структуре портала направляйте по адресу rdlp@iis.ru