Files
graph-mesamis/exercice2.md
2025-10-25 09:37:31 +02:00

2.3 KiB

docker compose up -d

Rendez vous ensuite à l'adresse : http://localhost:7474

Réseau routier

Charger les données

Les points

LOAD CSV WITH HEADERS
FROM 'file:///points.csv' AS row
MERGE (p:Point { id: toInteger(row.id) })
SET p.nom = row.nom,
    p.altitude = toInteger(row.altitude),
    p.location = point({
      longitude: toFloat(row.longitude),
      latitude: toFloat(row.latitude)
    });

Les routes entre les points

LOAD CSV WITH HEADERS FROM 'file:///routes.csv' AS row
WITH row
MATCH (a:Point {id: toInteger(row.source)})
WITH a, row
MATCH (b:Point {id: toInteger(row.target)})
MERGE (a)-[r:ROUTE {route_id: toInteger(row.route_id)}]->(b)
SET r.tag = row.tag, r.cout = toFloat(row.cout);

les routes inverses si cout_inverse est différent de -1

LOAD CSV WITH HEADERS FROM 'file:///routes.csv' AS row
WITH row
WHERE toFloat(row.cout_inverse) <> -1
MATCH (a:Point {id: toInteger(row.source)})
WITH a, row
MATCH (b:Point {id: toInteger(row.target)})
MERGE (b)-[r:ROUTE {route_id: toInteger(row.route_id) * 1000}]->(a)
SET r.tag = row.tag, r.cout = toFloat(row.cout_inverse);

Supprimer les points et les routes.

MATCH (p:Point) DETACH DELETE p;

Questions

  1. Quelle est la distance entre le casino et la falaise

  2. Quel est le plus court chemin entre le casino et la falaise

Réseau d'amis

Charger les données

LOAD CSV WITH HEADERS
FROM 'file:///individus.csv' AS row
MERGE (i:Individu { id: toInteger(row.id) })
SET i.prenom = row.prenom,
    i.age = toInteger(row.age),
    i.sexe =  row.sexe,
    i.etudes = toInteger(row.etudes),
    i.richesse = toInteger(row.richesse),
    i.lecture =  toFloat(row.lecture),
    i.musique = toFloat(row.musique),
    i.sport =  toFloat(row.sport);
CREATE CONSTRAINT individu_id IF NOT EXISTS
  FOR (i:Individu)
  REQUIRE i.id IS UNIQUE;
LOAD CSV WITH HEADERS
FROM 'file:///edges.csv' AS row
MATCH (a:Individu {id: toInteger(row.source)})
MATCH (b:Individu {id: toInteger(row.target)})
MERGE (a)-[r:AMI]->(b)
MERGE (b)-[r2:AMI]->(a);

Questions

  1. Combien d'amis a l'id 58 ?

  2. Quels sont les amis de l'id 58 ?

  3. Quels sont les amis des amis de l'id 58

  4. Quelle est la chaine de relation entre l'id 58 et 40 ?

  5. Quels sont les personnes qui ont un niveau d'études à 3 et un niveau de richesse à 0