Social Networks Neo4j
Un réseau social modélisé en base graphe : comparaison NoSQL, modèle Neo4j, jeu de données synthétique et requêtes Cypher.
Contexte
Projet tutoré du BUT Informatique, « Étude et expérimentation d’un service NoSQL ». Il fallait choisir un service NoSQL adapté à un réseau social, le justifier, puis l’expérimenter sur un jeu de données conçu pour l’occasion.
Équipe et mon rôle
Projet de groupe, 3 personnes.
J’ai été responsable de l’analyse comparative des solutions NoSQL et j’ai co-conçu le modèle de données.
Démarche
- Étude préalable : comparaison de Neo4j, MongoDB et SPARQL, puis choix de Neo4j, car la valeur du réseau social tient à ses relations.
- Modèle : graphe de propriétés avec contraintes d’unicité et index, couvrant utilisateurs, publications, interactions, groupes et signalements.
- Génération : script Python reproductible, avec une graine fixe, des communautés thématiques et des comptes influenceurs pour obtenir un graphe réaliste.
- Expérimentation : import sur Neo4j Aura, puis scénarios Cypher d’insertion, de requêtes, d’agrégation, de mise à jour et de suppression, dont des recommandations par chemins de longueur 2 à 3.
Visuels
Chiffres et faits
- et 10 types de relations alimentés
- 7 labels
- répartis en 5 communautés
- 3 000 utilisateurs
- et 8 000 commentaires, sur 1 an simulé
- 5 000 publications
- sur 109 067 relations au total
- 61 887 relations FOLLOWS
- comparées avant le choix, Neo4j, MongoDB et SPARQL
- 3 solutions
Ce que j’en retiens
Les difficultés et les apprentissages sont venus du management du projet et de l’initialisation du cahier des charges.





