Анализ структурных изменений в онтологиях на языке Owl 2

UDC 004.032.24

SOLVING THE APPLIED TASKS USING THE HETEROGENEOUS COMPUTING SYSTEMS

T.E. Loshchukhina, V.A. Dorofeev Tomsk Polytechnic University

The urgency of the discussed issue is caused by the wide spreading of graphics processors and the ability to use them to improve the performance by parallel computing.

The main aim of the study is to identify the positive and negative aspects of using the heterogeneous parallel computing systems for solving non-traditional, i.e. non-graphics tasks involved in application level of information systems; to a analyze several hybrid parallel computing technologies and to review the practical example of heterogeneous computing usage.

The methods used in the study: algorithm for finding the optimal route implementation on the selected computing devices, evaluation of the performance of each implementation.

The results: The authors have studied the dependence of the performance of the algorithm for finding optimal route on a number of the original graph nodes and the number of computing devices; they developed the algorithm for updating the working group at the source buffer dimension that is not multiple to the group dimension.

Key words:

Parallel algorithm, hybrid technology, heterogeneous computing, graph model, synchronizing methods.

REFERENCES

1. Daleka V.D., Derevyanko A.S., Kravec O.G., Timanovskaya L.E. Modeli i struktury dannykh [Models and data structures]. Harkov, HGPU, 2000. 241 p.

2. Gergel V.P. Teoriya i praktika parallelnykh vychisleniy [Parallel computing theory and practice]. Moscow, Internet-Universitet Informacionnyh Tehnologiy; BINOM. Laboratoriya znaniy, 2007. 423 p.

3. Scarpino M. OpenCL in action. S.I., Manning, 2012. 458 p.

4. Mot D. Vvedenie v C++AMP na osnove koda. Zhurnal MSDN magazine, 2012. Available at: http://msdn.microsoft.com/ru-ru/magazine/hh882446.aspx (accessed 15 April 2013).

5. Mot D. Vvedenie v mozaichnoe zapolnenie C++ AMP. Zhurnal MSDN magazine, 2012. Available at: http://msdn.micro-soft.com/ru-ru/magazine/hh882447.aspx (accessed 15 April 2013).

УДК 004.822; 004.4'2

АНАЛИЗ СТРУКТУРНЫХ ИЗМЕНЕНИЙ В ОНТОЛОГИЯХ НА ЯЗЫКЕ OWL 2

И.А. Заикин

Томский политехнический университет E-mail: zaikin@tpu.ru

Актуальность работы обусловлена необходимостью коллективной распределённой разработки веб-онтологий, одной из задач которой является сравнение версий онтологий и анализ изменений. Для повышения эффективности совместной работыы необходимо предоставить разработчикам обработанную информацию об изменениях в онтологии (какие сущности были измененыы, добавленыы или удаленыы в новой версии онтологии), а также о том, какие именно изменения были произведеныы над каждой сущностью. В работе предложен метод анализа структурных изменений, полученных с использованием прямой семантики языка OWL 2, позволяющий выявлять изменённые, добавленные и удалённые из онтологии сущности, а также сопоставлять каждой затронутой сущности множество изменений. Приведеныы основные алгоритмы, решающие данную задачу, описание их программной реализации, а также результатыы тестирования производительности алгоритмов.

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

Онтология, OWL 2, аксиома, сущность, изменение.

Введение

Онтологией в информатике называют формальное описание некоторой предметной области или задачи на языке, понятном как людям, так и вычислительным машинам. Одним из самых распространённых языков описания онтологий в настоящее время является язык веб-онтологий OWL 2 [1], стандартизированный консорциумом всемирной паутины (W3C), с использованием которого

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

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

Язык OWL 2 имеет две семантики: (1) исторически сложившуюся, основанную на RDF [2], где основными понятиями являются ресурсы и отношения между ними, а сложные конструкции представлены с использованием так называемых «пустых узлов», и (2) прямую семантику [3], где основными понятиями являются сущность и аксиома, а для представления сложных конструкций существуют специальные типы аксиом. Сравнение RDF-графов (использование семантики 1) - вычислительно сложный процесс [4], а при наличии большого количества пустых узлов однозначно идентифицировать изменённые триплеты невозможно [5]. В данной работе используется метод структурного сравнения онтологий на основе прямой семантики языка OWL 2. Понятие «структурное сравнение» основано на понятии «структурная эквивалентность», определённом в спецификации OWL 2 [1]. Использование прямой семантики языка OWL 2 даёт возможность не задумываться о пустых узлах, а выполнять сравнение поаксиомно, используя операции над множествами. Однако простые списки добавленных и удалённых аксиом не дают общей картины изменений. Для повышения эффективности совместной работы также необходимо предоставить разработчикам информацию о том, какие сущности были изменены, добавлены или удалены в новой версии онтологии, а также о том, какие именно изменения были произведены над каждой сущностью.

Постановка задачи

Под онтологией в данной работе понимается совокупность <E,A,I,P,df>, где E - конечное неупорядоченное множество сущностей OWL 2 (классов, типов данных, индивидов и свойств), каждая из которых имеет интернационализированный идентификатор (IRI); A - конечное неупорядоченное множество аксиом (некоторых логических утверждений о сущностях); I - конечное неупорядоченное множество ссылок на другие онтологии (им-портов); P - конечное неупорядоченное множество пар вида (pn,p), где pn - имя префикса - короткая

строка, используемая для сокращения имён сущностей, аpt - часть IRI, вместо которой может использоваться pn; d - идентификатор онтологии, состоящий из IRI самой онтологии и IRI её версии; f - формат онтологии, который может принимать одно из следующих значений: «RDF/XML», «Turtle», «OWL/XML», «OWL Functional Syntax», «OWL Manchester Syntax».

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

Пусть исходная версия онтологии v содержит множество сущностей Ej, а изменённая версия v2 -множество сущностей E2. Задача анализа изменений состоит в решении следующих подзадач:

1. Поиск множества E'eE1uE2 сущностей, затронутых изменениями (добавленных, удалённых, изменённых).

2. Разбиение множества E' на три подмножества: E+ - множество новых сущностей; E - множество удалённых сущностей; E* - множество изменённых сущностей (присутствующих в обеих версиях);

3. Сопоставление каждой изменённой, добавленной и удалённой сущности множества изменений.

Описание метода

Пусть AU - множество всех возможных аксиом, допустимых с точки зрения синтаксиса языка OWL 2; CU+ - множество всех возможных добавлений аксиом, определяемое функцией Add Axiom: AU^CU+, т. е. CU+=|AddAxiom(a)|aeAU}; CU- - множество всех возможных удалений аксиом, определяемое функцией RemoveAxiom: AU^CU-, т. е. CU-=|RemoveAxiom(a)|aeAU}; CU=CU+uCU- - множество всех возможных изменений. Определим функцию 5: P(AU)xP(AU)^P(CU), выполняющую поиск изменений между двумя множествами аксиом AjcAU и A2cAu следующим образом:

C=5(Aj,A2)={RemoveAxiom (a)|aeA1\A2}u u|AddAxiom(a)|a е A2\A J, т. е. каждая аксиома, входящая в A1, но не входящая в A2, считается удалённой, а каждая аксиома, входящая в A2, но не входящая в A1, считается добавленной.

Определим сигнатуру o(a) аксиомы а как конечное неупорядоченное множество сущностей, на которые ссылается аксиома a. Сигнатура множества аксиом рассчитывается как объединение сигнатур отдельных аксиом:

G({a1,a2,...,an})=a(a1)uG(a2)u...uG(an). Сигнатура изменения равна сигнатуре соответствующей аксиомы:

a(AddAxiom(a))=ст(a), ст(КетоуеАхют(а))=ст(а).

Сигнатура множества изменений рассчитывается как объединение сигнатур отдельных изменений:

о({е1>с!,™1с,})=о(с1)ио(с!)и„ио(е,).

Множество сущностей, затронутых изменениями С, можно найти как сигнатуру изменений С: Е'=о(с). На рис. 1 множество Е' обозначено пунктирным прямоугольником. Исходя из рисунка, можно найти множество удалённых сущностей Е~=Е'\Е2=ЕДЕ2, множество добавленных сущностей Е+=Е'\Е1=Е2\Е1 и множество изменённых сущностей Е*=Е'пЕ1пЕ2. На рис. 1 также обозначены неизменённые сущности Е|=(Е1пЕ2\Е').

Рис. 1. Соотношение между множествами E1 (штриховка вправо), E-l (штриховка влево), Е+, Ё Ё, Ё и ё

Для каждой сущности е можно найти множество связанных с ней изменений

ст‘(е)={с\с е Сле е ст (с)}.

Алгоритм извлечения сущностей, затронутых изменениями

Входные данные:

• множество изменений С.

Выходные данные:

• множество затронутых изменениями сущностей Е'=а(с).

1. ЕМ}

2. Для каждого изменения сеС

3. Для каждой сущности ее а

4. Е'-^ЕЪ{е}

Алгоритм классификации сущностей

Входные данные:

• сигнатура Е1 исходной версии онтологии;

• сигнатура Е2 изменённой версии онтологии;

• множество затронутых изменениями сущностей Е'.

Выходные данные:

• множество изменённых сущностей Е*;

• множество новых сущностей Е+;

• множество удалённых сущностей Е .

1. Е+М}

2. ГМ}

3. Е*-Ч}

4. Для каждой сущности ееЕ'

5. Если ееЕ1

6. Если ееЕ2

7. Е*^ЕЪ{е}

8. иначе

9. Е—^Е—и{е}

10. иначе

11. Е+^Е+^{е}

Алгоритм классификации изменений

Входные данные:

• Бинарное отношение йСЕ={(с,а(с))|сеС}еСхЖЕ'), ставящее в соответствие каждому изменению его сигнатуру.

Выходные данные:

• Бинарное отношение йЕСеЕ'хР(с), ставящее в соответствие каждой сущности множество затрагивающих её изменений.

1 -Ксе^О

2. Для каждой пары (с,Ес)еЯСЕ

3. Для каждой сущности ееЕс

4. Если 3(е,Се)ейЕС

5. Се^Се^с}

6. иначе

7. КЕС^КЕС^{(е,{с})}

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

Предложенные алгоритмы были реализованы на объектно-ориентированном языке программирования Java с использованием библиотеки OWL API [6]. На рис. 2 приведена диаграмма классов программы. Из рисунка видно, что онтология может содержать множество аксиом, а каждая аксиома - множество сущностей, причём одна и та же сущность может встречаться в нескольких аксиомах. Онтология, аксиома и сущность являются подклассами класса OWLObject. Метод getSignatu-re() класса OWLObject реализует функцию ст. Набор изменений ChangeSet состоит из множества изменений OWLAxiomChange, каждое из которых может быть либо добавлением (AddAxiom), либо удалением (RemoveAxiom) аксиомы. Конструктор класса ChangeSet принимает два экземпляра OWLOntology и выполняет их поаксиомное сравнение (реализует функцию 5). Результат сравнения можно получить, вызвав метод getAxiomChan-ges(). Класс EntityExtractor реализует алгоритм извлечения сущностей, затронутых изменениями. Метод getEntities() предоставляет доступ к множеству извлечённых сущностей. Класс EntityClassifi-er реализует алгоритм классификации сущностей и содержит методы getNewEntities(), getRemove-dEntities() и getModifiedEntities() для доступа к новым, удалённым и изменённым сущностям соответственно, а также метод getAllEntities() для удобного доступа ко всем затронутым изменениями сущностям. Класс ChangeClassifier реализует алгоритм классификации изменений и предоставляет метод getChangesByEntity() для получения

> OWLAPI:: OWL Obj ect <

getSignature(): Set<OWLEntity>

OWLAPI: :OWLOntology 1 * OWLAPI: :OWLAxiom OWLAPI: :OWLEntity

ChangeClassifier

ChangeCl as sifier

getChangesByEntity(OWLEntity):

Set<OWLAxiomChange>

OWLAPI:: OWLAxi omChange

r__l

OWLAPI: :RemoveAxiom

newEntities removedEntities modifiedEntities

ChangeSet EntityExtractor EntityClassifier

ChangeSet

getNewEntities(): Set<OWLEntity> getRemovedEntities(): Set<OWLEntity> getModifiedEntities(): Set<OWLEntity> getAllEntities(): Iterable<OWLEntity>

м. *л

A *Л

Рис. 2. Диаграмма классов

множества изменений, связанных с заданной сущностью.

Ниже приведён результат работы программы для двух версий онтологии, во второй версии которой был добавлен новый индивид Russia класса Country. Символом «***» обозначены изменённые сущности, присутствующие в обеих версиях онтологии, а символом «+++» - новые сущности.

Изменения:

- DifferentIndividuals

+ Declaration

+ DifferentIndividuals

+ ClassAssertion

Сущности:

+++ NamedIndividual: Russia *** NamedIndividual: France *** NamedIndividual: England *** NamedIndividual: Italy *** NamedIndividual: Germany *** NamedIndividual: America *** Class: Country

Кроме самих индивидов стран, изменённым считается и сам класс Country, поскольку был добавлен его экземпляр.

Тестирование производительности

Пусть m(Ai,Ai)=|5(Ai,Ai)|/(|Ai|+|Ai|) - коэффициент, показывающий отношение количества изме-

нений между двумя онтологиями к суммарному количеству аксиом в обеих онтологиях. Для тестирования производительности алгоритмов было сгенерировано 10 пар онтологий (vj,v2) со следующими характеристиками:

• m(A1,A2)=0,1.

На рис. 3 представлена зависимость времени работы алгоритмов от количества N аксиом. Тестирование проводилось в среде Java SE Runtime Environment 1.7.0-b147 с использованием вычислительной машины с процессором AMD A6-3410MX с тактовой частотой 1,6 ГГц и оперативной памятью типа DDR3 объёмом 8 Гб с пропускной способностью 667 МГц.

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

Рис. 3. График зависимости времени работы алгоритмов от размера онтологий

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

Заключение

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

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

Разработанное программное обеспечение использовалось при построении онтологии предметной области «Интеллектуальное месторождение».

Разработка проводилась при финансовой поддержке Министерства образования и науки Российской Федерации, в рамках финансирования работ по Государственному контракту 14.515.11.0047.

СПИСОК ЛИТЕРАТУРЫ

1. Motik B., Patel P.F., Parsia B. OWL 2 Web Ontology Language structural specification and functional style syntax // World Wide Web Consortium. 2009. URL: http://www.w3.org/TR/owl2-syntax/ (дата обращения: 31.05.2013).

2. Schneider M. oWl 2 Web Ontology Language RDF-Based Semantics // World Wide Web Consortium. 2009. URL: http://www. w3.org/TR/owl2-rdf-based-semantics/ (дата обращения:

11.11.2012).

3. Motik B., Patel-Schneider P.F., Cuenca Grau B. OWL 2 Web Ontology Language Direct Semantics // World Wide Web Consortium. 2009. URL: http://www.w3.org/TR/owl2-direct-semantics/ (дата обращения: 11.11.2012).

4. Carroll J. Matching RDF Graphs. 26.11.2001. URL: http://www.hpl.hp.com/techreports/2001/HPL-2001-293.pdf (дата обращения: 23.10.2012).

5. DeltaView // ESW Wiki. 12.11.2007. URL: http://esw.w3.org/ DeltaView (дата обращения: 31.05.2013).

6. Horridge M., Bechhofer S. The OWL API: A Java API for Working with OWL 2 Ontologies // CEUR Workshop Proceedings (OWLED 2009: 6th OWL Experiences and Directions Workshop, Chantilly, Virginia, October 2009). - 2009. - V. 529. - P. 53-62.

Поступила 05.06.2013 г.

UDC 004.822; 004.4'2

ANALYSIS OF STRUCTURAL CHANGES IN OWL 2 ONTOLOGIES

I.A. Zaikin Tomsk Polytechnic University

The urgency of the discussed problem is caused by the need to develop web ontologies in a distributed collaborative manner. One of the tasks is the ontology version comparison and change analysis. The developers require processed information on ontology changes in order to collaborate more efficiently (what entities were changes, added or removed from the ontology), as well as the information on changes performed on each specific entity. This paper proposes a way of analyzing structural changes obtained when using OWL 2 direct semantics, which allows us to reveal entities that were modified, added or removed from the ontology, as well as to find changes related to each modified entity. The author shows the main algorithms, which solve this task, software implementation of the algorithms, and performance testing results.

Key words:

Ontology, OWL 2, axiom, entity, change.

REFERENCES

1. Motik B., Patel P.F., Parsia B. OWL 2Web Ontology Language structural specification and functional style syntax. World Wide Web Consortium. 2009. Available at: http://www.w3.org/TR/ owl2-syntax/ (accessed 31 May 2013).

2. Schneider M. OWL 2 Web Ontology Language RDF-Based Semantics. World Wide Web Consortium. 2009. Available at: http://www.w3.org/TR/owl2-rdf-based-semantics/ (accessed 11 November 2012).

3. Motik B., Patel-Schneider P.F., Cuenca Grau B. OWL 2 Web Ontology Language Direct Semantics. World Wide Web Consorti-

um. 2009. Available at: http://www.w3.org/TR/owl2-direct-se-mantics/ (accessed 11 November 2012).

4. Carroll J. Matching RDF Graphs. 26.11.2001. Available at: http://www.hpl.hp.com/techreports/2001/HPL-2001-293.pdf (accessed 23 October 2012).

5. DeltaView. ESW Wiki. 12.11.2007. Available at: http://esw.w3.org/DeltaView (accessed 31 May 2013).

6. Horridge M., Bechhofer S. The OWL API: A Java ApI for Working with OWL 2 Ontologies. CEUR Workshop Proceedings (OWLED 2009: 6th OWL Experiences and Directions Workshop. Chantilly, Virginia, October 2009, vol. 529, pp. 53-62.