Accueil Nos publications Blog Retour sur le Meetup Graph DataBase – Neo4j

Retour sur le Meetup Graph DataBase – Neo4j

Le jeudi 27 septembre dernier a eu lieu le premier Meetup Graph DataBase-Paris . Cette première rencontre, qui a réuni une vingtaine de participants, s’est déroulée dans les locaux de So@t, sur le thème Intégration Neo4j & SpringData dans le cadre d’un graphe social .

Etaient présents pour animer la soirée:
Cédric Fauvet , organisateur de l’événement et représentant Neo en France
Stefan Armbruster , Consultant Neo EMEA
Olivier Girardot et Florent Biville , co-organisateur de la soirée, et associés Lateral-Thoughts

Le but de cette soirée était d’échanger autour de la technologie Neo4j , et d’en avoir une mise en application.

La soirée a commencé par une introduction de Cédric, rappelant plusieurs cas d’utilisations de Neo4j. Puis Stephan nous a fait une présentation générale sur l’éco-système Neo4j.
Pour terminer, Olivier et Florent, nous ont fait une démonstration de l’intégration de Neo4j avec SpringData, via une application Java de réseau social communautaire.

Neo4j en quelques mots

Devant l’explosion du volume de données des dernières années, de nouvelles technologies voient le jour. En plus d’être nombreuses, ces données se trouvent être connectées.
Pour rappel, Neo4j est un système de gestion de base de données orienté graphe, développé en Java, open-source pour la version ‘community’, et en dual-licence pour la version payante qui propose des modules supplémentaires.
Neo4j utilise une structure de property graph, les relations entre les noeuds peuvent être multiples et porter une sémantique différente. Il est donc tout à fait adapté à l’exploitation de gros volumes de données connectées.

Neo4j permet les requêtages suivants:

  •   sélection de noeuds en fonction de critères définis.
  •   parcours de graphes à partir de noeuds.

A noter que Neo4j a son propre langage de requêtage, Cypher, développé par Neo Technology.

Un cas pratique

L’application Java de réseau social communautaire DevInLove développée par Olivier et Florent:

  • Intégration de Neo4j avec SpringData
  • Extraction et écriture de données fortement connectées dans Neo4j avec les langages de requêtes Gremlin et Cypher.
  • Déploiement de DevInLove, l’application de présentation Neo4j, vers CloudFoundry.

Le code de cette application est disponible ici sur Github.

Voici les points remontés par Olivier et Florent suite à leur travail avec Neo4j:

Tout d’abord, le graphe est la structure de données la plus générique qui soit. Leur utilisation permet d’avoir une représentation métier très fidèle. Il est donc tout naturel de s’intéresser à des outils tels que Neo4j.

Côté performances en lecture,  elles sont de complexité linéaire donc très bonne. Beaucoup d’algorithmes pour requêter un graphe sont déjà implémentés (par exemple findShortestPath du langage Cypher).
Côté clustering, Neo4j ne semble pas encore pas prêt. Des évolutions sont attendues en 2013.

Enfin, côté visualisation, Olivier et Florent ont utilisé l’outil Gephi avec son plugin Neo4j. Il est complet et très complexe. Gephi s’intègre très facilement à Neo4j. Il possède plusieurs modes d’affichage et permet de modifier les graphes.

Quelques cas d’utilisations

  •  connections entre différents domaines scientifiques (biologie, chimie, mathématiques…): on peut facilement imaginer que ceci permettrait d’améliorer les partages de connaissances/théories entre ces différents domaines, et d’en faciliter les applications notamment.
  •   cartographie des vols internationaux
  •   détection de schéma de fraude en temps réel.
  •   graphe sociaux, comme LinkedIn, Viadeo…

Conclusion

En conclusion, cette soirée fut très instructive. Ce fut aussi l’occasion de découvrir Neo4j et d’avoir un vrai retour pratique grâce à l’application développée par Olivier et Florent. Enfin, la soirée a permis d’échanger autour de pizzas et bières sur les Graph DataBase de manière générale avec les participants, venus de diverses formations (chercheurs, doctorants, développeurs…).