Neo4j : Exploitation de graphe

Syntaxe du langage Cypher

Cypher

Cypher est un langage déclaratif permettant de requêter et mettre à jour le graphe. Inspiré du SQL, on y retrouve beaucoup de concepts familiers comme les clauses WHERE, ORDER BY, SKYP, LIMIT...

Son objectif est de permettre à l'utilisateur de définir des motifs (pattern), qui seront par la suite recherchés dans tout le graphe. Ainsi, si je veux les amis de mes amis, il faut décrire le motif suivant :

Ce qui se traduit en Cypher par :

1
(moi) -[:AMI]-> (mesAmis) -[:AMI]-> (amisDeMesAmis)

C'est simple non ?

Les nœuds

Les nœuds sont représentés avec des parenthèses, ce qui ressemble à des cercles : ()

Si vous avez besoin d'identifier le nœud dans votre requête (dans une clause WHERE par exemple), il suffit de lui donner un nom : (Noeud_1)

Pour spécifier un label, il suffit de l'ajouter comme ceci : (monNoeud:monLabel)

Voici quelques exemples :

  • () : n'importe quel nœud ;

  • (n:Personne) : un nœud identifié dans la variable n avec le label Personne ;

  • (n:Personne:Acteur) : un nœud identifié dans la variable n avec le label Personne et Acteur.

Les relations

Les relations sont représentées par deux tirets avec un '>', ce qui ressemble à une flèche : -->

Si vous avez besoin d'identifier la relation dans votre requête, vous pouvez lui donner un nom comme ceci : -[maRelation]->

Pour spécifier le type de la relation, il suffit de l'ajouter comme ceci : -[maRelation:MON_TYPE]->

Voici quelques exemples :

  • (a)--(b) : n'importe quelle relation entre le nœud a et b (peu importe la direction) ;

  • (a)-[:AMI]->(b) : relation de type AMI depuis le nœud a vers le nœud b ;

  • (a)-[r:AMI|CONNAIT]->(b) : relation identifiée dans la variable r de type AMI ou CONNAIT depuis le nœud a vers le nœud b.

Passons maintenant à la pratique !

Sources :

Les exemples développés sur ce blog étant parfaits pour débuter j'ai repris exactement les mêmes :

http://logisima.developpez.com/tutoriel/nosql/neo4j/introduction-neo4j/#LI-D-1

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Clément Henry, 2015 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)