Slide 1

Slide 1 text

WTF IS THIS HIPSTER GRAPH THINGY?

Slide 2

Slide 2 text

WHY • natural • graphs are everywhere • easy to think about

Slide 3

Slide 3 text

EXAMPLES • Access Control

Slide 4

Slide 4 text

EXAMPLES • Access Control • Insurance Risk Analysis • Geo Routing • Social Graphs

Slide 5

Slide 5 text

EXAMPLE FOR REALZ • How do I know you? • How do I get to Maribor? • Where should I have lunch?

Slide 6

Slide 6 text

Core Industries & Use Cases: Web / ISV Finance & Insurance Telecomm- unications Network & Data Center Management MDM Social Geo Core Industries & Use Cases: Software Financial Services Telecommu nications Web Social, HR & Recruiting Health Care & Life Sciences Media & Publishing Energy, Services, Automotive, Gov’t, Logistics, Education, Gaming, Other Network & Data Center Management MDM / System of Record Social Geo Identity & Access Mgmt Content Management Recommend-ations BI, CRM, Impact Analysis, Fraud Detection, Resource Optimization, etc. Accenture Finance Energy Aerospace Neo4j Adoption Snapshot Select Commercial Customers (Community Users Not Included)

Slide 7

Slide 7 text

RELATIONAL DB

Slide 8

Slide 8 text

RELATIONAL DB

Slide 9

Slide 9 text

GRAPH DB

Slide 10

Slide 10 text

GRAPH DB • nodes • edges / relationships • properties / attributes

Slide 11

Slide 11 text

NEO4J • NoSQL • open-source • Java/Scala • the most popular graph DB • full DB characteristics (ACID compliance, cluster support, runtime failover)

Slide 12

Slide 12 text

CYPHER • SQL-like • ASCII-ish

Slide 13

Slide 13 text

CYPHER • SQL-like • ASCII-ish SELECT firstname FROM person WHERE person.nickname= 'The Dude' MATCH p:person WHERE p.nickname= 'The Dude' RETURN p.firstname

Slide 14

Slide 14 text

CYPHER • SQL-like • ASCII-ish SELECT firstname FROM person WHERE person.nickname= 'The Dude' MATCH p:person WHERE p.nickname= 'The Dude' RETURN p.firstname FROM person JOIN team ON person.teamid = team.id WHERE person.nickname= 'The Dude' AND team.sport = 'Bowling' MATCH (p:person)-[:in]-(t:team) WHERE p.nickname= 'The Dude' AND t.sport = 'Bowling' RETURN p.firstname, t.name

Slide 15

Slide 15 text

CYPHER • SQL-like • ASCII-ish SELECT firstname FROM person WHERE person.nickname= 'The Dude' MATCH p:person WHERE p.nickname= 'The Dude' RETURN p.firstname FROM person JOIN team ON person.teamid = team.id WHERE person.nickname= 'The Dude' AND team.sport = 'Bowling' MATCH (p:person)-[:in]-(t:team) WHERE p.nickname= 'The Dude' AND t.sport = 'Bowling' RETURN p.firstname, t.name MATCH (p:person)-[*]-(p2:person) WHERE p.nickname= 'The Dude' RETURN p.firstname, p2.firstname

Slide 16

Slide 16 text

DEMO

Slide 17

Slide 17 text

Q&A

Slide 18

Slide 18 text

HVALA @mr_foto @RubySlovenia