SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Photo: Gephi, flickr


                                                                                Frankfurt
                                                                  co-located to ICOODB 2010
                                                                         28. September 2010
                                                                         Frankfurt, Germany




      The GraphDB Landscape
          and sones
 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010                               1
Photo: Gephi, flickr




                                        Hashtags:
                                    #nosqlfr #graphdb
                                      #sones #neo4j


 Achim Friedland <achim@sones.de>        NoSQL Frankfurt , 9/28/2010   2
Photo: litlnemo, flickr




 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010   3
Photo: litlnemo, flickr




            • 43 years Object Orientation / OOP
            • 35 years Relational Databases / SQL
            • 21 years Semantic Web / RDF




 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010   4
Photo: litlnemo, flickr




            • 43 years Object Orientation / OOP
            • 35 years Relational Databases / SQL
            • 21 years Semantic Web / RDF

                          …but still we do not know where
                               our files have gone!

 Achim Friedland <achim@sones.de>    NoSQL Frankfurt , 9/28/2010   5
Photo: Chris Westermeyer, flickr




                                    Our wish list…




 Achim Friedland <achim@sones.de>      NoSQL Frankfurt , 9/28/2010   6
Photo: litlnemo, flickr




               Simple management of structured,
                semi-structured and unstructured
                           information



 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010   7
Photo: litlnemo, flickr




                                                                  SQL
               Simple management of structured,
                semi-structured and unstructured
                 XML/JSON  information binaries



 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010         8
Photo: Robbert van der Steeg, flickr




                                       Simple recursively linked
                                          information models




 Achim Friedland <achim@sones.de>               NoSQL Frankfurt , 9/28/2010   9
Photo: Robbert van der Steeg, flickr




                                       Simple recursively linked
                                          information models

                                            • <a href = “…”>
                                            • metadata e.g. EXIF

 Achim Friedland <achim@sones.de>               NoSQL Frankfurt , 9/28/2010   10
Photo: Khem, flickr




                      Traversing linked information,
                         finding shortest-paths, do
                            semantic partitions



 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010   11
Photo: NASA, flickr




                      Recommendation and discovery
                      of potentially interessting linked
                                 information



 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010   12
Photo: NASA, flickr




         personal social item-related
                      Recommendation and discovery
                      of potentially interessting linked
                                 information



 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010   13
Photo: squacco, flickr




              Consistency criteria and indices for
                simple attributes up to complex
                      subgraph structures



 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010   14
Photo: Cedrix Thual, flickr




                          Versioned information and
                        versioned information schemata




 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010   15
Photo: Birger Hoppe, flickr




              Good integration into state-of-the-
                   art programming concepts
               (no Object-Relational-Mappers!)



 Achim Friedland <achim@sones.de>   NoSQL Frankfurt , 9/28/2010   16
Photo: Chuck “Caveman” Coker, flickr




                               Can graph-databases help?




 Achim Friedland <achim@sones.de>       NoSQL Frankfurt , 9/28/2010   17
Photo: Jeffrey Beall, flickr




                                      Graph-Databases?

                                    Graph = ( Vertics, Edges )


                         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.
                                                             http://en.wikipedia.org/wiki/Graph_database


 Achim Friedland <achim@sones.de>           NoSQL Frankfurt , 9/28/2010                                    18
Photo: Jeffrey Beall, flickr




                                      Graph-Databases?

                                    Graph = ( Vertics, Edges )

              R. Angles, C. Gutierrez: Survey of graph database models,
              ACM Computing Surv. 40, 1 (Feb. 2008), 1-39

              Adrian Silvescu, Donia Caragea, Anna Atramentov:
              Graph Databases, Technical Report. May 2002

              Mark Gemis, Jan Paredaens, Inge Thyssens, und Jan Van den
              Bussche: GOOD: A Graph-Oriented Object Database System, 1993;
              In: Proceedings of the1993 ACM SIGMOD Intern. Conf. on
              Management of Data (Washington D.C., US, May 1993), 505-510.

 Achim Friedland <achim@sones.de>           NoSQL Frankfurt , 9/28/2010       19
Photo: Gephi, flickr




                                    The Property-Graph



                       Alice                  Friends                        Bob
                         ID = 1                                               ID = 2
                                          since = 2009/09/21
                       Alter = 21                                           Alter = 23




                                Properties are key-values pairs
                            e.g. <String, Object> or <AttributeKey, Object>

 Achim Friedland <achim@sones.de>             NoSQL Frankfurt , 9/28/2010                20
Photo: Gephi, flickr




                                    The Property-Graph
                                        vs. Relational Databases



                                                 Relation
                       Table A                                            Table B
                                                  Table




             Focus on structured tables and their relational
              consistency constraints. Does not auto-scale.
 Achim Friedland <achim@sones.de>           NoSQL Frankfurt , 9/28/2010             21
Photo: Gephi, flickr




                                    The Property-Graph
                                       vs. Object-Oriented Model



                                         Reference / Pointer
                       Object                                              Object




                       Focus on structured or dynamic objects.
                        No (simple way for) edge properties.
 Achim Friedland <achim@sones.de>            NoSQL Frankfurt , 9/28/2010            22
Photo: Gephi, flickr




                                    The Property-Graph
                                        vs. Semantic Web / RDF



                                           Predicate
                       Subject                                           Object




                               Focus on triples or quads.
                         No (simple way for) edge properties.
 Achim Friedland <achim@sones.de>          NoSQL Frankfurt , 9/28/2010            23
Photo: Gephi, flickr




                                    The Property-Graph
                                                                            observes



                                    Friends                             Enemies
                       Alice                         Bob                                         Eve
                                                                    since = 2009/11/02


                          Hobby                            Hobby                       Enemies

                                     Crypto

                                                   Guru
                                                                                 Bruce


                        A directed, attributed, multi-relational graph
                        as central data structure for graph-databases.
 Achim Friedland <achim@sones.de>             NoSQL Frankfurt , 9/28/2010                              24
Photo: Jeffrey Beall, flickr




                                    The Property-Graph

                  Currently no academically founded or well-defined
                               graph data model, but…

             The Property-Graph Model
             http://wiki.github.com/tinkerpop/blueprints/property-graphmodel

             Rodriguez, M.A., Neubauer, P., “Constructions from Dots and Lines,”
             Bulletin of the American Society for Information Science and
             Technology, American Society for Information Science and Technology,
             volume 36, August 2010.

                     …much more at http://markorodriguez.com ;)

 Achim Friedland <achim@sones.de>           NoSQL Frankfurt , 9/28/2010             25
Photo: Gephi, flickr




                                    The Property-Graph
          // Neo4J example

             Node _alice = graphdb.createNode();
                             _alice.setProperty("Name", "Alice");
                             _alice.setProperty("Age", 21);

             Node _bob = graphdb.createNode();
                            _alice.setProperty("Name", „Bob");
                            _alice.setProperty("Age", 23);

             _alice.createRelationshipTo(_bob, Friends);
             _bob.createRelationshipTo(_alice, Friends);



 Achim Friedland <achim@sones.de>        NoSQL Frankfurt , 9/28/2010   26
Photo: Gephi, flickr




                                    The Property-Graph
          // sones gql example

             CREATE VERTEX User
                    ADD ATTRIBUTES (String Name, SET<User> Friends)
                    INDICES (Name)

             INSERT INTO User VALUES (Name = "Alice", Age = 21)
             INSERT INTO User VALUES (Name = "Bob", Age = 23)

             LINK User(Name = ‘Alice') VIA Friends TO User(Name = ‘Bob')
             LINK User(Name = ‘Bob') VIA Friends TO User(Name = ‘Alice‘)




 Achim Friedland <achim@sones.de>        NoSQL Frankfurt , 9/28/2010       27
Photo: Gephi, flickr




                          Benefits of Graph-Databases

          • Explicit graph data model
                       – No implicit model like within relational dbs
                       – In the spirit of NoSQL:
                         “One database for one data model”
                       – GraphDB gets a change to understand the
                         semantics and our intention



 Achim Friedland <achim@sones.de>        NoSQL Frankfurt , 9/28/2010    28
Photo: Gephi, flickr




                          Benefits of Graph-Databases

          • Index-free adjacency
                       – No global adjacency index as each vertex acts
                         as its own “mini-index”
                       – The speed for traversing from one node to
                         another is independed of the size of the graph
                        ( Data locality and improved scalability )
                       – Optimized for random access patterns



 Achim Friedland <achim@sones.de>            NoSQL Frankfurt , 9/28/2010   29
Photo: Gephi, flickr




          Graph-Database landscape
                                                             Neo4J
                               HyperGraphDB                              InfoGrid

                       InfiniteGraph                                           Filament

                                                                                OrientDB
                DEX

                          VertexDB                                             sones

                                    Marklogic?

 Achim Friedland <achim@sones.de>          NoSQL Frankfurt , 9/28/2010                     30
Photo: Gephi, flickr




          Data model                                   Filament
                                                                                 No Edge-
                                        VertexDB                                Properties

                       Property-Graph                   InfoGrid

                                            DEX
                                                                   OrientDB           Schemata
             Neo4J
                                    InfiniteGraph

                                                            HyperGraphDB

                                         sones
                                                                        HyperGraphs
 Achim Friedland <achim@sones.de>         NoSQL Frankfurt , 9/28/2010                            31
Photo: Gephi, flickr




          Query methods
                                                                                    Gremlin

                                    VertexDB                 Neo4J
                                                                         InfoGrid
                       InfiniteGraph
                                                                               OrientDB
                                               Traverser API
                       DEX
                                               Adapted SQL                     Filament

                 HyperGraphDB                  HGQuery API
                                                                                sones
                                                  GraphQL


 Achim Friedland <achim@sones.de>          NoSQL Frankfurt , 9/28/2010                        32
Photo: Gephi, flickr




          Programming languages
                                                                 Neo4J
                               HyperGraphDB                                  InfoGrid

                       InfiniteGraph                                               Filament
                                                               Java

                                      DEX                        C#                 OrientDB

                  C++                                           Lua
                                                                                   sones
                                    VertexDB                      JS

                                                                   C
 Achim Friedland <achim@sones.de>              NoSQL Frankfurt , 9/28/2010                     33
Photo: Gephi, flickr




          License models
                                                                                   AGPLv3

                           “Free Lunch”                    Neo4J
                                                                        InfoGrid
                                          DEX
               InfiniteGraph                                                       sones
                                                             $$$
                                                                               OrientDB
                       HyperGraphDB                        LGPL

                                                   Apache 2.0                 Filament
                               VertexDB
                                                            BSD

 Achim Friedland <achim@sones.de>         NoSQL Frankfurt , 9/28/2010                       34
Photo: Gephi, flickr




          Protocols
                                                            Neo4J
                               HyperGraphDB                             InfoGrid

                       InfiniteGraph                                          OrientDB
                                                 REST/JSON

                 sones                           REST/XML                      DEX

                                                       HTTP
                          VertexDB                                        Filament




 Achim Friedland <achim@sones.de>         NoSQL Frankfurt , 9/28/2010                    35
Photo: Gephi, flickr




                                      Neo4J
          • URL                     http://www.neo4j.org
          • Goals                   Embedded and spatial DBMS
          • APIs                    Java, JRuby, Ruby, Python, Scala,
                                    Clojure, C#, Erlang
          • Transactions            Concurrent reads, Sync on nodes
          • Repl./Scaling           Master-Slave, Master Failover
          • Persistency             Proprietary ondisk format




 Achim Friedland <achim@sones.de>    NoSQL Frankfurt , 9/28/2010        36
Photo: Gephi, flickr




                                         InfoGrid
          • URL                          http://www.infogrid.org
          • Goals                        Distributed GraphDB and Web-
                                         Application Framework
          • Transactions                 Yes
          • Repl./Scaling                p2p-replication, partitioning
          • Persistency                  Proprietary, RDBMS, Hadoop

            MeshBase _GDB = StoreMeshBase.create(_MySQLStore);
            MeshObject _xkcd = _GDB.getMeshObjectLifecycleManager().createMeshObject();
            _xkcd.setProperty("Name", "xkcd");
            _xkcd.setProperty("Url", "http://www.xkcd.com");
            _xkcd.relate(_good);


 Achim Friedland <achim@sones.de>          NoSQL Frankfurt , 9/28/2010                    37
Photo: Gephi, flickr




                                                  DEX
          • URL                            http://www.dama.upc.edu
          • Goals                          High performance and integration
                                           of various information sources
          • Transactions                   n/a
          • Repl./Scaling                  n/a
          • Persistency                    Proprietary ondisk format

            long xkcd = _GDB.newNode(Resource);
            _GDB.setAttribute(xkcd, Name, "xkcd");
            _GDB.setAttribute(xkcd, Url, "http://xkcd.com");
            int Tags = _GDB.newUndirectedEdgeType("Tags");
            long e2 = _GDB.newEdge(xkcd, good, Tags);


 Achim Friedland <achim@sones.de>            NoSQL Frankfurt , 9/28/2010      38
Photo: Gephi, flickr




                                       HyperGraphDB
          •            URL               http://www.kobrix.com
          •            Goals             AI, NLP, Semantic Web
          •            Transactions      ACI(D), STM
          •            Repl./Scaling     p2p
          •            Persistency       Berkeley DB


            // Note: Website(), Tag() are POJO
            HGHandle _xkcd = _GDB.add(new Website("xkcd", "http://www.xkcd.com"));
            HGHandle _good = _GDB.add(new Tag("good");
            HGHandle _xkcd2good = _GDB.add(new HGPlainLink(_xkcd, _good));


 Achim Friedland <achim@sones.de>          NoSQL Frankfurt , 9/28/2010               39
Photo: Gephi, flickr




                                       Infinite Graph
          •            URL                http://www.infinitegraph.com
          •            Goals              Very large graph databases
          •            Transactions       Distributed transactions
          •            Repl./Scaling      Objectivity/DB
          •            Persistency        Objectivity/DB


            // Note: Website(), Tag() extend BaseVertex; Edge() extends BaseEdge
            Website xkcd = new Website("xkcd", "http://xkcd.com/"); _GDB.addVertex(xkcd);
            Tag good = new Tag("good"); _GDB.addVertex(good);
            xkcd.addEdge (new Edge(), good, EdgeKind.BIDIRECTIONAL);


 Achim Friedland <achim@sones.de>           NoSQL Frankfurt , 9/28/2010                     40
Photo: Gephi, flickr




                                         OrientDB
          • URL                           http://www.orienttechnologies.com
          • Goals                         Providing a KV-Store, DocumentDB
                                             and a GraphDB in one solution
          • Transactions                  ACID, MVCC
          • Repl./Scaling                 n/a
          • Persistency                   Proprietary ondisk format

            OGraphVertex _xkcd = _GDB.createVertex().
                                 set("Name", "xkcd").
                                 set("Url", "http://www.xkcd.com");
            OGraphVertex _good = _GDB.createVertex().set("Name", "good");
            _xkcd.link (_good);


 Achim Friedland <achim@sones.de>          NoSQL Frankfurt , 9/28/2010      41
Photo: Gephi, flickr




                                          sones
          •            URL             http://www.sones.de
          •            Goals           Management of linked (binary) data
          •            Transactions    ACID, MVCC (alpha)
          •            Repl./Scaling   p2p (alpha)
          •            Persistency     Proprietary file system




 Achim Friedland <achim@sones.de>       NoSQL Frankfurt , 9/28/2010     42
Photo: Shayne Kaye, flickr




                             sones Property-Hypergraph


                                                                       User Friend       Bob
                                                                                          ID = 2
                                                                   since = 2009/09/21
                                                                                        Alter = 23


                     Alice          SET<User> Friends
                      ID = 1         SetMaxNumber = 12
                    Alter = 21


                                                                       User Friend      Carol
                                                                                          ID = 3
                                                                   since = 1997/04/11
                                                                                        Alter = 20




 Achim Friedland <achim@sones.de>                 NoSQL Frankfurt , 9/28/2010                        43
Photo: Shayne Kaye, flickr




                             sones Property-Hypergraph


                                                                       User Friend       Bob
                                                                                          ID = 2
                                                                   since = 2009/09/21
                                                                                        Alter = 23


                     Alice          SET<User> Friends
                      ID = 1         SetMaxNumber = 12
                    Alter = 21


                                                                       User Friend      Carol
                                                                                          ID = 3
                                                                   since = 1997/04/11
                                                                                        Alter = 20




 Achim Friedland <achim@sones.de>                 NoSQL Frankfurt , 9/28/2010                        44
Photo: Shayne Kaye, flickr




                             sones Property-Hypergraph

          •         Extensions to the Property Graph model
          •         Multiple edges are be grouped by a hyperedge
          •         Hyperedge may have their own properties
          •         Properties may include code as data
                    (e.g. C#: Func<…>, ExpressionTrees)
          • Allows calculations be done among the set of
            edges (GetMinWeight, SetMaxNumber, …)



 Achim Friedland <achim@sones.de>        NoSQL Frankfurt , 9/28/2010   45
Photo: Shayne Kaye, flickr




                 sones Special Edges and Properties
                                                                                   LatestRevision
                                                                                                    Copy1
                                                                                    20100921…
                                    PropertyStream      DefaultEdition
                                                                                                    Copy2



                 Vertex                                                             20100918…       Copy1


                                                                                   LatestRevision
                                      FileStream        DefaultEdition
                                                                                    20100815…       Copy1




 Achim Friedland <achim@sones.de>                    NoSQL Frankfurt , 9/28/2010                            46
Photo: Shayne Kaye, flickr




                             sones Graph Query Language

              FROM User SELECT User.Friends.Friends.Name

          •         “SQL for graphs”
          •         Its goal is to provide a very user-friendly language for
                    ad-hoc graph queries
          •         Functions and aggregates are type-safe and can be
                    extended by your own plug-ins, e.g.
                    • SELECT COUNT(User.Friends)
                    • SELECT User.Friends.Random(2)
                    • SELECT User.Friends.Name.Substring(2,5)



 Achim Friedland <achim@sones.de>          NoSQL Frankfurt , 9/28/2010         47
Photo: jonathanpercy, flickr




                                          Gremlin

              ./outE[@label=‘created’]/inV/inE[@label=
                        ‘created’]/outV[g:except($_)]/@name

          •          Get outgoing edges, where their label is equal to ‘created’
          •          Get their incoming vertices
          •          Get incoming edges, where their labels equals ‘created’
          •          Get outgoing vertices, except the starting vertex
          •          Get their name property




 Achim Friedland <achim@sones.de>          NoSQL Frankfurt , 9/28/2010             48
For more information…




                                            achim@sones.de
                                      http://www.twitter.com/ahzf
                                   http://www.twitter.com/graphdbs

Achim Friedland <achim@sones.de>            NoSQL Frankfurt , 9/28/2010   49

Mais conteúdo relacionado

Semelhante a NoSQL Frankfurt 2010 - The GraphDB Landscape and sones

[SiriusCon 2018] A Bird's Eye View on Eclipse Sirius
[SiriusCon 2018]  A Bird's Eye View on Eclipse Sirius[SiriusCon 2018]  A Bird's Eye View on Eclipse Sirius
[SiriusCon 2018] A Bird's Eye View on Eclipse SiriusObeo
 
Linked Data applications for BIM
Linked Data applications for BIMLinked Data applications for BIM
Linked Data applications for BIMAna Roxin
 
[WSO2 Summit APAC 2020] A Decentralized Reference Architecture for Cloud-nati...
[WSO2 Summit APAC 2020] A Decentralized Reference Architecture for Cloud-nati...[WSO2 Summit APAC 2020] A Decentralized Reference Architecture for Cloud-nati...
[WSO2 Summit APAC 2020] A Decentralized Reference Architecture for Cloud-nati...WSO2
 
BUILDING A SCALABLE MULTIMEDIA WEB OBSERVATORY
BUILDING A SCALABLE MULTIMEDIA WEB OBSERVATORYBUILDING A SCALABLE MULTIMEDIA WEB OBSERVATORY
BUILDING A SCALABLE MULTIMEDIA WEB OBSERVATORYJonathon Hare
 
Presumptive Design or Cutting the Looking Glass Cake
Presumptive Design or Cutting the Looking Glass CakePresumptive Design or Cutting the Looking Glass Cake
Presumptive Design or Cutting the Looking Glass CakeLeo Frishberg
 
Improving computer vision models at scale presentation
Improving computer vision models at scale presentationImproving computer vision models at scale presentation
Improving computer vision models at scale presentationDr. Mirko Kämpf
 
Improving computer vision models at scale presentation
Improving computer vision models at scale presentationImproving computer vision models at scale presentation
Improving computer vision models at scale presentationJan Kunigk
 
Fabric for Deep Learning
Fabric for Deep LearningFabric for Deep Learning
Fabric for Deep LearningAnimesh Singh
 
ICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceLetsConnect
 
Social Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourceSocial Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourcePaul Withers
 
Dissemination and Community Building
Dissemination and Community BuildingDissemination and Community Building
Dissemination and Community BuildingAGILE IoT
 
Current and Future Trends in Web Search - Seminar on Web Search
Current and Future Trends in Web Search - Seminar on Web SearchCurrent and Future Trends in Web Search - Seminar on Web Search
Current and Future Trends in Web Search - Seminar on Web SearchBeat Signer
 
EAD + METS = IIIF: Representing Digitized and Non-Digitized Archival Content ...
EAD + METS = IIIF: Representing Digitized and Non-Digitized Archival Content ...EAD + METS = IIIF: Representing Digitized and Non-Digitized Archival Content ...
EAD + METS = IIIF: Representing Digitized and Non-Digitized Archival Content ...Alyx Rossetti
 
I want to be a Data DJ!
I want to be a Data DJ!I want to be a Data DJ!
I want to be a Data DJ!Paul Groth
 
Property Graphs with Time
Property Graphs with TimeProperty Graphs with Time
Property Graphs with TimeopenCypher
 
Collaborative platforms for streamlining workflows in Open Science
Collaborative platforms for streamlining workflows in Open ScienceCollaborative platforms for streamlining workflows in Open Science
Collaborative platforms for streamlining workflows in Open ScienceKonrad Förstner
 
Towards Flexible Indices for Distributed Graph Data: The Formal Schema-level...
Towards Flexible Indices for  Distributed Graph Data: The Formal Schema-level...Towards Flexible Indices for  Distributed Graph Data: The Formal Schema-level...
Towards Flexible Indices for Distributed Graph Data: The Formal Schema-level...Till Blume
 
Introduction To Linked Data
Introduction To Linked DataIntroduction To Linked Data
Introduction To Linked DataLeigh Dodds
 
Presentation of the DURAARK project at Ex Libris conference, Berlin, Germany.
Presentation of the DURAARK project at Ex Libris conference, Berlin, Germany.Presentation of the DURAARK project at Ex Libris conference, Berlin, Germany.
Presentation of the DURAARK project at Ex Libris conference, Berlin, Germany.Lena Lindbäck
 

Semelhante a NoSQL Frankfurt 2010 - The GraphDB Landscape and sones (20)

[SiriusCon 2018] A Bird's Eye View on Eclipse Sirius
[SiriusCon 2018]  A Bird's Eye View on Eclipse Sirius[SiriusCon 2018]  A Bird's Eye View on Eclipse Sirius
[SiriusCon 2018] A Bird's Eye View on Eclipse Sirius
 
Linked Data applications for BIM
Linked Data applications for BIMLinked Data applications for BIM
Linked Data applications for BIM
 
[WSO2 Summit APAC 2020] A Decentralized Reference Architecture for Cloud-nati...
[WSO2 Summit APAC 2020] A Decentralized Reference Architecture for Cloud-nati...[WSO2 Summit APAC 2020] A Decentralized Reference Architecture for Cloud-nati...
[WSO2 Summit APAC 2020] A Decentralized Reference Architecture for Cloud-nati...
 
BUILDING A SCALABLE MULTIMEDIA WEB OBSERVATORY
BUILDING A SCALABLE MULTIMEDIA WEB OBSERVATORYBUILDING A SCALABLE MULTIMEDIA WEB OBSERVATORY
BUILDING A SCALABLE MULTIMEDIA WEB OBSERVATORY
 
Presumptive Design or Cutting the Looking Glass Cake
Presumptive Design or Cutting the Looking Glass CakePresumptive Design or Cutting the Looking Glass Cake
Presumptive Design or Cutting the Looking Glass Cake
 
Improving computer vision models at scale presentation
Improving computer vision models at scale presentationImproving computer vision models at scale presentation
Improving computer vision models at scale presentation
 
Improving computer vision models at scale presentation
Improving computer vision models at scale presentationImproving computer vision models at scale presentation
Improving computer vision models at scale presentation
 
Fabric for Deep Learning
Fabric for Deep LearningFabric for Deep Learning
Fabric for Deep Learning
 
ICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open SourceICS INtegration with Node-RED and Open Source
ICS INtegration with Node-RED and Open Source
 
Social Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourceSocial Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open Source
 
Dissemination and Community Building
Dissemination and Community BuildingDissemination and Community Building
Dissemination and Community Building
 
WoT @ Oracle-Labs
WoT @ Oracle-LabsWoT @ Oracle-Labs
WoT @ Oracle-Labs
 
Current and Future Trends in Web Search - Seminar on Web Search
Current and Future Trends in Web Search - Seminar on Web SearchCurrent and Future Trends in Web Search - Seminar on Web Search
Current and Future Trends in Web Search - Seminar on Web Search
 
EAD + METS = IIIF: Representing Digitized and Non-Digitized Archival Content ...
EAD + METS = IIIF: Representing Digitized and Non-Digitized Archival Content ...EAD + METS = IIIF: Representing Digitized and Non-Digitized Archival Content ...
EAD + METS = IIIF: Representing Digitized and Non-Digitized Archival Content ...
 
I want to be a Data DJ!
I want to be a Data DJ!I want to be a Data DJ!
I want to be a Data DJ!
 
Property Graphs with Time
Property Graphs with TimeProperty Graphs with Time
Property Graphs with Time
 
Collaborative platforms for streamlining workflows in Open Science
Collaborative platforms for streamlining workflows in Open ScienceCollaborative platforms for streamlining workflows in Open Science
Collaborative platforms for streamlining workflows in Open Science
 
Towards Flexible Indices for Distributed Graph Data: The Formal Schema-level...
Towards Flexible Indices for  Distributed Graph Data: The Formal Schema-level...Towards Flexible Indices for  Distributed Graph Data: The Formal Schema-level...
Towards Flexible Indices for Distributed Graph Data: The Formal Schema-level...
 
Introduction To Linked Data
Introduction To Linked DataIntroduction To Linked Data
Introduction To Linked Data
 
Presentation of the DURAARK project at Ex Libris conference, Berlin, Germany.
Presentation of the DURAARK project at Ex Libris conference, Berlin, Germany.Presentation of the DURAARK project at Ex Libris conference, Berlin, Germany.
Presentation of the DURAARK project at Ex Libris conference, Berlin, Germany.
 

Mais de Achim Friedland

Open Source Transparency Software for E-Mobility
Open Source Transparency Software for E-MobilityOpen Source Transparency Software for E-Mobility
Open Source Transparency Software for E-MobilityAchim Friedland
 
11. Workshop der Fachgruppe Recht „IKT für Elektromobilität III“ - Chargy Ope...
11. Workshop der Fachgruppe Recht „IKT für Elektromobilität III“ - Chargy Ope...11. Workshop der Fachgruppe Recht „IKT für Elektromobilität III“ - Chargy Ope...
11. Workshop der Fachgruppe Recht „IKT für Elektromobilität III“ - Chargy Ope...Achim Friedland
 
Chargy - E-Mobility Transparency Software
Chargy - E-Mobility Transparency SoftwareChargy - E-Mobility Transparency Software
Chargy - E-Mobility Transparency SoftwareAchim Friedland
 
Öffentliche Daten nutzen! Nur wie bekommen?
Öffentliche Daten nutzen! Nur wie bekommen?Öffentliche Daten nutzen! Nur wie bekommen?
Öffentliche Daten nutzen! Nur wie bekommen?Achim Friedland
 
Re-Using Open Data for Smart e-Mobility
Re-Using Open Data for Smart e-MobilityRe-Using Open Data for Smart e-Mobility
Re-Using Open Data for Smart e-MobilityAchim Friedland
 
Open Charging Cloud @ E-World 2017 in Essen
Open Charging Cloud @ E-World 2017 in EssenOpen Charging Cloud @ E-World 2017 in Essen
Open Charging Cloud @ E-World 2017 in EssenAchim Friedland
 
Security and Privacy in the current e-mobility charging infrastructure
Security and Privacy in the current e-mobility charging infrastructureSecurity and Privacy in the current e-mobility charging infrastructure
Security and Privacy in the current e-mobility charging infrastructureAchim Friedland
 
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...Achim Friedland
 
Open Charging Cloud - Manage, Share and Incentivize Open Data
Open Charging Cloud - Manage, Share and Incentivize Open DataOpen Charging Cloud - Manage, Share and Incentivize Open Data
Open Charging Cloud - Manage, Share and Incentivize Open DataAchim Friedland
 
Towards a Security-aware Network Virtualization
Towards a Security-aware Network VirtualizationTowards a Security-aware Network Virtualization
Towards a Security-aware Network VirtualizationAchim Friedland
 
A Generalized Label-Forwarding Architecture for the Future Internet
A Generalized Label-Forwarding Architecture for the Future InternetA Generalized Label-Forwarding Architecture for the Future Internet
A Generalized Label-Forwarding Architecture for the Future InternetAchim 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
 
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
 
Database Pro Power Days 2010 - Graph data in the cloud using .NET
Database Pro Power Days 2010 -  Graph data in the cloud using .NETDatabase Pro Power Days 2010 -  Graph data in the cloud using .NET
Database Pro Power Days 2010 - Graph data in the cloud using .NETAchim Friedland
 

Mais de Achim Friedland (14)

Open Source Transparency Software for E-Mobility
Open Source Transparency Software for E-MobilityOpen Source Transparency Software for E-Mobility
Open Source Transparency Software for E-Mobility
 
11. Workshop der Fachgruppe Recht „IKT für Elektromobilität III“ - Chargy Ope...
11. Workshop der Fachgruppe Recht „IKT für Elektromobilität III“ - Chargy Ope...11. Workshop der Fachgruppe Recht „IKT für Elektromobilität III“ - Chargy Ope...
11. Workshop der Fachgruppe Recht „IKT für Elektromobilität III“ - Chargy Ope...
 
Chargy - E-Mobility Transparency Software
Chargy - E-Mobility Transparency SoftwareChargy - E-Mobility Transparency Software
Chargy - E-Mobility Transparency Software
 
Öffentliche Daten nutzen! Nur wie bekommen?
Öffentliche Daten nutzen! Nur wie bekommen?Öffentliche Daten nutzen! Nur wie bekommen?
Öffentliche Daten nutzen! Nur wie bekommen?
 
Re-Using Open Data for Smart e-Mobility
Re-Using Open Data for Smart e-MobilityRe-Using Open Data for Smart e-Mobility
Re-Using Open Data for Smart e-Mobility
 
Open Charging Cloud @ E-World 2017 in Essen
Open Charging Cloud @ E-World 2017 in EssenOpen Charging Cloud @ E-World 2017 in Essen
Open Charging Cloud @ E-World 2017 in Essen
 
Security and Privacy in the current e-mobility charging infrastructure
Security and Privacy in the current e-mobility charging infrastructureSecurity and Privacy in the current e-mobility charging infrastructure
Security and Privacy in the current e-mobility charging infrastructure
 
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
 
Open Charging Cloud - Manage, Share and Incentivize Open Data
Open Charging Cloud - Manage, Share and Incentivize Open DataOpen Charging Cloud - Manage, Share and Incentivize Open Data
Open Charging Cloud - Manage, Share and Incentivize Open Data
 
Towards a Security-aware Network Virtualization
Towards a Security-aware Network VirtualizationTowards a Security-aware Network Virtualization
Towards a Security-aware Network Virtualization
 
A Generalized Label-Forwarding Architecture for the Future Internet
A Generalized Label-Forwarding Architecture for the Future InternetA Generalized Label-Forwarding Architecture for the Future Internet
A Generalized Label-Forwarding Architecture for the Future Internet
 
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
 
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
 
Database Pro Power Days 2010 - Graph data in the cloud using .NET
Database Pro Power Days 2010 -  Graph data in the cloud using .NETDatabase Pro Power Days 2010 -  Graph data in the cloud using .NET
Database Pro Power Days 2010 - Graph data in the cloud using .NET
 

Último

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 

Último (20)

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 

NoSQL Frankfurt 2010 - The GraphDB Landscape and sones

  • 1. Photo: Gephi, flickr Frankfurt co-located to ICOODB 2010 28. September 2010 Frankfurt, Germany The GraphDB Landscape and sones Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 1
  • 2. Photo: Gephi, flickr Hashtags: #nosqlfr #graphdb #sones #neo4j Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 2
  • 3. Photo: litlnemo, flickr Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 3
  • 4. Photo: litlnemo, flickr • 43 years Object Orientation / OOP • 35 years Relational Databases / SQL • 21 years Semantic Web / RDF Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 4
  • 5. Photo: litlnemo, flickr • 43 years Object Orientation / OOP • 35 years Relational Databases / SQL • 21 years Semantic Web / RDF …but still we do not know where our files have gone! Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 5
  • 6. Photo: Chris Westermeyer, flickr Our wish list… Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 6
  • 7. Photo: litlnemo, flickr Simple management of structured, semi-structured and unstructured information Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 7
  • 8. Photo: litlnemo, flickr SQL Simple management of structured, semi-structured and unstructured XML/JSON information binaries Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 8
  • 9. Photo: Robbert van der Steeg, flickr Simple recursively linked information models Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 9
  • 10. Photo: Robbert van der Steeg, flickr Simple recursively linked information models • <a href = “…”> • metadata e.g. EXIF Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 10
  • 11. Photo: Khem, flickr Traversing linked information, finding shortest-paths, do semantic partitions Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 11
  • 12. Photo: NASA, flickr Recommendation and discovery of potentially interessting linked information Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 12
  • 13. Photo: NASA, flickr personal social item-related Recommendation and discovery of potentially interessting linked information Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 13
  • 14. Photo: squacco, flickr Consistency criteria and indices for simple attributes up to complex subgraph structures Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 14
  • 15. Photo: Cedrix Thual, flickr Versioned information and versioned information schemata Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 15
  • 16. Photo: Birger Hoppe, flickr Good integration into state-of-the- art programming concepts (no Object-Relational-Mappers!) Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 16
  • 17. Photo: Chuck “Caveman” Coker, flickr Can graph-databases help? Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 17
  • 18. Photo: Jeffrey Beall, flickr Graph-Databases? Graph = ( Vertics, Edges ) 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. http://en.wikipedia.org/wiki/Graph_database Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 18
  • 19. Photo: Jeffrey Beall, flickr Graph-Databases? Graph = ( Vertics, Edges ) R. Angles, C. Gutierrez: Survey of graph database models, ACM Computing Surv. 40, 1 (Feb. 2008), 1-39 Adrian Silvescu, Donia Caragea, Anna Atramentov: Graph Databases, Technical Report. May 2002 Mark Gemis, Jan Paredaens, Inge Thyssens, und Jan Van den Bussche: GOOD: A Graph-Oriented Object Database System, 1993; In: Proceedings of the1993 ACM SIGMOD Intern. Conf. on Management of Data (Washington D.C., US, May 1993), 505-510. Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 19
  • 20. Photo: Gephi, flickr The Property-Graph Alice Friends Bob ID = 1 ID = 2 since = 2009/09/21 Alter = 21 Alter = 23 Properties are key-values pairs e.g. <String, Object> or <AttributeKey, Object> Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 20
  • 21. Photo: Gephi, flickr The Property-Graph vs. Relational Databases Relation Table A Table B Table Focus on structured tables and their relational consistency constraints. Does not auto-scale. Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 21
  • 22. Photo: Gephi, flickr The Property-Graph vs. Object-Oriented Model Reference / Pointer Object Object Focus on structured or dynamic objects. No (simple way for) edge properties. Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 22
  • 23. Photo: Gephi, flickr The Property-Graph vs. Semantic Web / RDF Predicate Subject Object Focus on triples or quads. No (simple way for) edge properties. Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 23
  • 24. Photo: Gephi, flickr The Property-Graph observes Friends Enemies Alice Bob Eve since = 2009/11/02 Hobby Hobby Enemies Crypto Guru Bruce A directed, attributed, multi-relational graph as central data structure for graph-databases. Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 24
  • 25. Photo: Jeffrey Beall, flickr The Property-Graph Currently no academically founded or well-defined graph data model, but… The Property-Graph Model http://wiki.github.com/tinkerpop/blueprints/property-graphmodel Rodriguez, M.A., Neubauer, P., “Constructions from Dots and Lines,” Bulletin of the American Society for Information Science and Technology, American Society for Information Science and Technology, volume 36, August 2010. …much more at http://markorodriguez.com ;) Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 25
  • 26. Photo: Gephi, flickr The Property-Graph // Neo4J example Node _alice = graphdb.createNode(); _alice.setProperty("Name", "Alice"); _alice.setProperty("Age", 21); Node _bob = graphdb.createNode(); _alice.setProperty("Name", „Bob"); _alice.setProperty("Age", 23); _alice.createRelationshipTo(_bob, Friends); _bob.createRelationshipTo(_alice, Friends); Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 26
  • 27. Photo: Gephi, flickr The Property-Graph // sones gql example CREATE VERTEX User ADD ATTRIBUTES (String Name, SET<User> Friends) INDICES (Name) INSERT INTO User VALUES (Name = "Alice", Age = 21) INSERT INTO User VALUES (Name = "Bob", Age = 23) LINK User(Name = ‘Alice') VIA Friends TO User(Name = ‘Bob') LINK User(Name = ‘Bob') VIA Friends TO User(Name = ‘Alice‘) Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 27
  • 28. Photo: Gephi, flickr Benefits of Graph-Databases • Explicit graph data model – No implicit model like within relational dbs – In the spirit of NoSQL: “One database for one data model” – GraphDB gets a change to understand the semantics and our intention Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 28
  • 29. Photo: Gephi, flickr Benefits of Graph-Databases • Index-free adjacency – No global adjacency index as each vertex acts as its own “mini-index” – The speed for traversing from one node to another is independed of the size of the graph ( Data locality and improved scalability ) – Optimized for random access patterns Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 29
  • 30. Photo: Gephi, flickr Graph-Database landscape Neo4J HyperGraphDB InfoGrid InfiniteGraph Filament OrientDB DEX VertexDB sones Marklogic? Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 30
  • 31. Photo: Gephi, flickr Data model Filament No Edge- VertexDB Properties Property-Graph InfoGrid DEX OrientDB Schemata Neo4J InfiniteGraph HyperGraphDB sones HyperGraphs Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 31
  • 32. Photo: Gephi, flickr Query methods Gremlin VertexDB Neo4J InfoGrid InfiniteGraph OrientDB Traverser API DEX Adapted SQL Filament HyperGraphDB HGQuery API sones GraphQL Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 32
  • 33. Photo: Gephi, flickr Programming languages Neo4J HyperGraphDB InfoGrid InfiniteGraph Filament Java DEX C# OrientDB C++ Lua sones VertexDB JS C Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 33
  • 34. Photo: Gephi, flickr License models AGPLv3 “Free Lunch” Neo4J InfoGrid DEX InfiniteGraph sones $$$ OrientDB HyperGraphDB LGPL Apache 2.0 Filament VertexDB BSD Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 34
  • 35. Photo: Gephi, flickr Protocols Neo4J HyperGraphDB InfoGrid InfiniteGraph OrientDB REST/JSON sones REST/XML DEX HTTP VertexDB Filament Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 35
  • 36. Photo: Gephi, flickr Neo4J • URL http://www.neo4j.org • Goals Embedded and spatial DBMS • APIs Java, JRuby, Ruby, Python, Scala, Clojure, C#, Erlang • Transactions Concurrent reads, Sync on nodes • Repl./Scaling Master-Slave, Master Failover • Persistency Proprietary ondisk format Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 36
  • 37. Photo: Gephi, flickr InfoGrid • URL http://www.infogrid.org • Goals Distributed GraphDB and Web- Application Framework • Transactions Yes • Repl./Scaling p2p-replication, partitioning • Persistency Proprietary, RDBMS, Hadoop MeshBase _GDB = StoreMeshBase.create(_MySQLStore); MeshObject _xkcd = _GDB.getMeshObjectLifecycleManager().createMeshObject(); _xkcd.setProperty("Name", "xkcd"); _xkcd.setProperty("Url", "http://www.xkcd.com"); _xkcd.relate(_good); Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 37
  • 38. Photo: Gephi, flickr DEX • URL http://www.dama.upc.edu • Goals High performance and integration of various information sources • Transactions n/a • Repl./Scaling n/a • Persistency Proprietary ondisk format long xkcd = _GDB.newNode(Resource); _GDB.setAttribute(xkcd, Name, "xkcd"); _GDB.setAttribute(xkcd, Url, "http://xkcd.com"); int Tags = _GDB.newUndirectedEdgeType("Tags"); long e2 = _GDB.newEdge(xkcd, good, Tags); Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 38
  • 39. Photo: Gephi, flickr HyperGraphDB • URL http://www.kobrix.com • Goals AI, NLP, Semantic Web • Transactions ACI(D), STM • Repl./Scaling p2p • Persistency Berkeley DB // Note: Website(), Tag() are POJO HGHandle _xkcd = _GDB.add(new Website("xkcd", "http://www.xkcd.com")); HGHandle _good = _GDB.add(new Tag("good"); HGHandle _xkcd2good = _GDB.add(new HGPlainLink(_xkcd, _good)); Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 39
  • 40. Photo: Gephi, flickr Infinite Graph • URL http://www.infinitegraph.com • Goals Very large graph databases • Transactions Distributed transactions • Repl./Scaling Objectivity/DB • Persistency Objectivity/DB // Note: Website(), Tag() extend BaseVertex; Edge() extends BaseEdge Website xkcd = new Website("xkcd", "http://xkcd.com/"); _GDB.addVertex(xkcd); Tag good = new Tag("good"); _GDB.addVertex(good); xkcd.addEdge (new Edge(), good, EdgeKind.BIDIRECTIONAL); Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 40
  • 41. Photo: Gephi, flickr OrientDB • URL http://www.orienttechnologies.com • Goals Providing a KV-Store, DocumentDB and a GraphDB in one solution • Transactions ACID, MVCC • Repl./Scaling n/a • Persistency Proprietary ondisk format OGraphVertex _xkcd = _GDB.createVertex(). set("Name", "xkcd"). set("Url", "http://www.xkcd.com"); OGraphVertex _good = _GDB.createVertex().set("Name", "good"); _xkcd.link (_good); Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 41
  • 42. Photo: Gephi, flickr sones • URL http://www.sones.de • Goals Management of linked (binary) data • Transactions ACID, MVCC (alpha) • Repl./Scaling p2p (alpha) • Persistency Proprietary file system Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 42
  • 43. Photo: Shayne Kaye, flickr sones Property-Hypergraph User Friend Bob ID = 2 since = 2009/09/21 Alter = 23 Alice SET<User> Friends ID = 1 SetMaxNumber = 12 Alter = 21 User Friend Carol ID = 3 since = 1997/04/11 Alter = 20 Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 43
  • 44. Photo: Shayne Kaye, flickr sones Property-Hypergraph User Friend Bob ID = 2 since = 2009/09/21 Alter = 23 Alice SET<User> Friends ID = 1 SetMaxNumber = 12 Alter = 21 User Friend Carol ID = 3 since = 1997/04/11 Alter = 20 Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 44
  • 45. Photo: Shayne Kaye, flickr sones Property-Hypergraph • Extensions to the Property Graph model • Multiple edges are be grouped by a hyperedge • Hyperedge may have their own properties • Properties may include code as data (e.g. C#: Func<…>, ExpressionTrees) • Allows calculations be done among the set of edges (GetMinWeight, SetMaxNumber, …) Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 45
  • 46. Photo: Shayne Kaye, flickr sones Special Edges and Properties LatestRevision Copy1 20100921… PropertyStream DefaultEdition Copy2 Vertex 20100918… Copy1 LatestRevision FileStream DefaultEdition 20100815… Copy1 Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 46
  • 47. Photo: Shayne Kaye, flickr sones Graph Query Language FROM User SELECT User.Friends.Friends.Name • “SQL for graphs” • Its goal is to provide a very user-friendly language for ad-hoc graph queries • Functions and aggregates are type-safe and can be extended by your own plug-ins, e.g. • SELECT COUNT(User.Friends) • SELECT User.Friends.Random(2) • SELECT User.Friends.Name.Substring(2,5) Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 47
  • 48. Photo: jonathanpercy, flickr Gremlin ./outE[@label=‘created’]/inV/inE[@label= ‘created’]/outV[g:except($_)]/@name • Get outgoing edges, where their label is equal to ‘created’ • Get their incoming vertices • Get incoming edges, where their labels equals ‘created’ • Get outgoing vertices, except the starting vertex • Get their name property Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 48
  • 49. For more information… achim@sones.de http://www.twitter.com/ahzf http://www.twitter.com/graphdbs Achim Friedland <achim@sones.de> NoSQL Frankfurt , 9/28/2010 49