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

Introduction to Artificial intelligence.
Introduction to Artificial intelligence.Introduction to Artificial intelligence.
Introduction to Artificial intelligence.thamaeteboho94
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatmentnswingard
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...amilabibi1
 
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...David Celestin
 
Zone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptxZone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptxlionnarsimharajumjf
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIINhPhngng3
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoKayode Fayemi
 
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfSOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfMahamudul Hasan
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar TrainingKylaCullinane
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lodhisaajjda
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfSkillCertProExams
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalFabian de Rijk
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityHung Le
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...ZurliaSoop
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Baileyhlharris
 

Recently uploaded (17)

Introduction to Artificial intelligence.
Introduction to Artificial intelligence.Introduction to Artificial intelligence.
Introduction to Artificial intelligence.
 
Dreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video TreatmentDreaming Marissa Sánchez Music Video Treatment
Dreaming Marissa Sánchez Music Video Treatment
 
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
Bring back lost lover in USA, Canada ,Uk ,Australia ,London Lost Love Spell C...
 
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
Proofreading- Basics to Artificial Intelligence Integration - Presentation:Sl...
 
Zone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptxZone Chairperson Role and Responsibilities New updated.pptx
Zone Chairperson Role and Responsibilities New updated.pptx
 
ICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdfICT role in 21st century education and it's challenges.pdf
ICT role in 21st century education and it's challenges.pdf
 
Dreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio IIIDreaming Music Video Treatment _ Project & Portfolio III
Dreaming Music Video Treatment _ Project & Portfolio III
 
Uncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac FolorunsoUncommon Grace The Autobiography of Isaac Folorunso
Uncommon Grace The Autobiography of Isaac Folorunso
 
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdfSOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
SOLID WASTE MANAGEMENT SYSTEM OF FENI PAURASHAVA, BANGLADESH.pdf
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.lONG QUESTION ANSWER PAKISTAN STUDIES10.
lONG QUESTION ANSWER PAKISTAN STUDIES10.
 
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdfAWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
AWS Data Engineer Associate (DEA-C01) Exam Dumps 2024.pdf
 
Digital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of DrupalDigital collaboration with Microsoft 365 as extension of Drupal
Digital collaboration with Microsoft 365 as extension of Drupal
 
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven CuriosityUnlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
Unlocking Exploration: Self-Motivated Agents Thrive on Memory-Driven Curiosity
 
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
Jual obat aborsi Jakarta 085657271886 Cytote pil telat bulan penggugur kandun...
 
My Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle BaileyMy Presentation "In Your Hands" by Halle Bailey
My Presentation "In Your Hands" by Halle Bailey
 
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait Cityin kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
in kuwait௹+918133066128....) @abortion pills for sale in Kuwait City
 

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