A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models

Joshua Shinavier
Joshua ShinavierSoftware developer at LinkedIn
A Graph is a Graph is a Graph:
Equivalence, Transformations, and
Composition of Graph Data Models
Joshua Shinavier, PhD
Global Graph Summit 2019
26.01.2019
• Graphs
• Categories
• Data models
• Transformations
• Graphs @ Uber
Outline
Graphs
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
TinkerFactory.createClassic() + vertex labels
Graph structure
Categories
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
An object
An arrow (morphism)
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
Composition
Identity
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
An isomorphism
An isomorphism: f-1
∘f = ida
, f∘f-1
= idb
An isomorphism
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
Composition of isomorphisms
A category
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A functor
Equivalence
Graphs and operations as a category
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
Equivalent models
Data models
• Property Graphs
• Resource Description Framework (RDF)
• Relational Model
• SQL, CQL, HQL, DQL, ...
• Data interchange formats
• Protocol Buffers, Apache Thrift, Apache Avro
• Mostly based on algebraic data types (ADTs)
Some data models of interest (@ Uber)
• A simple interpretation1
I of an RDF graph is:
• A non-empty set IR of resources, called the domain or universe of I
• A set IP, called the set of properties of I
• A mapping IEXT from IP into 𝒫(IR x IR), i.e. the set of sets of pairs <x, y> with
x and y in IR
• Assuming:
• Ground RDF graphs only (⇒ no blank nodes)
Resource Description Framework (RDF)
1) World Wide Web Consortium. (2014). RDF 1.1 concepts and abstract syntax.
• Simple.
• Vertices, edges, properties
• No standard
• W3C Property Graphs working group (2013)
• W3C Graph Data Workshop (March 2019)
• Next best thing?
• TinkerPop’s Graph.Features
Property Graph data model
• Many are concerned with the data model
• Vertex/edge id data types
• Numeric, string, UUID, “any”
• Property support
• Supports vertex properties? edge properties? vertex metaproperties?
• Multi-properties?
• Property data types
• Primitive: boolean, byte, double, float, integer, long, string
• Complex: array, map, list (uniform/mixed), serializable
TinkerPop’s Graph.Features
Property graph objects
v = a vertex label (e.g. Person, Place, Dataset)
e = an edge label (e.g. knows, likes, claims)
p = a property key (e.g. name, weight)
d = a data type (e.g. String, Integer, List<String>)
Edges
Vertex properties
Edge properties
Vertex meta-properties
Meta-edges: edge to vertex
Meta-edge: vertex to edge
Bonus: hyper-edge
Bonus: RDF statement
Transformations
• neo4j-rdf-sail (2008-2010)
• Wrapper based on OpenRDF (now RDF4J) Sail API
• Neo4j-internal representation of RDF resources and statements
• Blueprints RDF suite (2010-2014)
• SailGraph: pragmatic RDF → PG mapping
• GraphSail: storage and retrieval of RDF data in a PG database
• PropertyGraphSail: PG → RDF mappings (simple vs. lossless)
• Cudré-Mauroux et al. 2013: RDF storage and query on various NoSQL backends
• Hartig 2014: formal PG ↔ RDF* mappings (simple vs. lossless and invertible)
• Das et al. 2014: PG → RDF mappings (reification-, NG-, subproperty-based)
• SPARQL-Gremlin (2015-present): SPARQL → Gremlin query mapping
• jbarrasa/neosemantics (2016-present): RDF storage/query on Neo4j
• etc.
Example: Property Graphs ↔ RDF
• We want them:
• Bidirectional
• Composable
• Techniques
• Bidirectional arrows
• Symmetric lenses
• Symmetric currying
Graph transformations
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
Goal: define an isomorphism
Problem: internal structure is not one-to-one
...but some components are analogous
Asymmetric context
Symmetric context
Fruit images: Wikipedia, PicsArt, PNG Mart, PNG Only, toppng
Graphs @ Uber
• Let’s build a knowledge graph
• E.g. Riders, drivers, trips, vehicles, orders, etc.
• Evaluate OLTP and OLAP queries
• Use cases:
• Risk and safety, recommendation, analytics
Goal
• Thousands of datasets and schemas
• Static, streaming, RPC
• Data sources are not composable
• Strong identifiers, weak semantics
• Duplicate types, homonyms, synonyms
• Per-language data islands
• Diversity of data modeling conventions
Problems
• Define mappings on a per-dataset basis
• Great precision, low recall
• Build bridges between data models
• Must be composable
• Standardized vocabulary saves a lot of pain
• Commonly-used types and properties
• E.g. basic data types, time, geometry and geolocation, addresses
and contact info, sensors, money, etc.
• Shared logical data model
• Tooling for transformations
• Written in Haskell, compiles to bytecode via Eta
Solutions
UBER KNOWLEDGE GRAPH
Building bridges
Logical
YAML
Protocol Buffers
Apache Thrift
Apache Avro
N-Triples (OWL)
Docs
Thanks
joshsh@uber.com
A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models
1 of 75

Recommended

An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N... by
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...
An Algebraic Data Model for Graphs and Hypergraphs (Category Theory meetup, N...Joshua Shinavier
580 views61 slides
Transpilers Gone Wild: Introducing Hydra by
Transpilers Gone Wild: Introducing HydraTranspilers Gone Wild: Introducing Hydra
Transpilers Gone Wild: Introducing HydraJoshua Shinavier
593 views50 slides
Evolution of the Graph Schema by
Evolution of the Graph SchemaEvolution of the Graph Schema
Evolution of the Graph SchemaJoshua Shinavier
1.7K views39 slides
Slides: Knowledge Graphs vs. Property Graphs by
Slides: Knowledge Graphs vs. Property GraphsSlides: Knowledge Graphs vs. Property Graphs
Slides: Knowledge Graphs vs. Property GraphsDATAVERSITY
2K views51 slides
Building an Enterprise Knowledge Graph @Uber: Lessons from Reality by
Building an Enterprise Knowledge Graph @Uber: Lessons from RealityBuilding an Enterprise Knowledge Graph @Uber: Lessons from Reality
Building an Enterprise Knowledge Graph @Uber: Lessons from RealityJoshua Shinavier
1.6K views23 slides
Graph based data models by
Graph based data modelsGraph based data models
Graph based data modelsMoumie Soulemane
1.7K views88 slides

More Related Content

What's hot

Understanding RDF: the Resource Description Framework in Context (1999) by
Understanding RDF: the Resource Description Framework in Context  (1999)Understanding RDF: the Resource Description Framework in Context  (1999)
Understanding RDF: the Resource Description Framework in Context (1999)Dan Brickley
7.3K views19 slides
Apexデザインパターン by
ApexデザインパターンApexデザインパターン
ApexデザインパターンSalesforce Developers Japan
7.4K views57 slides
Enterprise Knowledge Graph by
Enterprise Knowledge GraphEnterprise Knowledge Graph
Enterprise Knowledge GraphBenjamin Raethlein
1.9K views27 slides
Introduction to Knowledge Graphs for Information Architects.pdf by
Introduction to Knowledge Graphs for Information Architects.pdfIntroduction to Knowledge Graphs for Information Architects.pdf
Introduction to Knowledge Graphs for Information Architects.pdfHeather Hedden
153 views52 slides
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm... by
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...Khirulnizam Abd Rahman
19.6K views54 slides
Google Cloud Machine Learning by
 Google Cloud Machine Learning  Google Cloud Machine Learning
Google Cloud Machine Learning India Quotient
7.6K views35 slides

What's hot(20)

Understanding RDF: the Resource Description Framework in Context (1999) by Dan Brickley
Understanding RDF: the Resource Description Framework in Context  (1999)Understanding RDF: the Resource Description Framework in Context  (1999)
Understanding RDF: the Resource Description Framework in Context (1999)
Dan Brickley7.3K views
Introduction to Knowledge Graphs for Information Architects.pdf by Heather Hedden
Introduction to Knowledge Graphs for Information Architects.pdfIntroduction to Knowledge Graphs for Information Architects.pdf
Introduction to Knowledge Graphs for Information Architects.pdf
Heather Hedden153 views
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm... by Khirulnizam Abd Rahman
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...
Google Cloud Machine Learning by India Quotient
 Google Cloud Machine Learning  Google Cloud Machine Learning
Google Cloud Machine Learning
India Quotient7.6K views
First Steps in Semantic Data Modelling and Search & Analytics in the Cloud by Ontotext
First Steps in Semantic Data Modelling and Search & Analytics in the CloudFirst Steps in Semantic Data Modelling and Search & Analytics in the Cloud
First Steps in Semantic Data Modelling and Search & Analytics in the Cloud
Ontotext2.2K views
MongoDB Fundamentals by MongoDB
MongoDB FundamentalsMongoDB Fundamentals
MongoDB Fundamentals
MongoDB1.8K views
The Semantic Web #9 - Web Ontology Language (OWL) by Myungjin Lee
The Semantic Web #9 - Web Ontology Language (OWL)The Semantic Web #9 - Web Ontology Language (OWL)
The Semantic Web #9 - Web Ontology Language (OWL)
Myungjin Lee2.2K views
Hadoop with Python by Donald Miner
Hadoop with PythonHadoop with Python
Hadoop with Python
Donald Miner35.4K views
ML Infrastracture @ Dropbox by Tsahi Glik
ML Infrastracture @ Dropbox ML Infrastracture @ Dropbox
ML Infrastracture @ Dropbox
Tsahi Glik924 views
Building a Knowledge Graph using NLP and Ontologies by Neo4j
Building a Knowledge Graph using NLP and OntologiesBuilding a Knowledge Graph using NLP and Ontologies
Building a Knowledge Graph using NLP and Ontologies
Neo4j864 views
Property graph vs. RDF Triplestore comparison in 2020 by Ontotext
Property graph vs. RDF Triplestore comparison in 2020Property graph vs. RDF Triplestore comparison in 2020
Property graph vs. RDF Triplestore comparison in 2020
Ontotext17K views
Reasoning with Big Knowledge Graphs: Choices, Pitfalls and Proven Recipes by Ontotext
Reasoning with Big Knowledge Graphs: Choices, Pitfalls and Proven RecipesReasoning with Big Knowledge Graphs: Choices, Pitfalls and Proven Recipes
Reasoning with Big Knowledge Graphs: Choices, Pitfalls and Proven Recipes
Ontotext396 views
Modélisation de la spatialité dans les ontologies de capteurs by catherine roussey
Modélisation de la spatialité dans les ontologies de capteursModélisation de la spatialité dans les ontologies de capteurs
Modélisation de la spatialité dans les ontologies de capteurs
catherine roussey109 views
ElasticSearch Basic Introduction by Mayur Rathod
ElasticSearch Basic IntroductionElasticSearch Basic Introduction
ElasticSearch Basic Introduction
Mayur Rathod25.6K views
Debunking some “RDF vs. Property Graph” Alternative Facts by Neo4j
Debunking some “RDF vs. Property Graph” Alternative FactsDebunking some “RDF vs. Property Graph” Alternative Facts
Debunking some “RDF vs. Property Graph” Alternative Facts
Neo4j6.5K views
RDBMS to Graph by Neo4j
RDBMS to GraphRDBMS to Graph
RDBMS to Graph
Neo4j1K views

Similar to A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models

Graph Databases by
Graph DatabasesGraph Databases
Graph Databasesthai
166 views43 slides
Multi-Model Data Query Languages and Processing Paradigms by
Multi-Model Data Query Languages and Processing ParadigmsMulti-Model Data Query Languages and Processing Paradigms
Multi-Model Data Query Languages and Processing ParadigmsJiaheng Lu
140 views96 slides
(DAT203) Building Graph Databases on AWS by
(DAT203) Building Graph Databases on AWS(DAT203) Building Graph Databases on AWS
(DAT203) Building Graph Databases on AWSAmazon Web Services
10.5K views32 slides
Large Scale Graph Analytics with JanusGraph by
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphP. Taylor Goetz
19.1K views67 slides
Large Scale Graph Analytics with JanusGraph by
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphDataWorks Summit
1.7K views67 slides
Intro to Graphs for Fedict by
Intro to Graphs for FedictIntro to Graphs for Fedict
Intro to Graphs for FedictRik Van Bruggen
718 views34 slides

Similar to A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models(20)

Graph Databases by thai
Graph DatabasesGraph Databases
Graph Databases
thai166 views
Multi-Model Data Query Languages and Processing Paradigms by Jiaheng Lu
Multi-Model Data Query Languages and Processing ParadigmsMulti-Model Data Query Languages and Processing Paradigms
Multi-Model Data Query Languages and Processing Paradigms
Jiaheng Lu140 views
Large Scale Graph Analytics with JanusGraph by P. Taylor Goetz
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
P. Taylor Goetz19.1K views
Large Scale Graph Analytics with JanusGraph by DataWorks Summit
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
DataWorks Summit1.7K views
Graph database in sv meetup by Joshua Bae
Graph database in sv meetupGraph database in sv meetup
Graph database in sv meetup
Joshua Bae655 views
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich by Martin Junghanns
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup MunichMorpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Morpheus SQL and Cypher® in Apache® Spark - Big Data Meetup Munich
Martin Junghanns158 views
Morpheus - SQL and Cypher in Apache Spark by Henning Kropp
Morpheus - SQL and Cypher in Apache SparkMorpheus - SQL and Cypher in Apache Spark
Morpheus - SQL and Cypher in Apache Spark
Henning Kropp72 views
AgensGraph Presentation at PGConf.us 2017 by Kisung Kim
AgensGraph Presentation at PGConf.us 2017AgensGraph Presentation at PGConf.us 2017
AgensGraph Presentation at PGConf.us 2017
Kisung Kim632 views
Apache con big data 2015 magellan by Ram Sriharsha
Apache con big data 2015 magellanApache con big data 2015 magellan
Apache con big data 2015 magellan
Ram Sriharsha2.8K views
Machine learning with Spark by Khalid Salama
Machine learning with SparkMachine learning with Spark
Machine learning with Spark
Khalid Salama2.9K views
A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ... by Jose Quesada (hiring)
A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ...A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ...
A full Machine learning pipeline in Scikit-learn vs in scala-Spark: pros and ...
Jose Quesada (hiring)10.1K views
Introduction to Graph Databases by Max De Marzi
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph Databases
Max De Marzi80.9K views
Solr Graph Query: Presented by Kevin Watters, KMW Technology by Lucidworks
Solr Graph Query: Presented by Kevin Watters, KMW TechnologySolr Graph Query: Presented by Kevin Watters, KMW Technology
Solr Graph Query: Presented by Kevin Watters, KMW Technology
Lucidworks4.6K views
Stream processing: The Matrix Revolutions by RomanaPernischov
Stream processing: The Matrix RevolutionsStream processing: The Matrix Revolutions
Stream processing: The Matrix Revolutions
RomanaPernischov32 views
Graph Databases & OrientDB by Arpit Poladia
Graph Databases & OrientDBGraph Databases & OrientDB
Graph Databases & OrientDB
Arpit Poladia1.6K views

More from Joshua Shinavier

Anything-to-Graph by
Anything-to-GraphAnything-to-Graph
Anything-to-GraphJoshua Shinavier
131 views29 slides
In Search of the Universal Data Model (ISWC 2019 Minute Madness) by
In Search of the Universal Data Model (ISWC 2019 Minute Madness)In Search of the Universal Data Model (ISWC 2019 Minute Madness)
In Search of the Universal Data Model (ISWC 2019 Minute Madness)Joshua Shinavier
169 views95 slides
In Search of the Universal Data Model (Connected Data London 2019) by
In Search of the Universal Data Model (Connected Data London 2019)In Search of the Universal Data Model (Connected Data London 2019)
In Search of the Universal Data Model (Connected Data London 2019)Joshua Shinavier
155 views167 slides
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019) by
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)Joshua Shinavier
641 views9 slides
TinkerPop: a story of graphs, DBs, and graph DBs by
TinkerPop: a story of graphs, DBs, and graph DBsTinkerPop: a story of graphs, DBs, and graph DBs
TinkerPop: a story of graphs, DBs, and graph DBsJoshua Shinavier
8.4K views47 slides
Semantics and Sensors by
Semantics and SensorsSemantics and Sensors
Semantics and SensorsJoshua Shinavier
2.6K views33 slides

More from Joshua Shinavier(12)

In Search of the Universal Data Model (ISWC 2019 Minute Madness) by Joshua Shinavier
In Search of the Universal Data Model (ISWC 2019 Minute Madness)In Search of the Universal Data Model (ISWC 2019 Minute Madness)
In Search of the Universal Data Model (ISWC 2019 Minute Madness)
Joshua Shinavier169 views
In Search of the Universal Data Model (Connected Data London 2019) by Joshua Shinavier
In Search of the Universal Data Model (Connected Data London 2019)In Search of the Universal Data Model (Connected Data London 2019)
In Search of the Universal Data Model (Connected Data London 2019)
Joshua Shinavier155 views
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019) by Joshua Shinavier
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)
Algebraic Property Graphs (GQL Community Update, oct. 9, 2019)
Joshua Shinavier641 views
TinkerPop: a story of graphs, DBs, and graph DBs by Joshua Shinavier
TinkerPop: a story of graphs, DBs, and graph DBsTinkerPop: a story of graphs, DBs, and graph DBs
TinkerPop: a story of graphs, DBs, and graph DBs
Joshua Shinavier8.4K views
semantic markup using schema.org by Joshua Shinavier
semantic markup using schema.orgsemantic markup using schema.org
semantic markup using schema.org
Joshua Shinavier20.5K views
The Real-time Web in the Age of Agents by Joshua Shinavier
The Real-time Web in the Age of AgentsThe Real-time Web in the Age of Agents
The Real-time Web in the Age of Agents
Joshua Shinavier2.7K views
Real-time Semantic Web with Twitter Annotations by Joshua Shinavier
Real-time Semantic Web with Twitter AnnotationsReal-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter Annotations
Joshua Shinavier5.7K views
Real-time #SemanticWeb in 140 chars by Joshua Shinavier
Real-time #SemanticWeb in 140 charsReal-time #SemanticWeb in 140 chars
Real-time #SemanticWeb in 140 chars
Joshua Shinavier1.7K views
The state of the art in Linked Data by Joshua Shinavier
The state of the art in Linked DataThe state of the art in Linked Data
The state of the art in Linked Data
Joshua Shinavier2.5K views

Recently uploaded

MSA Website Slideshow (16).pdf by
MSA Website Slideshow (16).pdfMSA Website Slideshow (16).pdf
MSA Website Slideshow (16).pdfmsaucla
64 views8 slides
Effect of deep chemical mixing columns on properties of surrounding soft clay... by
Effect of deep chemical mixing columns on properties of surrounding soft clay...Effect of deep chemical mixing columns on properties of surrounding soft clay...
Effect of deep chemical mixing columns on properties of surrounding soft clay...AltinKaradagli
6 views10 slides
Thermal aware task assignment for multicore processors using genetic algorithm by
Thermal aware task assignment for multicore processors using genetic algorithm Thermal aware task assignment for multicore processors using genetic algorithm
Thermal aware task assignment for multicore processors using genetic algorithm IJECEIAES
31 views12 slides
Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa... by
Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa...Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa...
Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa...ijseajournal
5 views13 slides
Pull down shoulder press final report docx (1).pdf by
Pull down shoulder press final report docx (1).pdfPull down shoulder press final report docx (1).pdf
Pull down shoulder press final report docx (1).pdfComsat Universal Islamabad Wah Campus
12 views25 slides

Recently uploaded(20)

MSA Website Slideshow (16).pdf by msaucla
MSA Website Slideshow (16).pdfMSA Website Slideshow (16).pdf
MSA Website Slideshow (16).pdf
msaucla64 views
Effect of deep chemical mixing columns on properties of surrounding soft clay... by AltinKaradagli
Effect of deep chemical mixing columns on properties of surrounding soft clay...Effect of deep chemical mixing columns on properties of surrounding soft clay...
Effect of deep chemical mixing columns on properties of surrounding soft clay...
AltinKaradagli6 views
Thermal aware task assignment for multicore processors using genetic algorithm by IJECEIAES
Thermal aware task assignment for multicore processors using genetic algorithm Thermal aware task assignment for multicore processors using genetic algorithm
Thermal aware task assignment for multicore processors using genetic algorithm
IJECEIAES31 views
Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa... by ijseajournal
Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa...Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa...
Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa...
ijseajournal5 views
Update 42 models(Diode/General ) in SPICE PARK(DEC2023) by Tsuyoshi Horigome
Update 42 models(Diode/General ) in SPICE PARK(DEC2023)Update 42 models(Diode/General ) in SPICE PARK(DEC2023)
Update 42 models(Diode/General ) in SPICE PARK(DEC2023)
zincalume water storage tank design.pdf by 3D LABS
zincalume water storage tank design.pdfzincalume water storage tank design.pdf
zincalume water storage tank design.pdf
3D LABS5 views
Machine Element II Course outline.pdf by odatadese1
Machine Element II Course outline.pdfMachine Element II Course outline.pdf
Machine Element II Course outline.pdf
odatadese18 views
Generative AI Models & Their Applications by SN
Generative AI Models & Their ApplicationsGenerative AI Models & Their Applications
Generative AI Models & Their Applications
SN6 views
NEW SUPPLIERS SUPPLIES (copie).pdf by georgesradjou
NEW SUPPLIERS SUPPLIES (copie).pdfNEW SUPPLIERS SUPPLIES (copie).pdf
NEW SUPPLIERS SUPPLIES (copie).pdf
georgesradjou15 views
An approach of ontology and knowledge base for railway maintenance by IJECEIAES
An approach of ontology and knowledge base for railway maintenanceAn approach of ontology and knowledge base for railway maintenance
An approach of ontology and knowledge base for railway maintenance
IJECEIAES12 views
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,... by AakashShakya12
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...
AakashShakya1266 views

A Graph is a Graph is a Graph: Equivalence, Transformation, and Composition of Graph Data Models

  • 1. A Graph is a Graph is a Graph: Equivalence, Transformations, and Composition of Graph Data Models Joshua Shinavier, PhD Global Graph Summit 2019 26.01.2019
  • 2. • Graphs • Categories • Data models • Transformations • Graphs @ Uber Outline
  • 26. An isomorphism: f-1 ∘f = ida , f∘f-1 = idb
  • 34. Graphs and operations as a category
  • 38. • Property Graphs • Resource Description Framework (RDF) • Relational Model • SQL, CQL, HQL, DQL, ... • Data interchange formats • Protocol Buffers, Apache Thrift, Apache Avro • Mostly based on algebraic data types (ADTs) Some data models of interest (@ Uber)
  • 39. • A simple interpretation1 I of an RDF graph is: • A non-empty set IR of resources, called the domain or universe of I • A set IP, called the set of properties of I • A mapping IEXT from IP into 𝒫(IR x IR), i.e. the set of sets of pairs <x, y> with x and y in IR • Assuming: • Ground RDF graphs only (⇒ no blank nodes) Resource Description Framework (RDF) 1) World Wide Web Consortium. (2014). RDF 1.1 concepts and abstract syntax.
  • 40. • Simple. • Vertices, edges, properties • No standard • W3C Property Graphs working group (2013) • W3C Graph Data Workshop (March 2019) • Next best thing? • TinkerPop’s Graph.Features Property Graph data model
  • 41. • Many are concerned with the data model • Vertex/edge id data types • Numeric, string, UUID, “any” • Property support • Supports vertex properties? edge properties? vertex metaproperties? • Multi-properties? • Property data types • Primitive: boolean, byte, double, float, integer, long, string • Complex: array, map, list (uniform/mixed), serializable TinkerPop’s Graph.Features
  • 42. Property graph objects v = a vertex label (e.g. Person, Place, Dataset) e = an edge label (e.g. knows, likes, claims) p = a property key (e.g. name, weight) d = a data type (e.g. String, Integer, List<String>)
  • 43. Edges
  • 52. • neo4j-rdf-sail (2008-2010) • Wrapper based on OpenRDF (now RDF4J) Sail API • Neo4j-internal representation of RDF resources and statements • Blueprints RDF suite (2010-2014) • SailGraph: pragmatic RDF → PG mapping • GraphSail: storage and retrieval of RDF data in a PG database • PropertyGraphSail: PG → RDF mappings (simple vs. lossless) • Cudré-Mauroux et al. 2013: RDF storage and query on various NoSQL backends • Hartig 2014: formal PG ↔ RDF* mappings (simple vs. lossless and invertible) • Das et al. 2014: PG → RDF mappings (reification-, NG-, subproperty-based) • SPARQL-Gremlin (2015-present): SPARQL → Gremlin query mapping • jbarrasa/neosemantics (2016-present): RDF storage/query on Neo4j • etc. Example: Property Graphs ↔ RDF
  • 53. • We want them: • Bidirectional • Composable • Techniques • Bidirectional arrows • Symmetric lenses • Symmetric currying Graph transformations
  • 57. Goal: define an isomorphism
  • 58. Problem: internal structure is not one-to-one
  • 59. ...but some components are analogous
  • 61. Symmetric context Fruit images: Wikipedia, PicsArt, PNG Mart, PNG Only, toppng
  • 63. • Let’s build a knowledge graph • E.g. Riders, drivers, trips, vehicles, orders, etc. • Evaluate OLTP and OLAP queries • Use cases: • Risk and safety, recommendation, analytics Goal
  • 64. • Thousands of datasets and schemas • Static, streaming, RPC • Data sources are not composable • Strong identifiers, weak semantics • Duplicate types, homonyms, synonyms • Per-language data islands • Diversity of data modeling conventions Problems
  • 65. • Define mappings on a per-dataset basis • Great precision, low recall • Build bridges between data models • Must be composable • Standardized vocabulary saves a lot of pain • Commonly-used types and properties • E.g. basic data types, time, geometry and geolocation, addresses and contact info, sensors, money, etc. • Shared logical data model • Tooling for transformations • Written in Haskell, compiles to bytecode via Eta Solutions UBER KNOWLEDGE GRAPH
  • 68. YAML
  • 73. Docs