В библиотеку

Источник

Е.А. Шалфеева

ВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ОНТОЛОГИЙ

ПРИ РАЗРАБОТКЕ И СОПРОВОЖДЕНИИ ПРОГРАММНЫХ СИСТЕМ

 

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

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

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

 

 

1. Виды онтологий и цели их использования в программной инженерии

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

Онтология предметной области нередко используется как общий концептуальный базис для разработки приложений в предметной области для эффективного компактного представления системы знаний конкретной предметной области [Тарасов 2006; Taboada 2002]. При этом дополнительно (или как часть этой онтологии) используется онтология обрабатываемых данных, она представляет структурированные входные и выходные информационные ресурсы прикладных задач, в том числе формируемые экспертами входные данные [Привезенцев 2007; Taboada 2002].

В такой же роли (как общий концептуальный базис) используют онтологии инженерии  для разработки инструментария [Рогальчук 2009, Anquetil 2006; González-Pérez 2006; Ruiz 2006]. Для целей эффективного управления проектируемой системой используют онтологию жизненного цикла разработки и сопровождения системы.

Современным предназначением онтологий при использовании их «в качестве составляющих информационной системы» являются «развитие системы и получение новых знаний либо упорядочение существующих, проверка их непротиворечивости» [Тарасов 2006].

И, разумеется, от онтологий ожидают, что в них однозначно определены термины, необходимые коллективу разработчиков. Назначение прикладной онтологии – дать все необходимые термины для моделирования знаний, требуемых для конкретного приложения, и позволить эксперту проблемной области использовать тот же самый язык, который принят в приложении, с которым он работает [Кудрявцев 2008; Левашова 2002].

1.1 Цели использования онтологий

Почти всегда начальный шаг моделирования в разработке систем, основанных на знаниях, включает детальный онтологический анализ для прояснения структуры и семантики представления предметных знаний   [Taboada 2002, Москаленко 2007].

Более распространенным является использование онтологий для разработки приложений, работающих со структурированными входными и выходными информационными ресурсами [Taboada 2002, Загорулько 2010, Москаленко 2007]. Онтология как структура ресурсов (данных и знаний) используется для машинной систематизации и интерпретации знаний, для интеграции знаний в другие смежные предметные области, а также организации семантического поиска. [Привезенцев 2007]. Онтологии используются как инструменты хранения данных и знаний [Манцивода 2009, Москаленко 2007]. Онтологии предметной области  используются на этапе проектирования, особенно для моделирования данных [Oliveira 2006].

Если помимо онтологии предметной области  рассматривается и так называемая онтология задач, то последняя становится отправной точкой для разработки требований к программному обеспечению [Oliveira 2006].

Современные средства поиска информации в базах данных или в системе знаний (в справочных и обучающих системах) также опираются на онтологии [Тарасов 2006]; интеллектуальные планировщики, обращаясь к онтологии задач, строят планы решения, выбирают из репозитария необходимые модули и последовательно передают их на исполнение [Загорулько2010]; гибкие открытые распределенные агентные системы для организации коммуникации между неагентными программными при­ложениями также используют онтологии [Батищев 2002].

1.2. Содержание и структура используемых онтологий

Чаще всего онтологии представляют таксономии сущностей предметной области, именованные (предметные) связи между сущностями, кардинальности этих связей, отношения агрегирования сущностей из их частей, а иногда и атрибутов [Stojanovic 2004, Taboada 2002]. Иногда онтологии совмещены с базами знаний и содержат наборы фактов [Taboada 2002].

Прикладные онтологии по молекулярной спектроскопии охватывают терминологию по описанию задач молекулярной спектроскопии, включающую классы InformationSource, CompositeInformationSource, PrimaryInformationSource (источники информации, содержащие решения  задач спектроскопии) и их экземпляры - факты о физических величинах относящиеся к одной молекуле и одной публикации [Привезенцев 2007]. Онтология справочников организационной структуры вуза включает такие концепты (понятия), как вуз, корпус, факультет, кафедра, специальность, группа, студент, преподаватель, аудитория. В данном случае (см. рис. 1) преобладают агрегирующие типы связей между сущностями, а языком представления служит UML (иерархии вида «часть-целое») [Тарасов 2006].

Рис.1. Фрагмент онтологической модели организационной

структуры вуза

Нередко онтология является совокупностью взаимосвязанных подонтологий. Часто в каждой подонтологии преобладают таксономические связи, а сущности из разных подонтологий участвуют в предметных связях или агрегировании [Stojanovic 2004, Taboada 2002, Рогальчук 2009, Anquetil 2006, González-Pérez 2006]. В других случаях под онтологией понимают и мета-онтологию, определяющую язык для описания знаний, и сами знания, специализирующие понятия из мета-онтологии [Stojanovic 2004]. Каждая часть многомодульной медицинской онтологии  (тесты, наблюдения, лекарства) – таксономия сущностей, имеющих свойства, и предметно-ориентированные связи [Taboada 2002]. В системах тестирования, разрабатываемых на основе онтологий, каждая отлдельная онтология представляет конкретный тест: объекты с конкретными данными о вопросах и ответах в рамках теста [Манцивода 2009].

Такое устройство онтологий позволяет использовать для их формального представления и хранения такие языки, как rdf, kaon [Stojanovic 2004], DAML+OIL [Taboada 2002], OWL DL [Привезенцев 2007, Манцивода 2009]. На этих языках большая часть сущностей (классов) прикладных онтологий задач построена с помощью ограничений на их свойства. При этом в онтологии ограничения могут соответствовать математическим моделям представляемых объектов [Привезенцев 2007]. Использование таких онтологий возможно с помощью любого соответствующего редактора онтологий. Например, создание и поддержка явной модели предметной области происходит с помощью инструментария Protege [Рогальчук 2009]. А для машинной обработки онтологических баз знаний OWL DL применяются машины вывода, основанные на дескриптивной логике, например FaCT++, Pellet [Привезенцев 2007].

Онтология задач  (task ontology) специфицирует объекты, деятельности, состояния и необходимые для выполнения задач связи среди объектов. Частью такой онтологии могут быть формулы для вычисления значений одних объектов или их состояний от других [Oliveira 2006].

Понятие онтологии, определяемое в [Guarino 1995, Silvonen 2002] и распространенное требование «онтология должна содержать концептуальные, а не эпизодические знания» [Левашова 2002] позволяет различать собственно онтологии от онтологических баз знаний, включающих факты, относящиеся к решаемым задачам. Это особенно важно, когда приходится делать выбор технологии использования онтологий при разработке интеллектуальных систем. Одни технологии подразумевают применение собственно онтологий, другие - онтологических баз, включающих, в частности, конкретные факты предметной области. 

В большинстве случаев, как видно, для представления онтологий достаточно языков, таких как RDF, OWL или OIL, и простых средств контроля целостности хранимых онтологий и знаний.

1.3. Способы использования онтологий

При детальном онтологическом анализе: на начальном этапе разработки онтология используется аналитиками и проектировщиками для прояснения структуры предметных знаний  (the domain knowledge), семантики их представления [Taboada 2002, Москаленко 2007].

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

Для машинной систематизации и интерпретации знаний: онтологии, описывающие структуру искомой информации, используются для систематизации этой информации с учетом ее состава и характеристик отдельных частей, для  указания недостоверных данных, выявленных экспертом предметной области [Привезенцев 2007]. Созданные онтологические базы знаний по молекулярной спектроскопии используются как универсальный формат обмена знаниями. Семантический поиск по базе знаний можно осуществлять с помощью запросов, таких, как: «найти все источники информации по основному изотопомеру воды, где минимальный уровень энергии находится в интервале между 5000 и 10000» [Привезенцев 2007].

Как инструменты хранения данных и знаний: онтологии используются как интеллектуальные инструменты хранения информации [Манцивода 2009, Москаленко 2007]. Онтологии задают ограничения, не позволяющие нарушить целостность хранимой информации при ее редактировании.

Для разработки функциональных требований к программному обеспечению: онтология задач  используется для идентификации понятий задачи, т.е. ролей, которые будут выполняться, а онтология предметной области - для идентификации понятий предметной области, необходимых для выполнения задачи, и их свойств (properties). Например, для задачи конфигурирования систем идентифицированы роли «параметр», «зависимость между параметрами», «формула вычисления параметра», «ограничение (на значение)» (показывающее, как проверять значения связанных параметров), «исправление» (определяющее, как изменить параметры для восстановления ограничений), «зависимое исправление», «параметр с заданным значением» [Oliveira 2006]. Когда задача начинает применяться в специфическом приложении (in a specific application), вовлекаются понятия предметной области, и задача декомпозируется на части – элементарные и составные подзадачи. Применяется метод разрешения задачи (problem solving method, PSM), он  определяет, как можно декомпозировать задачу, как управлять порядком выполнения этих подзадач, и какие требования диктуются знаниями предметной области (the domain knowledge)  [Oliveira 2006]. Кроме того, есть «онтологический подход к проектированию ПС», отдельными шагами которого являются преобразование онтологической модели (онтологий предметных областей и прикладных онтологий) в логическую модель ПС, разработка онтологии задач предметных областей, отображение онтологий логической модели ПС на онтологию задач (по описанию прецедентов использования), верификация логической модели ПС на основе прецедентов использования [Тарасов 2006].

Для моделирования и проектирования данных: онтология предметной области  принимается как предложение (suggestion) для первого эскиза проекта (for the first draft of the design). Рекомендуется переход от ontological structures к некоторой объектно-ориентированной модели данных, где ключевой единицей является сложно структурированный информационный объект, поддерживающий различные атрибуты [Виттих 2010, Oliveira 2006]. Для перевода в реляционное представление используется стереотип Table (таблица) для выделения концептов, имеющих отображение на таблицы реляционных баз данных, и стереотипы PK и FK (первичный и внешний ключи) [Виттих 2010]. На этом этапе также  используют аксиомы из онтологии предметной области  (the axioms of the domain theory) для определения правил целостности проекта данных (the integrity rules of the data design), таких как целостность области значений для атрибутов (domain integrity for attributes) и семантическая целостность (semantic integrity). Например, аксиома, формализующая,  что «All pulses are arrhythmic, rhythmic or bisferious» рассматривается как целостность области значений для атрибута “type of pulse”. Семантическая целостность представляет некоторые domain restrictions для конкретных представителей сущности (the entity instances) [Oliveira 2006]. Подтверждением распространенности онтологического подхода к проектированию является пример из студенческих работ 2007-2008 гг. кафедры ПО ЭВМ ДВГУ. Здесь онтология “Управление персоналом” представляет объекты предметной области вместе с их составными частями и атрибутами (см. Приложение 1).

На рис. 2 приведены примеры определений  атрибутов для  объектов предметной области и графовое представление фрагмента онтологии предметной области, которое является партономией (представлением связей часть – целое). Для целей проектирования программных систем такая партономия определяет структуру базы знаний и базы данных (БД), в частности, число нетерминальных вершин партономии – число таблиц, каждый терминал – поле в таблице и т.п.

 

Рис.2. Фрагмент схемы БД для хранения знаний программной системы, решающей задачи управления персоналом

 

Для поиска информации: используют онтологии предметной области, содержащие явные ограничения на концепты (заданные классы), зависимости между концептами. Такие ограничения позволяют программным агентам или приложениям (например, сервису рассуждений ReasoningEngine) автоматически сформировать соответствующие запросы к сервисам доступа к данным, сформировать коллекцию индивидуумов заданного понятия (например,  «Пенсионеры, получающие меньше 1000»). Получив запрос, сервис рассуждений, на основе онтологий (таких, как SModel, XMetaData, YMetaData) формирует запросы к соответствующим сервисам доступа (в данном случае - X:DAS_JDBC и Y:DAS_JDBC), которые выполняют поиск в подключенных базах данных и возвращают индивидуумов для своих онтологий, удовлетворяющих запросу [Виттих 2010]. В процессе решения задач поиска интеллектуальные агенты могут для совместного использования  выявлять в библиотеках онтологии, относящиеся к нужной проблеме, или такие, в которых определено искомое понятие; далее Агент формирует к найденным онтологиям запросы для доступа к искомому термину [Левашова 2002]. Агенты, осуществляющие коммуникацию между приложениями, используют онтологии и сервисы онтологии в тех ситуациях, когда (в «переговорах» агентов-посред­ников и агентов-оболочек приложений) встречаются не ин­терпретируемые слова, и приходится запрашивать перевод слова [Батищев 2002].

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

2. Перспективные направления использования онтологий

Свой вклад в обеспечение сопровождаемости разрабатываемых программных систем делает использование онтологий предметной области и задач на этапах построения моделей функциональности, данных, архитектуры [Перцовский 2007, Москаленко 2007]. 

Более перспективное предназначение онтологий – использовать их при управлении изменениями в интернет-приложениях. С этой целью применяют онтологии предметной области  вместе с онтологией задач, как в проекте по  разработке электронных гос-услуг [Stojanovic 2004]. Здесь важно своевременно распространять изменения от бизнес-правил к сервисам. Например, при добавлении новой поправки в закон, надо найти и упорядочить сервисы, реализующие закон, к которому делается поправка. Современная система отслеживания изменений должна позволять эксперту выполнять все такие изменения эффективно, с минимумом добавлений,  и автоматически обеспечивать согласованность, не оставляя противоречивых предусловий для выполняемых действий [Stojanovic 2004].

Нельзя не отметить создание онтологий собственно сопровождения как инженерного процесса программной инженерии и использование этих онтологий при разработке соответствующего инструментария. Онтологии, которые описывают знания инженерии, используют для разработки систем управления задачами (инструментария) инженерной предметной области, и в процессе их эксплуатации - для управления этими задачами. Т.е. для разработки инструментария, в том числе проблемно-независимого, необходима онтология инженерной предметной области. Например, в сфере сопровождения программ имеется соответствующая онтология и знания (the knowledge relevant to the practice of software maintenance) [Anquetil 2006]. А при реализации обратной трассировки такой онтологии недостаточно: среда разработки должна быть интегрирована с системами управления задачами и отслеживания сообщений об ошибках, представленных [поднтологией описания ошибок [Рогальчук2009].

2. 1. Содержание и структура используемых онтологий

2.1.1. Применение для сопровождения

В предметной области "Хореография танца в стиле фанк" в  онтологию последовательности движений входят термины, описывающие множество видов элементов последовательности движений (с детальным описанием поз и позиций), структуру последовательности (моделирующей процесс, состоящий из конечного числа шагов), взаимосвязь её элементов и ритмический рисунок. Онтология исполнителя (танцора) включает термины, описывающие части тела человека, существенные при описании движений, поз и позиций; ограничения на движения, позы и позиции, накладываемые анатомией человека, и связь этих ограничений с элементами последовательности движений. Группа онтологий этой предметной области использует пять видов математических объектов: множество имён, кортеж элементов, множество кортежей, альтернативная конструкция и конечная последовательность  [Перцовский 2007].

2.1.2. Применение для управления

В состав группы онтологий для электронного правительства входят мета-онтологии, определяющие схему описания сервисов - услуг электронного правительства, и онтологии услуг (Service Ontologies), которые описывает конкретные сервисы, специализируя понятия из Meta Ontology. Онтологии предметной области содержат специфические знания, моделируют конкретные услуги и описывают данные, необходимые для этих услуг (например, входной информацией для элементарной услуги получения водительского удостоверения (driving licence service) является свидетельство о рождении (birthday certificate)). Онтология предметной области «законы» (Legal Ontology) - иерархия терминов-сущностей, в числе которых «закон», заголовки разных уровней, поправка (Amendment), определенные связи между ними и атрибуты этих сущностей. Основная онтология в данной группе — Онтология Услуг – представляет связи между элементарными (atomic) действиями сервисов, упорядоченные с помощью указателей на следующий\ предыдущий, связи действий с такими сущностями как входы, выходы, пред- и пост-условия, бизнес-правила и программные компоненты [Stojanovic 2004].

Особое значение имеет онтология жизненного цикла (ЖЦ, Lifecycle Ontology) - описание процесса проектирования услуг, проясняющее, какие проектные решения (design decisions) по каким причинам приняты, и какова их значимость для дальнейших разработки и сопровождения. Она описывает информационный поток и процесс принятия решений и  связи с затрагиваемыми частями сервиса и с требованиями, которые  мотивируют эти решения. Процесс проектирования рассматривается как  последовательность состояний проекта сервиса. Переход между состояниями «происходит» из-за проектного решения (деятельности, активности) проектировщика. Поэтому главным является понятие «проектное решение». Переход между состояниями моделируется через свойство hasPreviousDesignDecision, связь между «проектным решением» и требованием - через свойства isBasedOn и requires. Соответствие (свойство hasRelevance) «проектного решения» описывает, насколько оно может выполнить требования (the requirements), другое свойство позволяет оценить стоимость реализации проектного решения. Свойство “hasReason” – для мотивации принятия решения (например,  о введении некоторого сервиса или изменении его определения) [Stojanovic 2004]. Онтология ЖЦ связывает части проекта с порциями спецификации (например, с activities/services в описании процесса), из которых они выводятся, и с требованиями, обусловившими (influenced) выводимое  «проектное решение».

2.1.3. Применение для создания инструментария

Многомодульная онтология для сопровождения ПО включает подонтологии компьютерных знаний,  организационной структуры, процесса сопровождения и др. Каждая подонтология – прежде всего таксономия сущностей, предметно-ориентированные связи чаще всего указаны для корневых сущностей таксономий (агрегирующая связь «часть от» является частным случаем предметных связей в этой онтологии). Подонтология управления задачами имеет понятия Задача и Комментарий, с Задачей связывается множество Комментариев, каждый из которых может устанавливать новое Состояние задачи (Новая задача, Изуча­ется, Отложена, Выполнена, Закрыта, Возобновлена и т.д.).  Подонтология компьютерных знаний представляет таксономию методик выполнения деятельностей по разработке ПО и таксономию инструментов, поддерживающих  различные деятельности, их взаимосвязи с  языками моделирования, с самими исполнителями деятельностей. Подонтология процесса сопровождения представляет таксономию деятельностей по сопровождению ПО, их связь с участниками процесса и артефактами, а также причинами запросов на модификацию [Рогальчук 2009, Anquetil 2006]. Подонтология описания ошибок содержит термин ошибка, связи этого термина с другими терминами (к какому «типу ошибки» относится,  какими «оценками серьезности» оценивается, каковы «дата обнаружения» и описание ее обнаружения). Оценка серьезности ошибки связывается с Уровнем серьезности, а также с терминами другой подонтологии («организационная структура») - с Сотрудником, вынесшим оценку, и сотрудником, создавшим описание [Рогальчук 2009].

2. 2. Способы использования онтологий

2.2.1. Применение для сопровождения

Использование онтологий предметной области для управления редактированием знаний таково: формат внешнего хранилища данных, куда будут выкладываться результаты решения задачи, определяется их онтологией [Загорулько 2010, Москаленко 2007]. Примером использования онтологии как (метаинформации) структуры для формируемой информации является онтология протоколов инспекции [Рогальчук 2009]. Сначала производится предварительное заполнение базы знаний объектами классов, участвующих в описании протоколов (например, вносится информация о работниках организации, описывается модель жизненного цикла и виды деятельности, типы ошибок, шкала уровней серьезности ошибок). Далее в базу знаний из протоколов инспекции вносится информация об обнаруженных ошибках. Для каждого описания ошибки создаются экземпляры, принадлежащие соответствующим классам, устанавливаются связи между ними, вносится информация о связанных с ошибками задачах, по отслеживаемым изменениям над программным кодом в базу знаний вносится информация о взаимосвязи элементов программного кода и исправленных ошибок [Рогальчук 2009].

Как «интеллектуальные инструменты хранения данных» онтологии определяют «объектную подмодель» описания предметной области, будучи загружены в специальную программную среду. Разрабатывается пакет методов обработки и моделирования поведения описанных там объектов. И  онтологии вместе с этими методами обеспечивают общую среду для модулей разрабатываемой информационной системы. Далее разрабатываются специальные модули (в рамках этой «среды онтологий»), реализующие основные функции системы [Манцивода 2009].

При применении метода разрешения задачи (problem solving method, решаются вопросы декомпозиции задач и управления порядком выполнения этих подзадач, предписанные онтологией задач [Oliveira 2006]. На этапе выполнения какой-либо задачи, планировщик строит план ее решения, обращаясь  к представлению связей между задачами, модулями принятия решений и решателями. При этом он выбирает из репозитария необходимые модули принятия решений и последовательно передает их на исполнение соответствующим решателям [Загорулько 2010].

В основу проектирования программного средства поддержки процесса сочинения танца была взята «компьютерная модель танца», включающая компьютерную модель (КМ) записи танца, КМ реалистичного изображения тела танцора, КМ анимации танцора и КМ процесса сочинения, построенные по онтологиями предметной области по установленным правилам. Примеры правил сопоставления для предметной области "Хореография танца в стиле фанк» таковы: кортежу элементов S с элементами q1, …, qK в математической модели онтологии сопоставляется класс _S: class _S {T1 _q1; ….; TN _qN; m1; …; mH}, где q1, …, qK – элементы кортежа, _q1, …, _qN – переменные класса _S типа T1, …, TN (N может быть равно K), соответственно, m1, …, mH – методы класса _S [Перцовский 2007].

2.2.2. Применение для  управления

В подходе для управления изменениями в приложении онтологии используются для (переонфигурирования этого приложения (the service). Удалось получить «самоуправляемую» систему (self-managing system), которая изменяется сама в соответствии с изменениями предметной области. Была разработана модель (framework), опирающаяся на онтологии деловой логики и зависимостей между сотрудниками, «определяющими» эту логику. Основанная на такой модели система  для распространения изменений (система управления) поддерживает согласованность целевой системы (системы электронных госуслуг для граждан). Управление изменениями осуществляется с помощью одной из двух операций (add и remove) к любой из этих сущностей Онтологии Услуг (AddService, RemoveService. AddServiceInput, RemoveServiceInput,  AddServiceOutput RemoveServiceOutput AddServicePrecondition и др.). Они – основа системы управления семантическим веб-сервисом (semantic web service management system) [Stojanovic 2004].

Изменения в законе (law) отражаются на существующих услугах (existing services).   Например, требует изменений предусловие некоторой деятельности (например, возраст персоны), или введение дополнительных  выходных данных. Изменения в предметной области осуществляются в модели законов (laws) в соответствии с онтологией закона (Legal Ontology). По онтологии услуг прослеживаются связи между сущностями предметной области и атомными сервисами. Поскольку каждая услуга ссылается на закон или его часть (a law/chapter/paragraph/article), соответствующий service можно легко найти. Чтобы дать рекомендации по модификации Интернет-приложений, семантических web-сервисов, используется Lifecycle Ontology. Предумотренные в онтологии ЖЦ значения соответствия изменяемой сущности и стоимости этого (например, the costs имеет значение «huge») позволяют принимать решения о реализации или отклонении of a design decision [Stojanovic 2004]. Кроме того, ограничения целостности, явно представленные в онтологии не позволяют делать некорректные исправления в модели предметной области [Stojanovic 2004].

Разработанная система управления содержит элементы интеллекутальности. Осуществляется интеллектуальный поиск (intelligent search) разных видов проделанных модификаций в журнале развития системы (Evolution Log). Поиск основан на использовании Evolution Ontology. Рассуждение обеспечивает вывод неявной информации по явно представленной онтологии Evolution Ontology (reasoning allows inferring implicitly represented knowledge from the knowledge that is explicitly contained in the Evolution Ontology) [Stojanovic 2004].

2.2.3. Применение для создания инструментария

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

Распространено включение явной модели предметной области непосредственно в программный код, что позволяет, в частности, генерировать формы получения и формирования знаний (для ввода экземпляров классов и подклассов). Например, при выборе класса Ошибка, надо выбрать выведенные суперклассы, хранимые в онтологии объекты класса,  указать его свойства для выбранных классов, ввести правила анализа экспертизы, нормальные значения для количества обнаруженных ошибок, указать связь ошибки с вероятной причиной и набором действий [Рогальчук 2009].

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

3. Обсуждение

При разработке программного обеспечения, в том числе интеллектуальных систем, достаточно распространенным является использование сущностей и связей, представляемых в онтологиях. «Диапазон» применения «простирается» от случаев анализа предметной области и выяснения структуры знаний в ней до систематического проектирования отдельных компонентов программных систем по онтологиям. Описанный в литературе опыт «охватывает» работу с онтологиями, для представления которых достаточно языков, таких как OWL. Трудоемкость создания, а иногда и сопровождения программ в этих случаях, как правило, уменьшается.

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

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

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

Заключение

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

 

Работа выполнена при финансовой поддержке гранта РФФИ, проект № 10-07-00089-a, и ДВО РАН, проект № 09-III-А-01-005.   

 


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

[Батищев 2002] Батищев СВ., Искварина Т.В., Скобелев П.О.Методы и средства построения онтологии для интеллектуализации сети Интернет // Известия Самарского научного центра Российской академии наук, т. 4, №1, 2002, с. 91-103.

[Виттих 2010] Виттих В.А., Д.В. Волхонцев, А.Н. Гинзбург, М.А.Караваев, П.О.Скобелев, О.Л.Сурнин, Шамашов М.А. Распределенные онтологии и их применение в решении задач интеграции данных // сайт «Генезис Знаний», 2006—2010, http://www.kg.ru/?page_id=170

[Загорулько2010] Загорулько Ю.А.. Загорулько Г.Б., Кравченко А.Ю.. Сидорова Е.А. Разработка системы поддержки принятия решений для нефтегазодобывающего предприятия // Труды 12-й национальной конференции по искусственному интеллекту с международным участием - КИИ-2010. -Москва: Физматлит, 2010. -Т.З. -С.137-145.

[Клещев 2001] Клещев А.С., Артемьева И. Л. Структура онтологий предметных областей и их математических моделей // In the Proceedings or the Asian Conference on Intellectual Systems 2001 (PAIS 2001), November 16-17, 2001, pp. 410-420.

[Клещев 1996] Клещев А.С., Артемьева И. Л., Гаврилова Т.Л. Использование логических моделей сложных предметных областей при решении задач // Вестник ДВО, 1996, N 4, с.14-22.

 [Кудрявцев 2008] Кудрявцев Д.  Онтологии и организационное моделирование: согласование терминологии // сайт Бизнес Инжиниринг Групп 1999-2008, http://bigc.ru/theory/modelling/terminology.php

 [Левашова 2002] Левашова Т. В.  Принципы управления онтологиями, используемые в среде интеграции знаний // Труды СПИИРАН. Вып. 1, т. 2. — СПб.: СПИИРАН, 2002, с. 51-68.

[Манцивода 2009] Манцивода А.В. Стукушин Н.О.Спецификации как онтологии // Программные продукты и системы. - 2009, N 4. - С.37-43.

[Москаленко 2007] Москаленко Ф.М. Проект компьютерного банка знаний по медицинской диагностике // Информатика и системы управления. Изд-во АмГУ. №2(14), 2007.

[Перцовский 2007] Перцовский С.Л. Онтологоориентированный подход к разработке программных средств поддержки процесса сочинения последовательностей движений человека // диссертация на соискание степени кандидата технических наук: 05.13.11. - Владивосток, 2007. - 176 с.

[Привезенцев 2007]  Привезенцев А.И., Фазлиев А.З. Прикладная онтология задач для молекулярной спектроскопии // Труды Всероссийской конференции «Знания – Онтологии – Теория» – Новосибирск, 14-16 сентября 2007. – Т. 2. – Новосибирск: Омега Принт, 2007. – С. 82-87.

 [Рогальчук 2009] Рогальчук В.В., Хомоненко А.Д. Онтологии для реализации обратной трассировки при разработке и сопровождении программ // Программные продукты и системы, вып. № 4, 2009 с. 11-14.

[Тарасов 2006] Тарасов А. Ф., Лябик О. А. Онтологический подход к построению логических моделей программных систем // ВІСНИК Донбаської державної машинобудівної академії № 1Е (6), 2006, с. 50-54.

 [Anquetil 2006] Anquetil N., de Oliveira K.M., Dias M.  Software Maintenance Ontology // in Calero, C., Ruiz, F., Piattini, M. (eds) «Ontologies for Software Engineering and Software Technology». Springer Verlag, 2006, pp. 152-173

[González-Pérez2006] González-Pérez C., Henderson-Sellers B. An Ontology for Software Development Methodologies and Endeavours // in Calero, C., Ruiz, F., Piattini, M. (eds) «Ontologies for Software Engineering and Software Technology». Springer Verlag, 2006, pp. 123-151.

[Guarino1995] Guarino, N., Giaretta, P. (1995), Ontologies and Knowledge Bases: Towards a Terminological Clarification // In: N. J. I. Mars (ed.), Towards Very Large Knowledge Bases, IOS Press 1995, pp. 25-32.

[Oliveira 2006] de Oliveira K. M., Villela K., Rocha A. R., Travassos G. H. Use of Ontologies in Software Development Environments // in Calero, C., Ruiz, F., Piattini, M. (eds) «Ontologies for Software Engineering and Software Technology». Springer Verlag, 2006, pp. 275-309

[Ruiz 2006] Ruiz F., Hilera J. R. Using ontologies in software engineering and technology // in Calero, C., Ruiz, F., Piattini, M. (eds) «Ontologies for Software Engineering and Software Technology». Springer Verlag, 2006, pp. 49–102.

[Silvonen2002] Silvonen P. Ontologies and Knowledge Base // сайт HUT/TAI Research Centre, http://www.ling.helsinki.fi/~stviitan/documents/Ontologies_and KB/ontology.html, Last modified 21.10.2002

[Stojanovic2004]  Stojanovic, L., Kavadias, G., Apostolou, D., Probst, F. Hinkelmann, K.  Ontology-enabled e-Gov Service Configuration (2004) // Deliverable Ontogov Project - IST Project 507237. http://www.ontogov.com [доступна в мае 2009].

[Taboada 2002] Taboada M., Arguello M., Martinez D., Des J., Mira J. An use case for DAML+OIL: a knowledge base in a clinical domain // Proceedings of the International Workshop on Rule Markup Languages for Business Rules on the Semantic Web, Sardinia, Italy, 2002 // Publisher: CEUR-WS Publication ed. Michael Schroeder and Gerd Wagner. http://CEUR-WS.org/Vol-60/ и http://www.soi.city.ac.uk/~msch/conf/ruleml/chus.pdf