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

Similar to Semantic based model matching with emf compare

Statistical Modeling: The Two Cultures
Statistical Modeling: The Two CulturesStatistical Modeling: The Two Cultures
Statistical Modeling: The Two Cultures
Christoph Molnar
 
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
Benoit Combemale
 
Digital repertoires of poetry metrics: towards a Linked Open Data ecosystem
Digital repertoires of poetry metrics: towards a Linked Open Data ecosystemDigital repertoires of poetry metrics: towards a Linked Open Data ecosystem
Digital repertoires of poetry metrics: towards a Linked Open Data ecosystem
Uned Laboratorio de Innovación en Humanidades
 
Invited Talk: Early Detection of Research Topics
Invited Talk: Early Detection of Research Topics Invited Talk: Early Detection of Research Topics
Invited Talk: Early Detection of Research Topics
Angelo Salatino
 
M2CAT: Extracting reproducible simulation studies from model repositories usi...
M2CAT: Extracting reproducible simulation studies from model repositories usi...M2CAT: Extracting reproducible simulation studies from model repositories usi...
M2CAT: Extracting reproducible simulation studies from model repositories usi...
Martin Scharm
 
Model-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeModel-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to Code
IJEACS
 
Energy-efficient technology investments using a decision support system frame...
Energy-efficient technology investments using a decision support system frame...Energy-efficient technology investments using a decision support system frame...
Energy-efficient technology investments using a decision support system frame...
Emilio L. Cano
 
M2CAT: Extracting reproducible simulation studies from model repositories usi...
M2CAT: Extracting reproducible simulation studies from model repositories usi...M2CAT: Extracting reproducible simulation studies from model repositories usi...
M2CAT: Extracting reproducible simulation studies from model repositories usi...
Martin Scharm
 
An interaction meta-model for cooperative component-based user interfaces
An interaction meta-model for cooperative component-based user interfacesAn interaction meta-model for cooperative component-based user interfaces
An interaction meta-model for cooperative component-based user interfaces
Applied Computing Group
 
Data science syllabus
Data science syllabusData science syllabus
Data science syllabus
anoop bk
 
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis MethodsIntroducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
Kamiya Toshihiro
 
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
 Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
PET Computação
 
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Cataldo Musto
 
Clonal Selection Algorithm Parallelization with MPJExpress
Clonal Selection Algorithm Parallelization with MPJExpressClonal Selection Algorithm Parallelization with MPJExpress
Clonal Selection Algorithm Parallelization with MPJExpress
Ayi Purbasari
 
SiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
SiriusCon17 - A Graphical Approach to Modularization and Layering of MetamodelsSiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
SiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
Obeo
 
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Alfonso Pierantonio
 
Not Only Statements: The Role of Textual Analysis in Software Quality
Not Only Statements: The Role of Textual Analysis in Software QualityNot Only Statements: The Role of Textual Analysis in Software Quality
Not Only Statements: The Role of Textual Analysis in Software Quality
Rocco Oliveto
 
Introduction to Model-Based Machine Learning
Introduction to Model-Based Machine LearningIntroduction to Model-Based Machine Learning
Introduction to Model-Based Machine Learning
Daniel Emaasit
 
Topics of interest for IWPT'01.doc
Topics of interest for IWPT'01.docTopics of interest for IWPT'01.doc
Topics of interest for IWPT'01.docbutest
 
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case StudyLeveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Luca Berardinelli
 

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

Statistical Modeling: The Two Cultures
Statistical Modeling: The Two CulturesStatistical Modeling: The Two Cultures
Statistical Modeling: The Two Cultures
 
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
 
Digital repertoires of poetry metrics: towards a Linked Open Data ecosystem
Digital repertoires of poetry metrics: towards a Linked Open Data ecosystemDigital repertoires of poetry metrics: towards a Linked Open Data ecosystem
Digital repertoires of poetry metrics: towards a Linked Open Data ecosystem
 
Invited Talk: Early Detection of Research Topics
Invited Talk: Early Detection of Research Topics Invited Talk: Early Detection of Research Topics
Invited Talk: Early Detection of Research Topics
 
M2CAT: Extracting reproducible simulation studies from model repositories usi...
M2CAT: Extracting reproducible simulation studies from model repositories usi...M2CAT: Extracting reproducible simulation studies from model repositories usi...
M2CAT: Extracting reproducible simulation studies from model repositories usi...
 
Model-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeModel-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to Code
 
Energy-efficient technology investments using a decision support system frame...
Energy-efficient technology investments using a decision support system frame...Energy-efficient technology investments using a decision support system frame...
Energy-efficient technology investments using a decision support system frame...
 
M2CAT: Extracting reproducible simulation studies from model repositories usi...
M2CAT: Extracting reproducible simulation studies from model repositories usi...M2CAT: Extracting reproducible simulation studies from model repositories usi...
M2CAT: Extracting reproducible simulation studies from model repositories usi...
 
An interaction meta-model for cooperative component-based user interfaces
An interaction meta-model for cooperative component-based user interfacesAn interaction meta-model for cooperative component-based user interfaces
An interaction meta-model for cooperative component-based user interfaces
 
Data science syllabus
Data science syllabusData science syllabus
Data science syllabus
 
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis MethodsIntroducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
Introducing Parameter Sensitivity to Dynamic Code-Clone Analysis Methods
 
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
 Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
 
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
Semantics-aware Recommender Systems Exploiting Linked Open Data and Graph-bas...
 
Clonal Selection Algorithm Parallelization with MPJExpress
Clonal Selection Algorithm Parallelization with MPJExpressClonal Selection Algorithm Parallelization with MPJExpress
Clonal Selection Algorithm Parallelization with MPJExpress
 
SiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
SiriusCon17 - A Graphical Approach to Modularization and Layering of MetamodelsSiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
SiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
 
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
Keynote at Educators Symposium, ACM/IEEE 19th Intl. Conference on Model Drive...
 
Not Only Statements: The Role of Textual Analysis in Software Quality
Not Only Statements: The Role of Textual Analysis in Software QualityNot Only Statements: The Role of Textual Analysis in Software Quality
Not Only Statements: The Role of Textual Analysis in Software Quality
 
Introduction to Model-Based Machine Learning
Introduction to Model-Based Machine LearningIntroduction to Model-Based Machine Learning
Introduction to Model-Based Machine Learning
 
Topics of interest for IWPT'01.doc
Topics of interest for IWPT'01.docTopics of interest for IWPT'01.doc
Topics of interest for IWPT'01.doc
 
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case StudyLeveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
Leveraging Model-Driven Technologies for JSON Artefacts: The Shipyard Case Study
 

More from Davide Ruscio

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

More from Davide Ruscio (11)

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

Recently uploaded

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 

Recently uploaded (20)

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 

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