Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:master:bdle:tmes:graphes-neo4j

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
site:enseignement:master:bdle:tmes:graphes-neo4j [23/01/2019 20:03]
camelia
site:enseignement:master:bdle:tmes:graphes-neo4j [24/01/2020 12:12] (Version actuelle)
camelia
Ligne 3: Ligne 3:
   * Télécharger Neo4J à cette adresse [[https://​neo4j.com/​download/​|]]   * Télécharger Neo4J à cette adresse [[https://​neo4j.com/​download/​|]]
   * Installer ​ et lancer Neo4J: [[https://​neo4j.com/​docs/​operations-manual/​current/​installation/​linux/​tarball/​|instructions (Unix console application)]]   * Installer ​ et lancer Neo4J: [[https://​neo4j.com/​docs/​operations-manual/​current/​installation/​linux/​tarball/​|instructions (Unix console application)]]
-  * Ouvrir le navigateur Web et aller à cette adresse: ​ http://​localhost:​7474 ​+  * Créer une base de données graphe ("New Graph" puis "​Create a local graph" ensuite "​Start"​) 
 +  * Une fois la BD lancée cliquer sur "​Manage"​ ensuite "Open Browser"​
   * Voir la description de l'​interface Neo4J à cette [[https://​neo4j.com/​developer/​guide-neo4j-browser/​|adresse]] ​   * Voir la description de l'​interface Neo4J à cette [[https://​neo4j.com/​developer/​guide-neo4j-browser/​|adresse]] ​
   * Voir la [[http://​neo4j.com/​docs/​developer-manual/​current/​cypher/​|documentation]] sur le langage Cypher ​   * Voir la [[http://​neo4j.com/​docs/​developer-manual/​current/​cypher/​|documentation]] sur le langage Cypher ​
 +  * Voir [[site:​enseignement:​master:​bdle:​tmes:​graphes-neo4j-exemple-cours|l'​exemple du cours]]
  
-Le graphe qui sera utilisé pendant le TME représente des personnages de la bande dessinée "​Asterix"​ avec les albums dans lesquels ils apparaissent. Les commandes de création de ce graphe se trouvent dans ce {{ :​site:​enseignement:​master:​bdle:​tmes:​graphe_asterix.tgz |fichier}} à télécharger,​[[https://​neo4j.com/​graphgist/​asterix-les-personnages|source]]+Le graphe qui sera utilisé pendant le TME représente des personnages de la bande dessinée "​Asterix"​ avec les albums dans lesquels ils apparaissent. Les commandes de création de ce graphe se trouvent dans ce {{ :​site:​enseignement:​master:​bdle:​tmes:​graphe_asterix.tgz |fichier}} à télécharger. ​
  
  
Ligne 18: Ligne 20:
  
 Remarque: pour passer à la ligne suivante dans la ligne de commande du browser Neo4J dans le cas d'une requête sur plusieurs lignes utiliser **Shift+Enter**. Pour exécuter une commande sur plusieurs lignes utiliser **Ctrl+Enter**. Remarque: pour passer à la ligne suivante dans la ligne de commande du browser Neo4J dans le cas d'une requête sur plusieurs lignes utiliser **Shift+Enter**. Pour exécuter une commande sur plusieurs lignes utiliser **Ctrl+Enter**.
 +
 +Exemple de données (voir également la [[https://​neo4j.com/​graphgist/​asterix-les-personnages|source]] de ce graphe):
 +  * noeuds <fc #​008080>​personnages</​fc>​ avec des propriétés,​ par exemple:
 +<​code>​
 +"​personnageid":​ 56,
 +  "​nationalite":​ "​Egyptienne",​
 +  "​name":​ "​Cleopatre",​
 +  "​personnagetype":​ "Les autres"​
 +</​code>​
 +  * noeuds <fc #​008080>​album</​fc>,​ sans étiquette, ont des propriétés,​ par exemple:
 +<​code>​
 +   "​name":​ "​Asterix le Gaulois",​
 +  "​albumid":​ 1,
 +  "​premiereedition":​ "​1961",​
 +</​code>​
 +  * noeuds <fc #​008080>​type de personnage</​fc>,​ par exemple:
 +<​code>​
 + "​name":​ "Les Romains",​
 +  "​personnagetypeid":​ 2
 +</​code>​
 +  * noeuds de type<fc #008080> nationalité</​fc>,​ par exemple:
 +<​code>​
 +  "​name":​ "​Egyptien",​
 +  "​nationaliteid":​ 9
 +</​code>​
 +  * arcs dirigés avec une étiquette <fc #​6495ed>​COMPAGNON_AVENTURE</​fc>​ sans propriétés qui relient des noeuds personnages ​
 +  * arcs dirigés avec une étiquette <fc #​6495ed>​APPARAIT_DANS</​fc>​ sans propriétés qui relient des noeuds personnages et albums
 +  *  arcs dirigés avec une étiquette <fc #​6495ed>​PERSONNAGE_TYPE</​fc>​ sans propriétés qui relient des noeuds personnages et des noeuds type de personnage
 +  * arcs dirigés avec une étiquette <fc #​6495ed>​NATIONALITE</​fc>​ sans propriétés qui relient des noeuds personnages et des noeuds nationalité
  
 == Interrogation == == Interrogation ==
Ligne 26: Ligne 57:
  
 Q2)  Ajouter une étiquette :PERSONNAGE aux noeuds qui ont une propriété "​personnageid"​ (utiliser set et exists). Q2)  Ajouter une étiquette :PERSONNAGE aux noeuds qui ont une propriété "​personnageid"​ (utiliser set et exists).
 +
 ''​Réponse:​ Added 11 labels''​ ''​Réponse:​ Added 11 labels''​
  
Ligne 82: Ligne 114:
 "​Lupus"​ "​Lupus"​
 </​code>​ </​code>​
-Q9)Afficher ​deux triangles (on considère le graphe comme étant non-dirigé)+Q9) Calculer les triangles du graphe et afficher seulement ​deux parmi ces triangles (pour chacun de ces deux triangles afficher les noms des noeuds correspondants). On considère le graphe comme étant non-dirigé.
  
 +Réponse:
 +<​code>​
 +"Les Romains"​ "​Caius Obtus"​ "​Jules Cesar"
 +"Caius Obtus"​ "​Jules Cesar"​ "​Les Romains"​
 +</​code>​
  
-Q10)  Afficher les noms des trois couples de personnages qui apparaissent dans le même album, ainsi que l'id de album commun 
  
 +Q10)  Afficher les noms des trois couples de personnages qui apparaissent dans le même album, pour chaque couple de personnages affichez l'id de album commun.
  
-Q11) Afficher pour chaque couple de personnages reliés par un arc (non-dirigé) de type COMPAGNON_AVENTURE ​ +Réponse: 
-le nombre d'​albums qu'ils ont en commun (afficher le triplet contenant les noms des personnages et le nombre d'​albums en commun). ​ +<​code>​ 
-Chaque couple de personnages doit apparaître une seule fois. Trier par nombre total d'​albums décroissant.+"Jules Cesar"​ "​Caius Obtus"​ 4 
 +"​Cleopatre"​ "​Numerobis"​ 34 
 +"Jules Cesar"​ "​Cleopatre"​ 6 
 +</​code>​
  
 +Q11) Afficher le sous-graphe des personnages reliés par des arcs de type COMPAGNON_AVENTURE qui ne contient pas '​Cleopatre'​.
  
-Q12) Modifier la requête précédente afin d'​ajouter à l'​arc ​de type COMPAGNON_AVENTURE ​qui relie les personnages une propriété '​albums'​  +Réponse: 
-dont la valeur est le nombre total d'​albums en commun.+<​code>​ 
 +afficher les propriétés de 9 noeuds et 11 arcs de type  COMPAGNON_AVENTURE. 
 +</​code>​
  
 +Q12) Afficher le sous-graphe contenant comme noeuds source '​Cleopatre',​ 'Jules Cesar' ou 'Caius Obtus' et 
 +comme noeuds destination '​Cesarion (Ptolemee XVI)' ou '​Caligula Alavacomgetepus'​. Les noeuds sont reliés par des arcs 
 +de type COMPAGNON_AVENTURE.
  
-Q13) Afficher pour chaque noeud son nom et son le degré. Ordonner par ordre croissant des degrés. Considérer uniquement les arcs de type  +Réponse: 
-NATIONALITE et PERSONNAGE_TYPE. +<​code> ​ 
-  +│56              │44              │ 
 +├────────────────┼────────────────┤ 
 +│91              │44              │ 
 +├────────────────┼────────────────┤ 
 +│91              │38              │ 
 +└────────────────┴────────────────┘ 
 +</​code>​
  
-Q14Degré total des noeuds+Q13 ​Afficher le sous-graphe contenant les noeuds ​qui se trouvent à une distance 3 de '​Cleopatre'​ ainsi que les arcs de type COMPAGNON_AVENTURE 
 +qui les relient. On considère uniquement les arcs dirigés de type COMPAGNON_AVENTURE.
  
-  - Afficher pour chaque valeur de degré le nombre de noeuds ​avec ce degré. Considérer tous les arcs, ordonner par degré. ​ +Réponse: 
-  - Pour chaque noeud enregistrer son degré somme nouvelle propriété. ​+<​code>​ 
 +10 noeuds ​de type PERSONNAGE et 14 arcs de type COMPAGNON_AVENTURE 
 +</​code>​
  
  
-Q15) Afficher ​pour chaque noeud son nom et son degré sortant. Pour les noeuds sans liens sortants afficher 0. Ordonner par ordre décroissant des degrés. Considérer uniquement les arcs de type  +Q14) Afficher ​le plus court chemin ​et sa longueur entre Jules Cesar et Epidemais.
-NATIONALITE ​et PERSONNAGE_TYPE. +
- +
  
-Q16) Afficher le sous-graphe contenant comme noeuds source '​Cleopatre',​ 'Jules Cesar' ou 'Caius Obtus' et  +Réponse: 
-comme noeuds ​destination '​Cesarion (Ptolemee XVI)' ou '​Caligula Alavacomgetepus'​. Les noeuds sont reliés par des arcs  +<​code>​ 
-de type COMPAGNON_AVENTURE.+noeuds ​PERSONNAGE, 3 arcs de type COMPAGNON_AVENTURE, longueur de chemin : 2 
 +</​code>​
  
 +Q15) Afficher le plus long chemin de type COMPAGNON_AVENTURE et sa longueur entre Jules Cesar et Brutus (graphe non-dirigé).
  
-Q17) Afficher le sous-graphe des personnages reliés par des arcs de type COMPAGNON_AVENTURE ​qui ne contient pas '​Cleopatre'​:+Réponse: 
 +<​code>​ 
 +5 noeuds PERSONNAGE, 7 arcs de type COMPAGNON_AVENTURE, longueur de chemin ​
 +</​code>​
  
  
-Q18 Afficher ​le sous-graphe contenant ​les noeuds qui se trouvent à une distance 3 de '​Cleopatre'​ ainsi que les arcs de type COMPAGNON_AVENTURE +Q16) Afficher les noeuds qui ont le degré le plus élevé. Affichez pour chacun ​de ces noeuds son nom et son degréPour calculer le degré considérer ​uniquement les arcs de type NATIONALITE ou PERSONNAGE_TYPE.
-qui les relientOn considère ​uniquement les arcs dirigés ​de type COMPAGNON_AVENTURE.+
  
 +Réponse:
 +<​code>​
 +"Les Romains"​ 6
 +"​Romain"​ 6
 +"Les autres"​ 4
 +</​code> ​
  
-Q19) Afficher le plus court chemin et sa longueur entre Jules Cesar et Epidemais. 
  
 +Q17) Afficher pour chaque couple de personnages reliés par un arc (non-dirigé) de type COMPAGNON_AVENTURE ​
 +le nombre d'​albums qu'ils ont en commun (afficher le triplet contenant les noms des personnages et le nombre d'​albums en commun). Chaque couple de personnages doit apparaître une seule fois. Trier par nombre total d'​albums décroissant.
 +Réponse:
 +<​code>​
 +"​Cleopatre"​ "​Jules Cesar"​ 3
 +"​Cleopatre"​ "​Numerobis"​ 2
 +"​Cesarion (Ptolemee XVI)"​ "​Cleopatre"​ 1
 +"Caius Obtus"​ "​Jules Cesar"​ 1
 +"​Caligula Alavacomgetepus"​ "​Jules Cesar"​ 1
 +</​code>​
 +
 +
 +Q18) Modifier la requête précédente afin d'​ajouter à l'arc de type COMPAGNON_AVENTURE qui relie les personnages retournés une propriété '​albums' ​
 +dont la valeur est le nombre total d'​albums en commun. Retourner les noms des personnages ainsi que la propriété ajoutée (utiliser WITH pour enchaîner les opérations).
 +
 +Réponse:
 +<​code>​
 +"​Cesarion (Ptolemee XVI)"​ "​Cleopatre"​ 1
 +"​Caligula Alavacomgetepus"​ "​Jules Cesar"​ 1
 +"Caius Obtus"​ "​Jules Cesar"​ 1
 +"​Cleopatre"​ "​Jules Cesar"​ 3
 +"​Cleopatre"​ "​Numerobis"​ 2
 +</​code>​
 +
 +
 +Q19) Degré total des noeuds
 +
 +  - Afficher pour chaque valeur de degré le nombre de noeuds avec ce degré. Considérer tous les arcs, ordonner par degré. ​
 +  - Pour chaque noeud enregistrer son degré comme nouvelle propriété. Affichez les 3 premières noeuds avec le degré le plus élevé.
 + 
 +Chacune de ces questions impliquent un enchaînement de deux opérations (utiliser WITH).
 +
 +Réponse:
 +<​code>​
 +1 23
 +2 2
 +3 7
 +4 2
 +5 2
 +6 3
 +9 1
 +10 1
 +31 1
 +</​code>​
 +et
 +<​code>​
 +"Jules Cesar"​ 31
 +"​Cleopatre"​ 10
 +"Caius Obtus"​ 9
 +</​code>​
 +
 +
 +
 +Q20) Afficher pour chaque noeud son nom et son degré sortant. Pour les noeuds sans liens sortants afficher 0. Ordonner par ordre décroissant des degrés. Considérer uniquement les arcs de type 
 +NATIONALITE et PERSONNAGE_TYPE.
  
-Q20) Afficher le plus long chemin de type COMPAGNON_AVENTURE et sa longueur entre Jules Cesar et Brutus (graphe non-dirigé). 
  
  
site/enseignement/master/bdle/tmes/graphes-neo4j.1548270210.txt.gz · Dernière modification: 23/01/2019 20:03 par camelia