SlideShare a Scribd company logo
Dipartimento di Ingegneria e Scienze
Università degli Studi dell’Aquila
dell’Informazione e Matematica
Semantic-based Model Matching with
EMFCompare
Davide Di Ruscio
davide.diruscio@univaq.it
@ddiruscio
Models and Evolution Workshop at MoDELS 2016 – October 2, 2016 – Saint-Malo, France
ME‘16 – October 2, 2016 – Saint-Malo, France
2
Joint work with
Alfonso Pierantonio
Unversity of L’Aquila
(Italy)
Ludovico Iovino
Gran Sasso Science Institute
(Italy)
Juri Di Rocco
Unversity of L’Aquila
(Italy)
Lorenzo Addazi
Malardalen University
(Sweden)
Antonio Cicchetti
Malardalen University
(Sweden)
ME‘16 – October 2, 2016 – Saint-Malo, France
3
Introduction
Model comparison is one of the most challenging
operations in MDE
It underpins a wide range of modelling activities
• E.g., model versioning, evolution, collaborative modeling, …
Calculating model differences relies on the model
matching problem
• It can be reduced to the problem of finding correspondences between
two given graphs (Graph Isomorphism Problem, NP-Hard)
ME‘16 – October 2, 2016 – Saint-Malo, France
4
Introduction
a
b
f
c
e
d
Version 1
a
k
l
c
e
dVersion 2
m
ME‘16 – October 2, 2016 – Saint-Malo, France
5
Introduction
a
b
f
c
e
d
Version 1
a
k
l
c
e
dVersion 2
m
Establish
correspondences
Calculate
differences
ME‘16 – October 2, 2016 – Saint-Malo, France
6
Introduction
a
b
f
c
e
d
Version 1
a
k
l
c
e
dVersion 2
m
Establish
correspondences
Calculate
differences
ME‘16 – October 2, 2016 – Saint-Malo, France
7
Introduction
a
b
f
c
e
d
Version 1
a
k
l
c
e
dVersion 2
m
Establish
correspondences
Calculate
differences
> Rename node b as k
> Rename node f as l
> Add node m
> Add edge from k to m
ME‘16 – October 2, 2016 – Saint-Malo, France
8
Model-matching
Static Identity-Based Matching: each model element
has a persistent unique identifier that is assigned to it
upon creation
Signature-Based Matching: the identifier of each model
element is dynamically calculated by combining the
values of its features
Similarity-Based Matching: models are typed attribute
graphs and matching elements are identified by
considering the aggregated similarity of their features.
Language-Specific Matching: matching algorithms are
tailored to a particular modelling language
ME‘16 – October 2, 2016 – Saint-Malo, France
9
Similiartiy-based matching
Extensible
• Static identity-based or signature-based matching can be also added
by defining custom generator functions
ME‘16 – October 2, 2016 – Saint-Malo, France
10
The default match engine
The Levenshtein distance algorithm is applied on the
string representation of the elements
• For optimisation purposes the models are compared by considering
elements selected within a proper search window
...
foreach (elM1 : Model1.getElements())
foreach (elM2 : elM1.getWindowElements())
result[elM1][elM2] = calculateSimilarity(elM1, elM2)
return createMatches(result)
...
ME‘16 – October 2, 2016 – Saint-Malo, France
11
A meta-model evolution scenario
A University theses management metamodel
ME‘16 – October 2, 2016 – Saint-Malo, France
12
A meta-model evolution scenario
A University theses management metamodel
Extract super class
ME‘16 – October 2, 2016 – Saint-Malo, France
13
A meta-model evolution scenario
A University theses management metamodel
Attribute renaming
ME‘16 – October 2, 2016 – Saint-Malo, France
14
A meta-model evolution scenario
A University theses management metamodel
ME‘16 – October 2, 2016 – Saint-Malo, France
15
A meta-model evolution scenario
A University theses management metamodel
ME‘16 – October 2, 2016 – Saint-Malo, France
16
A meta-model evolution scenario
A University theses management metamodel
ME‘16 – October 2, 2016 – Saint-Malo, France
17
Contextual issues: limited consideration of the
features characterising the elements
surrounding/containing the compared one
Linguistic issues: lack of semantical evaluation of
the features characterizing the compared elements
• False-negative e.g., renaming a given class using a syntactically
different name
• False-positive e.g., renaming a given class using a semantically
different term, which however presents a strong syntactical
similarity
ME‘16 – October 2, 2016 – Saint-Malo, France
19
Proposed approach
Semantic Match Engine
• Use of the WordNet lexical dictionary as ontological source
ME‘16 – October 2, 2016 – Saint-Malo, France
20
WordNet in a nutshell
Lexical database for the English language
English words are grouped into sets of synonyms
(synsets)
Each synset includes
- a generic definition joining the contained words
- semantic relationships connecting it to other synsets
http://www.cs.princeton.edu/courses/archive/fall16/cos226/assignments/wordnet.html
ME‘16 – October 2, 2016 – Saint-Malo, France
21
WordNet in a nutshell
Lexical database for the English language
English words are grouped into sets of synonyms
(synsets)
Each synset includes
- a generic definition joining the contained words
- semantic relationships connecting it to other synsets
http://www.cs.princeton.edu/courses/archive/fall16/cos226/assignments/wordnet.html
ME‘16 – October 2, 2016 – Saint-Malo, France
22
The proposed
semantic model matching
function createMatches(Comparison comparison, List
leftEObjects, List rightEObjects){
SemanticMatch root = createSemanticMatch(null, null);
exploreMatches(root, leftEObjects, rightEObjects);
evaluateMatches(root);
filterMatches(root, comparison);
}
Exploration
Evaluation
Filtering
ME‘16 – October 2, 2016 – Saint-Malo, France
23
The proposed
semantic model matching
function createMatches(Comparison comparison, List
leftEObjects, List rightEObjects){
SemanticMatch root = createSemanticMatch(null, null);
exploreMatches(root, leftEObjects, rightEObjects);
evaluateMatches(root);
filterMatches(root, comparison);
}
Exploration
Evaluation
Filtering
A labelled graph representation of the
compared models is produced
• each node represents a semantic match
• each incoming or outgoing labelled edge
represents a connection with its parents or
children elements
ME‘16 – October 2, 2016 – Saint-Malo, France
24
Type: EAttribute
Source: Student.username
Target: User.password
Sim: null
Type: EClass
Source: Student
Target: User
Sim: null
Type: EClass
Source: Student
Target: Student
Sim: null
Type: EAttribute
Source: Student.password
Target:User.password
Sim: nullType: EAttribute
Source: Student.password
Target: User.username
Sim: nullType: EAttribute
Source: Student.username
Target: User.username
Sim: null
ME‘16 – October 2, 2016 – Saint-Malo, France
25
The proposed
semantic model matching
function createMatches(Comparison comparison, List
leftEObjects, List rightEObjects){
SemanticMatch root = createSemanticMatch(null, null);
exploreMatches(root, leftEObjects, rightEObjects);
evaluateMatches(root);
filterMatches(root, comparison);
}
Exploration
Evaluation
Filtering
Each SemantichMatch node is integrated
with the semantic distance value between
the encapsulated element
ME‘16 – October 2, 2016 – Saint-Malo, France
26
Type: EAttribute
Source: Student.username
Target: User.password
Sim: 0.2
Type: EClass
Source: Student
Target: User
Sim: 0.4
Type: EClass
Source: Student
Target: Student
Sim: 1
Type: EAttribute
Source: Student.password
Target:User.password
Sim: 0.6Type: EAttribute
Source: Student.password
Target: User.username
Sim: 0.2Type: EAttribute
Source: Student.username
Target: User.username
Sim: 0.6
ME‘16 – October 2, 2016 – Saint-Malo, France
27
The proposed
semantic model matching
function createMatches(Comparison comparison, List
leftEObjects, List rightEObjects){
SemanticMatch root = createSemanticMatch(null, null);
exploreMatches(root, leftEObjects, rightEObjects);
evaluateMatches(root);
filterMatches(root, comparison);
}
Exploration
Evaluation
Filtering
The set of SemanticMatch elements are
filtered out with respect to a predefined
threshold
ME‘16 – October 2, 2016 – Saint-Malo, France
28
Type: EAttribute
Source: Student.username
Target: User.password
Sim: 0.2
Type: EClass
Source: Student
Target: User
Sim: 0.4
Type: EClass
Source: Student
Target: Student
Sim: 1
Type: EAttribute
Source: Student.password
Target:User.password
Sim: 0.6Type: EAttribute
ource: Student.password
Target: User.username
Sim: 0.2Type: EAttribute
Source: Student.username
Target: User.username
Sim: 0.6
ME‘16 – October 2, 2016 – Saint-Malo, France
29
Experiments
The Model Exchange Benchmark
• 5 structural modelling languages
• All the possible pairs of metamodels are given as input to:
• Semantic EMFCompare
• EMFCompare
• GAMMA(*)
• Coma++, FOAM, Crosi, Alignment API, AMW
(*) M. Kessentini, A. Ouni, P. Langer, M. Wimmer, and S. Bechikh, “Search-based metamodel matching
with structural and syntactic measures,” J. Syst. Softw., vol. 97, no. C, pp. 1–14, Oct. 2014.
ME‘16 – October 2, 2016 – Saint-Malo, France
30
Experiments
Measures
ME‘16 – October 2, 2016 – Saint-Malo, France
31
Experiments
Measures
It denotes the percentage of
correctly matched elements
with respect to all the
proposed matches
ME‘16 – October 2, 2016 – Saint-Malo, France
32
Experiments
Measures
It denotes the percentage of
correctly matched elements
with respect to all the
expected matches
ME‘16 – October 2, 2016 – Saint-Malo, France
33
Experiments
Measures It combines Precision and
Recall to get an equally
weighted average value of
the measures
ME‘16 – October 2, 2016 – Saint-Malo, France
34
Experiments
GAMMA provides best results with respect to Precision,
Recall, and F-Measure
GAMMA uses SBSE approaches and it requires to be
initialized with a set of initial solutions (knowledge base)
ME‘16 – October 2, 2016 – Saint-Malo, France
35
Experiments
Semantic EMFCompare:
• produces more matches than expected
• in some cases has lower Precision than EMFCompare
• only in one case F-Measure is lower than EMFCompare
ME‘16 – October 2, 2016 – Saint-Malo, France
36
Experiments
ME‘16 – October 2, 2016 – Saint-Malo, France
37
Lessons learnt
Extending EMFCompare with semantic aspects can be
done in a lightweight manner
An increasing matching power can come at the price of
an increasing imprecision (more false-positives and false-
negatives)
The selection of the appropriate dictionary (depending on
the artifacts to be compared) can make the difference
• Comparing metamodels is semantically different than comparing models
of specific domains
Performing experiments can be an issue due to the lack
of models to be used as test cases
• Existing model mutations approaches should be extended to implement
“semantics-aware” mutations
ME‘16 – October 2, 2016 – Saint-Malo, France
38
Conclusion and Future Work
Model comparison is a very complex task
It underpins the management of a wide number of
(meta-)model (co-)evolution scenarios
An extension of the EMFCompare tool has been
proposed to enable “semantics-aware” matches
Further experiments will be performed by considering
the application of different dictionaries depending on
the kinds of artifacts to be matched
ME‘16 – October 2, 2016 – Saint-Malo, France
39

More Related Content

PDF
Collaborative model driven software engineering: a Systematic Mapping Study
PDF
ScientificCV
PDF
Diego Esteves, Pablo Mendes, Diego Moussallem, Julio Cesar Duarte, Amrapali Z...
PDF
MEX Interfaces: Automating Machine Learning Metadata Generation
PDF
«Ejemplos de herramientas que nos facilitan las analíticas de aprendizaje en ...
PDF
Meta-modeling: concepts, tools and applications
PDF
Introductory Lecture to Applied Mathematics Stream
PDF
Early Analysis and Debuggin of Linked Open Data Cubes
Collaborative model driven software engineering: a Systematic Mapping Study
ScientificCV
Diego Esteves, Pablo Mendes, Diego Moussallem, Julio Cesar Duarte, Amrapali Z...
MEX Interfaces: Automating Machine Learning Metadata Generation
«Ejemplos de herramientas que nos facilitan las analíticas de aprendizaje en ...
Meta-modeling: concepts, tools and applications
Introductory Lecture to Applied Mathematics Stream
Early Analysis and Debuggin of Linked Open Data Cubes

Similar to Semantic based model matching with emf compare (20)

PDF
Statistical Modeling: The Two Cultures
PDF
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
PPTX
Digital repertoires of poetry metrics: towards a Linked Open Data ecosystem
PDF
Invited Talk: Early Detection of Research Topics
PDF
M2CAT: Extracting reproducible simulation studies from model repositories usi...
PDF
Model-Driven Generation of MVC2 Web Applications: From Models to Code
PDF
Energy-efficient technology investments using a decision support system frame...
PDF
M2CAT: Extracting reproducible simulation studies from model repositories usi...
PDF
Model Selection And Error Estimation In A Nutshell 1st Ed Luca Oneto
PDF
An interaction meta-model for cooperative component-based user interfaces
PDF
Data science syllabus
PDF
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
PPTX
environmental quality predicti and it's deployment project
PDF
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
PDF
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
PPTX
Clonal Selection Algorithm Parallelization with MPJExpress
PDF
SiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
PPTX
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
PDF
Not Only Statements: The Role of Textual Analysis in Software Quality
PDF
Introduction to Model-Based Machine Learning
Statistical Modeling: The Two Cultures
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
Digital repertoires of poetry metrics: towards a Linked Open Data ecosystem
Invited Talk: Early Detection of Research Topics
M2CAT: Extracting reproducible simulation studies from model repositories usi...
Model-Driven Generation of MVC2 Web Applications: From Models to Code
Energy-efficient technology investments using a decision support system frame...
M2CAT: Extracting reproducible simulation studies from model repositories usi...
Model Selection And Error Estimation In A Nutshell 1st Ed Luca Oneto
An interaction meta-model for cooperative component-based user interfaces
Data science syllabus
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
environmental quality predicti and it's deployment project
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Clonal Selection Algorithm Parallelization with MPJExpress
SiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Not Only Statements: The Role of Textual Analysis in Software Quality
Introduction to Model-Based Machine Learning
Ad

More from Davide Ruscio (11)

PDF
Developing recommendation systems to support open source software developers ...
PDF
Detecting java software similarities by using different clustering
PDF
On the way of listening to the crowd for supporting modeling activities
PDF
FOCUS: A Recommender System for Mining API Function Calls and Usage Patterns
PDF
CrossSim: exploiting mutual relationships to detect similar OSS projects
PDF
Use of MDE to Analyse Open Source Software
PPTX
Consistency Recovery in Interactive Modeling
PPTX
Edelta: an approach for defining and applying reusable metamodel refactorings
PPTX
Model repositories: will they become reality?
PPTX
Mining Correlations of ATL Transformation and Metamodel Metrics
PPTX
MDEForge: an extensible Web-based modeling platform
Developing recommendation systems to support open source software developers ...
Detecting java software similarities by using different clustering
On the way of listening to the crowd for supporting modeling activities
FOCUS: A Recommender System for Mining API Function Calls and Usage Patterns
CrossSim: exploiting mutual relationships to detect similar OSS projects
Use of MDE to Analyse Open Source Software
Consistency Recovery in Interactive Modeling
Edelta: an approach for defining and applying reusable metamodel refactorings
Model repositories: will they become reality?
Mining Correlations of ATL Transformation and Metamodel Metrics
MDEForge: an extensible Web-based modeling platform
Ad

Recently uploaded (20)

PDF
System and Network Administraation Chapter 3
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
assetexplorer- product-overview - presentation
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
medical staffing services at VALiNTRY
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
history of c programming in notes for students .pptx
PPTX
Introduction to Artificial Intelligence
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
System and Network Administraation Chapter 3
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PTS Company Brochure 2025 (1).pdf.......
assetexplorer- product-overview - presentation
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Design an Analysis of Algorithms I-SECS-1021-03
Navsoft: AI-Powered Business Solutions & Custom Software Development
Wondershare Filmora 15 Crack With Activation Key [2025
Reimagine Home Health with the Power of Agentic AI​
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
medical staffing services at VALiNTRY
Computer Software and OS of computer science of grade 11.pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
Design an Analysis of Algorithms II-SECS-1021-03
Softaken Excel to vCard Converter Software.pdf
history of c programming in notes for students .pptx
Introduction to Artificial Intelligence
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool

Semantic based model matching with emf compare

  • 1. Dipartimento di Ingegneria e Scienze Università degli Studi dell’Aquila dell’Informazione e Matematica Semantic-based Model Matching with EMFCompare Davide Di Ruscio davide.diruscio@univaq.it @ddiruscio Models and Evolution Workshop at MoDELS 2016 – October 2, 2016 – Saint-Malo, France
  • 2. ME‘16 – October 2, 2016 – Saint-Malo, France 2 Joint work with Alfonso Pierantonio Unversity of L’Aquila (Italy) Ludovico Iovino Gran Sasso Science Institute (Italy) Juri Di Rocco Unversity of L’Aquila (Italy) Lorenzo Addazi Malardalen University (Sweden) Antonio Cicchetti Malardalen University (Sweden)
  • 3. ME‘16 – October 2, 2016 – Saint-Malo, France 3 Introduction Model comparison is one of the most challenging operations in MDE It underpins a wide range of modelling activities • E.g., model versioning, evolution, collaborative modeling, … Calculating model differences relies on the model matching problem • It can be reduced to the problem of finding correspondences between two given graphs (Graph Isomorphism Problem, NP-Hard)
  • 4. ME‘16 – October 2, 2016 – Saint-Malo, France 4 Introduction a b f c e d Version 1 a k l c e dVersion 2 m
  • 5. ME‘16 – October 2, 2016 – Saint-Malo, France 5 Introduction a b f c e d Version 1 a k l c e dVersion 2 m Establish correspondences Calculate differences
  • 6. ME‘16 – October 2, 2016 – Saint-Malo, France 6 Introduction a b f c e d Version 1 a k l c e dVersion 2 m Establish correspondences Calculate differences
  • 7. ME‘16 – October 2, 2016 – Saint-Malo, France 7 Introduction a b f c e d Version 1 a k l c e dVersion 2 m Establish correspondences Calculate differences > Rename node b as k > Rename node f as l > Add node m > Add edge from k to m
  • 8. ME‘16 – October 2, 2016 – Saint-Malo, France 8 Model-matching Static Identity-Based Matching: each model element has a persistent unique identifier that is assigned to it upon creation Signature-Based Matching: the identifier of each model element is dynamically calculated by combining the values of its features Similarity-Based Matching: models are typed attribute graphs and matching elements are identified by considering the aggregated similarity of their features. Language-Specific Matching: matching algorithms are tailored to a particular modelling language
  • 9. ME‘16 – October 2, 2016 – Saint-Malo, France 9 Similiartiy-based matching Extensible • Static identity-based or signature-based matching can be also added by defining custom generator functions
  • 10. ME‘16 – October 2, 2016 – Saint-Malo, France 10 The default match engine The Levenshtein distance algorithm is applied on the string representation of the elements • For optimisation purposes the models are compared by considering elements selected within a proper search window ... foreach (elM1 : Model1.getElements()) foreach (elM2 : elM1.getWindowElements()) result[elM1][elM2] = calculateSimilarity(elM1, elM2) return createMatches(result) ...
  • 11. ME‘16 – October 2, 2016 – Saint-Malo, France 11 A meta-model evolution scenario A University theses management metamodel
  • 12. ME‘16 – October 2, 2016 – Saint-Malo, France 12 A meta-model evolution scenario A University theses management metamodel Extract super class
  • 13. ME‘16 – October 2, 2016 – Saint-Malo, France 13 A meta-model evolution scenario A University theses management metamodel Attribute renaming
  • 14. ME‘16 – October 2, 2016 – Saint-Malo, France 14 A meta-model evolution scenario A University theses management metamodel
  • 15. ME‘16 – October 2, 2016 – Saint-Malo, France 15 A meta-model evolution scenario A University theses management metamodel
  • 16. ME‘16 – October 2, 2016 – Saint-Malo, France 16 A meta-model evolution scenario A University theses management metamodel
  • 17. ME‘16 – October 2, 2016 – Saint-Malo, France 17 Contextual issues: limited consideration of the features characterising the elements surrounding/containing the compared one Linguistic issues: lack of semantical evaluation of the features characterizing the compared elements • False-negative e.g., renaming a given class using a syntactically different name • False-positive e.g., renaming a given class using a semantically different term, which however presents a strong syntactical similarity
  • 18. ME‘16 – October 2, 2016 – Saint-Malo, France 19 Proposed approach Semantic Match Engine • Use of the WordNet lexical dictionary as ontological source
  • 19. ME‘16 – October 2, 2016 – Saint-Malo, France 20 WordNet in a nutshell Lexical database for the English language English words are grouped into sets of synonyms (synsets) Each synset includes - a generic definition joining the contained words - semantic relationships connecting it to other synsets http://www.cs.princeton.edu/courses/archive/fall16/cos226/assignments/wordnet.html
  • 20. ME‘16 – October 2, 2016 – Saint-Malo, France 21 WordNet in a nutshell Lexical database for the English language English words are grouped into sets of synonyms (synsets) Each synset includes - a generic definition joining the contained words - semantic relationships connecting it to other synsets http://www.cs.princeton.edu/courses/archive/fall16/cos226/assignments/wordnet.html
  • 21. ME‘16 – October 2, 2016 – Saint-Malo, France 22 The proposed semantic model matching function createMatches(Comparison comparison, List leftEObjects, List rightEObjects){ SemanticMatch root = createSemanticMatch(null, null); exploreMatches(root, leftEObjects, rightEObjects); evaluateMatches(root); filterMatches(root, comparison); } Exploration Evaluation Filtering
  • 22. ME‘16 – October 2, 2016 – Saint-Malo, France 23 The proposed semantic model matching function createMatches(Comparison comparison, List leftEObjects, List rightEObjects){ SemanticMatch root = createSemanticMatch(null, null); exploreMatches(root, leftEObjects, rightEObjects); evaluateMatches(root); filterMatches(root, comparison); } Exploration Evaluation Filtering A labelled graph representation of the compared models is produced • each node represents a semantic match • each incoming or outgoing labelled edge represents a connection with its parents or children elements
  • 23. ME‘16 – October 2, 2016 – Saint-Malo, France 24 Type: EAttribute Source: Student.username Target: User.password Sim: null Type: EClass Source: Student Target: User Sim: null Type: EClass Source: Student Target: Student Sim: null Type: EAttribute Source: Student.password Target:User.password Sim: nullType: EAttribute Source: Student.password Target: User.username Sim: nullType: EAttribute Source: Student.username Target: User.username Sim: null
  • 24. ME‘16 – October 2, 2016 – Saint-Malo, France 25 The proposed semantic model matching function createMatches(Comparison comparison, List leftEObjects, List rightEObjects){ SemanticMatch root = createSemanticMatch(null, null); exploreMatches(root, leftEObjects, rightEObjects); evaluateMatches(root); filterMatches(root, comparison); } Exploration Evaluation Filtering Each SemantichMatch node is integrated with the semantic distance value between the encapsulated element
  • 25. ME‘16 – October 2, 2016 – Saint-Malo, France 26 Type: EAttribute Source: Student.username Target: User.password Sim: 0.2 Type: EClass Source: Student Target: User Sim: 0.4 Type: EClass Source: Student Target: Student Sim: 1 Type: EAttribute Source: Student.password Target:User.password Sim: 0.6Type: EAttribute Source: Student.password Target: User.username Sim: 0.2Type: EAttribute Source: Student.username Target: User.username Sim: 0.6
  • 26. ME‘16 – October 2, 2016 – Saint-Malo, France 27 The proposed semantic model matching function createMatches(Comparison comparison, List leftEObjects, List rightEObjects){ SemanticMatch root = createSemanticMatch(null, null); exploreMatches(root, leftEObjects, rightEObjects); evaluateMatches(root); filterMatches(root, comparison); } Exploration Evaluation Filtering The set of SemanticMatch elements are filtered out with respect to a predefined threshold
  • 27. ME‘16 – October 2, 2016 – Saint-Malo, France 28 Type: EAttribute Source: Student.username Target: User.password Sim: 0.2 Type: EClass Source: Student Target: User Sim: 0.4 Type: EClass Source: Student Target: Student Sim: 1 Type: EAttribute Source: Student.password Target:User.password Sim: 0.6Type: EAttribute ource: Student.password Target: User.username Sim: 0.2Type: EAttribute Source: Student.username Target: User.username Sim: 0.6
  • 28. ME‘16 – October 2, 2016 – Saint-Malo, France 29 Experiments The Model Exchange Benchmark • 5 structural modelling languages • All the possible pairs of metamodels are given as input to: • Semantic EMFCompare • EMFCompare • GAMMA(*) • Coma++, FOAM, Crosi, Alignment API, AMW (*) M. Kessentini, A. Ouni, P. Langer, M. Wimmer, and S. Bechikh, “Search-based metamodel matching with structural and syntactic measures,” J. Syst. Softw., vol. 97, no. C, pp. 1–14, Oct. 2014.
  • 29. ME‘16 – October 2, 2016 – Saint-Malo, France 30 Experiments Measures
  • 30. ME‘16 – October 2, 2016 – Saint-Malo, France 31 Experiments Measures It denotes the percentage of correctly matched elements with respect to all the proposed matches
  • 31. ME‘16 – October 2, 2016 – Saint-Malo, France 32 Experiments Measures It denotes the percentage of correctly matched elements with respect to all the expected matches
  • 32. ME‘16 – October 2, 2016 – Saint-Malo, France 33 Experiments Measures It combines Precision and Recall to get an equally weighted average value of the measures
  • 33. ME‘16 – October 2, 2016 – Saint-Malo, France 34 Experiments GAMMA provides best results with respect to Precision, Recall, and F-Measure GAMMA uses SBSE approaches and it requires to be initialized with a set of initial solutions (knowledge base)
  • 34. ME‘16 – October 2, 2016 – Saint-Malo, France 35 Experiments Semantic EMFCompare: • produces more matches than expected • in some cases has lower Precision than EMFCompare • only in one case F-Measure is lower than EMFCompare
  • 35. ME‘16 – October 2, 2016 – Saint-Malo, France 36 Experiments
  • 36. ME‘16 – October 2, 2016 – Saint-Malo, France 37 Lessons learnt Extending EMFCompare with semantic aspects can be done in a lightweight manner An increasing matching power can come at the price of an increasing imprecision (more false-positives and false- negatives) The selection of the appropriate dictionary (depending on the artifacts to be compared) can make the difference • Comparing metamodels is semantically different than comparing models of specific domains Performing experiments can be an issue due to the lack of models to be used as test cases • Existing model mutations approaches should be extended to implement “semantics-aware” mutations
  • 37. ME‘16 – October 2, 2016 – Saint-Malo, France 38 Conclusion and Future Work Model comparison is a very complex task It underpins the management of a wide number of (meta-)model (co-)evolution scenarios An extension of the EMFCompare tool has been proposed to enable “semantics-aware” matches Further experiments will be performed by considering the application of different dictionaries depending on the kinds of artifacts to be matched
  • 38. ME‘16 – October 2, 2016 – Saint-Malo, France 39