Algebraic Property Graphs
Joshua Shinavier
Ryan Wisnesky
https://arxiv.org/pdf/1909.04881.pdf
DICE colloquium presentation
Adrian Wilke
2019-10-25
https://dice-research.org/
Authors
2
Joshua Shinavier
Uber Technologies
One of the three co-founders of TinkerPop [JS]
image: https://on.mktw.net/2MbIZTW
Ryan Wisnesky
Conexus AI
“[...] algebraic property graphs as a simple but
mathematically rigorous bridge between graph and
non-graph data models [...]”
B.S. and M.S. degrees in mathematics and computer
science from Stanford University and a Ph.D. in
computer science from Harvard University, where he
studied the design and implementation of provably
correct software systems. Previously, he was a
postdoctoral associate in the MIT department of
mathematics, where he developed the categorical
query language, CQL. He currently leads open-source
and commercial development of CQL as CTO of
Conexus AI.
https://www.wisnesky.net
APG listed as case study for Categorical Query
Language (CQL) at categoricaldata.net/papers
Contents
3
15 text pages
7.6 pages appendix
2.3 pages toc & ref
Contents
4
“main contribution”
motivation
short
introduction
Motivation: Property graphs ⇄ RDF
5
slide source: [CDL]
Motivation: Property graphs ⇄ RDF
6
slide source: [CDL]
Motivation: Property graphs
7
also: missing semantics in several implementations
slide source: [CDL]
Motivation: Hypergraphs
8
slide source: [CDL]
Category theory
9
Category theory
10
“In mathematics, abstract nonsense [...] are terms
used by mathematicians
to describe abstract methods related to
category theory.”
https://en.wikipedia.org/w/index.php?title=Abstract_nonsense&oldid=881291659
Category theory
11
Category theory: Morphisms and composition
12
example 2 source: [EC]
Category theory: Morphisms and composition
13
Category theory: Functors
14
Algebraic Property Graphs
Definition
15
AGP:
- P
- t ∈ P primitive types
- V(t) primitive values
- four sets
- four functions
- equation
16
AGP: definition
17
AGP: definition
labels: think of
classes in OOP
18
AGP: definition
t1
⨉ t2
e.g. for edges
edge(nodeA, nodeB)
think of types in OOP
19
AGP: definition
value used for vertex
labels
elements: think of
objects in OOP
AGP: definition
20
elements: think of
objects in OOP
AGP: definition
21
labels: think of
classes in OOP
lambda like label
elements: think of
objects in OOP
AGP: definition
22
sigma 🠖 schema
tau 🠖 type G(𝓣): types of G
G(𝓣): types of G
AGP: definition
23
AGP: definition
24
Composition
g ○ f
g( f(x) )
Image: https://en.wikipedia.org/wiki/Morphism
Taxonomy
&
examples
25
Taxonomy: Vertices
26
Taxonomy: Vertices
27
Taxonomy: Edges
28
t1
⨉ t2
e.g. for edges
edge(nodeA, nodeB)
We already saw this.
Taxonomy: Edges
29
Taxonomy: Properties
30
Taxonomy: Properties
31
Migrating AGPs
32
Migrating AGPs
33
obviously not.
RDF ⇄ AGP
34
free category
is the category that results from freely concatenating arrows together,
whenever the target of one arrow is the source of the next.
RDF ⇄ AGP
35
Summary
36
“We propose algebraic property graphs as a
simple but mathematically rigorous
bridge between graph and non-graph data models.”
Summary
37
“main contribution”
motivation
short
introduction
For further research
38
● Java implementation
https://github.com/CategoricalData/CQL/tree/master/src/main/java/catdata/apg
● Coq proofs (paper footnote 9) https://www.categoricaldata.net/APG.v
● [CDL] Joshua Shinavier: In Search of the Universal Data Model (Connected Data London 2019)
https://youtu.be/telyBQCuq70
● Joshua Shinavier: Algebraic Property Graphs (GQL Community Update)
https://www.slideshare.net/joshsh/algebraic-property-graphs-gql-community-update-oct-9-2019
● Research on CQL https://www.categoricaldata.net/papers
Related to RDF: “Formal Modelling and Application of Graph Transformations in the Resource
Description Framework” (doctoral dissertation)
● [JS] Joshua Shinavier: Position statement for the W3C Workshop on Graph Data, 2019
https://www.w3.org/Data/events/data-ws-2019/assets/position/Joshua%20Shinavier.pdf
● [EC] Category Theory in Life - Eugenia Cheng https://youtu.be/ho7oagHeqNc

Algebraic Property Graphs