Технология автоматизированного синтеза составных онтологических паттернов содержания

УДК 004.682

П.А. Ломов

Институт информатики и математического моделирования технологических процессов Кольского НЦ РАН

ТЕХНОЛОГИЯ АВТОМАТИЗИРОВАННОГО СИНТЕЗА СОСТАВНЫХ ОНТОЛОГИЧЕСКИХ ПАТТЕРНОВ СОДЕРЖАНИЯ*

Аннотация

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

Ключевые слова:

онтология, онтологические паттерны, онтологический инжиниринг.

P.A. Lomov

AUTOMATION OF SYTHESIS OF COMPOSITE CONTENT ONTOLOGY DESIGN PATTERN

Abstract

Using of Ontology Design Patterns (ODPs) become useful for development and reengineering ontologies. ODPs represent encodings of best practices supporting ontology construction by facilitating reuse of proven solution principles. In this paper the automate selection of a CDP combination and sub-sequent synthesis of new composite CDP is considered.

Keywords:

ontology, ontology design patterns, ontology engineering. Введение

Несмотря на то, что на данный момент существует множество программных средств [1-4] и технологий онтологического инжиниринга [5-8], разработка онтологий остается сложной задачей. В связи с этим повторное использование (reuse) эффективных практик решения классов задач онтологического моделирования является многообещающим подходом. Одной из его реализаций является использование онтологических паттернов проектирования (Ontology Design Patterns, ODP). Основные преимущества и недостатки применения паттернов при разработке и последующем сопровождении онтологий были рассмотрены автором ранее в работе [9].

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

*Работа выполнена при финансовой поддержке РФФИ (проект №15-07-03321).

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

Существует несколько типов ODP, каждый из которых ориентирован на решение различных видов задач онтологического моделирования. В данной статье основное внимание будет сосредоточено на проблемах использования онтологических паттернов содержания (Content ontology Design Patterns, CDP), которые представляют возможные варианты представления знаний предметной области в виде наборов классов онтологии, связанных отношениями, то есть фрагментов онтологий. Для каждого CDP задается обобщенное определение ситуации (General Use Case, GUC), в которой необходимо его применять. Например, участие в событии, исполнении роли, наличие частей у объекта и другие. Исходя из GUC, для паттернов содержания также задаются наборы квалификационных вопросов (Competency questions). Каждый из таких вопросов может быть преобразован в запрос к онтологии, ответ на который, гарантировано будет получен в случае реализации соответствующего паттерна.

Общая схема применения ODP и в частности паттернов содержания представлена в технологии экстремального проектирования онтологий (eXtreme Design methodology, XD). Она подразумевает поиск разработчиком необходимого паттерна содержания в специализированном каталоге по ключевым словам и квалификационным вопросам, импортирование соответствующего ему онтологического фрагмента в разрабатываемую онтологию, последующая его конкретизация путем определения наследников его элементов и тестирование полученного фрагмента онтологии. Разумеется, разработчик может не обнаружить паттерна, полностью отвечающего требованиям конкретной задачи. В таком случае ему может потребоваться комбинация нескольких из них. Например, определение действия, порядок и состав этапов которого зависит от его участников требует комбинирования паттернов содержания «Участие» (Participation), «Часть» (PartOf), «Последовательность» (Sequence) и «Ситуация» (Situation).

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

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

Онтологические паттерны содержания как точки зрения на понятия онтологии

В общем процедура синтеза составного паттерна содержания - X состоит из следующих шагов:

1. Пользователь выбирает начальный паттерн. Соответствующий ему фрагмент онтологии становиться основой для формирования фрагмента для синтезируемого паттерна X;

2. Среди понятий, представленных классами в онтологическом фрагменте паттерна X, пользователь выбирает то, описание которого он хотел бы расширить другими паттернами;

3. Исходя из выбранного понятия и паттерна, к которому оно относится, формируется и представляется пользователю набор предлагаемых паттернов (Set of offered patterns, SOP);

4. Пользователь выбирает желаемый паттерн из предложенных для добавления в синтезируемый паттерн X;

5. По желаю пользователя осуществляется повтор шагов 2-4 или завершение процедуры переходом к шагу 6;

6. Пользователь осуществляет необходимую правку полученного паттерна X.

Заметим, что первый шаг процедуры требует того, чтобы пользователь был знаком с паттернами содержания для выбора из них подходящего для решения поставленной задачи моделирования. В случае затруднений с таким выбором по умолчанию предлагается паттерн «Виды сущностей» (Type of entities). Он имеет простую структуру и определяет с помощью классов своего фрагмента онтологии основные типы сущностей предметной области, такие как «Качество» (Quality), «Объект» (Object), «Событие» (Event), «Абстрактный объект» (Abstract). Особенностью его использования при синтезе является возможность для пользователя добавлять отдельные классы этого паттерна. Например, пользователь может добавить в синтезируемый паттерн X только класс «Объект» данного паттерна и далее расширять этот класс другими паттернами.

При формировании набора предлагаемых паттернов на каждой итерации учитываются следующие отношения [11, 12] между паттернами:

• Отношение «специализирует» (specialization) - Паттерн P2 специализирует другой паттерн P1, когда по крайней мере один из классов или одно из свойств в P2 является подклассом или подсвойством некоторого класса или свойства P1. При этом в остальном P1 и P2 идентичны.

• Отношение «имеет часть» (has-components) проявляется в следующих случаях:

- Паттерн P2 расширяет (extends) паттерн P1, т.е. когда P2 содержит P1 целиком и добавляет новые классы или свойства;

- Паттерн P3 интегрирует паттерны (integrates) P2 и P1, т.е. когда P3 включает P1 и P2;

- Паттерн P3 объединяет (merges) паттерны P2 и P1, т.е. когда P3 включает P1 и P2 и задает хотя бы одно отношение между двумя классами из P1 и P2.

• Отношение «соотносится» (related) между паттернами P1 и P2 устанавливается в случае, если они имеют некоторые общие классы или

наследуют некоторые классы друг друга. При этом в остальном P1 и P2 различны.

Учет приведенных отношений производиться при формировании набора предлагаемых паттернов для некоторого паттерна X - SOP(X) по следующим правилам:

• правило детализации описания - Если паттерн A специализирует паттерн X, то A включается в SOP(X);

• правило детализации описания части - Если паттерн B часть паттерна X, а паттерн A специализирует паттерн B, то паттерн A включается в SOP(X);

• правило расширения описания - Если паттерн A соотнесён с паттерном X через выбранное пользователем понятие, то он включается во множество SOP(X);

• правило описания целого - Если паттерн A содержит паттерн X в качестве части, то A он включается в SOP(X).

При добавлении нового паттерна в синтезируемый пользователю представляются на выбор различные варианты добавления в виде: AO = {actionn({EConcept.}{AConceptk})} ,

где {EConceptj} - подмножество понятий синтезируемого паттерна и {AConceptk} подмножество понятий добавляемого паттерна, над которыми будут произведено действие - action.

Действия зависят от конкретных паттернов и могут включать переименование понятия синтезируемого паттерна с учетом добавляемого, определения добавляемого понятия как супер/подкласса для существующего или его замещения и другие. Например, при расширении понятия «Событие» (Event) посредством паттерна «Коллекция» (Collection) с целью представления его в виде некоторого множества, будет предложено сменить имя у понятия «Событие» на «КоллекцияСобытие» (EventCollection).

Особенности использования некоторых паттернов при синтезе

Проведения синтеза с использованием некоторых общих паттернов содержания имеет некоторые особенности. Одним из таких паттернов является «Ситуация» (Situation) [12]. Так как он используется в качестве основы (как часть и/или предок) для некоторых других общих паттернов содержания (далее будем называть их «Ситуационные паттерны»), то приведенные далее приемы применимы и к ним. Ситуационные паттерны применяются в случае необходимости представления n-арного отношения (n>2) между сущностями предметной области. Например, представление статуса объекта, участвующего в некотором событии или наличие у пациента диагноза с определенной вероятностью. В этом случае отношения будет тернарными. Ввиду того, что на сегодняшний день распространенным средством описания онтологий является язык веб-онтологий (Ontology Web Language, OWL) [13], который позволяет задавать только бинарные отношения, представление отношений большей арности производиться с помощью определения «реифицированного отношения» (reified relation). Данное «отношение» является специальным классом «Ситуация» (Situation), который имеет бинарные отношения «задан-для» (isSettingFor) со всеми участниками n-арного отношения (компонентами ситуации) (рис. 1).

Рис. 1. Диаграмма классов CDP «Ситуация»

Заметим, что обычно при использовании данного паттерна отношение «задан-для» заменяется более конкретным отношением-наследником, указывающим на роль соответствующего понятия в данной ситуации. Таким образом, все компоненты ситуации - участники n-арного отношения, связаны между собой через отношения с понятием ситуации.

При выполнении синтеза с использование ситуационных паттернов возможны следующие случаи:

1. Ситуационный паттерн применяется к понятию синтезируемого паттерна и при этом в последнем нет других ситуационных паттернов, добавленных ранее;

2. Ситуационный паттерн применяется к понятию синтезируемого паттерна, которое уже является компонентом ситуации, заданной другим ситуационным паттерном;

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

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

Во втором случае варианты добавления будут включать выполнение:

- поглощения (absorption) ситуации, заданной в добавляемом ситуационном паттерне. В этом случае ее компоненты будут включены в существующую в синтезируемом паттерне;

- включения (inclusion) ситуации, заданной в добавляемом ситуационном паттерне, в виде компонента в существующую в синтезируемом паттерне.

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

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

(follows), «следует-непосредственно» (directlyFollows), «предшествует» (precedes), «предшествует-непосредственно» (directlyPrecedes) (рис. 2).

Рис. 2. Диаграмма классов CDP «Последовательность»

При добавление данного паттерна в существующую ситуацию производится его приведение к ситуационному паттерну (рис. 3).

Рис. 3. Диаграмма классов CDP «Последовательность» (Sequence), преобразованного в ситуационный паттерн

Это предполагает представление заданной в нем последовательности в виде класса-ситуации «СитуацияПоследовательность» (SequenceSit), включающей единственный компонент - первый элемент (FirstSegment), который в свою очередь ссылается через отношение «имеет-следующий-сегмент» (hasNextSeg) на следующий и на упорядочиваемую сущность (Entity).

Полученный класс-ситуация «СитуацияПоследовательность» (SequenceSit) становится при добавлении компонентом существующей. Таким образом, удается сохранить заданный порядок на элементах.

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

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

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

Программная реализация технологии

Реализация рассмотренных принципов подбора и компоновки паттернов были реализованы в виде библиотеки на языке программирования Java.

В процессе разработки для рассматриваемых общих паттернов содержания из каталога [14] в соответствии с их структурой и способами модификации при синтезе были определены следующие типы:

• Паттерны-перечисления (Enumerated CDP) - паттерны, представляющие различные множества объектов предметной области. К данному типу относятся паттерны: «Сумка» (Bag), «Коллекция» (Collection), «Список» (List), «Набор» (Set);

• Паттерны-ситуации (SyntSitbased CDP) - паттерны, которые являются разновидностями паттерна Ситуация. К данному типу относятся паттерны: «Ситуация» (Situation), «Роль участника» (ParticipantRole), «N-арное участие» (NaryParticipation) ;

• Позиционные паттерны (PositionCDP) - паттерны, имеющие общую структуру - совокупность классов, связанных между собой отношениями. К данному типу относятся паттерны: «Объект-роль» (ObjectRole), «Соучастие» (Coparticipation), «Участие» (Participation).

Среди позиционных были выделены следующие подтипы:

- Паттерны-отношения (SinglePropertyCDP) - паттерны, представляющие только единичное отношение между понятиями предметной области. К данному типу относятся паттерны: «Компонент» (Componency), «Последовательность» (Sequence), «Часть» (PartOf);

- Паттерны-концепты (SinglePositionCDP) - паттерны, включающие единичное понятие: К данному типу относятся паттерны: «Временной интервал» (TimeInterval), «Область» (Region), «Виды сущностей» (TypeOfEntities).

Для каждого из подтипов был реализован абстрактный Java-класс, включающий методы комбинирования с паттернами других типов (рис. 4).

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

Рис. 4. Схема комбинирования паттернов при синтезе

Существует несколько способ получения данного паттерна. Далее будет рассмотрен один из возможных. В качестве исходного на первом шаге используем паттерн «Виды сущностей» (Type of entities). Из данного паттерна выберем для добавления его класс «Событие» (Event), в виду того, что действие (Action), которое мы хотим представить, будет рассматриваться как его подкласс. Таким образом, добавление паттерна «Виды сущностей» (Type of entities) подразумевает включение в синтезируемый класса «Событие» (Event) и создание его подкласса - «ПодСобытие» (SubEvent). Данный класс при добавлении паттерна генерируется автоматически, его имя может изменено на последнем шаге процедуры (рис. 5, а).

На следующем шаге для расширения понятия «ПодСобытие» (SubEvent), принадлежащее позиционному паттерну «Виды сущностей» (Type of entities), выбирается ситуационный паттерн «N-арное участие» (Nary-Participation), так как он определяет необходимые атрибуты события (участники и продолжительность). Для его добавления в синтезируемому паттерну применяется метод разработанной библиотеки:

PositionCDP::add

Рис. 5. Пример синтеза составного онтологического паттерна

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

SyntSitbasedCDP :: includeSit(Situation, {TimeInterval} ): SyntSitbasedCDP В результате в синтезируемый паттерн будет добавлена ситуация с включением в нее понятия «Временной интервал» (TimeInterval). Синтезируемый паттерн примет следующий вид (рис. 5, с).

На следующем шаге нам необходимо дополнить добавленную ситуацию понятием, которое будет обозначать вероятность. Для этого необходимо расширить понятие «Ситуация» (Situation) с помощью паттерна «Виды сущностей» (Type of entities). Из последнего необходимо выбрать для включения понятие «Абстрактный объект» (Abstract), которое будет использоваться для представления вероятности. Для выполнения этих действий применяется следующий метод библиотеки:

SyntSitbasedCDP :: add(TypeOfEntities) : SyntSitbasedCDP В данном случае, как и при прошлом использовании паттерна «Виды сущностей», для класса, представляющего выбранное понятие автоматически

создается подкласс - «ПодАбстрактный объект» (SubAbstract), который и добавляется в ситуацию (рис. 5, d).

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

Заключение

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

Литература

1. Liebig, T. OntoTrack: Combining Browsing and Editing with Reasoning and Explaining for OWL Lite Ontologies The Semantic Web, / T. Liebig, S. McIlraith, D. Plexousakis, Harmelen F. OntoTrack // Proceedings of ISWC 2004, Springer Berlin Heidelberg, 2004. - Р.244-258.

2. Motta, E. A Novel Approach to Visualizing and Navigating Ontologies / E. Motta, P. Mulholland, S. Peroni, d'A qui n, M., Manuel Gomez-Perez// Proceedings of the 10th International Conference on The Se-mantic Web - Volume Part I, SpringerVerlag, 2011. -Р.470-486.

3. Tsarkov, D. Chainsaw: a Metareasoner for Large Ontologies / D. Tsarkov, Palmisano I. // Proceedings of the 1st Inter-national Workshop on OWL Reasoner Evaluation (ORE-2012), Manchester, UK, July 1st. 2012. -Р.20-29.

4. Bijan, P. CropCircles: Topology Sensitive Visualization of OWL Class Hierarchies / P. Bijan, T. Wang, J. Golbeck // The Semantic Web - ISWC 2006, 5th International Semantic Web Conference, ISWC 2006, Athens, GA, USA, November 5-9, 2006, Proceedings, 2006. - Р.695-708.

5. Suárez-Figueroa, M. The NeOn Methodology framework: A scenario-based methodology for ontology development Applied Ontology /M. Suárez-Figueroa, N. Gómez-Pérez, M. Fernández-López // Applied ontology 10(2), 2015. -Р.107-145. Guarino, N., Welty, C. An overview of OntoClean / Guarino N., Welty C. / In Staab S. and Studer R. (Eds) // Hand-book on Ontologies, Springer, Berlin, 2004. - Р.151-172.

6. Malzahn, N. Collaborative Ontology Development - Distributed Architecture and Visualization /N. Malzahn, S. Weinbrenner // Proceedings of the German

E-Science Conference, Max Planck Digital Library, 2007. - Р.34-45.

7. Amal, Z., Roger, N., Building Domain Ontologies from Text for Educational Purposes / Z. Amal, N. Roger. // IEEE Transactions on Learning Technologies, vol.1, no. 5. January-March, 2008. - Р.49-62. doi:10.1109/TLT.2008.12.

8. Ломов, П.А., Применение паттернов онтологического проектирования для создания и использования онтологий в рамках интегрированного пространства знаний / П.А. Ломов // Онтология проектирования. -Т5, №2(16)/2015.

- Самара: Новая техника, 2012. - С.233-245. ISSN 2223-9537.

9. Gangemi, A. Ontology Design for Interaction in a Reasonable Enterprise / A. Gangemi, V. Presutti// Handbook of Ontologies for Business Interaction, 2007.

- P.86-90.

10. Gangemi, A., Ontology Design Patterns for Semantic Web Content // Proceedings of the Fourth International Semantic Web Conference, Galway, Ireland, Springer, 2005. -Р.262-276.

11. Ломов, П.А. Использование отношений между онтологическими паттернами содержания при работе с онтологиями / П.А. Ломов // Информационные системы и технологии, 2016. - №2 (94). -С.30-39. ISSN 2072-8964.

12. Masolo, C., Borgo, S., Gangemi, A., Guarino, N., Oltramari, A., Shneider, L. WonderWeb. Final Report. Deliverable D18, 2003, 103 pp.

13. OWL 2 Web Ontology Language. - Режим доступа: https://www.w3.org/TR/owl2-overview/

14. Defining N-ary Relations on the Semantic Web. - Режим доступа: https://www.w3.org/TR/swbp-n-aryRelations/

15. Ontology design patterns portal.

- Режим доступа: http://www.ontologydesignpatterns.org

Сведения об авторе

Ломов Павел Андреевич - к.т.н, научный сотрудник,

е-mail: lomov@iimm.ru

Pavel A. Lomov - Ph.D., research associate