Graph Databases


 Pere Urbon-Bayes
 Software Engineer
 Moviepilot GmbH
       Berlin

pere@moviepilot.com
Graph Databases


●   Graph
●   Databases
●   Use cases
●   Vendors
●   Examples
Graph Databases


Graph G(V,E) where V = {V1, V2, ..., VN} and
           E = {E1, E2, ... , EN}
                                  EN = (VN, VM)
● Directed, Undirected
● Mixed

● Multigraph

● Weighted

● ....
Graph Databases




Tots els camins porten a Roma

            Alle Wege führen nach Rom
Graph Databases
{
    'Implementations' : {
            'matrix' : [ 'adjacency', 'incidence' ],
            'list' : [ 'adjacency', 'incidence' ],
         .....
}
Graph Databases
{                          {
     A:{                       vertex : [A, B, C, D]
        out: [B,C],            edges : {
        in: [C],                    [A,B],
    }                               [B,C],
                                    [D,A],
    B:{                             [C,A]
          out : [C]            }
    }                      }

    C:{                                      A
      in : [A]
    }
}                                                      C


                                         B
Graph Databases
                           The property graph

Abstraction layer
  Nodes
  Edges
  Properties on both

    Adam Balduim played in Full Metal Jacket

                                played
     Actor
                                                   Movie
   name = Adam Balduim
                                                title = Full Metal Jacket
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 Databases
GraphDB Vendors Overview!
Graph Databases
                      Vendors

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 Databases
                     Vendors

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 Database
                      Vendors

●   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 Database
              Graph 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 Database
                      Graph 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 Databases
●   Use cases
Graph Database
                      Use cases

●   Task planning.
●   Scheduling
●   Process assignation
●   Routing
●   Logistics
●   League planning
Graph Database
                      Use cases

●   Clustering
●   Social analysis
●   Hubs
●   Graph mining
●   Centrality measures
●   Location based services
Graph Database
                              Use cases

●   Recommendation
    ●   Heuristics
    ●   Local
        –   Shortest Paths
        –   Hammock functions.
        –   Walks
        –   Search algorithms, like A*
        –   Shooting stars
        –   K-nearest neighbors
Graph Database
                          Use cases

●   Semantic web.
    ●   RDF (OWL) store
    ●   RDF-Sail
    ●   SPARQL
●   Linked data
●   Link analysis
●   Structure mining
Graph Database




Neo4j.rb Neo4j using JRuby

Graph Databases introduction to rug-b

  • 1.
    Graph Databases PereUrbon-Bayes Software Engineer Moviepilot GmbH Berlin pere@moviepilot.com
  • 2.
    Graph Databases ● Graph ● Databases ● Use cases ● Vendors ● Examples
  • 3.
    Graph Databases Graph G(V,E)where V = {V1, V2, ..., VN} and E = {E1, E2, ... , EN} EN = (VN, VM) ● Directed, Undirected ● Mixed ● Multigraph ● Weighted ● ....
  • 4.
    Graph Databases Tots elscamins porten a Roma Alle Wege führen nach Rom
  • 5.
    Graph Databases { 'Implementations' : { 'matrix' : [ 'adjacency', 'incidence' ], 'list' : [ 'adjacency', 'incidence' ], ..... }
  • 6.
    Graph Databases { { A:{ vertex : [A, B, C, D] out: [B,C], edges : { in: [C], [A,B], } [B,C], [D,A], B:{ [C,A] out : [C] } } } C:{ A in : [A] } } C B
  • 7.
    Graph Databases The property graph Abstraction layer Nodes Edges Properties on both Adam Balduim played in Full Metal Jacket played Actor Movie name = Adam Balduim title = Full Metal Jacket
  • 8.
    Graph Databases A graphdatabase 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]
  • 9.
  • 10.
    Graph Databases Vendors 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.
  • 11.
    Graph Databases Vendors 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/
  • 12.
    Graph Database Vendors ● 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.
  • 13.
    Graph Database Graph processing frameworks ● Phoebus : Pregel implementation in Erlang. ● Pregel : Google graph processing platform. ● Trinity : Microsoft C# future graph platform. ● Apache Hama: Distributed computing over graphs.
  • 14.
    Graph Database Graph 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.
  • 15.
  • 16.
    Graph Database Use cases ● Task planning. ● Scheduling ● Process assignation ● Routing ● Logistics ● League planning
  • 17.
    Graph Database Use cases ● Clustering ● Social analysis ● Hubs ● Graph mining ● Centrality measures ● Location based services
  • 18.
    Graph Database Use cases ● Recommendation ● Heuristics ● Local – Shortest Paths – Hammock functions. – Walks – Search algorithms, like A* – Shooting stars – K-nearest neighbors
  • 19.
    Graph Database Use cases ● Semantic web. ● RDF (OWL) store ● RDF-Sail ● SPARQL ● Linked data ● Link analysis ● Structure mining
  • 20.