SlideShare a Scribd company logo
1 of 14
Download to read offline
Gremlin-ATL: a Scalable Model
Transformation Framework
Gwendal DANIEL
Inria, IMT Atlantique, LS2N
gwendal.daniel@inria.fr
Frédéric JOUAULT
ESEO
frederic.jouault@eseo.fr
Gerson SUNYE
Inria, IMT Atlantique, LS2N
gerson.sunye@inria.fr
Jordi CABOT
ICREA - UOC
jordi.cabot@icrea.cat
Introduction
• Complex and large models
• Civil Engineering
• Biology
• Reverse Engineering
• Need to provide solutions to
• Store large models
• Efficiently query them
• Compute complex transformations
2G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Model Persistence
• Default serialization mechanism: XMI
• Scalable model persistence frameworks
• Use databases to store models
• Relational: CDO
• NoSQL: Morsa, NeoEMF
• Low memory footprint
3G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Modeling API
Modeling
Framework
DatabaseModeler
Model Persistence
API Call1
…
API Calln
Model
Transformation
Transformation
Engine
Modeling
Framework
Database
rule myRule {
from pp : In!Person
to ee: Out!Entity (
name <- p.name
)
}
get(pp1)
get(pp1, name)
create(ee1, Entity)
set(ee1, name)
…
get(ppn)
get(ppn, name)
create(een, Entity)
set(een, name)
Typical Model
Transformation Tool
Under the hood
4
Low-level modeling API
→ Not aligned with the
database capabilities
Fragmented queries
→ Not efficient
→ Remote database
Intermediate objects
→ Memory consumption
→ Execution time overhead
G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Model Persistence
• Not efficient to compute model queries and transformations
• Why can’t we write database queries manually?
• Modern persistence frameworks typically rely on NoSQL databases
• Multiple query languages, data representation, etc
• Low-level queries are hard to understand and maintain
• Modeling expertise vs. Database expertise
• Solution: generate them!
5G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Gremlin-ATL
• Generate database queries from model transformations
• Bypass modeling framework APIs
• Benefit of all the query capabilities of the backend
6
ATLtoGremlin
Transformation
Gremlin
Traversal
DatabaseATL Transformation
G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
rule myRule {
from pp : In!Person
to ee: Out!Entity (
name <- pp.name
)
}
g.idx(‘’metaclasses’’)[[name:Person]].transform{
ee = g.createVertex(Entity);
e.addEdge(‘’instanceof’’,
g.idx(‘’metaclasses’’)[[name:Entity]]
ee.name = it.name
}.iterate();
Database
Gremlin-ATL
Transformation Tool
Under the hood
Gremlin-ATL
• Input: ATL
• Well-known in the modeling
community
• Hybrid language
• Transformation rules
• Embeds OCL
rule myRule {
from pp : In!Person (
not pp.name.isEmpty()
)
to ee : Out!Entity(
name ← pp.name
}
7G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Gremlin-ATL
• Output: Gremlin
• Multi-database query language
• Graph traversals
• Easily extensible
• Native Neo4j support, OrientDB …
• NeoEMF/Graph
g.idx(‘metaclasses’)[[name:Person]].inE(‘instanceOf’).outV
.filter{!it.name.isEmtpy()}
.transform{
ee = g.createVertex();
ee.addEdge(‘instanceOf’, g.idx(‘metaclasses’)[[name:Entity]]);
ee.name = it.name;
}.iterate()
8G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
rule myRule {
from pp : In!Person (
not pp.name.isEmpty()
)
to ee : Out!Entity(
name ← pp.name
)
}
Gremlin-ATL
• 3 steps process
• Map ATL constructs to their Gremlin equivalent
• Merge the created Gremlin constructs into a script
• Send the script to the database
9
g.idx(‘metaclasses’)[[name:Person]].inE(‘instanceOf’).outV
.filter{!it.name.isEmtpy()}
.transform{
ee = g.createVertex();
ee.addEdge(‘instanceOf’, g.idx(‘metaclasses’)[[name:Entity]]);
ee.name = it.name;
}.iterate()
G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Evaluation
10
0
50000
100000
150000
200000
250000
300000
set1 set2 set3 set4
Java2KDM Execution Time (ms)
ATL Gremlin-ATL
OutOfMemory
G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Models containing 6000 to 3,5M elements
Java2KDM Transformation
NeoEMF/Graph
Evaluation
11G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Models containing 6000 to 3,5M elements
Java2KDM Transformation
NeoEMF/Graph
0
100
200
300
400
500
600
set1 set2 set3 set4
Java2KDM Memory Consumption (MB)
ATL Gremlin-ATL
OutOfMemory
Conclusion
• Benefits
• No query fragmentation / intermediate objects
• Positive results on large models
• Extensible architecture (see our article)
• Drawbacks
• Less efficient than existing solutions for small / in-memory models
• Need to be manually integrated
• Tightly coupled to the model persistence framework
12G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Conclusion
• Future Work
• Extend our mapping
• Reuse schema inferrence approaches
• Ease the integration of other persistence frameworks / data sources
• Gremlin-ATL to express data migration operations
• Promising results on the Neo4j panama paper database (see our article)
13G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
Question?
Thank you for your attention!
Websites / Repositories
NeoEMF: neoemf.com
Gremlin-ATL: github.com/atlanmod/mogwai
https://github.com/SOM-Research
https://github.com/AtlanMod
14G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework

More Related Content

Similar to Gremlin-ATL: a Scalable Model Transformation Framework

Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital.AI
 
Tensors Are All You Need: Faster Inference with Hummingbird
Tensors Are All You Need: Faster Inference with HummingbirdTensors Are All You Need: Faster Inference with Hummingbird
Tensors Are All You Need: Faster Inference with HummingbirdDatabricks
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfLars Albertsson
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaGoDataDriven
 
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017StampedeCon
 
Object- Relational Persistence in Smalltalk
Object- Relational Persistence in SmalltalkObject- Relational Persistence in Smalltalk
Object- Relational Persistence in SmalltalkESUG
 
IncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudIncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudGábor Szárnyas
 
functional groovy
functional groovyfunctional groovy
functional groovyPaul King
 
Introduction to c_plus_plus
Introduction to c_plus_plusIntroduction to c_plus_plus
Introduction to c_plus_plusSayed Ahmed
 
Introduction to c_plus_plus (6)
Introduction to c_plus_plus (6)Introduction to c_plus_plus (6)
Introduction to c_plus_plus (6)Sayed Ahmed
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezMultiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezBig Data Spain
 
Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!Doris Chen
 
Multi-model Databases and Tightly Integrated Polystores
Multi-model Databases and Tightly Integrated PolystoresMulti-model Databases and Tightly Integrated Polystores
Multi-model Databases and Tightly Integrated PolystoresJiaheng Lu
 
Finding Your Place in the Cosmos - Azure Cosmos DB
Finding Your Place in the Cosmos - Azure Cosmos DBFinding Your Place in the Cosmos - Azure Cosmos DB
Finding Your Place in the Cosmos - Azure Cosmos DBEric Potter
 
Schema management with Scalameta
Schema management with ScalametaSchema management with Scalameta
Schema management with ScalametaLars Albertsson
 

Similar to Gremlin-ATL: a Scalable Model Transformation Framework (20)

Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
 
Tensors Are All You Need: Faster Inference with Hummingbird
Tensors Are All You Need: Faster Inference with HummingbirdTensors Are All You Need: Faster Inference with Hummingbird
Tensors Are All You Need: Faster Inference with Hummingbird
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
 
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
Getting Started with Keras and TensorFlow - StampedeCon AI Summit 2017
 
Object- Relational Persistence in Smalltalk
Object- Relational Persistence in SmalltalkObject- Relational Persistence in Smalltalk
Object- Relational Persistence in Smalltalk
 
IncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudIncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the Cloud
 
functional groovy
functional groovyfunctional groovy
functional groovy
 
Introduction to c_plus_plus
Introduction to c_plus_plusIntroduction to c_plus_plus
Introduction to c_plus_plus
 
Introduction to c_plus_plus (6)
Introduction to c_plus_plus (6)Introduction to c_plus_plus (6)
Introduction to c_plus_plus (6)
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezMultiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier Dominguez
 
Templates
TemplatesTemplates
Templates
 
Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!
 
Multi-model Databases and Tightly Integrated Polystores
Multi-model Databases and Tightly Integrated PolystoresMulti-model Databases and Tightly Integrated Polystores
Multi-model Databases and Tightly Integrated Polystores
 
Finding Your Place in the Cosmos - Azure Cosmos DB
Finding Your Place in the Cosmos - Azure Cosmos DBFinding Your Place in the Cosmos - Azure Cosmos DB
Finding Your Place in the Cosmos - Azure Cosmos DB
 
Schema management with Scalameta
Schema management with ScalametaSchema management with Scalameta
Schema management with Scalameta
 
lecture02-cpp.ppt
lecture02-cpp.pptlecture02-cpp.ppt
lecture02-cpp.ppt
 
lecture02-cpp.ppt
lecture02-cpp.pptlecture02-cpp.ppt
lecture02-cpp.ppt
 
lecture02-cpp.ppt
lecture02-cpp.pptlecture02-cpp.ppt
lecture02-cpp.ppt
 

Recently uploaded

CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfhenrik385807
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesPooja Nehwal
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Salam Al-Karadaghi
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptssuser319dad
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024eCommerce Institute
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrsaastr
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...NETWAYS
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Hasting Chen
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Kayode Fayemi
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptxBasil Achie
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...NETWAYS
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AITatiana Gurgel
 

Recently uploaded (20)

CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
 
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
Re-membering the Bard: Revisiting The Compleat Wrks of Wllm Shkspr (Abridged)...
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
 

Gremlin-ATL: a Scalable Model Transformation Framework

  • 1. Gremlin-ATL: a Scalable Model Transformation Framework Gwendal DANIEL Inria, IMT Atlantique, LS2N gwendal.daniel@inria.fr Frédéric JOUAULT ESEO frederic.jouault@eseo.fr Gerson SUNYE Inria, IMT Atlantique, LS2N gerson.sunye@inria.fr Jordi CABOT ICREA - UOC jordi.cabot@icrea.cat
  • 2. Introduction • Complex and large models • Civil Engineering • Biology • Reverse Engineering • Need to provide solutions to • Store large models • Efficiently query them • Compute complex transformations 2G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
  • 3. Model Persistence • Default serialization mechanism: XMI • Scalable model persistence frameworks • Use databases to store models • Relational: CDO • NoSQL: Morsa, NeoEMF • Low memory footprint 3G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework Modeling API Modeling Framework DatabaseModeler
  • 4. Model Persistence API Call1 … API Calln Model Transformation Transformation Engine Modeling Framework Database rule myRule { from pp : In!Person to ee: Out!Entity ( name <- p.name ) } get(pp1) get(pp1, name) create(ee1, Entity) set(ee1, name) … get(ppn) get(ppn, name) create(een, Entity) set(een, name) Typical Model Transformation Tool Under the hood 4 Low-level modeling API → Not aligned with the database capabilities Fragmented queries → Not efficient → Remote database Intermediate objects → Memory consumption → Execution time overhead G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
  • 5. Model Persistence • Not efficient to compute model queries and transformations • Why can’t we write database queries manually? • Modern persistence frameworks typically rely on NoSQL databases • Multiple query languages, data representation, etc • Low-level queries are hard to understand and maintain • Modeling expertise vs. Database expertise • Solution: generate them! 5G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
  • 6. Gremlin-ATL • Generate database queries from model transformations • Bypass modeling framework APIs • Benefit of all the query capabilities of the backend 6 ATLtoGremlin Transformation Gremlin Traversal DatabaseATL Transformation G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework rule myRule { from pp : In!Person to ee: Out!Entity ( name <- pp.name ) } g.idx(‘’metaclasses’’)[[name:Person]].transform{ ee = g.createVertex(Entity); e.addEdge(‘’instanceof’’, g.idx(‘’metaclasses’’)[[name:Entity]] ee.name = it.name }.iterate(); Database Gremlin-ATL Transformation Tool Under the hood
  • 7. Gremlin-ATL • Input: ATL • Well-known in the modeling community • Hybrid language • Transformation rules • Embeds OCL rule myRule { from pp : In!Person ( not pp.name.isEmpty() ) to ee : Out!Entity( name ← pp.name } 7G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
  • 8. Gremlin-ATL • Output: Gremlin • Multi-database query language • Graph traversals • Easily extensible • Native Neo4j support, OrientDB … • NeoEMF/Graph g.idx(‘metaclasses’)[[name:Person]].inE(‘instanceOf’).outV .filter{!it.name.isEmtpy()} .transform{ ee = g.createVertex(); ee.addEdge(‘instanceOf’, g.idx(‘metaclasses’)[[name:Entity]]); ee.name = it.name; }.iterate() 8G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
  • 9. rule myRule { from pp : In!Person ( not pp.name.isEmpty() ) to ee : Out!Entity( name ← pp.name ) } Gremlin-ATL • 3 steps process • Map ATL constructs to their Gremlin equivalent • Merge the created Gremlin constructs into a script • Send the script to the database 9 g.idx(‘metaclasses’)[[name:Person]].inE(‘instanceOf’).outV .filter{!it.name.isEmtpy()} .transform{ ee = g.createVertex(); ee.addEdge(‘instanceOf’, g.idx(‘metaclasses’)[[name:Entity]]); ee.name = it.name; }.iterate() G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
  • 10. Evaluation 10 0 50000 100000 150000 200000 250000 300000 set1 set2 set3 set4 Java2KDM Execution Time (ms) ATL Gremlin-ATL OutOfMemory G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework Models containing 6000 to 3,5M elements Java2KDM Transformation NeoEMF/Graph
  • 11. Evaluation 11G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework Models containing 6000 to 3,5M elements Java2KDM Transformation NeoEMF/Graph 0 100 200 300 400 500 600 set1 set2 set3 set4 Java2KDM Memory Consumption (MB) ATL Gremlin-ATL OutOfMemory
  • 12. Conclusion • Benefits • No query fragmentation / intermediate objects • Positive results on large models • Extensible architecture (see our article) • Drawbacks • Less efficient than existing solutions for small / in-memory models • Need to be manually integrated • Tightly coupled to the model persistence framework 12G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
  • 13. Conclusion • Future Work • Extend our mapping • Reuse schema inferrence approaches • Ease the integration of other persistence frameworks / data sources • Gremlin-ATL to express data migration operations • Promising results on the Neo4j panama paper database (see our article) 13G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework
  • 14. Question? Thank you for your attention! Websites / Repositories NeoEMF: neoemf.com Gremlin-ATL: github.com/atlanmod/mogwai https://github.com/SOM-Research https://github.com/AtlanMod 14G. Daniel - Gremlin-ATL: a Scalable Model Transformation Framework