Bases de Données Géographiques
- Démonstration automatique de Cigales -
CIGALES: Cartographical Interface Generating an Adapted Language
for Extensible Systems
Cette démonstration automatique a pour objectif d'illustrer
les options qui ont été retenues dans la définition du langage
visuel d'interrogation de bases de données spatiales, Cigales.
Ce langage utilise une philosophie de type Query-By-Example. L'utilisateur
dessine un exemple de relations spatiales qui doivent être vérifiées par
les données appartenant au résultat de la requête.
L'éditeur graphique de requêtes
Une partie spéciale de cette présentation est dédiée à la description
de l'
éditeur.
La construction d'une requête graphique
Afin d'expliquer la gestion de l'éditeur Cigales, nous présentons
le principe de construction d'une requête pas à pas, impliquant les
principaux composants. Afin de ne pas surcharger la lecture et de se
concentrer sur les points importants, seules la zone de travail et la zone de requête sont
représentées sur les figures.
Un manuel de démonstration est
accessible en complément des exemples présentés ici
EXEMPLE DE REQUETES
Nous allons voir maintenant à l'aide de quelques exemples
la construction de requêtes élémentaires et le pouvoir d'expression du langage en
faisant référence à un langage de type SQL étendu à des opérateurs spatiaux.
Requête 1 :
But: la sélection sur un attribut (sélection relationnelle - Clause Where SQL)
Villes de plus de 100000 habitants
- cliquer sur métaphore zone
- cliquer sur ville (cf. figure 1.1)
- cliquer sur point d'interrogation de population
- cliquer sur > (cf. figure 1.2)
- taper 100000 (cf. figure 1.3)
- cliquer sur ok (cf. figure 1.4)
- cliquer sur Valider (cf. figure 1.5)
- cliquer sur Valider
- cliquer sur Annuler
Requête 2 :
But: Lien de valeur entre deux attributs (Jointure relationnelle)
Villes de même activité économique
- cliquer sur métaphore zone
- cliquer sur ville
- cliquer sur point d'interrogation de activité économique
- cliquer sur = (cf. figure 2.1)
- cliquer en dessous d'une des variables (cf. figure 2.2)
- cliquer sur ok
- cliquer sur Valider (cf. figure 2.3)
- cliquer sur métaphore zone
- cliquer sur ville
- cliquer sur point d'interrogation de activité économique
- cliquer sur = (cf. figure 2.4)
- cliquer en dessous de la variable en noire (cf. figure
2.5)
- cliquer sur ok (cf. figure 2.6)
- cliquer sur Valider
- cliquer sur Valider
- cliquer sur Annuler
Requête 3 :
But: Gestion du regroupement selon une valeur d'attribut sous condition
(group by + having de SQL)
Activités économiques avec plus de 100000 personnes
- cliquer sur métaphore zone
- cliquer sur ville
- cliquer sur l'icone de activité économique
(cf. figure 3.1)
- cliquer sur le point d'interrogation de la fenêtre de droite devant population
- cliquer sur sum (cf. figure 3.2)
- cliquer sur le point d'interrogation de la fenêtre de droite après population
- cliquer sur >= (cf. figure 3.3)
- taper 100000 (cf. figure 3.4)
- cliquer sur ok
- cliquer sur Valider
- cliquer sur Valider
- cliquer sur Annuler
Requête 4 :
But: Fonctions sur l'ADT
Régions avec enclaves
- cliquer sur métaphore zone
- cliquer sur région (cf. figure 4.1)
- cliquer sur spatial_representation (cf. figure 4.2)
- cliquer sur le point d'interrogation de nb_trous
- cliquer sur >
- taper 0 (cf. figure 4.3)
- cliquer sur ok
- cliquer sur Valider
- cliquer sur Valider
- cliquer sur Annuler
Requête 5 :
But: Jointure sur l'attribut représentation spatiale (Jointure sur ADT)
Régions correspondant à une zone d' élection
- cliquer sur métaphore zone
- cliquer sur région
- cliquer sur point d'interrogation de représentation spatiale
- cliquer sur =
- cliquer en dessous d'une des variables (cf. figure 5.1)
- cliquer sur ok
- cliquer sur Valider (cf. figure 5.2)
- cliquer sur métaphore zone
- cliquer sur zone électorale
- cliquer sur point d'interrogation de représentation spatiale
- cliquer sur =
- cliquer en dessous de la variable en noire (cf. figure
5.3)
- cliquer sur ok
- cliquer sur Valider (cf. figure 5.4)
- cliquer sur Valider
- cliquer sur Annuler
Requête 6 :
But: montrer un opérateur spatial
Forêts qui intersectent l'Ile de France
- cliquer sur métaphore zone
- cliquer sur forêt
- cliquer sur ok (cf. figure 6.1)
- cliquer sur métaphore zone
- cliquer sur Région
- cliquer sur point d'interrogation de Nom
- cliquer sur =
- taper Ile de France
- cliquer sur ok (cf. figure 6.2)
- cliquer sur intersection (cf. figure 6.3)
- cliquer sur ok
- cliquer sur Valider (cf. figure 6.4)
- cliquer sur Annuler
Requête 7 :
But: montrer l'union sélectée dans la zone de travail
Routes aboutissant à la RN13
- cliquer sur la métaphore ligne
- cliquer sur transport
- cliquer sur ok (cf. figure 7.1)
- cliquer sur la métaphore ligne
- cliquer sur transport
- cliquer sur point d'interrogation de Nom
- cliquer sur =
- taper RN13
- cliquer sur ok (cf. figure 7.2)
- cliquer sur Global (pour obtenir Partiel)
- cliquer sur Begin Selection (cf. figure 7.3)
- cliquer sur la fin de la première ligne sélectionnée
(cf. figure 7.4)
- cliquer sur End Selection (cf. figure 7.5)
- cliquer sur l'opérateur d'intersection
- cliquer sur ok (cf. figure 7.6)
- cliquer sur Valider
- cliquer sur Annuler
Requête 8 :
But: montrer que deux requêtes de même sémantique ont
forcément une même représentation visuelle
Routes ayant une partie urbaine inférieure à 1 km et traversant une zone polluée
sur moins d'un km
- cliquer sur la métaphore ligne
- cliquer sur transport
- cliquer sur ok
- cliquer sur métaphore zone
- cliquer sur ville
- cliquer sur ok (cf. figure 8.1)
- cliquer sur l'opérateur intersection
(cf. figure 8.2)
- cliquer sur le point d'interrogation de longueur
- cliquer sur <
- taper 1 (cf. figure 8.3)
- cliquer sur ok
- cliquer sur Valider (cf. figure 8.4)
- cliquer sur Global/Partial (se mettre en Global)
- cliquer sur Debut Selection
- cliquer sur la ligne présente en zone requête
- cliquer sur Fin Selection (cf. figure 8.5)
- cliquer sur métaphore zone
- cliquer sur zone_polluée
- cliquer sur ok (cf. figure 8.6)
- cliquer sur l'opérateur intersection
- cliquer sur le point d'interrogation de longueur
- cliquer sur <
- taper 1
- cliquer sur ok (cf. figure 8.7)
- cliquer sur Valider (cf. figure 8.8)
- cliquer sur Valider
- cliquer sur Annuler
Gestion de requêtes sur les chemins
Requête 9 :
But: opérateur de liaison sans contrainte spécifique
Chemins de Paris a Nice
- cliquer sur métaphore zone
- cliquer sur ville
- cliquer sur le point d'interrogation de name
- cliquer sur =
- taper Paris
- cliquer sur ok (cf. figure 9.1)
- cliquer sur métaphore zone
- cliquer sur ville
- cliquer sur le point d'interrogation de name
- cliquer sur =
- taper Nice
- cliquer sur ok (cf. figure 9.2)
- cliquer sur l'opérateur de liaison (cf. figure
9.3)
- cliquer sur indifferent (cf. figure 9.4)
- cliquer sur ok (cf. figure 9.5)
- cliquer sur Valider (cf. figure 9.6)
- cliquer sur Valider
- cliquer sur Annuler
Requête 10 :
But: opérateur d'inclusion d'une ville dans un chemin
Chemins de Paris à Nice en passant par Lyon
- cliquer sur métaphore zone
- cliquer sur ville
- cliquer sur le point d'interrogation de Nom
- cliquer sur =
- taper Paris
- cliquer sur ok
- cliquer sur métaphore zone
- cliquer sur ville
- cliquer sur le point d'interrogation de Nom
- cliquer sur =
- taper Nice
- cliquer sur ok
- cliquer sur l'opérateur de liaison
(cf. figure 10.1)
- cliquer sur Avec etapes (cf. figure 10.2)
- cliquer sur le noeud (en bas à droite dans la partie gauche de
l'écran) (cf. figure 10.3)
- cliquer sur ? en face de Nom
- cliquer sur =
- taper Lyon (cf. figure 10.4)
- cliquer sur ok (cf. figure 10.5)
- cliquer sur Valider (en haut de la partie gauche de
l'écran) (cf. figure 10.6)
- cliquer sur ok (en bas à gauche) (cf. figure
10.8)
- cliquer sur Valider
- cliquer sur Annuler
Requête 11 :
But: exprimer des conditions sur les arcs
Vols AF directs de Paris à Nice décollant entre 10H00 du matin et
3H00 de l'après-midi et coûtant moins de 500 Francs
- cliquer sur la métaphore zone
- cliquer sur ville
- cliquer sur ? de Nom
- cliquer sur =
- taper Paris
- cliquer sur ok
- cliquer sur la métaphore zone
- cliquer sur ville
- cliquer sur ? de Nom
- cliquer sur =
- taper Nice
- cliquer sur ok
- cliquer sur l'opérateur de liaison (cf.
figure 11.1)
- cliquer sur Sans etape (cf. figure 11.2)
- cliquer sur l'arc
- cliquer sur ? en face de Type de Transport
- cliquer sur =
- taper AF
- cliquer sur ? en face de Heure depart
- cliquer sur >
- taper 10 (cf. figure 11.3)
- cliquer sur ? après and
- cliquer sur <
- taper 15
- cliquer sur ? en face de Prix
- cliquer sur <
- taper 500 (cf. figure 11.4)
- cliquer sur ok
- cliquer sur Valider (cf. figure 11.5)
- cliquer sur Valider
- cliquer sur Annuler
Requête 12 :
But: conditions génériques sur les arcs (en considérant i et i+1)
Chemins de Paris à Nice empruntant la compagnie AF tels que
le coût de transport soit inférieur à 800 Francs, et que
le temps total d'interconnexion ne dépasse pas 2 heures
- cliquer sur la métaphore zone
- cliquer sur ville
- cliquer sur ? de Nom
- cliquer sur =
- taper Paris
- cliquer sur ok
- cliquer sur la métaphore zone
- cliquer sur ville
- cliquer sur ? de Nom
- cliquer sur =
- taper Nice
- cliquer sur ok
- cliquer sur l'opérateur de liaison (cf.
figure 12.1)
- cliquer sur Indifferent ou Avec etapes (cf.
figure 12.2)
- descendre l'ascenceur de droite d'un clic (pour se mettre sous la rubrique
Transport)
- cliquer sur ? devant Type de transport
- cliquer sur Chaque
- cliquer sur ? après Type de transport
- cliquer sur =
- taper AF (cf. figure 12.3)
- toujours sous la rubrique transport cliquer sur le ? devant l'icone de Prix
- cliquer sur somme
- cliquer sur le ? après Prix
- cliquer sur <
- taper 800 (cf. figure 12.4)
- sur le schéma représentant un graphe générique
(avec arc d'arrivée, arc de sortie d'un noeud)
- cliquer sur i+1
- cliquer sur Heure_depart (cf. figure 12.5)
- cliquer sur i
- cliquer sur Heure_arrivee (cf. figure 12.6)
- cliquer sur le ? de gauche
- cliquer sur Somme
- cliquer sur le ? du centre
- cliquer sur -
- cliquer sur le ? de droit
- cliquer sur <
- taper 2 (cf. figure 12.7)
- cliquer sur ok (à gauche) (cf. figure 12.8)
- cliquer sur Valider
- cliquer sur Valider
- cliquer sur Annuler
Requête 13 :
But: conditions sur les arcs et sur les noeuds
Chemins de Paris à Nice tels que le coût total (hôtel+ transport)
ne dépasse pas 1000 Francs
- cliquer sur la métaphore zone
- cliquer sur ville
- cliquer sur ? de Nom
- cliquer sur =
- taper Paris
- cliquer sur ok
- cliquer sur la métaphore zone
- cliquer sur ville
- cliquer sur ? de Nom
- cliquer sur =
- taper Nice
- cliquer sur ok
- cliquer sur l'opérateur de liaison (cf.
figure 13.1)
- cliquer sur Avec etapes (cf.
figure 13.2)
- descendre complètement l'ascenceur de droite
(pour se mettre sous la rubrique Ville et Transport et visualiser le graphe
générique où sont représentés les arcs et les sommets
- cliquer sur i au dessus de l'arc
- cliquer sur Prix (cf. figure 13.3)
- cliquer sur i au dessus du noeud
- cliquer sur coût_hôtel (cf. figure 13.4)
- cliquer sur le ? de gauche
- cliquer sur Somme
- cliquer sur le ? du centre
- cliquer sur +
- cliquer sur le ? de droite
- cliquer sur <
- taper 1000 (cf. figure 13.5)
- cliquer sur ok (à gauche) (cf. figure 13.6)
- cliquer sur Valider
- cliquer sur Valider
- cliquer sur Annuler
Requête 14 :
But: conditions sur les arcs et les sommets
Chemins de Paris à Nice en empruntant la compagnie AF de Paris, puis
empruntant la compagnie AI ou AF tels que le coût de l'hotel soit
inférieur à 200 F à chaque étape et arrivant
à Nice avec la compagnie AI
- cliquer sur la métaphore zone
- cliquer sur ville
- cliquer sur ? de Nom
- cliquer sur =
- taper Paris
- cliquer sur ok
- cliquer sur la métaphore zone
- cliquer sur ville
- cliquer sur ? de Nom
- cliquer sur =
- taper Nice
- cliquer sur ok
- cliquer sur l'opérateur de liaison
- cliquer sur Avec etapes (cf.
figure 14.1)
- cliquer sur l'arc (en bas à droite de la fenêtre de gauche)
(cf. figure 14.2)
- cliquer sur ? en face de Transport Type
- cliquer sur =
- taper AF (cf. figure 14.3)
- cliquer sur OK (cf. figure 14.4)
- cliquer sur Valider (en haut de la fenêtre de gauche)
(cf. figure 14.5)
- cliquer sur exactement une fois (cf. figure 14.6)
- cliquer sur l'arc (en bas à droite de la fenêtre de gauche)
- cliquer sur ? en face de Transport Type
- cliquer sur =
- taper AF (cf. figure 14.7)
- activer l'ascensceur horizontal
- cliquer sur ? en face de Transport Type
- cliquer sur =
- taper AI (cf. figure 14.8)
- cliquer sur OK (cf. figure 14.9)
- cliquer sur le noeud
- cliquer sur le ? en face de Hôtel
- cliquer sur <
- taper 200 (cf. figure 14.10)
- cliquer sur OK (cf. figure 14.11)
- cliquer sur Valider
- cliquer sur Au moins une fois (cf. figure 14.12)
- cliquer sur l'arc
- cliquer sur ? en face de Transport Type
- cliquer sur =
- taper AI (cf. figure 14.13)
- cliquer sur OK (cf. figure 14.14)
- cliquer sur Valider
- cliquer sur exactement une fois (cf. figure 14.15)
- cliquer sur OK cf. figure 14.16)
- cliquer sur Valider
- cliquer sur Valider
Gestion de requêtes complexes
Requête 15
But: sous-requêtes unifiables en une requête complexe nécessitant
une élongation
On recherche des informations vérifiant les propriétés spatiales suivantes :
Une route traversant une région de plus de 200 hectares dont
une des activités économiques est le tourisme et passant près
d'une ville ayant une partie commune avec une forêt adjacente à un lac.
- cliquer sur la métaphore representant une zone
- cliquer sur ville
- cliquer sur ok
- cliquer sur la métaphore zone
- cliquer sur forêt
- cliquer sur ok
- cliquer sur intersection
- cliquer sur ok
- cliquer sur Valider (cf. figure 15.1)
- cliquer sur la métaphore representant une zone
- cliquer sur lac
- cliquer sur ok
- cliquer sur Global/Partiel (mettre en Global)
- cliquer sur Debut Selection
- sélectionner la forêt
- cliquer sur Fin Selection
- cliquer sur adjacence
- cliquer sur ok (cf. figure 15.2)
- cliquer sur Valider (cf. figure 15.3)
--- premier bloc défini ---
- cliquer sur la métaphore zone
- cliquer sur Région
- cliquer sur" Spatial representation"
- cliquer sur ? en face de Surface
- cliquer sur >
- taper 200
- cliquer sur ? en face de Activite Economique
- cliquer sur Possede
- taper Tourisme (cf. figure 15.4)
- cliquer sur ok
- cliquer sur l'icone région (cf. figure 15.5)
- cliquer sur ok
- cliquer sur Valider (cf. figure 15.6)
- cliquer sur la métaphore ligne
- cliquer sur Transport
- cliquer sur ok
- cliquer sur Valider (cf. figure 15.7)
----- tous les objets sont en zone requête ----
- cliquer sur Debut Selection
- sélectionner la route
- cliquer sur Fin Selection
- cliquer sur Debut Selection
- sélectionner la ville
- cliquer sur Fin Selection
- cliquer sur adjacence
- cliquer sur ok
- cliquer sur Valider (cf. figure 15.8)
--- fin 1ère réunification de sous-requêtes ----
- cliquer sur Debut Selection
- sélectionner la route
- cliquer sur Fin Selection
- cliquer sur Debut Selection
- sélectionner la region
- cliquer sur Fin Selection
- cliquer sur l'opérateur d'intersection
- cliquer sur ok (cf. figure 15.9)
- cliquer sur Valider
- cliquer sur Valider
Nous présentons ici les principes adoptés pour
la construction de requêtes complexes.
Considerons la requête complexe X1 :
X1 : "Quels itinéraires mènent de Paris à Nice, avec la
restriction qu'ils longent un lac puis traversent une ville de plus de 100 000
habitants dans sa partie non forestière ?"
- Pour construire la première étape de la requête
(les routes allant de Paris a Nice), l'utilisateur clique tout d'abord sur le bouton
zone. Cette action va entraîner l'accès au modèle de données
grâce auquel l'utilisateur va
spécifier qu'il s'agit d'une ville de nom "Paris". Une ellipse apparaît
alors dans la zone de travail, surmontée du nom "Paris" (cf. figure 1). L'utilisateur
répète ensuite cette action pour spécifier la ville de Nice (cf.
figure 2).
Ensuite, l'utilisateur doit appliquer l'opérateur de chemin
entre ces deux zones. Pour cela, il lui suffit de cliquer sur le bouton chemin. La
sous-requête
est alors construite dans la zone de travail. La validation de cette sous-requête
entraine alors le placement de celle-ci en zone requête, et l'effacement de la
zone de travail (cf. figure 3).
- L'utilisateur peut alors commencer à définir
la deuxième
sous-requête : l'intersection entre une ville de plus de 100 000 habitants et
une forêt. Il clique donc sur le bouton zone, et pércise qu'il s'agit
d'une ville dont la population est supérieure a 100 000 habitants. Une ellipse,
avec une icône représentant une ville, apparaît alors dans la zone
de travail (cf. figure 4). Un second choix du bouton zone,
en spécifiant cette fois qu'il
s'agit d'une forêt permet de créer la deuxieme zone. Enfin, l'utilisateur
choisit l'opérateur d'intersection. Les deux zones et leur intersection sont
répresentées dans la zone de travail (cf.
figure 5).
- La validation de cette sous-rêquete permet de la placer en zone
requête, (cf. figure 6) puis de débuter
la troisieme étape: les
routes croisant une ville dans sa partie non forestiere. Les éléments
de cette sous-requête figurent déja en zone requête. Il faut
donc les sélectionner afin de les amener en zone de travail. Pour cela,
l'utilisateur choisit le bouton début de sélection, puis clique sur
la ligne représentant la route et enfin sur le bouton fin de sélection.
La route apparaît alors en zone de travail
(cf. figure 7). Pour sélectionner
la partie non forestiere de la ville, l'utilisateur clique de nouveau
sur le bouton début de sélection, sur le bouton global afin
de le faire basculer en mode partiel (on ne veut pas la totalité de la ville,
mais seulement une partie), sur l'ellipse représentant la ville
(dans la partie n'étant pas en intersection avec la forêt), puis sur
le bouton fin de sélection. Les deux objets sont alors en zone de travail.
Il suffit maintenant d'appliquer l'opérateur d'intersection en cliquant
sur le bouton intersection (cf. figure 8),
puis de valider cette sous-requête (cf. figure 9).
- Enfin, la dernière étape exprime les routes bordées par un
lac. La route étant déja en zone requête, il faut l'amener en zone
de travail en cliquant sur le bouton partiel afin de le remettre en position global,
puis sur le bouton début de sélection, sur la route et enfin sur
le bouton fin de sélection. L'utilisateur crée ensuite une nouvelle
zone en choisissant le bouton zone et précise à travers le modèle
de données qu'il s'agit d'un lac. Il clique ensuite sur le bouton
représentant l'opérateur d'adjacence, et valide sa sous-requête.
La zone requete contient alors la requête graphique suivante.
- L'utilisateur utilise alors le bouton Valider pour provoquer la
traduction de la requête en une expression formelle interne, qui va être
prise en charge par les modules d'analyse et de traduction.
Pour tout renseignement, contacter cigales@int-evry.fr