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:42]
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 les noms des noeuds qui forment deux parmi les triangles du graphe (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: Réponse:
Ligne 100: Ligne 132:
 </​code>​ </​code>​
  
-Q11) Afficher les 3 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.+Q11) Afficher le sous-graphe des personnages reliés par des arcs de type COMPAGNON_AVENTURE qui ne contient pas '​Cleopatre'​. 
 + 
 +Réponse: 
 +<​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. 
 + 
 +Réponse: 
 +<​code>​  
 +│56              │44              │ 
 +├────────────────┼────────────────┤ 
 +│91              │44              │ 
 +├────────────────┼────────────────┤ 
 +│91              │38              │ 
 +└────────────────┴────────────────┘ 
 +</​code>​ 
 + 
 +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. 
 + 
 +Réponse: 
 +<​code>​ 
 +10 noeuds de type PERSONNAGE et 14 arcs de type COMPAGNON_AVENTURE 
 +</​code>​ 
 + 
 + 
 +Q14) Afficher le plus court chemin et sa longueur entre Jules Cesar et Epidemais. 
 + 
 +Réponse: 
 +<​code>​ 
 +3 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é). 
 + 
 +Réponse: 
 +<​code>​ 
 +5 noeuds PERSONNAGE, 7 arcs de type COMPAGNON_AVENTURE,​ longueur de chemin : 7 
 +</​code>​ 
 + 
 + 
 +Q16) Afficher les 3 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.
  
 Réponse: Réponse:
Ligne 110: Ligne 187:
  
  
-Q12) Afficher pour chaque couple de personnages reliés par un arc (non-dirigé) de type COMPAGNON_AVENTURE ​+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. 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: Réponse:
Ligne 122: Ligne 199:
  
  
-Q13) 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' ​+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). 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).
  
Ligne 135: Ligne 212:
  
  
- +Q19) Degré total des noeuds
-  +
- +
-Q14) 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é. ​   - 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é ​somme nouvelle propriété. ​ +  - Pour chaque noeud enregistrer son degré ​comme nouvelle propriété. ​Affichez ​les 3 premières ​noeuds ​avec le degré le plus élevé.
- +
- +
-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  +
-NATIONALITE et PERSONNAGE_TYPE.+
    
 +Chacune de ces questions impliquent un enchaînement de deux opérations (utiliser WITH).
  
-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.+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>​
  
  
-Q17) Afficher le sous-graphe des personnages reliés par des arcs de type COMPAGNON_AVENTURE qui ne contient pas '​Cleopatre':​ 
- 
- 
-Q18)  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. 
- 
- 
-Q19) Afficher le plus court chemin et sa longueur entre Jules Cesar et Epidemais. 
  
 +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.1548272523.txt.gz · Dernière modification: 23/01/2019 20:42 par camelia