SlideShare a Scribd company logo
1 of 30
Download to read offline
Neo4j
           And some graph problems



                             #neo4j
Peter Neubauer               @peterneubauer
COO, Neo Technology          peter@neotechnology.com
Any sufficiently advanced technology is
    indistinguishable from magic.
            Arthur C. Clarke




            @kymerawand
First, a recap: NOSQL data models
            Key-value stores
Data size




                          Column Family


                                          Document
                                          databases


                                                         Graph databases

                                                                           We are here




                                                      Data complexity
What makes a good DB?


       Separate Logic and Data
       Support Ad-Hoc queries
       Be persistent
       Scale good enough
The property graph model
 Core abstractions:
                                               name = “Emil”

   Nodes
                                               age = 29
                                               sex = “yes”


   Relationships between nodes
   Properties on both                      1                         2


 Traversal framework
                          type = KNOWS
   High performance       time = 4 years                       3
   queries on connected
   data sets                                                       type = car
                                                                   vendor = “SAAB”

 Other bindings                                                    model = “95 Aero”



   Langs, REST, Gremlin, RDF
Social data (customer: brand-name social network)
                                                                           name = “Marcy Runkle”

                              name = “Hank”
                              last_name = “Moody”
 name = “Mike”
                              age = 42                                                          42
 age = 29                                                                              S
                                                                                   W
                                                                                 NO
                                                 disclosure = public
                                                                                K
                  KNOWS                           KNOWS                           KNO
      1                                 7                              3             W     S

                  KN
                                                                                                   13

                                             S
                     OW                                  name = “Charlie”
                                        KNOW
                          S                              last_name = “Runkle”
                                                                                               name = “Dani”
                                                                                               last_name = “California”
          age = 3 days                                                                         age = 27
                                    2

                              name = “Karen”
Just a social graph?
Spatial data (customer: large telecom company)
                                                                         name = ...

                           name = “The Tavern”
                           lat = 1295238237
 name = “Omni Hotel”
                           long = 234823492                                                42
 lat = 3492848
 long = 283823423                              length = 7 miles                     AD
                                                                               RO
                   ROAD                         ROAD                             ROO
      1                                 7                            3              OAD


                   RO
                                                                                             13
                      AD                               name = ...
                                        ROAD
                                                       lat, long = ...
                                                                                          name = “Swedland”
                                                                                          lat = 23410349
       length = 3 miles                                                                   long = 2342348852
                                  2

                           name = ...
Social? Spatial? … Social AND spatial!
Social AND spatial data (customer: LBS)
                                                                    name = “Peter”

                          name = “The Tavern”
                          lat = 1295238237
name = “Omni Hotel”
                          long = 234823492                                                 42
lat = 3492848                                                                     S
                                                                              W
                                                                            NO
long = 283823423                              weight = 10
                                                                           K
                  ROAD                           LIKES                      SIBL
     1                                 7                        3                IN   G

                  RO
                                                                                              13
                     AD                               name = “Emil”
                                       ROAD
                                                      beer_qual = expert
                                                                                          name = “Maria”
                                                                                          age = 30
      length = 3 miles                                                                    beer_qual = non-existant
                                 2

                          name = ...
Financial data (customer: international bank)
                                                                                 name = ...

                                 name = “The Tavern”
                                 lat = 1295238237
                                 long = 234823492                                                        42
 name = “Mr Godfather”                                                                             AW
 karma = veeeery-low
                                                                                             HDR
 cash = more-than-you                                      amount = $1000
                                                                                           IT
                                                                                       W
                   OWNS                                    TRANSFER                        WIT
      1                                       7                              3                 HDR
                                                                                                   AW

                                                                                                            13

                                                  S FE R
                   DE                                             name = “Emil”
                      P   OS                                      cash = always-too-li'l
                            IT                TRAN
                                                                                                        title = “ATM @ Wall St”
                                                                                                        id = 230918484233
        amount = $1000                                                                                  cash_left = 384204
                                        2

                                 name = ...
Use Cases
 REST in Neo4j
 The graph as an OODB – Roo, Grails
 Jruby, Jo4neo
 Deep graph algos – Routing with A*
 Multiple indexes in the graph – GIS
 Recommendation systems – Gremlin
 and LinkedData
REST in Neo4j
  Build on self describing JSON
  Indexing
  Querying
  Bindings to PHP, C#, JS
  OpenGraph API
  Jruby, Scala
The Graph for objects
 Keep data clean!
 Annotation based
    Grails
    Jo4neo
    Roo
    JPA
 Mixin based
   Django
   JRuby
 C# (REST)
 PHP (REST)
The Graph as an OODB
Routing with Neo4j and A*
Routing with Neo4j and A*
Multiple indexes - GIS
 QuadTree (2D)
 Hierarchy
 Time (1D)
 On-demand index
Multiple indexes - GIS
Multiple indexes - GIS
Recommendation - Gremlin
 gremlin.tinkerpop.com
 XPath based “Perl for Graphs”
 Property Graph Model
    Neo4j, RDF-SAIL, Tinkergraph, MongoDB, FS
 LinkedData SAIL
Recommendation - Gremlin
Recommendation - Gremlin
Other use cases
 Activity streams
 Process automation
   Life-filtering of event streams
   Web-of-Things data f ows
                          l
 Object oriented reporting
   Jasper Reports
   ReportAnywhere
   Scripting
Why graph databases?
                                                       “For anything with multiple
                                                       relationships, multiple
                                                       connections N e o4 j
                                                       ab s ol u t e l y R OCK S!”

                                                               http://bit.ly/dys4nx


   A web where the default is social →
   an explosion of graph-y data


   “Just 3 years ago, the data sets our product
   handled were very simple. But the past 9-12
   months have seen an e x p l os i on of the number
   of relationships between things.”

                                           Manager
                                           of an
                                           enterprise
                                           product
                                           for the
                                           Fortune
                                           5000                      Werner Vogels
                                                                     CTO, Amazon
How ego are you? (aka other impls?)
  Franz’ Al l e g roGrap h      (http://agraph.franz.com)

     Proprietary, Lisp, RDF-oriented but real graphdb
  Sones g rap h DB      (http://sones.com)

     Proprietary, .NET, in beta
  Twitter's Fl oc k DB    (http://github.com/twitter/flockdb)

     Twitter's (graph) database for large and shallow graphs
  Google P re g e l   (http://bit.ly/dP9IP)

     We are oh-so-secret
  Objectivity's I n fi n i te Gra p h    (http://infinitegraph.com)

     New, closed OODB with Graph Layer on top
Why Neo4j?
 Most widely deployed graph db in the world
   Robust: 24/7 production since 2003
   Mature: lots of production deployments
   Community: ecosystem of tools, bindings, frameworks

 Available NOW under AGPLv3 / commercial license
   AGPLv3: “if you’re open source, we’re open source”
   If you have proprietary software? Must buy a commercial
   license
   But the f rst one is free! For ALL use-cases.
           i
 Download
   http://neo4j.org
 Feedback
   http://lists.neo4j.org
Th e N e o4 j te a m
    i s h i ri n g !
Do you see the Matrix?
     Apply now.
Questions?




             Image credit: lost again! Sorry :(
http://neotechnology.com

More Related Content

What's hot

Intro to InfluxDB
Intro to InfluxDBIntro to InfluxDB
Intro to InfluxDBInfluxData
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka EcosystemGuido Schmutz
 
When NOT to use Apache Kafka?
When NOT to use Apache Kafka?When NOT to use Apache Kafka?
When NOT to use Apache Kafka?Kai Wähner
 
Redis Streams for Event-Driven Microservices
Redis Streams for Event-Driven MicroservicesRedis Streams for Event-Driven Microservices
Redis Streams for Event-Driven MicroservicesRedis Labs
 
RedisConf18 - Introducing RediSearch Aggregations
RedisConf18 - Introducing RediSearch AggregationsRedisConf18 - Introducing RediSearch Aggregations
RedisConf18 - Introducing RediSearch AggregationsRedis Labs
 
MongoDB: Advance concepts - Replication and Sharding
MongoDB: Advance concepts - Replication and ShardingMongoDB: Advance concepts - Replication and Sharding
MongoDB: Advance concepts - Replication and ShardingKnoldus Inc.
 
A Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
A Modern C++ Kafka API | Kenneth Jia, Morgan StanleyA Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
A Modern C++ Kafka API | Kenneth Jia, Morgan StanleyHostedbyConfluent
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database Systemconfluent
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaJoe Stein
 
When to Use MongoDB
When to Use MongoDBWhen to Use MongoDB
When to Use MongoDBMongoDB
 
Indexing with MongoDB
Indexing with MongoDBIndexing with MongoDB
Indexing with MongoDBMongoDB
 
Redis in Practice
Redis in PracticeRedis in Practice
Redis in PracticeNoah Davis
 
How to understand and analyze Apache Hive query execution plan for performanc...
How to understand and analyze Apache Hive query execution plan for performanc...How to understand and analyze Apache Hive query execution plan for performanc...
How to understand and analyze Apache Hive query execution plan for performanc...DataWorks Summit/Hadoop Summit
 
Elastic Search
Elastic SearchElastic Search
Elastic SearchNavule Rao
 
Hive join optimizations
Hive join optimizationsHive join optimizations
Hive join optimizationsSzehon Ho
 
Optimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphOptimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphNeo4j
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache CassandraDataStax
 
Using MongoDB as a high performance graph database
Using MongoDB as a high performance graph databaseUsing MongoDB as a high performance graph database
Using MongoDB as a high performance graph databaseChris Clarke
 
Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityJean-Paul Azar
 

What's hot (20)

Intro to InfluxDB
Intro to InfluxDBIntro to InfluxDB
Intro to InfluxDB
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka Ecosystem
 
When NOT to use Apache Kafka?
When NOT to use Apache Kafka?When NOT to use Apache Kafka?
When NOT to use Apache Kafka?
 
Redis Streams for Event-Driven Microservices
Redis Streams for Event-Driven MicroservicesRedis Streams for Event-Driven Microservices
Redis Streams for Event-Driven Microservices
 
RedisConf18 - Introducing RediSearch Aggregations
RedisConf18 - Introducing RediSearch AggregationsRedisConf18 - Introducing RediSearch Aggregations
RedisConf18 - Introducing RediSearch Aggregations
 
Azure Redis Cache
Azure Redis CacheAzure Redis Cache
Azure Redis Cache
 
MongoDB: Advance concepts - Replication and Sharding
MongoDB: Advance concepts - Replication and ShardingMongoDB: Advance concepts - Replication and Sharding
MongoDB: Advance concepts - Replication and Sharding
 
A Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
A Modern C++ Kafka API | Kenneth Jia, Morgan StanleyA Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
A Modern C++ Kafka API | Kenneth Jia, Morgan Stanley
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database System
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 
When to Use MongoDB
When to Use MongoDBWhen to Use MongoDB
When to Use MongoDB
 
Indexing with MongoDB
Indexing with MongoDBIndexing with MongoDB
Indexing with MongoDB
 
Redis in Practice
Redis in PracticeRedis in Practice
Redis in Practice
 
How to understand and analyze Apache Hive query execution plan for performanc...
How to understand and analyze Apache Hive query execution plan for performanc...How to understand and analyze Apache Hive query execution plan for performanc...
How to understand and analyze Apache Hive query execution plan for performanc...
 
Elastic Search
Elastic SearchElastic Search
Elastic Search
 
Hive join optimizations
Hive join optimizationsHive join optimizations
Hive join optimizations
 
Optimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphOptimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j Graph
 
An Overview of Apache Cassandra
An Overview of Apache CassandraAn Overview of Apache Cassandra
An Overview of Apache Cassandra
 
Using MongoDB as a high performance graph database
Using MongoDB as a high performance graph databaseUsing MongoDB as a high performance graph database
Using MongoDB as a high performance graph database
 
Kafka Tutorial: Kafka Security
Kafka Tutorial: Kafka SecurityKafka Tutorial: Kafka Security
Kafka Tutorial: Kafka Security
 

Similar to Neo4j - 5 cool graph examples

2010 09-neo4j-deutsche-telekom
2010 09-neo4j-deutsche-telekom2010 09-neo4j-deutsche-telekom
2010 09-neo4j-deutsche-telekomPeter Neubauer
 
An intro to Neo4j and some use cases (JFokus 2011)
An intro to Neo4j and some use cases (JFokus 2011)An intro to Neo4j and some use cases (JFokus 2011)
An intro to Neo4j and some use cases (JFokus 2011)Emil Eifrem
 
Basic Neo4j Code Examples 2008 05 08
Basic Neo4j Code Examples 2008 05 08Basic Neo4j Code Examples 2008 05 08
Basic Neo4j Code Examples 2008 05 08Dan Nguyen
 
Neo4j -- or why graph dbs kick ass
Neo4j -- or why graph dbs kick assNeo4j -- or why graph dbs kick ass
Neo4j -- or why graph dbs kick assEmil Eifrem
 
GDM 2011 - Neo4j and real world apps.
GDM 2011 - Neo4j and real world apps.GDM 2011 - Neo4j and real world apps.
GDM 2011 - Neo4j and real world apps.Peter Neubauer
 
Neo4j - The Benefits of Graph Databases (OSCON 2009)
Neo4j - The Benefits of Graph Databases (OSCON 2009)Neo4j - The Benefits of Graph Databases (OSCON 2009)
Neo4j - The Benefits of Graph Databases (OSCON 2009)Emil Eifrem
 

Similar to Neo4j - 5 cool graph examples (8)

2010 09-neo4j-deutsche-telekom
2010 09-neo4j-deutsche-telekom2010 09-neo4j-deutsche-telekom
2010 09-neo4j-deutsche-telekom
 
An intro to Neo4j and some use cases (JFokus 2011)
An intro to Neo4j and some use cases (JFokus 2011)An intro to Neo4j and some use cases (JFokus 2011)
An intro to Neo4j and some use cases (JFokus 2011)
 
Neo4j Nosqllive
Neo4j NosqlliveNeo4j Nosqllive
Neo4j Nosqllive
 
Basic Neo4j Code Examples 2008 05 08
Basic Neo4j Code Examples 2008 05 08Basic Neo4j Code Examples 2008 05 08
Basic Neo4j Code Examples 2008 05 08
 
Neo4j -- or why graph dbs kick ass
Neo4j -- or why graph dbs kick assNeo4j -- or why graph dbs kick ass
Neo4j -- or why graph dbs kick ass
 
Neo4j
Neo4jNeo4j
Neo4j
 
GDM 2011 - Neo4j and real world apps.
GDM 2011 - Neo4j and real world apps.GDM 2011 - Neo4j and real world apps.
GDM 2011 - Neo4j and real world apps.
 
Neo4j - The Benefits of Graph Databases (OSCON 2009)
Neo4j - The Benefits of Graph Databases (OSCON 2009)Neo4j - The Benefits of Graph Databases (OSCON 2009)
Neo4j - The Benefits of Graph Databases (OSCON 2009)
 

More from Peter Neubauer

2012 09 GDG San Francisco Hackday at Parisoma
2012 09 GDG San Francisco Hackday at Parisoma2012 09 GDG San Francisco Hackday at Parisoma
2012 09 GDG San Francisco Hackday at ParisomaPeter Neubauer
 
2012 09 SF Data Mining zero to hero
2012 09 SF Data Mining zero to hero2012 09 SF Data Mining zero to hero
2012 09 SF Data Mining zero to heroPeter Neubauer
 
Test driven documentation
Test driven documentationTest driven documentation
Test driven documentationPeter Neubauer
 
Neo4j at @PolyglotVancouver
Neo4j at @PolyglotVancouverNeo4j at @PolyglotVancouver
Neo4j at @PolyglotVancouverPeter Neubauer
 
From Zero to Hero - Neo4j and Cypher.
From Zero to Hero - Neo4j and Cypher.From Zero to Hero - Neo4j and Cypher.
From Zero to Hero - Neo4j and Cypher.Peter Neubauer
 
Tips for building communitites with limited resources
Tips for building communitites with limited resourcesTips for building communitites with limited resources
Tips for building communitites with limited resourcesPeter Neubauer
 
Intro to Neo4j or why insurances should love graphs
Intro to Neo4j or why insurances should love graphsIntro to Neo4j or why insurances should love graphs
Intro to Neo4j or why insurances should love graphsPeter Neubauer
 
Neo4j Spatial - GIS for the rest of us.
Neo4j Spatial - GIS for the rest of us.Neo4j Spatial - GIS for the rest of us.
Neo4j Spatial - GIS for the rest of us.Peter Neubauer
 
Geekout Tallinn - Neo4j for the rescue!
Geekout Tallinn - Neo4j for the rescue!Geekout Tallinn - Neo4j for the rescue!
Geekout Tallinn - Neo4j for the rescue!Peter Neubauer
 
Neo4j spatial-nosql-frankfurt
Neo4j spatial-nosql-frankfurtNeo4j spatial-nosql-frankfurt
Neo4j spatial-nosql-frankfurtPeter Neubauer
 

More from Peter Neubauer (12)

Intro to Neo4j 2.0
Intro to Neo4j 2.0Intro to Neo4j 2.0
Intro to Neo4j 2.0
 
2012 09 GDG San Francisco Hackday at Parisoma
2012 09 GDG San Francisco Hackday at Parisoma2012 09 GDG San Francisco Hackday at Parisoma
2012 09 GDG San Francisco Hackday at Parisoma
 
2012 09 SF Data Mining zero to hero
2012 09 SF Data Mining zero to hero2012 09 SF Data Mining zero to hero
2012 09 SF Data Mining zero to hero
 
Test driven documentation
Test driven documentationTest driven documentation
Test driven documentation
 
Neo4j at @PolyglotVancouver
Neo4j at @PolyglotVancouverNeo4j at @PolyglotVancouver
Neo4j at @PolyglotVancouver
 
From Zero to Hero - Neo4j and Cypher.
From Zero to Hero - Neo4j and Cypher.From Zero to Hero - Neo4j and Cypher.
From Zero to Hero - Neo4j and Cypher.
 
Tips for building communitites with limited resources
Tips for building communitites with limited resourcesTips for building communitites with limited resources
Tips for building communitites with limited resources
 
Intro to Neo4j or why insurances should love graphs
Intro to Neo4j or why insurances should love graphsIntro to Neo4j or why insurances should love graphs
Intro to Neo4j or why insurances should love graphs
 
2011 11-öredev
2011 11-öredev2011 11-öredev
2011 11-öredev
 
Neo4j Spatial - GIS for the rest of us.
Neo4j Spatial - GIS for the rest of us.Neo4j Spatial - GIS for the rest of us.
Neo4j Spatial - GIS for the rest of us.
 
Geekout Tallinn - Neo4j for the rescue!
Geekout Tallinn - Neo4j for the rescue!Geekout Tallinn - Neo4j for the rescue!
Geekout Tallinn - Neo4j for the rescue!
 
Neo4j spatial-nosql-frankfurt
Neo4j spatial-nosql-frankfurtNeo4j spatial-nosql-frankfurt
Neo4j spatial-nosql-frankfurt
 

Recently uploaded

costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 

Recently uploaded (20)

costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 

Neo4j - 5 cool graph examples

  • 1. Neo4j And some graph problems #neo4j Peter Neubauer @peterneubauer COO, Neo Technology peter@neotechnology.com
  • 2. Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke @kymerawand
  • 3. First, a recap: NOSQL data models Key-value stores Data size Column Family Document databases Graph databases We are here Data complexity
  • 4. What makes a good DB? Separate Logic and Data Support Ad-Hoc queries Be persistent Scale good enough
  • 5. The property graph model Core abstractions: name = “Emil” Nodes age = 29 sex = “yes” Relationships between nodes Properties on both 1 2 Traversal framework type = KNOWS High performance time = 4 years 3 queries on connected data sets type = car vendor = “SAAB” Other bindings model = “95 Aero” Langs, REST, Gremlin, RDF
  • 6. Social data (customer: brand-name social network) name = “Marcy Runkle” name = “Hank” last_name = “Moody” name = “Mike” age = 42 42 age = 29 S W NO disclosure = public K KNOWS KNOWS KNO 1 7 3 W S KN 13 S OW name = “Charlie” KNOW S last_name = “Runkle” name = “Dani” last_name = “California” age = 3 days age = 27 2 name = “Karen”
  • 7. Just a social graph?
  • 8. Spatial data (customer: large telecom company) name = ... name = “The Tavern” lat = 1295238237 name = “Omni Hotel” long = 234823492 42 lat = 3492848 long = 283823423 length = 7 miles AD RO ROAD ROAD ROO 1 7 3 OAD RO 13 AD name = ... ROAD lat, long = ... name = “Swedland” lat = 23410349 length = 3 miles long = 2342348852 2 name = ...
  • 9. Social? Spatial? … Social AND spatial!
  • 10. Social AND spatial data (customer: LBS) name = “Peter” name = “The Tavern” lat = 1295238237 name = “Omni Hotel” long = 234823492 42 lat = 3492848 S W NO long = 283823423 weight = 10 K ROAD LIKES SIBL 1 7 3 IN G RO 13 AD name = “Emil” ROAD beer_qual = expert name = “Maria” age = 30 length = 3 miles beer_qual = non-existant 2 name = ...
  • 11. Financial data (customer: international bank) name = ... name = “The Tavern” lat = 1295238237 long = 234823492 42 name = “Mr Godfather” AW karma = veeeery-low HDR cash = more-than-you amount = $1000 IT W OWNS TRANSFER WIT 1 7 3 HDR AW 13 S FE R DE name = “Emil” P OS cash = always-too-li'l IT TRAN title = “ATM @ Wall St” id = 230918484233 amount = $1000 cash_left = 384204 2 name = ...
  • 12. Use Cases REST in Neo4j The graph as an OODB – Roo, Grails Jruby, Jo4neo Deep graph algos – Routing with A* Multiple indexes in the graph – GIS Recommendation systems – Gremlin and LinkedData
  • 13. REST in Neo4j Build on self describing JSON Indexing Querying Bindings to PHP, C#, JS OpenGraph API Jruby, Scala
  • 14. The Graph for objects Keep data clean! Annotation based Grails Jo4neo Roo JPA Mixin based Django JRuby C# (REST) PHP (REST)
  • 15. The Graph as an OODB
  • 18. Multiple indexes - GIS QuadTree (2D) Hierarchy Time (1D) On-demand index
  • 21. Recommendation - Gremlin gremlin.tinkerpop.com XPath based “Perl for Graphs” Property Graph Model Neo4j, RDF-SAIL, Tinkergraph, MongoDB, FS LinkedData SAIL
  • 24. Other use cases Activity streams Process automation Life-filtering of event streams Web-of-Things data f ows l Object oriented reporting Jasper Reports ReportAnywhere Scripting
  • 25. Why graph databases? “For anything with multiple relationships, multiple connections N e o4 j ab s ol u t e l y R OCK S!” http://bit.ly/dys4nx A web where the default is social → an explosion of graph-y data “Just 3 years ago, the data sets our product handled were very simple. But the past 9-12 months have seen an e x p l os i on of the number of relationships between things.” Manager of an enterprise product for the Fortune 5000 Werner Vogels CTO, Amazon
  • 26. How ego are you? (aka other impls?) Franz’ Al l e g roGrap h (http://agraph.franz.com) Proprietary, Lisp, RDF-oriented but real graphdb Sones g rap h DB (http://sones.com) Proprietary, .NET, in beta Twitter's Fl oc k DB (http://github.com/twitter/flockdb) Twitter's (graph) database for large and shallow graphs Google P re g e l (http://bit.ly/dP9IP) We are oh-so-secret Objectivity's I n fi n i te Gra p h (http://infinitegraph.com) New, closed OODB with Graph Layer on top
  • 27. Why Neo4j? Most widely deployed graph db in the world Robust: 24/7 production since 2003 Mature: lots of production deployments Community: ecosystem of tools, bindings, frameworks Available NOW under AGPLv3 / commercial license AGPLv3: “if you’re open source, we’re open source” If you have proprietary software? Must buy a commercial license But the f rst one is free! For ALL use-cases. i Download http://neo4j.org Feedback http://lists.neo4j.org
  • 28. Th e N e o4 j te a m i s h i ri n g ! Do you see the Matrix? Apply now.
  • 29. Questions? Image credit: lost again! Sorry :(