graph databases introduction to rug-b
DESCRIPTION
Presentation done to the ruby user group from berlin about graphdbsTRANSCRIPT
Graph Databases
Pere Urbon-BayesSoftware EngineerMoviepilot GmbH
Berlin
Graph Databases
Graph G(V,E) where V = {V1, V2, ..., VN} and E = {E1, E2, ... , EN}
● Directed, Undirected● Mixed● Multigraph● Weighted● ....
EN = (VN, VM)
Graph Databases
{
'Implementations' : {
'matrix' : [ 'adjacency', 'incidence' ],
'list' : [ 'adjacency', 'incidence' ],
.....
}
Graph Databases
{ A : {
out: [B,C],in: [C],
}
B : {out : [C]
}
C : { in : [A]}
}
{vertex : [A, B, C, D]edges : {
[A,B],[B,C],[D,A],[C,A]
}}
A
C
B
Graph DatabasesThe property graph
Abstraction layerNodesEdges
Properties on both
Adam Balduim played in Full Metal Jacket
Actor
name = Adam Balduim
Movie
title = Full Metal Jacket
played
Graph Databases
A graph database is a database that uses graph structures with nodes, edges, and properties to
represent and store information.
General graph databases that can store any graph are distinct from specialized graph
databases such as triple stores and network databases.
[wikipedia.org]
Graph DatabasesVendors
Neo4J (neo4j.org)
Embedded, disk-based, fully transactional Java persistence engine that stores data structured in graphs rather than in tables.Dual-Licensed AGPL and Commercial.High Availability, scalability, concurrent,etc.
Graph DatabasesVendors
OrientDB
An embedded pure java fast, transactional, scalable document-graph storage engine.Schema free, ACID, suport for SQL and JSON.Apache License 2.0
More info: http://www.orientechnologies.com/
Graph DatabaseVendors
● Dex: The high performance graph database.● HyperGraphDB: An IA and semantic web
graph database.● Infogrid: The Internet Graph database. ● Sones: SaaS dot Net Graph database. ● VertexDB: High performance database server.
Graph DatabaseGraph processing frameworks
● Phoebus : Pregel implementation in Erlang.
● Pregel : Google graph processing platform.
● Trinity : Microsoft C# future graph platform.
● Apache Hama: Distributed computing over graphs.
Graph DatabaseGraph APIs
● Blueprints: A Java api for the property graph.● Gremlin: A graph query language.● Pipes: A graph processing framework.● Rexter: A REST server used to access
graphdbs.
Graph DatabaseUse cases
● Task planning.● Scheduling● Process assignation● Routing● Logistics● League planning
Graph DatabaseUse cases
● Clustering● Social analysis● Hubs● Graph mining● Centrality measures● Location based services
Graph DatabaseUse cases
● Recommendation● Heuristics● Local
– Shortest Paths– Hammock functions.– Walks– Search algorithms, like A*– Shooting stars– K-nearest neighbors
Graph DatabaseUse cases
● Semantic web.● RDF (OWL) store● RDF-Sail● SPARQL
● Linked data● Link analysis● Structure mining