Graph All The Things! - Andreas Kollegger @ Neo4j GraphDays: #AllYouCanGraph Palo Alto 2014

Post on 08-Sep-2014

285 views 1 download

Tags:

description

Recent years have seen an explosion of technologies for managing, processing and analyzing graphs. While the most well known users of graph technologies have been social web properties such as Facebook and LinkedIn, a quiet revolution has been steadily spreading across other industries. In this last 18 months, more than 30 of the Global 2000, and many times as many startups, have quietly been working to apply graphs to a wide array of business-critical use cases. For example: one of the world’s top parcel delivery carriers wasn’t going to be able to handle Christmas volumes last year because of numerous challenges stemming from online ordering. The solution? Replace the legacy routing system with a graph database, which now routes 5M packages per day in real time: faster and more efficiently than its relational cousins ever could. One of the top investment banks now onboards traders using an identity & access management system based on graphs. Media metadata turns out to be best represented as a graph; and consumers respond well to the opportunity to visually navigate the graph (such as is done by the app Discovr Music). Similar trends are developing in telecommunications, healthcare, human resources, gaming, and many more. We are entering an era of connected data: where those companies that can master the connections between their data – the lines and patterns linking the dots, and not just the dots – will outperform the companies that fail to recognize connectedness.

Transcript of Graph All The Things! - Andreas Kollegger @ Neo4j GraphDays: #AllYouCanGraph Palo Alto 2014

Graph all the ThingsA story of data and relationships

Andreas Kollegger Product Designer

@akollegger

2005: Lusaka, Zambia

2005: Lusaka, Zambia

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

2005: Lusaka, Zambia

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

2005: Lusaka, Zambia

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

2005: Lusaka, Zambia

SNOMED?

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

2005: Lusaka, Zambia

SNOMED? LOINC?

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

2005: Lusaka, Zambia

SNOMED? LOINC? Non-English terms and local idioms?

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

2005: Lusaka, Zambia

SNOMED? LOINC? Non-English terms and local idioms?

ALS Lou Gehrig's Disease

Amyotrophic lateral sclerosismotor neurone disease

Charcot disease

MND

ICD-10G12.2

ICD-9335.20

OMIM105400

Categories and Indicators and Related Conditions and Treatments and Drugs?

Hey, who wants to come to Sweden to hack on Neo4j for 6 months?

2000: Sweden

2000: Sweden

2000: Sweden

2000: Sweden

2000: Sweden

Graphs are not a new idea, just the right idea right now.

1736: Königsberg

A

B

D

C

1736: Königsberg7 Bridges Problem

A

B

D

C

1736: Königsberg7 Bridges Problem

A

B

D

C

1736: Königsberg7 Bridges Problem

A

B

D

C

1736: Königsberg7 Bridges Problem

A

B

D

C

1

2 3

4

7

6

5

1736: Königsberg7 Bridges Problem

A

B

D

C

1

2 3

4

7

6

5

1736: Königsberg7 Bridges Problem

Graphs are everywhere!

Neo Technology, Inc Confidential

NOSQL == Not Only SQL

Hint: Relationships Matter

Put all of us into a database. !

Ask an RDBMS: “What's the average age of everyone here?”

!Ask Neo4j:

“Who should I get to know better?”

Member Group

Member Group

143 Andreas

Member Group

143 Andreas326 Stockholm

725 San Francisco

981 Boston

Member GroupMember_Group

143 Andreas326 Stockholm

725 San Francisco

981 Boston

Member GroupMember_Group

143 Andreas326 Stockholm

725 San Francisco

981 Boston143 981

143 725

143 326

Andreas

India

San Francisco

Boston

143 326

725

981

143 981

143 725

143 326

Andreas

India

San Francisco

Boston

Property Graph

Nodes

Property Graph

Nodes

Property Graph

Nodes

Member

Group

Group

Group

with Labels

Property Graph

Nodes

Member

Group

Group

Group

with LabelsRelationships

Property Graph

Nodes

uid: ABK name: Andreas

uid: STK where: Stockholm

uid: SFO where: San Francisco

uid: BOS where: Boston

Member

Group

Group

Group

with LabelsRelationships with Type

MEMBER_OF

MEMBER_OF

MEMBER_O

F

since: 2009

since: 2013

since: 2012

Property Graph

Nodes

uid: ABK name: Andreas

uid: STK where: Stockholm

uid: SFO where: San Francisco

uid: BOS where: Boston

Member

Group

Group

Group

with LabelsRelationships with Type

MEMBER_OF

MEMBER_OF

MEMBER_O

F

since: 2009

since: 2013

since: 2012

Properties on both

Property Graph

What about the wolves?!? Tell me about the wolves!

How Wolves Change Rivers: Research Results

How Wolves Change Rivers: Known Influences Modeled as a Graph

How Wolves Change Rivers: Known Influences Modeled as a Graph

How Wolves Change Rivers: Query for Trophic Cascades

!MATCH path = (:Animal {Entity:"Wolves"})-[*]->(:Landscape {Entity:"Rivers"})WITH extract(node IN nodes(path) | node.Yellowstone) AS factor, rand() AS numberRETURN factor AS How_Wolves_Affect_RiverStabilityORDER BY numberLIMIT 5

How Wolves Change Rivers: Query for Trophic Cascades

!MATCH path = (:Animal {Entity:"Wolves"})-[*]->(:Landscape {Entity:"Rivers"})WITH extract(node IN nodes(path) | node.Yellowstone) AS factor, rand() AS numberRETURN factor AS How_Wolves_Affect_RiverStabilityORDER BY numberLIMIT 5

Thank you!Think about relationships,

Follow paths, Find your graph