case study: real-time recommendations with a graph database
DESCRIPTION
Whether you want to be Facebook or are selling shoelaces online, if you have users then you have a social graph. Reveal the hidden graph in your data by storing key elements in a graph database, focusing on the relationships between records rather than the aggregation of records. We will look at how a large European social network added real-time recommendations to their service with a hybrid of MySQL and Neo4j, covering: Graph concepts refresher: whiteboard friendly modeling Polyglot persistence: storing the right data in the right place Graph algorithms: recommendations for any domainTRANSCRIPT
![Page 1: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/1.jpg)
Realtime Recommendations
with a Graph Database
Andreas Kollegger
#neo4j @akollegger
Wednesday, August 24, 11
![Page 2: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/2.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
What’s the plan?
๏Graph Database 101
๏Case Study: Viadeo
๏Finding new Friends
๏Recommending new Sites
2
Wednesday, August 24, 11
![Page 3: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/3.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
3
Wednesday, August 24, 11
![Page 4: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/4.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Obey!
3
Wednesday, August 24, 11
![Page 5: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/5.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Obey!
๏tweet using #neo4j
3
Wednesday, August 24, 11
![Page 6: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/6.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Obey!
๏tweet using #neo4j
๏I am @akollegger
3
Wednesday, August 24, 11
![Page 7: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/7.jpg)
NOSQL Categories
4
Size
Data Complexity
Wednesday, August 24, 11
![Page 8: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/8.jpg)
NOSQL Categories
4
Size
Data Complexity
Key-ValueStore
Wednesday, August 24, 11
![Page 9: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/9.jpg)
NOSQL Categories
4
Size BigTable
Clones
Data Complexity
Key-ValueStore
Wednesday, August 24, 11
![Page 10: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/10.jpg)
NOSQL Categories
4
Size BigTable
Clones
Data Complexity
Key-ValueStore
DocumentDatabases
Wednesday, August 24, 11
![Page 11: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/11.jpg)
NOSQL Categories
4
Size BigTable
Clones
Data Complexity
Key-ValueStore
DocumentDatabases
GraphDatabases
Wednesday, August 24, 11
![Page 12: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/12.jpg)
NOSQL Categories
4
Size BigTable
Clones
Data Complexity
Key-ValueStore
DocumentDatabases
GraphDatabases
Wednesday, August 24, 11
![Page 13: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/13.jpg)
NOSQL Categories
4
Size BigTable
Clones
Data Complexity
Key-ValueStore
DocumentDatabases
GraphDatabases
90%of
usecases
(this is still billionsof nodes &
relationships)
Wednesday, August 24, 11
![Page 14: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/14.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Graph DB 101(Reading a graph)
5
Wednesday, August 24, 11
![Page 15: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/15.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
A graph database?
6
Wednesday, August 24, 11
![Page 16: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/16.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
A graph database?
6
๏no: not for storing charts & graphs, or vector artwork
Wednesday, August 24, 11
![Page 17: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/17.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
A graph database?
6
๏no: not for storing charts & graphs, or vector artwork
๏yes: for storing data that is structured as a graph
Wednesday, August 24, 11
![Page 18: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/18.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
A graph database?
6
๏no: not for storing charts & graphs, or vector artwork
๏yes: for storing data that is structured as a graph
• remember linked-list, tree?
Wednesday, August 24, 11
![Page 19: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/19.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
A graph database?
6
๏no: not for storing charts & graphs, or vector artwork
๏yes: for storing data that is structured as a graph
• remember linked-list, tree?
• graphs are the generalized connected data structure
Wednesday, August 24, 11
![Page 20: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/20.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
A graph database?
6
๏no: not for storing charts & graphs, or vector artwork
๏yes: for storing data that is structured as a graph
• remember linked-list, tree?
• graphs are the generalized connected data structure
๏whiteboard friendly - no data mangling required
Wednesday, August 24, 11
![Page 21: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/21.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
A graph database?
6
๏no: not for storing charts & graphs, or vector artwork
๏yes: for storing data that is structured as a graph
• remember linked-list, tree?
• graphs are the generalized connected data structure
๏whiteboard friendly - no data mangling required
๏“A traditional relational database may tell you the average salary of everyone in this conference,
but a graph database will tell you who is most likely to buy you a beer.”
Wednesday, August 24, 11
![Page 22: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/22.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
7
Q: What are graphs good for?
Wednesday, August 24, 11
![Page 23: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/23.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
7
๏Recommendations
๏Business intelligence
๏Social computing
๏Geospatial
๏MDM
๏Systems management
๏Genealogy
๏Time series data
๏Product catalogue
๏Web analytics
๏Scientific computing (especially bioinformatics)
๏ Indexing your slow RDBMS
๏And much more!
Q: What are graphs good for?
A: highly-connected data
Wednesday, August 24, 11
![Page 24: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/24.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
G=(V,E)
8
๏A (Graph) -records data in- (Nodes)
๏A (Graph) -records data in- (Relationships)
๏(Nodes) are -organized by- (Relationships)
๏(Nodes & Relationships) -have- (Properties)
๏ Instead of a Data Model, you have a Data Graph
๏Structure is defined by the Relationships you create
Graph
records data in
Nodes Relationships
Properties
have
organized by
have
records data in
Wednesday, August 24, 11
![Page 25: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/25.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query a graph with a traversal
๏A (Traversal) -navigates- a (Graph)
๏A (Traversal) -identifies- (Paths)
๏(Paths) -order- (Nodes)
๏Traversals reveal localized data
๏Find data that is relevant to other data
9
Nodes Relationships
organized by
Traversal
identifies
Paths
order
navigatesGraph
records data in records data in
Wednesday, August 24, 11
![Page 26: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/26.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Indexes look-up Nodes or Relationships
๏An (Index) -maps to either-
(Nodes or Relationships)
๏An (Index) is a -special- (Traversal)
๏ Indexes find starting points for a traversal
๏Can be queried with simple constraints
10
Nodes Relationships
Properties
have
organized by
have
Index
maps from
maps to either maps to either
Traversalspecial
Wednesday, August 24, 11
![Page 27: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/27.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Neo4j is a Graph Database
๏A (Graph Database) -manages-
a (Graph) and related (Indexes)
๏A Graph Database:
• Full ACID Transactions
•High-Availability (read scaling)
• 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties
• Server with REST API
•Or, Embeddable as a Java Library
11
Graph Indexes
GraphDatabase
manages manages
lookup
Wednesday, August 24, 11
![Page 28: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/28.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Neo4j Features
๏Neo4j is stable
• In 24/7 operation since 2003
๏Neo4j is under active development
• open source, with a vibrant community
๏High performance graph operations
• high performance? like what? ...
12
Wednesday, August 24, 11
![Page 29: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/29.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Example: Social Network “path exists”๏~1,000 persons
๏average 50 friends per person
๏pathExists(a,b) limited to depth 4
๏caches warmed up to eliminate disk I/O
13
# persons query time
Relational database
Neo4j
Neo4j
1,000 2000ms
1,000 2ms
1,000,000 2ms
EmilAndreas
MarcusGabriella
Madeline
Peter
Jacob
Joanne
Wednesday, August 24, 11
![Page 30: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/30.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Example: Social Network “path exists”๏~1,000 persons
๏average 50 friends per person
๏pathExists(a,b) limited to depth 4
๏caches warmed up to eliminate disk I/O
13
# persons query time
Relational database
Neo4j
Neo4j
1,000 2000ms
1,000 2ms
1,000,000 2ms
EmilAndreas
MarcusGabriella
Madeline
Peter
Jacob
Joanne
Wednesday, August 24, 11
![Page 31: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/31.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Example: Social Network “path exists”๏~1,000 persons
๏average 50 friends per person
๏pathExists(a,b) limited to depth 4
๏caches warmed up to eliminate disk I/O
13
# persons query time
Relational database
Neo4j
Neo4j
1,000 2000ms
1,000 2ms
1,000,000 2ms
EmilAndreas
MarcusGabriella
Madeline
Peter
Jacob
Joanne
Wednesday, August 24, 11
![Page 32: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/32.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Example: Social Network “path exists”๏~1,000 persons
๏average 50 friends per person
๏pathExists(a,b) limited to depth 4
๏caches warmed up to eliminate disk I/O
13
# persons query time
Relational database
Neo4j
Neo4j
1,000 2000ms
1,000 2ms
1,000,000 2ms
EmilAndreas
MarcusGabriella
Madeline
Peter
Jacob
Joanne
Wednesday, August 24, 11
![Page 33: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/33.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo
14
Wednesday, August 24, 11
![Page 34: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/34.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo๏Viadeo - 35 million user professional network
14
Wednesday, August 24, 11
![Page 35: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/35.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo๏Viadeo - 35 million user professional network
๏the past tech
14
Wednesday, August 24, 11
![Page 36: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/36.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo๏Viadeo - 35 million user professional network
๏the past tech
• recommendations running on MySQL as a batch job
14
Wednesday, August 24, 11
![Page 37: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/37.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo๏Viadeo - 35 million user professional network
๏the past tech
• recommendations running on MySQL as a batch job
• took an hour, then success happened.. and it took two days
14
Wednesday, August 24, 11
![Page 38: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/38.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo๏Viadeo - 35 million user professional network
๏the past tech
• recommendations running on MySQL as a batch job
• took an hour, then success happened.. and it took two days
๏now using Neo4j
14
Wednesday, August 24, 11
![Page 39: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/39.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo๏Viadeo - 35 million user professional network
๏the past tech
• recommendations running on MySQL as a batch job
• took an hour, then success happened.. and it took two days
๏now using Neo4j
• recommendations run in real-time
14
Wednesday, August 24, 11
![Page 40: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/40.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo๏Viadeo - 35 million user professional network
๏the past tech
• recommendations running on MySQL as a batch job
• took an hour, then success happened.. and it took two days
๏now using Neo4j
• recommendations run in real-time
•what does a recommendation look like?
14
Wednesday, August 24, 11
![Page 41: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/41.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo๏Viadeo - 35 million user professional network
๏the past tech
• recommendations running on MySQL as a batch job
• took an hour, then success happened.. and it took two days
๏now using Neo4j
• recommendations run in real-time
•what does a recommendation look like?
14
Wednesday, August 24, 11
![Page 42: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/42.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Case Study: Viadeo๏Viadeo - 35 million user professional network
๏the past tech
• recommendations running on MySQL as a batch job
• took an hour, then success happened.. and it took two days
๏now using Neo4j
• recommendations run in real-time
•what does a recommendation look like?
๏Check out: http://www.youtube.com/watch?v=sLlbtoCfciE
14
Wednesday, August 24, 11
![Page 43: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/43.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
A closer look at recommendations
15
Wednesday, August 24, 11
![Page 44: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/44.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Recommendations 2 ways...
16
Wednesday, August 24, 11
![Page 45: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/45.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Recommendations 2 ways...
๏Gremlin - graph scripting
16
Wednesday, August 24, 11
![Page 46: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/46.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Recommendations 2 ways...
๏Gremlin - graph scripting
•an algorithmic approach
16
Wednesday, August 24, 11
![Page 47: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/47.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Recommendations 2 ways...
๏Gremlin - graph scripting
•an algorithmic approach
๏Cypher - declarative querying
16
Wednesday, August 24, 11
![Page 48: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/48.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Recommendations 2 ways...
๏Gremlin - graph scripting
•an algorithmic approach
๏Cypher - declarative querying
•a “pattern matching” approach
16
Wednesday, August 24, 11
![Page 49: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/49.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Recommendations 2 ways...
๏Gremlin - graph scripting
•an algorithmic approach
๏Cypher - declarative querying
•a “pattern matching” approach
๏Stig - functional graph query
16
Wednesday, August 24, 11
![Page 50: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/50.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Recommendations 2 ways...
๏Gremlin - graph scripting
•an algorithmic approach
๏Cypher - declarative querying
•a “pattern matching” approach
๏Stig - functional graph query
•ok, not yet...16
Wednesday, August 24, 11
![Page 51: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/51.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin
17
Wednesday, August 24, 11
![Page 52: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/52.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin๏a graph scripting DSL
17
Wednesday, August 24, 11
![Page 53: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/53.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin๏a graph scripting DSL
๏part of the TinkerPop stack
17
Wednesday, August 24, 11
![Page 54: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/54.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin๏a graph scripting DSL
๏part of the TinkerPop stack
๏try it out:
17
Wednesday, August 24, 11
![Page 55: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/55.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin๏a graph scripting DSL
๏part of the TinkerPop stack
๏try it out:
• g - the graph itself
17
Wednesday, August 24, 11
![Page 56: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/56.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin๏a graph scripting DSL
๏part of the TinkerPop stack
๏try it out:
• g - the graph itself
• g.v(0) - node 0
17
Wednesday, August 24, 11
![Page 57: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/57.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin๏a graph scripting DSL
๏part of the TinkerPop stack
๏try it out:
• g - the graph itself
• g.v(0) - node 0
• g.v(0).in - nodes connected to Node 0
17
Wednesday, August 24, 11
![Page 58: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/58.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin๏a graph scripting DSL
๏part of the TinkerPop stack
๏try it out:
• g - the graph itself
• g.v(0) - node 0
• g.v(0).in - nodes connected to Node 0
• g.v(1).out(“KNOWS”) - nodes connected by “KNOWS”
17
Wednesday, August 24, 11
![Page 59: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/59.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin๏a graph scripting DSL
๏part of the TinkerPop stack
๏try it out:
• g - the graph itself
• g.v(0) - node 0
• g.v(0).in - nodes connected to Node 0
• g.v(1).out(“KNOWS”) - nodes connected by “KNOWS”
๏details about Gremlin: https://github.com/tinkerpop/gremlin
17
Wednesday, August 24, 11
![Page 60: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/60.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Gremlin๏a graph scripting DSL
๏part of the TinkerPop stack
๏try it out:
• g - the graph itself
• g.v(0) - node 0
• g.v(0).in - nodes connected to Node 0
• g.v(1).out(“KNOWS”) - nodes connected by “KNOWS”
๏details about Gremlin: https://github.com/tinkerpop/gremlin
๏props to @twarko for creating it
17
Wednesday, August 24, 11
![Page 61: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/61.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Cypher
18
Wednesday, August 24, 11
![Page 62: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/62.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Cypher๏a pattern-matching query language (SQL-ish)
18
Wednesday, August 24, 11
![Page 63: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/63.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Cypher๏a pattern-matching query language (SQL-ish)
๏developed in-house
18
Wednesday, August 24, 11
![Page 64: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/64.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Cypher๏a pattern-matching query language (SQL-ish)
๏developed in-house
๏try it out:
18
Wednesday, August 24, 11
![Page 65: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/65.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Cypher๏a pattern-matching query language (SQL-ish)
๏developed in-house
๏try it out:
• start a=(0) return a - get node 0
18
Wednesday, August 24, 11
![Page 66: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/66.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Cypher๏a pattern-matching query language (SQL-ish)
๏developed in-house
๏try it out:
• start a=(0) return a - get node 0
• start a=(1) match (a)-->(b) return b - traverse from node 1
18
Wednesday, August 24, 11
![Page 67: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/67.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Cypher๏a pattern-matching query language (SQL-ish)
๏developed in-house
๏try it out:
• start a=(0) return a - get node 0
• start a=(1) match (a)-->(b) return b - traverse from node 1
• start a=(1) match (a)--()--(c) return c - friends of friends
18
Wednesday, August 24, 11
![Page 68: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/68.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Cypher๏a pattern-matching query language (SQL-ish)
๏developed in-house
๏try it out:
• start a=(0) return a - get node 0
• start a=(1) match (a)-->(b) return b - traverse from node 1
• start a=(1) match (a)--()--(c) return c - friends of friends
๏details about Cypher:
18
Wednesday, August 24, 11
![Page 69: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/69.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Cypher๏a pattern-matching query language (SQL-ish)
๏developed in-house
๏try it out:
• start a=(0) return a - get node 0
• start a=(1) match (a)-->(b) return b - traverse from node 1
• start a=(1) match (a)--()--(c) return c - friends of friends
๏details about Cypher:
• http://docs.neo4j.org/chunked/stable/cypher-query-lang.html
18
Wednesday, August 24, 11
![Page 70: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/70.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
The Social Graphas a Data Graph
19
Wednesday, August 24, 11
![Page 71: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/71.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
The Usual Social Graph, is also data
20
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
Wednesday, August 24, 11
![Page 72: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/72.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
The Usual Social Graph, is also data
20
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
me
Wednesday, August 24, 11
![Page 73: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/73.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
with the Usual “status tweets”
21
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
Wednesday, August 24, 11
![Page 74: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/74.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
with the Usual “status tweets”
21
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
Wednesday, August 24, 11
![Page 75: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/75.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
and the Usual Suspects
22
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
Wednesday, August 24, 11
![Page 76: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/76.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
and the Usual Suspects
22
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
Wednesday, August 24, 11
![Page 77: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/77.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
and the Usual Business
23
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
Wednesday, August 24, 11
![Page 78: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/78.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
and the Usual Business
23
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
Wednesday, August 24, 11
![Page 79: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/79.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
and the Usual Likes
24
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
Wednesday, August 24, 11
![Page 80: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/80.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
and the Usual Likes
24
name:Andreas
employer:Neo Technology
worked_at
body: presenting at NoSQL Now! like right now!
status
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes
body: mocking up a simplified social graph
status
url: http://www.imdb.com/title/tt1475582/
likes
knows
name: Peter
employer:Xilinx
worked_at
Wednesday, August 24, 11
![Page 81: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/81.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Making Friends
25
Wednesday, August 24, 11
![Page 82: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/82.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
My Expanded Ego Network
26
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Wednesday, August 24, 11
![Page 83: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/83.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Me & My Friends
27
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Wednesday, August 24, 11
![Page 84: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/84.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Me & My Friends
27
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Wednesday, August 24, 11
![Page 85: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/85.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Friends of my Friends
28
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Wednesday, August 24, 11
![Page 86: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/86.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Friends of my Friends
28
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Wednesday, August 24, 11
![Page 87: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/87.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Friends of my Friends
28
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Wednesday, August 24, 11
![Page 88: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/88.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Friend of a Friend of a Friend?
29
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Wednesday, August 24, 11
![Page 89: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/89.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Friend of a Friend of a Friend?
29
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Wednesday, August 24, 11
![Page 90: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/90.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Friend of a Friend of a Friend?
29
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Whatever.
Wednesday, August 24, 11
![Page 91: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/91.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends
30
Wednesday, August 24, 11
![Page 92: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/92.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends// Gremlin - andreas to friends to their friends, counted
30
Wednesday, August 24, 11
![Page 93: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/93.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends// Gremlin - andreas to friends to their friends, countedandreas.out('KNOWS').out('KNOWS').name.groupCount(m)
30
Wednesday, August 24, 11
![Page 94: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/94.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends// Gremlin - andreas to friends to their friends, countedandreas.out('KNOWS').out('KNOWS').name.groupCount(m)
30
Wednesday, August 24, 11
![Page 95: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/95.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends// Gremlin - andreas to friends to their friends, countedandreas.out('KNOWS').out('KNOWS').name.groupCount(m)
// Cypher - match from andreas to friends to their friends
30
Wednesday, August 24, 11
![Page 96: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/96.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends// Gremlin - andreas to friends to their friends, countedandreas.out('KNOWS').out('KNOWS').name.groupCount(m)
// Cypher - match from andreas to friends to their friendsstart andreas=(1) match (andreas)-[:KNOWS]->(friends)
30
Wednesday, August 24, 11
![Page 97: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/97.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends// Gremlin - andreas to friends to their friends, countedandreas.out('KNOWS').out('KNOWS').name.groupCount(m)
// Cypher - match from andreas to friends to their friendsstart andreas=(1) match (andreas)-[:KNOWS]->(friends)
-[:KNOWS]->(foafs) return foafs
30
Wednesday, August 24, 11
![Page 98: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/98.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends// Gremlin - andreas to friends to their friends, countedandreas.out('KNOWS').out('KNOWS').name.groupCount(m)
// Cypher - match from andreas to friends to their friendsstart andreas=(1) match (andreas)-[:KNOWS]->(friends)
-[:KNOWS]->(foafs) return foafs
30
Wednesday, August 24, 11
![Page 99: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/99.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends// Gremlin - andreas to friends to their friends, countedandreas.out('KNOWS').out('KNOWS').name.groupCount(m)
// Cypher - match from andreas to friends to their friendsstart andreas=(1) match (andreas)-[:KNOWS]->(friends)
-[:KNOWS]->(foafs) return foafs
// result: Emil, Stephen, Allison (& Peter?)
30
Wednesday, August 24, 11
![Page 100: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/100.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Friends of Friends// Gremlin - andreas to friends to their friends, countedandreas.out('KNOWS').out('KNOWS').name.groupCount(m)
// Cypher - match from andreas to friends to their friendsstart andreas=(1) match (andreas)-[:KNOWS]->(friends)
-[:KNOWS]->(foafs) return foafs
// result: Emil, Stephen, Allison (& Peter?)
30
Is that good enough?
Wednesday, August 24, 11
![Page 101: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/101.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Ranking my Friends’ Friends (intuitively)
31
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
Wednesday, August 24, 11
![Page 102: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/102.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Ranking my Friends’ Friends (intuitively)
31
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
1
Wednesday, August 24, 11
![Page 103: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/103.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Ranking my Friends’ Friends (intuitively)
31
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
1
2
Wednesday, August 24, 11
![Page 104: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/104.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Ranking my Friends’ Friends (intuitively)
31
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
1
2
3
Wednesday, August 24, 11
![Page 105: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/105.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Ranking my Friends’ Friends (intuitively)
31
name:Andreas
name: Markoknows
knows
name: Peter
name: Emil
knows
name: Stephen
knows
knows
name: Delia
knows
knows
name: Tiberius
knows
name: Allisonknows
knows
knows
1
2
3
?
Wednesday, August 24, 11
![Page 106: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/106.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF
32
Wednesday, August 24, 11
![Page 107: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/107.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex
32
Wednesday, August 24, 11
![Page 108: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/108.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights
32
Wednesday, August 24, 11
![Page 109: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/109.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward
32
Wednesday, August 24, 11
![Page 110: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/110.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward// - extended hop, to include Stephen
32
Wednesday, August 24, 11
![Page 111: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/111.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward// - extended hop, to include Stephenandreas.out('KNOWS').aggregate(x).out('KNOWS').except(x).name
32
Wednesday, August 24, 11
![Page 112: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/112.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward// - extended hop, to include Stephenandreas.out('KNOWS').aggregate(x).out('KNOWS').except(x).name
.groupCount(m){it}{it+1.0}.back(2)
32
Wednesday, August 24, 11
![Page 113: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/113.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward// - extended hop, to include Stephenandreas.out('KNOWS').aggregate(x).out('KNOWS').except(x).name
.groupCount(m){it}{it+1.0}.back(2).out('KNOWS').except(x).name.groupCount(m){it}{it+0.5}
32
Wednesday, August 24, 11
![Page 114: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/114.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward// - extended hop, to include Stephenandreas.out('KNOWS').aggregate(x).out('KNOWS').except(x).name
.groupCount(m){it}{it+1.0}.back(2).out('KNOWS').except(x).name.groupCount(m){it}{it+0.5}
32
Wednesday, August 24, 11
![Page 115: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/115.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward// - extended hop, to include Stephenandreas.out('KNOWS').aggregate(x).out('KNOWS').except(x).name
.groupCount(m){it}{it+1.0}.back(2).out('KNOWS').except(x).name.groupCount(m){it}{it+0.5}
==>Emil=2.0
32
Wednesday, August 24, 11
![Page 116: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/116.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward// - extended hop, to include Stephenandreas.out('KNOWS').aggregate(x).out('KNOWS').except(x).name
.groupCount(m){it}{it+1.0}.back(2).out('KNOWS').except(x).name.groupCount(m){it}{it+0.5}
==>Emil=2.0==>Allison=2.0
32
Wednesday, August 24, 11
![Page 117: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/117.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward// - extended hop, to include Stephenandreas.out('KNOWS').aggregate(x).out('KNOWS').except(x).name
.groupCount(m){it}{it+1.0}.back(2).out('KNOWS').except(x).name.groupCount(m){it}{it+0.5}
==>Emil=2.0==>Allison=2.0==>Stephen=1.0
32
Wednesday, August 24, 11
![Page 118: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/118.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Ranked extended FoaF// Gremlin - a bit more complex// - requiring “memory” and weights// - weights decrease with each “hop” outward// - extended hop, to include Stephenandreas.out('KNOWS').aggregate(x).out('KNOWS').except(x).name
.groupCount(m){it}{it+1.0}.back(2).out('KNOWS').except(x).name.groupCount(m){it}{it+0.5}
==>Emil=2.0==>Allison=2.0==>Stephen=1.0==>Tiberius=0.5
32
Wednesday, August 24, 11
![Page 119: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/119.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Like, like this
33
Wednesday, August 24, 11
![Page 120: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/120.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
What else might I like?
34
name:Andreas
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes:+1
url: http://www.imdb.com/title/tt1475582/
likes:+1
knows
name: Peter
url: http://theoatmeal.com/comics/state_web_summer/
url: http://www.imdb.com/title/tt0133093/
url: http://browsertoolkit.com/fault-tolerance.png
url: http://www.imdb.com/title/tt0436992/
url: http://lensbaby.com/optics-pinhole.php
likes:+1
likes:+2
likes:+1
likes:+1
likes:+2
likes:+3
Wednesday, August 24, 11
![Page 121: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/121.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
What else might I like?
34
name:Andreas
name: Markoknows
url: http://www.amazon.com/Nikon-14-24mm-2-8G-Nikkor-Angle/dp/B000VDCTCI/
likes:+1
url: http://www.imdb.com/title/tt1475582/
likes:+1
knows
name: Peter
url: http://theoatmeal.com/comics/state_web_summer/
url: http://www.imdb.com/title/tt0133093/
url: http://browsertoolkit.com/fault-tolerance.png
url: http://www.imdb.com/title/tt0436992/
url: http://lensbaby.com/optics-pinhole.php
likes:+1
likes:+2
likes:+1
likes:+1
likes:+2
likes:+3
Wednesday, August 24, 11
![Page 122: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/122.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like
35
Wednesday, August 24, 11
![Page 123: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/123.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends like
35
Wednesday, August 24, 11
![Page 124: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/124.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
35
Wednesday, August 24, 11
![Page 125: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/125.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
35
Wednesday, August 24, 11
![Page 126: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/126.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
35
Wednesday, August 24, 11
![Page 127: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/127.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+
35
Wednesday, August 24, 11
![Page 128: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/128.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |
35
Wednesday, August 24, 11
![Page 129: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/129.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |+------------------------------------------------+
35
Wednesday, August 24, 11
![Page 130: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/130.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |+------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png |
35
Wednesday, August 24, 11
![Page 131: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/131.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |+------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png || http://www.imdb.com/title/tt0436992 |
35
Wednesday, August 24, 11
![Page 132: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/132.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |+------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png || http://www.imdb.com/title/tt0436992 || http://lensbaby.com/optics-pinhole.php |
35
Wednesday, August 24, 11
![Page 133: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/133.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |+------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png || http://www.imdb.com/title/tt0436992 || http://lensbaby.com/optics-pinhole.php || http://theoatmeal.com/comics/state_web_summer/ |
35
Wednesday, August 24, 11
![Page 134: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/134.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |+------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png || http://www.imdb.com/title/tt0436992 || http://lensbaby.com/optics-pinhole.php || http://theoatmeal.com/comics/state_web_summer/ || http://www.imdb.com/title/tt0133093 |
35
Wednesday, August 24, 11
![Page 135: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/135.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |+------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png || http://www.imdb.com/title/tt0436992 || http://lensbaby.com/optics-pinhole.php || http://theoatmeal.com/comics/state_web_summer/ || http://www.imdb.com/title/tt0133093 || http://browsertoolkit.com/fault-tolerance.png |
35
Wednesday, August 24, 11
![Page 136: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/136.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |+------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png || http://www.imdb.com/title/tt0436992 || http://lensbaby.com/optics-pinhole.php || http://theoatmeal.com/comics/state_web_summer/ || http://www.imdb.com/title/tt0133093 || http://browsertoolkit.com/fault-tolerance.png |+------------------------------------------------+
35
Wednesday, August 24, 11
![Page 137: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/137.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// Cypher - websites my friends likestart andreas=(1) match (andreas)-[:KNOWS]->(friend)
-[:LIKES]->(website) return website.url
+------------------------------------------------+| website.url |+------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png || http://www.imdb.com/title/tt0436992 || http://lensbaby.com/optics-pinhole.php || http://theoatmeal.com/comics/state_web_summer/ || http://www.imdb.com/title/tt0133093 || http://browsertoolkit.com/fault-tolerance.png |+------------------------------------------------+6 rows, 4 ms
35
Wednesday, August 24, 11
![Page 138: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/138.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like
36
Wednesday, August 24, 11
![Page 139: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/139.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average rating
36
Wednesday, August 24, 11
![Page 140: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/140.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
36
Wednesday, August 24, 11
![Page 141: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/141.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus)
36
Wednesday, August 24, 11
![Page 142: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/142.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
36
Wednesday, August 24, 11
![Page 143: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/143.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+
36
Wednesday, August 24, 11
![Page 144: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/144.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+| website.url | avg(l.plus) |
36
Wednesday, August 24, 11
![Page 145: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/145.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+| website.url | avg(l.plus) |+--------------------------------------------------------------+
36
Wednesday, August 24, 11
![Page 146: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/146.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+| website.url | avg(l.plus) |+--------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 |
36
Wednesday, August 24, 11
![Page 147: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/147.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+| website.url | avg(l.plus) |+--------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 || http://www.imdb.com/title/tt0436992 | 2.0 |
36
Wednesday, August 24, 11
![Page 148: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/148.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+| website.url | avg(l.plus) |+--------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 || http://www.imdb.com/title/tt0436992 | 2.0 || http://www.imdb.com/title/tt0133093 | 2.0 |
36
Wednesday, August 24, 11
![Page 149: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/149.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+| website.url | avg(l.plus) |+--------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 || http://www.imdb.com/title/tt0436992 | 2.0 || http://www.imdb.com/title/tt0133093 | 2.0 || http://theoatmeal.com/comics/state_web_summer/ | 1.0 |
36
Wednesday, August 24, 11
![Page 150: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/150.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+| website.url | avg(l.plus) |+--------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 || http://www.imdb.com/title/tt0436992 | 2.0 || http://www.imdb.com/title/tt0133093 | 2.0 || http://theoatmeal.com/comics/state_web_summer/ | 1.0 || http://browsertoolkit.com/fault-tolerance.png | 1.0 |
36
Wednesday, August 24, 11
![Page 151: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/151.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+| website.url | avg(l.plus) |+--------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 || http://www.imdb.com/title/tt0436992 | 2.0 || http://www.imdb.com/title/tt0133093 | 2.0 || http://theoatmeal.com/comics/state_web_summer/ | 1.0 || http://browsertoolkit.com/fault-tolerance.png | 1.0 |+--------------------------------------------------------------+
36
Wednesday, August 24, 11
![Page 152: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/152.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus) ORDER BY AVG(l.plus) DESC
+--------------------------------------------------------------+| website.url | avg(l.plus) |+--------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 || http://www.imdb.com/title/tt0436992 | 2.0 || http://www.imdb.com/title/tt0133093 | 2.0 || http://theoatmeal.com/comics/state_web_summer/ | 1.0 || http://browsertoolkit.com/fault-tolerance.png | 1.0 |+--------------------------------------------------------------+5 rows, 5 ms
36
Wednesday, August 24, 11
![Page 153: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/153.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like
37
Wednesday, August 24, 11
![Page 154: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/154.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average rating
37
Wednesday, August 24, 11
![Page 155: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/155.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
37
Wednesday, August 24, 11
![Page 156: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/156.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
37
Wednesday, August 24, 11
![Page 157: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/157.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+
37
Wednesday, August 24, 11
![Page 158: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/158.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |
37
Wednesday, August 24, 11
![Page 159: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/159.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-------------------------------------------------------------------------+
37
Wednesday, August 24, 11
![Page 160: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/160.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-------------------------------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png | 1.0 | 2 |
37
Wednesday, August 24, 11
![Page 161: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/161.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-------------------------------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png | 1.0 | 2 || http://lensbaby.com/optics-pinhole.php | 3.0 | 1 |
37
Wednesday, August 24, 11
![Page 162: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/162.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-------------------------------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png | 1.0 | 2 || http://lensbaby.com/optics-pinhole.php | 3.0 | 1 || http://www.imdb.com/title/tt0436992 | 2.0 | 1 |
37
Wednesday, August 24, 11
![Page 163: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/163.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-------------------------------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png | 1.0 | 2 || http://lensbaby.com/optics-pinhole.php | 3.0 | 1 || http://www.imdb.com/title/tt0436992 | 2.0 | 1 || http://www.imdb.com/title/tt0133093 | 2.0 | 1 |
37
Wednesday, August 24, 11
![Page 164: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/164.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-------------------------------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png | 1.0 | 2 || http://lensbaby.com/optics-pinhole.php | 3.0 | 1 || http://www.imdb.com/title/tt0436992 | 2.0 | 1 || http://www.imdb.com/title/tt0133093 | 2.0 | 1 || http://theoatmeal.com/comics/state_web_summer/ | 1.0 | 1 |
37
Wednesday, August 24, 11
![Page 165: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/165.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-------------------------------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png | 1.0 | 2 || http://lensbaby.com/optics-pinhole.php | 3.0 | 1 || http://www.imdb.com/title/tt0436992 | 2.0 | 1 || http://www.imdb.com/title/tt0133093 | 2.0 | 1 || http://theoatmeal.com/comics/state_web_summer/ | 1.0 | 1 |+-------------------------------------------------------------------------+
37
Wednesday, August 24, 11
![Page 166: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/166.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered by number of ratings, then average ratingstart andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-------------------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-------------------------------------------------------------------------+| http://browsertoolkit.com/fault-tolerance.png | 1.0 | 2 || http://lensbaby.com/optics-pinhole.php | 3.0 | 1 || http://www.imdb.com/title/tt0436992 | 2.0 | 1 || http://www.imdb.com/title/tt0133093 | 2.0 | 1 || http://theoatmeal.com/comics/state_web_summer/ | 1.0 | 1 |+-------------------------------------------------------------------------+5 rows, 7 ms
37
Wednesday, August 24, 11
![Page 167: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/167.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like
38
Wednesday, August 24, 11
![Page 168: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/168.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1
38
Wednesday, August 24, 11
![Page 169: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/169.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
38
Wednesday, August 24, 11
![Page 170: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/170.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website)
38
Wednesday, August 24, 11
![Page 171: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/171.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
38
Wednesday, August 24, 11
![Page 172: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/172.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*)
38
Wednesday, August 24, 11
![Page 173: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/173.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
38
Wednesday, August 24, 11
![Page 174: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/174.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-----------------------------------------------------------------+
38
Wednesday, August 24, 11
![Page 175: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/175.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-----------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |
38
Wednesday, August 24, 11
![Page 176: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/176.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-----------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-----------------------------------------------------------------+
38
Wednesday, August 24, 11
![Page 177: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/177.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-----------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-----------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 | 1 |
38
Wednesday, August 24, 11
![Page 178: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/178.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-----------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-----------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 | 1 || http://www.imdb.com/title/tt0436992 | 2.0 | 1 |
38
Wednesday, August 24, 11
![Page 179: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/179.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-----------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-----------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 | 1 || http://www.imdb.com/title/tt0436992 | 2.0 | 1 || http://www.imdb.com/title/tt0133093 | 2.0 | 1 |
38
Wednesday, August 24, 11
![Page 180: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/180.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-----------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-----------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 | 1 || http://www.imdb.com/title/tt0436992 | 2.0 | 1 || http://www.imdb.com/title/tt0133093 | 2.0 | 1 |+-----------------------------------------------------------------+
38
Wednesday, August 24, 11
![Page 181: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/181.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Query for Things to Like// ordered, grouped, rated higher than 1start andreas=(1) MATCH (andreas)-[:KNOWS]->(friend)
-[l:LIKES]->(website) WHERE l.plus>1
return website.url, AVG(l.plus), count(*) ORDER BY count(*) DESC, AVG(l.plus) DESC
+-----------------------------------------------------------------+| website.url | avg(l.plus) | count(*) |+-----------------------------------------------------------------+| http://lensbaby.com/optics-pinhole.php | 3.0 | 1 || http://www.imdb.com/title/tt0436992 | 2.0 | 1 || http://www.imdb.com/title/tt0133093 | 2.0 | 1 |+-----------------------------------------------------------------+3 rows, 91 ms
38
Wednesday, August 24, 11
![Page 182: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/182.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
What else would you recommend? ๏Continue to elaborate the graph, and the algorithm
•more variables reveal more nuances in results
๏Rank influence of each user
• PageRank, Centrality, pick-an-algorithm
•Modulate weights by user rank
39
Wednesday, August 24, 11
![Page 183: Case Study: Real-time Recommendations with a Graph Database](https://reader038.vdocument.in/reader038/viewer/2022103016/554f8a8fb4c9052a518b5108/html5/thumbnails/183.jpg)
Andreas Kollegger --[known_as]--> @akollegger --[talks_about]--> #neo4j
Questions?
๏learn more at http://neo4j.org
๏join the mailing list
๏join a meetup, or start one and we’ll come to you
40
Wednesday, August 24, 11