SlideShare a Scribd company logo
1 of 32
Introduction
Motivation
Background
Solution
Conclusions
.
.
. ..
.
.
A Lightweight Approach for Managing XML
Documents with MDE Languages
Dimitris Kolovos, Louis Rose, James Williams,
Nicholas Matragkas, and Richard Paige
Department of Computer Science, University of York
{dkolovos,louis,jw,nikos,paige}@cs.york.ac.uk
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 1/32
Introduction
Motivation
Background
Solution
Conclusions
.. Introduction
MDE is about automated processing of models
Model (in MDE) = any machine processable document that
contains (meta-)information of interest
Contemporary model management languages (M2M, M2T
etc.) mainly consider models captured atop 3-level
metamodelling architectures
MOF, EMF etc.
In this work we investigate the role of XML in MDE
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 2/32
Introduction
Motivation
Background
Solution
Conclusions
.. XML
.
Pros
..
.
. ..
.
.
Simple syntax
Plenty of tutorials, examples
No need for metamodelling (more agile)
No need for specialised tools: any text editor will do
Most developers already familiar with it
.
Cons
..
.
. ..
.
.
Verbose syntax
Only good for tree-based metadata, no support for types (by
default)
References/types are possible with XML Schema
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 3/32
Introduction
Motivation
Background
Solution
Conclusions
.. EMF vs. XML
XML is technically inferior to EMF
Plain XML is more agile than EMF
XML is immensely more popular
There is much potentially useful (meta-)information already
stored in XML
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 4/32
Introduction
Motivation
Background
Solution
Conclusions
.. Motivation
Enable agile MDE
Bring MDE to XML-literate developers without forcing them
to engage with metamodelling architectures
Lower the entry barrier by introducing one thing at a time
If MDE pays off, transition to a proper metamodelling
architecture should be less of an issue
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 5/32
Introduction
Motivation
Background
Solution
Conclusions
.. How?
Enable model management languages to manage schema-less
XML documents (playing the role of models)
To automate tasks such as model transformation, code
generation, model validation etc.
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 6/32
Introduction
Motivation
Background
Solution
Conclusions
.. Epsilon - www.eclipse.org/epsilon
A family of modelling technology-agnostic model management
languages for
Code generation (EGL)
Model transformation (ETL)
Model validation (EVL)
Model comparison (ECL)
...
All Epsilon languages reuse a common expression language
(Epsilon Object Language) and as such, they are consistent
and interoperable with each other
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 7/32
Introduction
Motivation
Background
Solution
Conclusions
.. Epsilon Model Connectivity
Epsilon Languages are decoupled from underlying modelling
technologies through the Epsilon Model Connectivity layer
Support for concrete modelling technologies can be
implemented in the form of EMC drivers
In this work we have implemented a new EMC driver for XML
documents
Epsilon Object Language (EOL)
Epsilon Model Connectivity (EMC)
EMF
(XMI 2.x)
MDR
(XMI 1.x)
Z (CZT) XML
Transformation
Language (ETL)
Validation
Language (EVL)
Migration Language (Flock)
Model-to-Text
Language (EGL)
Refactoring
Language (EWL)
Comparison
Language (ECL)
Merging
Language (EML)
Unit Testing Framework (EUnit)
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 8/32
Introduction
Motivation
Background
Solution
Conclusions
.. Attack Plan
...1 Introduce a small XML document
...2 Demonstrate how EOL can query/modify it through the new
XML driver
...3 Demonstrate how the XML driver is leveraged by task specific
languages
Epsilon Transformation Language (ETL)
Epsilon Validation Language (EVL)
Epsilon Generation Language (EGL)
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 9/32
Introduction
Motivation
Background
Solution
Conclusions
.. Example
<library>
<book title="Eclipse Modeling Project: A Domain-Specific
Language (DSL) Toolkit" pages="736">
<author>Richard Gronback</author>
<published>2009</published>
</book>
<book title="Official Eclipse 3.0 FAQs"
pages="432">
<author>John Arthorne</author>
<author>Chris Laffra</author>
<published>2004</published>
</book>
</library>
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 10/32
Introduction
Motivation
Background
Solution
Conclusions
.. Example (in Ecore)
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 11/32
Introduction
Motivation
Background
Solution
Conclusions
.. Working with Types in EMF
// Get all Book elements
var books = Book.all;
// Get a random book
var b = books.random();
// Check if b is a book
// Prints 'true'
b.isTypeOf(Book).println();
// Check if b is a library
// Prints 'false'
b.isTypeOf(Library).println();
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 12/32
Introduction
Motivation
Background
Solution
Conclusions
.. Emulating Types in XML
.
.
. ..
.
.
The t_ prefix before the name of a tag is used to emulate a
type, instances of which are all the elements with that tag.
// Get all <book> elements
var books = t_book.all;
// Get a random book
var b = books.random();
// Check if b is a book
// Prints 'true'
b.isTypeOf(t_book).println();
// Check if b is a library
// Prints 'false'
b.isTypeOf(t_library).println();
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 13/32
Introduction
Motivation
Background
Solution
Conclusions
.. Getting and Setting Attribute Values in EMF
// Print all the titles of the books in the library
for (b in Book.all) {
b.title.println();
}
// Print the total number of pages of all books
var total = 0;
for (b in Book.all) {
total = total + b.pages;
}
total.print();
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 14/32
Introduction
Motivation
Background
Solution
Conclusions
.. Getting and Setting Attribute Values in XML
.
.
. ..
.
.
An attribute name, prefixed by a_, can be used as a property
of the element object.
The driver also supports the following prefixes: b_ for boolean,
s_ for string (alias of a_) and r_ for real values.
// Print all the titles of the books in the library
for (b in t_book.all) {
b.a_title.println();
}
// Print the total number of pages of all books
var total = 0;
for (b in t_book.all) {
total = total + b.i_pages;
}
total.print();
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 15/32
Introduction
Motivation
Background
Solution
Conclusions
.. Navigating References in EMF
// Get a random book
var b = Book.all.random();
// Get its author
var authors = b.authors;
// Get its published element and print its text
b.published.year.println();
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 16/32
Introduction
Motivation
Background
Solution
Conclusions
.. Getting Child Elements by Tag Name in XML
.
.
. ..
.
.
The driver supports e_ and c_-prefixed shorthand properties
for accessing one or a collection of elements with the specified
name respectively.
e_ and c_ properties are read-only.
// Get a random book
var b = t_book.all.random();
// Get its <author> children
var authors = b.c_author;
// Get its <published> child and print its text
b.e_published.text.println();
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 17/32
Introduction
Motivation
Background
Solution
Conclusions
.. Creating new Elements in EMF
// Check how many books are in the library
// Prints '2'
Book.all.size().println();
// Creates a new book element
var b = new Book;
// Check again
// Prints '3'
Book.all.size().println();
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 18/32
Introduction
Motivation
Background
Solution
Conclusions
.. Creating new Elements in XML
.
.
. ..
.
.
The standard new operator can be used to create new
elements in the XML document.
// Check how many <books> are in the library
// Prints '2'
t_book.all.size().println();
// Creates a new book element
var b = new t_book;
// Check again
// Prints '3'
t_book.all.size().println();
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 19/32
Introduction
Motivation
Background
Solution
Conclusions
.. Another example
<model>
<class name="Customer">
<property name="name" type="String"/>
<property name="address" type="Address"/>
</class>
<class name="Invoice">
<property name="serialNumber" type="String"/>
<property name="customer" type="Customer"/>
<property name="items" type="InvoiceItem"
many="true"/>
</class>
...
</model>
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 20/32
Introduction
Motivation
Background
Solution
Conclusions
.. Validation Constraints with EVL
.
.
. ..
.
.
Constraint that checks that the type of each property in the
XML model corresponds to a defined type (class or datatype).
import "util.eol";
context t_property {
constraint TypeMustBeDefined {
check : typeForName(self.a_type).isDefined()
message : "Property " + self.a_name + " of class "
+ self.parentNode.a_name
+ " is of unknown type: " + self.a_type
}
}
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 21/32
Introduction
Motivation
Background
Solution
Conclusions
.. typeForName()
operation typeForName(type : String) {
return allTypes().selectOne(t|t.a_name = type);
}
operation allTypes() : List {
return XML!t_class.all.includingAll(XML!t_datatype.all);
}
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 22/32
Introduction
Motivation
Background
Solution
Conclusions
.. Model Transformation with ETL
.
.
. ..
.
.
Transformation that produces an EMF-based UML model
from the XML document.
import "util.eol";
rule t_model2Model
transform s : XML!t_model
to t : UML!Model {
t.packagedElement.addAll(s.children.equivalent());
}
(continued...)
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 23/32
Introduction
Motivation
Background
Solution
Conclusions
.. Model Transformation with ETL
rule t_class2Class
transform s : XML!t_class
to t : UML!Class {
t.name = s.a_name;
t.ownedAttribute.addAll(s.children.equivalent().
select(e|e.isTypeOf(UML!Property)));
}
...
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 24/32
Introduction
Motivation
Background
Solution
Conclusions
.. Case Study: MDE for EU Grant Proposals
.
Problem
..
.
. ..
.
.
Grant proposals contain significant duplication
e.g. tables of effort per work package, per partner, per activity
type
Figures can quickly become inconsistent across the proposal
.
Solution
..
.
. ..
.
.
Used XML to capture core information about the proposal
Work packages, partners, tasks, deliverables etc.
Developed a model-to-text transformation to generate all
required tables in the form of LATEX code from the XML
document
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 25/32
Introduction
Motivation
Background
Solution
Conclusions
.. Project data in XML
<wp title="Requirements and Use Cases" leader="TOG" type="RTD">
<effort partner="TOG" months="6"/>
<effort partner="YORK" months="6"/>
<effort partner="UDA" months="2"/>
<effort partner="CWI" months="5"/>
...
<effort partner="UI" months="3"/>
<task title="Use Case Analysis" start="1" end="6"
partners="*"/>
<task title="Technology Analysis" start="3" end="6"
partners="*"/>
<task title="Evaluation Planning" start="4" end="6"
partners="*"/>
<deliverable title="Project Requirements" due="6"
nature="R" dissemination="CO" partner="TOG"/>
<deliverable title="Evaluation Plan" due="6"
nature="R" dissemination="CO" partner="TOG"/>
</wp>
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 26/32
Introduction
Motivation
Background
Solution
Conclusions
.. EGL M2T Transformation
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 27/32
Introduction
Motivation
Background
Solution
Conclusions
.. Generated LaTeX
newcommand{workPackageOneEffortTable} {
begin{longtable} {|p{4.4cm}|p{2.8cm}|p{2.8cm}|p{2.8cm}|p{2.8cm}|}
caption{Effort table for WP1}
label{tab:workPackageOneEffortTable}hline
textbf{Work package} & 1 & multicolumn{2}{l|}{textbf{Start date
}} & 1 hline
textbf{Work package title} & multicolumn{4}{p{11.2cm}|}{
Requirements and Use Cases}hline
textbf{Activity type} & multicolumn{4}{l|}{RTD}hline
textbf{Participant name} & textbf{TOG} & YORK & CWI & UDA 
hline
textbf{Person-months} & textbf{6} & 6 & 5 & 2 hline
textbf{Participant name} & UNIMAN & TEC & ST & UNINOVA hline
textbf{Person-months} & 2 & 4 & 6 & 4.5 hline
textbf{Participant name} & UI & & & hline
textbf{Person-months} & 3 & & & hline
end{longtable}
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 28/32
Introduction
Motivation
Background
Solution
Conclusions
.. Rendered Table318736 OSSMETER
A6. Work Package Descriptions
A6.1. WP1: Requirements and Use Cases
Table 4: E↵ort table for WP1
Work package 1 Start date 1
Work package title Requirements and Use Cases
Activity type RTD
Participant name TOG YORK CWI UDA
Person-months 6 6 5 2
Participant name UNIMAN TEC ST UNINOVA
Person-months 2 4 6 4.5
Participant name UI
Person-months 3
Objectives:
Within this workpackage the requirements will be defined for the new open source analysis tools,
technologies and processes to assist European software developers and decision makers, which are
driven from both an industry and technology perspective.
The use cases provided by the industrial user partners in the project will be analysed and industry
driven requirements for the project will be defined and prioritised. The technology partners will
further detail technical requirements that address the industrial user needs within the use cases and
fulfill the technological breakthroughs targeted by the project. Requirements will be established for
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 29/32
Introduction
Motivation
Background
Solution
Conclusions
.. Observations
XML’s agility makes it ideal for quick prototyping
No need to design a metamodel first
Model evolution is easy
Model management code is more verbose with plain XML
models
e_, c_, a_, t_ prefixes
Programmatic not-containment reference resolution
Referential integrity must be validated programmatically
Increasing motivation to move to a proper modelling
framework as the metamodel stabilises and complexity
increases
Migration to EMF is manual (so far) but straightforward
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 30/32
Introduction
Motivation
Background
Solution
Conclusions
.. Summary
Presented a new driver for Epsilon that enables plain XML
documents to be managed as models
The proposed approach aims at lowering the MDE entrance
barrier for XML-literate developers, and at enabling agile MDE
Sub-optimal MDE is better than no MDE
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 31/32
Introduction
Motivation
Background
Solution
Conclusions
.. Download
Available at http://www.eclipse.org/epsilon/download
D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 32/32

More Related Content

What's hot

Chapter 22- Software Configuration Management.ppt
Chapter 22- Software Configuration Management.pptChapter 22- Software Configuration Management.ppt
Chapter 22- Software Configuration Management.pptTanzinAhammad
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Software Architecture Lab
Software Architecture LabSoftware Architecture Lab
Software Architecture LabHenry Muccini
 
aboutDEXCS2023-OF.pdf
aboutDEXCS2023-OF.pdfaboutDEXCS2023-OF.pdf
aboutDEXCS2023-OF.pdfEtsuji Nomura
 
5.state diagrams
5.state diagrams5.state diagrams
5.state diagramsAPU
 
Visual Basic menu
Visual Basic menuVisual Basic menu
Visual Basic menukuldeep94
 
Public presentations for software engineers
Public presentations for software engineersPublic presentations for software engineers
Public presentations for software engineersRoman Nikitchenko
 
Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps
Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps
Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps Eason Kuo
 
The Ultimate Sequence Diagram Tutorial
The Ultimate Sequence Diagram TutorialThe Ultimate Sequence Diagram Tutorial
The Ultimate Sequence Diagram TutorialCreately
 
Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysisDestinationQA
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelmohamed khalaf alla mohamedain
 
Software Patterns
Software PatternsSoftware Patterns
Software Patternskim.mens
 
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database clusterGrokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database clusterGrokking VN
 
Agile & Iconix sdlc
Agile & Iconix sdlcAgile & Iconix sdlc
Agile & Iconix sdlcAhmed Nehad
 

What's hot (20)

Formal Methods
Formal MethodsFormal Methods
Formal Methods
 
Chapter 22- Software Configuration Management.ppt
Chapter 22- Software Configuration Management.pptChapter 22- Software Configuration Management.ppt
Chapter 22- Software Configuration Management.ppt
 
OOP design patterns
OOP design patternsOOP design patterns
OOP design patterns
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Software Architecture Lab
Software Architecture LabSoftware Architecture Lab
Software Architecture Lab
 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
aboutDEXCS2023-OF.pdf
aboutDEXCS2023-OF.pdfaboutDEXCS2023-OF.pdf
aboutDEXCS2023-OF.pdf
 
5.state diagrams
5.state diagrams5.state diagrams
5.state diagrams
 
Visual Basic menu
Visual Basic menuVisual Basic menu
Visual Basic menu
 
Public presentations for software engineers
Public presentations for software engineersPublic presentations for software engineers
Public presentations for software engineers
 
Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps
Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps
Implementing Domain-Driven Design (Study Group) Chapter 3 - Context Maps
 
UML
UMLUML
UML
 
The Ultimate Sequence Diagram Tutorial
The Ultimate Sequence Diagram TutorialThe Ultimate Sequence Diagram Tutorial
The Ultimate Sequence Diagram Tutorial
 
Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysis
 
Use case diagram
Use case diagramUse case diagram
Use case diagram
 
Design patterns
Design patternsDesign patterns
Design patterns
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database clusterGrokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
 
Agile & Iconix sdlc
Agile & Iconix sdlcAgile & Iconix sdlc
Agile & Iconix sdlc
 

Viewers also liked

EclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraEclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraMichaël Figuière
 
E(fx)clipse eclipse con
E(fx)clipse   eclipse conE(fx)clipse   eclipse con
E(fx)clipse eclipse conTom Schindl
 
The Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkThe Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkAlexander Nyßen
 
Combining Text and Graphics in Eclipse-based Modeling Tools
Combining Text and Graphics in Eclipse-based Modeling ToolsCombining Text and Graphics in Eclipse-based Modeling Tools
Combining Text and Graphics in Eclipse-based Modeling ToolsDr. Jan Köhnlein
 
What's up GMF Tooling?
What's up GMF Tooling?What's up GMF Tooling?
What's up GMF Tooling?Mickael Istria
 
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...Dimitris Kolovos
 
GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11Chauvin Mariot
 
Graphiti and GMF Compared
Graphiti and GMF ComparedGraphiti and GMF Compared
Graphiti and GMF Comparedkoentsje
 
Fight your technical debt with Jenkins, Jacoco and Sonar
Fight your technical debt with Jenkins, Jacoco and SonarFight your technical debt with Jenkins, Jacoco and Sonar
Fight your technical debt with Jenkins, Jacoco and SonarMickael Istria
 
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Dimitris Kolovos
 

Viewers also liked (14)

Epsilon
EpsilonEpsilon
Epsilon
 
EclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache CassandraEclipseCon - Building an IDE for Apache Cassandra
EclipseCon - Building an IDE for Apache Cassandra
 
E(fx)clipse eclipse con
E(fx)clipse   eclipse conE(fx)clipse   eclipse con
E(fx)clipse eclipse con
 
The Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing FrameworkThe Next Generation Eclipse Graphical Editing Framework
The Next Generation Eclipse Graphical Editing Framework
 
GEF4 - Sightseeing Mars
GEF4 - Sightseeing MarsGEF4 - Sightseeing Mars
GEF4 - Sightseeing Mars
 
GEF(4) Dot Oh Dot Oh
GEF(4) Dot Oh Dot OhGEF(4) Dot Oh Dot Oh
GEF(4) Dot Oh Dot Oh
 
Combining Text and Graphics in Eclipse-based Modeling Tools
Combining Text and Graphics in Eclipse-based Modeling ToolsCombining Text and Graphics in Eclipse-based Modeling Tools
Combining Text and Graphics in Eclipse-based Modeling Tools
 
What's up GMF Tooling?
What's up GMF Tooling?What's up GMF Tooling?
What's up GMF Tooling?
 
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
 
GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11GMF : Create your graphical DSL - EclipseCon 11
GMF : Create your graphical DSL - EclipseCon 11
 
Graphiti and GMF Compared
Graphiti and GMF ComparedGraphiti and GMF Compared
Graphiti and GMF Compared
 
Eugenia
EugeniaEugenia
Eugenia
 
Fight your technical debt with Jenkins, Jacoco and Sonar
Fight your technical debt with Jenkins, Jacoco and SonarFight your technical debt with Jenkins, Jacoco and Sonar
Fight your technical debt with Jenkins, Jacoco and Sonar
 
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
 

Similar to Managing XML documents with Epsilon

04 sm3 xml_xp_07
04 sm3 xml_xp_0704 sm3 xml_xp_07
04 sm3 xml_xp_07Niit Care
 
OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?Antonio García-Domínguez
 
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATIONMODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATIONijcseit
 
Learning Outcomes & Learner Achievements Management in Higher Ed
Learning Outcomes & Learner Achievements Management in Higher EdLearning Outcomes & Learner Achievements Management in Higher Ed
Learning Outcomes & Learner Achievements Management in Higher EdJad Najjar
 
NAACL2015 presentation
NAACL2015 presentationNAACL2015 presentation
NAACL2015 presentationHan Xu, PhD
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller ColumnsJonathan Fine
 
epicenter2010 Open Xml
epicenter2010   Open Xmlepicenter2010   Open Xml
epicenter2010 Open XmlCraig Murphy
 
notesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Toolsnotesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling ToolsTonny Madsen
 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Alexandro Colorado
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)Jordi Cabot
 
NL to OCL via SBVR
NL to OCL via SBVRNL to OCL via SBVR
NL to OCL via SBVRImran Bajwa
 
Keyword-based Search and Exploration on Databases (SIGMOD 2011)
Keyword-based Search and Exploration on Databases (SIGMOD 2011)Keyword-based Search and Exploration on Databases (SIGMOD 2011)
Keyword-based Search and Exploration on Databases (SIGMOD 2011)weiw_oz
 
Improved Presentation and Facade Layer Operations for Software Engineering Pr...
Improved Presentation and Facade Layer Operations for Software Engineering Pr...Improved Presentation and Facade Layer Operations for Software Engineering Pr...
Improved Presentation and Facade Layer Operations for Software Engineering Pr...Dr. Amarjeet Singh
 
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisCompiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisEelco Visser
 
Automated Translation among EPSILON Languages for Performance-Driven UML Sof...
Automated Translation among EPSILON Languages for Performance-Driven  UML Sof...Automated Translation among EPSILON Languages for Performance-Driven  UML Sof...
Automated Translation among EPSILON Languages for Performance-Driven UML Sof...Daniele Di Pompeo
 

Similar to Managing XML documents with Epsilon (20)

04 sm3 xml_xp_07
04 sm3 xml_xp_0704 sm3 xml_xp_07
04 sm3 xml_xp_07
 
OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?
 
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATIONMODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
MODULAR AND DIDACTIC COMPILER DESIGN WITH XML INTER-PHASES COMMUNICATION
 
Learning Outcomes & Learner Achievements Management in Higher Ed
Learning Outcomes & Learner Achievements Management in Higher EdLearning Outcomes & Learner Achievements Management in Higher Ed
Learning Outcomes & Learner Achievements Management in Higher Ed
 
Session 5
Session 5Session 5
Session 5
 
NAACL2015 presentation
NAACL2015 presentationNAACL2015 presentation
NAACL2015 presentation
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller Columns
 
epicenter2010 Open Xml
epicenter2010   Open Xmlepicenter2010   Open Xml
epicenter2010 Open Xml
 
notesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Toolsnotesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Tools
 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
 
ALT
ALTALT
ALT
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
UML01
UML01UML01
UML01
 
NL to OCL via SBVR
NL to OCL via SBVRNL to OCL via SBVR
NL to OCL via SBVR
 
XML data binding
XML data bindingXML data binding
XML data binding
 
Keyword-based Search and Exploration on Databases (SIGMOD 2011)
Keyword-based Search and Exploration on Databases (SIGMOD 2011)Keyword-based Search and Exploration on Databases (SIGMOD 2011)
Keyword-based Search and Exploration on Databases (SIGMOD 2011)
 
Improved Presentation and Facade Layer Operations for Software Engineering Pr...
Improved Presentation and Facade Layer Operations for Software Engineering Pr...Improved Presentation and Facade Layer Operations for Software Engineering Pr...
Improved Presentation and Facade Layer Operations for Software Engineering Pr...
 
Compiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static AnalysisCompiler Construction | Lecture 6 | Introduction to Static Analysis
Compiler Construction | Lecture 6 | Introduction to Static Analysis
 
Automated Translation among EPSILON Languages for Performance-Driven UML Sof...
Automated Translation among EPSILON Languages for Performance-Driven  UML Sof...Automated Translation among EPSILON Languages for Performance-Driven  UML Sof...
Automated Translation among EPSILON Languages for Performance-Driven UML Sof...
 

More from Dimitris Kolovos

Picto: Model Visualisation via M2T Transformation
Picto: Model Visualisation via M2T TransformationPicto: Model Visualisation via M2T Transformation
Picto: Model Visualisation via M2T TransformationDimitris Kolovos
 
The Epsilon Pattern Language
The Epsilon Pattern LanguageThe Epsilon Pattern Language
The Epsilon Pattern LanguageDimitris Kolovos
 
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...Dimitris Kolovos
 
Partial Loading of XMI Models
Partial Loading of XMI ModelsPartial Loading of XMI Models
Partial Loading of XMI ModelsDimitris Kolovos
 
Merging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade LaterMerging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade LaterDimitris Kolovos
 
Assessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software ProjectsAssessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software ProjectsDimitris Kolovos
 
Code Generation as a Service
Code Generation as a ServiceCode Generation as a Service
Code Generation as a ServiceDimitris Kolovos
 
Eclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the DataEclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the DataDimitris Kolovos
 
Adding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE ToolboxAdding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE ToolboxDimitris Kolovos
 
Programmatic Muddle Management
Programmatic Muddle ManagementProgrammatic Muddle Management
Programmatic Muddle ManagementDimitris Kolovos
 
COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)Dimitris Kolovos
 

More from Dimitris Kolovos (11)

Picto: Model Visualisation via M2T Transformation
Picto: Model Visualisation via M2T TransformationPicto: Model Visualisation via M2T Transformation
Picto: Model Visualisation via M2T Transformation
 
The Epsilon Pattern Language
The Epsilon Pattern LanguageThe Epsilon Pattern Language
The Epsilon Pattern Language
 
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
Re-Implementing Apache Thrift using Model-Driven Engineering Technologies: An...
 
Partial Loading of XMI Models
Partial Loading of XMI ModelsPartial Loading of XMI Models
Partial Loading of XMI Models
 
Merging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade LaterMerging Models with the Epsilon Merging Language - A Decade Later
Merging Models with the Epsilon Merging Language - A Decade Later
 
Assessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software ProjectsAssessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
Assessing the Use of Eclipse MDE Technologies in Open-Source Software Projects
 
Code Generation as a Service
Code Generation as a ServiceCode Generation as a Service
Code Generation as a Service
 
Eclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the DataEclipse Modellng Forums: Looking at the Data
Eclipse Modellng Forums: Looking at the Data
 
Adding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE ToolboxAdding Spreadsheets to the MDE Toolbox
Adding Spreadsheets to the MDE Toolbox
 
Programmatic Muddle Management
Programmatic Muddle ManagementProgrammatic Muddle Management
Programmatic Muddle Management
 
COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)COMPASS Early Safety Warning System (ESWS)
COMPASS Early Safety Warning System (ESWS)
 

Recently uploaded

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Managing XML documents with Epsilon

  • 1. Introduction Motivation Background Solution Conclusions . . . .. . . A Lightweight Approach for Managing XML Documents with MDE Languages Dimitris Kolovos, Louis Rose, James Williams, Nicholas Matragkas, and Richard Paige Department of Computer Science, University of York {dkolovos,louis,jw,nikos,paige}@cs.york.ac.uk D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 1/32
  • 2. Introduction Motivation Background Solution Conclusions .. Introduction MDE is about automated processing of models Model (in MDE) = any machine processable document that contains (meta-)information of interest Contemporary model management languages (M2M, M2T etc.) mainly consider models captured atop 3-level metamodelling architectures MOF, EMF etc. In this work we investigate the role of XML in MDE D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 2/32
  • 3. Introduction Motivation Background Solution Conclusions .. XML . Pros .. . . .. . . Simple syntax Plenty of tutorials, examples No need for metamodelling (more agile) No need for specialised tools: any text editor will do Most developers already familiar with it . Cons .. . . .. . . Verbose syntax Only good for tree-based metadata, no support for types (by default) References/types are possible with XML Schema D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 3/32
  • 4. Introduction Motivation Background Solution Conclusions .. EMF vs. XML XML is technically inferior to EMF Plain XML is more agile than EMF XML is immensely more popular There is much potentially useful (meta-)information already stored in XML D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 4/32
  • 5. Introduction Motivation Background Solution Conclusions .. Motivation Enable agile MDE Bring MDE to XML-literate developers without forcing them to engage with metamodelling architectures Lower the entry barrier by introducing one thing at a time If MDE pays off, transition to a proper metamodelling architecture should be less of an issue D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 5/32
  • 6. Introduction Motivation Background Solution Conclusions .. How? Enable model management languages to manage schema-less XML documents (playing the role of models) To automate tasks such as model transformation, code generation, model validation etc. D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 6/32
  • 7. Introduction Motivation Background Solution Conclusions .. Epsilon - www.eclipse.org/epsilon A family of modelling technology-agnostic model management languages for Code generation (EGL) Model transformation (ETL) Model validation (EVL) Model comparison (ECL) ... All Epsilon languages reuse a common expression language (Epsilon Object Language) and as such, they are consistent and interoperable with each other D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 7/32
  • 8. Introduction Motivation Background Solution Conclusions .. Epsilon Model Connectivity Epsilon Languages are decoupled from underlying modelling technologies through the Epsilon Model Connectivity layer Support for concrete modelling technologies can be implemented in the form of EMC drivers In this work we have implemented a new EMC driver for XML documents Epsilon Object Language (EOL) Epsilon Model Connectivity (EMC) EMF (XMI 2.x) MDR (XMI 1.x) Z (CZT) XML Transformation Language (ETL) Validation Language (EVL) Migration Language (Flock) Model-to-Text Language (EGL) Refactoring Language (EWL) Comparison Language (ECL) Merging Language (EML) Unit Testing Framework (EUnit) D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 8/32
  • 9. Introduction Motivation Background Solution Conclusions .. Attack Plan ...1 Introduce a small XML document ...2 Demonstrate how EOL can query/modify it through the new XML driver ...3 Demonstrate how the XML driver is leveraged by task specific languages Epsilon Transformation Language (ETL) Epsilon Validation Language (EVL) Epsilon Generation Language (EGL) D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 9/32
  • 10. Introduction Motivation Background Solution Conclusions .. Example <library> <book title="Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit" pages="736"> <author>Richard Gronback</author> <published>2009</published> </book> <book title="Official Eclipse 3.0 FAQs" pages="432"> <author>John Arthorne</author> <author>Chris Laffra</author> <published>2004</published> </book> </library> D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 10/32
  • 11. Introduction Motivation Background Solution Conclusions .. Example (in Ecore) D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 11/32
  • 12. Introduction Motivation Background Solution Conclusions .. Working with Types in EMF // Get all Book elements var books = Book.all; // Get a random book var b = books.random(); // Check if b is a book // Prints 'true' b.isTypeOf(Book).println(); // Check if b is a library // Prints 'false' b.isTypeOf(Library).println(); D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 12/32
  • 13. Introduction Motivation Background Solution Conclusions .. Emulating Types in XML . . . .. . . The t_ prefix before the name of a tag is used to emulate a type, instances of which are all the elements with that tag. // Get all <book> elements var books = t_book.all; // Get a random book var b = books.random(); // Check if b is a book // Prints 'true' b.isTypeOf(t_book).println(); // Check if b is a library // Prints 'false' b.isTypeOf(t_library).println(); D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 13/32
  • 14. Introduction Motivation Background Solution Conclusions .. Getting and Setting Attribute Values in EMF // Print all the titles of the books in the library for (b in Book.all) { b.title.println(); } // Print the total number of pages of all books var total = 0; for (b in Book.all) { total = total + b.pages; } total.print(); D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 14/32
  • 15. Introduction Motivation Background Solution Conclusions .. Getting and Setting Attribute Values in XML . . . .. . . An attribute name, prefixed by a_, can be used as a property of the element object. The driver also supports the following prefixes: b_ for boolean, s_ for string (alias of a_) and r_ for real values. // Print all the titles of the books in the library for (b in t_book.all) { b.a_title.println(); } // Print the total number of pages of all books var total = 0; for (b in t_book.all) { total = total + b.i_pages; } total.print(); D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 15/32
  • 16. Introduction Motivation Background Solution Conclusions .. Navigating References in EMF // Get a random book var b = Book.all.random(); // Get its author var authors = b.authors; // Get its published element and print its text b.published.year.println(); D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 16/32
  • 17. Introduction Motivation Background Solution Conclusions .. Getting Child Elements by Tag Name in XML . . . .. . . The driver supports e_ and c_-prefixed shorthand properties for accessing one or a collection of elements with the specified name respectively. e_ and c_ properties are read-only. // Get a random book var b = t_book.all.random(); // Get its <author> children var authors = b.c_author; // Get its <published> child and print its text b.e_published.text.println(); D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 17/32
  • 18. Introduction Motivation Background Solution Conclusions .. Creating new Elements in EMF // Check how many books are in the library // Prints '2' Book.all.size().println(); // Creates a new book element var b = new Book; // Check again // Prints '3' Book.all.size().println(); D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 18/32
  • 19. Introduction Motivation Background Solution Conclusions .. Creating new Elements in XML . . . .. . . The standard new operator can be used to create new elements in the XML document. // Check how many <books> are in the library // Prints '2' t_book.all.size().println(); // Creates a new book element var b = new t_book; // Check again // Prints '3' t_book.all.size().println(); D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 19/32
  • 20. Introduction Motivation Background Solution Conclusions .. Another example <model> <class name="Customer"> <property name="name" type="String"/> <property name="address" type="Address"/> </class> <class name="Invoice"> <property name="serialNumber" type="String"/> <property name="customer" type="Customer"/> <property name="items" type="InvoiceItem" many="true"/> </class> ... </model> D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 20/32
  • 21. Introduction Motivation Background Solution Conclusions .. Validation Constraints with EVL . . . .. . . Constraint that checks that the type of each property in the XML model corresponds to a defined type (class or datatype). import "util.eol"; context t_property { constraint TypeMustBeDefined { check : typeForName(self.a_type).isDefined() message : "Property " + self.a_name + " of class " + self.parentNode.a_name + " is of unknown type: " + self.a_type } } D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 21/32
  • 22. Introduction Motivation Background Solution Conclusions .. typeForName() operation typeForName(type : String) { return allTypes().selectOne(t|t.a_name = type); } operation allTypes() : List { return XML!t_class.all.includingAll(XML!t_datatype.all); } D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 22/32
  • 23. Introduction Motivation Background Solution Conclusions .. Model Transformation with ETL . . . .. . . Transformation that produces an EMF-based UML model from the XML document. import "util.eol"; rule t_model2Model transform s : XML!t_model to t : UML!Model { t.packagedElement.addAll(s.children.equivalent()); } (continued...) D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 23/32
  • 24. Introduction Motivation Background Solution Conclusions .. Model Transformation with ETL rule t_class2Class transform s : XML!t_class to t : UML!Class { t.name = s.a_name; t.ownedAttribute.addAll(s.children.equivalent(). select(e|e.isTypeOf(UML!Property))); } ... D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 24/32
  • 25. Introduction Motivation Background Solution Conclusions .. Case Study: MDE for EU Grant Proposals . Problem .. . . .. . . Grant proposals contain significant duplication e.g. tables of effort per work package, per partner, per activity type Figures can quickly become inconsistent across the proposal . Solution .. . . .. . . Used XML to capture core information about the proposal Work packages, partners, tasks, deliverables etc. Developed a model-to-text transformation to generate all required tables in the form of LATEX code from the XML document D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 25/32
  • 26. Introduction Motivation Background Solution Conclusions .. Project data in XML <wp title="Requirements and Use Cases" leader="TOG" type="RTD"> <effort partner="TOG" months="6"/> <effort partner="YORK" months="6"/> <effort partner="UDA" months="2"/> <effort partner="CWI" months="5"/> ... <effort partner="UI" months="3"/> <task title="Use Case Analysis" start="1" end="6" partners="*"/> <task title="Technology Analysis" start="3" end="6" partners="*"/> <task title="Evaluation Planning" start="4" end="6" partners="*"/> <deliverable title="Project Requirements" due="6" nature="R" dissemination="CO" partner="TOG"/> <deliverable title="Evaluation Plan" due="6" nature="R" dissemination="CO" partner="TOG"/> </wp> D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 26/32
  • 27. Introduction Motivation Background Solution Conclusions .. EGL M2T Transformation D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 27/32
  • 28. Introduction Motivation Background Solution Conclusions .. Generated LaTeX newcommand{workPackageOneEffortTable} { begin{longtable} {|p{4.4cm}|p{2.8cm}|p{2.8cm}|p{2.8cm}|p{2.8cm}|} caption{Effort table for WP1} label{tab:workPackageOneEffortTable}hline textbf{Work package} & 1 & multicolumn{2}{l|}{textbf{Start date }} & 1 hline textbf{Work package title} & multicolumn{4}{p{11.2cm}|}{ Requirements and Use Cases}hline textbf{Activity type} & multicolumn{4}{l|}{RTD}hline textbf{Participant name} & textbf{TOG} & YORK & CWI & UDA hline textbf{Person-months} & textbf{6} & 6 & 5 & 2 hline textbf{Participant name} & UNIMAN & TEC & ST & UNINOVA hline textbf{Person-months} & 2 & 4 & 6 & 4.5 hline textbf{Participant name} & UI & & & hline textbf{Person-months} & 3 & & & hline end{longtable} D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 28/32
  • 29. Introduction Motivation Background Solution Conclusions .. Rendered Table318736 OSSMETER A6. Work Package Descriptions A6.1. WP1: Requirements and Use Cases Table 4: E↵ort table for WP1 Work package 1 Start date 1 Work package title Requirements and Use Cases Activity type RTD Participant name TOG YORK CWI UDA Person-months 6 6 5 2 Participant name UNIMAN TEC ST UNINOVA Person-months 2 4 6 4.5 Participant name UI Person-months 3 Objectives: Within this workpackage the requirements will be defined for the new open source analysis tools, technologies and processes to assist European software developers and decision makers, which are driven from both an industry and technology perspective. The use cases provided by the industrial user partners in the project will be analysed and industry driven requirements for the project will be defined and prioritised. The technology partners will further detail technical requirements that address the industrial user needs within the use cases and fulfill the technological breakthroughs targeted by the project. Requirements will be established for D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 29/32
  • 30. Introduction Motivation Background Solution Conclusions .. Observations XML’s agility makes it ideal for quick prototyping No need to design a metamodel first Model evolution is easy Model management code is more verbose with plain XML models e_, c_, a_, t_ prefixes Programmatic not-containment reference resolution Referential integrity must be validated programmatically Increasing motivation to move to a proper modelling framework as the metamodel stabilises and complexity increases Migration to EMF is manual (so far) but straightforward D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 30/32
  • 31. Introduction Motivation Background Solution Conclusions .. Summary Presented a new driver for Epsilon that enables plain XML documents to be managed as models The proposed approach aims at lowering the MDE entrance barrier for XML-literate developers, and at enabling agile MDE Sub-optimal MDE is better than no MDE D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 31/32
  • 32. Introduction Motivation Background Solution Conclusions .. Download Available at http://www.eclipse.org/epsilon/download D. Kolovos et. al. | University of York | ECMFA 2012 MDE with plain XML documents - Slide 32/32