Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between OWL and UML in the Software Engineering Process

Currently i am trying to figure out, then to use OWL and then to use UML to describe a domain of interest in a Software Engineering process.

I read this paper by Atkinson, which gives a very good overview about the difference and the equalities of OWL and UML on a semantic and a syntactic level.

However it does not provide a clear indication in which use-cases it might be better to use OWL instead of - for example - an UML class diagramm.

It might be the underlaying development process, which decides the modelling language to take (e.g. model-driven = go for UML, ontology-driven = go for OWL) but for myself it is this difference still not clear?

In both language I can build up a terminology, which I - as an ontology engineer - can reuse in order to infer new knowledge from it. As an Software Engineer I use this terminology for the construction of a (single) system.

So is the difference between OWL and UML just the field of study? Or could I use OWL in order to describe the construction of my (single) software system?

Moreover, this raises the question if the decision of which kind of modelling language to choose is only driven by the goal, which I try to accomplish?

like image 922
rzo1 Avatar asked Sep 23 '15 09:09

rzo1


People also ask

What is a UML diagram in software engineering?

A UML diagram is a diagram based on the UML (Unified Modeling Language) with the purpose of visually representing a system along with its main actors, roles, actions, artifacts or classes, in order to better understand, alter, maintain, or document information about the system.

What is the full meaning of UML?

The full form of UML is the Unified Modeling Language. It is a visual modelling language in the sector of computer science.

What is UML diagram used for?

UML diagrams can be used as a way to visualize a project before it takes place or as documentation for a project afterward. But the overall goal of UML diagrams is to allow teams to visualize how a project is or will be working, and they can be used in any field, not just software engineering.

Is UML a software process model?

Universal Modeling Language (UML) is a way of visualizing a software program using a collection of diagrams. That is perhaps the simplest way to define it. UML has many advantages including flexibility, an abundance of tools, and the capacity to model systems from both a structural and behavioral perspective.


1 Answers

A synthetic answer

  • UML is a (graphical) language for modeling
  • OWL is a language used for knowledge representation (KR) in a semantic perspective

In the first place, OWL purpose is not modeling. Using a KR technique is an option in the field of software engineering. It should be distinct from any software engineering process. Both languages have different purposes.

Of course, you could [use] OWL in order to describe the construction of [a software system]. But the interest of such a move would mainly be in automated reasoning about your software construction process and would not be very helpful in the context of a single project. This would only be effective if done for all your projects in order to have a consequent knowledge base (KB).

A detailed explanation

According to the W3C wiki section about OWL:

The W3C Web Ontology Language (OWL) is a Semantic Web language designed to represent rich and complex knowledge about things, groups of things, and relations between things. OWL is a computational logic-based language such that knowledge expressed in OWL can be exploited by computer programs, e.g., to verify the consistency of that knowledge or to make implicit knowledge explicit

There should be some debate about what is a modeling language. For example, the Wikipedia article on the topic considers a broad sense which could also cover OWL. I consider here with the modeling term only the software engineering activity (which is the one you focus on in your question).

You might need modeling in order to define ontologies, just like you would need for the development of a software project. But this OWL modeling would not consider the software engineering elements but rather the domain data of your project. In other words, using UML in a software construction process aims to setup software elements. With OWL, you would not focus on these elements, unless you are trying automated reasoning about software construction.

Beside this, a relationship exists between UML and OWL. A note by Walter W. Change in the frame of the W3C discusses the question. I would summarize the question considering two distinct relations.

Using UML to represent OWL knowledge

An OMG specification called ODM (for Ontology Definition Metamodel) provides a metamodel for defining ontologies. In the frame of this specification, the use of an UML profile is introduced as a way to bridge a gap between both languages. In the ODM 1.1 specification, section 8.4.2:

The goal of a UML profile from the ODM perspective is to provide a bridge between the UML and knowledge representation communities on a well-grounded, semantic basis, with a broader goal of relating software and logical approaches to representing information.

The UML profile use is introduced in an article. You might find such a profile in the ODM 1.0 specification resources, as a non-normative document. According to what is here considered, this UML profile might be a tool for modeling ontologies.

Using OWL/Semantic Web technologies to represent UML

RDF is the basis format used to write OWL ontologies.

An early (2000) academic work provides a semantic RDF document modeling the UML elements (based on the OMG specification). This work preceded the draft works on the OWL W3C recommendation (2002).

like image 125
bdulac Avatar answered Oct 22 '22 16:10

bdulac