An ontology-based framework for domain-specific modeling
Domain-specific languages (DSLs) provide abstractions and notations for better understanding and easier modeling of applications in a special domain. Current shortcomings of DSLs include learning curve and formal semantics. This paper reports on a framework that allows the use of ontology technologies to describe and reason on DSLs. The formal semantics of OWL together with reasoning services allows for addressing constraint definition, progressive evaluation, suggestions, and debugging. The approach integrates existing metamodels and concrete syntaxes in a new technical space. A scenario in which domain models for network devices are created illustrates the framework.
More infos on article's page
New Book about MDE with Ontology Technologies
Bridging Technological Spaces. Towards the Combination of Model-Driven Engineering and Ontology TechnologiesTobias WalterStichworte/keywords: Model-driven Engineering, Metamodel Engineering, Semantic Web, Ontology, Technological Space, Description Logics |
TwoUse Toolkit: More than 4000 visits in 11 months.
Let's keep up the good work!
Towards Hybrid Reasoning for Verifying and Validating Multilevel Models
One problem with using ontologies within software engineering is that while model-driven engineering realizes a four-layer metamodelling architecture, the new version of OWL Web Ontology Language, called OWL 2, it supports only simple metamodelling. Moreover, the semantics of metamodelling in OWL 2 corresponds to the contextual semantics which leads to non-intuitive results. Another issue is that the Open World Assumption (OWA) assumes a model is incomplete. Therefore, we could not validate some constrains in OWA.
We demonstrate multilevel (meta-) modelling using ontologies described in OWL FA, which has a well defined fixed-layered architecture and semantics. As well as an approach to integrate Closed World Assumption (CWA) with OWA in order to use both assumptions for verifying and validating multilevel model.
This joint work with the University of Aberdeen will be presented
at the EKAW conference, October, Lisbon
Specialization and Validation of Statecharts in OWL
Given two behavior models like statecharts, it is a challenging task to decide whether one statechart is still a valid specialization of the other, more abstract model. We use OWL to model statecharts and to validate statechart specializations.
This work will be presented at the EKAW conference in October
in Lisbon.
Bridging Software Languages and Ontology Technologies
An interest to extend software languages that gained scientific and commercial attention is the integration of ontology technology and software development. Ontology formalisms for consistency validation and dynamic classification as well as ontology technologies to enable shared terminologies, automated reasoning, provide means for leveraging metamodeling and language engineering.
Check out our tutorial at SPLASH 2010 (previously OOPSLA) on Bridging Software Languages and Ontology Technologies
Extend Ecore with OWL by Ecore Annotations of OWL Axioms
In this video we show how to use an ecore textual language for annotating ecore metamodels with OWL axioms. Afterwards, you can use the OWLizer to transform metamodel and model into OWL.
OWL Annotations for textual Ecore Metamodels
In general we have extended a metamodeling language (Ecore) by constructs provided by OWL. Thus we have a much more expressiveness language to develop Ecore-based metamodels which continuously can be used in the MDD process (e.g. to define the abstract syntax of a modeling language or for code generation) and in addition are "ready" for ontology technologies.
The extended grammar for Ecore metamodels and the extended annotations is given in the following:
EPackage =
{EAnnotation} "package" name
[EDataType]
["\"" name "\""] "{" {EClass} {EPackage} "}" ;
EClass =
["abstract"] ("interface" | "class")
["" EClass {"," EClass} ">"] name
["\"" name "\""]
["extends" EClass {"," EClass}]
{classAnnotation} "{" {EClass | EOperation} "}";
EParameter =
{EAnnotation}
{("ordered" | "unique")} EClass name
["(" integer ".." integer ")"] ;
EReference =
{ ("containment" | "derived" | "transient" | "volatile" | "unique" |
"ordered" | "unsettable" | "changeable" | "resolveProxies") }
{frontReferenceAnnotation}
"reference" (EClass | EGenericType) name
["=" "\"" name "\""]
["(" integer ".." integer ")"]
["opposite" EReference] {endReferenceAnnotation} ";" ;
EOperation =
{EAnnotation}
{("ordered" | "unique")} "operation" ("void" | EClass)
["(" integer ".." integer ")"]
["" ETypeParameter {"," ETypeParameter} ">"] name "(" [EParameter {"," EParameter}] ")"
["throws" EClass {"," EClass}] ";" ;
EEnumLiteral = {EAnnotation} EDataType ":" name "=" "\"" EEnumLiteral "\"" ";" ;
EAnnotation = "[" {
"eAnnotations" ":" EAnnotation |
"source" ":" "\"" name "\"" |
"details" ":" "\"" name "\"" "=" "\"" name "\"" |
"contents" ":" EObject |
"references" ":" EReference |
"eModelElement" ":" EObject } "]";
EObject = "EObject";
EDataType = {EAnnotation} ["serializable"] "datatype" name "\"" name "\"";
ETypeParameter = {EAnnotation} name ;
EGenericType =
"typed" ["" (ETypeParameter | "?" "extends" EGenericType | "?" "super" EGenericType) ">"]
EClass ["" (EGenericType | "?" ) {"," (EGenericType | "?")} ">"] ;
frontReferenceAnnotation = "(" (
"functional" |
"inversefunctional" |
"symmetric" |
"asymmetric" |
"reflexive" |
"irreflexive" |
"transitive"
) ")";
endReferenceAnnotation = "(" (
"equivalentTo" OPE |
"subPropertyOf" OPE |
"domain" CE |
"range" CE |
"disjointWith" OPE |
"inverseOf" name |
"subPropertyChain" OPE "o" OPE {"o" OPE}
) ")";
classAnnotation = "(" (
("equivalentTo" | "disjointWith") CE {CE} |
"subClassOf" CE |
"disjointUnionOf" CE CE {CE}
) ")";
CE = "(" (
["not"] name |
"not" CE |
CE "and" CE { "and" CE } |
CE "or" CE {"or" CE} |
OPE ("some" | "only") CE |
OPE "Self" |
OPE ("min" | "max" | "exactly") "cardinality" nonnegativeinteger CE
) ")" ;
OPE = name | "(" "inverse" name ")" ;
digit = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9";
nonnulldigit = "1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9";
integer = ["-"] nonnulldigit {digit} | "0";
nonnegativeinteger = "0" | nonnulldigit {digit};
name = ( letter | "_" ) { letter | digit | "_" } ;
letter = "a".."z" | "A".."Z" ;
OWL, UML, SPARQL, templates: TwoUse examples
- SPARQL Querying
- OWL Ontology Template
- OWL Graphical Notation
- OWL Functional Syntax
- SWRL Rule Graphical Notation
- SWRL Rule with UML Profile for SWRL
- SPARQLAS Query
- OWL Ontology with UML Profile for OWL
OWL + Metamodel: Model Bridge
![]() |
| Model Bridge |
Integration bridges merge information of the models from the software modeling and from the ontology space. This allows the building of integrated models (on modeling layer M1) using constructs of both modeling languages in a combined way, e.g. to integrate UML class diagrams and OWL.
A transformation bridge describes a (physical) transformation between models in layer M1. The models are kept separately in both modeling spaces. The information is moved from one model to the model in the other modeling space according to the transformation bridge.
OWL + Ecore: Language Bridges
![]() |
| Language Bridge |
The M3 Transformation Bridge allows language designers and language users to achieve representations of software languages (Metamodel/Model) in OWL. It provides the transformation of software language constructs like classes and properties into corresponding OWL constructs.
Using Templates in OWL Ontologies
and model-driven tools for the semantic web. However, these metamodels or tools
do not provide dedicated support for dealing with templates in ontology
engineering.
![]() |
| Using Templates with OWL and UML Notation |
recurrent sets of axioms like ontology design patterns. We propose an extension
of existing metamodels and tools to support ontology engineers in modeling
OWL ontology templates. Our approach allows ontology engineers to keep template
specifications as first-class citizens, reducing complexity and increasing
reusability in ontology engineering.
Bridging Software Languages and Ontology Technologies: Tutorial at SPLASH 2010
An interest to strengthen semantics in modeling and metamodeling that gained scientific and commercial attention is the integration of ontology technology and software development. Ontology formalisms for consistency validation and dynamic classification as well as semantic web technologies for enabling shared terminologies and automated reasoning provide means for leveraging metamodeling and language engineering.
This tutorial on Bridging Software Languages and Ontology Technologies at SPLASH 2010 enlightens the potential of ontology and semantic web technology for modeling and metamodeling in software development, positioning it among modeling standards like UML, and MOF; and (2) illustrates ontology-enabled software development with real application scenarios in areas like software design patterns, domain-specific languages and variability management.
Model Driven Engineering with Ontology Technologies
At the Reasoning Web Summer School 2010: Semantic Technologies for Software Engineering we present a lecture on the use of ontology technologies for software modeling in order to carry over advantages from ontology technologies to the software modeling domain. It will turn out that ontology-based metamodels constitute a core means for exploiting expressive ontology reasoning in the software modeling domain while remaining flexible enough to accommodate varying needs of software modelers.
Ecore Models | Metamodels -> OWL Ontologies = OWLizer
UML + OWL Ontology and SPARQL
BPMN process model -> OWL ontology = Validating Process Refinements
More information on this paper


