SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
UMLtoGraphDB: Mapping Conceptual
Schemas to Graph Databases
Jordi Cabot
ICREA-UOC
jordi.cabot@icrea.cat
Gwendal Daniel
Inria - Mines Nantes & Lina
gwendal.daniel@inria.fr
Gerson Sunyé
Inria - Mines Nantes & Lina
gerson.sunye@inria.fr
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 2
Introduction
● NoSQL
– Scalability
– Availability
– Performance
● Graph Databases
– Store highly interconnected data
● Vertices, edges, properties
– Expressive query language
● Gremlin, Cypher
– Social networks, data provenance analysis
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 3
Introduction
● Schemaless
Flexible
● Non-uniform data
● Schema evolutions
Implicit schema defined by data
● Need to acquire this knowledge
● Specific to each database
● Not formally described
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 4
Introduction
Hard to integrate in code-generation architectures
– Few options for mapping ER/UML to NoSQL
– Data consistency challenge
– Lack of support for integrity constraints
→ Goal: create a code generation framework
– Map conceptual schemas to graph databases
– Input: UML + OCL
– Output: graph database + graph queries
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 5
UMLtoGraphDB
● MDA methodology
– Platform Independent Model (PIM)
● Conceptual schema
– Platform Specific Model (PSM)
● Refines PIM for a specific implementation
– Code generation from PSM
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 6
UMLtoGraphDB – Starting Point
● Conceptual Schema
– UML class diagram
● Concepts
● Data structure
– OCL
● Business rules
● Invariants / Constraints
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 7
UMLtoGraphDB
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 8
UMLtoGraphDB
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 9
UMLtoGraphDB
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 10
Class2GraphDB Transformation
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 11
GraphDB Metamodel
GraphSpecification
+ baseDB : DBType
VertexDefinition
EdgeDefinition
PropertyDefinition
+ Key : String
+ Type : PrimitiveType
GraphElement
+ label : String[*]
<<Enumeration>>
PrimitiveType
Object
Integer
String
Boolean
<<Enumeration>>
DBType
Neo4j
OrientDB
vertices *
inEdges *
head 1
outEdges *
tail 1
edges *
properties
*
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 12
Class2GraphDB
● (Subset of) UML class diagram to GraphDB
– Non-abtract classes → VertexDefinition
– Attribute → PropertyDefinition
– Association (2 classes) → EdgeDefinition
– Association (n classes) → VertexDefinition + EdgeDefinitions
– Association class → VertexDefinition + EdgeDefinitions
– Support for generalization / specialization
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 13
Client
+ name : String
+ address : String
Order
+ shipmentDate : Date
+ deliveryDate : Date
+ paid : Boolean
Product
+ name : String
+ price : Integer
+ description : String
OrderLine
+ quantity : Integer
+ productPrice : Integer
PrivateCustomer
+ cardNumber : String
orders
*
1..**
Running Example
context Product inv validPrice:
self.price > 0
context Order inv validOrder:
self.shipmentData < self.deliveryDate
context Client inv maxUnpaidOrders:
self.orders→select(o | not o.paid)
→size() < 3
Running Example - PIM
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 14
Class2GraphDB
Class mapping
Product
+ name : String
+ price : Integer
+ description : String
v1:VertexDefinition
+ label : String = "Product"
p1:PropertyDefinition
+ key : String = "name"
+ type : PrimitiveType = String
p3:PropertyDefinition
+ key : String = "description"
+ type : PrimitiveType = String
p2:PropertyDefinition
+ key : String = "price"
+ type : PrimitiveType = Integer
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 15
Class2GraphDB
Association mapping
v3:VertexDefinition
+ label : String = "Order"
v1:VertexDefinition
+ label : String = "Client"
e1:EdgeDefinition
+ name : String = "orders"
tail
head
Client
Order
orders*
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 16
Class2GraphDB
Order
Product
OrderLine
+ quantity : Integer
+ productPrice : Integer
1..*
*
AssociationClass mapping
v2:VertexDefinition
+ label : String = "Order"
v3:VertexDefinition
+ label : String = "Product"
v4:VertexDefinition
+ label : String = "OrderLine"
e2:EdgeDefinition
+ name : String = "orderLine"
e3:EdgeDefinition
+ name : String = "orderLine"
p5:PropertyDefinition
+ key : String = "quantity"
+ type : PrimitiveType = Integer
p4:PropertyDefinition
+ key : String = "productPrice"
+ type : PrimitiveType = Integer
tail
head
head
tail
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 17
UMLtoGraphDB
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 18
OCL2Gremlin Transformation
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 19
Gremlin Metamodel
● Gremlin language
– Graph traversal DSL
– Based on the Blueprints API
– Generic query language for graph databases
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 20
Gremlin Metamodel
GremlinScript
InstructionTraversalElementStep
OutEStep
+ label : String
InEStep
+ label : String
OutVStep
InVStep
FilterStep
. . .
EdgesStep
+ label : String
VerticesStep
+ id : String
instructions
*
next
0..1
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 21
OCL2Gremlin
● Adaptation of the Mogwaï* query framework
– Gremlin metamodel definition
– Map OCL expressions to Gremlin steps
– Merge created steps into traversals
– Generate query code from Gremlin AST
* G. Daniel, G. Sunyé, and J. Cabot. Mogwaï: a Framework to Handle Complex Queries on Large
Models. In RCIS 2016, Grenoble, FR,June 2016
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 22
OCL2Gremlin
context Product inv validPrice:
self.price > 0
context Order inv validOrder:
self.shipmentData
< self.deliveryDate
context Client inv maxUnpaidOrders:
self.orders→select(o | not o.paid)
→size() < 3
// validPrice
v.property(''price'') > 0;
// validOrder
v.property(''shipmentDate'') <
v.property(''deliveryDate'')
// maxUnpaidOrders
v.outE(''orders'').inV
.filter{it.property(''paid'') == false}
.count() < 3
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 23
UMLtoGraphDB
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 24
Graph2Code
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 25
Graph2Code
● Generate Java beans
– Adapter pattern
● Delegate to database objects
● Lightweight implementation
– Bean factory
● Create new elements
● Reifies database objects
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 26
Graph2Code – Client Class
public class Client extends BlueprintsBean {
public Client(Vertex v, Graph graph, UMLModelFactory factory) {
super(v,graph,factory);
}
public String getName() {
return (String) this.vertex.property(''name'').value();
}
public void setName(String newName) {
this.vertex.property(''name'', newName);
}
public List<Order> getOrders() {
Iterator<Vertex> otherEnd = this.vertex.vertices(Direction.OUT,"orders");
return new GremlinIterator<Order>(otherEnd, factory);
}
public void addOrder(Order newOrder) {
this.vertex.addEdge(“orders”, newOrder.getVertex());
}
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 27
Graph2Code – Client Class
[...]
public boolean checkMaxUnpaidOrders() {
return this.graph.traversal().V(this.vertex).out(''orders'').filter(
v -> v.get().<Boolean>property(''paid'').value())
.count().is(P.lt(3)).hasNext();
}
}
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 28
Tooling
● Set of open-source eclipse plugins
– ATL: Model-to-model transformations
● ~ 110 rules / helpers
– XTend: Code generation
● Full stack execution: less than 5 seconds
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 29
Conclusion
● Chain of model transformations
– UML (class diagram) to GraphDB
– OCL to Gremlin
– Graph to code transformation
● GraphDB metamodel
● Future Work
– Refactoring operations at the PSM level
– Cover multiple database types
– Reverse engineering
17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 30
Questions?
Websites / Repositories
UMLtoGraphDB: https://github.com/atlanmod/UML2NoSQL
Mogwaï: https://github.com/atlanmod/Mogwai
https://github.com/atlanmod
Thank you for your attention!
https://github.com/SOM-Research

Weitere ähnliche Inhalte

Was ist angesagt?

GraphQL & DGraph with Go
GraphQL & DGraph with GoGraphQL & DGraph with Go
GraphQL & DGraph with GoJames Tan
 
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...Logilab
 
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale ArangoDB Database
 
Introduction to DGraph - A Graph Database
Introduction to DGraph - A Graph DatabaseIntroduction to DGraph - A Graph Database
Introduction to DGraph - A Graph DatabaseKnoldus Inc.
 
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning MetadataArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning MetadataArangoDB Database
 
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...Olaf Hartig
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentationjexp
 
Data Day Seattle 2017: Scaling Data Science at Stitch Fix
Data Day Seattle 2017: Scaling Data Science at Stitch FixData Day Seattle 2017: Scaling Data Science at Stitch Fix
Data Day Seattle 2017: Scaling Data Science at Stitch FixStefan Krawczyk
 
Is multi-model the future of NoSQL?
Is multi-model the future of NoSQL?Is multi-model the future of NoSQL?
Is multi-model the future of NoSQL?Max Neunhöffer
 
Chapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheetsChapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheetsDr. Ahmed Al Zaidy
 
“Open Data Web” – A Linked Open Data Repository Built with CKAN
“Open Data Web” – A Linked Open Data Repository Built with CKAN“Open Data Web” – A Linked Open Data Repository Built with CKAN
“Open Data Web” – A Linked Open Data Repository Built with CKANChengjen Lee
 
Progress Report
Progress ReportProgress Report
Progress Reportxoanon
 
Observability for Data Pipelines With OpenLineage
Observability for Data Pipelines With OpenLineageObservability for Data Pipelines With OpenLineage
Observability for Data Pipelines With OpenLineageDatabricks
 
An Approach for the Incremental Export of Relational Databases into RDF Graphs
An Approach for the Incremental Export of Relational Databases into RDF GraphsAn Approach for the Incremental Export of Relational Databases into RDF Graphs
An Approach for the Incremental Export of Relational Databases into RDF GraphsNikolaos Konstantinou
 
Chapter 13 Programming for web forms
Chapter 13 Programming for web formsChapter 13 Programming for web forms
Chapter 13 Programming for web formsDr. Ahmed Al Zaidy
 
Data pipelines observability: OpenLineage & Marquez
Data pipelines observability:  OpenLineage & MarquezData pipelines observability:  OpenLineage & Marquez
Data pipelines observability: OpenLineage & MarquezJulien Le Dem
 
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDSOverloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDSSumant Tambe
 
RDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival dataRDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival dataGiorgos Santipantakis
 

Was ist angesagt? (20)

GraphQL & DGraph with Go
GraphQL & DGraph with GoGraphQL & DGraph with Go
GraphQL & DGraph with Go
 
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
 
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
 
Using MRuby in a database
Using MRuby in a databaseUsing MRuby in a database
Using MRuby in a database
 
Introduction to DGraph - A Graph Database
Introduction to DGraph - A Graph DatabaseIntroduction to DGraph - A Graph Database
Introduction to DGraph - A Graph Database
 
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning MetadataArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
 
NoSql evaluation
NoSql evaluationNoSql evaluation
NoSql evaluation
 
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
 
Data Day Seattle 2017: Scaling Data Science at Stitch Fix
Data Day Seattle 2017: Scaling Data Science at Stitch FixData Day Seattle 2017: Scaling Data Science at Stitch Fix
Data Day Seattle 2017: Scaling Data Science at Stitch Fix
 
Is multi-model the future of NoSQL?
Is multi-model the future of NoSQL?Is multi-model the future of NoSQL?
Is multi-model the future of NoSQL?
 
Chapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheetsChapter 12 Working with Document nodes and style sheets
Chapter 12 Working with Document nodes and style sheets
 
“Open Data Web” – A Linked Open Data Repository Built with CKAN
“Open Data Web” – A Linked Open Data Repository Built with CKAN“Open Data Web” – A Linked Open Data Repository Built with CKAN
“Open Data Web” – A Linked Open Data Repository Built with CKAN
 
Progress Report
Progress ReportProgress Report
Progress Report
 
Observability for Data Pipelines With OpenLineage
Observability for Data Pipelines With OpenLineageObservability for Data Pipelines With OpenLineage
Observability for Data Pipelines With OpenLineage
 
An Approach for the Incremental Export of Relational Databases into RDF Graphs
An Approach for the Incremental Export of Relational Databases into RDF GraphsAn Approach for the Incremental Export of Relational Databases into RDF Graphs
An Approach for the Incremental Export of Relational Databases into RDF Graphs
 
Chapter 13 Programming for web forms
Chapter 13 Programming for web formsChapter 13 Programming for web forms
Chapter 13 Programming for web forms
 
Data pipelines observability: OpenLineage & Marquez
Data pipelines observability:  OpenLineage & MarquezData pipelines observability:  OpenLineage & Marquez
Data pipelines observability: OpenLineage & Marquez
 
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDSOverloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
Overloading in Overdrive: A Generic Data-Centric Messaging Library for DDS
 
RDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival dataRDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival data
 

Andere mochten auch

Mogwaï: A Framework to Handle Complex Queries on Large Models
Mogwaï: A Framework to Handle Complex Queries on Large ModelsMogwaï: A Framework to Handle Complex Queries on Large Models
Mogwaï: A Framework to Handle Complex Queries on Large ModelsGwendal Daniel
 
EMF-IncQuery: Incremental evaluation of model queries over EMF models
EMF-IncQuery: Incremental evaluation of model queries over EMF modelsEMF-IncQuery: Incremental evaluation of model queries over EMF models
EMF-IncQuery: Incremental evaluation of model queries over EMF modelsIstvan Rath
 
Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Hugo Bruneliere
 
Fase 2015 - Map-based Transparent Persistence for Very Large Models
Fase 2015 - Map-based Transparent Persistence for Very Large ModelsFase 2015 - Map-based Transparent Persistence for Very Large Models
Fase 2015 - Map-based Transparent Persistence for Very Large Modelsabgolla
 
Automated Equation Processing and Rendering Workflows for Publishers
Automated Equation Processing and Rendering Workflows for PublishersAutomated Equation Processing and Rendering Workflows for Publishers
Automated Equation Processing and Rendering Workflows for PublishersSanders Kleinfeld
 
Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)Lois Patterson
 
Automated Equation Breaking: Making Equations Responsive
Automated Equation Breaking: Making Equations ResponsiveAutomated Equation Breaking: Making Equations Responsive
Automated Equation Breaking: Making Equations ResponsiveAhmed Hindawi
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentationLois Patterson
 
From print textbook to MathML
From print textbook to MathMLFrom print textbook to MathML
From print textbook to MathMLTara Robertson
 
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in NantesMoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in NantesHugo Bruneliere
 
SiriusCon2016 - Visualization of Inferred Versioned Schemas from NoSQL Databases
SiriusCon2016 - Visualization of Inferred Versioned Schemas from NoSQL DatabasesSiriusCon2016 - Visualization of Inferred Versioned Schemas from NoSQL Databases
SiriusCon2016 - Visualization of Inferred Versioned Schemas from NoSQL DatabasesObeo
 
SiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDE
SiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDESiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDE
SiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDEObeo
 
fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dyna...
fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dyna...fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dyna...
fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dyna...Hugo Bruneliere
 
V for visualization: VIATRA finally goes graphical thanks to Sirius!
V for visualization: VIATRA finally goes graphical thanks to Sirius!V for visualization: VIATRA finally goes graphical thanks to Sirius!
V for visualization: VIATRA finally goes graphical thanks to Sirius!Ákos Horváth
 
Gui Input Tools for Math [UKMC09]
Gui Input Tools for Math [UKMC09]Gui Input Tools for Math [UKMC09]
Gui Input Tools for Math [UKMC09]Greg TAPPERO
 
SiriusCon2016 - ASML's MDE Going Sirius
SiriusCon2016 - ASML's MDE Going SiriusSiriusCon2016 - ASML's MDE Going Sirius
SiriusCon2016 - ASML's MDE Going SiriusObeo
 
Shipment address classification in logistics, Ravindra Babu, Flipkart
Shipment address classification in logistics, Ravindra Babu, FlipkartShipment address classification in logistics, Ravindra Babu, Flipkart
Shipment address classification in logistics, Ravindra Babu, FlipkartMohit Ranjan
 
Optimization Modeling and Decision Support for Wireless Infrastructure Deploy...
Optimization Modeling and Decision Support for Wireless Infrastructure Deploy...Optimization Modeling and Decision Support for Wireless Infrastructure Deploy...
Optimization Modeling and Decision Support for Wireless Infrastructure Deploy...streamspotter
 
Supplementary specification
Supplementary specificationSupplementary specification
Supplementary specificationHeba Fathy
 
Requirment anlaysis
Requirment anlaysisRequirment anlaysis
Requirment anlaysiscsk selva
 

Andere mochten auch (20)

Mogwaï: A Framework to Handle Complex Queries on Large Models
Mogwaï: A Framework to Handle Complex Queries on Large ModelsMogwaï: A Framework to Handle Complex Queries on Large Models
Mogwaï: A Framework to Handle Complex Queries on Large Models
 
EMF-IncQuery: Incremental evaluation of model queries over EMF models
EMF-IncQuery: Incremental evaluation of model queries over EMF modelsEMF-IncQuery: Incremental evaluation of model queries over EMF models
EMF-IncQuery: Incremental evaluation of model queries over EMF models
 
Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011
 
Fase 2015 - Map-based Transparent Persistence for Very Large Models
Fase 2015 - Map-based Transparent Persistence for Very Large ModelsFase 2015 - Map-based Transparent Persistence for Very Large Models
Fase 2015 - Map-based Transparent Persistence for Very Large Models
 
Automated Equation Processing and Rendering Workflows for Publishers
Automated Equation Processing and Rendering Workflows for PublishersAutomated Equation Processing and Rendering Workflows for Publishers
Automated Equation Processing and Rendering Workflows for Publishers
 
Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)
 
Automated Equation Breaking: Making Equations Responsive
Automated Equation Breaking: Making Equations ResponsiveAutomated Equation Breaking: Making Equations Responsive
Automated Equation Breaking: Making Equations Responsive
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
 
From print textbook to MathML
From print textbook to MathMLFrom print textbook to MathML
From print textbook to MathML
 
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in NantesMoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
MoDisco & ATL - Eclipse DemoCamp Indigo 2011 in Nantes
 
SiriusCon2016 - Visualization of Inferred Versioned Schemas from NoSQL Databases
SiriusCon2016 - Visualization of Inferred Versioned Schemas from NoSQL DatabasesSiriusCon2016 - Visualization of Inferred Versioned Schemas from NoSQL Databases
SiriusCon2016 - Visualization of Inferred Versioned Schemas from NoSQL Databases
 
SiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDE
SiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDESiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDE
SiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDE
 
fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dyna...
fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dyna...fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dyna...
fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dyna...
 
V for visualization: VIATRA finally goes graphical thanks to Sirius!
V for visualization: VIATRA finally goes graphical thanks to Sirius!V for visualization: VIATRA finally goes graphical thanks to Sirius!
V for visualization: VIATRA finally goes graphical thanks to Sirius!
 
Gui Input Tools for Math [UKMC09]
Gui Input Tools for Math [UKMC09]Gui Input Tools for Math [UKMC09]
Gui Input Tools for Math [UKMC09]
 
SiriusCon2016 - ASML's MDE Going Sirius
SiriusCon2016 - ASML's MDE Going SiriusSiriusCon2016 - ASML's MDE Going Sirius
SiriusCon2016 - ASML's MDE Going Sirius
 
Shipment address classification in logistics, Ravindra Babu, Flipkart
Shipment address classification in logistics, Ravindra Babu, FlipkartShipment address classification in logistics, Ravindra Babu, Flipkart
Shipment address classification in logistics, Ravindra Babu, Flipkart
 
Optimization Modeling and Decision Support for Wireless Infrastructure Deploy...
Optimization Modeling and Decision Support for Wireless Infrastructure Deploy...Optimization Modeling and Decision Support for Wireless Infrastructure Deploy...
Optimization Modeling and Decision Support for Wireless Infrastructure Deploy...
 
Supplementary specification
Supplementary specificationSupplementary specification
Supplementary specification
 
Requirment anlaysis
Requirment anlaysisRequirment anlaysis
Requirment anlaysis
 

Ähnlich wie UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases

Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...Databricks
 
OrientDB - Perché le tue applicazioni meritano un DB Multi-Model
OrientDB - Perché le tue applicazioni meritano un DB Multi-ModelOrientDB - Perché le tue applicazioni meritano un DB Multi-Model
OrientDB - Perché le tue applicazioni meritano un DB Multi-ModelDevDay
 
Graphs for Enterprise Architects
Graphs for Enterprise ArchitectsGraphs for Enterprise Architects
Graphs for Enterprise ArchitectsNeo4j
 
Understanding Connected Data through Visualization
Understanding Connected Data through VisualizationUnderstanding Connected Data through Visualization
Understanding Connected Data through VisualizationSebastian Müller
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015Luigi Dell'Aquila
 
RDBMS to NoSQL: Practical Advice from Successful Migrations
RDBMS to NoSQL: Practical Advice from Successful MigrationsRDBMS to NoSQL: Practical Advice from Successful Migrations
RDBMS to NoSQL: Practical Advice from Successful MigrationsScyllaDB
 
Pivotal Greenplum 次世代マルチクラウド・データ分析プラットフォーム
Pivotal Greenplum 次世代マルチクラウド・データ分析プラットフォームPivotal Greenplum 次世代マルチクラウド・データ分析プラットフォーム
Pivotal Greenplum 次世代マルチクラウド・データ分析プラットフォームMasayuki Matsushita
 
Graph computation
Graph computationGraph computation
Graph computationSigmoid
 
aRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RaRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RGraphRM
 
Code-first GraphQL Server Development with Prisma
Code-first  GraphQL Server Development with PrismaCode-first  GraphQL Server Development with Prisma
Code-first GraphQL Server Development with PrismaNikolas Burk
 
Fosdem 2011 - A Common Graph Database Access Layer for .Net and Mono
Fosdem 2011 - A Common Graph Database Access Layer for .Net and MonoFosdem 2011 - A Common Graph Database Access Layer for .Net and Mono
Fosdem 2011 - A Common Graph Database Access Layer for .Net and MonoAchim Friedland
 
1st UIM-GDB - Connections to the Real World
1st UIM-GDB - Connections to the Real World1st UIM-GDB - Connections to the Real World
1st UIM-GDB - Connections to the Real WorldAchim Friedland
 
NoSQL no more: SQL on Druid with Apache Calcite
NoSQL no more: SQL on Druid with Apache CalciteNoSQL no more: SQL on Druid with Apache Calcite
NoSQL no more: SQL on Druid with Apache Calcitegianmerlino
 
Svccg nosql 2011_v4
Svccg nosql 2011_v4Svccg nosql 2011_v4
Svccg nosql 2011_v4Sid Anand
 
Big data analytics K.Kiruthika II-M.Sc.,Computer Science Bonsecours college f...
Big data analytics K.Kiruthika II-M.Sc.,Computer Science Bonsecours college f...Big data analytics K.Kiruthika II-M.Sc.,Computer Science Bonsecours college f...
Big data analytics K.Kiruthika II-M.Sc.,Computer Science Bonsecours college f...Kiruthikak14
 
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...Databricks
 
Graph database in sv meetup
Graph database in sv meetupGraph database in sv meetup
Graph database in sv meetupJoshua Bae
 

Ähnlich wie UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases (20)

Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
 
OrientDB - Perché le tue applicazioni meritano un DB Multi-Model
OrientDB - Perché le tue applicazioni meritano un DB Multi-ModelOrientDB - Perché le tue applicazioni meritano un DB Multi-Model
OrientDB - Perché le tue applicazioni meritano un DB Multi-Model
 
DEX: Seminar Tutorial
DEX: Seminar TutorialDEX: Seminar Tutorial
DEX: Seminar Tutorial
 
Graphs for Enterprise Architects
Graphs for Enterprise ArchitectsGraphs for Enterprise Architects
Graphs for Enterprise Architects
 
Understanding Connected Data through Visualization
Understanding Connected Data through VisualizationUnderstanding Connected Data through Visualization
Understanding Connected Data through Visualization
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
 
RDBMS to NoSQL: Practical Advice from Successful Migrations
RDBMS to NoSQL: Practical Advice from Successful MigrationsRDBMS to NoSQL: Practical Advice from Successful Migrations
RDBMS to NoSQL: Practical Advice from Successful Migrations
 
Pivotal Greenplum 次世代マルチクラウド・データ分析プラットフォーム
Pivotal Greenplum 次世代マルチクラウド・データ分析プラットフォームPivotal Greenplum 次世代マルチクラウド・データ分析プラットフォーム
Pivotal Greenplum 次世代マルチクラウド・データ分析プラットフォーム
 
Graph computation
Graph computationGraph computation
Graph computation
 
aRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con RaRangodb, un package per l'utilizzo di ArangoDB con R
aRangodb, un package per l'utilizzo di ArangoDB con R
 
Code-first GraphQL Server Development with Prisma
Code-first  GraphQL Server Development with PrismaCode-first  GraphQL Server Development with Prisma
Code-first GraphQL Server Development with Prisma
 
Fosdem 2011 - A Common Graph Database Access Layer for .Net and Mono
Fosdem 2011 - A Common Graph Database Access Layer for .Net and MonoFosdem 2011 - A Common Graph Database Access Layer for .Net and Mono
Fosdem 2011 - A Common Graph Database Access Layer for .Net and Mono
 
1st UIM-GDB - Connections to the Real World
1st UIM-GDB - Connections to the Real World1st UIM-GDB - Connections to the Real World
1st UIM-GDB - Connections to the Real World
 
Neo4j graph database
Neo4j graph databaseNeo4j graph database
Neo4j graph database
 
NoSQL no more: SQL on Druid with Apache Calcite
NoSQL no more: SQL on Druid with Apache CalciteNoSQL no more: SQL on Druid with Apache Calcite
NoSQL no more: SQL on Druid with Apache Calcite
 
Graph based data models
Graph based data modelsGraph based data models
Graph based data models
 
Svccg nosql 2011_v4
Svccg nosql 2011_v4Svccg nosql 2011_v4
Svccg nosql 2011_v4
 
Big data analytics K.Kiruthika II-M.Sc.,Computer Science Bonsecours college f...
Big data analytics K.Kiruthika II-M.Sc.,Computer Science Bonsecours college f...Big data analytics K.Kiruthika II-M.Sc.,Computer Science Bonsecours college f...
Big data analytics K.Kiruthika II-M.Sc.,Computer Science Bonsecours college f...
 
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
Neo4j Morpheus: Interweaving Documents, Tables and and Graph Data in Spark wi...
 
Graph database in sv meetup
Graph database in sv meetupGraph database in sv meetup
Graph database in sv meetup
 

Kürzlich hochgeladen

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
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Chameera Dedduwage
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyPooja Nehwal
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxmohammadalnahdi22
 
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
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaKayode Fayemi
 
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
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Vipesco
 
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
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxNikitaBankoti2
 
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
 
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, YardstickSaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, Yardsticksaastr
 
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
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...Sheetaleventcompany
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMoumonDas2
 
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
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 
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
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubssamaasim06
 

Kürzlich hochgeladen (20)

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...
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.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
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
 
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...
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510
 
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...
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
 
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
 
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, YardstickSaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
 
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
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptx
 
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)...
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 
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 )
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubs
 

UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases

  • 1. UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases Jordi Cabot ICREA-UOC jordi.cabot@icrea.cat Gwendal Daniel Inria - Mines Nantes & Lina gwendal.daniel@inria.fr Gerson Sunyé Inria - Mines Nantes & Lina gerson.sunye@inria.fr
  • 2. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 2 Introduction ● NoSQL – Scalability – Availability – Performance ● Graph Databases – Store highly interconnected data ● Vertices, edges, properties – Expressive query language ● Gremlin, Cypher – Social networks, data provenance analysis
  • 3. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 3 Introduction ● Schemaless Flexible ● Non-uniform data ● Schema evolutions Implicit schema defined by data ● Need to acquire this knowledge ● Specific to each database ● Not formally described
  • 4. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 4 Introduction Hard to integrate in code-generation architectures – Few options for mapping ER/UML to NoSQL – Data consistency challenge – Lack of support for integrity constraints → Goal: create a code generation framework – Map conceptual schemas to graph databases – Input: UML + OCL – Output: graph database + graph queries
  • 5. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 5 UMLtoGraphDB ● MDA methodology – Platform Independent Model (PIM) ● Conceptual schema – Platform Specific Model (PSM) ● Refines PIM for a specific implementation – Code generation from PSM
  • 6. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 6 UMLtoGraphDB – Starting Point ● Conceptual Schema – UML class diagram ● Concepts ● Data structure – OCL ● Business rules ● Invariants / Constraints
  • 7. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 7 UMLtoGraphDB
  • 8. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 8 UMLtoGraphDB
  • 9. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 9 UMLtoGraphDB
  • 10. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 10 Class2GraphDB Transformation
  • 11. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 11 GraphDB Metamodel GraphSpecification + baseDB : DBType VertexDefinition EdgeDefinition PropertyDefinition + Key : String + Type : PrimitiveType GraphElement + label : String[*] <<Enumeration>> PrimitiveType Object Integer String Boolean <<Enumeration>> DBType Neo4j OrientDB vertices * inEdges * head 1 outEdges * tail 1 edges * properties *
  • 12. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 12 Class2GraphDB ● (Subset of) UML class diagram to GraphDB – Non-abtract classes → VertexDefinition – Attribute → PropertyDefinition – Association (2 classes) → EdgeDefinition – Association (n classes) → VertexDefinition + EdgeDefinitions – Association class → VertexDefinition + EdgeDefinitions – Support for generalization / specialization
  • 13. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 13 Client + name : String + address : String Order + shipmentDate : Date + deliveryDate : Date + paid : Boolean Product + name : String + price : Integer + description : String OrderLine + quantity : Integer + productPrice : Integer PrivateCustomer + cardNumber : String orders * 1..** Running Example context Product inv validPrice: self.price > 0 context Order inv validOrder: self.shipmentData < self.deliveryDate context Client inv maxUnpaidOrders: self.orders→select(o | not o.paid) →size() < 3 Running Example - PIM
  • 14. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 14 Class2GraphDB Class mapping Product + name : String + price : Integer + description : String v1:VertexDefinition + label : String = "Product" p1:PropertyDefinition + key : String = "name" + type : PrimitiveType = String p3:PropertyDefinition + key : String = "description" + type : PrimitiveType = String p2:PropertyDefinition + key : String = "price" + type : PrimitiveType = Integer
  • 15. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 15 Class2GraphDB Association mapping v3:VertexDefinition + label : String = "Order" v1:VertexDefinition + label : String = "Client" e1:EdgeDefinition + name : String = "orders" tail head Client Order orders*
  • 16. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 16 Class2GraphDB Order Product OrderLine + quantity : Integer + productPrice : Integer 1..* * AssociationClass mapping v2:VertexDefinition + label : String = "Order" v3:VertexDefinition + label : String = "Product" v4:VertexDefinition + label : String = "OrderLine" e2:EdgeDefinition + name : String = "orderLine" e3:EdgeDefinition + name : String = "orderLine" p5:PropertyDefinition + key : String = "quantity" + type : PrimitiveType = Integer p4:PropertyDefinition + key : String = "productPrice" + type : PrimitiveType = Integer tail head head tail
  • 17. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 17 UMLtoGraphDB
  • 18. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 18 OCL2Gremlin Transformation
  • 19. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 19 Gremlin Metamodel ● Gremlin language – Graph traversal DSL – Based on the Blueprints API – Generic query language for graph databases
  • 20. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 20 Gremlin Metamodel GremlinScript InstructionTraversalElementStep OutEStep + label : String InEStep + label : String OutVStep InVStep FilterStep . . . EdgesStep + label : String VerticesStep + id : String instructions * next 0..1
  • 21. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 21 OCL2Gremlin ● Adaptation of the Mogwaï* query framework – Gremlin metamodel definition – Map OCL expressions to Gremlin steps – Merge created steps into traversals – Generate query code from Gremlin AST * G. Daniel, G. Sunyé, and J. Cabot. Mogwaï: a Framework to Handle Complex Queries on Large Models. In RCIS 2016, Grenoble, FR,June 2016
  • 22. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 22 OCL2Gremlin context Product inv validPrice: self.price > 0 context Order inv validOrder: self.shipmentData < self.deliveryDate context Client inv maxUnpaidOrders: self.orders→select(o | not o.paid) →size() < 3 // validPrice v.property(''price'') > 0; // validOrder v.property(''shipmentDate'') < v.property(''deliveryDate'') // maxUnpaidOrders v.outE(''orders'').inV .filter{it.property(''paid'') == false} .count() < 3
  • 23. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 23 UMLtoGraphDB
  • 24. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 24 Graph2Code
  • 25. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 25 Graph2Code ● Generate Java beans – Adapter pattern ● Delegate to database objects ● Lightweight implementation – Bean factory ● Create new elements ● Reifies database objects
  • 26. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 26 Graph2Code – Client Class public class Client extends BlueprintsBean { public Client(Vertex v, Graph graph, UMLModelFactory factory) { super(v,graph,factory); } public String getName() { return (String) this.vertex.property(''name'').value(); } public void setName(String newName) { this.vertex.property(''name'', newName); } public List<Order> getOrders() { Iterator<Vertex> otherEnd = this.vertex.vertices(Direction.OUT,"orders"); return new GremlinIterator<Order>(otherEnd, factory); } public void addOrder(Order newOrder) { this.vertex.addEdge(“orders”, newOrder.getVertex()); }
  • 27. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 27 Graph2Code – Client Class [...] public boolean checkMaxUnpaidOrders() { return this.graph.traversal().V(this.vertex).out(''orders'').filter( v -> v.get().<Boolean>property(''paid'').value()) .count().is(P.lt(3)).hasNext(); } }
  • 28. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 28 Tooling ● Set of open-source eclipse plugins – ATL: Model-to-model transformations ● ~ 110 rules / helpers – XTend: Code generation ● Full stack execution: less than 5 seconds
  • 29. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 29 Conclusion ● Chain of model transformations – UML (class diagram) to GraphDB – OCL to Gremlin – Graph to code transformation ● GraphDB metamodel ● Future Work – Refactoring operations at the PSM level – Cover multiple database types – Reverse engineering
  • 30. 17/11/2016 UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases - G. Daniel 30 Questions? Websites / Repositories UMLtoGraphDB: https://github.com/atlanmod/UML2NoSQL Mogwaï: https://github.com/atlanmod/Mogwai https://github.com/atlanmod Thank you for your attention! https://github.com/SOM-Research