let me graph that for you
play

Let Me Graph That For You @ian S robinson #neo4j - PowerPoint PPT Presentation

Let Me Graph That For You @ian S robinson #neo4j Outline Data complexity Graph data scenarios Using a graph database complexity = f(size, variable


  1. Let ¡Me ¡Graph ¡That ¡For ¡You ¡ @ian S robinson ¡ ¡ #neo4j ¡ ¡

  2. Outline ¡ • Data ¡complexity ¡ • Graph ¡data ¡scenarios ¡ • Using ¡a ¡graph ¡database ¡

  3. complexity = f(size, variable structure, connectedness) ¡

  4. Variable ¡Structure ¡

  5. Connectedness ¡ • Existence ¡ • SemanFcs ¡ • Quality ¡ ? ¡

  6. Graphs ¡Are ¡Everywhere ¡

  7. Graph ¡Databases ¡ • Store ¡ data ¡ • Manage ¡ • Query ¡

  8. Social ¡Network ¡

  9. Network ¡Impact ¡Analysis ¡

  10. Route ¡Finding ¡

  11. RecommendaFons ¡

  12. LogisFcs ¡

  13. Access ¡Control ¡

  14. Fraud ¡Analysis ¡

  15. Neo4j ¡

  16. Labeled ¡Property ¡Graph ¡

  17. Querying ¡Graph ¡Data ¡ • Describing ¡graphs ¡ • CreaFng ¡nodes, ¡relaFonships ¡and ¡properFes ¡ • Querying ¡graphs ¡

  18. How ¡to ¡Describe ¡a ¡Graph? ¡

  19. Cypher ¡PaSern ¡ (ben)-[:WORKS_FOR]->(acme), (ben)-[:HAS_SKILL]->(rest), (ben)-[:HAS_SKILL]->(neo4j)

  20. Create ¡Some ¡Data ¡ CREATE (ben:Person { name:'Ben' }), (acme:Company { name:'Acme' }), (rest:Skill { name:'REST' }), (neo4j:Skill { name:'Neo4j' }), (ben)-[:WORKS_FOR]->(acme), (ben)-[:HAS_SKILL]->(rest), (ben)-[:HAS_SKILL]->(graphs) RETURN ben

  21. Create ¡Nodes ¡ CREATE (ben:Person { name:'Ben' }), (acme:Company { name:'Acme' }), (rest:Skill { name:'REST' }), (neo4j:Skill { name:'Neo4j' }), (ben)-[:WORKS_FOR]->(acme), (ben)-[:HAS_SKILL]->(rest), (ben)-[:HAS_SKILL]->(graphs) RETURN ben

  22. Create ¡RelaFonships ¡ CREATE (ben:Person { name:'Ben' }), (acme:Company { name:'Acme' }), (rest:Skill { name:'REST' }), (neo4j:Skill { name:'Neo4j' }), (ben)-[:WORKS_FOR]->(acme), (ben)-[:HAS_SKILL]->(rest), (ben)-[:HAS_SKILL]->(graphs) RETURN ben

  23. Return ¡Node ¡ CREATE (ben:Person { name:'Ben' }), (acme:Company { name:'Acme' }), (rest:Skill { name:'REST' }), (neo4j:Skill { name:'Neo4j' }), (ben)-[:WORKS_FOR]->(acme), (ben)-[:HAS_SKILL]->(rest), (ben)-[:HAS_SKILL]->(graphs) RETURN ben

  24. Querying ¡a ¡Graph ¡ Graph ¡Local ¡ • Find ¡one ¡or ¡more ¡start ¡nodes ¡ • Explore ¡surrounding ¡graph ¡ • Millions ¡of ¡hops ¡per ¡second ¡

  25. Which ¡people, ¡who ¡work ¡for ¡the ¡same ¡ company ¡as ¡me, ¡share ¡my ¡skills? ¡

  26. Cypher ¡PaSern ¡ (company)<-[:WORKS_FOR]-(me)-[:HAS_SKILL]->(skill), (company)<-[:WORKS_FOR]-(colleague)-[:HAS_SKILL]->(skill)

  27. Cypher ¡Query ¡ Which ¡people, ¡who ¡work ¡for ¡the ¡same ¡company ¡ as ¡me, ¡have ¡similar ¡skills ¡to ¡me? ¡ MATCH (company)<-[:WORKS_FOR]-(:Person{name:'ian'}) -[:HAS_SKILL]->(skill), (company)<-[:WORKS_FOR]-(colleague)-[:HAS_SKILL]->(skill) RETURN colleague.name AS name, count(skill) AS score, collect(skill.name) AS skills ORDER BY score DESC

  28. Graph ¡PaSern ¡ Which ¡people, ¡who ¡work ¡for ¡the ¡same ¡company ¡ as ¡me, ¡have ¡similar ¡skills ¡to ¡me? ¡ MATCH (company)<-[:WORKS_FOR]-(:Person{name:' MATCH (company)<-[:WORKS_FOR]-(:Person{name:'ian ian'}) '}) -[:HAS_SKILL]->(skill), -[:HAS_SKILL]->(skill), (company)<-[:WORKS_FOR]-(colleague)-[:HAS_SKILL]->(skill) (company)<-[:WORKS_FOR]-(colleague)-[:HAS_SKILL]->(skill) RETURN colleague.name AS name, count(skill) AS score, collect(skill.name) AS skills ORDER BY score DESC

  29. Anchor ¡PaSern ¡in ¡Graph ¡ Which ¡people, ¡who ¡work ¡for ¡the ¡same ¡company ¡ as ¡me, ¡have ¡similar ¡skills ¡to ¡me? ¡ MATCH (company)<-[:WORKS_FOR]-(:Person{name:' (:Person{name:'ian ian'}) '}) -[:HAS_SKILL]->(skill), (company)<-[:WORKS_FOR]-(colleague)-[:HAS_SKILL]->(skill) RETURN colleague.name AS name, count(skill) AS score, collect(skill.name) AS skills ORDER BY score DESC

  30. Create ¡Results ¡ Which ¡people, ¡who ¡work ¡for ¡the ¡same ¡company ¡ as ¡me, ¡have ¡similar ¡skills ¡to ¡me? ¡ MATCH (company)<-[:WORKS_FOR]-(:Person{name:'ian'}) -[:HAS_SKILL]->(skill), (company)<-[:WORKS_FOR]-(colleague)-[:HAS_SKILL]->(skill) RETURN RETURN colleague.name colleague.name AS name, AS name, count(skill) AS score, count(skill) AS score, collect( collect(skill.name skill.name) AS skills ) AS skills ORDER BY score DESC ORDER BY score DESC

  31. Results ¡ +--------------------------------------+ | name | score | skills | +--------------------------------------+ | "Ben" | 2 | ["Neo4j","REST"] | | "Charlie" | 1 | ["Neo4j"] | +--------------------------------------+ 2 rows

  32. Case ¡Studies ¡

  33. Network ¡Impact ¡Analysis ¡ • Which ¡parts ¡of ¡network ¡ does ¡a ¡customer ¡ depend ¡on? ¡ • Who ¡will ¡be ¡affected ¡if ¡ we ¡replace ¡a ¡network ¡ element? ¡

  34. Asset ¡Management ¡& ¡Access ¡Control ¡ • Which ¡assets ¡can ¡an ¡ admin ¡control? ¡ • Who ¡can ¡change ¡my ¡ subscripFon? ¡

  35. LogisFcs ¡ • What’s ¡the ¡quickest ¡ delivery ¡route ¡for ¡this ¡ parcel? ¡

  36. Social ¡Network ¡& ¡RecommendaFons ¡ • Which ¡assets ¡can ¡I ¡ access? ¡ • Who ¡shares ¡my ¡ interests? ¡

  37. neo4j.com/online_course ¡

  38. graphdatabases.com ¡ of Neo Technology Compliments Thank ¡you ¡ @ian S robinson ¡ #neo4j ¡ ¡ ¡ Graph h Databases Ian Robinson, Jim Webber & Emil Eifrem

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend