=Paper=
{{Paper
|id=Vol-1631/211-219
|storemode=property
|title=Extension of the UML specifications for modeling of the semantic objects
|pdfUrl=https://ceur-ws.org/Vol-1631/211-219.pdf
|volume=Vol-1631
|authors=Olexander Novitckiy
|dblpUrl=https://dblp.org/rec/conf/ukrprog/Novitckiy16
}}
==Extension of the UML specifications for modeling of the semantic objects==
Proceedings of the 10th International Conference of Programming UkrPROG’2016 (Kyiv, Ukraine) УДК 004.41 РОЗШИРЕННЯ UML СПЕЦИФІКАЦІЇ ДЛЯ МОДЕЛЮВАННЯ СЕМАНТИЧНИХ ОБ’ЄКТІВ О.В. Новицький В статті запропоновано відображення діаграми класів UML до дескриптивної логіки діалекту SHOIQ. Запропоновано розширення нотацій UML, шляхом використання стереотипів, для максимального наближення семантичних конструкцій. Вказано на причини та проблеми що виникають при такому відображенні. Ключові слова: UML, Дескриптивна логіка, semantic web, валідація діаграм класів UML. В статье предложено отображения диаграммы классов UML в дескриптивную логику диалекта SHOIQ. Предложено расширение нотаций UML путем использования стереотипов, для максимального приближения семантических конструкций. Указано на причины и проблемы, которые возникают при таком отражении. Ключевые слова: UML, дескриптивная логика, semantic web, валидация диаграмм классов UML. In the article, propose mapping from UML class diagrams to SHOIQ. descriptive logic. Made approach through extension the UML notations by using stereotypes as close to semantic structures. Specified on the causes and problems that arise in such mapping. Key words: UML, description logick, semantic web, validation class diagram uml. Вступ Електронні бібліотеки (ЕБ) наразі функціонують у мережі Інтернет. Центральним об’єктом, що є носієм інформації в ЕБ – інформаційний ресурс. Існують різноманітні підходи до моделювання, управління і публікації інформаційних ресурсів в ЕБ. Значна частина підходів до управління інформаційними ресурсами пов’язана з Semantic Web. Наприклад, для публікації семантичних даних, широко розповсюдження набула ідеологія зв’язаних даних (LD) (Linked Data, 2015). Зв’язані дані дають можливість використання Інтернету для підключення відповідних даних, що раніше не були пов’язані між собою. Або більш конкретно, LD – це підхід, що використовується для опису методів виявлення спільного використання та підключення частин даних, пошуку інформації та знань в Semantic Web, використовуючи URIs, SPARQL і RDF (Linked Data, 2015) (Berners-Lee, 2009). На даний момент, у дослідників не існує чіткого розуміння, що являє собою ЕБ в середовищі Semantic Web. Багато робіт, були присвячені даній проблемі. Зокрема, в (Sure and Studer, 2005) робиться більше акцент на побудову та використання онтологій для ЕБ. В (Alotaibi, 2010) розглядається розвиток ЕБ у напрямку семантичних соціальних ЕБ, в яких значна увага приділяється обміну знань та більш потужним механізмам взаємодії користувачів. Розробка моделі даних ЕБ, в рамках підходу LD, дасть змогу наблизити електронні бібліотеки до повноцінної реалізації Semantic Web. Однак, коли виникає питання розробки програмного забезпечення, в тому числі ЕБ, одним із центральних аспектів є формалізація вимог до програмного продукту. У такій ситуації, широкого застосування набула UML (англ. Unified Modeling Language) – це уніфікована мова моделювання, що використовується у парадигмі об’єктно-орієнтованого програмування. UML є невід’ємною частиною уніфікованого процесу розробки програмного забезпечення. Вона є мовою широкого профілю, це відкритий стандарт, що використовує графічні позначення для створення абстрактної моделі системи, так званої UML-моделі. UML був створений для визначення, візуалізації, проектування й документування в основному програмних систем. UML не є мовою програмування, але в засобах виконання UML-моделей, як інтерпретованого коду, можлива кодогенерація. UML є стандартизованим та формалізованим засобом для розробки та аналізу програмного забезпечення. Для підтримки розробки великих додатків існують складні CASE інструменти, що забезпечують зручні умови для редагування, зберігання і доступу до діаграм UML. Однак в таких інструментах відсутні засоби інтелектуального аналізу. Для UML характерні надлишковість та протиріччя, які важко виявити. Вважається, що UML діаграма класів, є одним з найбільш важливих компонентів UML. Для перевірки моделей, створених за допомогою діаграми класів UML, необхідно провести над цією моделлю логічні судження. В UML немає вбудованих засобів для її верифікації та валідації. Проте існують певні підходи вирішення цієї проблеми (Волович and Дерюгина, 2015). Використавши семантичний підхід і здійснивши відображення моделі UML до OWL, верифікація та валідація зводяться до перевірки на несуперечність, здійснимість, класифікацію та реалізацію концептів. В даній роботі ми намагаємося розшити UML для більш повноцінного відображення UML в OWL та навпаки. Огляд досліджень з проблематики верифікації UML Існують різні методології верифікації UML моделей діаграм класів (Волович and Дерюгина, 2015). Так, найбільш простим є підхід, пов’язаний з побудовою драйвера (Макгрегор and Сайкс, 2002). Даний підхід дозволяє формально оцінити правильність створення діаграми класів і виявити найбільш 211 Proceedings of the 10th International Conference of Programming UkrPROG’2016 (Kyiv, Ukraine) характерні помилки. Ще одним підходом до верифікації діаграми класів є метод шаблонів, який запропонований в (Sturm, Balaban and Maraee, 2010). Поняття шаблону, в даному підході, відрізняється від добре відомого і зрозумілого поняття шаблону проектування. У роботі було запропоновано декілька шаблонів помилок для виявлення протиріч в моделі. В роботі (Thalheim, 1993) розглянуто підхід на основі побудови ідентифікаційного графа. Суть даного методу полягає в побудові ідентифікаційного графа, що представляє собою орієнтований граф. Вузлами даного графа є класи, а також асоціативні зв’язки між ними, а дуги пов’язують асоціації з тими класами, між якими на діаграмі класів і вказані відповідні асоціативні зв’язки. Представлення інформації про домен засобами OWL та UML Мови OWL та UML були розроблені для різних цілей. OWL призначена для подання знань про інформаційну складову предметної області, UML розроблено перш за все для підтримки розробки програмного забезпечення. Хоча мови різні, але основна їх ціль є формальне представлення знань. В ранніх роботах (Cali et al., 202), (Cranefield and Purvis, 1999), (Brockmans et al., 2004) було висвітлено, яким чином можливо визначати онтологію засобами UML. В UML є кілька вбудованих засобів для формалізації семантики. Наприклад, Object Constraint Language (OCL) є декларативною мовою описання правил, що використовуються в UML, яка, на відміну від UML, має лінійну нотацію, а не графічну. На жаль так само, як і в UML в OCL, відсутня формальна модель семантики, теоретична модель та формальний доказ теорем. І тому, в UML не може бути механізмів для автоматизації міркувань. Водночас, консорціум Object Management Group розробив метамодель визначення онтології (Ontology Definition Metamodel – ODM), що визначає набір мета-моделей UML (Object Management Group, 2009) і профілів для представлення UML в RDF, і OWL. У UML профілі в специфікації ODM адаптують нотації UML, щоб надати форму візуального представлення для RDF і OWL. В роботах (Simmonds, 2003), (Daniela, Diego and Giuseppe, 2005) були здійснені спроби щодо трансформування діаграми класів UML до дескриптивної логіки, проте в цих роботах не знайшла місце повнота відображення. Представлення знань та інформації про розробку програмного забезпечення, як правило, мають різні цілі при записі інформації. Робляться відповідні, але різні припущення щодо інтерпретації мовних висловів, чи заяв. Безліч припущень впливають на семантичну відповідність між мовними конструкторами і їх нотаціями. Якщо в OWL такі невідповідності можуть бути усунені, а вирази більш однозначні, то в UML вони більш різноманітні. UML дозволяє різні інтерпретації конструкцій мови в залежності від точки зору. Є певні суттєві відмінності між UML та OWL: • в діаграмі класів UML ми працюємо з припущенням про закритість світу. Тобто всі твердження, що не були явно вказані, є хибними. Натомість OWL використовує припущення відритого світу. Припущення ж про відкритість світу, в цьому випадку, припускає, що деяке твердження є ні істинним, ні хибним; • UML має поняття профілів, що дозволяють розширювати мета-моделі елементів UML. Водночас OWL немає відповідної конструкції. У більшості випадків профілі UML використовуються для визначення стереотипів, щоб розширити класи. Представлення цих стереотипів може бути відображено до OWL через створення ряду нових класів та узагальнення тверджень. Однак більша частина профілю UML доволі специфічна і вимагає відповідні правила перетворення, адаптовані для певного профілю; • абстрактні класи UML не можуть бути перетворені в OWL. Якщо клас визначається як абстрактний в UML, то це означає що екземпляри цього класу (об’єкти) не можуть бути створені. В OWL не закладено функцію, що вказувала б на те, що клас не повинен містити екземплярів. Одним із підходів до збереження семантики абстрактного класу є використання DisjointUnion. Це буде гарантувати, що будь-який екземпляр, який належить до підкласу, також відноситься до абстрактного суперкласу. Тим не менш, це не забороняє створювати екземпляри абстрактного суперкласу; • в UML видимість елементів моделі може бути зменшена шляхом маркування їх як public, private, і т. д. Також можна оголосити елементи UML моделі, які доступні тільки для читання. В OWL відсутній механізм управління, щоб обмежити доступ до елементів моделі. OWL онтології також не можуть містити будь-яких операцій; • в OWL можливо визначати властивості об’єкту на рівні онтології. І такі властивості не обов’язково повинні бути прив’язані до класу. Водночас, UML пропонує два способи прив’язки атрибутів. Через атрибут класу та через асоціації. Як випливає з назви, в першому випадку, атрибут класу відноситься до класу. Асоціації визначені на рівні пакету діаграми класів. Тим неменше, такі асоціації повинні мати на полюсах класи як типи. Тому UML асоціації не повністю підходять для представлення загальних властивостей об’єкту. При моделюванні тверджень про об’єкти реального світу обидві мови використовують відповідні конструктори (наприклад, класи і об’єктів). OWL та UML виділяють відмінність між термінологічними (інтенсіональними) і екстенсіональними (твердженнями) знаннями. 212 Proceedings of the 10th International Conference of Programming UkrPROG’2016 (Kyiv, Ukraine) Судження про UML діаграму класів використовуючи SHOIQ В наслідок концептуальних розбіжностей між UML та OWL, не можливо побудувати однозначне відображення. В деяких роботах (Berardia, Calvanese and De Giacomo, 2005) є спроби розширити OWL до відповідного діалекту, що відповідав би UML. Ми в своєму підході намагаємося розшити UML через додаткові нотації та стереотипи, щоб збільшити повноту відображення. І це дозволить проектувати формальні специфікації у вигляді діаграми класів через онтології OWL. Ми робимо відображення основних конструкцій UML до дескриптивної логіки та відповідних конструкцій OWL. В UML клас A представляється за допомогою атомного концепту A (табл. 1). Таблиця 1 Абстрактний синтаксис UML Дескриптивна логіка OWL Owl:Class. Атомний клас. A rdfs:subClassOf Фундаментальний D ⊑C конструктор, який оголошений в RDF Schema, визначає, що клас D є підкласом C. D≡C owl:equivalentClass owl:disjointWith D ⊑¬C owl:intersectionOf C ⊓D 213 Proceedings of the 10th International Conference of Programming UkrPROG’2016 (Kyiv, Ukraine) Абстрактний синтаксис UML Дескриптивна логіка OWL D subClassOf unionOf C and E D ⊑C ⊔E Механізми розширення UML. Стереотипи Надалі, для розвинення відображення, ми будемо використовувати механізми розширення. Механізми розширення – це вбудовані в мову способи розширити можливості мови. В UML включено багато методів так, щоб мова виявилася придатною в різних контекстах і предметних областях. Механізми розширення дозволяють визначати нові елементи моделі на основі існуючих. Таких механізмів три: • мічені значення; • обмеження; • стереотипи. Ці механізми не є незалежними, вони тісно пов’язані між собою. Мічене значення (tagged value) – це пара, ім’я властивості і значення властивості, яка може бути додана до будь-якого стандартного елементу моделі. Обмеження (constraint) – це логічне твердження щодо значень властивостей елементів моделі. Стереотип (stereotype) – це визначення нового елемента моделювання на основі існуючого елемента моделювання. Визначення стереотипу проводиться таким чином. Взявши за основу деякий існуючий елемент моделі, до нього додають нові мічені значення (розширюючи тим самим внутрішнє представлення), нові обмеження (змінюючи семантику) і доповнення, тобто нові графічні елементи (визначаючи нотацію). Генералізація Узагальнення або генералізація – це відношення між двома сутностями, одна з яких є окремим випадком (спеціалізацією) іншої. Тобто це є направлене відношення між більш загальним класом і специфікованим класом. Генералізація в UML 2 має властивість наслідування, це означає, що клас який наслідує більш загальний клас, також наслідує його структуру та поведінку. Узагальнення між класом C та його дочірнім класом C1 може бути представлено за допомогою твердження включення в ALCQI, а саме у вигляді C1 ⊑C. Ієрархія класів, як показано на рис. 1, може бути представлена твердженнями C1 ⊑ C,…. Cn ⊑ C. Рис. 1. Ієрархія класів 214 Proceedings of the 10th International Conference of Programming UkrPROG’2016 (Kyiv, Ukraine) Кожна генералізація в специфікації UML 2 має дві основні властивості: це покриття, що може бути повним (complete) або неповним (incomplete); та властивість перетину, яка може бути з перетином (overlapping) або без перетину (disjoint). Повнота означає, що кожен екземпляр, більш загального класу, повинен належати принаймні до одного із специфікованих класів. Перетин визначає, чи можуть специфіковані класи мати спільні екземпляри, тобто у випадку наявності хоча б одного спільного екземпляру говорять про генералізацію з перетином. В UML 2.x кожна генералізація є неповною. Відмінність між UML 2.x та UML 2.5 полягає у відсутності та наявності перетину відповідно. Тому, якщо ми хочемо досягнути відсутності перетину, то обмеження класів C1 …. Cn, що не перетинаються, може бути змодельоване як Ci⊑¬ Cj, де 1≤i