Your SlideShare is downloading. ×
0
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Hands on Neo4J - Duchess France/Zenexity - 25/09/2013

353

Published on

Initiation à Neo4J v2.0 en une série de 4 exercices guidés. …

Initiation à Neo4J v2.0 en une série de 4 exercices guidés.
http://www.duchess-france.org/hands-on-neo4j/

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
353
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. git clone https://github.com/LateralThoughts/hands-on-neo4j.git
  • 2. Pré-requis du jour / RAPPEL SUPPORT TESTNG IDE
  • 3. Page de réclame @fbiville @ogirardot @LateraIThoughts mailto:contact@lateral-thoughts.com
  • 4. Agenda Conférence Octobre / http://tinyurl.com/soft-shake-neo4j Formation Novembre / http://tinyurl.com/humancoders-neo4j BBL : où tu veux quand tu veux ! http://www.brownbaglunch.fr/baggers.html#Florent_Biville
  • 5. Neo4J : mais qu’est-ce que c’est ? Base de donnée orientée… (vieux barbus n’est pas une bonne réponse)
  • 6. Base de données orientée graphe ! Flock DB
  • 7. Graphe ? des noeuds des relations
  • 8. Graphe ?
  • 9. Base de données graphe ?
  • 10. Base de données graphe ?
  • 11. Au programme : BIRGGIT !
  • 12. Au programme : BIRGGIT ! Le 1er gestionnaire de versions sans contenu !
  • 13. Au programme : BIRGGIT ! Opérations possibles (à la fin de ce hands-on) ● birggit init ● birggit commit ● birggit log ● birggit gc
  • 14. Exercices test-driven !
  • 15. Exercice 1 APIs unitaires : création de noeuds/relations // création d’un noeud avec label Node monNoeud = graphDB.createNode( DynamicLabel.label("SUPER_LABEL") ); monNoeud.setProperty("hello", "world"); // création d’une relation Relationship love = monAutreNoeud.createRelationshipTo( monNoeud, DynamicRelationshipType.withName("IS_IN_LOVE_WITH") ); love.setProperty("start", new Date());
  • 16. Exercice 2 Indexation “legacy” // retrieve the index manager IndexManager index = graphDb.index() // get or create index for nodes Index<Node> actors = index.forNodes(“mes_noeuds_cheris”) // or.. index.forRelationshipd(“mes_relations___”) // then add : Node reeves = graphDb.createNode(); reeves.setProperty( "name", "Keanu Reeves" ); actors.add( reeves, "name", reeves.getProperty( "name" ));
  • 17. Exercice 3 BFS DFS
  • 18. Exercice 3
  • 19. Exercice 3 // first the import ! import org.neo4j.kernel.Traversal; // then the real work, with a simple traversal Node startNode = … for( Path position : Traversal.description() .depthFirst() // or not .evaluator(Traversal.toDepth(...)) .relationships(...) .traverse(startNode)) { … }
  • 20. Exercice 4 Pattern matching sur graphe
  • 21. Exercice 4 Pattern matching sur graphe
  • 22. Exercice 4 Pattern matching sur graphe - illustration
  • 23. Exercice 4 Pattern matching sur graphe - illustration
  • 24. Exercice 4 Pattern matching sur graphe - illustration
  • 25. Exercice 4 Pattern matching sur graphe - illustration
  • 26. Exercice 4 Pattern matching sur graphe - syntaxe Cypher ()-->()
  • 27. Exercice 4 Pattern matching sur graphe - syntaxe Cypher (A)-->(B)
  • 28. Exercice 4 Pattern matching sur graphe - syntaxe Cypher (A)-[:LOVES]->(B) LOVES
  • 29. Exercice 4 Pattern matching sur graphe - syntaxe Cypher (C)<--(A)-->(B)-->(C) A-->B-->C,A-->C
  • 30. Exercice 4 Cypher - lecture START <lookup> MATCH <pattern> RETURN <expression> MATCH (stephan:DEVOXXIAN)-[:IS_FRIEND_WITH]->(friend:DEVOXXIAN), (friend)-[:HAS_ATTENDED]->(conf:CONFERENCE) WHERE conf.name = "Devoxx" RETURN stephan, COLLECT(friend)
  • 31. Exercice 4 Cypher - écriture MATCH <expression> CREATE <node/rel> RETURN <expression> MATCH a:Person, b:Person WHERE a.name = 'Someone' AND b.name = 'Anyone' CREATE a-[rel:HATES]->b RETURN rel
  • 32. Conclusion
  • 33. Conclusion Beaucoup d’autres choses ! ● plus de Cypher (avec indexing) ● REST (unmanaged extensions, streaming) ● visualisation ○ auto : http://linkurio.us/, Neoclipse, Gephi ○ custom : d3.js, sigma.js… ● NeoAAS : http://www.graphenedb.com/, Heroku ● divers : backup, batch-import, http://gist.neo4j.org/
  • 34. Conclusion Expérimenter http://console.neo4j.org Discuter https://groups.google.com/forum/#!forum/neo4jfr Partager http://www.meetup.com/graphdb-france/
  • 35. Merci / auf wiedersehen ! @fbiville @ogirardot @LateraIThoughts mailto:contact@lateral-thoughts.com

×