´ UNIVERSITE LIBRE DE BRUXELLES Facult´ des Sciences e D´partement d’Informatique e

Visualisation de requˆtes SOLAP : e Une approche services Web

M´moire pr´sent´ en vue de l’obtention e e e du grade de Licenci´ en Informatique e

Gr´gory BABUSIAUX e Ann´e acad´mique 2006–2007 e e

Remerciements
Je tiens tout d’abord ` remercier mon directeur de m´moire, Monsieur a e Esteban Zim´nyi, pour sa disponibilit´ et les nombreux conseils prodigu´s. a e e Je tiens ensuite ` saluer les membres du jury, les Professeurs Gianluca a Bontempi et Jo¨l Goossens, pour le temps qu’ils passeront ` lire ce travail. e a Merci ` G´raldine, pour ses nombreuses relectures et corrections. Plus a e encore, merci pour ton soutien, ton optimisme et ton r´confort. e Enfin, j’adresse mes plus vifs remerciements ` mes parents pour leur rea lectures, mais surtout pour leur support, ind´fectible, lors de toutes ces ann´es. e e Les parents ne peuvent donner que deux choses ` leurs enfants : des racines et a des ailes. Vous avez excell´. Merci. e

ii

Table des mati`res e
1 Introduction 2 Les entrepˆts de donn´es o e 2.1 2.2 2.3 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L’informatique d´cisionnelle . . . . . . . . . . . . . . . . . . . . . . e 2.2.1 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.4 L’informatique d´cisionnelle spatiale . . . . . . . . . . . . . e Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pr´sentation . . . . . . . . . . . . . . . . . . . . . . . . . . . e D´finition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . Agr´gation des donn´es . . . . . . . . . . . . . . . . . . . . e e Op´rations sur les entrepˆts de donn´es . . . . . . . . . . e o e Les entrepˆts de donn´es . . . . . . . . . . . . . . . . . . . . . . . . o e 1 3 3 3 5 6 6 7 8 9 10 11 14 15 15 15 15 16 18 18 19 19 19 21

Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Syst`mes SOLAP e 3.1 3.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.3 3.3.1 3.3.2 D´finition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . Mod´lisation des donn´es . . . . . . . . . . . . . . . . . . . e e Outils GIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . G´n`se des syst`mes OLAP . . . . . . . . . . . . . . . . . . e e e Types d’OLAP . . . . . . . . . . . . . . . . . . . . . . . . . iii

OLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 4. . . . . . . .5 Outils OLAP . . . . . . . . . . . . . .4 3. . . .1 5. . . . .3.7. . . . . . . . . . . . . . . . . . . . . . 6 Les outils utilis´s e 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le GML Viewer . . . . . . . . . . . . . . . . .2 4. . . . . . Le document XML . . . . . 4 Le m´ta-langage XML e 4. . . . . . . . .7 Qualit´s . . . . . . . . . . . . . . . . . . . .3 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusions . . . . . . . . . . . . . . . . . . . . . . iv 23 23 23 24 24 25 27 27 27 28 29 29 31 32 33 35 37 38 39 39 39 41 44 45 45 45 46 46 47 47 47 47 SOLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 5. . . . . . . . . . . . . . . . . . . . . . . . . .2 5. . . . Conclusions . .6 Introduction . . .1 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Evolutions . . . . . . . . . . .5 4. . . . . . . . . . . . . . . . . . . . . . . . . Le mapping . . . . . . . . . .8 4. . . . . . . . . . . . . . e Vision . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . .2 3.1 6. . . . . .1 Le DTD . . .3 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Le langage GML 5. . . . . . . . . . . . . . . . . . . . . . . . . .5 5. e D´finition . . . . Pr´sentation . .6 Introduction . . . . . . . . . . . . . . . .7 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 5. . . . . . . . . .1 Pr´sentation . . . . . . . . . .` TABLE DES MATIERES 3. . 5. . . . . . . . . . . . . . . . . .4 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Motivations . . Historique . . . . . . . . . . . .4. . . . . . . .4 5. . . . . Critiques du langage . . . . . . . e Description . . . . . . . . . . . . . . . . . . XSLT . . . . . . . . . . . . . .6. . 6. . . . Pr´sentation . .2. . .2 Introduction . . . Validation d’un document XML . . e D´fauts . . . . . . . . . . . . . . . . . . . . . .4.1 4. . . . . . . . .3 4. . . . . . . . . . . . . . Le langage XML Schema . . . Les analyseurs XML . . . . . . . . . . . . . . . . .6. . . . . . . e . . . . . . . . . . . . . . . .2 5. . . . . . . . . . . 4. . Principes de base . . . e Conclusions . . . . . . .6. . . . . . . . . . . . . . . . . .6. .

. .4. . . . . . . . . . . . . . e Bibliographie A Liste des acronymes rencontr´s e B Exemples du chapitre 4 B. . . . e e e Cr´ation d’un mod`le propre . . . . . .2 XML Schema . . . . . .` TABLE DES MATIERES 6. . .2 7. . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Extraction de donn´es en XML . . . . e e Fichier de donn´es XML . . . . . . . . . . . . 7 Mise en oeuvre 7. . . . . . . . . .1 7. . . . . . . . . . . D´veloppements futurs . . . . . . . . .7 7. . . . .3 7. . . . . . . . . . . . .4 Introduction . . . . . . . . . . . . . . . . . . . . Choix en faveur de GML Viewer . . . . . . . . . . .4. . . . . . . . .1 7. . . . . . . . . . . . Pr´sentation du travail effectu´ . . e Oracle 10g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Conception d’ensemble . . . . Fichiers principaux . . . . . . . . . . . . . . .3 6. . . . . Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . B. . . e Pr´paration du GML Viewer . . . . . . . . . . . . . . . . . . . . . . . Conclusions . . . . e Export en XML dans Oracle . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . .1 8. . . e e D´finition des couches en GML . . . . . . . . . . .3. Limites . . . . . . . . . . .2. . . . . . .6 7. . . . . . . . . . .1 6. . . . . . . . e G´n´ration du fichier de donn´es XML . . . . .3. . . . . . . . . . . . .2 7. . . . . . . .3 6. . . . .2 6. . . . . . . . . . . . . . Oracle Spatial . . . . . . . . . . . . . . . . . . . .5. . . .2 Conclusions . . . . . . . . . . . .1 Les DTD’s . . . . .5. .3 6. . . . . . . . . . e Transformation du fichier source en HTML . . . . . . . . . . . . . v 50 51 62 64 64 65 66 67 68 68 68 69 70 70 72 73 73 74 75 80 84 85 86 86 87 89 92 94 94 95 La suite Oracle . . . . . . . 8 Conclusions et d´veloppements futurs e 8. . . . . . . . . . . . . . . . . . . . . . . . .2 6. . . .5 7. . . . . . . . . . . . . . . .4 6. . . .1 7. . . . .2 7. . . . . . . . . . .8 7. . . . . . Pr´sentation d’Oracle . . . . . . . . Interaction avec le GML Viewer . . . . . . .2. . . . . 7. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . .3 Feuille de style XSLT . . 103 e e ee C. . . . . . . 101 e C. . C Mise en oeuvre C. . . . . . .1 Feuille de style XSLT . . . . . . . . . . . . . . . . . . . .6 Fichier config. . . . . . . . . . . . .3 Fichier GML de description des fronti`res. .` TABLE DES MATIERES B. .xml . . . . . . . . .5 Feuille de style CSS . . . . . . . 100 C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Fonctions javascript . vi 97 98 98 C. . . . . . . . . . . . . . . . . . . . . . . 105 . 104 C. . . . . . .4 Fichier de donn´es g´n´r´ . . . . . . . .

e 1 . Ce type de solutions est e e e 1 ”. nous nous contenterons d’afficher les donn´es ` cˆt´ e a oe d’une carte et nous ´tablirons un lien entre carte et donn´es. Ces syst`mes revˆtent aujourd’hui une importance e a e e e particuli`re dans le monde informatique. Cette solution devra comprendre une visualisae tion des donn´es rehauss´e d’une carte g´ographique. qui sont une technique e o e de stockage de donn´es. Il s’agira d’une solution “simple”. e e a e Dans le cadre de ce travail. Cette r´alisation fait appel ` de nombreux concepts et techniques. bˆtons ou camemberts par a exemple) .Chapitre 1 Introduction Ce m´moire traite de l’informatique d´cisionnelle et. Le but de ce m´moire est d’imaginer une solution pour l’affichage de donn´es e e provenant d’un syst`me Oracle. Nous pr´senterons leur utilit´ et expliquerons les raisons de leur e e e vif gain d’int´rˆt dans le monde de la Business Intelligence de nos jours. Ces entrepˆts sont tr`s couramment utilis´s dans o e e les syst`mes spatiaux d’aide ` la d´cision. e Ensuite. et plus particuli`rement ` ce que l’on appelle les “syst`mes d’aide e a e a ` la d´cision”. un r´capitulatif des acronymes cit´ dans ce m´moire est propos´ e e e e en premi`re annexe. e e a que nous d´taillerons dans ce m´moire. e a e 1 Afin d’aider le lecteur. e e Le chapitre deux sera consacr´ ` une br`ve pr´sentation de l’informatique d´ea e e e cisionnelle. bien souvent compl´mentaire aux bases de donn´es e e e transactionnelles classiques. nous pr´senterons les entrepˆts de donn´es. g´n´ralement appel´ solution “SOLAP e e e Etrangement. des syse e e e t`mes d’aide ` la d´cision. les SDSS ou syst`mes d’aide ` la e e e a d´cision spatiaux. plus pr´cis´ment. Un clic de souris e e sur les donn´es provoquera l’apparition sur la carte de la zone g´ographique e e concern´e. ces solutions faisant g´n´ralement appel ` des logiciels propri´taires. Oracle ne dispose pas ` ce jour de solution SOLAP proprement a dite. ce qui rend ce travail tout ` fait ate a trayant. Nous ee brosserons le portrait des architectures que ces syst`mes sous-tendent et ´voe e querons une sous-cat´gorie de ces syst`mes. non-destin´e ` l’affichage de donn´es e a e proprement dites sur la carte (via des graphiques.

CHAPITRE 1. e e e et ´mettra quelques hypoth`ses quant aux possibles d´veloppements futurs. Pour ce faire. et nous pr´senterons les syse e t`mes OLAP. utilis´ dans le cadre de ce e e e m´moire pour afficher. Nous ´noncerons succinctement les diff´rents types e e d’OLAP existants et pr´senterons ensuite les syst`mes SOLAP proprement dits. Il s’agit d’un GML Viewer s’ex´cutant au sein d’un navigateur e internet. XSLT. et GML. nous d´taillerons donc le XML et les langages d´riv´s dont e e e nous nous servirons dans la r´alisation de notre travail. la repr´sentation de la zone g´ographique e e e concern´e par les donn´es. Nous allons en effet repr´senter e e nos donn´es en XML. e e Le quatri`me chapitre traitera du m´ta-langage XML. Ce langage nous sera utile e e a ` maintes reprises dans le cadre de ce m´moire. Un bref historique sera pr´sent´. et ensuite utiliser plusieurs langages d´riv´s du XML. e Le sixi`me chapitre sera consacr´ au logiciel utilis´ pour effectuer notre repr´sene e e e tation sur carte. sur une carte. e e e . e Le septi`me chapitre pr´sentera les diff´rentes impl´mentations effectu´es au e e e e e cours de ce travail. e Le huiti`me et dernier chapitre ´noncera une conclusion sur le travail effectu´. nous introduirons e les syst`mes GIS dont ils sont en partie issus. e Le cinqui`me chapitre sera consacr´ au langage GML. fournissant des outils d´di´s ` l’analyse de donn´es stock´es sous e e e a e e forme multi-dimensionnelle. tels e e e que XML Schema. INTRODUCTION 2 Le troisi`me chapitre pr´sentera les syst`mes SOLAP. De plus. et nous ´voquerons e e e e e quelques-unes des possibilit´s offertes par ce langage. qui est ´crit dans une syntaxe XML. Nous illustrerons ` l’aide de brefs morceaux de code les a diff´rentes techniques mises en place. e Dans ce chapitre. nous pr´senterons bri`vement la suite d’outils Oracle dont e e nous nous sommes servis dans le cadre de ce m´moire. qui permettent la repr´e e e e sentation de donn´es dans un contexte spatial.

qui par ailleurs ne e 1 Aucune traduction n’a ´t´ jug´e satisfaisante ee e 3 . dans un laps de temps e e e e choisi . e e Les DSS peuvent prendre des formes tr`s vari´es. Nous utiliserons ` l’avenir cet acronyme e e a pour d´signer ces syst`mes. en anglais : “Data a o e Warehouses”. et donc d’estimer avec plus pr´cision et de sˆ ret´ le futur. ´galement appel´s DSS. les requˆtes que l’on peut effectuer e e sur celles-ci. Nome breux sont les secteurs demandeurs. ` savoir les entrepˆts de donn´es. les DSS permettent d’avoir une vie sion claire du pass´.2 L’informatique d´cisionnelle e En pr´ambule ` ce m´moire. et surtout.Chapitre 2 Les entrepˆts de donn´es o e 2. e e il s’agit de ce que l’on appelle les syst`mes d’aide ` la d´cision ou “Decision Supe a e port Systems”. Nous pr´senterons un outil mis en place afin de r´pondre aux besoins grane e dissants dans ce domaine. nous pr´senterons l’informatique d´cisionnelle . e e u e Cette accumulation de donn´es. e 2. via des e e a e collections et accumulations de donn´es. Nous expliquerons leurs concepts. . En effet. nous tenterons e e de d´crire ` quel point elle est devenue incontournable dans le monde de la e a “Business Intelligence”1 . On peut dire qu’il s’agit d’un e e syst`me informatis´ qui aide ` la prise de d´cisions efficaces. . Concr`tement.1 Introduction Dans ce chapitre. Cette branche de l’informatique revˆt donc une importance primordiale. et illustrerons par des exemples leurs diverses possibilit´s. Il est particuli`rement int´ressant pour e e les d´cideurs de pouvoir mettre en exergue des tendances. nous allons vous pr´senter une branche en plein e a e e essor dans l’industrie informatique : l’informatique d´cisionnelle. concernant une p´riode donn´e. permettent d’obtenir des informations tr`s pr´cieuses sur un sece e teur d’activit´ pr´cis.

Il utilise des donn´es fournies par l’utilie sateur pour assister la prise de d´cision. Efra¨ Turban. Par contre. si son domaine est e e e e l’informatique par exemple. sp´cialement d´velopp´ pour apporter une solution a un proe e e ` bl`me de management non-structur´ pour une meilleure aide a la e e ` d´cision. et a e il serait bien trop dangereux de se baser sur le pass´ pour faire des projections e sur dix ans. e a a e DSS bas´ sur les donn´es permet. e e a e Dans [1]. Et c’est e e l’agr´gation de ces donn´es et les outils permettant de les interroger qui rendent e e possible l’apparition de ces tendances. e DSS bas´ sur la communication : plusieurs personnes travaillant sur une e mˆme tˆche aident ` la prise de d´cision. Le concept est devenu un champ e de recherche ` part enti`re dans les ann´es septante. et adape e table. via la collection de donn´es en grosse e e e quantit´. e e e e ou provenant d’une simulation. LES ENTREPOTS DE DONNEES 4 pourraient pas apparaˆ sans l’aide de ces syst`mes. d´crit les DSS comme : e e “un syst`me d’information informatis´ interactif. De gros budgets ont ´t´ a e e ee consacr´s dans ce domaine ` l’informatisation de toutes les donn´es r´colt´es e a e e e ces derni`res d´cennies. ces mˆmes entreprises peuvent tout ` fait cibler leur e a marketing sur base de l’analyse des diff´rentes ´volutions du pass´.ˆ ´ CHAPITRE 2. tels que d´crits dans [2] : e DSS bas´s sur un mod`le : manipule des donn´es statistiques. a a e Il est ais´ de comprendre qu’une entreprise commerciale ne s’aviserait pas ` e a ´mettre des hypoth`ses d’´volution de march´ sur dix ans. et a connu un vif gain a e e d’int´rˆt dans le courant des ann´es quatre-vingt2 .html . e e e Mais. L’av`nement des entrepˆts ee e e o de donn´es et de l’On-line Analytical Processing (OLAP) n’a fait qu’acc´l´rer e ee ce mouvement. Il serait absolument impossible d’avoir une analyse aussi fine du pass´ sans ces e outils. afin d’arriver ` des mod`les de simulation puissants. Il s’agit l` d’un secteur en constante ´volution. financi`res. l’´tude des donn´es climatologiques pass´es peut e e e e conduire ` des hypoth`ses sur le relativement long-terme. e e 2 http://dssresources. dans le secteur de la recherche climatologique. En effet.” e Les recherches portant sur les DSS remontent aux ann´es soixante. par ailleurs grande utilisatrice de ce genre de syst`mes. partant du principe a e qu’il s’agit l` de ph´nom`nes cycliques dans le temps. Nous reviendrons ult´rieurement sur ce qu’est OLAP. Or. c’est grˆce ` ces analyses.com/history/dsshistory. professeur de syst`mes d’informations ` l’universit´ ım e a e d’´tat de Californie. et ce ` court terme ou ` long terme selon le secteur d’activit´. e On peut distinguer plusieurs types de DSS. que nous pouvons ´mettre des hypoth`ses a a e e sur le futur. Les DSS e trouvent leurs origines dans les recherches sur les d´cisions organisationnelles e et sur les syst`mes informatiques interactifs. des comparaisons et suppositions aidant aux d´cisions. flexible. c’est en interroıtre e geant de gros volumes de donn´es que nous pouvons d´gager des faits.

1 L’informatique d´cisionnelle spatiale e La recherche portant sur les SDSS est d´velopp´e en parall`le aux DSS. Les diff´rentes e e e habitudes de consommation en mati`re de tourisme seront alors ´videntes. proc´dures d´j` ´tablies et connues. Elle e e e touche plus pr´cis´ment ` la dimension spatiale des donn´es r´colt´es. qu’on appelle GIS (Geographical Information System). appropri´ et ee e e e e donc diff´rent du reste du Canada. au cours de tel ou tel mois de l’ann´e . a 3. Un syse e a e e e t`me de d´cision spatial est g´n´ralement constitu´ de trois ´l´ments : e e e e e ee 1. e e Int´ressons-nous maintenant ` la dimension spatiale de ces donn´es. e . Il s’agit de ce qu’on appelle le marketing cibl´ (target marketing). ee e e Elle s’implante au Canada voisin. Un syst`me de gestion de la base de donn´es qui g`re les donn´es g´oe e e e e graphiques.2. nous y reviendrons plus tard. LES ENTREPOTS DE DONNEES 5 DSS bas´ sur les documents g`re. Et plus pr´e e e e cis´ment des SDSS (spatial Decision Support Systems). au Qu´bec. . DSS bas´ sur la connaissance favorise la r´solution de probl`mes ` partir e e e a des faits. mais ne mesure pas les grandes disparit´s e entre francophones et anglophones. ils sont g´n´ralement e e plus friands de culture que les anglophones. r`gles. nous traiterons des DSS bas´s sur les donn´es. Ils ont par exemple plus tendance ` a prendre des “pass mus´es” dans les villes qu’ils visitent. Pendant leurs vacances estivales. Une entreprise peut collecter. notre entreprise peut consulter ses donn´es. 2. Voici un cas concret illustrant l’importance des SDSS aujourd’hui et ne laissant aucun doute sur l’int´rˆt croissant port´ ` ce domaine ee ea de recherche. Des mod`les potentiels permettant de pr´voir les cons´quences des d´cie e e e sions ` prendre. toutes sortes de e donn´es relatives ` ses clients : quel produit est vendu. Les qu´b´cois subissent des hivers particue e li`rement p´nibles et ont pour habitude de partir une semaine dans les Antilles e e pour “couper” leur hiver.ˆ ´ CHAPITRE 2. La e e soci´t´ pourra alors d´velopper. . e 2. Une interface aidant les utilisateurs ` interagir avec le syst`me et ` apa e a pr´cier les r´sultats des analyses effectu´es. e e e et ´ventuellement isolera le Qu´bec des provinces anglophones. en e a e quelle quantit´. Apr`s quelques mois de e e pr´sence sur le march´ canadien. e e e Un cas concret. dans quelle r´gion. e e eae Dans ce m´moire. retrouve et manipule des informations e e non structur´es sur support ´lectronique et permet une utilisation efficace e e de celles-ci. au gr`s des mois qui passent. un marketing cibl´. Imaginons e a e une soci´t´ bas´e aux Etats-unis et ´voluant dans le domaine du tourisme. e Le domaine de recherche de ce m´moire se prˆte particuli`rement bien ` cet e e e a aspect du commerce.

on peut citer Oracle ou Microsoft qui. il manquait ` ces bases une dimension essentielle. qui a ´t´ introduit par E. Une base de donn´es relationnelle est vue comme un ensemble de e type entit´/relation que l’on peut interroger via le language SQL (Structured e Query Language) notamment. ne pourraient plus aujourd’hui se passer de bases de donn´es multi-dimensionnelles. e Ne serait-il pas int´ressant d’ajouter ` ces donn´es une dimension temporelle ? e a e N’est-il pas dommage que des donn´es soient effac´es. LES ENTREPOTS DE DONNEES 6 Nous ajouterons que les DSS sont un domaine d’´tude particuli`rement pase e sionnant. e a e Au cours de la d´cennie pass´e. commerciaux ou non.1 Les entrepˆts de donn´es o e Historique Le mod`le de donn´es relationnel. tant les e e a e technologies sont novatrices. La liste de clients courants. pour des solutions plus profese sionnelles. e Cependant. Les transactions s’effectuent ` l’aide de cl´s primaires et ´trang`res a e e e qui relient les diff´rentes tables entre elles. L’id´e ´tait de rajouter une dimension e e e temporelle aux donn´es et d’archiver celles-ci au sein de nouvelles structures e rendant facile l’ajout. Les grandes surfaces e . . l’interrogation et le classement des donn´es. Les requˆtes soumises aux bases de donn´es sont e e g´n´ralement du type : “lister les clients habitants Ixelles” par exemple. la liste des fournisseurs e sous contrat. les syst`mes relationnels classiques n’´taient jamais qu’un reflet de e e l’´tat actuel de l’entreprise. Parmi e e les grosses soci´t´s du secteur. ce qui e e est absolument primordial au vu des milliers de transactions effectu´es chaque e jour sur ces donn´es. . parce que consid´r´es e e ee comme p´rim´es ou plus utiles au bon fonctionnement de l’entreprise aujoure e d’hui ? Il est pourtant logique d’imaginer que nous pourrions faire quelque chose de ces donn´es. via sa suite ee Microsoft Office. des a e e e ventes.F. Codd en 1970 e e ee et qui lui a valu de remporter le Turing Award dix ans apr`s. e Un grand nombre de secteurs. a servi de fone dation ` l’actuelle industrie des bases de donn´es. r´duit donc l’espace de stockage n´cessaire et e e permet surtout d’effectuer des requˆtes dont les r´ponses seront rapides.ˆ ´ CHAPITRE 2. l’´tat des ventes. Ceci permet d’´viter la redondance e e des informations dans les tables. le mod`le multi-dimensionnel est apparu avec e e e l’id´e de profiter de ces informations.3 2. relativement r´cent. et les lacunes ` combler encore bien pr´sentes. pesant plusieurs milliards de a e dollars [3]. On soup¸onne ais´ment les analyses que l’on pourrait tirer de ces c e donn´es. l’archivage et le stockage de telles quantit´s d’infore e mations pourraient aider ` se faire une id´e de l’´volution de la client`le. a En effet. . celle du temps.3. . distribue le programme Access de cr´ation et d’administration e de bases de donn´es ou encore son SQL server. . a e 2. et se prˆtent donc bien ` un m´moire. et leurs implications en terme d’aide ` la d´cision. L’accumulation. . la liste des magasins.

et donc de d´gager des pistes quant e u e e aux causes probables . Typiquement. Elles permettent par exemple d’identifier des e r´gions o` les cancers sont plus fr´quents. Ils ont identifi´ les succursales e e e qui perdaient le plus d’argent. ils ont d´couvert que les e e e antennes du sud du pays “tiraient” les bons r´sultats du nord vers le bas. e Voici un cas concret. afin de d´terminer leur rayon u e e d’action et de pouvoir mettre en place un marketing appropri´. . temporelles. Voici un e e exemple (figure 2. Ils ont e alors arrˆt´ de proposer ce service dans le sud. et donc de pouvoir ´mettre des hypoth`ses quant aux cons´quences de e e e l’´volution de nos modes de vies. . ou encore de faire des comparaisons entre diff´rentes d´e e cennies. poursuivant sa volont´ de diversifier son march´.1). . . la liste des fournisseurs en cours de e contrat. L’organisme Eurostat3 . Trop de gens ne parvenaient pas ` rembourser leurs achats en fin e a de mois. une liste de ventes de cette p´riode comptable. ont d´couvert que leurs activit´s concernant les cartes de cr´dits ´taient e e e e e d´ficitaires. .ˆ ´ CHAPITRE 2. Il y a quelques ann´es. . permet. socioe a e e ´conomique. que nous tenons d’une conversation avec un directeur financier de chez Fortis. A l’aide des donn´es encod´es dans des entrepˆts e e o de donn´es et d’outils de visualisation appropri´s.eu/eurostat . On imagine donc ais´ment une relation e e client-ventes en deux dimensions en relationnel qui deviendrait un cube avec une historisation de ces donn´es. lui. L’entrepˆt de donn´es. On peut dire qu’il diff`re du e e mod`le bi-dimensionnel traditionnel par son historisation des donn´es.2 Pr´sentation e Un entrepˆt de donn´es est donc un stockage de donn´es en masse. avec difo e e f´rentes dimensions : spatiales. une liste des clients actuels. de compulser toutes sortes de donn´es ` caract`re d´mographique. permet de stocker l’ensemble de ces donn´es. LES ENTREPOTS DE DONNEES 7 ont besoin de savoir d’o` provient leur client`le. et ont renou´ avec les b´n´fices ee e e e dans les mois suivants. . Ils ont rachet´ e e e une enseigne bancaire turque et.europa. e e Les soci´t´s d’assurances calculent leurs primes en extrayant des entrepˆts de ee o donn´es des facteurs g´ographiques et temporels qui seront ensuite analys´s. 3 http://ec. en ligne. Les banques e veulent ´valuer toujours plus efficacement les risques pour accorder un prˆt. . La e e e recherche spatiale stocke un grand nombre de donn´es qui permettent d’´care e ter ou de favoriser des pistes de recherche. 2.3. une base de donn´es n’est jamais que le reflet de la situation ace tuelle d’une entreprise. puis par ann´e. ils ont e d´cid´ de faire une analyse simple des chiffres. Le secteur de la recherche m´dicale se sert grandement de e e donn´es multi-dimensionnelles. Avant d’annuler tout bonnement et simplement cette activit´. le groupe Fortis s’est implant´ e e en Turquie. au bout de quelques mois de pr´sence sur le e march´. dans le mod`le multi-dimensionnel. Comme e e dit plus haut. . par o e e exemple par mois.

consid´r´ comme ´tant le p`re fondateur des entrepˆts de donn´es et ee e e o e 4 . non volatiles.” e Dans [4]. et il est ee e n´cessaire d’effectuer une gestion pr´alable pour uniformiser leur format et e e les int´grer ` l’entrepˆt de donn´es. e a o e – Non-volatiles : les donn´es ne sont jamais r´´crites ou effac´es. Ceci afin e e e e e e d’´viter aux donn´es concern´es par plusieurs sujets d’ˆtre dupliqu´es. e e e e – Historis´es : Les changements sur les donn´es sont journalis´s et enregistr´s e e e e de telle mani`re que l’on puisse consulter des historiques de changements au e cours du temps.ˆ ´ CHAPITRE 2. LES ENTREPOTS DE DONNEES     ¢¡ ¥¨ ¥¨© ¥¨§  ¡ ¡ ¡  ¥ ¢£ ¤ ¥ ¢£ ¥ ¢£ ¥ ¢£ ¤ ¤ ¤ ¦¡ ¡¢£ ¦¡ ¦¡ ¦¡ ¡¢£ ¡¢£ ¡¢£ GCP EGH 88 EGH 8U EFI ECP @U 8 Fig. les d´finit comme suit : e “Un entrepˆt de donn´es est une collection de donn´es orient´es o e e e sujet. Elles sont donc par essence h´t´rog`nes. Inmon pr´cise cette d´finition : e e – Orient´es sujet : La base est organis´e de telle mani`re que les donn´es e e e e aff´rent aux mˆmes ´v´nements ou mati`res soient li´es entre-elles. Nous avons vu ici une approche des entrepˆts de donn´es se r´sumant au stoo e e ckage et ` l’organisation des donn´es garantissant un acc`s ` l’information pasa e e a s´e.1 – Repr´sentation cubique des donn´es e e 2. Il existe cependant une autre approche ` la conception intrins`que de ces e a e 4 http://www.3 D´finition e Bill Inmon. en lecture-seule et e e e sont gard´es organis´es pour d’´ventuelles consultations ult´rieures. Cette d´finition suppose que les donn´es sont sauvegard´es ` leur niveau le e e e a plus ´l´mentaire pour un usage basique et plus flexible rendant facile et rapide ee l’analyse d’informations.3. Une fois e ee e enregistr´es. e e e e e – Int´gr´es : Les donn´es proviennent g´n´ralement de plusieurs d´partements e e e e e e au sein d’une organisation.inmoncif. int´gr´es. premi`re entreprise ´voluant cr´ateur de la “Corporate Information Factory” e e e dans ce domaine. 2.com/home/ GVC 4265432 GFC @BA 8Q 89 @R dcb GFC 89A 1 0) ( ' EDC 8BA @9 88 87 a`W EDC 8A U EDC ECP GH EE ES & %$#" YXW EPI @7 8T 8B 88 !   @B GCP EHP & %$#" . elles sont archiv´es d’une mani`re statique. historis´es et organis´es pour la prise e e e e de d´cision.

Il peut s’agir d’outils permettant o e des analyses ` l’aide de requˆtes. .4 Voici un exemple (figure 2. LES ENTREPOTS DE DONNEES e “‰ ’˜h“fgf ˜ g€wpxxfƒ ghg‚yfq  h„fwps “’–••ˆ” — ’” “˜d™ ’ ˜• ghrqqp† f€fif€h… g€f„rw„  “’–•• ˆ” ’” “’‘‰ ˆ‡ 9 entrepˆts.3. nombre. on privil`gie les groupements facilitant les analyses e futures. mais plutˆt des e o 5 source : http://www. Ils sont compos´s o e e de metadata.2 – Architecture classique des entrepˆts de donn´es o e Architecture . L’approche dimensionnelle est donc totalement diff´rente de l’approche normalis´e d´crite par Bill Inmon. on distingue l’architecture des entrepˆts de donn´es. Dans cette approche. Enfin. des outils sont disponibles et pere mettent d’interroger ces entrepˆts de donn´es. on divise des ventes en plusieurs dimensions telles que prix. on le trouve sur de e e e nombreux sites traitant du sujet. Par exemple. .edu ghrqqpi hi hgfe ghrqqpi hi hgfe g€fyx gwhtv uts Fig. qui ne sont pas des donn´es proprement dites. o e Ce sch´ma est largement r´pandu dans la communaut´. lieu de ventes . Cette approche est d´finie dans [5]. externes ou internes. il s’agit de l’approche dimensiono e nelle. On peut y distinguer diverses sources de donn´es. d’outils permettant de faire des rapports (rapa e ports financiers annuels par exemple) ou encore d’outils permettant de faire du forage (Data Mining). 2. e e e 2. Ensuite.2) classique d’architecture d’un entrepˆt de donn´es5 .stanford. poue vant provenir de plusieurs syst`mes.ˆ ´ CHAPITRE 2.

e En effet. e e Il convient donc de rester prudent ! En effet. e e e e Le temps de r´ponse sur les requˆtes de ce type s’en voit fortement acc´l´r´. Les autres agr´gats sont calcul´s ` la vol´e et. les agr´gats calcul´s ` la vol´e ne sont pas concern´s par e e a e e ces modifications. souvent la somme. on propose d’effectuer ee e e e un pr´-calcul de ces agr´gats et d’en stocker le r´sultat dans la base de donn´es. pr´sentent plusieurs niveaux de granularit´ possibles et jouer e e e sur ces niveaux permet d’affiner nos r´sultats ou d’identifier plus pr´cis´ment e e e ou plus localement la source de probl`mes. Des donn´es. e 2. et donc en espace e e disque.ˆ ´ CHAPITRE 2. En terme d’entrepˆts de donn´es. et on observe les requˆtes fr´quentes (Frequently Asked Queries).3. LES ENTREPOTS DE DONNEES 10 informations de gestion permettant une vision multi-dimensionnelle logique des donn´es. ces op´rations e o e e s’appellent roll-up et drill-down et sont d´crites dans la section suivante. Evidemment. et c’est encore plus vrai pour des e e e e donn´es spatiales. e Afin d’acc´l´rer le traitement sur des donn´es agr´g´es.5 Agr´gation des donn´es e e Une agr´gation est obtenue en effectuant une op´ration. par exemple l’ajout d’une dimension. On estime que l’espace requis pour enregistrer ces agr´gats est de 200 e a ` 500 fois l’espace demand´ par les donn´es elles-mˆmes [6]. On e calcule les agr´gats dont on a de bonnes raisons de penser qu’ils seront souvent e exploit´s. e Il est int´ressant enfin de remarquer que lors d’une modification d’un cube e (hyper-cube). comme toujours. Ensuite viennent e e e les donn´es proprement dites. e e ee e Mais cette solution n’est pas sans poser des probl`mes d’espace. En calculer e e e e e trop serait p´nalisant en terme d’espace disque et de temps de calcul n´cessaire. e e e e e a e p´riodiquement. Nous sommes donc descendus dans les niveaux de granularit´ et avons pu e identifier la source du probl`me. ces agr´gats doivent ´galement ˆtre stock´s dans le syst`me. Afin d’acc´l´rer la mise ` jour des agr´gats. ne pas calculer les agr´gats serait e coˆ teux en temps de r´ponse. calculer tous les agr´gats possibles serait coˆ teux u e e u en temps de pr´-calcul et en volume du cube de donn´es. une m´thode est ee a e e propos´e dans [7]. Elle peut encore avoir une vision ville par ville et identifier le magasin posant un probl`me plus s´rieux que les e e autres. on se r´serve le droit de mettre ` jour le cube de donn´es en e e a e ajoutant le r´sultat de nouveaux calculs. On e e e peut aussi privil´gier les agr´gats qui sont coˆ teux en calculs mais pas n´cese e u e sairement acc´d´s fr´quemment. Par exemple. Ils sont ´galement compos´s d’agr´gats. une chaˆ poss´dant e ıne e 30 magasins en Belgique s’inqui`te de voir son chiffre d’affaire national en baisse e continuelle. il faut recalculer les agr´e gats. e Elle consiste ` ´tablir des seuils de tol´rance au-del` desquels les donn´es ne a e e a e . La solution est e e e donc. de e e plusieurs donn´es d´taill´es [5]. Elle peut alors voir les r´sultats province par province et identifier e la province dont le chiffre chute drastiquement. un compromis entre les deux solutions extrˆmes. r´sultants de requˆtes particuli`rement e e e e demand´es. qui sont des calculs effectu´s e e e e e sur les donn´es et dont les r´sultats sont stock´s dans la base.

e e Cette op´ration est illustr´e ` la figure 2. Il s’agit l` d’un ´change des axes e a a e “Produit” et “Localisation” cons´cutif ` l’op´ration dice. les e e e e agr´gats sont recalcul´s. Par exemple. e Il est ` noter que ces cubes s’appellent hyper-cubes s’ils ont plus de trois dimena sions. L’op´ration slice est e e e e repr´sent´e ` la figure 2. roll-up. La seconde op´ration fait exactement e e a e Ž ˆ… Œ‹ „ƒ †… ˆ‡ ˆŠ‰ ~}|{ z jo nm lk ji sqi tsrqp y xwvu . e e e On peut ´galement avoir ` s´lectionner plusieurs trimestres ` la fois. on mod´lise les donn´es sous forme d’un data-cube.4. Il s’agit d’un slice du troisi`me trimestre du cube e e a e pr´c´demment illustr´ (figure 2. Chaque dimension est repr´sent´e e e e e par une table. 2. 2. On peut alors e e e remonter dans la hi´rarchie d’une dimension.1).6 Op´rations sur les entrepˆts de donn´es e o e En Data Warehousing. si e e les donn´es n’exc`dent pas trois dimensions. Intuitivement. Une fois le seuil de tol´rance franchi.3 – Op´ration slice e sont plus repr´sentatives de la r´alit´. au nombre de changements successifs. LES ENTREPOTS DE DONNEES ‚€€  ŒŽ †‡ Œ 11 Fig. Ces seuils de tol´rance peuvent ˆtre vari´s. L’op´rae e tion dice est illustr´e ` la figure 2. Nous pourrions par exemple vouloir mettre pour le cube de notre exemple la dimension spatiale sur l’axe Z. on peut alors observer les donn´es de la dimension d´sir´e. Cette m´thode ee e est dite “Lazy”. La pree e a e mi`re. Voici les op´rations courantes effectu´es sur ces cubes afin d’en r´cup´rer e e e e efficacement des informations.6. Cette op´ration e s’appelle le pivot et est illustr´e ` la figure 2. il s’agit de couper une tranche du cube . e a Afin d’en clarifier la vision.7.3. on veut ´galement pouvoir repr´senter les dimensions e e selon les axes que nous choisissons. par exemple.ˆ ´ CHAPITRE 2. Reprenons notre exemple de repr´sentation cubique (figure 2. il s’agit e a e a alors de l’op´ration dice. permet d’agr´ger des donn´es selon une dimension.3). e a e Deux op´rations de manipulation de donn´es sont encore ` pr´senter. on peut vouloir agr´e e ger les donn´es de deux trimestres et les repr´senter en un semestre.5. et peuvent e e e e e se r´f´rer. L’op´ration slice permet de s´lectionner une die e mension sur un cube. qui extrait un “sous-cube” du cube principal.

ÎÍ ÔÓ ÐÏ Î ÐÎÑ Î ÐÎÑ ÐÎÑ ÎÏÒ ÎÏÒ ´± ³ ²° µ °± ” •’ “ –‘ ‘’ ˆ ´ CHAPITRE 2. 2. 2.5 – Op´ration pivot e ÊÊ ÈË ÊÌ ÊË ÈË ÊË ÊÌ ÊË ÈÉ ÊÉ ÈÇ ÊÉ ½¼ »º ¹¹ ¸ Åþ ÆÅÄü »Â ÁÀ ¿º »¾ °¯ ²± ´·¶ ²° ´± ³ ² µ° °± Fig. 2.4 – Op´ration dice e ©­ ¬­ ©ª ©© ¬­ ©© ©ª ©© ¬« ¬® ©¨ ¦¤Ÿ §¦¥¤ œ£ ¢¡  › œŸ  “’‘ •˜— “‘ •’ ” “ –‘ ‘’ ©¨ ž œ›šš ™ 12 . LES ENTREPOTS DE DONNEES Fig.6 – Op´ration roll-up e éé åê åçæ éèæ åê åçæ éèæ éèæ åé éêæ åä âàÛ ãâáàÙ Øß ÞÝ Ü× ØÛ åä ÚÙ Ø×ÖÖ Õ Fig.

7 – Op´ration drill-down e        þ¡ ô ÷ÿÿû¢ . L’OLTP (Online Transaction Processing) que nous connaissons est bas´ sur le mod`le relationnel. nous l’avons vu.ˆ ´ CHAPITRE 2. Ces analyses de donn´es ont permis de faire de grands pas en avant e dans plusieurs domaines. Mais nous voudrions aller plus loin. Le chapitre trois du pr´sent m´moire est consacr´ ` une pr´sentation de e e ea e l’OLAP et ` SOLAP. Elle permet de descendre dans la hi´rarchie d’une dimension. nous devons ine o e troduire des m´thodes d’organisation. LES ENTREPOTS DE DONNEES ðí ï îì ñ ìí ìë ì îí ðò îì ðí ï î ñì ìí 13 l’inverse. dont le but premier est de favoriser la visualisation des a r´sultats provenant de requˆtes OLAP. c’est l’op´ration drill-down. Il s’agit e en quelques sortes d’une sp´cialisation du cube. l` o` les e e a u syst`mes OLAP utilisent une vue multi-dimensionnelle des donn´es qui procure e e un acc`s rapide ` l’information strat´gique permettant des analyses plus pr´e a e e cises. ea e Afin de tirer profit des possibilit´s des entrepˆts de donn´es. Un e e exemple est illustr´ ` la figure 2. que l’on e e appelle OLAP (On-line Analytical Processing). qu’il est n´cessaire d’utiliser e e e e e des outils de visualisation puissants. Nous travaillons g´n´ralement avec une telle quantit´ de donn´es. Nous voudrions pouvoir poser des questions telles que “Que se passerait-il si nous augmentions nos prix de 50 cents l’unit´. e a e de type : “Quels sont les revenus totaux du troisi`me trimestre pour l’ouest du e pays ? ”.8. tout en r´duisant nos frais de transport de cinq e e cents ? ” Ces questions impliquent une analyse pouss´e des donn´es. Ces illustrations sont inspir´es de [8]. e e Les questions typiquement pos´es ` un cube de donn´es sont. Les syst`mes SOLAP sont plus particuli`e e rement d´di´s ` l’affichage de donn´es sur des cartes g´ographiques. d’extraction. e e a e e    þ¡ ô ÷ÿùþ ý      ùü ûú        ù÷øø ÷ öõôó      ùôõ ÷©ô ÷¨      ù÷ ö    ù÷ø§¡ÿôû¥    ù£¡úô ÷ ¦û¥ ù¤ûûó£¡ú Fig. 2. e e Ceci est en effet une dimension importante dans ce domaine. et d’analyses de donn´es.

4 Conclusions Dans ce chapitre. Nous avons ensuite pr´sent´ les entrepˆts de donn´es et montr´ qu’ils ´taient e e o e e e indispensables aux SDSS. et qu’elle augurait ` e a l’avenir des recherches passionnantes. et avons e e e ´voqu´ l’informatique d´cisionnelle spatiale. Nous avons montr´ quelques techniques pour optimie ser les temps de r´ponse des requˆtes sur les cubes de donn´es et avons ensuite e e e pr´sent´ les op´rations courantes sur les entrepˆts de donn´es. nous avons pr´sent´ l’informatique d´cisionnelle. Nous avons vu ` quel point cette e e e a discipline ´tait devenue indispensable sur bien des plans. LES ENTREPOTS DE DONNEES 14 2. e .ˆ ´ CHAPITRE 2. Dans la suite. e e e o e nous pr´ciserons les outils pouvant tirer efficacement profit de ces nouvelles e structures de donn´es.

2. les SIS font r´f´rence aux donn´es spatiales au sens large. et tir´e de e e e [9]. la r´cup´ration. qui permettent d’interroger e e e efficacement des donn´es selon une vue multi-dimensionnelle de celles-ci. e Auparavant. e Un GIS est donc constitu´ de plusieurs composantes essentielles [9] : e 15 .Chapitre 3 Syst`mes SOLAP e 3. la mod´lisation.2 3. ” e e e Il est important de ne pas confondre GIS et SIS (Spatial Information Systems) . l’analyse e e et la pr´sentation de donn´es g´ospatiales.1 GIS D´finition e La d´finition suivante est largement admise dans la communaut´. la manipulation. d´finirons les outils e e e mis ` leur disposition et ´voquerons les qualit´s essentielles dont doivent dispoa e e ser ces syst`mes. qui permet la capture. qui peuvent tout aussi ee e bien concerner les configurations mol´culaires par exemple. Les e syst`mes SOLAP sont en fait une union des capacit´s analytiques d’OLAP et e e des pouvoirs de visualisation des GIS. “Un GIS.1 Introduction Dans ce chapitre. la e e sauvegarde. nous ´voquerons le monde des GIS (Geographical Information Syse tems) qui sont un ensemble d’outils divers et vari´s touchant ` la repr´sentation e a e sur cartes g´ographiques de donn´es. e e Nous pr´senterons ´galement les syst`mes OLAP. le partage. nous pr´senterons les syst`mes SOLAP. 3. ou Geographical Information System. est un syst`me e informatique sp´cifique.

cela implique une rigueur dans les acc`s. e e Il faut permettre aux syst`mes GIS de sauvegarder et traiter des donn´es qui e e peuvent changer au cours du temps. e e – Une unit´ de partage de donn´es : les GIS sont compos´s de diff´rents e e e e logiciels (par exemple un serveur de requˆtes. la prochaine e e e banque ` livrer. des applications g´ologiques requerront des op´rations e e tri-dimensionnelles. Comme nous l’avons ´voqu´ au chapitre e o e e e pr´c´dent. indiquant le num´ro de contact. Les cartes g´oe e e graphiques sont un excellent support pour afficher de grosses quantit´s d’infore mations. . sa proximit´ e e avec la banque. sa proximit´ avec d’autres camions. un e logiciel de repr´sentation de cartes. . l’argent transport´. tr`s parlant ´galee e ment. sa position. une cons´quence logique de la g´e e e n´ralisation des entrepˆts de donn´es. e . en un seul coup d’oeil. . Par exemple. et une vision claire de celles-ci permet d’en a e tirer la pleine quintessence. Le succ`s actuellement rencontr´ par les syst`mes e e e GIS tient au pouvoir de repr´sentation des donn´es qu’il offre. bi. SYSTEMES SOLAP 16 – Une unit´ de traitement de donn´es : les logiciels GIS doivent pose e s´der un ensemble de fonctionnalit´s complet permettant des analyses de e e haut niveau et une aide ` la d´cision efficace au sein d’un domaine d’applia e cation. Par exemple. e e mat´rialiser. Un autre exemple.2. tel qu’une petite zone de texte accompagne l’icˆne e e o du v´hicule. – Un ensemble de r`gles permettant de garantir l’exactitude. la pr´cision et e e la fiabilit´ des donn´es. les composantes spatiales et g´ographiques des donn´es sont essene e e e tielles ` l’informatique d´cisionnelle.` CHAPITRE 3. un simple e traceur mis sur un v´hicule d’une soci´t´ de transports de fonds. la pr´sence ou non de come e missariats environnants. – Une unit´ permettant la sauvegarde et la r´cup´ration des donn´es : e e e e les requˆtes sur les donn´es doivent pouvoir ˆtre effectu´es rapidement. . . va permettre e ee d’afficher sa position sur une carte en temps r´el. son orientation. Ces syst`mes e e e e se sont rendus indispensables aujourd’hui. . et l’aide ` la d´cision qu’elles apportent ne sont utiles que si on e a e peut les visualiser sur des cartes g´ographiques. tout en faisant abstraction de leur complexit´. on peut tr`s bien concevoir le syst`me e e (et c’est g´n´ralement le cas). afficher une repr´sentation de ce v´hicule sur la carte va ıt. . au sein e e e e de structures optimis´es et de repr´sentations claires.ou tri-dimensionnelles. . . Plus encore. une gestion des e e droits. . Par couverture. – Une unit´ de pr´sentation des donn´es : les analyses effectu´es par ces e e e e syst`mes. a Ceci illustre tr`s bien le pouvoir de la repr´sentation g´ographique. . . e e 3. e – Une unit´ spatio-temporelle : les donn´es sont spatiales et temporelles. Ceci est plus int´ressant qu’il e e n’y paraˆ En effet. e ou sur des graphiques particuli`rement parlants.2 Motivations L’av`nement des GIS est. nous le pensons. ) Tous ces logiciels doivent se partae ger les donn´es. nous entendons le nombre de succursales. est la facilit´ ` pouvoir d´terminer la couverture qu’une soci´t´ occupe sur ea e ee un territoire donn´. un navigateur internet.

en plein e e e essor. Il convient pour une compagnie de choisir des sites appropri´s pour l’implane tation de nouveaux bˆtiments sachant qu’une liste des adresses d´j` occup´es a ea e n’est pas r´v´latrice. Et ce e ee e e e faisant. arrˆtons ici une liste que nous aurions bien du mal ` ´noncer e ae de mani`re exhaustive. SYSTEMES SOLAP 17 Fig. ` titre d’exemple. la Bank of America e e a d´termine sa couverture dans les villes am´ricaines.gis. les GIS sont ´galeoe e ment tr`s utilis´s dans les ´tudes sur la biodiversit´ o` ils permettent de voir e e e e u clairement l’´volution de la vari´t´ des esp`ces au sein d’un p´rim`tre. e a e e On imagine ais´ment l’aide que doit apporter la repr´sentation de ces ´volue e e tions sur des cartes afin de d´terminer la part de responsabilit´ des facteurs e e g´ographiques et d´mographiques. Dans le secteur de la recherche m´dicale. urbanisme. utilise des syst`mes GIS dans les a e e e v´rifications de viabilit´ des choix de producteurs. e e a e e les entrepˆts de donn´es permettent de collecter des donn´es sur plusieurs ano e e n´es et donc de tirer des conclusions quant ` l’´volution de la sant´ publique. afin d’aider ` e a d´terminer d’o` proviennent les boulversements climatiques et leurs possibles e u cons´quences futures. Voici comment. Le secteur du commerce ´quitable.1)1 . Mieux encore. Les cercles repr´sentent les implantations. NY (figure e e 3. Plus le diam`tre du cercle est e e grand. meilleure est la couverture de ce secteur. Mais laissons de cˆt´ le domaine strictement mercantile. car il s’agit e e de recherches tr`s en vogue. e 1 source : http://www. mais ` la rentabilit´ encore pr´caire.1 – Couverture des succursales de la Bank of America dans la ville de New York. ils permettent d’´mettre des hypoth`ses sur les causes d’´ventuels proe e e bl`mes li´s ` la survie d’une esp`ce. Nous pourrions encore citer les apports des GIS en g´nie e e civil. ici Manhattan.com . on utilise des GIS en climatologie. 3.` CHAPITRE 3.

2 – Architecture d’un syst`me GIS. e e 3. e 3. et la conception en champ (field-based model). le hardware n´cessaire est lui ese e e e sentiellement le mˆme que dans les syst`mes d’informations traditionnels.3 Architecture Alors que les logiciels GIS sont tr`s sp´cialis´s. e Voici un sch´ma (figure 3. Il est e e entendu cependant que ces logiciels utilisent bien souvent des t´raoctets de done n´es et qu’il convient d`s lors de fournir des solutions de stockage appropri´es. Il s’agit d’une grande plaque tactile sur laquelle on peut. e e e ee Une entit´ doit : e $'# &%1#')UU1 &4 43%&P%T ' # &%&' 4$!PT '# &%P !()1!I ' # &%$#" !  '# &%")(#' % 8H6GF6E7D@BC 78BAA@9 '# &%9$8"7!5  8 #6 $4$R" %' Q 43%21&0 $4!'' 4 41P)0 $P) 4&%$#"# &S . e e e Autre outil peu commun mais tr`s utilis´ dans ce domaine. Cet outil est particuli`rement utile e quand il s’agit de num´riser des cartes. 3.2) reprenant les diff´rentes interactions possibles avec e e un syst`me GIS. chacune ayant une r´f´rence spatiale.` CHAPITRE 3. tir´ de [9]. ` l’aide d’un a stylet.2. SYSTEMES SOLAP 18 Fig.2. deux conceptions s’afe e e frontent : la conception en objet (object-based model). le digitaliseur (die e gitizer ).4 Mod´lisation des donn´es e e Lorsque l’on veut repr´senter des donn´es g´ographiques. Conception en objet La conception en objet consid`re l’espace comme ´tant e e peupl´ d’entit´s discr`tes et identifiables. dessiner et reproduire des formes.

Microsoft MapPoint4 et plusieurs soee lutions open-sources.1 OLAP G´n`se des syst`mes OLAP e e e Avec l’av`nement des entrepˆts de donn´es et l’enthousiasme grandissant de l’ine o e dustrie pour l’informatique d´cisionnelle. les cartes forment une architecture en couches e e (layers).com/software/arcgis/index. Nous aurons l’occasion de la pr´senter plus en d´tails dans un e e e chapitre ult´rieur. l’analyse multi-dimensionnelle n’est qu’une de ses caract´ristiques. C’est Edgar F. e 3. e Les cartes sont form´es ` partir d’une matrice dont chaque cellule contient une e a information .wikipedia.com/mappoint/default. On parlait alors d’analyses de donn´es multi-dimensionnelles e mais ce terme ´tait quelque peu r´ducteur et on lui pr´f´ra le terme d’Online e e ee Analytical Processing (OLAP). GrassGIS6 et e citons ´galement GMLViewer7 .mspx 5 http://mapserver.3 3. e 3. C’est la repr´sentation dite “vecteur” e e (vector ).umn. d´limitant le e e e terrain. Une couche peut repr´senter les routes.5 Outils GIS Parmi les produits phares du march´. dont les plus r´pandues sont : MapServer5 . sans se soucier des e objets pr´sents sur la carte. une autre les cours d’eau.` CHAPITRE 3. SYSTEMES SOLAP 19 – ˆtre identifiable. L’infore a mation comprise dans les cellules est g´n´ralement une couleur. une e autre d´limite les parcelles. ..html 3 http://www.microsoft.3. Conception en champ La conception en champ traite les donn´es g´ograe e phiques comme un sch´ma. la taille de la cellule ´quivaut ` une distance sur le sol.esri.edu/ 6 http://en. le besoin d’outils analytiques puissants e s’est fait sentir. de points. qui pr´sente l’avantage de s’afficher via un plue e gin dans un navigateur internet et dont nous nous sommes servis dans le cadre de ce m´moire.com/mipro 4 http://www.communitymapbuilder. e – poss`der des caract´ristiques permettant de la d´crire. Afin d’afficher toutes sortes d’informations compl´mentaires. on retrouve la soci´t´ ESRI et sa suite e ee logicielle ArcGIS2 . e – ˆtre utile.mapinfo. que l’on peut diviser et assigner. une carte que l’on repr´sente ` l’aide e e a d’un quadrillage. la soci´t´ MapInfo3 . Par exemple.2. Codd qui a introduit le nom e 2 http://www. e e e Ces entit´s sont repr´sent´es ` l’aide de vecteurs. autres que e les d´limitations des fronti`res. ou encore d’arcs e e e a et de cercles qu’il convient de discr´tiser..org/wiki/GRASS_GIS 7 http://demo.org/gml/gmlviewer-1_0/ . En effet.gis. C’est ce que l’on appelle la repr´sentation en trame (raster ).

Pr´cisons cette d´finition. a e a a e e Notons que sur de gros volumes de donn´es. e e e l’espace disque dont il a besoin. Les produits actuellement sur le march´ tentent e e de parvenir ` ce r´sultat grˆce ` des hardwares sp´cifiques et des pr´-calculs. Nous avons ´nonc´ plus haut que parmi ces syst`mes. les r´sultats ne sont pas encore e e satisfaisants. Edgar Codd travaillait ` l’´poque pour la soci´t´ Arbor Software (devenue a e ee Hyperion). avec quelle quantit´ de RAM. e e e En effet. e e – Multidimensionality — Aspect multi-dimensionnel : l’´l´ment cl´ des soluee e tions OLAP.htm . nombre d’entre eux e e e sont confront´s ` de tr`s larges volumes de donn´es. facilement param´trisables ee e e et intuitifs. Il y d´finissait 12 r`gles pour qu’un produit soit estampill´ e e e OLAP. de plus en plus de solutions logicielles autorisent la r´´criture des ee donn´es et nombre d’entre-elles ne proposent pas de protections satisfaisantes. ` e – Shared — Partag´e : le syst`me doit ˆtre partag´ et doit donc mettre en place e e e e un m´canisme de protection lors d’acc`s multiples en ´criture par exemple. Les analyses tr`s simples sont d´livr´es en moins e e e d’une seconde et le temps de r´ponse des requˆtes complexes doit rarement e e d´passer les vingt secondes. e e 8 http://www. e – Information : repr´sente toutes les informations disponibles qui doivent ˆtre e e accessibles pour les analyses. sans avoir recours a des programmes suppl´mentaires. e Il est n´cessaire que ces m´canismes s´curitaires soient param´tisables. et ces outils doivent pouvoir s’adapter aux besoins du domaine d’activit´ e consid´r´. et ´tait donc tent´ d’´noncer des crit`res favorisant les produits e e e e propos´s par la soci´t´ qui l’employait. e multi-dimensionnelle des donn´es et supporter de multiples niveaux de hi´e e rarchisation. En 1994 se cr´a le “OLAP Report” qui e ee e regroupait des chercheurs totalement ind´pendants de toute entreprise commere ciale. Ces syst`mes doivent enfin proposer une facilit´ et une flexibilit´ e e e de calcul.` CHAPITRE 3.com/fasmi. En efe e e fet. Ceci est un aspect fondamental et crucial.olapreport. SYSTEMES SOLAP 20 OLAP dans [10]. L’OLAP Report ne pr´cise pas quels outils doivent ˆtre utilis´s. De plus. Les applications sur 120 sites web dans 30 pays e e OLAP doivent correspondre ` cinq caract´ristiques : a e – Fast — Rapide : signifie que le syst`me est pens´ pour d´livrer les r´ponses e e e e dans les cinq secondes. . Mais ces r`gles furent jug´es trop nombreuses et peu cr´dibles. Il est donc n´cessaire de e a e e e prendre cet aspect en consid´ration lors de la conception de tels syst`mes. . Le syst`me doit fournir une vue conceptuelle. ils doivent ˆtre ergonomiques. – Analysis — Analyse : le syst`me doit offrir des outils analytiques ` l’utilisae a teur. afin e e e e de garantir une s´curit´ adaptable aux besoins de chacun. Ils se sont pench´s sur une d´finition plus courte et plus g´n´rique de ce e e e e que devait ˆtre un syst`me OLAP. Leur d´finition tient en cinq mots-cl´s 8 : e e e e Fast Analysis of Shared Multidimensional Information – FASMI Cette d´finition est largement admise dans la communaut´ OLAP et est cit´e e e e 8 . . e e e mais ces derniers doivent garantir une conception multi-dimensionnelle des donn´es. On peut mesurer l’efficacit´ d’un syst`me de e e par la quantit´ d’informations qu’il peut g´rer.

dissuadant le passage chez les concurrents. Intuitivement et comme nous l’avons montr´. de stocker les informations dans des bases de donn´es relationnelles classiques. Ils sont d´finis en cat´gories. Cet emploi de cube est tr`s productif en terme de gain de performances. ces agr´gats sont ajout´s aux donn´es d´j` pr´sentes. Celles-ci se rapportent aux domaines e e d’application. e e Enfin. a u – les besoins d’une soci´t´ ne sont pas toujours en ad´quation avec la suite ee e d’outils propos´e par le vendeur. e e e e e e De plus. via les techniques de pr´-agr´gats e e que nous avons ´voqu´s au chapitre pr´c´dent.` CHAPITRE 3. ils sont con¸us et optimis´s pour retrouver rapidement l’information c e demand´e. e e e e Il convient cependant de nuancer cette affirmation. le calcul d’agr´gats ´tait tr`s coˆ teux. u u e 3. les cubes e e e supportent des calculs complexes et rapides. C’est la mani`re la plus traditionnelle de faire de l’OLAP. e En effet. quand les donn´es e sont volumineuses. . – les technologies propri´taires requi`rent du personnel qualifi´. aux techniques utilis´es pour le stockage des informations et ` e a l’utilisation que l’on pourra en faire. e e e dice sont particuli`rement ais´es sur un cube de donn´es. De plus. . plusieurs types existent. .2 Types d’OLAP Vu les nombreux domaines d’application des technologies OLAP. les syst`mes permettant de stocker des donn´es sous forme e e multi-dimensionnelle sont propri´taires. dans un format propri´e e e taire. SYSTEMES SOLAP 21 Les informations disponibles dans la base de donn´es devront ˆtre accessibles e e facilement. La technologie des bases de donn´es relationnelles est ´prouv´e et poss`de de e e e e nombreux outils avec lesquels beaucoup de syst`mes sont familiers. MOLAP La premi`re de ces cat´gories est MOLAP. Les e donn´es sont stock´es dans un cube multi-dimensionnel. e e – . Cela pose plusieurs probl`mes : e e – l’investissement initial peut ˆtre tr`s lourd . et fournissent des outils pour les interroger e selon une vue multi-dimensionnelle. augmentant e e e ea e consid´rablement l’espace disque n´cessaire.3. L’exemple e . qu’il faut fore e e mer ` des coˆ ts bien souvent prohibitifs. qu’il s’agisse de coˆ t en mat´riel ou en temps. Ceci comporte plusieurs avantages. (Multidimensional On-Line Analye e tical Processing). les op´rations slice. . et donc le temps e e e u de r´ponse des requˆtes sur des donn´es non-agr´g´es peuvent ˆtre longues. En effet. en opposition aux technologies MOLAP. e ROLAP Les outils ROLAP (Relational On-Line Analytical Processing) proposent. et le temps de r´ponse des requˆtes doit ˆtre r´aliste en terme de e e e e coˆ t.

ce langage ´tant un e e standard de facto. Ce qui am`ne plusieurs inconv´nients dont nous avons parl´ ` e e e e a propos des outils MOLAP. e comme son nom l’indique. e e e La technologie ROLAP offre l’immense avantage de ne pas limiter la quantit´ e de donn´es admissible et s’av`re donc indispensable lors du choix de solutions e e r´pondant ` des environnements particuli`rement gourmands en volume de done a e n´es.5 et dans Oracle depuis la ee version 8i9 . e e Un autre avantage ind´niable est la taille de ces bases de donn´es. Ceci peut se faire selon plusieurs crit`res choisis par e e l’utilisateur final. les bases de donn´es relationnelles proposent ` l’origine des m´canismes e a e s´curitaires plus pouss´s et on peut imaginer poser un filtre sur les requˆtes. les syst`mes nativement multi-dimensionnels sont a e e plus rapides. Ces fonctions ont e e e ´t´ introduites dans SQL server depuis la version 6. un hybride entre les deux syst`mes cit´s plus haut.com/od/sql/l/aacuberollup. HOLAP La cat´gorie d’outils HOLAP (Hybrid On-Line Analytical Processing) est. Le probl`me de cette famille est que peu d’outils sur le march´ supportent ` e e a la fois les deux technologies. e e Ces syst`mes ont tent´ de garder les avantages des deux techniques dont ils e e sont issus. e Ensuite. 9 http://databases.about. notamment les fonctions ROLLUP et CUBE d´crites dans le chapitre pr´c´dent. les donn´es sont stock´es dans une base de done e e n´es relationnelle classique et les agr´gats sont stock´s dans un mod`le multie e e e dimensionnel propri´taire.htm . e e de nouvelles fonctions sont apparues dans le langage SQL. Les syst`mes relationnels sont beaucoup plus perfore e mants pour de gros volumes que les syst`mes nativement multi-dimensionnels. Concr`tement. e e a e a Si cette cat´gorie a des qualit´s. Et notamment des e e e performances r´duites par rapport au MOLAP.` CHAPITRE 3. SYSTEMES SOLAP 22 le plus flagrant est le langage SQL (Structured Query Language). les syst`mes ROLAP sont frein´s dans leurs possibilit´s par la technoe e e logie employ´e. La seule limitation provient de la taille maximale de la base e e de donn´es sous-tendante. et les syst`mes HOLAP sont donc g´n´ralement e e e propri´taires. En effet. e Enfin. Les syst`mes e e e ROLAP en tant que tels n’imposent pas de limitation quant aux volumes de donn´es autoris´s. Cependant. Le langage SQL n’offre en effet pas toutes les possibilit´s dont e e disposent les requˆtes sur les mod`les multi-dimensionnels natifs. Il n’est donc pas n´cessaire de former des sp´cialistes aux e e syst`mes propri´taires. Mais cette discussion est sue jette ` pol´mique. mais nous avons vu que cela d´pendait de la quantit´ de donn´es. elle a aussi des d´fauts. qui peut ˆtre e utilis´ pour interroger ces donn´es. e e e r´duisant l’acc`s ` certaines donn´es ` un groupe d’utilisateurs particulier. Les infore e a maticiens capables d’utiliser ces syst`mes sont nombreux. Les diff´rentes op´rations r´alisables sur les e e e e e cubes peuvent ˆtre effectu´es en SQL ` l’aide de la clause WHERE.

4 3. il a fallu cr´er de nouveaux outils d´di´s. Parmi les grandes soci´t´s du e ee secteur.sapdb.olapreport. que nous pr´sentons dans la section suivante e e du pr´sent chapitre. Ceci s’explique par le fait qu’Oracle propose des solutions OLAP depuis sa version 9i. e e Ajoutons ´videmment le SOLAP. l’analyse peut demeurer incompl`te. C’est le cas e e e des GIS et. SYSTEMES SOLAP 23 Il existe d’autres cat´gories telles que WOLAP (Web-based OLAP ). les outils SOLAP. “Il a ´t´ d´montr´ que OLAP poss`de un certain potentiel pour ee e e e supporter l’analyse spatio-temporelle.org 13 http://www.” 10 http://www. e e Une nouvelle cat´gorie d’outils OLAP.com/sql/default.html 14 source : http://www.8%14 .` CHAPITRE 3. e 3.htm — chiffres 2006 .mspx 11 http://www. mais il est sauvegard´ sous forme e e e textuelle dans les tables. e 3. A notre connaise e e sance. Afin de tirer profit efficacement de cette manne extraordinaire d’informations.hyperion.com/ 12 http://www. Par exemple. suivi par Hyperion Solutions11 avec 18%.com/technology/products/bi/olap/index. RTOLAP e (Real-Time OLAP ) et bien d’autres encore mais il ne nous semble pas utile de les d´tailler dans le cadre de ce m´moire. le premier article pr´sentant les concepts sous-tendants ` SOLAP date e a de 2001 et ´tait intitul´ “Toward better support for spatial decision making : e e Defining the characteristics of spatial On-line Analytical Processing (SOLAP).4. est introe duite.oracle.” [12] La r´flexion sur ce besoin de nouveaux outils est tr`s r´cente.8 % et Oracle13 cr´dit´ quant ` lui de e e a 2. sans un volet spatial permettant de visualiser et de manipuler la composante g´om´e e trique des donn´es spatiales.1 SOLAP Pr´sentation e Il est reconnu que 80% des donn´es pr´sentes dans les diff´rentes bases de done e e n´es mondiales ont un caract`re spatial [11]. on peut aussi citer SAP12 avec 5. avec eux.com/market. certains outils d’analyse d´di´s ` la composante spatiale e e a et ` la combinaison de capacit´s analytiques et d’outils de repr´sentation : les a e e SOLAP (Spatial Online Analytical Processing). Cependant. Ce m´moire proposera des pistes pour combler cette lacune. sortie en 2001 et a mis du temps avant de proposer des solutions efficaces.3. La soci´t´ Microsoft est actuellement leader ee march´.3 Outils OLAP Diff´rentes solutions logicielles se partagent l’affiche dans ce march´ en pleine e e 10 avec 31% de parts de expansion. Oracle ne fournit toujours pas de solution SOLAP telle quelle.microsoft.

Yvan B´dard. professeur en GIS et en base de donn´es g´ospatiales e e e au centre de recherche en g´omatique de l’Universit´ de Laval au Qu´bec. de pouvoir visualiser les donn´es sur des cartes.` CHAPITRE 3.2 D´finition e Le Dr.” e Il est ` noter qu’entrent ´galement dans la cat´gorie des SOLAP les outils qui a e e affichent des donn´es non spatiales sur des cartes g´ographiques. Les cartes ont ce pouvoir d’abstraire toutes les donn´es ree latives ` l’espace. les d´finit comme suit : ee e e “A visual platform built especially to support rapid and easy spatiotemporal analysis and exploration of data following a multidimensional approach comprised of aggregation levels available in cartographic displays as well as in tabular and diagram displays. Les tendances se d´gagee e ront de mani`re plus ´vidente que si l’on avait compar´ beaucoup de nombres e e e et de graphiques. au Portugal et dans d’autres pays et de nombreux chapitres de livres ont ´t´ consacr´s ` ce sujet [13]. Il s’agit l` d’un principe de base des syst`mes e a e SOLAP. Elle peut l’ˆtre sous forme e e e textuelle repr´sentant des pays.4.3 Vision Les outils OLAP ne permettaient pas de visualiser sur des cartes les r´sultats e des requˆtes. ` partir de colonnes de chiffres. et l’exploration de donn´es selon une approche multi-dimensionnelle venant de niveaux e d’agr´gation disponibles autant dans les repr´sentations cartograe e phiques que dans les repr´sentations en tableaux et diagrammes. r´gions. e e 3. . En effet. flexible. Il est effectivement impossible de retirer des faits.” “Une plateforme visuelle con¸ue sp´cialement pour supporter des c e analyses spatio-temporelles rapides et faciles. a e Dans beaucoup de cas. Cela permet de ne plus se concentrer que sur les donn´es a e non-spatiales. ´nonc´s ici. et doit pere e . des solutions logicielles sont ape e parues au Canada. en France. ou mˆme de dizaines de graphiques. SOLAP doit r´pondre ` ces besoins. mˆme si elle n’est pas reprise sous forme e e de coordonn´es dans une base de donn´es spatiale. SYSTEMES SOLAP 24 Depuis. la e e dimension spatiale est bien pr´sente. . il s’av`re n´cessaire pour une bonne compr´hension des e e e faits.4. adresses. la e e e r´f´rence en mati`re de SOLAP. des e e analyses. ee e a 3. le support sur lequel elles sont affich´es indiquant clairement d’o` e u elles proviennent. et malgr´ le laps de temps tr`s court. e a a e La conception des syst`mes SOLAP doit donc correspondre ` un certain nombre e a de crit`res. aux Etats-unis. et par ce biais aider ` la prise de d´cision. La visualisation des donn´es doit ˆtre claire. ce qui rendait les analyses sur les dimensions spatiales quasi illie sibles et peu r´v´latrices. e e e Visualisation des donn´es. .

des outils statistiques. Il est ` noter que l’op´ration permettant de e e a e visualiser les donn´es au cours de diff´rentes p´riodes est parfois nomm´e dans e e e e la litt´rature drill-accross. Nous voulons pouvoir exploiter pleinement les e possibilit´s de la repr´sentation graphique des donn´es ` dimension spatiale. Pour plus de pr´cision encore. vingt ou cinquante ans. SYSTEMES SOLAP 25 mettre d’utiliser des outils autres que la repr´sentation cartographique.5 Conclusions Dans ce chapitre. des graphiques sont autant de compl´ments e d’informations souvent indispensables ` la bonne compr´hension des donn´es. e e e a Il serait int´ressant de pouvoir visualiser facilement les op´rations roll-up et e e drill-down. . sp´cialement con¸u pour v´hiculer des ine e c e formations ` caract`re g´ographique. le GML (Geography Markup Language). Par exemple. d’associer une couleur a un type de bˆti` a ments au cours d’´tudes urbanistiques). on pourrait e travailler de concert avec des graphiques sur dix. ou forage horizontal. . L’enjeu d´mographique est une pr´occupation pour beaucoup e e e de nations actuellement. ` savoir l’affichage e e e a de requˆtes OLAP sur une carte g´ographique. passer d’une visualisation province par province ` une a visualisation ville par ville peut se faire tr`s intuitivement en zoomant sur la e carte. appel´s ` ˆtre e e e e ae employ´s dans un ensemble de domaines vari´s . nous allons noe e tamment utiliser un langage r´cent. tout en conservant les mˆmes crit`res de recherche. vision qui devrait ˆtre disponible sous plusieurs formes afin d’en afe finer la repr´sentation. et sur un graphique. il serait int´ressant de repr´senter sur une carte l’´volution e e e de la couverture r´gionale d’une enseigne. Nous pouvons ajoue e ter ` ces observations la n´cessit´ d’une vision claire de l’´volution au cours a e e e du temps. nous allons r´aliser la premi`re approche. et peuvent aller de la repr´sentation sur cartes g´ographiques. a e e . au logiciel e e e avec carte interactive interrogeant directement la base de donn´es. les ´l´ments qu’il d´sire voir e ee e s’afficher. Pour ce faire. Dans ce m´moire. Manipulation des donn´es. Les pr´visions gagneraient en r´alisme. par exemple. . et il serait utile de visualiser sur une carte l’´volution e dans ce domaine au cours du temps. l’´volution ´vene e e tuelle du chiffre d’affaires de la soci´t´ — le jeu en valait-il la chandelle ? ee Personnalisation de l’interface. Les syst`mes SOLAP sont tr`s e e e vari´s. e 3. Les logiciels SOLAP ´tant. L’outil doit permettre une personnalisation pouss´e. Des e tableaux. cette adaptation aux besoins e e de l’utilisateur est donc capitale. et ce qu’elle e soit spatiale ou non. Par exemple. nous l’avons d´montr´. nous avons introduit les syst`mes SOLAP et ´nonc´ le besoin e e e grandissant pour cette cat´gorie de produits. a e e Il est donc important de pouvoir afficher plusieurs repr´sentations simultan´e e ment. L’utilisateur doit pouvoir choisir les couleurs repr´sentant les die e vers composants (afin. Un exemple ´vident ` ce sujet nous vient des ´tudes e e a e d´mographiques.` CHAPITRE 3.

et le m´ta-langage a partir duquel il s’est construit.` CHAPITRE 3. le XML. font e ` l’objet des deux chapitres suivants. SYSTEMES SOLAP 26 Ce langage. .

alors employ´ chez IBM. Initialement.sgmlsource. au Cambridge e Scientific Center fut charg´ de se pencher sur le sujet. Le principal probl`me qu’ils rencontr`rent ´tait que les programmes sur lesquels e e e ils travaillaient n´cessitaient chacun un syst`me de balises diff´rent. a e 4. Charles Goldfarb. e e 2 source : http://www. le langage GML.com/history/index. et il convient de ne pas confondre le Genea ralized Markup Language et le Geography Markup Language auquel ce chapitre est consacr´. dont e ıt e nous nous sommes ´galement servi. En fait de langage. e ıt e pour parfaire la pr´sentation du GML. au e chapitre suivant. ils que naquit le Generalized Markup Language (GML) en 1969 travaillaient sur la mise en forme de documents l´gaux. C’est le sujet du pr´sent chapitre. e e e e Charles Goldfarb continua le d´veloppement de GML et ajouta notamment un e analyseur qui permettrait de valider un document GML. e le premier ´tant l’ancˆtre du second. Il apparaˆ donc n´cessaire. ainsi que e e les concepts sous-tendants ` sa cr´ation. mais on s’aper¸ut vite e c que ce langage pouvait ˆtre g´n´ralis´ au traitement de tous types de textes. Nous a e e pr´senterons le langage. ses forces et ses faiblesses. Ce fut l` l’´volution a e principale vers le langage SGML. De plus. Ce langage est beaucoup utilis´ dans e e ce m´moire et il nous paraˆ utile de le d´tailler. de pr´senter le langage XML. il s’agit plutˆt d’un m´tao e langage. ` la pr´sentation du langage GML. notamment. le besoin de repr´senter les donn´es ´lectroniquee e e e ment se faisait sentir.1 Introduction Ce chapitre traitera du m´ta-langage XML. Il travaillait en collaboe ration avec Ed Mosher et Ray Lorie.Chapitre 4 Le m´ta-langage XML e 4. Le premier working draft sur SGML e fut publi´ en 1980 par l’ANSI (American National Standards Institute)2 qui le e 1 L’appellation GML est ici sujette ` confusion. permettant de d´finir des langages. avant de laisser place. est issu du XML.htm 27 .2 Historique Vers la fin des ann´es soixante. C’est ainsi e e e 1 .

ch/wwwasdoc/WWW/publications/sgmlen/node3. grandeur de caract`res.. polices. En 1990. Cependant. e a 3 source : http://wwwasdoc.. le standard HTML n’est pas respect´ par tous les ´diteurs de navigateurs e e web. listes. Enfin. LE META-LANGAGE XML propulsa au rang de standard. HTML fut cr´´ dans le sillage du World Wide Web par Tim Bernersee Lee.cern. Il employa des balises alors utilis´es au CERN o` il travaillait. . Le langage XML a ´t´ d´velopp´ par un groupe de travail. e il devra ˆtre facile d’´crire des programmes g´rant des documents XML. SGML fut utilis´ dans des domaines tr`s vari´s tels que e e e e e les biblioth`ques.org 5 source : http://www. 28 L’id´e fondamentale de SGML est de s´parer la structure logique d’un document e e (titre. le SGML Editorial ee e e Review Board. les ´diteurs de textes (Microsoft e e Word.3 Principes de base XML est l’abr´viation de eXtensible Markup Language. et ne permet en aucun cas la description de documents divers. langage tr`s facile ` utiliser. e XML devra supporter une grande vari´t´ d’applications. paragraphes. Depuis. En effet. Ce langage est d´di´ ` e e ea l’affichage de pages web. La motivation initiale ´tait de combiner la flexibilit´ de e e SGML et la simplicit´ d’HTML. Des balises sont rajout´es telles que la balise <marquee> qui fut propos´e e e au w3c (World Wide Web Consortium)4 qui la refusa. e e id´alement ` 0..ddj. <b> qui rompent avec les sp´cifications du format SGML. HTML.. HTML n’est pas flexible et la traduction de documents complexes peut s’av´rer difficile voire impossible en HTML strict.) de sa pr´sentation. Wordperfect) et tant d’autres encore3 .web. des balises telles que <font>. HTML e permet. Le principal e u probl`me de l’HTML est qu’il s’´cartait d’un principe fondateur de SGML : la e e s´paration de la structure du document et de sa mise en forme.´ CHAPITRE 4.com/184404686 .w3c. eut le m´rite de faciliter la e a e diffusion et la propagation (hyperliens) de contenus sur internet. e De plus. James Clark. qui doit ˆtre confi´e ` un e e e a fichier externe d´crivant couleurs. e e e le nombre d’options disponibles dans XML devra ˆtre r´duit au minimum. au sein du document. XML se g´n´ralise dans des domaines e e e tr`s divers et son utilisation ne cesse de croˆ e ıtre. ee XML devra ˆtre compatible avec SGML. en 1996. e 4. html 4 http://www. un d´veloppeur e open-source ´voluant dans la sph`re XML pr´tend que ce succ`s est dˆ “au e e e e u 5 triomphe de la simplicit´”. . l’ISO publishing department. Il a ´t´ con¸u selon les e ee c dix principes suivants [14] : – – – – – XML devra ˆtre utilisable facilement sur Internet. De part e e sa vocation g´n´rique.

De e e plus. Partons d’un fichier XML relatant un a agenda. 4. de tels fichiers texte laissent libre choix aux programmes quant ` leur utilisation.´ CHAPITRE 4. Il permet de stocker d’importants volumes e de donn´es sous forme textuelle. – le design d’XML devra ˆtre fait rapidement. LE META-LANGAGE XML 29 – les documents XML devront ˆtre lisibles par l’homme et raisonnablement e clairs. comme l’HTML. Les flux RSS tiennent une grande part de responsabilit´ dans le succ`s de ce qu’il convient d’appeler e e le web 2. g´n´riques. flexibles en e a e e mati`re de description de documents.4 Motivations XML est n´ du manque de solutions faciles ` utiliser. le XML est un langage e e e de balises. e e e Il convient au programmeur de d´finir ses balises. Les exemples ` ce sujet ne manquent pas ! e a Un autre aspect int´ressant d’XML est son universalit´.w3.5 Le document XML Comme nous l’avons expliqu´ dans la section pr´c´dente. a e Les documents XML ´tant par d´finition extensibles. e a e – la concision dans les balises est d’une importance minime. L’affichage des informations ne sera pas identique. e 4. e – le design d’XML devra ˆtre formel et concis. e – les documents XML devront ˆtre faciles ` cr´er. leur hi´rarchie et ce qu’elles e e 6 http://www. dans n’importe quel domaine. Le programme de traitement e e de texte Microsoft Word utilise pour ses fichiers une repr´sentation en XML. Une application qui nous int´resse particuli`rement est le RSS (Really Simple Syndication) que e e l’on peut traduire par “souscription vraiment simple”. de e mani`re native. A ceci pr`s que les balises ne sont pas pr´-d´finies. La norme XML impose e e en effet que les sets de caract`res UTF-8 et UTF-16 soient support´s. ils peuvent s’adapter ` e e a tous types d’applications et ce. Ceci pr´sente l’avantage d’ˆtre lisible par les e e e hommes comme par les machines. Du point de vue de l’utilisateur.0 et ils se trouvent ˆtre cod´s en XML. e e Du point de vue de la machine. mais pour peu que les programmes utilisent les mˆmes formalismes XML.org/TR/2006/REC-xml-20060816/#charsets . Il s’agit e e l` de la norme unicode qui vise ` regrouper tous les caract`res de toutes les a a e formes de langages en une seule et mˆme norme6 . nous avons e l` un bon moyen d’´change d’informations. et ce depuis 2003. Ce mˆme fichier pourra ˆtre partag´ entre deux programmes diff´rents e e e e de gestion de calendrier. la structure mˆme du fichier permet de comprendre la mani`re dont les e e donn´es sont imbriqu´es. un fichier XML est parfaitement lisible car les noms des balises sont souvent ´loquents et permettent leur compr´hension.

e ee on peut donc mod´liser cette structure sous la forme d’un arbre . – Entre les balises figure ce que l’on appelle le texte. le DOM (Docue e ment Object Model). le jeu de caract`res d’encodage et ´ventuellement de sp´e e e e cifier si le fichier est standalone c’est-`-dire d´pendant d’autres fichiers ou a e pas. permettant d’identifier la version e utilis´e du langage. e – La troisi`me ligne d´bute le document XML proprement dit. – La deuxi`me ligne constitue un commentaire. Le DOM est une repr´sentation informatique d’un document XML. ce qui est e d’ailleurs l’objet d’une recommandation tr`s pr´cise du W3C.´ CHAPITRE 4. qui constitue le squelette du docue ee ment. et d’une liste de fils.. C’est la balise qui e e contiendra toutes les autres. Un ´l´ment d’un fichier XML est donc constitu´ d’un nom. d’un ´ventuel atee e e tribut. <annuaire> est appel´e racine. qui sont ´galement des ´l´ments. LE META-LANGAGE XML 30 peuvent contenir. Il permet e une standardisation pour la lecture et la manipulation des documents par le . La premi`re balise. Voici un exemple de code XML. Intuitivement. mais nous y reviendrons. – La balise <contact id="a1"> diff`re l´g`rement des autres en ce qu’elle e e e contient un attribut. Il s’agit en l’occurrence de l’identifiant du contact.Description de mon annuaire --> <annuaire> <contact id="a1"> <non>Dion</nom> <prenom>Caroline</prenom> <adresse> <pays>Canada</pays> <province>Quebec</province> <ville>Montreal</ville> <zip>H1W3Y5</zip> <rue>La Fontaine Ouest</rue> <num>1550</num> </adresse> <tel>514-738-2167</tel> </contact> <contact> . </contact> </annuaire> Analysons ce document XML basique.0" encoding="ISO-8859-1" ?> < !-. Il s’agit d’un e e ensemble de balises appel´es ´l´ments. Il est constitu´ de plusieurs ´l´ments e ee distincts : – La premi`re ligne constitue le prologue.. d´crivant un classique annuaire : e < ?xml version="1.

” e Nous aurons l’occasion d’y revenir plus tard dans ce chapitre. il est n´cessaire de le e valider. Il existe plusieurs langages e e permettant de d´finir ces conditions. Nous allons ici nous concentrer sur les deux langages les plus couramment utilis´s.. la modification et la suppression des ´l´ments. Plus particuli`rement : e • Le fichier XML doit ˆtre un document. c’est-`-dire de s’assurer qu’il se conforme bien ` des r`gles pr´-d´finies a a e e e (contraintes. il convient de distinguer deux notions importantes : – Un document XML est valide s’il satisfait aux contraintes impos´es (par e exemple : le num´ro de rue ne peut contenir de lettres. L’analyseur XML pourra ensuite valider le document s’il rencontre la grammaire pr´alablement d´finie.6 Validation d’un document XML Afin de garantir le fonctionnement d’un document XML. 7 http://www. l’ajout.).w3. e e • Chaque entit´ analys´e doit ˆtre bien form´e au sens de la sp´cification. ou langages de sch´mas. e • Il doit rencontrer toutes les contraintes d´finies dans la sp´cification.. . fils3 ). ou plusieurs ´l´ments. d´finis ` l’aide d’une balise ouvrante et d’une balise fermante e a du mˆme nom. fils2. e e Soit il contient un ´l´ment. embrigad´s ee ee e dans la racine.´ CHAPITRE 4. e e e e e Pour ˆtre valide. on a besoin d’exe primer des conditions. Ces diff´rents langages ont leurs forces et e e leurs faiblesses. A ce sujet. g´n´ralement compris par les outils de validation XML : e e e les DTD (Document Type Definition) et le XML Schema. d´finit le DOM comme suit (traduit de e l’anglais) : “Une interface ind´pendante du langage et de la plate-forme qui e permet aux programmes et aux scripts d’acc´der et de mettre a jour e ` de mani`re dynamique le contenu. LE META-LANGAGE XML 31 biais d’un programme. ]. – Un document XML est bien form´ s’il correspond ` la sp´cification du e a e langage. la structure et le style des doe cuments. la racine. . Le DOM procure un ensemble d’objets standardis´s pour e repr´senter des documents XML et HTML [. Ceci inclut : la cr´ation de documents. et donc e e e correspondre ` la sp´cification. ee Le W3C. e e e Afin de pr´ciser ce qu’un document peut ou doit contenir.org/TR/REC-DOM-Level-1/ . dans sa recommandation7 . un ´l´ment doit avoir e ee au moins trois fils fils1. 4. conditions. Le processus de validation d’un document est a e sensiblement plus compliqu´ que son caract`re bien form´. au sens de la sp´cification du W3C. un document XML doit tout d’abord ˆtre bien form´. ils sont g´n´ralement appell´s Schemas e e e e Languages. la navigation au e sein de sa structure. .

ville.1 Le DTD Le DTD se concentre sur la structure mˆme du document . Cependant. il a montr´ plusieurs faiblesses dont certaines se e sont r´v´l´es probl´matiques. e a Voici.´ CHAPITRE 4. inclut dans la sp´cification du W3C.. il en d´finit la e e syntaxe.0 qui permettent de r´soudre des conflits d’homonymie de balises dans les documents e XML. On peut alors r´utiliser ces e e balises et les distinguer des balises pr´sentes dans notre propre fichier XML. on ne peut pas tout repr´senter dans le format DTD.6. adresse. pour souci de modularit´. lors de l’inclusion de ces fichiers XML. e e Deuxi`mement. c’estea c e e a `-dire utiliser les mˆmes formalismes au niveau des balises. accessible depuis le document XML via e e e une URL sp´cifi´e). notame e ment les namespaces. province. le DTD n’a pas une syntaxe XML. Pour utiliser des namespaces d´j` existants. tel)> contact id ID #REQUIRED> nom (#PCDATA)> prenom (#PCDATA)> adresse (pays. e e Le DTD est simple d’application. zip.] < !ELEMENT annuaire (contact+)> contact (nom. Le DTD est natif au XML. e ee e Premi`rement. num)> pays (#PCDATA)> province (#PCDATA)> ville (#PCDATA)> tel (#PCDATA)> . prenom. ` titre d’exemple. une portion de code DTD qui valide le code XML de a notre exemple : < !ELEMENT < !ELEMENT < !ATTLIST < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT [. En effet. d’autres balises pr´sentes ant´rieurement pr´sentaient les mˆmes noms. Il pourrait alors se e produire des collisions si. il ne supporte pas les nouvelles fonctionnalit´s du XML.. LE META-LANGAGE XML 32 4. on pr´cise si elle provient du namespace ou pas. Les namespaces sont une extension de la norme 1. La e d´finition d’un document XML peut se faire via un DTD en interne (les d´e e finitions sont incluses dans le fichier XML proprement dit) ou en externe (les d´finitions sont dans un fichier s´par´. si un vocabulaire de balises (Markup e Vocabulary) est d´j` cr´´ pour un domaine particulier. on veut pouvoir le r´utiliser. il ne s’agit pas d’un document XML bien-form´ . Certains e e formalismes XML ne sont tout simplement pas repr´sentables et le typage des e donn´es est tr`s g´n´raliste. sa syntaxe ne correspond pas ` la norme XML. il permet de v´rifier rapidement la validit´ e e d’un document. avec des programmes e a ee d´j` con¸us permettant leur interpr´tation. il suffit de pr´ciser e ea e au document XML une URL via le mot cl´ xmlns. mais d´crivant des obe e e e e jets diff´rents. e Lors de l’´criture d’une balise. e e e e Enfin. rue.

contact+ signifie que l’´l´ment e e e e ee peut avoir un ou plusieurs fils de ce type. nous d´crivons le langage XML Schema. Les bool´ens. h´ritant de leur contenu et ´ventuels e e a ee e e attributs. il existe un mot r´serv´ e e ID dans DTD qui permet de pr´ciser que la valeur attendue doit ˆtre unique. qui pallie e notamment ` ce probl`me.6.2 Le langage XML Schema Le XML Schema a ´t´ d´crit pour la premi`re fois dans la recommandation du ee e e W3C en Mai 2001. sont e e repr´sentables avec le XML Schema. le document XML n’aurait pas pu ˆtre e e valid´. entiers. <?xml version="1. on ne peut pr´ciser quel type de chaˆ de caract`res e ıne e est attendue ` un endroit sp´cifique.. e Ceci d´montre clairement une des plus grandes faiblesses de DTD . LE META-LANGAGE XML Quelques pr´cisions sur ce document DTD : e 33 – Pour chaque ´l´ment (ou balise). par exemple. En l’occurrence. et ee e e ses ´ventuels fils. .´ CHAPITRE 4. En effet. e e e Il introduit notamment le typage des donn´es. Si nous avions entr´ e un autre contact avec le mˆme ID.w3. e Autre apport int´ressant. Il s’agit en fait d’un compromis des diff´rents langages e de sch´mas pr´c´dents. d’un fichier exclusivement canadien. XML Schema permet l’h´ritage. e e Ceci permet d’affiner le fonctionnement de l’analyseur. son manque e de souplesse. . nous devons pr´ciser le type d’entr´e dont il va s’agir. Des ´l´ments peuvent e e ee ˆtre d´finis ` partir d’autres ´l´ments. Il est grandement inspir´ de ses pr´d´cesseurs. . e e e XML-DATA et XDR. e – Pour chaque ´l´ment. Voici quelques morceaux choisis du code XML Schema validant notre exemple XML. ] . Nous ne d´taillerons ıne e e pas ici les diff´rents types possibles.. – Les attributs sont d´finis ` l’aide du mot-cl´ !ATTLIST qui pr´cise le nom de e a e e l’attribut et la valeur que l’on attend. . . les codes postaux doivent ˆtre de la forme LCLCLC.org/2001/XMLSchema"> <xsd:element name="nom" type="xsd:string"/> [. Les namespaces sont ´galement reconnus e e et la syntaxe XML Schema est une syntaxe XML bien form´e. a e 4. ee e e PCDATA signifie que l’on attend une chaˆ de caract`res.0" encoding="ISO-8859-1"?> <xsd:schema xmlns:xsd="http://www. d´fini par !ELEMENT. S’agissant. on pr´cise son nom. e Dans la section suivante. ] <xsd:element name="num" type="xsd:int"/> [. ´nonc´s entre paranth`ses. Il pourrait ˆtre int´ressant par exemple de a e e e pr´ciser quel format doit avoir la chaˆ de caract`res compris entre les balises e ıne e <zip>. tels que SOX.

] <xsd:element ref="num"/> </xsd:sequence> </xsd:complexType> </xsd:element> [. ce sch´ma de validation s’attelle e e a e e a e ` d´finir les types dits “simples”. ils e a utilisent pleinement les namespaces. soit pr´e ee e d´fini. dans le cas qui nous int´resse. Il s’agit ici de la ıne e d´finition de la balise zip. et que ıne e la balise <num> s’attend ` contenir exclusivement des entiers. En l’occurrence. ] <xsd:element name="annuaire"> <xsd:complexType> <xsd:sequence> <xsd:element ref="contact" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> Regardons plus en d´tails la structure de ce morceau de code XML Schema : e – Les documents XML Schema r´pondent ` la syntaxe XML. . Tous les ´l´ments e e ee pr´fix´s de la variable xsd sont donc d´finis dans le namespace du W3C. e e e – En XML Schema. car vient ensuite la possibilit´ e e de d´finir des types dits “complexes” ` partir des ´l´ments d´j` d´finis. Prenons comme postulat que le carnet d’adresses e que nous tentons de d´finir en XML sera utilis´ uniquement au Canada. a – Illustrons maintenant la possibilit´ qu’offre le langage XML Schema de pr´e e ciser le format d’une chaˆ de caract`res que l’on attend. e a e En effet. . a e e Il est de bon usage de proc´der comme cela. . soit d´fini ` la vol´e.´ CHAPITRE 4. e e . on d´finit les ´l´ments et on leur associe un type. c’est-`-dire les types pr´-d´finis par la norme. . Il est e a ee ea e int´ressant de remarquer que l’apport de ce casting apporte beaucoup plus de e pr´cision et de souplesse quant ` la d´finition du document XML que les DTD. Ce sch´ma de validation fait appel au e namespace pr´-d´fini par la norme XML Schema du W3C. LE META-LANGAGE XML 34 <xsd:element name="zip"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value=red"[A-Z][0-9][A-Z][0-9][A-Z][0-9]"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="adresse"> <xsd:complexType> <xsd:sequence> <xsd:element ref="pays"/> [. nous sommes capables de pr´ciser que e e la balise <nom> comprendra obligatoirement une chaˆ de caract`res. A ce titre.

nous utiliserons analyse e pour parsing et analyseur pour parser. nous n’aurions pu. e e pr´ciser que la chaˆ de caract`res HF56HG n’est pas un code postal canadien e ıne e valide. En XML Schema. Celle-ci contient exclusivement des ´l´ments XML ee pr´alablement d´finis dans le code. SAX — ou Simple API for XML — est une m´thode qui consiste ` e a traiter les ´l´ments du document les uns apr`s les autres au fur et ` ee e a 8 Afin d’´viter la redondance de termes anglais dans cette section. d´crit ses e e e e e e documents et pr´sent´ la mani`re dont nous nous assurons qu’ils sont valides. que nous ne pr´senterons pas dans le cadre de ce e m´moire. L’attribut e a e unbounded signifie que la balise <contact> peut se r´p´ter ind´finiment au e e e sein de la balise <annuaire>. nous pouvons pr´ciser qu’une chaˆ de e ıne caract`res est attendue. via les namespaces. – La derni`re section du code pr´sent´ d´finit l’´l´ment racine. et lui associer une restriction. on trouve plusieurs alternae e e tives. deux standards s’affrontent : 1. et de le valider sur base du e XML Schema ou du fichier DTD fourni en param`tre. ´nonc´ ses concepts. Cela se fait ` l’aide du mot-cl´ maxOccurs. e e e nous pouvons aborder l’´tape ultime : l’analyse ou parsing. e Nous pouvons observer que le langage XML Schema palie ` beaucoup de faia blesses des DTD. Notons ee que nous pouvons pr´ciser le nombre d’occurrences possibles d’un ´lement au e e sein de la s´quence. et les DTD peuvent ˆtre inclus dans le e fichier XML ou pas. A l’aide d’XML Schema. On pr´cise. du format du code postal et imposer qu’il corresponde bien au format canadien. Les sch´mas peuvent ˆtre e e e locaux ou distants. les attributs minOccurs et maxOccurs ont par d´faut la valeur 1.´ CHAPITRE 4.7 Les analyseurs XML D`s lors que nous avons pr´sent´ le langage XML. lorsque l’on d´finit une s´e e quence. ainsi nomm´ car e e e e ee e compris dans aucun autre ´l´ment. . en l’occure e e rence la balise <adresse>. ` l’aide du type complexe via e e e a le mot cl´ xsd:sequence. dans notre validation. LE META-LANGAGE XML 35 Dans ce cas. e 4. En terme d’analyseurs XML. La principale de ses qualit´s est de permettre une d´finition e e pr´cise des donn´es attendues. par exemple. Hormis les deux langages pr´c´demment d´finis. Chaque ´l´ment de la s´quence fait r´f´rence ` un ´l´ment d´fini ee e ee a ee e plus haut dans le code. ` savoir a LCLCLC. nous pouvons tenir compte. dont les principales et les plus couramment utilis´es sont le langage Relax e NG et le langage Schematron. en l’occurrence que la e chaˆ de caract`res doit bien correspondre au format LCLCLC.8 e L’analyseur est charg´ de lire le document XML. Avec les DTD. Il s’agit de la balise <annuaire>. la s´quence d’´l´ments que doit contenir la balise e e ee <adresse>. ıne e – La section suivante du code ici repr´sent´ d´finit un type complexe.

A ce titre. mati`re e Ce test s’est fait dans le cadre du d´veloppement d’API java. Or. e Le test montre clairement que plus la taille du fichier augmente. Charger tout un document en m´moire e peut s’av´rer tr`s probl´matique si les donn´es sont tr`s volumineuses. Les applications peuvent donc parcourir le doe e cument. utilisant e e la structure d’arbre intrins`que des documents XML. s’il s’agit d’un e e avantage. car aucune solution n’est parfaite. ne seront pas utilis´es dans les mˆmes circonstances. par voie e de cons´quence. De plus.´ CHAPITRE 4. et les acc`s au sein du fichier divers et vari´s. e e e La m´thode SAX va parcourir le fichier XML et va appeller la fonction correse pondante lorsqu’elle rencontre une unit´ lexicale.com/developer/technicalArticles/xml/JavaTechandXML_ part2/ . Nous pouvons bien sˆ r minimiser ce probl`me avec des techniques de type lazy. Gageons que si la quantit´ de donn´es avait ´t´ a e e ee relativement r´duite. Le principal ´tant que le document oe e entier est charg´ en m´moire.sun. Cependant. le document commence ` ˆtre analys´ d`s que l’analyseur d´marre. il s’agit aussi d’une faiblesse. plus SAX est efficace par rapport ` DOM. Ils ont e e test´ les fichiers XML comprenant de 10 ` 5000 configurations. Il repr´sente le document XML dans un arbre. ` plue a sieurs titres. via son ´quipe de d´veloppement JAVA a fait des tests en la ee e e 9. Il faudra trouver e e un compromis. de swap-in et swap-out en m´moire. si l’information que nous sommes en train e e de traiter est une information particuli`rement demand´e. c’est dans ce cas pr´cis que la m´thode DOM paraˆ e e ıt la plus efficace de prime abord. LE META-LANGAGE XML 36 mesure du parcours du fichier XML. Quel est alors l’int´rˆt d’occuper tout cet espace m´moire ? ee e La m´thode choisie d´pendra donc du contexte d’utilisation. d`s qu’elles le veulent. Et les tˆches ` accomplir sont a a rarement d’un type ou de l’autre. e 9 source : http://java. En effet. e la soci´t´ SUN. e e e e 2. mais bien d’un m´lange des deux. Et cela e e e e e arrive fr´quemment en XML. nous y gagnons en e e terme de suppression de parcours inutiles. Deuxi`mement. ae e e e De son cˆt´. DOM a aussi des avantages. il se peut que le programme op´rant e sur un gros fichier XML n’ait besoin que d’une petite partie de celui-ci. u e mais le probl`me n’est pas r´solu si nous voulons acc´der fr´quemment ` des e e e e a informations diverses. DOM aurait e e e montr´ de meilleurs performances. on ne traite qu’une seule (et petite) partie du fie chier simultan´ment. Premi`rement. e Les deux techniques ont donc une approche radicalement diff´rente et. Ceci est avantageux. e Enfin. enti`rement ou non. Le document e XML repr´sentait un ensemble de configurations possibles aux ´checs. e une fonction de callback est appel´e et l’´v´nement est trait´. afin de d´gager e a e l’influence de la taille du fichier sur ces m´thodes. cette mani`re de proc´der ne prend que tr`s peu e e e e d’espace m´moire. nous en parlerons dans la prochaine section de ce e chapitre. Lorsqu’il identifie une unit´ lexicale. DOM — ou Document Object Model — fonctionne d’une mani`re toute a `-fait diff´rente.

qui permet de parcourir un document XML ` travers ses diff´rents a e noeuds. Voici le code XSLT effectuant cette transformation : <?xml version=’1. qui e e comprend le XSLT. le XSL-FO (qui permet de formater un document XML. et transformons-le en langage HTML. il est notamment utilis´ pour la g´n´ration des documents PDF) et le langage e e e XPath. ` l’aide d’une a a feuille externe CSS par exemple.´ CHAPITRE 4. Ceci est e particuli`rement utile lorsque l’on veut qu’un site internet affiche un document e XML. nous allons largement utiliser ce langage dans le cadre de ce m´moire. L’objectif de ce langage est de transformer un document XML en un autre document XML. Il est un d´riv´ de la famille des langages XSL. e XSLT signifie eXtented Stylesheet Language Transformations. En e effet. Une feuille de style XSLT prend donc en param`tre un document XML. Consid´rons ` nouveau notre exemple e a XML de la page 30.7. qui utilise une technique de r´cursivit´ e e e descendante. e 4. et proe duit un autre document (XML. mais nous choisissons de ne pas les d´tailler ici.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/annuaire"> <html><head><title>Exemple de tranformation</title></head> <body><h1>Mon annuaire</h1> <table border="1"> <xsl:apply-templates/> </table></body></html> <xsl:template/> <xsl:template match="contact"> <tr> <td><xsl:value-of select="nom"/></td> <td><xsl:value-of select="prenom"/></td> <td><xsl:value-of select="adresse/num"/>. <td><xsl:value-of select="tel"/></td> </tr> </xsl:template> </xsl:stylesheet> . citons StAX.0" xmlns:xsl="http://www. LE META-LANGAGE XML 37 D’autres m´thodes existent. HTML) dans un formalisme diff´rent. Voici un exemple de l’utilisation du XSLT.0’?> <xsl:stylesheet version="1. du XHTML par exemple. Nous pouvons ajouter ` l’XML brut une mise en page. <xsl:value-of select="adresse/rue"/><br/> <xsl:value-of select="adresse/zip"/>&#160.1 XSLT Nous ne pouvons quitter cette pr´sentation du XML sans aborder le XSLT.

Ensuite. a e e e . Il sera particuli`rement e e e utilis´ dans le cadre de ce m´moire.8 Conclusions Dans ce chapitre. nous nous d´pla¸ons ` e c a travers le fichier source XML ` l’aide de la syntaxe XPath. 4. repr´sente un espace en XML.. Deuxi`mement. nous a voyons qu’il ne s’agit ni plus ni moins que d’un document XML. ee e Le caract`re &#160 .´ CHAPITRE 4. Rappelons que ces a langages sont ´troitement li´s. plusieurs ee e lignes du tableau auraient ´t´ rajout´es. LE META-LANGAGE XML 38 Fig. le code produit par la transformation de notre balise <contact>. nous pouvons fermer les balises pr´c´demment rest´es e e e ouvertes. Tout d’abord. e e Le prochain chapitre pr´sente le langage GML. Ene e suite nous commen¸ons un tableau. le e e processeur XSLT le remplacera automatiquement par &nbsp . en l’occurrence le HTML. au niveau de c la balise <annuaire>.1 – Aper¸u de la transformation XSLT dans Firefox c Le langage XSLT est relativement intuitif ` comprendre. Nous pr´cisons e le format de sortie. Premi`rement. nous travaillerons avec des e e e donn´es exprim´es en XML. e utiles ` la bonne compr´hension du travail r´alis´. quand nous commen¸ons la lecture de notre document XML. Si plusieurs contacts avaient ´t´ pr´sents dans le fichier. nous avons pr´sent´ le langage XML. nous ´crivons l’en-tˆte du fichier HTML. Le mot cl´ XSLT apply-templates signifie c e que nous allons ins´rer ` cet endroit pr´cis le code g´n´r´ par les fils du noeud e a e e ee courant. et nous les traiterons ` l’aide d’une feuille de style e e a XSLT. du moins certains de ses aspects.1. qui est un d´riv´ du XML. qui est l’espace ins´cable de l’HTML. Etant donn´ que notre output est en HTML. en l’occurrence. nous identifierons une zone g´ographique ` l’aide d’un e e a document GML. et un titre. Il s’agit du num´ro du e e e caract`re espace en unicode. La page HTML ainsi produite est illustr´e ` la figure 4. Ensuite. Le “match” de la balise <contact> produit simplement une ligne de tableau par contact. nous devons pr´ciser quelle sera la sortie HTML correspone dante. e e a 4. Quand nous faisons un “match” d’un noeud du e e document XML. Ici.

propri´taire.1 Introduction Le langage GML. l’Open Geospatial ee e e Consortitum. car seuls les outils propos´s par le fournisseur ´taient compatibles e e e avec le format de donn´es. cette situation de monopole rendait impossible le partage de donn´es e entre organisations ce qui. et ce. il e a moins de dix ans.2 Pr´sentation e Le langage GML est n´ du besoin de fournir aux compagnies et organisations e une possibilit´ de faire ´voluer leurs donn´es g´ographiques. Nous allons le pr´senter. Parmi les formats propri´taires poe e e 39 . Cela avait des cons´quences probl´mae e e e tiques. En effet. et est de plus e e e e en plus utilis´ en repr´sentation spatiale. la transposition des donn´es vers un autre format ´tait partie e e culi`rement fastidieuse. ou Geography Markup Language. mˆme s’il ne correspondait plus ` leurs desiderata. ´tait un inconv´nient majeur. excluant dans beaucoup de cas la possibilit´ de changer e e de syst`me propri´taire [15]. est valid´ par un sch´ma XML. Il a ´t´ imagin´ et propos´ par l’OGC. compte tenu du volume consid´rable de donn´es e e disponibles. e e a Enfin. Les compagnies ´taient donc contraintes de garder e e e leur syst`me. ` ce titre. e e ´noncer ses concepts fondateurs mais aussi discuter des avantages et inconv´e e nients allant de paire avec son caract`re textuel. Il est ´crit en XML et. Premi`rement. en fait une noue e e velle alternative face aux techniques propri´taires. et sa compr´hension relativement ais´e. e a e e Ce langage permet de d´crire diff´rentes entit´s g´ographiques. avant l’an e e e e 2000. e 5. les organisations ayant recours ` la g´omatique ´taient cantonn´es ` un a e e e a format de stockage d´fini. ces donn´es ne pouvaient ˆtre analys´es qu’avec un nombre lie e e e mit´ d’outils.Chapitre 5 Le langage GML 5. e e Son caract`re ouvert. e Deuxi`mement. est relativement r´cent .

Ces profils sont publics et d´di´s ` des usages sp´cifiques. Il regroupe plus de 250 compagnies. mais a nous y reviendrons plus tard. le e e transport.opengeospatial. ee Le langage GML a ´t´ introduit par l’OGC qui est l’acronyme d’Open Geospatial ee Consortium. Ceci e e ee e constitue ` notre sens une force mais aussi une faiblesse du langage GML. ayant pour but de d´velopper un langage qui permet le traitement. les profils sont un ensemble pr´-d´fini e e e e de fonctionnalit´s du GML. rendant plus simple et plus attirant l’emploi du e e a e GML. Il ´tait donc n´cessaire que des compagnies int´ress´es par le traitement de e e e e donn´es g´o-spatiales s’unissent et se concertent afin de d´gager des pistes de e e e travail tendant vers une harmonisation du secteur. e – augmenter les capacit´s qu’ont les organisations de partager des sch´mas e e d’application et l’information qu’ils d´crivent. Le sch´ma d’application permet de valider le document e GML (il n’est autre qu’un XML Schema. Parmi les profils les plus connus. e a e L’OGC d´finit lui-mˆme le langage comme suit1 : e e “Le GML est un langage ´crit en XML pour la mod´lisation.CHAPITRE 5. aujourd’hui d´tenue e e e par Pitney Bowes. Contrairement aux sch´mas d’application. ind´pendant pour la d´finition des sch´mas e e e d’application g´o-spatiaux. on peut citer le point profile. concernant les applications avec donn´es g´om´triques qui n’ont pas besoin de toute la e e e 1 source : http://www. e e e e Un sch´ma d’application GML est un ensemble de r`gles GML d´di´es ` un e e e e a domaine particulier. LE LANGAGE GML 40 pulaires. la mod´lisation et le stockage d’informations ` teneur g´ographique. e e e – permettre l’existence de profils compos´s de sous-ensembles des capacit´s e e descriptives du GML. Il s’agit en fait de restrictions sur le langage. pare ticuli`rement efficaces car le langage est con¸u de mani`re ` toucher le plus e c e a grand nombre de domaines d’application possibles.org/standards/gml . Le langage est bas´ selon plusieurs principes fondateurs. qui vont extraire du langage GML e les seules possibilit´s qui les int´ressent. e e le transport et le stockage d’informations g´ographiques incluant les e propri´t´s spatiales et non-spatiales inh´rentes aux donn´es g´ograee e e e phiques”. e – supporter la description de sch´mas d’application g´o-spatiaux pour des doe e maines sp´cialis´s et des communaut´s d’information. agences gouvernementales et universit´s. Il convient ici de pr´ciser deux termes employ´s dans le paragraphe pr´c´dent. dont nous avons parl´ dans le chapitre e pr´c´dent) et il permet au logiciel consid´r´ d’interpr´ter le fichier GML. e – supporter le stockage et le transport de sch´mas d’application et d’ensembles e de donn´es. on peut citer SHAPE (d´velopp´ par ESRI) et MIF(Mapinfo Intere e change Format) [16] d´velopp´ par MapInfo Corporation. C’est dans ce contexte que fut cr´´ le langage GML. parmis lesquels1 : e – procurer un framework ouvert.

CHAPITRE 5. LE LANGAGE GML

41

grammaire GML, simple geometry, dont la grammaire contiendra seulement les figures g´om´triques basiques du GML, et le web publishing, reprenant quelques e e outils utiles ` la diffusion sur internet. a Le GML est relativement r´cent. Il est tir´ de l’OpenGIS abstract specification 2 , e e qui d´finissait, de mani`re conceptuelle et abstraite, les fondements qui devaient e e conduire ` un projet d’inter-op´rabilit´ des donn´es g´ographiques. Ces recoma e e e e mandations ont servi de mod`le de r´f´rence ` la cr´ation du GML. e ee a e Le GML est n´ de la collaboration de deux compagnies, toutes deux membres e de l’OGC : LizardTech, bas´e ` Seattle aux Etats-Unis et Galdos Systems Inc., e a bas´e ` Vancouver au Canada. Chacune de ces compagnies a apport´ son exe a e p´rience dans un domaine de comp´tence particulier ; la premi`re ´tait sp´cialie e e e e s´e dans la compression pour les technologies d’imagerie g´o-spatiale bas´e sur e e e JPEG2000 (qui est une sp´cification de format de fichier am´liorant le format e e JPEG) et la deuxi`me d´veloppait GML en vue de parfaire les syst`mes d’ine e e formation g´ographique, ou GIS, dont nous avons parl´ pr´c´demment dans ce e e e e m´moire. e

5.3

Description

Nous l’avons dit plus haut, le but premier du GML est de d´crire le monde e r´el, notamment suivant des crit`res g´om´triques et topographiques. Il permet e e e e de d´crire des entit´s g´ographiques (un building, une autoroute, une route, e e e un fleuve, ...), des informations de couverture, des observations, des unit´s de e mesure (longueur, temp´rature, temps, ...), ou encore un syst`me g´od´sique e e e e (axes de r´f´rences). ee L’´l´ment principal d’un document GML est la “feature”. Elle d´crit un ´l´ment ee e ee du monde r´el (un bˆtiment par exemple) et on peut lui associer un ensemble e a d’attributs (nom, valeur, type). Certaines propri´t´s peuvent ˆtre g´om´triques ee e e e comme ses coordonn´es, ou la couverture de cette feature. En effet, une feature e peut ˆtre compos´e d’un ensemble de features. Par exemple, une ville compree e nant routes, maisons, rivi`res, ... est aussi une feature et on imagine ais´ment e e qu’on lui associe une couverture, qui est d´finie g´om´triquement. e e e Le GML permet ´galement de repr´senter plusieurs figures g´om´triques, telles e e e e que des sph`res, des cylindres, des triangles, . . . Les surfaces peuvent ˆtre e e d´finies selon des figures pr´-´tablies, ou des polygones, qui consistent en un e ee ensemble de segments ` d´finir via un syst`me de coordonn´es. a e e e Autre concept important du GML, les observations. Une observation repr´sente e ce que l’on a pu capter, par exemple ` l’aide d’une cam´ra. L’observation est a e une feature ` laquelle on associe une date, et l’observation ne vaut que pour a cette date. Voici un exemple succinct de code GML qui illustrera quelques-unes des possibilit´s offertes par ce langage et qui permettra de se rendre compte de ce e
2 http://www.opengeospatial.org/standards/as

CHAPITRE 5. LE LANGAGE GML

42

qu’est un sch´ma d’application. Cet exemple est bas´ sur le sch´ma d’application e e e city.xsd, provenant des exemples propos´s par l’Open Geospatial Consortium, e dont nous avons parl´ plus haut. Ce sch´ma d’application s’attelle ` fournir les e e a outils n´cessaires pour d´crire une ville. Des libert´s ont ´t´ prises par rapport e e e ee au sch´ma originel, ceci afin d’illustrer la notion de couverture, dont nous nous e sommes servis dans ce m´moire. e <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Exemple de code GML --> <CityModel xmlns="http://www.opengis.net/examples" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/examples City.xsd">

Cette partie de code illustre tr`s bien ce qu’est le GML et comment il fonctionne. e La premi`re ligne est l’en-tˆte classique d’un document XML, ce qui d´montre e e e que le GML n’est ni plus ni moins qu’un document ´crit en XML. A ce titre, il e peut ˆtre valid´ ` l’aide des analyseurs XML, il suffit de pr´ciser le sch´ma face e ea e e auquel nous d´sirons valider le document. e Ensuite commence notre document GML proprement dit. Cette premi`re balise, e <cityModel> est particuli`rement int´ressante. Ses attributs font appel aux nae e mespaces (voir chapitre pr´c´dent) qui permettent d’employer les balises GML e e au sein du document. Toutes les balises commen¸ant par <gml:> seront v´rifi´es c e e et valid´es ` l’aide des sch´mas du langage GML. La derni`re ligne permet de e a e e lier le pr´sent document ` un XML Schema qui validera ce document. e a Il est int´ressant de remarquer que la premi`re balise n’est pas une balise GML. e e Ceci illustre v´ritablement la mani`re dont on se sert du GML. Chaque domaine e e d’application aura ses propres balises XML, valid´es par un sch´ma correspone e dant. C’est cela que l’on entend par sch´ma d’application. Au sein de ces balises e XML, qui seront comprises et interpr´t´es par une ou plusieurs applications d´ee e di´es, on trouvera des balises GML, pr´-d´finies par la norme du langage, qui e e e serviront ` d´crire le plus fid`lement possible des donn´es g´ographiques. a e e e e <gml:name>Montreal<gml:name <gml:boundedBy> <!--City Bounding Box--> <gml:box srsName="http://www.opengis.net/gml/srs/ epsg.xml4326"> <gml:coord><gml:x>-75.0</gml:x><gml:y>46.0</gml:y> <gml:coord><gml:x>-73.0</gml:x><gml:y>45.0</gml:y> </gml:box> <gml:polygon> <gml:outerBoundaryIs> <gml:LinearRing>

CHAPITRE 5. LE LANGAGE GML

43

<gml:coordinates xmlns:gml="http://www.opengis.net/ gml" decimal="." cs="," ts=" "> -73.33,45.33 -73.27,45.28 -73.18,45.15 -73.0,45.13 -72,94, 45.0 -72.89,45.76<!--...--> -73.33,45.33 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:polygon> </gml:boundedBy>

Nous rentrons ici dans la description (raccourcie) de notre ville, conform´ment e a ` ce qui est d´fini dans le fichier distant city.xsd. Nous pr´cisons le nom de la e e ville, Montr´al, et d´finissons son “Bounding Box ”, que l’on pourrait traduire par e e rectangle recouvrant. Il est de bon usage de recourir aux rectangles recouvrants afin d’acc´l´rer la recherche des zones ` consid´rer. En effet, si nous d´finissons ee a e e la ville uniquement ` l’aide d’un polygone ´pousant ses contours, la zone ` a e a afficher par le logiciel sera moins facilement et moins rapidement identifi´e. En e pr´cisant un rectangle recouvrant, nous pouvons afficher ce rectangle de carte, e aller chercher les donn´es s’y rapportant plus rapidement, . . . Un inconv´nient e e de cette m´thode est que nous allons inclure des informations dont nous n’avons e pas besoin, mais la pratique reste efficace. Ensuite vient la d´finition des limites de la ville proprement dites, ` l’aide d’un e a polygone (abr´g´ ici). Comme cit´ plus haut, il existe en GML plusieurs mae e e ni`res de d´finir une zone de couverture. Dans le cas d’une ville, la plus pr´cise e e e est ´videmment le polygone. On utilise pour cela la balise <gml:LinearRing>, e qui est un ensemble de segments de droites formant un espace ferm´, c’est-`-dire e a que le premier point du premier segment doit ˆtre le mˆme que le dernier point e e du dernier segment. Nous pourrions, au besoin, d´finir d’autres zones, afin par e exemple d’inclure des ˆ ıles, ce qui serait particuli`rement utile dans le cas de la e ville de Montr´al. e <citymember> <Road> <gml:name>Blvd. St-Laurent</gml:name> <gml:linearGeometry> <gml:LineString srsName=http://www.opengis.net/gml/srs/epsg.xml4326"> <gml:coordinates>-73.333,45.333 -73.339,45,331 <!--...-->-73.322,45,330</gml:coordinates> </gml:LineString> </gml:linearGeometry> <gml:classification>Avenue</gml:classification> </Road> </citymember>

que nous repr´senterons ` l’aide d’un succession e a de segments ` l’aide de la balise lineargeometry. Ce sch´ma permet e e d’ajouter des propri´t´s g´om´triques aux features. nous nous contena terons d’ajouter un boulevard. son propre contexte d’utilisation. Un sch´ma de features. d’une mae e ni`re universelle. a Cet exemple GML illustre ´galement bien la notion de “features”. Dans la norme 1. La norme 2. on e utilisait les DTD. Comme ee nous l’avons ´voqu´ lors de notre pr´sentation sur le XML Schema. 5. autoris´ l’utilisateur ` ajouter son propre e a vocabulaire. cela a permis e e e encore plus de flexibilit´ dans les documents GML. le XML a e e e Schema que nous connaissons aujourd’hui a ´t´ introduit dans la norme. au e e e e e a prix d’un ´cartement progressif des valeurs fondatrices. Il devenait possible de se e cr´er un environnement r´pondant fid`lement et pr´cis´ment ` ses besoins. GML 1. que nous ne d´taillerons pas dans le pr´sent m´moire. on s’´loigne du e e principe d’un sch´ma universel compris et g´r´ par tout le monde. on utilisa les RDF/S.3.2. tous les diff´rents aspects g´o-spatiaux que l’on pouvait rene e e contrer. un e autre langage de sch´ma. Le e e XML Schema est adopt´ et on voit apparaˆ la gestion des namespaces provee ıtre nant d’XML.com/archives/315 . La balise e <citymember> est une collection de features. voit peu de changements.2 et 1.0. et il paraissait e e e irr´alisable de contenter tout le monde. cr´atrice du langage3 .galdosinc. Il s’agit d’ajouter des ´l´a e e ee ments ` la ville via la balise <citymember>. fut propos´e en l’an 2000. le e e langage a subi beaucoup d’´volutions qui se sont av´r´es n´cessaires ` l’usage.0. e ee e a La pr´sente chronologie est notamment inspir´e du site internet de la soci´t´ e e ee Galdos Inc. alors que le boulevard d´crit est e une feature.0. les termes utilis´s n’´taient pas les mˆmes.0 pr´voit trois sch´mas de base.1. et un sch´ma Xlinks. Cela autorisait les e e e e utilisateurs ` rajouter leurs propres balises et ` se servir du GML au sein d’un a a environnement qui leur ´tait propre. e Le concept fondateur ´tait de cr´er un langage capable d’exprimer. dans la norme 1. On s’est assez vite aper¸u que cela n’´tait pas r´aliste. e e e e Le RDF/S est peu ` peu tomb´ en d´su´tude et. publi´e par l’OGC en f´vrier 2001. Selon les doc e e maines d’application. e Tr`s peu de changements sont ` mettre au cr´dit des normes 3. Cela a pu s’op´rer en s´parant e e les sch´mas de validation du document proprement dit. En l’occurrence. En effet. 3. avec ee e e e des propri´t´s plus avanc´es.1(l’ace a e 3 http://www. qui permet de cr´er des liens ee e e e entre diff´rentes features [17]. Depuis. avec les normes 1.4 Evolutions La premi`re norme du langage. toujours d’actualit´.CHAPITRE 5.0. Dans la norme 1. LE LANGAGE GML 44 Illustrons ` pr´sent la derni`re partie de ce code GML. La norme 2.3.3. mais nous y e ee reviendrons. que nous avons pr´sent´ pr´c´demment. e On a donc.. e e e Le sch´ma geometry remplace le DTD de la version 1.

1 Qualit´s e Le GML permet l’affichage sur carte de mani`re tr`s pr´cise. nous avons d´crit les puissantes possibie e lit´s qu’offre ce langage en terme de repr´sentation de donn´es g´o-spatiales. N’oublions pas aussi que le GML est un langage ind´pendant de toute e e soci´t´ commerciale. Ces techniques font partie de ce que l’on appelle le e mapping. des ee e solutions SOLAP totalement gratuites. et le e e e e e e e choix de l’architecture et des outils ` utiliser est capital lors de la conception a de tels syst`mes. nous continuerons donc ` l’utiliser sous cette forme ` l’avenir.CHAPITRE 5. e 5. En effet. avec l’aide d’autres outils. qu’il est bon de garder ` l’esprit lors de la mise en place e a d’un tel syst`me. car si ce e e langage est un apport ind´niable dans le monde des syst`mes d’informations e e g´ographiques — nous allons en rappeler les raisons — il comporte aussi de e nombreux d´fauts.5 Le mapping Dans ce chapitre consacr´ au GML. Le GML reste g´n´rique. et d’autres encore. et nous n’en sommes qu’au e d´but.6 Critiques du langage Nous avons vu les possibilit´s ind´niables de ce langage pour la description e e de donn´es g´ographiques. VMLVector Markup Language. 5. Les changements concernent majoritairement la syntaxe.0 (compatibilit´ e e vers l’arri`re ou backwards compatibility). les syst`mes de repr´sentation g´ographique sont e e e e on´reux. e e e Comme nous l’avons vu dans la section pr´c´dente. Les cartes g´n´r´es ` partir du GML sont fid`les ` la e e ee a e a r´alit´. de mettre en place un m´canisme de repr´sentation de ces donn´es sur e e e e des cartes g´ographiques. Il pr´cise quoi afficher. e e e e Repr´sentation oui. mais textuelle uniquement. En effet. le code GML peut ˆtre lu e e e par un navigateur internet via. le format graphique SVG. afin d’en exploiter les possibilit´s. par exemple. traitent une quantit´ g´n´ralement ph´nom´nale de donn´es. souvent on´reux et restrictifs. Le a a mapping consiste donc ` lire un fichier GML purement textuel. et ` associer aux a a ´l´ments lus des ´l´ments d’affichage graphique dans des formats tels que SVG ee ee (Scalable Vector Graphics). De e e plus. LE LANGAGE GML 45 tuelle). au niveau des e e e coordonn´es par exemple. e 5. et permettent une visualisation efficace des donn´es.6.0 serait toujours comprise par la norme 3. et il convient. le potentiel de ces Web Services est ´norme. Nous ne sommes pas parvenus ` trouver une traduction satisfaisante a de ce mot. mais on s’est assur´ que la norme 2. le GML n’est ni plus e ni moins qu’un fichier de texte. ce qui permet de se passer de logiciels propri´taires. Il convient cependant de rester critique. mais ne pr´cise pas comment e e e e . ce qui permet de cr´er.

sur une carte. LE LANGAGE GML 46 l’afficher. pouvant ˆtre lu dans un environnement e e bien particulier. a – Le GML a donc h´rit´ de la flexibilit´ du XML. En effet. e ıtris´ e – Beaucoup d’outils existent d´j`. les e donn´es g´ographiques sont souvent tr`s volumineuses et la manipulation de e e e tels fichiers est lente et pose de gros probl`mes de m´moire. e a pour peu qu’on se cr´e le sch´ma d’application correspondant ` ses propres e e a besoins. son apprentissage est des plus ais´s. Ceci aboutit ` l’apparition de documents GML diff´rents. e e Le prochain chapitre pr´sentera les diff´rents outils sur lesquels nous avons e e travaill´ ` cette fin. e e Un autre probl`me majeur du GML est qu’il s’agit d’un fichier texte. ´tant donn´ que ea e e nous pouvons valider un fichier GML ` l’aide des analyseurs XML. ce qui laisse une compl`te flexibilit´ quant ` la visualisation des done e a n´es et ` l’interaction que l’on peut avoir avec celles-ci.CHAPITRE 5. ea . un aspect tr`s int´ressant de ce langage est qu’il s’agit e e ni plus ni moins de code XML. ` l’aide de GML et du XML. Ceci est avantageux ` plusieurs points de vue : a – le langage XML est populaire. En effet. L’analyse de ces e e fichiers est tr`s coˆ teuse compar´e aux fichiers binaires. 5. langage dont nous nous servie e rons pour l’application relative a ce m´moire.6. la visualisation. et a e ce mˆme s’ils d´crivent les mˆmes donn´es. Ceci constitue un frein ` l’intere e e e a op´rabilit´ et au partage des donn´es. e a Comme nous l’avons vu. C’est le cas des analyseurs. connu de nombreux informaticiens.2 D´fauts e Cependant. nous ` e e allons pouvoir rentrer dans le vif du sujet. On peut aujourd’hui ree e e pr´senter ce que l’on veut avec du GML. il s’applique ` tous les domaines. cette facult´ ` pouvoir s’adapter ` tous les domaines peut aussi e a a repr´senter un d´faut. nous avons pr´sent´ le GML.7 Conclusions Dans ce chapitre. ` savoir la cr´ation d’une application a e permettant. e u e 5. Quand bien mˆme il ne serait pas maˆ e. chaque e e application a ´crit son fichier GML. avec l’arriv´e des XML Schema dans la norme. on s’´loigne largement du concept fondateur qui e e e aspirait ` cr´er un langage universel permettant d’afficher tous types de donn´es a e e g´ographiques. Un pr´-traitement sera syst´matiquement e e e e e n´c´ssaire. Or. Les profils que nous avons ´voqu´s plus tˆt dans cette section ne e e e e o r´solvent que partiellement ce probl`me. de a donn´es extraites d’un syst`me Oracle. Arm´s de ces informations.

1 Le GML Viewer Pr´sentation e Le programme dont nous nous sommes servis pour la repr´sentation des donn´es e e s’appelle “GML Viewer”. Diff´rents outils de localisation sont propos´s (s´lection via une adresse. Il s’agit d’une application d´riv´e e e du logiciel MapBuilder. nous pr´senterons succinctement la suite d’outils o e Oracle.mapbuilder.Chapitre 6 Les outils utilis´s e 6. par exemple. Enfin.1 Introduction Ce chapitre nous permettra de pr´senter le logiciel dont nous nous sommes e servis pour la repr´sentation des donn´es dans le cadre de ce m´moire. Cet outil est pare e ticuli`rement utilis´ dans les sites commerciaux. Celui-ci permet e l’affichage de cartes provenant de Google ou de Yahoo dans une page HTML. 1 http://communitymapbuilder. afin. un e e e code postal) et le logiciel permet ´galement d’apposer des “punaises” (pin) sur e la carte. afin de mettre en ´vidence une adresse particuli`re. et ´noncerons les lacunes qu’elle comporte en termes d’applications SOe LAP. 6.org 2 http://www. Il est important ` ce point de ne pas confondre la communaut´ pr´cit´e avec a e e e le programme MapBuilder ´galement disponible sur internet2 . Nous e e e pr´senterons la communaut´ qui a permis sa cr´ation.2. d’identifier e e clairement la localisation d’un restaurant. maintenu par la communaut´ MapBuilder (Community e MapBuilder )1 .2 6. Il s’agit en fait d’un programme permettant le rendu de fichiers GML au sein d’un navigateur internet. d´crirons son architecture e e e e et les diff´rents outils existants dont le logiciel tire les avantages. e Nous ´voquerons ensuite les motivations qui nous ont conduits ` choisir ce logie a ciel plutˆt qu’un autre.net 47 .

Firefox. poua e e vant s’adapter aux besoins de chacun. cela permet aux compagnies utilisant le logiciel de commercialiser un produit fini sans pour autant ˆtre contraintes de d´voiler les sources de e e leurs diff´rents apports. e une librairie. e Les concepts sous-tendants ` la cr´ation de MapBuilder sont.com/browsers/browsers_stats. . les possibilit´s d’´volutions ´tant diverses e e e et vari´es. . e e Cette forme de licence a ´t´ choisie car certaines librairies utilis´es ´taient sous ee e e LGPL. e e – la non-utilisation de plugins suppl´mentaires. soient ´galement distribu´es sous licence GPL.org/display/MAP/Home 4 http://www. e Ce programme est donc ` voir comme un noyau de fonctions pr´-d´finies.codehaus. e A ce jour. Et il est ´galement possible que le programme cr´´ sous LGPL e e ee soit modifi´ et adapt´ aux besoins d’une soci´t´ qui pourra alors commere e ee cialiser le produit ainsi cr´´. sous LGPL. d’utiliser des librairies propri´taires. e – la rapidit´ et l’interactivit´.0 ou sup´rieure). LES OUTILS UTILISES 48 Le GML Viewer est distribu´ sous une licence LGPL (Lesser General Public e Licence). ce qui repr´sente e e e 92. tel qu’il est dispoe nible sur internet.0 ou sup´rieure). Cette licence est une version “assouplie” de la GPL.w3schools. voici une capture d’´cran du programme.´ CHAPITRE 6. De plus. le programme est compatible avec Internet Explorer (version 6. qui exigeait que toutes les modifications effectu´es sur un programme. A titre d’exemple.4% des navigateurs selon le W3C4 . Ceci est un avantage absolument primordial en terme de coˆ ts (nous n’avons pas recours ` des logiciels propri´taires) u a e et de portabilit´ (ces navigateurs ´tant disponibles sur une grande vari´t´ de e e ee plate-formes). 3 http://docs.asp . La diff´rence e fondamentale tient en ce qu’il est possible. Nous avons perdu le caract`re h´r´ditaire de la ee e ee GPL. – le support des normes de l’OGC. et Mozilla (version 1. – la facilit´ d’utilisation. . notamment3 : a e – la mise au point d’un logiciel de visualisation de cartes depuis un navigateur internet.

´ CHAPITRE 6. 6.1 – Capture d’´cran de GML Viewer e 49 . LES OUTILS UTILISES Fig.

elle fait appel ` de a nombreux fichiers. sont ´prouv´es. sans que l’utilisateur final e e e s’en aper¸oive. e e a Aux premi`res heures. XML. L’interface dont nous nous sommes servis dans le cadre de ce m´moire tire e pleinement parti de cette nouvelle conception.adaptivepath. Les requˆtes vers le serveur HTTP sont bien entendu toujours e e e possibles.com/publications/essays/archives/000385. L’Ajax regroupe l’utilisation des langages Javascript. LES OUTILS UTILISES 50 6. e e e e L’id´e est venue d’un constat sans appel : internet ´voluait ` grande vitesse. Ceci permet non seulement e d’all´ger le serveur. avec un ensemble de e e e fichiers et de scripts pr´sents sur la machine cliente. elles. XSLT. ee e si la terminologie est r´cente. En effet. les technologies utilis´es. L’av`nement des sites dynamiques a singuli`rement compliqu´ les choses e e e a ` ce niveau. ce qui demandait peu de ressources au serveur HTTP. dans un article devenu c´l`bre5 . e a e Un inconv´nient notable de cette technique est qu’elle a recours ` de nombreux e a scripts. Cette conception nouvelle des sites internet est particuli`rement c e utilis´e dans les applications ` vocation g´ographique. encore moins d’un langage.´ CHAPITRE 6. mais plutˆt de la r´union de plusieurs langages existants. on se d´pla¸ait de pages en e e e c pages en cliquant sur des liens.2. Il ne e s’agit pas d’une technologie proprement dite. quitte ` d´doubler une partie du code e e e a e afin de rendre ces variations totalement invisibles aux yeux de l’utilisateur. l’utilisateur ne pouvait qu’attendre. plus volumineuses. il a ´t´ propos´ en 2005 par Jesse James e ee e Garrett. permettant la r´ao e e lisation d’applications au sein de pages internet. dont les plus importants sont expliqu´s dans la section suie vante. HTML. Le terme Ajax est relativement r´cent . Il convient de ne pas se m´prendre . DOM et l’objet XMLHttpRequest qui permet une interaction avec le serveur distant. Les requˆtes ´taient beaucoup plus fr´quentes. ` l’aide des langages pr´cit´s. Mais on peut e e g´n´ralement contourner le probl`me. e Le terme asynchrone provient du fait que les requˆtes qui seraient habituele lement effectu´es vers le serveur sont ex´cut´es localement . libres. et les n´cessaires e e e e appels au serveur sont r´alis´s de mani`re asynchrone.2 Conception d’ensemble Le programme est ´crit ` l’aide d’un ensemble de langages formant ce qu’il e a convient d’appeler d´sormais l’Ajax (Asynchronus Javascript And XML). il a e e est possible de g´n´rer du contenu dynamique. on a imagin´ un ensemble de techniques afin a e de soulager la charge du serveur. les sites ´taient statiques. A ce titre. e e e et pendant qu’une page se chargeait. CSS. mais cela r´duit fortement le temps de chargement de la e e page d´sir´e. Pour palier ` cette situation. ´volutif. 5 http://www. mais on ´vitera autant que faire se peut d’y avoir recours.php . aux effets parfois diff´rents selon le navigateur utilis´.

e e e Les fl`ches d´crivent les interactions entre les fichiers. il en d´crit le “squelette”. Dans un souci de concision et de clart´. elle est largement r´pandue dans la litt´rature et nous choisissons de l’utiliser ici. e e Ceci sous-entend un ensemble de relations entre diff´rents fichiers de type javase cript. – d´crire quels sont les ´l´ments du programme ` afficher. ´crit en Ajax6 . Diff´rents fichiers permettent de transformer le GML afin de l’afficher e dans la fenˆtre du navigateur mais il serait long et fastidieux de les d´tailler ici. Nous sommes conscients e e que ce sch´ma est incomplet. car il ne d´crit pas toutes les relations et tous e e les fichiers. est. comme nous l’avons d´crit plus haut. seuls quelques fichiers primordiaux e seront abord´s.html Ce fichier est l’´pine dorsale du programme . Notons que le fichier gmlRenderer.3 Fichiers principaux Le programme dont nous nous sommes servis. css.2. index. – pr´ciser l’endroit o` se trouve le fichier de configuration que nous d´taillerons e u e plus tard. e e Retenons que le GML est interpr´t´ par une feuille de style qui le transforme ee en un format lisible par le navigateur. le code entier faisant appel ` de nombreux autres fichiers et e a librairies.´ CHAPITRE 6. et ` quel endroit e ee a a dans la page ils doivent s’afficher. Nous allons ici tenter d’expliquer le fonctionnement interne du programme. L’architecture du GML Viewer est pr´sent´e sur le sch´ma de la figure 6. LES OUTILS UTILISES 51 6. xml et xslt. html. GML Viewer. Voici quelques extraits de code qui aideront ` la compr´hension du fonctionnea e ment du programme : 6 Bien que cette terminologie ne soit pas totalement correcte (Ajax n’est pas un langage en soi).xsl n’est pas le seul ` transformer le code a GML. – appeler les scripts externes de mise en page (scripts CSS). Son rˆle e e o est de : – initier le bootstrapping en appellant le premier script qui lancera tous les autres. mais il permet n´anmoins d’avoir une bonne vision d’ensemble des e fichiers que nous allons expliquer dans cette section. e e .2. ` travers les diff´rentes relations entre les fichiers prina e cipaux.

LES OUTILS UTILISES Fig.dh WV h… a `r e g e W Y hs X a X `r W  fW a `r X ƒ V‚ dh WV Y W ƒ Y Ye ƒ Ye fg Y W iY he a pr q widgets model a X ˆ ‡† ”“ ‘ ‰‡ • ’ Yc `c a ` de  fW  fW `  fW Yc a `c `r ƒ d e– Y W Yp a p `r e fW d f  fW YX a re q f ƒ V‚ a r q € fh Xxy w v g ut a pr q YX Ve hs ƒ V‚ de a ` WV YX cb de ´ CHAPITRE 6. 6.2 – Fichiers principaux de GML Viewer „V ƒX Y a r cq fr e a r q f c YX 52 .

w3.org/2000/svg" xlmns:xlink="http://www.0" encoding="ISO-8859-1"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.w3. . elle sera utile au script MapBuilder. ] </div> </body> Voici comment est articul´ le corps de la page internet g´n´r´e par GML e e ee Viewer. Il est important de noter que la variable mbConfigUrl est assign´e .js"></script> <script>var mbConfigUrl=’belgiumConfig.1. N´anmoins. des objets sont cr´´s e ee via des formalismes XML. affich´e quant ` elle dans e e a <div id="legend">.js"></script> [.´ CHAPITRE 6. qui est une version du HTML o` les balises sont ins´r´es dans un fichier XML bien form´. LES OUTILS UTILISES <?xml version="1. Il s’agit d’un fichier XHTML.</script> <script type="text/javascript" src="lib/MapBuilder. .org/1999/xlink"> <head> <link rel=’StyleSheet’ type=’text/css’ href=’. et on peut y pr´ciser au sein de quelles balises <div> e leur rendu devra se faire dans le fichier HTML. u ee e Dans la section <head> est sp´cifi´ le lien vers le fichier de feuilles de style CSS. ] </head> Ce morceau de code est relativement intuitif. .js.xml’. ] <div id="mainbody"> <div id="mainMapPane"> </div> <div id="legend"> </div> [. .css’/> <script src="OpenLayers. GML Viewer va donc ins´rer le e code HTML g´n´r´ depuis des fichiers XML via une feuille de style XSLT entre e ee les balises <div> correspondantes. e <body onload="mbDoLoad()"> [. .2 Final//EN"> 53 <html xlmns="http://www. A ce niveau. affich´e ici au sein de la e e e balise <div id="mainMapPane"> et une l´gende. des scripts sont ex´cut´s afin de permettre le boostrapping dont e e nous parlons plus haut. On peut y voir une carte. Enfin. . Dans le fichier de configuration que nous allons d´tailler. il est int´ressant de consulter la capture d’´cran ree e pr´sent´e en figure 6.org/1999/xhtml" xlmns:vml="urn:schemas-microsoft-com:vml" xlmns:svg="http://www.w3. il convient de pr´ciser e e certains points importants. . e e Ce fichier comprend les styles associ´s aux balises pr´sentes dans le document e e HTML./lib/skin/default/demoStyles.

moyennant une insa cription gratuite. Ce service est propos´ e par l’OGC et consiste en un serveur de cartes g´ographiques. et ce de mani`re e totalement ind´pendante du serveur qui h´berge le site. des fichiers XML d´crivent les donn´es proprement dites. et de beaucoup d’applications Ajax. avec les couches demand´es et ce dans une liste de formats disponibles. e e Donc. foura ee nissant un WMS. e e OpenLayers est un projet ind´pendant sponsoris´ par MetaCarta7 . Ce code HTML vient s’ins´rer entre les balises <div> core respondantes pr´cis´es dans un fichier de configuration. mais il est possible de les obtenir gratuitement. constitu´ de balises <div> charg´es de e e d´terminer o` les donn´es vont s’afficher. openlayers. On envoie des e requˆtes selon un formalisme pr´-´tabli.metacarta. qui met ` disposition des utilisateurs. et le serveur envoie la partie de carte e ee d´sir´e. Elle permet l’affichage d’une carte dans une page internet e avec diverses fonctionnalit´s. r´e e e actualise la carte lors de d´placements avec la souris. et. L’obtention des cartes chez Demis est soumise ` l’achat d’une a licence. e e Cette requˆte a ´t´ effectu´e par le programme GML Viewer. et la page peut alors se e e charger. et permet de zoomer e directement sur la carte.org/standards/wms . e e e De nombreuses organisations utilisent ce service et nombre d’entre-elles proposent un serveur de cartes g´ographiques. elle se sert de WMS (Web Map Service)8 . LES OUTILS UTILISES 54 C’est l` tout le principe de GML Viewer. De plus. nous allons illuster ici la requˆte e e GetMap. contenant des appels aux e e e e fonctions javascript. Pour ce faire.js Ce script est en r´alit´ une librairie enti`rement ´crite en javascript. Plusieurs types de requˆtes sont disponibles. comprenant 73 couches. Elle permet e e e e l’affichage de cartes dynamiques au sein d’un site internet. Elle autorise notamment diff´rentes couches. Citons en exemple “Ressources Nae turelles Canada”.´ CHAPITRE 6. e D’autres couches sont disponibles encore pour certaines parties du pays seulement.opengeospatial. moyennant une mosa¨ ıque en surimpression sur la carte. La Nasa et la Marine Am´ricaine proposent ´galement ce type de service. Le programme avec lequel nous travaillons fait appel ` la soci´t´ Demis.com 8 http://www. e e on g´n`re la repr´sentation des donn´es en HTML. La librairie e e est tr`s puissante. d´fini dans le fichier CSS externe. a Le fichier HTML est le fichier principal. une couverture compl`te du pays. alors que nous e ee e effectuions un zoom arri`re. e 7 http://www. chaque balise <div> peut e u e avoir un style diff´rent. e e gratuitement. via XSLT. qui permet d’obtenir une partie de carte d´sir´e.

en l’occurrence GetMap. La liste de couches e disponibles est g´n´ralement pr´cis´e sur le site internet du WMS.39. Il se pourrait donc que l’on obtienne une carte d´form´e si le bounding e e box et la taille de l’image ne sont pas proprement accord´s. – Nous pr´cisons ensuite le SRS (Spatial Reference System). e e e Cette taille est ind´pendante de la zone que l’on veut voir repr´sent´e sur la e e e carte.0&Request=GetMap&BBox=-20. 39 nord.38. nous voulons une carte couvrant la zone -20 ouest. Des diff´rences apparaissent e a e ee e dans la formulation des requˆtes selon les versions ou dans les possibilit´s que e e celles-ci offrent. depuis le e fichier HTML principal. e e e – Via le param`tre BBox. nous pr´cisons le format dans lequel nous d´sirons recevoir l’image. Le script est lanc´ via la fonction onDoLoad() . Elle se e e d´compose comme suit : e – Le service (WMS) est pr´cis´.1.´ CHAPITRE 6. LES OUTILS UTILISES 55 http://www2. et appelle les diff´rents scripts n´cessaires ` la bonne ex´cue e a e tion du programme. e e e c’est ` dire la zone g´ographique qui doit ˆtre repr´sent´e sur la carte. nous e utilisons la norme de coordonn´es EPSG:4326 (European Petroleum Survey e Group)9 . format id´al pour afficher l’image e dans un navigateur internet.demis. nous pr´cisons le bounding box que nous d´sirons. Ici. e e e e – Enfin. qui pr´cise le syse e t`me de coordonn´es dans lequel nous nous exprimons.Coastlines. Il assigne aussi les variables globales. La version permet e e e de pr´ciser ` quelle sp´cification on fait r´f´rence. Ici. function MapBuilder(){ 9 Il s’agissait d’une organisation scientifique ´manant du secteur p´trolier en Europe dont e e le but ´tait de parvenir ` la r´alisation de cartes g´od´siques aidant ` la d´couverte de puits e a e e e a e de p´trole.Waterbodies&Format=image/gif Voici donc une requˆte typique effectu´e vers un Web Map Service. Les coordonn´es exe e e prim´es pour le bounding box ne sont valables que dans ce contexte.js Ce script est principalement responsable du bootstrapping. e e a e – Nous devons ´galement pr´ciser la taille de l’image que nous d´sirons recevoir.asp?Service=WMS &Version=1. – Le nom de la requˆte est ensuite ´nonc´. Ce syst`me de coordonn´es se base sur les latitudes et les longie e tudes d´finies par rapport au m´ridien de Greenwich et ` l’´quateur. mapBuilder. Il construit une instance de l’objet MapBuilder. e e . En a e e e e l’occurrence. e e nous recevrons une image en format GIF. 63 nord. ainsi que la version employ´e. e – Vient alors la description des couches que nous d´sirons. Voici quelques exemples de code choisis : var config.63 &SRS=EPSG:4326&Width=600&Height=300 &Layers=Countries. Cette organisation a cess´ d’exister en 2005. 38 ouest.nl/mapserver/request.

e e e a Le script Sarissa.] this. } } } Ceci est la fonction qui charge les scripts correspondants aux objets d´clar´s e e dans le fichier de configuration XML.js"). . Par exemple. i++) { if (nodes[i]. widget ou tool) renseigne ´galement le r´pertoire dans lee e quel les scripts correspondants se situent.loadScriptsFromXpath=function(nodes. d´tecter les e e objets pr´sents dans ce fichier (mod`les. il va parcourir le fichier de configuration. Le script config. se e charge de mettre en m´moire les scripts n´c´ssaires ` son fonctionnement.js".length.loadScript(baseDir+"/model/Config.loadScript(baseDir+"/util/sarissa/Sarissa.loadScript(scriptFile). .. qui permet de se d´placer a e au sein d’un document XML.js a d´tect´ un ”model” nomm´ OwsContext. alors e e e e e e la fonction loadScriptsFromXpath chargera le script se trouvant ` l’endroit a . i<nodes.] config=new Config(mbConfigUrl). qui est un mod`le pr´-d´fini.js").js"). this. Elle est appel´e au plus trois fois : une fois pour tous les mod`les d´tect´s. this.loadScript(baseDir+"/model/ModelBase. widgets.js et elle re¸oit en param`tres un e a c e ensemble de noeuds contenus dans le fichier XML et leur type. ´crit en XML. La fonction MapBuilder.dir){ for (var i=0. A l’aide de la librairie e Sarissa.js pour charger les scripts correspondants ` ces objets. [. this. ) et fera ensuite appel au e e script MapBuilder.js fait appel ` la librairie Sarissa.. si le script config.js est particuli`rement important.js"). } 56 Ce morceau de code illustre le bootstrapping dont nous parlions en d´but de e chapitre.nodeName+". et enfin une fois pour tous les outils d´tect´s.selectSingleNode("mb:scriptFile")==null){ scriptFile = baseDir+"/"+dir+nodes[i]. ..´ CHAPITRE 6.. une autre fois e e e e pour tous les widgets d´tect´s. LES OUTILS UTILISES [. Elle est particuli`rement utile ` la communaut´ e a e de d´veloppement Ajax car elle r`gle beaucoup de probl`mes d’incompatibilit´ e e e e entre les navigateurs. a Nous pouvons voir que la variable config prend en argument la variable mbConfigUrl qui a ´t´ assign´e au sein du document HTML.loadScript(baseDir+"/util/Listener. this. qui cr´e une instance du programme. e e e e Leur type (model. Cette variable ee e contient l’url vers le fichier de configuration. Elle est appel´e ` partir du fichier config. this.

js.net/ mapbuilder lib/schemas/config.1" id="simpleTemplate" xmlns="http://mapbuilder. interroge le fichier config.xsd"> <models> <OwsContext id="mainMap"> <defaultModelUrl>Context. LES OUTILS UTILISES 57 . Pour ce faire.´ CHAPITRE 6. Il ne d´crit en rien e e e l’endroit o` ils se placent. lui. e La fonction mbDoLoad() est appel´e depuis le fichier HTML.userAgent.xml Ce fichier d´crit les objets pr´sents sur la page internet.sourceforge. } La premi`re partie de ce code d´tecte si le navigateur utilis´ est Internet Exe e e plorer. config. et les fichiers qui s’y rapportent. il convient d’appeler une fonction qui va pr´venir l’utilie sateur si les contrˆles active X sont d´sactiv´s. Ensuite.0" encoding="utf-8" standalone="no"?> <MapbuilderConfig version="0. Ceci montre le soin apport´ ` o e e ea la portabilit´ lors de la conception de telles applications s’ex´cutant au sein de e e navigateurs internet. et tool see ront d´taill´es dans la suite. ce qui appelle le construcee teur qui charge les diff´rents scripts comme nous l’avons vu plus haut. une instance de l’objet MapBuilder est cr´´e.sourceforge. var mapbuilder=new Mapbuilder(). Ce script travaille de concert avec le script config.2./lib/model/OwsContext. Les diff´rences entre model.. elle appelle la ee e fonction mapbuilderInit() qui interroge l’´tat de chargement via une variable e globale bool´enne. [. e e <?xml version="1.xml.js qui.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mapbuilder. e Nous avons eu ici une bonne id´e de la mani`re dont fonctionne le boostrapping e e du programme.toLowerCase().100). e e if (navigator. Elle s’assure toutes e les 100 millisecondes que les scripts ont ´t´ charg´s.. Si c’est le cas. Il sert de u e lien entre les diff´rents objets pr´sents. Voyons donc ` pr´sent comment se pr´sente ce a e e fichier de configuration.indexOf("msie") > -1) checkIESecurity(). ni la mani`re dont nous devons les afficher.] function mbDoLoad(){ mbTimerId=setInterval(’mapbuilderInit()’.net/mapbuilder" xmlns:xsi="http://www.w3. widget.xml</defaultModelUrl> <widgets> <MapPaneOL id="mainMapWidget"> <htmlTagId>mainMapPane</htmlTagId> .

A chaque mod`le doit ˆtre associ´ un defaultModelUrl. Nous reviene a drons sur ce point un peu plus tard dans cette section. Notons qu’il est possible de pr´ciser une feuille de style bien pr´cise pour un e e widget. Chacun d´rive d’une classe de base. et e permet de proposer diff´rents outils d’interaction ` l’utilisateur. chacune correspondant ` un widget 10 . nous conserverons donc ce terme ` l’avenir. ici le seul e e mod`le pr´sent est OwsContext. quelles couches il doit afficher par d´faut.1. Une nouvelle fois.js. Il s’agit d’une r´f´rence vers ee la balise <div> du document HTML au sein de laquelle il faudra afficher le code HTML g´n´r´.. transform´ en HTML pour l’affichage via une e e feuille de style XSLT associ´e.xml. il convient de se reporter ` la capture d’´cran en figure 6.] </MapBuilderConfig> 58 Ce fichier est probablement le plus important de tous. Les outils. Ceci permet d’afficher les ´l´ments exactement o` l’on veut qu’ils e ee ee u se situent. a Deux choses peuvent appartenir ` un mod`le : des widgets ou des tools (oua e tils). Les widgets repr´sentent des ´l´ments de la page ` afficher. Ils r´cup`rent les actions effectu´es ` la souris et au e e e e e a clavier sur les diff´rents widgets pr´sents.´ CHAPITRE 6. sont consacr´s ` la e a e a gestion des ´v´nements./Legend2. e e e L’architecture est simple. e e a Chaque widget contient une balise <htmlTagId>. a 10 Aucune traduction n’a ´t´ jug´e satisfaisante. la l´gende. ee e a . e e Le pr´sent mod`le contient donc deux widgets : MapPaneOL et Legend..js et e toolBase. Ils servent ` pr´ciser comment le a e e a e navigateur doit afficher une carte.xsl</stylesheet> </Legend> </widgets> <tools> [. On d´finit ce que l’on appelle un mod`le . Chaque objet figurant a e sur la page internet doit ˆtre d´clar´ ici. Les OWS Context sont des documents XML. Le e e premier affiche la carte proprement dite. le deuxi`me. Ils sont bien souvent e ee a constitu´s d’un fichier XML. quant ` eux. Il sera transcrit en HTML via e e plusieurs feuilles de style XSLT. cela se fait ` l’aide de la balise <stylesheet>. C’est le fichier XML e e e qui va contenir toutes les donn´es de ce mod`le. respectivement : widgetBase. l’aspect ´tant pris en charge par une feuille de style externe d´clar´e e e e au sein du fichier HTML principal. LES OUTILS UTILISES <mapContainerId>mainMapContainer</mapContainerId> </MapPaneOL> <Legend id="contextLegend"> <htmlTagId>legend</htmlTagId> <stylesheet>. La capture e e d’´cran est particuli`rement parlante ` ce niveau. e e correspondant ` un sch´ma d´fini par l’OGC. dans la d´finition du e fichier context.

Premi`rement... Ce morceau de code fait appel a la fonction loadScriptsFromXpath que nous ` avons abord´e pr´c´demment. new Array(modelNode)).selectNodes ("//mb:widgets/*").js est charg´ de lire le fichier de configuration XML.selectNodes ("//mb:tools/*"). Par exemple.. LES OUTILS UTILISES 59 D’autres ´l´ments sont pr´sents sur notre page d’exemple."model/").objects.mainMap. e e e Le lien vers ce sch´ma est pr´cis´ dans le prologue du fichier (voir code). d’idene tifier les ´l´ments pr´sents.] this. e e Ce fichier de configuration XML est valid´ par un sch´ma.´ CHAPITRE 6. Chaque nouee e vel objet cr´´ dans la structure sera ajout´ comme une propri´t´ de ee e ee . [. ModelBase.objects = new Object().loadScriptsFromXpath(this.xsd.doc. e Voici quelques morceaux de code choisis."widget/").loadScriptsFromXpath(this. e e On proc`de de la mˆme mani`re avec les fils des balises <widgets> et <tools>. et d’appeler les scripts correspondants.loadConfigScripts=function(){ mapbuilder.objects. elle fait appel ` la librairie Sarissa e e e a qui permet de parcourir un document XML.loadScriptsFromXpath(this. Pour ce faire.] Ceci permet de lier tous les objets cr´´s au mod`le config de base. En param`tre. e e e function Config(url) { [. le construce e teur prend le chemin vers le fichier de configuration XML d´crit dans le pae ragraphe pr´c´dent. ensuite on passe en deuxi`me argument le a e type de noeud dont il s’agit.doc. Chaque “mod`le-enfant” (child-model) peut ˆtre r´f´renc´ e e e e ee e par config.modelId."tool/").js Le fichier config. mapbuilder. particuli`rement r´v´lateurs. nomm´ config. Il cr´e un ee e e objet config qui est le parent de tous les mod`les. e e e config.doc.apply(this. tous les noeuds fils de la balise <models> sont identifi´s et pass´s e e e en premier argument ` la fonction. le widget charg´ d’afficher la carte e sera d´fini par config.. dont nous avons vu qu’il permettrait aussi de d´terminer dans quel r´pertoire aller chercher les scripts..selectNodes ("//mb:models/*").. mapbuilder. mais il ne nous a pas ee e sembl´ utile de les d´tailler ici. e e e [.] this.

net/context" xmlns:xlink="http://www.xml.26625</ows:LowerCorner> <ows:UpperCorner>0.´ CHAPITRE 6. voyons les autres naea e mespaces utiles au fonctionnement de notre programme. dans quelle couleur devra s’afficher la couche en question. Celle-ci permet d’obtenir une carte comprenant diff´rentes couches.56375</ows:UpperCorner> </ows:BoundingBox> [. un des plus a e importants.w3.w3. e e context. Nous avons d´j` abord´ context et xlink.org/2001/XMLSchema-instance" xmlns:sld="http://www.] </General> .net/ows" xmlns:param="http.xml est le fichier de r´f´rence de notre mod`le OwsContext. ee e Il d´crit.net/param" xsi:schemaLocation="http://www. LES OUTILS UTILISES 60 config.xsd"> Ceci est le prologue du fichier context..13" id="ows-context-tie" xmlns="http://www.objects.org/1999/xlink" xmlns:xsi="http://www. <?xml version="1. Il est important car il fait appel aux diff´rents namespaces pr´sents dans les fichier Ows Context provenant de la e e norme de l’OGC. et la e norme SLD permet de d´finir des propri´t´s de style sur chacune de ces couches.opengis. il s’agit du SLD (Styled Layer Descriptor ) : e c’est ` nouveau une sp´cification de l’OGC allant de concert avec la norme a e WMS. Ensuite. Il nous reste ` d´tailler un fichier. <General> <Window width="600" height="300"/> <ows:BoundingBox crs="EPSG:4326"> <ows:LowerCorner>9.opengis.opengis. afin d’en faire un mod`le ` part enti`re. selon les formalismes d´finis par l’OGC. nous permettons ` l’objet config d’h´riter de toutes a e les fonctions des objets de base.0" encoding="ISO-8859-1" standalone="no"?> <OWSContext version="0. ce qui doit se troue e ver sur la page HTML.//www.57875 48. Parmi ces namespaces.opengis.0.net/sld" xmlns:ows="http://www.xml Le fichier context.net/oc oc_0_0_13. e a e Nous avons ici fait le tour des principaux fichiers grˆce auxquels fonctionne a le programme GML Viewer. l’un est particuli`rement important. e ee Par exemple. en XML.03125 53.. Ce fichier sera lu par diff´rents fichiers XSLT (chacun e correspondant ` type d’objet) et le rendu correspondant sera alors affich´ dans a e les balises appropri´es. Il s’agit du fichier de donn´es XML correspondant au mod`le. e Voici quelques morceaux de codes pour aider ` comprendre le fonctionnement a de ce dernier fichier.opengis.

int´gr´e au programme. La conversion de fichiers e GML ` l’aide du GML Viewer n’offre. e Nous pr´cisons alors le lien vers notre fichier source. Il nous reste ensuite ` sp´cifier ıtre a e les informations de style que nous d´sirons associer ` cette couche. pas assez de possibilit´s. Ces informations seront utilis´es par le fichier MapPane.xsl. redondant. e Nous devons ensuite pr´ciser le nom (en interne) de la couche. Le param`tre hidden permet u e a e d’afficher ou non la couche par d´faut.3</sld:CssParameter> name="stroke">#666666</sld:CssParameter> name="stroke-opacity">1</sld:CssParameter> name="stroke-width">0. ce qui est e a fait dans la prochaine section de code. au sein du contexte OWS. Ceci est un morceau de code e e e o` nous avons rajout´ notre couche ` la carte. mais le code ´tant partie e e e culi`rement long.demis. on pr´cise les diff´rentes couches qui vont e e apparaˆ ıtre sur la carte.xsl et permettrons de g´n´rer e e e une partie du fichier HTML comprenant une balise <img> dont la source sera la requˆte WMS ainsi construite. et de toute fa¸on intuitif. charg´ de cr´er une l´gende HTML. Il s’agit d’une repr´sentae e tion de la Belgique selon un polygone contenue dans un fichier GML. devant apparaˆ sur la page internet. LES OUTILS UTILISES 61 Ceci d´crit.xml"/> <Name>belgium</Name> <Title>Frontiere belge</Title> Au sein de la balise <ResourceList>.2</sld:CssParameter> .´ CHAPITRE 6. il ne nous a pas sembl´ e c e utile de le montrer ici. au chargement de la page HTML. et e e charg´e de convertir le GML en HTML ou en SVG.1. a a e Nous aurons l’occasion d’aborder le sujet dans la suite de ce m´moire. Ces pae ram`tres seront utilis´s pour construire la requˆte que nous effectuerons vers le e e e WMS que nous avons choisi.2" title="Local"> <OnlineResource xlink:type="simple" xlink:href="Belgium/belgiumStateBoundaries. <ResourceList> <FeatureType hidden="1"> <Server service="OGC:GML" version="2. Ce fichier est donc ´galement interpr´t´ par le fichier e ee Legend2. <SLD> <sld:Fill> <sld:CssParameter <sld:CssParameter </sld:Fill> <sld:Stroke> <sld:CssParameter <sld:CssParameter <sld:CssParameter </sld:Stroke> </SLD> name="fill">#333333</sld:CssParameter> name="fill-opacity">0. ` notre sens. la zone d’affichage de la carte. Les informations concernant les diff´rentes e e couches d´sir´es sont d´finies plus loin dans le fichier. et le titre de la e couche. en l’occurrence http://www.nl. Ce fichier GML sera parcouru par une feuille de style XSLT.

LES OUTILS UTILISES 62 Nous utilisons ici les formalismes ´tablis par la norme SLD. e Internet Explorer (` partir de la version 6. Cela faisait d’ailleurs e partie. A ce titre. qu’il aurait ´t´ fastidieux de d´tailler ici. et il s’agit l` d’un avantage tr`s important.asp .´ CHAPITRE 6. deux organisations pourraient d´velopper le logiciel de e 11 http://www. Le navigateur Firefox. 6. du cahier des charges lors des discussions pr´liminaires relatives ` ce m´moire. Mozilla.4 Choix en faveur de GML Viewer Dans le cadre de ce m´moire.w3schools. le programme peut e a e s’ex´cuter sur plusieurs plates-formes. associ´ ` plusieurs fichiers CSS. En effet. a e Il est ´galement important de remarquer que ceci permet une interop´rabilit´ e e e du logiciel. ee e Retenons que le programme consiste en un fichier HTML principal. le programme peut s’ex´cuter jusque maintenant sur Firefox. e a e R´sum´ e e Le GML Viewer avec lequel nous avons travaill´ tire toutes les possibilit´s des e e techniques de d´veloppement en Ajax. Plusieurs raisons ont motiv´ e e ce choix. Le fichier e e HTML est. de plus. dans la mesure du possible. il utilise une multitude de e fichiers. figurent des appels ` des e ee a fonctions javascript qui agissent sur les diff´rents variables du syst`me. nous avons choisi de travailler avec le programme e GML Viewer issu de la communaut´ MapBuilder. dont nous nous e e sommes servis dans le cadre de ce m´moire.com/browsers/browsers_os. Ceci permet de d´finir une couleur pour le pourtour et e o e l’int´rieur de la surface ` repr´senter sur la carte. au sein duquel vient se greffer du code HTML g´n´r´ ` partir des fichiers de donn´es e eea e XML. e a e Cette conception du programme sous forme de site internet est int´ressante ` e a plusieurs ´gards. bien qu’il ne s’agisse pas l` d’une priorit´. dont nous avons e parl´ un peu plus tˆt. permettant de mettre en ea forme l’interface avec l’utilisateur. Nous ne sommes pas d´pendants d’une e e architecture mat´rielle particuli`re. Solaris. Un travail est en ce moment a effectu´ dans la communaut´ pour rendre le logiciel compatible avec d’autres e e navigateurs. Ajoutons que dans ce code HTML g´n´r´. de 95% des syst`mes dans le monde e De plus. nous allons les d´tailler ici. Windows.0). e Premi`rement.2. peut s’ex´cuter sur des plates-formes e e aussi diverses que Mac OS X. e L’utilit´ d’un web-service e Le premier point qui nous a pouss´ vers ce choix est que le GML Viewer est un e programme s’ex´cutant au sein d’un navigateur internet. Linux. ce qui repr´sente plus e 11 .

Ceci all`ge les diff´rents probl`mes li´s ` la e e e e a compr´hension du code. le simple navigateur dont tout le monde dispose suffit. permettant. et laisse libre cours aux d´veloppeurs e e e quant ` la mise en oeuvre pratique de ce standard. et ce mˆme si elles utilisent des navigateurs internet diff´rents. C’est un aspect important si on consid`re par exemple l’initiative EduGIS12. et peuvent consulter ces informations ` l’aide a d’une connexion internet. adapt´ a eae e e e aux besoins de chacun. e Utilisation de standards ouverts Ce programme se base sur l’utilisation de nombreux standards. et ce faisant on tend ` diminuer la part de march´ de techniques e a e enti`rement propri´taires. Il est capital pour e ce genre d’organisations de pouvoir mettre ` disposition ces outils via un site a internet. LES OUTILS UTILISES 63 concert. e 12 http://www. permettant de familiariser les ena e fants scolaris´s dans le primaire avec les diff´rents types de cartes..´ CHAPITRE 6. . et libres de droits (au sens de la licence LGPL).. et en comprenant l’interaction des donn´es e ea e e avec le programme. Pas besoin d’installer un quelconque logiciel suppl´e mentaire. ces standards sont ouverts. et ce a e gratuitement. Il s’agit d’un e portail GIS hollandais ` vocation ´ducative. Diff´rentes e e e possibilit´s sont offertes via des cartes ` th`mes.edugis. facie lement lisibles par l’utilisateur. disponible dans la plupart des ´coles de nos jours. Ceci est avantageux car on veut ici favoriser l’utilisation de normes ´tablies. Donn´es textuelles e Tous les fichiers de donn´es sont ici textuels. a C’est un point crucial par rapport aux techniques propri´taires. de e a e sensibiliser les plus petits aux probl`mes environnementaux. ` l’aide d’une a a simple adresse internet. par exemple. Il s’agit de fichiers XML. On peut d´velopper le programme soi-mˆme. Cela signifie que l’organisme responsable publie une sp´cification d’impl´mentation. en s’aie e e dant des donn´es d´j` pr´sentes. ce logiciel est d´velopp´ ` base de langages et de libraie ea ries gratuites. L’utilisation de fichiers de donn´es textuelles favorise la e compr´hension par l’exemple. Les ´coles n’ont pas besoin d’un investissement suppl´mentaire en loe e giciels. C’est tout-`-fait utile car ce type d’outils est appel´ ` ˆtre d´velopp´. sur des e e plates-formes diff´rentes. e e De plus. le programme est accessible ` partir du monde entier. Les d´velope e peurs peuvent adapter ` leurs besoins les diff´rentes normes disponibles. e De plus. En effet. licences d’utilisation.nl . la plupart mis en place par l’OGC.

de tr`s nombreuses ressources sont e disponibles sur ces langages. De plus. e Ce m´moire s’attelle donc ` mettre au point un embryon d’une telle solution. et les outils qu’elle offre dans le e e ee domaine concern´ par ce m´moire.3. e Cette utilisation de langages connus permet une plus grande flexibilit´ dans e le recrutement des informaticiens appel´s ` d´velopper les applications. Lors de la commercialisation. LES OUTILS UTILISES Techniques ´prouv´es e e 64 Mˆme si les techniques de d´veloppement Ajax sont une id´e relativement noue e e velle. Bob ee e Miner et Ed Oates. Oracle offre bien un logiciel permettant e d’afficher une carte correspondant ` des donn´es spatiales provenant de sa base. la soci´t´ en profita pour changer ee ee de nom. et les trois fondateurs comprirent e qu’il s’agissait l` d’un domaine a fort potentiel de croissance. dite SOLAP. les langages sur lesquels elles se basent sont. la compagnie changea ` nouveau a de nom et devint Oracle Systems. il n’est en effet pas possible de trouver un programme offrant une interaction entre des donn´es extraites e de la base et une carte g´ographique. en faveur de RSI (Relational Sysems Incorporated). e avait ´t´ invent´ quelques ann´es plus tˆt au sein d’une division de recherche de ee e e o la soci´t´ IBM. A cette ´poque. Ceci sous-entend donc une plus grande facilit´ de compr´hension du e e e e programme et moins d’appr´hensions de la part du d´veloppeur qui se retrouve e e dans un environnement familier. e e 6. Nous allons dans cette a section pr´senter bri`vement la soci´t´ Oracle.´ CHAPITRE 6. Oracle ne propose pas de telle solution logicielle. fonctionnant en SQL qui. et commenc`rent ` commercialie a ser un syst`me complet et fonctionnel en 1979. e a et ce ` l’aide d’outils gratuits et de normes ouvertes. pourtant bien fournie. Ils fond`rent alors a ` e la SDL (Software Development Laboratories). en 1977. aussi ´trange e que cela puisse paraˆ ıtre. nous avons tent´ d’afficher des donn´es extraites e e e d’Oracle. ce qui e a e repr´sente un grand avantage en termes de coˆ ts de d´veloppements. Il s’agissait en fait d’un syst`me e e de management de bases de donn´es relationnelles.1 Pr´sentation d’Oracle e La soci´t´ Oracle fut fond´e il y a trente ans. Peu avant la sortie de la version 3 en 1983. ` l’exception notable du GML. aucune soci´t´ n’avait commercialis´ la teche ee e nologie des bases de donn´es relationnelles. quant ` eux. par Larry Ellison. auquel peu de sites a internet sont consacr´s. Ceci nous a paru utile car. au sein d’un GML Viewer.3 La suite Oracle Dans le cadre de ce m´moire. Les ann´es quatre-vingt virent la soci´t´ se e ee . lui. Dans la suite d’outils Oracle. e u e 6. d´j` connus et a ea ´prouv´s. a e mais aucune interaction avec la carte n’est propos´e.

Oracle diversifia son offre et mit l’accent sur e l’innovation. comme les versions pr´c´dentes. e sortie en 2003. et le serveur d’applie e cations permettant de lier les suites logicielles ` la base de donn´es. avec une part de march´ de 48. De nombreuses applications travaillant directement sur les bases de donn´es furent d´velopp´es et rendues disponibles. e e e nous nous sommes procur´ la derni`re version de la base de donn´es oracle. e e 6. sure a tout dans le domaine de la business intelligence. En proposant par exemple des technologies de type grille de calcul dans la version 10g de sa base de donn´es.com/press_releases/asset_152619_11.´ CHAPITRE 6. Durant l’ane e n´e 2006. Les quelques op´rations effectu´es sur Oracle dans le cadre de ce m´moire ne sont aucunement e e e concern´es par ce changement de version. la version 11g. Pour cela. combine. le leader sur le march´ des syst`mes de bases e e e de donn´es relationnelles. en r´partissant ´quie e tablement la charge sur plusieurs machines. au cours des ann´es 2000.gartner. Oracle continua ` diversifier son offre. Ceci est tr`s utile ` plusieurs points de e e a vue : – nous pouvons r´partir la charge de travail sur plusieurs machines et ce faisant. avec une marge e e b´n´ficiaire de 4.com/corporate/investor_relations/10k-2006. 736 milliards de dollars14 . e augmenter consid´rablement notre force de calcul.pdf 15 Le 11 juillet 2007. Elle fut la premi`re ` proposer un RDBMS (Ree e a lational Database Management System) fonctionnant sur des mainframes.15 La version 10g. Le temps de calcul s’en voit e grandement am´lior´. En 2005.3. Oracle propose. facilitant la coop´ration entre organisations. e .oracle. leurs revenus ´taient de 14. Oracle ´tait. en option e 13 http://www. et d’afficher les r´sultats sur une carte g´ographique. Enfin. Pour exploiter les possibilit´s de cette technologie. comprenant notamment le support d’XML. de loin.html 14 http://www.6%13 . la e e e version 10g. LES OUTILS UTILISES 65 d´velopper significativement. sortie en 2003. 380 milliards de dollars. e e – les grappes de serveurs peuvent ˆtre distantes de plusieurs milliers de kiloe m`tres. Beaucoup de changements architecturaux dans la conception intrins`que de la base de donn´es virent le jour.2 Oracle 10g L’id´e sous-tendante de ce m´moire est d’effectuer des requˆtes sur une base de e e e donn´es Oracle. a e L’appellation g provient de l’introduction de la technologie des grilles de calcul (Grid Computing). Oracle a sorti une nouvelle version de sa suite. des mini-ordinateurs. e e e Au cours des ann´es nonante. e e – nous pouvons tirer meilleur profit du hardware existant. une v´ritable strat´gie de conquˆte e e e e e d’internet fut mise en place. Ces syst`mes constituent ce que l’on appelle des grappes de e serveurs (clusters) qui seront constitu´s de plusieurs ordinateurs sur lesquels e on pourra r´partir la charge de travail. et des PC. le e e syst`me de gestion de la base de donn´es proprement dit.

Oracle met ` disposition de ses e a utilisateurs un programme. e e les diff´rents cubes et dimensions sont li´s physiquement aux donn´es. situ´es e e e e dans le syst`me relationnel classique. terme que nous avons abord´ dans le e troisi`me chapitre. par d´faut dans ses distributions. e a e De plus. Afin de pouvoir interroger les donn´es d’une mani`re multie e e dimensionnelle dans des syst`mes complexes. C’est l’approche que nous avons e tent´ dans le cadre de ce travail. Oracle propose. Oracle RAC (Real Application Cluster ) qui permet de e d´ployer la base de donn´es sur une grappe de serveurs. constitue une donn´e ` caract`re spatial. e Oracle enregistre les donn´es dans son syst`me sous une forme relationnelle. il est possible de faire des requˆtes telles que : “o` est le plus proche e u voisin ?”. ce qui laisse ` l’utilisateur le soin de e a se cr´er ses propres cubes et dimensions et ce d’une mani`re logique. Il est compos´ de deux ´l´e o e a e ee ments centraux : le “Design Environment” qui concerne l’architecture du cube proprement dit. que nous pouvons exploiter e a e afin de simplifier la visualisation des donn´es. qui permet de se e cr´er des entrepˆts de donn´es ` des fins analytiques. Oracle met e a e a ` disposition une API de programmation en java afin de d´velopper des applie cations sur les Analytic Workspace qui sont un concept d’Oracle permettant de travailler avec des donn´es multi-dimensionnelles. e Il permet de repr´senter sur une carte les zones concern´es par des requˆtes e e e effectu´es ` partir d’une base de donn´es spatiale Oracle. Mais Oracle ne propose pas tel quel une solution SOLAP. les donn´es spatiales ne sont pas toujours forc´ment enregistr´es dans e e e une base de donn´es spatiale. le tout dans le cadre e d’un web service. e e e De plus. Ensuite.3 Oracle Spatial En ce qui concerne les logiciels touchant aux dimensions spatiales. e e Oracle propose ´galement. Elle met ` la e a disposition des utilisateurs et des managers de bases de donn´es une s´rie d’oue e tils afin d’offrir des possibilit´s OLAP ` leurs syst`mes. de s’afficher au sein a e d’une interface offrant une repr´sentation cartographique. le programme Oracle Spatial Locator. comme une colonne “pays” dans une base de donn´es relae tionnelle. une simple e ea information de lieu. Notamment. En effet. l’Analytic Workspace Manager.3. ou ce que l’on appelle les “metadata” et le “runtime environment” qui concerne lui les donn´es factuelles. Il permet de se cr´er un espace analytique. ` afficher les donn´es au e a e . Le runtime environment fait le e lien avec les donn´es physiques pr´sentes dans le syst`me Oracle. comme nous l’avons d´j` dit. c’est-`-dire.´ CHAPITRE 6. e e e 6. e Oracle dispose d’un programme appel´ Warehouse Builder. e e Il s’agit donc d’une solution ROLAP. Nous sommes parvenus dans le cadre de ce m´moire. a une solution mˆlant donn´es et repr´sentation spatiale. e Il s’agissait de permettre ` des donn´es extraites d’Oracle. depuis sa version 9i une option OLAP. LES OUTILS UTILISES 66 a ` sa base de donn´es.

e e 6. e e e Le prochain chapitre sera consacr´ ` l’´tude des modifications effectu´es sur e a e e ce logiciel afin de parvenir ` une solution de visualisation de requˆtes SOLAP a e depuis Oracle. Apr`s avoir introduit bri`vement e e e le logiciel. LES OUTILS UTILISES 67 sein d’une page internet. . e Il s’agit ´videmment d’un d´but. e e e mais cela sortait des objectifs fix´s dans le cadre de ce m´moire. nous avons pr´cis´ les raisons qui avaient motiv´ ce choix. s’affichant sur la mˆme page internet. nous avons expliqu´ le fonctionnement interne du e e e programme. sur la carte elle-mˆme. nous avons pr´sent´ le programme que nous avons choisi e e pour le d´veloppement de notre application. et ` lier ces donn´es ` la zone g´ographique corresa e a e pondante sur une carte.´ CHAPITRE 6. nous avons expliqu´ sur quelles techniques il se basait. ou du moins une repr´sentation de celles-ci. ` travers quelques fichiers principaux et illustrations de passages a de code. et e pour permettre une bonne compr´hension du chapitre suivant consacr´ aux e e diff´rentes impl´mentations. Enfin. Ensuite. une solution compl`te consisterait ` afficher e e e a les donn´es.4 Conclusions Dans ce chapitre.

68 . Fort des connaise e sances acquises au cours des chapitres pr´c´dents. En effet. que nous avons abord´s au troisi`me e a e e chapitre. Seuls les e e concepts et les id´es sous-tendantes seront donc expliqu´es. sont tous des logiciels propri´taires. et les trois r´gions e e qu’elle comprend.Chapitre 7 Mise en oeuvre 7. Dans notre ensemble de e a e e donn´es. afin d’´viter les e e e redondances d’informations. ou du e e a e moins une repr´sentation de celles-ci. Une solution SOLAP compl`te aurait consist´ ` afficher les donn´es. directement sur la carte. Les techniques permettant l’affia e chage de donn´es directement sur la carte sont ici encore ` d´velopper.1 Introduction Dans ce chapitre. e Dans un premier temps. le lecteur devrait ˆtre en e e e mesure de comprendre les diff´rents morceaux de codes illustr´s ici. Ils se distinguent bien souvent par e leur lourdeur et par leur rigidit´. e Il est donc particuli`rement int´ressant d’´tudier la possibilit´ de combler cette e e e e lacune ` l’aide de logiciels non-propri´taires. et feront e a e l’objet d’une br`ve discussion dans le chapitre suivant. 7. nous allons pr´senter les diff´rents apports r´alis´s afin de ree e e e pr´senter des donn´es extraites d’Oracle dans le GML Viewer. Il s’agissait de relier les donn´es ` e a la zone g´ographique concern´e. tout en maintenant un affichage des donn´es e e e relativement intuitif. nous travaillons exclusivement sur la Belgique. les e e seuls outils connus ex´cutant cette tˆche. nous nous sommes concentr´s sur une application ree liant les donn´es ` la zone g´ographique concern´e. mais il s’agit e d’un travail tr`s long et fastidieux sortant du cadre d’un m´moire.2 Pr´sentation du travail effectu´ e e Le but ce travail ´tait donc d’afficher des donn´es extraites d’Oracle dans un e e programme offrant une vue cartographique.

7. cette repr´e e e e sentation est relativement facile ` g´n´rer en HTML. il a fallu jouer sur e e u e la taille de la carte et sur la taille de l’espace r´serv´ aux donn´es proprement e e e dites. qui est un organisme euroe ee p´en r´coltant les donn´es que les diff´rents pays de l’Union lui fournissent.. ` droite de la carte. et nous e e les avons interrog´es en simulant une requˆte OLAP possible. et nous avons tent´ de l’int´grer dans un e e e e ee e e outil offrant des possibilit´s de visualisations spatiales. un fichier e e de donn´es/r´sultats XML a ´t´ cr´´.CHAPITRE 7. et e ce. d’o` un gain d’ergonomie ´vident. que nous avons choisi de nommer . Un clic sur les donn´es e provoquera l’apparition sur la carte de la zone de couverture g´ographique core respondante. Ensuite. e e a En ce qui concerne les donn´es. qui pr´sente l’avantage d’ˆtre tr`s intuitive. e Nous avons introduit ces donn´es dans une base de donn´es Oracle 10g. d´crire les formalismes du fichier de donn´es e e XML avec lequel nous avons d´velopp´ notre programme. Pour ce faire. e Voici un extrait de notre fichier de donn´es. Ceci permettait d’avoir la carte et les donn´es sur le a e mˆme ´cran. De plus. sous e e e diff´rents formats. Mais nous pensons ˆtre arriv´s ` un bon compromis. MISE EN OEUVRE 69 Ces donn´es ont ´t´ obtenues via le site Eurostat. mais nous devions disposer d’une balise racine. e <file> <country id="belgique"> <region id="bruxelles"> <data year="2004">999899</data> <data year="2005">1006749</data> </region> [. e Nous avons choisi d’afficher ces donn´es dans le programme GML Viewer. Ensuite.. nous avons privil´gi´ la repr´sentation sous e e e e forme d’arbre. Nous avons travaill´ e e e a ` l’envers . dans cette section.3 Fichier de donn´es XML e Nous allons.] </country> </file> Notons que la balise <file> n’apporte rien au programme proprement dit. Ce e e e e site propose un outil de consultation et de r´cup´ration de ces donn´es. nous avons d’abord con¸u ce fichier et avons d´velopp´ notre proc e e gramme sur cette base. Nous avons choisi de fonctionner par clic de souris. a e e Il nous restait ` cr´er un lien entre donn´es et zone g´ographique correspona e e e dante. nous avons fait en sorte qu’Oracle exporte notre requˆte dans ce formalisme.

langage que notre programme comprend et est capable d’interpr´ter.1 Export en XML dans Oracle Extraction de donn´es en XML e Nous l’avons dit. nous avons d’abord d´velopp´ le programme e a e e permettant la visualisation des donn´es. Il fonctionne e e par la d´claration de templates dans ce que l’on appelle les pages XSQL. afin de pouvoir le lire dans notre e logiciel. elle ne nous a pas paru offrir des fonctionnalit´s sp´cifiques justifiant son emploi pour cette tˆche. que des fonctions permettent de renommer. nous avons fait en sorte que le fichier e produit par Oracle “colle” ` nos desidarata.CHAPITRE 7. Chaque ligne produite par la requˆte est ins´r´e entre des e ee balises <row>. Nous e aurions pu avoir plusieurs pays contenant plusieurs r´gions. e . nous avons extrait des donn´es e d’un syst`me Oracle. e e a XSQL Pages Publishing Framework Il s’agit d’un ensemble de fonctions rendant possible la publication sur internet (en HTML ou en tout format XML) de r´sultats de requˆtes SQL. nous avons choisi d’exporter le r´sultat des requˆtes e e dans un formalisme XML. a Oracle propose plusieurs solutions pour faire de l’export en XML ` partir des a requˆtes en SQL faites sur son syst`me. Etant donn´ que nous voulions. Dressons un rapide portrait des diff´e e e rentes techniques disponibles. travailler avec du GML (et e e donc avec le GML Viewer). a e Nous avions donc besoin de pouvoir r´cup´rer les r´sultats de requˆtes effectu´es e e e e e sur le syst`me Oracle dans un fichier externe.4 7. et nous les avons ensuite r´cup´r´es dans un programme e e ee permettant de les lier ` une carte g´ographique.4. e 7. Ces fichiers ont g´n´ralement une limite de e e e taille assez large. Apr`s s’ˆtre e e assur´s que la syntaxe choisie fonctionnait. dans le cadre de ce travail. Cette technique nous a paru assez laborieuse et peu claire. Nous voyons ici la description d’un pays contenant une r´gion. nous avons mis au point e une syntaxe XML avec laquelle il serait confortable de travailler. e Nous avons travaill´ ` l’envers . DBMS XMLGEN a La solution DBMS XMLGEN produit un document XML ` partir de n’importe quelle requˆte SQL en transformant les r´sultats en XML. MISE EN OEUVRE 70 file. depuis de d´part. Ce faisant. Le r´sultat est ree e e tourn´ sous forme de CLOB (Character Large Object) qui peut ˆtre vu comme e e une large collection de caract`res.

. Oracle propose le support des fonctions SQLX. Il propose une mani`re de e e travailler de concert avec les langages SQL et XML. mais nous avons utilis´ un syst`me e e e presque en tout point semblable. Le r´sultat global de la requˆte est ins´r´ dans un e fichier XML o` chaque ligne est ins´r´e entre des balises <row>. Elles permettent de g´n´rer un e e format de sortie en XML. e a En ce qui concerne l’export en XML. On lui associe un nom. – XMLConcat() permet de concat´ner tous les ´l´ments pass´s en argument. telles que : e e – XMLElement() permet de d´finir une balise XML. . dit diagramme XML. e . e e e e sa complexit´ relative le rendait moins attractif et les possibilit´s que nous e e souhaitions exploiter ´taient pr´sentes au sein d’autres m´thodes avec lesquelles e e e nous nous sentions plus confortables. La diff´rence fondamentale avec la m´thode pr´c´demment d´crite provient du e e e e e a e fait que DBMS XMLGEN produit un fichier XML ` partir du r´sultat de la requˆte alors que les fonctions SQL d’Oracle travaillent au niveau de la ligne e de r´ponse. e Diff´rentes fonctions sont propos´es. il fonctionne de mani`re semblable ` la e a e e ee m´thode DBMS XMLGEN. un e ´ventuel attribut. – XMLForest() produit une forˆt (suite de balises XML) ` partir des ´l´ments e a ee pass´s en argument. et on d´crit ce qui doit se trouver ` l’int´rieur de la balise. mais aussi d’extraire des donn´es d’un fichier XML afin de les ins´rer e e e dans un table Oracle. soit de texte. Fonctions SQL Oracle propose des fonctions SQL qui lui sont sp´cifiques : les fonctions e SYS_XMLGEN(). Ce fichier XML de sortie est ensuite transform´ au format d´sir´ ` l’aide d’une feuille de style XSLT. Diff´rentes u ee e fonctions permettent de changer le nom des balises. e ee e afin de former un bloc XML. e e a e Il peut s’agir soit d’autres balises. e e e a Bien que cette m´thode poss`de des avantages ´vident en termes de flexibilit´. d’ajouter des attributs. au format SQL. Depuis la version 9i de son syst`me.CHAPITRE 7. MISE EN OEUVRE 71 Ces pages en XSQL contiennent la requˆte. e ee Nous n’avons pas utilis´ cette technique. et le r´sultat est e e produit sous forme de XML. que nous d´crivons ci-apr`s. Il offre ´galement la possibilit´ de modifier ou d’effacer e e des donn´es dans la table ` partir d’un fichier XML. XMLAGG() et XMLSEQUENCE(). Chaque ligne est interpr´t´e et le XML correspondant est produit. . e e Fonctions SQLX SQLX est une partie ´mergente du standard SQL. XSU (XML SQL Utility ) XML SQL Utility permet de g´n´rer de l’XML ` partir de requˆtes sur la base de e e a e donn´es.

country=’belgique’ group by d. XMLAGG(XMLELEMENT("data".year=2005) group by d.country=’belgique’ and (d.year as "year").region as "id"). e chaque ligne de r´sultat est interpr´t´e et ins´r´e entre les balises XML d´sir´es.3. associ´e ` une clause e a GROUP BY. MISE EN OEUVRE 72 – XMLAgg() est une fonction qui permet d’agr´ger des ´l´ments entre eux. De plus. XMLATTRIBUTES(d. e e a et de les regrouper au sein de notre balise <country>. Ceci permet d’agr´ger toutes les donn´es relatives ` la Belgique.4. il s’agit d’un standard ´mergent. e Nous avons ensuite effectu´ une requˆte sur cette table.region))) from DATA d where d. Ceci afin de pr´server la structure hi´rarchique de nos donn´es. Elle permettait e de travailler directement en ligne de commande. e e e e Nous utilisons donc pour cela la fonction XMLAGG(). Cette requˆte est relativement ais´e ` comprendre. et nous avons toujours e tent´ de travailler avec des normes standardis´es dans le cadre de ce travail. nous avons utilis´ cette solution.country . Donc. nous avons vu dans la section 7. (select XMLAGG(XMLELEMENT("region".CHAPITRE 7. e e 7.2 G´n´ration du fichier de donn´es XML e e e Nous avons pu acqu´rir.country as "id"). e e a e Dans le cadre de ce travail. . e ee ee e e Or.value)))) from DATA d where d.XMLELEMENT("country". XMLATTRIBUTES(d. en l’occurrence lister les e e donn´es g´ographiques pour la Belgique (en ce compris ses trois r´gions) pour e e e les ann´es 2004 et 2005. e Voici cette requˆte : e select XMLELEMENT("file". d. des donn´es d´mographiques e e e (nombre d’habitants) que nous avons introduites dans une table de notre syst`me Oracle.1 que nous souhaitions agr´ger les done n´es relatives ` un pays au sein d’une seule balise XML correspondant au pays e a concern´.year=2004 or d. Elle e ee peut ˆtre associ´e ` une clause ORDER BY permettant de trier les r´sultats. avec le syst`me existant et e fournissait toutes les fonctionnalit´s dont nous avions besoin pour notre fichier e XML de sortie. Retenons un point impore e a tant : les fonctions SQLX travaillent au niveau de la ligne de r´sultat. XMLATTRIBUTES(d. sur le site Eurostat.

au sein de ceux-ci. e e une fois d´finie. <targetModel>. . que le GML Viewer ´tait construit sur base de mod`les e e et. nous avons cr´´ un widget sp´cifique sur notre page. ee e Ceci autorise l’acc`s aux fonctions d´finies pour le mod`le cible. Ce mod`le prend pour fichier source nos donn´es e e e extraites d’Oracle. nous devons introduire une deuxi`me instruction SELECT pour effece tuer ce groupement. e e a e Nous avons vu. dans e le cas qui nous int´resse. e ee <models> <OwsContext id="mainMap"> [. Cette balise. une variable e a e targetModel faisant r´f´rence au mod`le avec lequel nous souhaitons travailler. le logiciel propose une balise sp´cifique. Les widgets sont. Le reste de la requˆte ne constitue que de la mise en forme proprement dite. qui fait partie d’un mod`le e diff´rent. Le e code est relativement intuitif ` ce sujet.xml</defaultModelUrl> <widgets> <Widget id="dataTree"> <htmlTagId>data</htmlTagId> <stylesheet>. Or. Afin de permettre une interaction avec la carte. Etant donn´ que la clause GROUP BY se rapporte ` une seule instruction e a SELECT. Nous avons donc cr´´ un mod`le ` part enti`re.xml qui illustre le mod`le ainsi cr´´. e ee e Ce widget est d´fini au sein d’un mod`le ` part enti`re./arbre/data./arbre/data. Pr´cisons que la fonction a e XMLATTRIBUTES() permet d’ajouter un attribut ` la balise XML d´crite dans a e la fonction XMLELEMENT() parente. 7.xsl</stylesheet> <targetModel>mainMap</targetModel> . e Voici un extrait du fichier config.1 Pr´paration du GML Viewer e Cr´ation d’un mod`le propre e e Afin de permettre ` nos donn´es d’interagir avec les diff´rentes modifications a e e apport´es au GML Viewer. MISE EN OEUVRE 73 Nous proc´dons de la mˆme mani`re au niveau inf´rieur (r´gion).CHAPITRE 7. Nous voue e e e e lons agr´ger au sein d’une seule balise <region> les donn´es relatives ` cellee e a ci.5 7. ] </OwsContext> <Model id="dataRep"> <defaultModelUrl>. et un mod`le ne peut contenir qu’un seul fichier source a e e XML. le fichier de donn´es XML source e e est propre ` un mod`le. en effet. li´s ` une feuille de style qui se charge de transformer e e a les donn´es au format XML en HTML. d´riv´ du mod`le basique ee e a e e e e propos´ par le programme. . nous pouvons d´finir des widgets. en l’occurrence e e e le mod`le mainMap. permet d’associer ` tous les widgets du mod`le.5.

celui que nous avons d´fini. en l’occurrence. l’affichage de zones g´ographiques que nous avons e dˆ d´finir. e e Autre point important. nous avons ajout´ un autre mod`le. MISE EN OEUVRE </Widget> </widgets> </Model> </models> 74 Nous pouvons voir ici l’ajout de notre mod`le et de notre widget au programme. Nous avons vu qu’` un mod`le correspondait un et un seul fichier de e a e donn´es . nous d´finissons. Nous voulions donc permettre. ` l’aide d’une feuille de style e a XSLT. Cette balise permet de d´finir un mod`le g´n´rique. e e e Au sein de notre mod`le. Nous avons dit pr´c´demment e e e que notre mod`le ´tait en fait un mod`le de base. e e e e Ceci est permis grˆce ` cette balise. Nous n’avions en effet pas e a e e besoin de fonctions suppl´mentaires. sur notre carte. nous pouvons acc´der. notre fichier de donn´es et le fichier g´n´r´ par Oracle e e e ee lors de la requˆte effectu´e et d´crite plus haut. Il aura pour fonction e e d’afficher les donn´es en HTML sur notre page. qui fait partie d’un autre mod`le. 7. au sein de notre mod`le. les couches sont ´crites en GML. via la balise e e e e e e <Model id="dataRep">. nous d´finissons notre widget.2 D´finition des couches en GML e Nous avions pour objectif de permettre une interaction entre les donn´es exe traites en XML et la carte au sein de notre programme. e a le mod`le sur lequel nous souhaitons interagir. ` l’aide de la balise <targetModel>. car les navigateurs internet ne peuvent charger que des pages . u e Pour ce qui est des zones g´ographiques. e Outre le mod`le <OwsContext> dont nous avons par ailleurs parl´ au chapitre e e pr´c´dent. e Nous pr´cisons ensuite l’adresse du fichier de donn´es XML correspondant au e e mod`le. va cr´er des instances de mod`les et de e e widgets avec lesquelles nous pourrons interagir avec le programme. e e Un fichier d´di´ doit ˆtre cod´ pour d´crire chaque couche. Cette feuille de style sera d´taill´e dans ce chapitre. ces zones s’affichant en surimpression sur la carte. nous allons avoir besoin de fonctions plus a e sp´cialis´es que les fonctions d´finies pour tous les mod`les. Seules les fonctions et variables globales de bases e e n´cessaires propres ` tous les mod`les sont d´finies.xml.CHAPITRE 7. au chargement.xml. le programme. ´tant donn´ que nos donn´es vont interagir e e e e avec la carte. pour modifer l’aspect e e e de la carte ` partir de notre mod`le. g´n´rique celui-ci. aux diff´rentes e e e fonctions d´finies pour le mod`le cible.5. Elle permet de d´finir une variable appartea a e nant au mod`le. Ce fichier s’appelle data. e e Notre mod`le et notre widget une fois d´finis dans le fichier de configuration e e XML. A l’aide de e e e cette variable. Ce fichier a une e e e e e extension . Or. ne comprenant pas de e e e e fonctions sp´cifiques associ´es. appell´e targetModel.

gml. ` savoir la Belgique e e e a et ses trois r´gions. e e e e Le code source apporte peu d’informations suppl´mentaires. Ces fichiers XML sont interpr´t´s par une a e ee feuille de style XSLT et affich´s entre les balises appropri´es au sein de la page e e HTML principale.000 villes de douze pays europ´ens. Cela ne e e repr´sente pas un probl`me. e e e Quatre fichiers en GML ont ainsi ´t´ cr´´s. nous utilisons la propri´t´ GML e e ee nomm´ LinearRing. Afin de parvenir ` une repr´sentation r´aliste de nos fronti`res. Ensuite. lors de la mise en place d’une telle solution.CHAPITRE 7. le GML Viewer fonctionne ` partir de fichiers de donn´es/cona e figurations XML. dans le fichier de contexte. e e les concepteurs peuvent ´galement faire correspondre les noms des couches qu’ils e vont d´finir aux formalismes utilis´s dans la base de donn´es. e e e 7. il ne nous a pas e sembl´ utile de le d´tailler ici. dont la e e Belgique. Geoco1 . nous avons pu trouver un site internet. En effet. nous n’avons pas choisi le nom des couches par hasard. renseignant les coordonn´es GPS de plus de 100. quant ` elles ´crites en GML.6 Transformation du fichier source en HTML Nous l’avons vu.geoco. nous a e e e avons retenus les coordonn´es de plus de 150 villes diff´rentes. e Par contre. Cependant. Ceci est un point important : le nom interne de la couche doit correspondre ` l’identifiant de l’entit´ g´ographique concern´e dans a e e e notre fichier XML de donn´es. Cet ensemble de segments come e mence et se termine en un point. Si nous avions sp´cifi´ une extension en . MISE EN OEUVRE 75 XML. nous ne sommes pas parvenus ` trouver des donn´es e a e comprenant les coordonn´es GPS des fronti`res de la Belgique et de ses trois e e r´gions. Afin de d´finir une couverture g´ographique. dont les e points sont renseign´s par des coordonn´es. 1 http://www. Il s’agit donc e aussi d’un fichier XML. ce n’est pas un probl`me car le code GML est avant e e e tout du code XML avec des balises et une grammaire sp´cifique. e e Notons qu’en interne. Cependant. dont nous prenons le soin de concevoir l’affichage. situ´es le long e e e de la fronti`re ext´rieure ou le long de la fronti`re linguistique. e Ceci permet d’´viter de devoir ´tablir une quelconque correspondance entre e e le fichier de donn´es et les diff´rentes couches de notre programme. formant un anneau (ring) d´crivant la coue verture. nous avons inclus ces couches ` notre programme en modifiant e a le fichier de contexte que nous avons d´taill´ dans le chapitre pr´c´dent. correspondant au pays et ` ses trois e e ee a r´gions. nous avons dˆ d´crire les fronti`res de celles-ci ` l’aide de e u e e a coordonn´es. Afin de repr´senter les zones concern´es par nos donn´es. Il s’agit d’un ensemble de segments contigus.org . la couche n’aurait pas pu e e ˆtre charg´e. exception faite de la description des diff´rentes couches de la e carte.

<xsl:value-of select="$targetModel"/></xsl:param> Nous avons vu dans la section pr´c´dente la d´finition d’une variable e e e targetModel qui nous permettait d’avoir acc`s aux fonctions d´finies pour l’obe e jet carte de la page internet. Elle est particuli`rea a e e ment importante. A la cr´ation d’une instance du widget. Ces fonctions doivent ˆtre appel´es depuis la page e e principale. nous pouvons maintenant acc´der aux fonctions d´e e finies pour la carte.xsl. ce que e nous avons fait avec targetModel./lib/widget/nom_du_widget. Le GML Viewer permet ceci. ea ee <xsl:param name="targetModel"/> <xsl:param name="target">config. et se trouve alors ` l’endroit . e Il a donc ´t´ con¸u un syst`me de balises poss´dant presque toutes un attribut. en un fichier HTML dont la plupart des balises comportent des ate tributs nous permettant de faire interagir le code HTML g´n´r´ avec le proe ee gramme. dans notre feuille de style. e . MISE EN OEUVRE 76 Afin d’afficher les donn´es XML au sein du programme. En parall`le. capable de transformer notre fichier XML de e donn´es. soit d´finie e e par d´faut. e Tout d’abord. nous montrerons quelques passages du code HTML e e e ainsi g´n´r´. nous avons pu nous “promener” dans le document HTML ainsi cr´´. nous avons proc´d´ de la mˆme mani`re. via le HTML que nous voulons g´n´rer. e A l’aide des fonctions DOM du langage javascript. et nous devons. illustrons les variables permettant d’appeler les fonctions d´finies e dans le programme. Nous avons e e e e ´crit une feuille de style XSLT. particuli`rement a e e r´v´lateurs. et ce qu’elles soient d´j` existantes ou cr´´es par nos soins. e a A l’aide de cette variable. et permettre alors l’interaction ee souhait´e. e Nous allons ` pr´sent illustrer quelques morceaux de code. ee c e e Ces attributs sont de diff´rents types et correspondent chaque fois ` une fonction e a bien pr´cise. mais aussi dans la feuille de style correspondante. Un certain nombre de variables sont pr´-d´finies e e pour chaque widget et nous les sp´cifions dans le fichier de configuration. et nous pourrons alors comprendre plus ais´ment les diff´rents e ee e e choix effectu´s. et de rendre possible e l’interaction avec celui-ci. Notre feuille de style s’emploie donc ` transformer le fichier de donn´es que nous a e avons obtenu grˆce ` la base de donn´es oracle en HTML. e e Illustrons maintenant le d´but de notre feuille de style.objects.CHAPITRE 7. avoir une variable contenant cette valeur. Cette feuille de style est soit renseign´e par l’utilisateur. les e diff´rences variables d´finies dans le fichier de configuration sont assign´es dans e e e la classe du widget proprement dite. car elle cr´e l’interaction proprement dite entre le programme e GML Viewer et nos donn´es.

Ces e ee e propri´t´s sont d´finies dans un fichier CSS s´par´. consacr´ aux entrepˆts de donn´es e o e . Nous illustrons ici la mani`re dont sont trait´es e e e e e 2 voir chapitre 2. true). Les diff´rents balises HTML e e e qui sont ici employ´es ont des propri´t´s de style qui leurs sont associ´es. </xsl:attribute> <xsl:value-of select="@id"/> </span> <div class="region"> <xsl:apply-templates/> </div> </div> </xsl:template> Commentons ce morceau de code. Nous avons vu. e Via l’instruction <xsl:apply-templates/>. En effet. e <xsl:template match="country"> <div class="country"> <xsl:attribute name="id"> <xsl:value-of select="@id"/> </xsl:attribute> <span> <xsl:attribute name="onclick"> <xsl:value-of select="$target"/>. nous sp´cifions qu’` cet endroit. Il ne ee e e e e nous a pas paru utile de le d´tailler ici. Nous devons donc “entourer” (wrapper ) le code que nous souhaitons produire d’une balise. e La feuille de style XSLT que nous avons produite traite chaque niveau de granularit´ de la mˆme mani`re. Nous produisons un titre : “Donn´es”. le programme n’ins`re e qu’une seule balise racine ` l’int´rieur de la balise pr´vue dans la page HTML a e e principale. et la balise <div> est id´ale pour cette fonction. que nous avions plusieurs niveaux de granularit´2 disponibles. Nous pouvons observer que tout le code HTML que nous produisons est compris au sein d’une balise <div>. e a nous souhaitons ex´cuter les transformations d´crites pour les noeuds enfants e e du noeud courant. MISE EN OEUVRE <xsl:template match="/file"> <div><h1>[Donn´es]</h1><br/> e <xsl:apply-templates/> </div> </xsl:template> 77 Voici le d´but du HTML que nous g´n´rons ` partir de notre fichier de done e e a n´es XML. dans notre fichier de donn´es e XML produit.switchLayerDisplay (’<xsl:value-of select="@id"/>’. que nous avons ´crit.CHAPITRE 7.

.CHAPITRE 7. mais cet affichage e sous forme d’arbre est bien plus indiqu´ dans ce cas. Nous n’avons e e en effet pas besoin de pr´ciser par exemple que les entit´s “wallonie”. il nous a paru plus sens´ de proc´der de cette mani`re. display: none. a Chaque niveau de granularit´ en XML est donc repr´sent´ par une balise <div>. dans le fichier CSS distant. si nous les avions d´finis). une propri´t´ : margin-left. ` l’aide de feuilles de style CSS et de fonctions javascript. elles aussi. mais le proc´d´ est similaire pour les balises des nie e veaux de granularit´ inf´rieurs (<region>. nous pouvons voir . l’attribut display permet de ne pas afficher les ´l´ments non-racine de l’arbre. la seule a e repr´sentation sous forme d’arbre suffit ` le comprendre. Un clic de souris sur le parent. elle sera d´cal´e de quarante pixels ` gauche par e e a rapport ` cette derni`re. ce code est destin´ ` produire une vision des donn´es sous forme ea e d’arbre. ou sup´rieurs (par exemple e e e <continent>. ` e a chaque attribut class. Outre les diff´rentes modificae e tions classiques (font. e e En effet. et a simule un niveau inf´rieur dans l’arbre repr´sentant les donn´es. ` notre sens. la balise <div class="region">. et surtout le texte qu’elle contient. e e et “flandre” appartiennent ` “belgique” via une colonne suppl´mentaire. <data>). cr´ant par cons´quent la structure e e e e d’arbre qui. Il procure un niveau e d’abstraction suppl´mentaire dans la visualisation des donn´es. Ceci constitue un d´calage ee e par rapport ` la marge gauche de la page. par exemple. font-color. e e e C’est ainsi que. .. e Dans cet extrait de code CSS.region{ margin-left: 40px. . MISE EN OEUVRE 78 les balises <country>. outre l’attribut de classe. ou de la balise <div> courante. seront d´cal´s par rapport ` la balise e e a <div class="country"> car. en HTML. a e e d´cal´es de quarante pixels et ainsi de suite. Les balises incluses dans la r´gion seront. cursor: pointer. e Pour rappel. <zone>. ee Retournons au code de la page 77. Nous avions e e e d’abord envisag´ un affichage classique sous forme de tableau. Cette propri´t´ sera modifi´e grˆce aux ´v´ee ee e a e e nements effectu´s sur les ´l´ments de l’arbre. Ce dernier fait r´f´rence aux propri´t´s ee ee de style d´finies dans le fichier de style externe. nous avons : . refl`te de la mani`re la plus intuitive la relation entre a e e les diff´rentes donn´es. nous avons associ´. e a Ceci est le but vers lequel nous voulons tendre. e e e a ` laquelle on associe un attribut class. } La balise <div class="region"> ´tant incluse dans la balise e <div class="country">. Les solutions SOLAP tirent leur atouts de ces niveaux d’abstraction d’informations rendant plus claire la visualisation des donn´es proprement dites.. . ). font-weight. e ee provoquera la modification de la propri´t´ display de ses enfants. “bruxelles”.

ea e e Ceci a ´t´ introduit dans le but d’am´liorer quelque peu les performances. nous avons ee red´fini dans notre feuille de style CSS le curseur ` afficher au survol de ce texte. donc les feuilles dans ee e notre arbre de repr´sentation. Il nous e e e est n´cessaire pour les fonctions javascript que nous allons d´crire dans la suite. la valeur de l’attribut id de la balise <country> de notre fichier XML de donn´es.CHAPITRE 7.objects. Si."> belgium </span> . e Ici. MISE EN OEUVRE 79 que les balises <div> poss`dent aussi un deuxi`me attribut. et interpr´t´ ee par notre navigateur internet : <div class="country" id="belgium"> <span onclick="config. e a Il s’agit du curseur pointer indiquant que le texte est cliquable. e Enfin. Cette balise que nous ajoutons.. Dans ce cas. le souci principal est le parcours du fichier XML. au contraire. via l’instruction <xsl:apply-templates/>. le texte ` afficher est. au sein de notre balise principale. true). Au moment d’afficher le texte. Ce texte sera ins´r´ dans des balises <span>. et elles n’ont pas de fils dans le document.mainMap. Si e e nous cliquons sur l’´l´ment courant. si nous regardons le fichier XML de donn´es sur lequel nous travaillons. voici un extrait du code HTML ainsi produit. qui ont ee pour but d’associer des attributs. nous sommes a e capables d’identifier un noeud (balise. Ces fils ee seront donc tous inclus dans la mˆme balise. Au sein de la balise. ` une partie ee a de texte.). texte) d’un document HTML en fonction de la valeur de son attribut id. la strat´gie diff`re quelque peu selon le cas e e consid´r´. poss´dant un attribut de classe. il nous suffit donc de provoquer l’affichage ee de la balise rajout´e. En effet. e e va contenir tous les fils de l’´l´ment que nous sommes en train de traiter. r´gion. <div class="region">. ee A titre d’exemple. . alors nous sommes forc´ment en train de traiter des informations de e lieu (pays. nous nous situons plus haut dans la hi´rarchie et donc dans e l’arbre.. nous introduisons d´j` la balise du niveau pr´c´dent. nous d´sirons simplement produire un ´v`nement javascript. Si nous affichons les donn´es proprement dites. via l’attribut onclick. il suffit d’afficher au sein des balises <span> les e feuilles du fichier XML. nous allons produire le texte correspondant afin qu’il s’affiche sur la page internet. switchLayerDisplay(’belgium’. Afin de rendre la chose encore plus intuitive. nomm´ id. comme dans notre e a exemple. Nous appore e e tons. ` l’aide des fonctions DOM pr´sentes dans javascript. dans le cas o` nous u travaillons avec de grosses quantit´s de donn´es. ind´pendamment de la balise au sein de laquelle elle se trouve. pour rappel <div id="country">. souvent des propri´t´s de style. la possibilit´ d’appeler une fonction si on clique e sur le texte consid´r´. plutˆt que de parcourir tous les fils afin de modifier leur e o propri´t´ d’affichage. les e donn´es sont exprim´es sous forme de texte au sein des balises <data> que nous e e sommes en train de traiter. e e En effet. En ee e effet.

nous avons travaill´ ` partir de notre mod`le.. De plus. En effet. e Nous avons choisi de regrouper ces deux tˆches en une seule fonction afin de a minimiser les parcours de fichier.CHAPITRE 7. e Tout d’abord.2000</span></div> </div> </div> [.mainMap. e e La raison en est simple : cette fonction a pour but d’afficher/masquer des couches sur la carte et cette derni`re appartient au mod`le cible. l’affichage d’une couche sur la carte correspond au d´ploiement e des fils du noeud correspondant dans l’arbre de mˆme que l’action de cliquer e une seconde fois sur un noeud de l’arbre provoque la suppression de l’affichage de ses fils (au sens large) et de la (des) couche(s) concern´e(s).">wallonie</span> <div class="data"> <div><span>2004:&#160.] <div id="wallonie"> <span onclick="config. En regroupant les e e tˆches. Ces deux actions vont e de pair. Ces ´v´nements appellent une ee ee e ee e e fonction.. charg´e ` la fois de g´rer l’affichage/masquage e a e des couches sur la carte.2000</span></div> <div><span>2005:&#160. nous devons dans les deux cas parcourir le fichier HTML et acc´der aux mˆmes informations. L’id´e est simple. et non de notre propre mod`le. Nous travaillons ici sur une fonction ` a a laquelle on acc`de ` partir du code HTML g´n´r´. Nous allons illustrer ici cette a fonction. nous avons vu que des ´v´nements javascript e e e e onclick ont ´t´ ins´r´s dans le HTML g´n´r´. les donn´es sont acc´e a e ee e e 3 Pour rappel.7 Interaction avec le GML Viewer Dans la section pr´c´dente. switchLayerDisplay(’wallonie’. mais sur le fichier HTML de la page e principale de notre programme. Donc.. remarquons que nous avons ajout´ cette fonction dans la classe e de notre mod`le cible3 . mais aussi de g´rer l’affichage de notre arbre de repr´e e sentation de donn´es. En effet. MISE EN OEUVRE 80 <div class="region"> [.. false).objects. interagissant avec un mod`le ea e e cible. les e e interactions souhait´es avec nos donn´es (le d´ploiement de l’arbre) se feront e e e non pas sur notre fichier de donn´es XML. nous ne faisons plus qu’un seul parcours. nous devons faire appel ` cette fonction lorsque nous voulons e a basculer l’affichage des couches et d´plier/replier l’arbre. Il est important de garder ceci ` l’esprit.] 7. e . switchLayerDisplay. d´fini dans le fichier de configuration par la balise <targetModel>.

false). nous utilisons la fonction getElementById. Nous allons.setHidden(layerName.setHidden(layerName. MISE EN OEUVRE 81 d´es via les diff´rentes fonctions DOM du javascript qui parcourent le document e e HTML. this. du noeud <div id="wallonie">. elle doit donc faire deux choses : a . children[1]. avec les param`tres ’belgique’ et ’true’. Au premier clic. Nous l’avons e dit plus haut. Elle n´cessite deux param`tres : le nom de la e e e couche que nous d´sirons afficher/cacher et un bool´en. il s’agit.style. Dans ce cas pr´cis. Cette fonction est apc pel´e.display="none".switchLayerDisplay=function(layerName. } else{ if(layerName!="total") this. pla¸ons nous dans un contexte. plusieurs fonctions DOM de javascript.getElementById(layerName).clearChildren(children[1]). } } Afin de bien comprendre. La variable children est donc un vecteur contenant e a tous les fils du noeud tag dans l’ordre dans lequel ils sont rencontr´s dans le e document. e par exemple. Ensuite. if(parent) this. children[1]. nous avons maintenant en m´moire le noeud racine e d’une r´gion dans notre document. par exemple. e acc´der ` tous ses fils. nomm´ parent dont e e e nous allons parler tr`s prochainement.display=="block"){ if(layerName!="total") this. depuis la variable children. Si nous nous reportons ` l’extrait de code HTML g´n´r´ pour notre fichier a e ee XSLT. Elle illustre ´galement un point impore e tant de notre mani`re de travailler : notre recours aux fonctions DOM accessibles e dans javascript. parent){ var tag = document. nous pouvons voir quel noeud sera assign´ dans la variable tag . qui permet e d’identifier un noeud du document HTML d’apr`s son attribut id. c’est la raison pour laquelle nous avons associ´ des attributs id e a ` certaines de nos balises <div>. true).style.childNodes. depuis ce noeud. En l’occurrence. Voici le d´but de notre fonction. var children=tag. Voyons la suite : if(children[1].display="block". e e correspondant ` un affichage d’informations. nous pouvons utiliser.CHAPITRE 7.style.

nous voulons provoquer l’affichage des fils de cet ´l´ment dans l’arbre. . constitu´ des donn´es) comporte une e e e entit´ “total”. a ` Ensuite. accessible via children[1]. voulu explorer cette piste. Nous discuterons des quelques limitations que cela engendre dans le chapitre suivant. si elle ne s’appelle pas “total”. mais aussi l’affichage de tous les fils (au sens large). a – afficher les fils directs dans l’arbre. . 82 Ceci est fait dans le corps de l’instruction else. nous jouons simplement sur la propri´t´ display de la feuille de style CSS associ´e : ee e "block" affiche l’information alors que "none" ne l’affiche pas. plus g´n´ralement. Pour l’affichage proprement dit. visionn´e avec le navigateur Fie e e refox (figure 7. MISE EN OEUVRE – afficher la couche correspondant ` la Belgique. e e a a Cette fonction est appel´e seulement si le bool´en parent est vrai. Si nous e avions eu des donn´es par province. et nous e e avons. Ceci est fait grˆce ` la fonction clearChildren. ee e La fonction clearChildren est donc une fonction r´cursive qui parcourt le souse arbre ` partir d’un noeud et supprime. En effet. l’affichage des couches GML correspondantes. d’une part. d’autre part. Voici une capture d’´cran du r´sultat obtenu. Cette balise est toujours le deuxi`me fils du noeud courant dans le e document4 . Lorsque que nous cliquons pour la deuxi`me fois sur un ´l´ment de notre arbre. il nous a paru plus intuitif de proc´der ainsi. nous ee e n’avons pas besoin de descendre dans la hi´rarchie afin de modifier les propri´t´s e ee des ´l´ments pr´sents. mais que l’on d´sire replier le deuxi`me. e ee ou. ee Nous avons dit dans le d´tail de notre conception que nous avions regroup´ e e tous les fils d’un ´l´ment au sein d’une balise <div> afin d’en faciliter l’affiee chage. chaque e e niveau de granularit´ (sauf le dernier. e La pseudo-couche “total” ne correspond donc pas ` une zone a afficher ici. En effet.1). mais nous travaillons depuis le d´but avec des fichiers textes. dans le cadre de ce travail. nous souhaitons masquer l’affichage e e a de la couche. alors tous les niveaux e e e e inf´rieurs le seront ´galement. En effet. Si cinq niveaux de l’arbre e sont d´pli´s. 4 Il peut s’av´rer utile de se reporter au code HTML g´n´r´ par notre feuille de style ` la e e ee a page 80. un total aurait ´t´ sp´cifi´ dans chacune e ee e e des r´gions comprenant les totaux de toutes les provinces de cette region. Cette solution pose ´videmment des probl`mes en cas de gros fichiers de done e n´es. . l’affichage des ´l´ments dans a ee l’arbre et. Nous provoquons l’affichage de la couche pass´e en param`tre.CHAPITRE 7. ` chaque clic pair. Dans notre exemple. il s’agit du total pour la Belgique. . si e e l’´l´ment que nous traitons ne poss`de que des fils qui sont des feuilles.

7.1 – Capture d’´cran du r´sultat dans GML Viewer e e . MISE EN OEUVRE 83 Fig.CHAPITRE 7.

42GHz. Par contre. 1Gb RAM. Nous nous sommes pour cela aid´s une nouvelle fois des sch´mas XML. ce dont nous ´tions conscients depuis le d´but. nous avons e cliqu´ sur la racine de l’arbre afin de replier toute la structure. Ceci ne peut constituer e e un gros fichier de donn´es. Notre fonction s’ex´cute e e e e assez rapidement.CHAPITRE 7. La r´activit´ reste tr`s correcte avec 1.xsd (fichier XML Schema) validant notre e fichier de donn´es g´n´r´ par Oracle. Nous devons garder ` l’esprit que nous e a manipulons des fichiers textuels tout au long de notre processus de transformation. Il nous e a e est apparu qu’en fait.303 secondes e pour tout d´plier. mˆme avec le plus gros fichier. nous avons pu g´n´rer e e ee e e e e automatiquement des fichiers XML lui correspondant. e e . soit ` peu pr`s 10. nous avons ´crit un fichier . ` plusieurs reprises. l’affichage/masquage des couches n’est constitu´ que d’un appel de fonction s’ex´cutant en un e e temps constant. ce qui freinait le plus le navigateur ´tait le processeur e XSLT interne. Nous sommes donc confront´s ` des limitations de taille de fichier en travaillant e a comme nous l’avons fait. pour r´pondre ` l’´v´nement g´n´r´ e a e e e ee Ceci ne nous ´tonne pas outre mesure. car a e e nous parcourons le fichier autant pour l’affichage de donn´es au sein de la page e internet que pour l’affichage des couches sur la carte.8 Limites Gardons ` l’esprit que nous avons choisi de travailler avec des fichiers de dona n´es textuels.000 r´gions au sein du pays et chaa e cune de ces r´gions contient les donn´es de dix ann´es.000 lignes e e e e a e dans le fichier XML. pr´cis´ que leur principal d´faut e a e e e consistait en leur lenteur par rapport aux fichiers binaires.000 r´gions. Evidemment. peinait ` afficher les donn´es. soit 10. Nous avions e pr´alablement pris le soin de d´finir des variables permettant de calculer le e e temps d’ex´cution de notre fonction. e e En effet. e Nous avons donc voulu tester notre programme avec des fichiers plus cons´e quents.004 secondes pour tout replier5 . Arm´s de ce sch´ma. et 4. lors de sa transcription du XML vers l’HTML. Nous avons donc cr´´ une fonction de test charg´e de d´ployer enti`rement ee e e e l’arbre de donn´es sur la page principale du programme. Il a suffit de 3. Nous avons. MISE EN OEUVRE 84 7. Ceci ne pose aucun probl`me. si nous multiplions par dix la taille du fichier. nous avons ici a e e travaill´ avec la Belgique et ses trois r´gions uniquement. seules les balises ´taient correctes.000 r´gions. les attributs ne correspondaient e plus ` des couches pr´sentes sur notre carte. e Par contre. En fait. notre navigateur pouvait mettre jusqu’` quinze secondes e a 6. Nous pouvons donc ´tablir que des solutions de ce type ne peuvent e 5 Temps de r´ponse le plus long recens´ e e 6 Test r´alis´ sur un processeur PPC G4 @1. e Nos fichiers XML comprenaient de 10 ` 10. le navigateur utilis´. Ensuite. e e Afin de ne pas avoir ` d´finir des fichiers GML trop cons´quents. Firefox.

9 Conclusions Dans ce chapitre. Cependant. De plus. nous discuterons des apports indispensables si nous voulons voir se propager ce type de techniques. nous allons conclure notre travail. de part sa simplicit´. Dans le chapitre suivant. e a e e 7. Il convient cependant de rester lucide e a e quant aux limitations inh´rentes ` la m´thode utilis´e. et ´noncer les limites e de celui-ci. MISE EN OEUVRE 85 en aucun cas int´resser des compagnies ayant de gros volumes de donn´es ` e e a analyser.CHAPITRE 7. . et sa portabilit´. sa gratuit´. nous avons d´crit la solution propos´e dans le cadre de ce e e m´moire afin de pouvoir visionner des r´sultats de requˆtes depuis Oracle dans e e e un logiciel offrant un support cartographique. ces syst`mes e e e e restent int´ressants ` bien des ´gards.

et avons pr´sent´ pour cela les syst`mes GIS et OLAP. e e o e e a les diff´rentes possibilit´s qu’ils offrent. Cependant. e e nous avons dˆ nous familiariser avec les diff´rents ´l´ments qui composent g´u e ee e n´ralement ces syst`mes. GML. Ensuite. ils permettent une ´tude analytique pouss´e des donn´es. et plus g´n´ralement.Chapitre 8 Conclusions et d´veloppements futurs e 8. qui allient la puissance analytique des outils OLAP. travaillant avec des fichiers a e textuels.1 Conclusions Les entrepˆts de donn´es sont devenus aujourd’hui un incontournable dans le o e domaine de la Business Intelligence. a e Une autre cat´gorie d’outils. nous avons dˆ nous e e u familiariser avec les techniques de d´veloppement dites “Ajax”. d´riv´e des premiers. Nous avons vu que. nous avons d´crit les diff´rentes ´tapes qui ont abouti ` e e e a la r´alisation de notre programme. e e Afin de d´velopper un embryon de solution SOLAP. e En conclusion. nous avons ´tudi´ les langages n´cessaires dans le e e e cadre de la r´alisation pratique de ce m´moire. il convient de garder ` l’esprit que cette solution ne peut s’adapa ter ` de gros volumes de donn´es. avec les capacit´s de visualisation des cartes g´ographiques. Dans les chapitres suivants. Enfin. nous avons d´crit les syst`mes e e e e dits SOLAP. procurant une e e e efficace aide ` la d´cision dans tous les domaines. est ´galement en plein essor. e Nous avons ensuite pr´sent´ le logiciel sur lequel nous nous sommes bas´s pour e e e proposer une solution de visualisation des donn´es se rapprochant des teche niques SOLAP. dont ils e e e sont issus. e e e e Il s’agit des outils SOLAP. Coupl´s avec les possibilit´ des techniques e e OLAP. XSLT. Nous avons en effet eu ` travailler e e a avec les langages XML. e e Nous avons donc pr´sent´ les entrepˆts de donn´es et illustr´. ces e e e e 86 . but final de ce m´moire. nous ´tions limit´s en termes de quantit´ de donn´es. ` l’aide d’exemples.

Il nous e e e e est apparu contre nature de tenter de repr´senter d’une quelconque mani`re e e des donn´es en GML (` l’aide de cercles. e A ce titre. De plus. et les diff´rentes techniques e e e efficaces que nous avons pu recenser sont toutes propri´taires. En effet. pour laquelle e une conversion est pr´vue. langages. En fait. et ses possibilit´s au niveau graphique sont tr`s limit´es. . . Pour ce faire. Il peut ˆtre visuae e e lis´ nativement par la plupart des navigateurs. si nous nous reportons aux e e premiers articles les d´crivant. le GML Viewer utilis´ se sert de ce langage pour e . e e Il s’agit donc d’une solution enti`rement gratuite. CONCLUSIONS ET DEVELOPPEMENTS FUTURS m´thodes pr´sentent un certain nombre d’avantages non n´gligeables. ce qui constitue un premier pas. il convient de continuer e a e le d´veloppement de ce programme. e e e 87 Tout au long de ce travail.2 D´veloppements futurs e Le d´veloppement de tels programmes paraˆ plus que jamais une piste int´e ıt e ressante au vu des nombreuses applications possibles. de lignes. De plus. ) sur cette mˆme page internet. . . Par exemple. Il pourrait ˆtre avantae e geux. A savoir. en compl´ment. e diagrammes. Or. e e e avec diverses repr´sentations des donn´es. Afin d’arriver ` une solution SOLAP compl`te. de d´finir certaines propri´t´s de e ee style (couleur). . le langage SVG pourrait constituer une piste de travail. e Il serait ´galement int´ressant de d´velopper une personnalisation de l’interface. . a e Premi`rement. librairies propri´taires. le GML est con¸u pour d´crire des entit´s c e e g´ographiques. les donn´es pourraient ˆtre repr´sent´es plus efficacement. . d’offrir des outils analytiques repr´sentant ces mˆmes e e e donn´es. Ici. ). ` l’aide de e e a formalismes XML. . divers agencements. e Il serait donc utile de d´velopper cet aspect du programme. le GML Viewer permet pour le moment d’afficher des couches GML sur une carte au sein d’un navigateur. il s’agit l` d’un aspect ` e a a pr´voir lors de la conception de syst`mes SOLAP. nous avons pu nous passer de tous logiciels. . diverses sortes d’objets g´om´triques. Il est ´galement pose e e sible d’afficher du texte. il serait utile d’afficher divers graphiques (camemberts. permettre e l’affichage de diverses repr´sentations des donn´es directement sur la carte. nous ne nous sommes pas rendus d´pendants e e d’une plate-forme de d´veloppement particuli`re. e e e e e nous nous sommes attel´s ` afficher une repr´sentation de la zone g´ograe a e e phique concern´e. afin d’offrir une meilleure visualisation des e donn´es ` des fins d’analyses. e a 8. et relativement facile ` mettre au point de part les technologies utia lis´es. Ce langage. est encore une sp´cification du W3C.´ CHAPITRE 8. le programme e a n’interpr`te pour le moment qu’une infime partie du langage GML. ´crit lui aussi en GML. une personnae e lisation pouss´e au niveau des couleurs. . La e e litt´rature sur le sujet est loin d’ˆtre abondante. Il permet de d´crire. e Enfin. . ne n´cessitant aucun invese e tissement. plusieurs aspects sont ` d´velopper. .

Nous pouvons donc arriver ` un programme de stature proa fessionnelle. et peuvent ici trouver une solution pouvant s’adapter fid`lement ` e e a leurs besoins. mais aussi parce qu’il s’agit de techniques pouvant s’adapter ` e e a toutes les situations. mais il ne permet pas de charger directement un fichier SVG. Pour les raisons pr´cit´es. Ces mˆmes compagnies n’auraient e ` e e peut-ˆtre jamais consid´r´ un investissement dans de coˆ teuses techniques proe ee u pri´taires. Nous restons convaincus que ce type de logiciels a un avenir prometteur. ` moindre coˆ t.´ CHAPITRE 8. CONCLUSIONS ET DEVELOPPEMENTS FUTURS 88 transformer certaines balises GML. . Ceci pourrait int´resser un ensemble de compagnies a u e ou organisations aux besoins relativement modestes et qui pourraient tirer un r´el avantage en termes d’aide a la d´cision.

. . . . . . . . . e Fichiers principaux de GML Viewer . . . . . . .5 2.Table des figures 2. . . . . . e Couverture des succursales de la Bank of America dans la ville de New York. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o e Op´ration slice . . . . . . . . . . . . . . . e Op´ration roll-up . . . Architecture d’un syst`me GIS. . . . . . . .7 3. . . . . .1 2. . c Capture d’´cran de GML Viewer . . . . e e Architecture classique des entrepˆts de donn´es . . .1 Repr´sentation cubique des donn´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 2. . . . . . . . . . e Op´ration pivot . . .2 2. . . . . . . . . . . . . . e Aper¸u de la transformation XSLT dans Firefox . . . . . . e Op´ration drill-down . . . . . . . . . . . . . . . . . . . . Capture d’´cran du r´sultat dans GML Viewer . . . . . . . . . .2 4. . . . . . . .6 2. . . . . e e 8 9 11 12 12 12 13 17 18 38 49 52 83 89 . . . . . . . . . . . . . . . . . .1 6. . . . . .2 7. . . . . . . . . .3 2. . . . . . . . . . . . . . . . . .1 6. . . . . . . . . .1 3. . . . . . . . . . e Op´ration dice . . . .

Wolski. In Data Warehousing and Knowledge Discovery. Pasquier. Rivest. Inmon and R. Bedard. [9] M. 2002. Aronson. 1994. Wiley. C. Architectures and solutions. Duckham. Shukla. 1996. F. 1999. [6] A. Codd. and K. Proulx. Salley. 1996. S. pages 165–172. CRC Press. [11] Y. and M. Codd. Morgan Kaufmann. Spatial on-line analytical processing (SOLAP) : Concepts. [5] R. IEEE Computer society. 1993. F. [8] N. H. A. and N. architectures and solutions from a geomatics engineering perspective. Vijayaraman. S. A. Technical report. 2004. d´cembre 2001. The Data Warehouse Toolkit : the Complete Guide to Dimensional Modeling. In T.Bibliographie [1] E. Robert Wrembel & Christian Koncilia (ed(s)). Decision support systems and intelligent systems. VLDB’96. Quorum Books. pages 522 – 531. T. M. Technical report. L. e [4] W. GIS. J. 2007. Power. Jensen. and J. September 3-6. In Data Warehouses and OLAP : Concepts. A Computing Perspective. Storage estimation for multidimensional aggregates in the presence of hierarchies. Decision support systems : concepts and ressources for managers. Mumbai (Bombay). Ross. Hackathorn. and C. S. Multidimensional database technology. pages 40 – 46. Arminen. [7] J. pages 298 – 319.-J. B. India. J. 90 . Hyperion Solutions Corporation. Mohan. 2006. P. M. editors. Proceedings of 22th International Conference on Very Large Data Bases. Pedersen and C. Using the Data Warehouse. A. Universit´ e de Nice. Worboys and M. D. chapter 13. Prentice-Hall. B. Buchmann. Sarda. Kimball and M. Lazy aggregates for real-time OLAP. [3] T. seconde edition. OLAP and data warehousing. Turban and J. John Wiley & Sons. Providing OLAP to useranalysts : An IT mandate. Deshpande. 2002. P. 2001. Pesonen. [2] D. Ramasamy. Kiviniemi. Naughton. [10] E.

W. U. Daisey. Data warehouses and OLAP : Concepts. GML — user perspectives. R. architectures and solutions. . Trujillo. Cox. The mapinfo interchange file format specification. F. [17] S. pages 167 – 185. [15] D. J. Canada. M. Technical report. W3C recommandation. Data Science. E. [24] S.0. S. C. Song. Y. [14] T. Open Geospatial Consortium. Chaudhuri.P. 2006. and R. Lake. M. Rivest. 34(12) :48 – 55. Peterson. Palomar. Cabasson. Proulx. M. D. Cuthbert. Maguire. Deli (ed(s)).0. Paoli. Designing data warehouses with OO conceptual models. and I. and Y. 2006. Badard. 34(12) :66 – 75. D. Geography markup language (GML) 2. Extensible markup language (XML) 1. C. In Map Asia 2004. [28] F. Depasse. Cox. M. 1999. [22] J. Rivest. Conception sous eclipse d’un visualisateur de donn´es spatioe temporelles. J. e 25-26 Octobre 2006. Whiteside. Doyle.Stefanakis. In Geomatique 2006. Rhind. and P. A. Longley. 55(4) :539 – 555. 2001. 2001. [13] Y. Technical report. Web map service implementation specification. Toward better support for spatial decision making : Defining the characteristics of spatial on-line analytical processing. [27] D. De La Beaujardiere and A. E. SIGMOD Record. J. Open Geospatial Consortium. F. and F. and V. 2006. Rivest. R. Burggraf. P. Technical report.BIBLIOGRAPHIE 91 [12] S. 2001. and T. Mc Hugh. C. Datawarehouse. Bray. Geography markup language. Ganti. Chaudhuri and U. Committee draft. 1997. [16] P. MapInfo Corporation.-Y. [23] R. une auto-compl´tion pas a pas. An overview of data warehousing and OLAP technology. and A. Marchand. Maguire. Sperberg McQueen. S. S. H. Database technology for decision support systems. Bilodeau. Ajax. Octobre 2006. Lake. Vangenot. Martell. 2005. Portele. and D. 2001. Technical report. Dana. Geographic Information Systems and Science. Yergeau. 26(1) :65 – 74. [25] D. Ecole polytechnique f´d´e e rale de Lausanne. Geomatica. 2001. [21] S. Computer. Computer. [20] P. 2004. e ` [26] J. Dayal. Geography markup language (GML) 3. 2004. Analyse du potentiel e d’une application SOLAP pour une gestion efficace de l’erosion des berges en gaspesie illes-de-la-madeleine.1. B´dard. Dayal. Armenakis. Bedard. A. Murray. J. Open Geospatial Consortium. Maler. Gomez. Montr´al. In Geographic Hypermedia : Concepts and Systems. M. 2002. Goodchild. [19] S. V. 2003. Wiley. Bedard. [18] C. 5 :178–204.

Annexe A Liste des acronymes rencontr´s e AJAX CLOB DOM DSS DTD EPSG GIS GML GPL HOLAP HTML ISO LGPL MOLAP OGC OLAP OLTP OWS RDBMS RDF/S ROLAP RTOLAP SAX SDSS SGML SLD SOLAP SOX Asynchronous Javascript And XML Character Large Object Document Object Model Decision Support System Document Type Definition European Petroleum Survey Group Geographic Information System Generalized Markup Language Geography Markup Language General Public License Hybrid On-Line Analytical Processing HyperText Markup Language International Organization for Standardization Lesser General Public License Multidimensional On-Line Analytical Processing Open Geospatial Consortium Open GIS Consortium On-Line Analytical Processing On-Line Transaction Processing OGC Web Service Relational DataBase Management System Resource Description Framework Schema Relational On-Line Analytical Processing Real-Time On-Line Analytical Processing Simple API for XML Spatial Decision Support System Standard Generalized Markup Language Styled Layer Descriptor Spatial On-Line Analytical Processing Schema for Object-oriented XML 92 .

Formatting Objects 93 . LISTE DES ACRONYMES RENCONTRES SQL StAX SVG URL W3C WMS WOLAP XDR XML XSLT XSL-FO Structured Query Language Streaming API for XML Scalable Vector Graphics Uniform Resource Location World Wide Web Consortium Web Map Service Web-based On-Line Analytical Processing XML Data Reduced eXtensible Markup Language eXtensible Stylesheet Language Transformation eXtensible Stylesheet Language .´ ANNEXE A.

1 Les DTD’s Code source complet du sch´ma de validation DTD de l’exemple XML du chae pitre ´ponyme. prenom. province. adresse.Annexe B Exemples du chapitre 4 B. tel)> contact id ID #REQUIRED> nom (#PCDATA)> prenom (#PCDATA)> adresse (pays. rue. num)> pays (#PCDATA)> province (#PCDATA)> ville (#PCDATA)> zip (#PCDATA)> rue (#PCDATA)> num (#PCDATA)> tel (#PCDATA)> 94 . zip. ville. e < !ELEMENT < !ELEMENT < !ATTLIST < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT < !ELEMENT annuaire (contact+)> contact (nom.

2 XML Schema Code source complet du sch´ma de validation en XML Schema du mˆme exemple e e XML. <?xml version="1.w3. EXEMPLES DU CHAPITRE 4 95 B.org/2001/XMLSchema"> <xsd:element <xsd:element <xsd:element <xsd:element <xsd:element <xsd:element <xsd:element name="nom" type="xsd:string"/> name="prenom" type="xsd:string"/> name="pays" type="xsd:string"/> name="province" type="xsd:string"/> name="ville" type="xsd:string"/> name="rue" type="xsd:string"/> name="num" type="xsd:int"/> <xsd:element name="tel"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="[0-9]{3}-[0-9]{3}-[0-9]{4}"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="zip"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="[A-Z][0-9][A-Z][0-9][A-Z][0-9]"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="adresse"> <xsd:complexType> <xsd:sequence> <xsd:element ref="pays"/> <xsd:element ref="province"/> <xsd:element ref="ville"/> <xsd:element ref="zip"/> <xsd:element ref="rue"/> <xsd:element ref="num"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="contact"> .ANNEXE B.0" encoding="ISO-8859-1"?> <xsd:schema xmlns:xsd="http://www.

EXEMPLES DU CHAPITRE 4 96 <xsd:complexType> <xsd:sequence> <xsd:element ref="nom"/> <xsd:element ref="prenom"/> <xsd:element ref="adresse"/> <xsd:element ref="tel"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="annuaire"> <xsd:complexType> <xsd:sequence> <xsd:element ref="contact" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> .ANNEXE B.

0’?> <xsl:stylesheet version="1.3 Feuille de style XSLT <?xml version=’1.w3.ANNEXE B.0" xmlns:xsl="http://www. EXEMPLES DU CHAPITRE 4 97 B.org/ 1999/XSL/Transform"> <xsl:template match="/annuaire"> <html><head><title>Exemple de tranformation</title> </head> <body> <h1>Mon annuaire</h1> <table border="1"> <xsl:apply-templates/> </table> </body> </html> </xsl:template> <xsl:template match="contact"> <tr> <td><xsl:value-of select="nom"/></td> <td><xsl:value-of select="prenom"/></td> <td><xsl:value-of select="adresse/num"/> <xsl:value-of select="adresse/rue"/><br/> <xsl:value-of select="adresse/zip"/>&#160. <xsl:value-of select="adresse/ville"/></td> <td><xsl:value-of select="tel"/></td> </tr> </xsl:template> </xsl:stylesheet> .

Annexe C

Mise en oeuvre
C.1 Feuille de style XSLT

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:wmc="http://www.opengis.net/context" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" encoding="utf-8"/> <xsl:param name="lang">en</xsl:param> <xsl:param name="modelId"/> <xsl:param name="widgetId"/> <xsl:param name="context">config.objects.<xsl:value-of select="$modelId"/> </xsl:param> <xsl:param name="targetModel"/> <xsl:param name="target">config.objects.<xsl:value-of select="$targetModel"/> </xsl:param>

<xsl:template match="/file"> <div><h1>[Donn´es]</h1><br/> e <xsl:apply-templates/> </div> </xsl:template> <xsl:template match="country"> <div class="country"> <xsl:attribute name="id"> 98

ANNEXE C. MISE EN OEUVRE <xsl:value-of select="@id"/> </xsl:attribute> <span> <xsl:attribute name="onclick"> <xsl:value-of select="$target"/>.switchLayerDisplay (’<xsl:value-of select="@id"/>’, true); </xsl:attribute> <xsl:value-of select="@id"/> </span> <div class="region"> <xsl:apply-templates/> </div> </div> </xsl:template> <xsl:template match="region"> <div> <xsl:attribute name="id"> <xsl:value-of select="@id"/> </xsl:attribute> <span> <xsl:attribute name="onclick"> <xsl:value-of select="$target"/>.switchLayerDisplay (’<xsl:value-of select="@id"/>’, false); </xsl:attribute> <xsl:value-of select="@id"/></span> <div class="data"> <xsl:apply-templates/> </div> </div> </xsl:template> <xsl:template match="data"> <div> <span><xsl:value-of select="@year"/>:&#160; <xsl:apply-templates/></span> </div> </xsl:template> </xsl:stylesheet>

99

ANNEXE C. MISE EN OEUVRE

100

C.2

Fonctions javascript

this.switchLayerDisplay=function(layerName, parent){ var tag = document.getElementById(layerName); var children=tag.childNodes; // Repliage arbre/Masquage couches if(children[1].style.display=="block"){ if(layerName!="total") // rien a masquer this.setHidden(layerName, true); // masque la couche children[1].style.display="none"; // replie les fils directs if(parent) this.clearChildren(children[1]); } else{ if(layerName!="total") this.setHidden(layerName,false); children[1].style.display="block"; } }

this.clearChildren=function(element){ /* annule l’affichage de toute la descendance r´cursivement. */ e if(element.getAttribute("class")!="data"){ // fonction d’arret var children=element.childNodes; var nbChildren=children.length; for (var i=0; i<nbChildren; i++){ // obtient le nom de la couche var layer=children[i].getAttribute("id"); if(layer!="total") this.setHidden(layer,true); // masque la couche // suppression affichage du groupe d’enfants children[i].childNodes[1].style.display="none"; this.clearChildren(children[i].childNodes[1]); } } }

50.72 4.50.13 5.73 4.50.8.48.28 6.50.50.33.8 4.50.7 <!--Waremme-->5.03 <!--Givet-->4.33.72.67 4.52.opengis.50." cs=".73 4.0" encoding="UTF-8"?> <wfs:FeatureCollection xmlns:wfs="http://www.05 <!--Erquelinnes-->4.35 <!--Roisin-->3.72 5. e <?xml version="1. en GML.68.0/WFS-basic.net/gml" decimal=".net/gml/srs/ epsg.net/gml/srs/ epsg.50.03.50.75 3.72 4.48 6.97 4.50.27.18.50.78.opengis.50.50.68 5.50.3 3.72 4.50.38.86.50.50.48.50.4.0.9.50.90.50.xsd"> <gml:boundedBy> <gml:Box srsName="http://www.7 5.50.82 4.net/wfs" xmlns:gml="http://www.43.100:8080/geoserver-1.49.opengis. MISE EN OEUVRE 101 C.37.50.76 <!--Arlon-->5.49.0.opengis.50.3 Fichier GML de description des fronti`res.50.0 </gml:coordinates> </gml:Box> </gml:boundedBy> <gml:featureMember> <gml:MultiPolygon srsName="http://www.7 <!--Aubel-->5.50.xml#4326"> <gml:polygonMember> <gml:Polygon> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates xmlns:gml= "http://www.49.60 5.73.77.50.50.xml#4326"> <gml:coordinates xmlns:gml="http://www.50.50.53.50.60.50.25.89.7.50.50.opengis.63.45 <!--Point EST-->6.83.0.6. Les autres e e fichiers GML ´tant semblables.96.net/wfs http://192.0-RC3 /schemas/wfs/1.33 3. des fronti`res wallonnes.62 3.7 4.0." ts=" "> 6.opengis. e Ce fichier repr´sente la description.25.68 3.78 4.50.3.75 5.58.48 6.33 6.68 4.50.33.50.50.168.1 4.w3. nous avons choisi de ne pas les transcrire ici.68.43 3.73.12.07.72 5.7 <!--Mouscron-->3.67.50.90.72 5.opengis.2.50.49.50.50.49.50.org/2001/XMLSchema-instance" http://www.13.15 6.47 3.4.68 4.50.97 4.49.22.0 7.53.77 5.0.51 5.28.52 3." cs=".73 3.50.03.49.73 3.53 5.ANNEXE C.72 4.62.88.22.73 3.50.33 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> .17 4.27.0 5.22.50.03.32." ts=" ">0.83.6 5.94.net/gml" xmlns:xsi="http://www.net/gml" decimal=".50.49.85.

87 3.50.01.50.03.ANNEXE C.8 3.50.net/gml" decimal=".12.78 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:Polygon> </gml:polygonMember> </gml:MultiPolygon> </gml:featureMember> </wfs:FeatureCollection> 102 . MISE EN OEUVRE </gml:Polygon> </gml:polygonMember> <gml:polygonMember> <gml:Polygon> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates xmlns:gml= "http://www." ts=" "> 3.opengis." cs=".

MISE EN OEUVRE 103 C.ANNEXE C.4 Fichier de donn´es g´n´r´ e e e e <file> <country id="belgique"> <region id="bruxelles"> <data year="2004">999899</data> <data year="2005">1006749</data> </region> <region id="flandre"> <data year="2004">6016024</data> <data year="2005">6043161</data> </region> <region id="total"> <data year="2004">10396421</data> <data year="2005">10445852</data> </region> <region id="wallonie"> <data year="2004">3380498</data> <data year="2005">3395942</data> </region> </country> </file> .

display:none.ANNEXE C. } . margin-left:20px. } span{ color:darkred. } .data{ padding: 0px. margin-left:15px. display: none.sans-serif. } .sans-serif. } p{ color:darkred.region{ margin: 0px. margin-left: 40px. margin: 0px. color: darkred. font-weight: bold.5 h1{ Feuille de style CSS font: 20pt Verdana. display: block. } . margin-left: 40px. font: 14pt Verdana. MISE EN OEUVRE 104 C. font: 14pt Verdana. font-weight: bold.sans-serif. font-weight: bold.country{ cursor: pointer. cursor: pointer. margin-left:20px. cursor: hand.

2. MISE EN OEUVRE 105 C.sourceforge. e e <?xml version="1.6 Fichier config.sourceforge.net/mapbuilder lib/schemas/config.xml Ce fichier a ´t´ modifi´ pour s’adapter ` nos besoins.xsd"> <models> <OwsContext id="mainMap"> <defaultModelUrl>Belgium/belgiumContext.net/mapbuilder" xmlns:xsi="http://www.ANNEXE C.xml</defaultModelUrl> <widgets> <Widget id="dataTree"> <htmlTagId>data</htmlTagId> <stylesheet>./Legend2. Il est retranscrit ici dans ee e a son int´gralit´.xsl</stylesheet> </Legend> </widgets> <tools> <AoiMouseHandler id="mainAoi"/> <DragPanHandler id="mainDragPan"> <enabled>false</enabled> </DragPanHandler> </tools> </OwsContext <Model id="dataRep"> <defaultModelUrl>.xsl</stylesheet> <targetModel>mainMap</targetModel> </Widget> </widgets> </Model> </models> <widgets> </widgets> <skinDir>lib/skin/default</skinDir> .1" id="simpleTemplate" xmlns="http://mapbuilder.0" encoding="utf-8" standalone="no"?> <MapbuilderConfig version="0.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mapbuilder.w3./arbre/data.xml</defaultModelUrl> <widgets> <MapPaneOL id="mainMapWidget"> <htmlTagId>mainMapPane</htmlTagId> <mapContainerId>mainMapContainer</mapContainerId> </MapPaneOL> <Legend id="contextLegend"> <htmlTagId>legend</htmlTagId> <stylesheet>./arbre/data.

ANNEXE C. MISE EN OEUVRE <widgetTextUrl>widgetText.xml</widgetTextUrl> </MapbuilderConfig> 106 .