В чем разница между OWL и UML в процессе разработки программного обеспечения

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

Я прочитала эта статья Аткинсона, который дает очень хороший обзор о разнице и равенствах OWL и UML на семантическом и синтаксическом уровне.

однако он не дает четкого указания, в каких случаях использования может быть лучше использовать OWL вместо - например-класса UML диаграмма.

Это может быть процесс разработки подложки, который решает язык моделирования (например, model-driven = go для UML, ontology-driven = go для OWL), но для меня это различие все еще не ясно?

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

Итак, разница между OWL и UML-это только область изучения? Или я могу использовать OWL для описания конструкции моей (единственной) программной системы?

кроме того, это поднимает вопрос, если решение о том, какой тип языка моделирования выбрать, зависит только от цели, которую я пытаюсь достичь?

6 ответов


синтетический ответа

  • UML-это (графический) язык для моделирования
  • OWL-это язык, используемый для представления знаний (KR) в семантической перспективе

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

Of конечно, ты!--15-->может [использовать] OWL для описания конструкции [программной системы]. Но интерес такого шага будет главным образом в автоматизированном рассуждении о процессе создания программного обеспечения и не будет очень полезен в контексте одного проекта. Это будет эффективно только в том случае, если сделано для всех ваших проектов, чтобы иметь последовательное база знаний (КБ).

подробное объяснение

по данным the W3C wiki раздел о сове:

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

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

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

кроме того, существует связь между UML и OWL. А Примечание Уолтера У. изменение в рамках W3C обсуждается этот вопрос. Я бы резюмировал вопрос рассматривая два различных отношения.

использование UML для представления знаний совы

спецификация OMG называется ODM (для Онтология Определение Метамодели) предоставляет метамодель для определения онтологий. В рамках этой спецификации использование профиля UML вводится как способ преодоления разрыва между обоими языками. В спецификации ODM 1.1, раздел 8.4.2:

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

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

использование технологий OWL / Semantic Web для представления UML

RDF-это базовый формат, используемый для написания онтологий OWL.

ранний (2000)учебная работа предоставляет семантический документ RDF, моделирующий элементы UML (на основе спецификации OMG). Эта работа предшествовала черновики работ по рекомендации OWL W3C (2002).


на самом деле OWL доступен как профиль в UML. См. OMG specfication. Таким образом, вы можете использовать UML с профилем совы в "one soup".


давайте начнем с определений.

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

UML имеет много диаграмм, но ни одна из классики не предназначена для моделирования онтологии. Поэтому исследователи создали OWL с этой целью.

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

Как сказал Томас Килиан в другом ответе:

OWL доступен как профиль в UML. См. раздел OMG specfication. Так что вы можете используйте UML с профилем OWL в "one soup".

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


OWL используется для описания домена и иметь возможность конкретно, используя семантику, указать знание домена, а также описать его особенности. Возьмем для примера друг онтология. Используя его, вы можете описать, как люди относятся друг к другу.

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

TL; DR: с помощью UML вы указываете, как вы бы перевести конкретный домен в программное обеспечение, с помощью OWL вы указываете знания о домене, поскольку он намного богаче, чем UML.


для изменения ссылок на сравнение UML и OWL есть кандидатская диссертация (на немецком языке) от Jesper Zedlitz Konzeptuelle Modellierung mit UML und OWL-Untersuchung der Gemeinsamkeiten und Unterschiede mit Hilfe von Modelltransformationen (Концептуальное моделирование с UML и OWL-изучение сходств и различий с помощью преобразований моделей)

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


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