´ 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 5. . . . . . . .1 5.3 4. . . . . . Evolutions . . . .3 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 5. . . . . . . . . . .2. . . . .6. . . .4. . Validation d’un document XML . . . . . . . . . . . . . . . . . . . XSLT . 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 . . . . . . . . . . . . . . . . . . . . . . . . . .2 4. . . . .2 5. . e D´finition . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Le DTD . . . . .3. . . . . . . . . . . . . . . . . . . .4. . . . . .1 6.3 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 4. . . . . . . . . . . 4. . . . . . . . . . . . . . .5 4. . . . . . . . . . . . . . . 6 Les outils utilis´s e 6. . . . . . . .2 4. . . . . . . . . . . Critiques du langage . . . . . . . .3 3. . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Qualit´s . . .6 Introduction . . . . Pr´sentation . . .7. . Le mapping . . . . . . . . . .6 Introduction .4 5. . . . . . . . . . . .` TABLE DES MATIERES 3. . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . . e D´fauts . . . . . . . . . .5 Outils OLAP . . . . . .4. . . . . . . . . . . . . e Conclusions . . . .1 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusions . . . . . . . . . . . . . . . . . .2 5. . . .1 Pr´sentation .1 4. . . . . . . . . . . e Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e . . . . . . . . . . . Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le document XML . . . . 5. . . . . . . . . . . . . .2 3. . . . . . . . . . . . . . . . . . . Les analyseurs XML . . .1 4. . . . . . . . . . .6. . . . . . . . . . . . . .8 4. . . . .4 3. . . . . . . . . . . . Principes de base . . . . . . Motivations . . . Le GML Viewer . . . .2 Introduction . . . . . . . . . . . . . . . Historique . . . . . . . . . . . . . . . . . . e Vision . . . . . . . . . . . Pr´sentation . . . . . . . .4 4. . . . . . . . . . . . . . . . . . . . . . . 4 Le m´ta-langage XML e 4. . . . . . . . . . . . . . . . . . . . . . . 5 Le langage GML 5. . . . . . . . . . . . . . . . . . . . . . . . . Le langage XML Schema . . . . . . . . . . .

. . . . .6 7. . . . . . . . . . . . . . . . . . e e Fichier de donn´es XML . . . . . . . . . . . . . . . . . .7 7.3 6. . . . . . . . . . . B. . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. .8 7. . . . . . . . . . . . . . . . . .2 6. . . . . . . .1 7. . . . . . . . . . .2 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 6. . . . . . . . . . . . e Bibliographie A Liste des acronymes rencontr´s e B Exemples du chapitre 4 B. . . . . . . . .1 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Spatial . . . . . . . . . . . . . . . . . . . . .3 6. . . . . . . . . . . . . . . . . .3 7. . . . e Oracle 10g .2 7. . . .5. . . . . . . . . . . . . . . . . . . Pr´sentation du travail effectu´ . . . . . . .5 7. . . . . . . e e D´finition des couches en GML . . . . . . . . . . .4. D´veloppements futurs . . . . Limites . . . . .2 XML Schema .3. . . . . . . . . . Interaction avec le GML Viewer . . . . . . .2 Conclusions . . . . . . . . . . . . . . . . . . . . .` TABLE DES MATIERES 6. . . . . . . . . . . . . . . . . . . . e Transformation du fichier source en HTML . . . . . . . . . . . . . .1 Les DTD’s . . . . . . . . . . . . Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . e Pr´paration du GML Viewer . e Export en XML dans Oracle . . . . . . . . . . . . . Choix en faveur de GML Viewer . . . . . . . . Conclusions . . . . . . . .4 6.3. . . . . . . . . . . . . . . . . . . . . . . . e e e Cr´ation d’un mod`le propre . Pr´sentation d’Oracle . .3 6. . . . .4. . . . 7. . . . . . . .3. . . . . . . . .1 8. . . . . . . . . . . . . . . . . . . . . .2. . . . . 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 . . .1 6. . . .1 7. . . . .2 7. . . . . . . . . . . . . . . . . . . . .4 Introduction . . . . . . . . 7 Mise en oeuvre 7.9 Extraction de donn´es en XML . . . . . . . . . . . . . e G´n´ration du fichier de donn´es XML . . . 8 Conclusions et d´veloppements futurs e 8. . . .4 Conception d’ensemble . . . . . Fichiers principaux . . . . . . . . . .2.

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

bien souvent compl´mentaire aux bases de donn´es e e e transactionnelles classiques. Oracle ne dispose pas ` ce jour de solution SOLAP proprement a dite. 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. Ces entrepˆts sont tr`s couramment utilis´s dans o e e les syst`mes spatiaux d’aide ` la d´cision. non-destin´e ` l’affichage de donn´es e a e proprement dites sur la carte (via des graphiques. plus pr´cis´ment. un r´capitulatif des acronymes cit´ dans ce m´moire est propos´ e e e e en premi`re annexe. g´n´ralement appel´ solution “SOLAP e e e Etrangement. e e a e Dans le cadre de ce travail. des syse e e e t`mes d’aide ` la d´cision. Ce type de solutions est e e e 1 ”. e e Le chapitre deux sera consacr´ ` une br`ve pr´sentation de l’informatique d´ea e e e cisionnelle. e Ensuite. 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. Il s’agira d’une solution “simple”. bˆtons ou camemberts par a exemple) . Cette r´alisation fait appel ` de nombreux concepts et techniques. qui sont une technique e o e de stockage de donn´es. 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. les SDSS ou syst`mes d’aide ` la e e e a d´cision spatiaux. e a e 1 Afin d’aider le lecteur. 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. Ces syst`mes revˆtent aujourd’hui une importance e a e e e particuli`re dans le monde informatique. e 1 . et plus particuli`rement ` ce que l’on appelle les “syst`mes d’aide e a e a ` la d´cision”.Chapitre 1 Introduction Ce m´moire traite de l’informatique d´cisionnelle et. ces solutions faisant g´n´ralement appel ` des logiciels propri´taires. Cette solution devra comprendre une visualisae tion des donn´es rehauss´e d’une carte g´ographique. ce qui rend ce travail tout ` fait ate a trayant. nous pr´senterons les entrepˆts de donn´es. e e a que nous d´taillerons dans ce m´moire. 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.

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

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

Il s’agit l` d’un secteur en constante ´volution. c’est en interroıtre e geant de gros volumes de donn´es que nous pouvons d´gager des faits. Or. afin d’arriver ` des mod`les de simulation puissants.ˆ ´ CHAPITRE 2. e e e Mais. Efra¨ Turban. professeur de syst`mes d’informations ` l’universit´ ım e a e d’´tat de Californie. e e 2 http://dssresources. LES ENTREPOTS DE DONNEES 4 pourraient pas apparaˆ sans l’aide de ces syst`mes. e e a e Dans [1]. par ailleurs grande utilisatrice de ce genre de syst`mes. 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 e e e ou provenant d’une simulation. Le concept est devenu un champ e de recherche ` part enti`re dans les ann´es septante. si son domaine est e e e e l’informatique par exemple. d´crit les DSS comme : e e “un syst`me d’information informatis´ interactif. flexible. partant du principe a e qu’il s’agit l` de ph´nom`nes cycliques dans le temps. et a connu un vif gain a e e d’int´rˆt dans le courant des ann´es quatre-vingt2 . dans le secteur de la recherche climatologique. 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. des comparaisons et suppositions aidant aux d´cisions. Il utilise des donn´es fournies par l’utilie sateur pour assister la prise de d´cision.” e Les recherches portant sur les DSS remontent aux ann´es soixante. c’est grˆce ` ces analyses. ces mˆmes entreprises peuvent tout ` fait cibler leur e a marketing sur base de l’analyse des diff´rentes ´volutions du pass´. financi`res. Par contre. que nous pouvons ´mettre des hypoth`ses a a e e sur le futur. et ce ` court terme ou ` long terme selon le secteur d’activit´. 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. En effet. e DSS bas´ sur la communication : plusieurs personnes travaillant sur une e mˆme tˆche aident ` la prise de d´cision. l’´tude des donn´es climatologiques pass´es peut e e e e conduire ` des hypoth`ses sur le relativement long-terme.html . et a e il serait bien trop dangereux de se baser sur le pass´ pour faire des projections e sur dix ans. e On peut distinguer plusieurs types de DSS. et adape e table. via la collection de donn´es en grosse e e e quantit´. e a a e DSS bas´ sur les donn´es permet.com/history/dsshistory. 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. tels que d´crits dans [2] : e DSS bas´s sur un mod`le : manipule des donn´es statistiques. Nous reviendrons ult´rieurement sur ce qu’est OLAP. 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. Les DSS e trouvent leurs origines dans les recherches sur les d´cisions organisationnelles e et sur les syst`mes informatiques interactifs.

Des mod`les potentiels permettant de pr´voir les cons´quences des d´cie e e e sions ` prendre. au gr`s des mois qui passent. e e eae Dans ce m´moire. Une entreprise peut collecter. Pendant leurs vacances estivales. e 2.1 L’informatique d´cisionnelle spatiale e La recherche portant sur les SDSS est d´velopp´e en parall`le aux DSS. e e e et ´ventuellement isolera le Qu´bec des provinces anglophones. proc´dures d´j` ´tablies et connues. a 3. Apr`s quelques mois de e e pr´sence sur le march´ canadien. . 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 Un cas concret. nous traiterons des DSS bas´s sur les donn´es. e Le domaine de recherche de ce m´moire se prˆte particuli`rement bien ` cet e e e a aspect du commerce. ils sont g´n´ralement e e plus friands de culture que les anglophones. Et plus pr´e e e e cis´ment des SDSS (spatial Decision Support Systems). r`gles.ˆ ´ CHAPITRE 2. un marketing cibl´. Les diff´rentes e e e habitudes de consommation en mati`re de tourisme seront alors ´videntes. ee e e Elle s’implante au Canada voisin. qu’on appelle GIS (Geographical Information System). Imaginons e a e une soci´t´ bas´e aux Etats-unis et ´voluant dans le domaine du tourisme. retrouve et manipule des informations e e non structur´es sur support ´lectronique et permet une utilisation efficace e e de celles-ci. en e a e quelle quantit´. mais ne mesure pas les grandes disparit´s e entre francophones et anglophones. e . Un syst`me de gestion de la base de donn´es qui g`re les donn´es g´oe e e e e graphiques. Il s’agit de ce qu’on appelle le marketing cibl´ (target marketing). Elle e e e touche plus pr´cis´ment ` la dimension spatiale des donn´es r´colt´es. LES ENTREPOTS DE DONNEES 5 DSS bas´ sur les documents g`re. 2. . au Qu´bec. 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 . DSS bas´ sur la connaissance favorise la r´solution de probl`mes ` partir e e e a des faits. 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. dans quelle r´gion. 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. La e e soci´t´ pourra alors d´velopper. notre entreprise peut consulter ses donn´es. e e Int´ressons-nous maintenant ` la dimension spatiale de ces donn´es. nous y reviendrons plus tard. Ils ont par exemple plus tendance ` a prendre des “pass mus´es” dans les villes qu’ils visitent.2. 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. toutes sortes de e donn´es relatives ` ses clients : quel produit est vendu.

ce qui e e est absolument primordial au vu des milliers de transactions effectu´es chaque e jour sur ces donn´es. e Cependant. relativement r´cent. 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. on peut citer Oracle ou Microsoft qui. la liste des fournisseurs e sous contrat. le mod`le multi-dimensionnel est apparu avec e e e l’id´e de profiter de ces informations. qui a ´t´ introduit par E. 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.1 Les entrepˆts de donn´es o e Historique Le mod`le de donn´es relationnel. 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. celle du temps. a e 2. . LES ENTREPOTS DE DONNEES 6 Nous ajouterons que les DSS sont un domaine d’´tude particuli`rement pase e sionnant. distribue le programme Access de cr´ation et d’administration e de bases de donn´es ou encore son SQL server. Codd en 1970 e e ee et qui lui a valu de remporter le Turing Award dix ans apr`s.F. et les lacunes ` combler encore bien pr´sentes. pour des solutions plus profese sionnelles. des a e e e ventes. On soup¸onne ais´ment les analyses que l’on pourrait tirer de ces c e donn´es.3 2. 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. 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.3. ne pourraient plus aujourd’hui se passer de bases de donn´es multi-dimensionnelles. a servi de fone dation ` l’actuelle industrie des bases de donn´es. l’´tat des ventes. et se prˆtent donc bien ` un m´moire. la liste des magasins. commerciaux ou non. Les requˆtes soumises aux bases de donn´es sont e e g´n´ralement du type : “lister les clients habitants Ixelles” par exemple. L’accumulation. il manquait ` ces bases une dimension essentielle. via sa suite ee Microsoft Office. Les grandes surfaces e . La liste de clients courants. . . 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. l’interrogation et le classement des donn´es. . e a e Au cours de la d´cennie pass´e. Parmi e e les grosses soci´t´s du secteur. 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.ˆ ´ CHAPITRE 2. tant les e e a e technologies sont novatrices. Ceci permet d’´viter la redondance e e des informations dans les tables. a En effet. les syst`mes relationnels classiques n’´taient jamais qu’un reflet de e e l’´tat actuel de l’entreprise. pesant plusieurs milliards de a e dollars [3]. . e Un grand nombre de secteurs. et leurs implications en terme d’aide ` la d´cision. .

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

consid´r´ comme ´tant le p`re fondateur des entrepˆts de donn´es et ee e e o e 4 . Une fois e ee e enregistr´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.inmoncif. 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.3 D´finition e Bill Inmon. Ceci afin e e e e e e d’´viter aux donn´es concern´es par plusieurs sujets d’ˆtre dupliqu´es. 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.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 & %$#" . 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. 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. elles sont archiv´es d’une mani`re statique. Elles sont donc par essence h´t´rog`nes. historis´es et organis´es pour la prise e e e e de d´cision. int´gr´es. 2. en lecture-seule et e e e sont gard´es organis´es pour d’´ventuelles consultations ult´rieures.1 – Repr´sentation cubique des donn´es e e 2. e a o e – Non-volatiles : les donn´es ne sont jamais r´´crites ou effac´es. LES ENTREPOTS DE DONNEES     ¢¡ ¥¨ ¥¨© ¥¨§  ¡ ¡ ¡  ¥ ¢£ ¤ ¥ ¢£ ¥ ¢£ ¥ ¢£ ¤ ¤ ¤ ¦¡ ¡¢£ ¦¡ ¦¡ ¦¡ ¡¢£ ¡¢£ ¡¢£ GCP EGH 88 EGH 8U EFI ECP @U 8 Fig.ˆ ´ CHAPITRE 2.” e Dans [4]. Il existe cependant une autre approche ` la conception intrins`que de ces e a e 4 http://www. 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.3. non volatiles. 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. premi`re entreprise ´voluant cr´ateur de la “Corporate Information Factory” e e e dans ce domaine.

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

une m´thode est ee a e e propos´e dans [7]. En calculer e e e e e trop serait p´nalisant en terme d’espace disque et de temps de calcul n´cessaire. 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. r´sultants de requˆtes particuli`rement e e e e demand´es. ces op´rations e o e e s’appellent roll-up et drill-down et sont d´crites dans la section suivante. 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. e e e e e a e p´riodiquement. 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]. ne pas calculer les agr´gats serait e coˆ teux en temps de r´ponse.ˆ ´ CHAPITRE 2. comme toujours. e e ee e Mais cette solution n’est pas sans poser des probl`mes d’espace. On e calcule les agr´gats dont on a de bonnes raisons de penser qu’ils seront souvent e exploit´s. Les autres agr´gats sont calcul´s ` la vol´e et. e e Il convient donc de rester prudent ! En effet. les agr´gats calcul´s ` la vol´e ne sont pas concern´s par e e a e e ces modifications. Elle peut alors voir les r´sultats province par province et identifier e la province dont le chiffre chute drastiquement. e 2. un compromis entre les deux solutions extrˆmes. Ils sont ´galement compos´s d’agr´gats. 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. et c’est encore plus vrai pour des e e e e donn´es spatiales. Des donn´es. e En effet. Ensuite viennent e e e les donn´es proprement dites. il faut recalculer les agr´e gats. 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. de e e plusieurs donn´es d´taill´es [5]. et donc en espace e e disque.3.5 Agr´gation des donn´es e e Une agr´gation est obtenue en effectuant une op´ration. e e e e Le temps de r´ponse sur les requˆtes de ce type s’en voit fortement acc´l´r´. LES ENTREPOTS DE DONNEES 10 informations de gestion permettant une vision multi-dimensionnelle logique des donn´es. 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. Par exemple. e Il est int´ressant enfin de remarquer que lors d’une modification d’un cube e (hyper-cube). Afin d’acc´l´rer la mise ` jour des agr´gats. par exemple l’ajout d’une dimension. 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. La solution est e e e donc. 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. Nous sommes donc descendus dans les niveaux de granularit´ et avons pu e identifier la source du probl`me. Evidemment. et on observe les requˆtes fr´quentes (Frequently Asked Queries). 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. ces agr´gats doivent ´galement ˆtre stock´s dans le syst`me. En terme d’entrepˆts de donn´es. souvent la somme. e Elle consiste ` ´tablir des seuils de tol´rance au-del` desquels les donn´es ne a e e a e . e Afin d’acc´l´rer le traitement sur des donn´es agr´g´es.

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

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

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

Nous avons vu ` quel point cette e e e a discipline ´tait devenue indispensable sur bien des plans. et avons e e e ´voqu´ l’informatique d´cisionnelle spatiale.ˆ ´ CHAPITRE 2. Dans la suite. et qu’elle augurait ` e a l’avenir des recherches passionnantes. nous avons pr´sent´ l’informatique d´cisionnelle. 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. e . e e e o e nous pr´ciserons les outils pouvant tirer efficacement profit de ces nouvelles e structures de donn´es.4 Conclusions Dans ce chapitre. LES ENTREPOTS DE DONNEES 14 2. 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.

2. e Un GIS est donc constitu´ de plusieurs composantes essentielles [9] : e 15 .1 Introduction Dans ce chapitre. ” e e e Il est important de ne pas confondre GIS et SIS (Spatial Information Systems) . 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. la e e sauvegarde. e Auparavant. et tir´e de e e e [9]. la mod´lisation.2 3. l’analyse e e et la pr´sentation de donn´es g´ospatiales. 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. les SIS font r´f´rence aux donn´es spatiales au sens large. qui peuvent tout aussi ee e bien concerner les configurations mol´culaires par exemple. 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. 3. le partage. la manipulation. nous pr´senterons les syst`mes SOLAP. ou Geographical Information System. est un syst`me e informatique sp´cifique. la r´cup´ration. “Un GIS. qui permettent d’interroger e e e efficacement des donn´es selon une vue multi-dimensionnelle de celles-ci.Chapitre 3 Syst`mes SOLAP e 3. qui permet la capture.1 GIS D´finition e La d´finition suivante est largement admise dans la communaut´. e e Nous pr´senterons ´galement les syst`mes OLAP.

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

ici Manhattan. on utilise des GIS en climatologie.gis. NY (figure e e 3. 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. Voici comment. afin d’aider ` e a d´terminer d’o` proviennent les boulversements climatiques et leurs possibles e u cons´quences futures. car il s’agit e e de recherches tr`s en vogue. 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.1)1 . 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.` CHAPITRE 3. e 1 source : http://www. meilleure est la couverture de ce secteur. arrˆtons ici une liste que nous aurions bien du mal ` ´noncer e ae de mani`re exhaustive. Dans le secteur de la recherche m´dicale. Mieux encore.com . urbanisme. Les cercles repr´sentent les implantations.1 – Couverture des succursales de la Bank of America dans la ville de New York. mais ` la rentabilit´ encore pr´caire. ` titre d’exemple. Mais laissons de cˆt´ le domaine strictement mercantile. utilise des syst`mes GIS dans les a e e e v´rifications de viabilit´ des choix de producteurs. 3. Plus le diam`tre du cercle est e e grand. en plein e e e essor. Le secteur du commerce ´quitable. Nous pourrions encore citer les apports des GIS en g´nie e e civil. 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. la Bank of America e e a d´termine sa couverture dans les villes am´ricaines. 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. SYSTEMES SOLAP 17 Fig.

e Voici un sch´ma (figure 3. e 3. Conception en objet La conception en objet consid`re l’espace comme ´tant e e peupl´ d’entit´s discr`tes et identifiables.2.3 Architecture Alors que les logiciels GIS sont tr`s sp´cialis´s. e e 3. ` l’aide d’un a stylet. dessiner et reproduire des formes. chacune ayant une r´f´rence spatiale. 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. SYSTEMES SOLAP 18 Fig.2 – Architecture d’un syst`me GIS.2) reprenant les diff´rentes interactions possibles avec e e un syst`me GIS.4 Mod´lisation des donn´es e e Lorsque l’on veut repr´senter des donn´es g´ographiques. e e e Autre outil peu commun mais tr`s utilis´ dans ce domaine.` CHAPITRE 3. le digitaliseur (die e gitizer ). tir´ de [9]. Cet outil est particuli`rement utile e quand il s’agit de num´riser des cartes. Il s’agit d’une grande plaque tactile sur laquelle on peut. et la conception en champ (field-based model).2. 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 . 3. le hardware n´cessaire est lui ese e e e sentiellement le mˆme que dans les syst`mes d’informations traditionnels. deux conceptions s’afe e e frontent : la conception en objet (object-based model).

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

e e e mais ces derniers doivent garantir une conception multi-dimensionnelle des donn´es. Les produits actuellement sur le march´ tentent e e de parvenir ` ce r´sultat grˆce ` des hardwares sp´cifiques et des pr´-calculs. e – Information : repr´sente toutes les informations disponibles qui doivent ˆtre e e accessibles pour les analyses. Pr´cisons cette d´finition. – Analysis — Analyse : le syst`me doit offrir des outils analytiques ` l’utilisae a teur. En efe e e fet. 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. et ces outils doivent pouvoir s’adapter aux besoins du domaine d’activit´ e consid´r´. facilement param´trisables ee e e et intuitifs. . Nous avons ´nonc´ plus haut que parmi ces syst`mes. De plus. On peut mesurer l’efficacit´ d’un syst`me de e e par la quantit´ d’informations qu’il peut g´rer. e Il est n´cessaire que ces m´canismes s´curitaires soient param´tisables. e multi-dimensionnelle des donn´es et supporter de multiples niveaux de hi´e e rarchisation.` CHAPITRE 3. e e e l’espace disque dont il a besoin. 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. . ils doivent ˆtre ergonomiques. afin e e e e de garantir une s´curit´ adaptable aux besoins de chacun. sans avoir recours a des programmes suppl´mentaires. e e e En effet. SYSTEMES SOLAP 20 OLAP dans [10]. . 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. L’OLAP Report ne pr´cise pas quels outils doivent ˆtre utilis´s.htm . ` 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 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. Le syst`me doit fournir une vue conceptuelle. Edgar Codd travaillait ` l’´poque pour la soci´t´ Arbor Software (devenue a e ee Hyperion). Il y d´finissait 12 r`gles pour qu’un produit soit estampill´ e e e OLAP. a e a a e e Notons que sur de gros volumes de donn´es. e e – Multidimensionality — Aspect multi-dimensionnel : l’´l´ment cl´ des soluee e tions OLAP. 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. avec quelle quantit´ de RAM. En 1994 se cr´a le “OLAP Report” qui e ee e regroupait des chercheurs totalement ind´pendants de toute entreprise commere ciale.com/fasmi. Mais ces r`gles furent jug´es trop nombreuses et peu cr´dibles. les r´sultats ne sont pas encore e e satisfaisants.olapreport. Ces syst`mes doivent enfin proposer une facilit´ et une flexibilit´ e e e de calcul. 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 e 8 http://www. 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 . Ceci est un aspect fondamental et crucial. nombre d’entre eux e e e sont confront´s ` de tr`s larges volumes de donn´es.

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

La seule limitation provient de la taille maximale de la base e e de donn´es sous-tendante. les syst`mes nativement multi-dimensionnels sont a e e plus rapides. 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. qui peut ˆtre e utilis´ pour interroger ces donn´es. Cependant. Les syst`mes e e e ROLAP en tant que tels n’imposent pas de limitation quant aux volumes de donn´es autoris´s. Et notamment des e e e performances r´duites par rapport au MOLAP. 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 infore e a maticiens capables d’utiliser ces syst`mes sont nombreux. Il n’est donc pas n´cessaire de former des sp´cialistes aux e e syst`mes propri´taires.5 et dans Oracle depuis la ee version 8i9 . e Enfin. elle a aussi des d´fauts. e e Un autre avantage ind´niable est la taille de ces bases de donn´es. En effet. e e Ces syst`mes ont tent´ de garder les avantages des deux techniques dont ils e e sont issus. SYSTEMES SOLAP 22 le plus flagrant est le langage SQL (Structured Query Language). e comme son nom l’indique. 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. notamment les fonctions ROLLUP et CUBE d´crites dans le chapitre pr´c´dent. et les syst`mes HOLAP sont donc g´n´ralement e e e propri´taires. 9 http://databases. Mais cette discussion est sue jette ` pol´mique. Ce qui am`ne plusieurs inconv´nients dont nous avons parl´ ` e e e e a propos des outils MOLAP.com/od/sql/l/aacuberollup. mais nous avons vu que cela d´pendait de la quantit´ de donn´es.htm . Ces fonctions ont e e e ´t´ introduites dans SQL server depuis la version 6. Le probl`me de cette famille est que peu d’outils sur le march´ supportent ` e e a la fois les deux technologies. ce langage ´tant un e e standard de facto. 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. les syst`mes ROLAP sont frein´s dans leurs possibilit´s par la technoe e e logie employ´e. e e a e a Si cette cat´gorie a des qualit´s. e e e r´duisant l’acc`s ` certaines donn´es ` un groupe d’utilisateurs particulier. Les syst`mes relationnels sont beaucoup plus perfore e mants pour de gros volumes que les syst`mes nativement multi-dimensionnels.about. Concr`tement. e e de nouvelles fonctions sont apparues dans le langage SQL. 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.` CHAPITRE 3. Ceci peut se faire selon plusieurs crit`res choisis par e e l’utilisateur final. e Ensuite. un hybride entre les deux syst`mes cit´s plus haut. HOLAP La cat´gorie d’outils HOLAP (Hybrid On-Line Analytical Processing) est.

A notre connaise e e sance.com/market.8%14 .mspx 11 http://www.com/technology/products/bi/olap/index. est introe duite.4 3. suivi par Hyperion Solutions11 avec 18%. mais il est sauvegard´ sous forme e e e textuelle dans les tables. Oracle ne fournit toujours pas de solution SOLAP telle quelle. Ceci s’explique par le fait qu’Oracle propose des solutions OLAP depuis sa version 9i. que nous pr´sentons dans la section suivante e e du pr´sent chapitre.sapdb. les outils SOLAP.8 % et Oracle13 cr´dit´ quant ` lui de e e a 2. e 3. C’est le cas e e e des GIS et. Afin de tirer profit efficacement de cette manne extraordinaire d’informations. Par exemple. sans un volet spatial permettant de visualiser et de manipuler la composante g´om´e e trique des donn´es spatiales.” [12] La r´flexion sur ce besoin de nouveaux outils est tr`s r´cente. e e Ajoutons ´videmment le SOLAP.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]. Ce m´moire proposera des pistes pour combler cette lacune.htm — chiffres 2006 . on peut aussi citer SAP12 avec 5.microsoft.com/sql/default.4. “Il a ´t´ d´montr´ que OLAP poss`de un certain potentiel pour ee e e e supporter l’analyse spatio-temporelle. e e Une nouvelle cat´gorie d’outils OLAP.olapreport.html 14 source : http://www. e 3. SYSTEMES SOLAP 23 Il existe d’autres cat´gories telles que WOLAP (Web-based OLAP ).org 13 http://www. avec eux. sortie en 2001 et a mis du temps avant de proposer des solutions efficaces. il a fallu cr´er de nouveaux outils d´di´s. Parmi les grandes soci´t´s du e ee secteur.hyperion.com/ 12 http://www.` CHAPITRE 3.oracle. Cependant. 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. La soci´t´ Microsoft est actuellement leader ee march´.3. l’analyse peut demeurer incompl`te. 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). 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).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.” 10 http://www.

la e e e r´f´rence en mati`re de SOLAP. r´gions. et doit pere e . ee e a 3. Il s’agit l` d’un principe de base des syst`mes e a e SOLAP. a e Dans beaucoup de cas. adresses. Il est effectivement impossible de retirer des faits. SYSTEMES SOLAP 24 Depuis. Cela permet de ne plus se concentrer que sur les donn´es a e non-spatiales.4. des e e analyses. 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. et par ce biais aider ` la prise de d´cision. 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. Yvan B´dard. SOLAP doit r´pondre ` ces besoins. 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. 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. il s’av`re n´cessaire pour une bonne compr´hension des e e e faits. de pouvoir visualiser les donn´es sur des cartes. . .4. e a a e La conception des syst`mes SOLAP doit donc correspondre ` un certain nombre e a de crit`res.” 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.3 Vision Les outils OLAP ne permettaient pas de visualiser sur des cartes les r´sultats e des requˆtes. La visualisation des donn´es doit ˆtre claire. mˆme si elle n’est pas reprise sous forme e e de coordonn´es dans une base de donn´es spatiale. flexible. ou mˆme de dizaines de graphiques. des solutions logicielles sont ape e parues au Canada. ´nonc´s ici. ce qui rendait les analyses sur les dimensions spatiales quasi illie sibles et peu r´v´latrices.` CHAPITRE 3. et malgr´ le laps de temps tr`s court. En effet. e e e Visualisation des donn´es. la e e dimension spatiale est bien pr´sente. aux Etats-unis. ` partir de colonnes de chiffres. au Portugal et dans d’autres pays et de nombreux chapitres de livres ont ´t´ consacr´s ` ce sujet [13].2 D´finition e Le Dr. Elle peut l’ˆtre sous forme e e e textuelle repr´sentant des pays.” “Une plateforme visuelle con¸ue sp´cialement pour supporter des c e analyses spatio-temporelles rapides et faciles. Les cartes ont ce pouvoir d’abstraire toutes les donn´es ree latives ` l’espace. le support sur lequel elles sont affich´es indiquant clairement d’o` e u elles proviennent. en France. e e 3. .

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

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

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

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

De e e plus. – 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. mais pour peu que les programmes utilisent les mˆmes formalismes XML. Les exemples ` ce sujet ne manquent pas ! e a Un autre aspect int´ressant d’XML est son universalit´. comme l’HTML. 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. flexibles en e a e e mati`re de description de documents. e e Du point de vue de la machine. a e Les documents XML ´tant par d´finition extensibles. Partons d’un fichier XML relatant un a agenda. de tels fichiers texte laissent libre choix aux programmes quant ` leur utilisation.org/TR/2006/REC-xml-20060816/#charsets . la structure mˆme du fichier permet de comprendre la mani`re dont les e e donn´es sont imbriqu´es. Ce mˆme fichier pourra ˆtre partag´ entre deux programmes diff´rents e e e e de gestion de calendrier. e 4.w3. et ce depuis 2003. e – les documents XML devront ˆtre faciles ` cr´er. L’affichage des informations ne sera pas identique. nous avons e l` un bon moyen d’´change d’informations.0 et ils se trouvent ˆtre cod´s en XML. 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. 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”. 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. e – le design d’XML devra ˆtre formel et concis. de e mani`re native.´ CHAPITRE 4. Il permet de stocker d’importants volumes e de donn´es sous forme textuelle. A ceci pr`s que les balises ne sont pas pr´-d´finies. Ceci pr´sente l’avantage d’ˆtre lisible par les e e e hommes comme par les machines. e a e – la concision dans les balises est d’une importance minime. g´n´riques. 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 .5 Le document XML Comme nous l’avons expliqu´ dans la section pr´c´dente. Du point de vue de l’utilisateur. le XML est un langage e e e de balises. un fichier XML est parfaitement lisible car les noms des balises sont souvent ´loquents et permettent leur compr´hension. 4. e e e Il convient au programmeur de d´finir ses balises.4 Motivations XML est n´ du manque de solutions faciles ` utiliser.

e – La troisi`me ligne d´bute le document XML proprement dit. qui constitue le squelette du docue ee ment. Il s’agit en l’occurrence de l’identifiant du contact. La premi`re balise. permettant d’identifier la version e utilis´e du langage. – Entre les balises figure ce que l’on appelle le texte. qui sont ´galement des ´l´ments. Intuitivement. le DOM (Docue e ment Object Model). d´crivant un classique annuaire : e < ?xml version="1.0" encoding="ISO-8859-1" ?> < !-. 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. Le DOM est une repr´sentation informatique d’un document XML.´ CHAPITRE 4. </contact> </annuaire> Analysons ce document XML basique. ce qui est e d’ailleurs l’objet d’une recommandation tr`s pr´cise du W3C. Il s’agit d’un e e ensemble de balises appel´es ´l´ments. d’un ´ventuel atee e e tribut. – La balise <contact id="a1"> diff`re l´g`rement des autres en ce qu’elle e e e contient un attribut. Un ´l´ment d’un fichier XML est donc constitu´ d’un nom. et d’une liste de fils. LE META-LANGAGE XML 30 peuvent contenir. Il est constitu´ de plusieurs ´l´ments e ee distincts : – La premi`re ligne constitue le prologue. e ee on peut donc mod´liser cette structure sous la forme d’un arbre . – La deuxi`me ligne constitue un commentaire. <annuaire> est appel´e racine. C’est la balise qui e e contiendra toutes les autres... Il permet e une standardisation pour la lecture et la manipulation des documents par le . Voici un exemple de code XML.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> . mais nous y reviendrons.

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

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

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

] <xsd:element ref="num"/> </xsd:sequence> </xsd:complexType> </xsd:element> [. nous sommes capables de pr´ciser que e e la balise <nom> comprendra obligatoirement une chaˆ de caract`res. soit pr´e ee e d´fini. a e e Il est de bon usage de proc´der comme cela. c’est-`-dire les types pr´-d´finis par la norme. 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. et que ıne e la balise <num> s’attend ` contenir exclusivement des entiers. on d´finit les ´l´ments et on leur associe un type.´ CHAPITRE 4. A ce titre. Tous les ´l´ments e e ee pr´fix´s de la variable xsd sont donc d´finis dans le namespace du W3C. . Il s’agit ici de la ıne e d´finition de la balise zip. dans le cas qui nous int´resse. 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"/> [. ils e a utilisent pleinement les namespaces. car vient ensuite la possibilit´ e e de d´finir des types dits “complexes” ` partir des ´l´ments d´j` d´finis. . Ce sch´ma de validation fait appel au e namespace pr´-d´fini par la norme XML Schema du W3C. ce sch´ma de validation s’attelle e e a e e a e ` d´finir les types dits “simples”. e e . . e e e – En XML Schema. Prenons comme postulat que le carnet d’adresses e que nous tentons de d´finir en XML sera utilis´ uniquement au Canada. soit d´fini ` la vol´e. . ] <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. En l’occurrence. 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. e a e En effet.

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

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

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

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

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

parmis lesquels1 : e – procurer un framework ouvert. dont nous avons parl´ dans le chapitre e pr´c´dent) et il permet au logiciel consid´r´ d’interpr´ter le fichier GML.CHAPITRE 5. on peut citer SHAPE (d´velopp´ par ESRI) et MIF(Mapinfo Intere e change Format) [16] d´velopp´ par MapInfo Corporation.opengeospatial. 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. 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. qui vont extraire du langage GML e les seules possibilit´s qui les int´ressent. aujourd’hui d´tenue e e e par Pitney Bowes.org/standards/gml . 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”. Le sch´ma d’application permet de valider le document e GML (il n’est autre qu’un XML Schema. ee Le langage GML a ´t´ introduit par l’OGC qui est l’acronyme d’Open Geospatial ee Consortium. Le langage est bas´ selon plusieurs principes fondateurs. ind´pendant pour la d´finition des sch´mas e e e d’application g´o-spatiaux. rendant plus simple et plus attirant l’emploi du e e a e GML. les profils sont un ensemble pr´-d´fini e e e e de fonctionnalit´s du GML. le e e transport. Il regroupe plus de 250 compagnies. 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. Parmi les profils les plus connus. e e e – permettre l’existence de profils compos´s de sous-ensembles des capacit´s e e descriptives du GML. 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. Il convient ici de pr´ciser deux termes employ´s dans le paragraphe pr´c´dent. mais a nous y reviendrons plus tard. Il s’agit en fait de restrictions sur le langage. C’est dans ce contexte que fut cr´´ le langage GML. la mod´lisation et le stockage d’informations ` teneur g´ographique. on peut citer le point profile. Ces profils sont publics et d´di´s ` des usages sp´cifiques. e – supporter le stockage et le transport de sch´mas d’application et d’ensembles e de donn´es. ayant pour but de d´velopper un langage qui permet le traitement. agences gouvernementales et universit´s. Contrairement aux sch´mas d’application. 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. Ceci e e ee e constitue ` notre sens une force mais aussi une faiblesse du langage GML. 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. concernant les applications avec donn´es g´om´triques qui n’ont pas besoin de toute la e e e 1 source : http://www. LE LANGAGE GML 40 pulaires.

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>

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

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

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

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

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´´. – la facilit´ d’utilisation. e Ce programme est donc ` voir comme un noyau de fonctions pr´-d´finies. A titre d’exemple.4% des navigateurs selon le W3C4 . e Les concepts sous-tendants ` la cr´ation de MapBuilder sont. Cette licence est une version “assouplie” de la GPL. poua e e vant s’adapter aux besoins de chacun. e e – la non-utilisation de plugins suppl´mentaires. 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. Firefox.codehaus. . le programme est compatible avec Internet Explorer (version 6. tel qu’il est dispoe nible sur internet.0 ou sup´rieure). sous LGPL. LES OUTILS UTILISES 48 Le GML Viewer est distribu´ sous une licence LGPL (Lesser General Public e Licence).w3schools. e e Cette forme de licence a ´t´ choisie car certaines librairies utilis´es ´taient sous ee e e LGPL. voici une capture d’´cran du programme.0 ou sup´rieure).asp . qui exigeait que toutes les modifications effectu´es sur un programme. e A ce jour. .´ CHAPITRE 6.org/display/MAP/Home 4 http://www. et Mozilla (version 1. ce qui repr´sente e e e 92. Nous avons perdu le caract`re h´r´ditaire de la ee e ee GPL. les possibilit´s d’´volutions ´tant diverses e e e et vari´es. – le support des normes de l’OGC. 3 http://docs. La diff´rence e fondamentale tient en ce qu’il est possible. De plus.com/browsers/browsers_stats. soient ´galement distribu´es sous licence GPL. notamment3 : a e – la mise au point d’un logiciel de visualisation de cartes depuis un navigateur internet. . 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). e – la rapidit´ et l’interactivit´. d’utiliser des librairies propri´taires. e une librairie.

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

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

Nous allons ici tenter d’expliquer le fonctionnement interne du programme.html Ce fichier est l’´pine dorsale du programme . LES OUTILS UTILISES 51 6. xml et xslt. index. il en d´crit le “squelette”.3 Fichiers principaux Le programme dont nous nous sommes servis. est. mais il permet n´anmoins d’avoir une bonne vision d’ensemble des e fichiers que nous allons expliquer dans cette section. seuls quelques fichiers primordiaux e seront abord´s.2. et ` quel endroit e ee a a dans la page ils doivent s’afficher. css. 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. Nous sommes conscients e e que ce sch´ma est incomplet. le code entier faisant appel ` de nombreux autres fichiers et e a librairies. e e e Les fl`ches d´crivent les interactions entre les fichiers. e e . car il ne d´crit pas toutes les relations et tous e e les fichiers. Notons que le fichier gmlRenderer.´ CHAPITRE 6. comme nous l’avons d´crit plus haut. – pr´ciser l’endroit o` se trouve le fichier de configuration que nous d´taillerons e u e plus tard. L’architecture du GML Viewer est pr´sent´e sur le sch´ma de la figure 6. e e Ceci sous-entend un ensemble de relations entre diff´rents fichiers de type javase cript. GML Viewer.2. – d´crire quels sont les ´l´ments du programme ` afficher. ´crit en Ajax6 . html. – 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. elle est largement r´pandue dans la litt´rature et nous choisissons de l’utiliser ici. Dans un souci de concision et de clart´.xsl n’est pas le seul ` transformer le code a GML. 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). 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. ` travers les diff´rentes relations entre les fichiers prina e cipaux.

LES OUTILS UTILISES Fig. 6.2 – Fichiers principaux de GML Viewer „V ƒX Y a r cq fr e a r q f c YX 52 .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.

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

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

38 ouest.38. 39 nord.Waterbodies&Format=image/gif Voici donc une requˆte typique effectu´e vers un Web Map Service. en l’occurrence GetMap. nous e utilisons la norme de coordonn´es EPSG:4326 (European Petroleum Survey e Group)9 . 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.0&Request=GetMap&BBox=-20.demis. 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. Ici. La liste de couches e disponibles est g´n´ralement pr´cis´e sur le site internet du WMS. e e .63 &SRS=EPSG:4326&Width=600&Height=300 &Layers=Countries. – Nous pr´cisons ensuite le SRS (Spatial Reference System). e e a e – Nous devons ´galement pr´ciser la taille de l’image que nous d´sirons recevoir. e e nous recevrons une image en format GIF. – Le nom de la requˆte est ensuite ´nonc´.nl/mapserver/request. LES OUTILS UTILISES 55 http://www2. e – Vient alors la description des couches que nous d´sirons. Les coordonn´es exe e e prim´es pour le bounding box ne sont valables que dans ce contexte. e e e e – Enfin. mapBuilder. 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.1. e e e – Via le param`tre BBox. 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. 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.39. depuis le e fichier HTML principal.js Ce script est principalement responsable du bootstrapping. Elle se e e d´compose comme suit : e – Le service (WMS) est pr´cis´. Cette organisation a cess´ d’exister en 2005. 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 voulons une carte couvrant la zone -20 ouest. nous pr´cisons le bounding box que nous d´sirons. ainsi que la version employ´e.asp?Service=WMS &Version=1. qui pr´cise le syse e t`me de coordonn´es dans lequel nous nous exprimons.Coastlines. En a e e e e l’occurrence. Voici quelques exemples de code choisis : var config. format id´al pour afficher l’image e dans un navigateur internet. 63 nord. Le script est lanc´ via la fonction onDoLoad() . La version permet e e e de pr´ciser ` quelle sp´cification on fait r´f´rence. Il construit une instance de l’objet MapBuilder. Il assigne aussi les variables globales. Ici.´ CHAPITRE 6. nous pr´cisons le format dans lequel nous d´sirons recevoir l’image.

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

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

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

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

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

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

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

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

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

Beaucoup de changements architecturaux dans la conception intrins`que de la base de donn´es virent le jour. au cours des ann´es 2000. Oracle diversifia son offre et mit l’accent sur e l’innovation. des mini-ordinateurs.html 14 http://www.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. En proposant par exemple des technologies de type grille de calcul dans la version 10g de sa base de donn´es. e e e nous nous sommes procur´ la derni`re version de la base de donn´es oracle. Elle fut la premi`re ` proposer un RDBMS (Ree e a lational Database Management System) fonctionnant sur des mainframes. en r´partissant ´quie e tablement la charge sur plusieurs machines. 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. e e – nous pouvons tirer meilleur profit du hardware existant. De nombreuses applications travaillant directement sur les bases de donn´es furent d´velopp´es et rendues disponibles. 736 milliards de dollars14 . en option e 13 http://www. e e e Au cours des ann´es nonante.oracle. 380 milliards de dollars. comme les versions pr´c´dentes. sure a tout dans le domaine de la business intelligence.´ CHAPITRE 6. LES OUTILS UTILISES 65 d´velopper significativement.gartner. une v´ritable strat´gie de conquˆte e e e e e d’internet fut mise en place. leurs revenus ´taient de 14. En 2005. avec une part de march´ de 48. e . e sortie en 2003. comprenant notamment le support d’XML. et le serveur d’applie e cations permettant de lier les suites logicielles ` la base de donn´es. Oracle continua ` diversifier son offre. Oracle ´tait. le leader sur le march´ des syst`mes de bases e e e de donn´es relationnelles.com/press_releases/asset_152619_11.com/corporate/investor_relations/10k-2006. de loin. sortie en 2003. la version 11g. Pour cela. Enfin. Oracle propose. e e – les grappes de serveurs peuvent ˆtre distantes de plusieurs milliers de kiloe m`tres.15 La version 10g. la e e e version 10g. Le temps de calcul s’en voit e grandement am´lior´. 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. et d’afficher les r´sultats sur une carte g´ographique. avec une marge e e b´n´ficiaire de 4. e e 6. e augmenter consid´rablement notre force de calcul. le e e syst`me de gestion de la base de donn´es proprement dit.pdf 15 Le 11 juillet 2007.6%13 . facilitant la coop´ration entre organisations. 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. Pour exploiter les possibilit´s de cette technologie. Durant l’ane e n´e 2006.3. 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. combine.

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

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

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

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

Apr`s s’ˆtre e e assur´s que la syntaxe choisie fonctionnait. nous avons choisi d’exporter le r´sultat des requˆtes e e dans un formalisme XML. Etant donn´ que nous voulions. Chaque ligne produite par la requˆte est ins´r´e entre des e ee balises <row>. Ces fichiers ont g´n´ralement une limite de e e e taille assez large. Dressons un rapide portrait des diff´e e e rentes techniques disponibles. 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. depuis de d´part. dans le cadre de ce travail. nous avons mis au point e une syntaxe XML avec laquelle il serait confortable de travailler. afin de pouvoir le lire dans notre e logiciel. Nous e aurions pu avoir plusieurs pays contenant plusieurs r´gions. MISE EN OEUVRE 70 file. Nous voyons ici la description d’un pays contenant une r´gion. e 7. 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. 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. Ce faisant. 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. travailler avec du GML (et e e donc avec le GML Viewer). et nous les avons ensuite r´cup´r´es dans un programme e e ee permettant de les lier ` une carte g´ographique. langage que notre programme comprend et est capable d’interpr´ter.CHAPITRE 7. nous avons extrait des donn´es e d’un syst`me Oracle. a Oracle propose plusieurs solutions pour faire de l’export en XML ` partir des a requˆtes en SQL faites sur son syst`me. nous avons fait en sorte que le fichier e produit par Oracle “colle” ` nos desidarata. Cette technique nous a paru assez laborieuse et peu claire. Il fonctionne e e par la d´claration de templates dans ce que l’on appelle les pages XSQL. elle ne nous a pas paru offrir des fonctionnalit´s sp´cifiques justifiant son emploi pour cette tˆche. e Nous avons travaill´ ` l’envers .1 Export en XML dans Oracle Extraction de donn´es en XML e Nous l’avons dit. que des fonctions permettent de renommer. nous avons d’abord d´velopp´ le programme e a e e permettant la visualisation des donn´es. e .4.

. On lui associe un nom. XMLAGG() et XMLSEQUENCE(). . e . 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.CHAPITRE 7. et le r´sultat est e e produit sous forme de XML. Fonctions SQL Oracle propose des fonctions SQL qui lui sont sp´cifiques : les fonctions e SYS_XMLGEN(). e ee Nous n’avons pas utilis´ cette technique. e Diff´rentes fonctions sont propos´es. e e e a Bien que cette m´thode poss`de des avantages ´vident en termes de flexibilit´. e e a e Il peut s’agir soit d’autres balises. il fonctionne de mani`re semblable ` la e a e e ee m´thode DBMS XMLGEN. Il propose une mani`re de e e travailler de concert avec les langages SQL et XML. Depuis la version 9i de son syst`me. dit diagramme XML. Oracle propose le support des fonctions SQLX. Chaque ligne est interpr´t´e et le XML correspondant est produit. 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. telles que : e e – XMLElement() permet de d´finir une balise XML. un e ´ventuel attribut. d’ajouter des attributs. 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>. 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. soit de texte. MISE EN OEUVRE 71 Ces pages en XSQL contiennent la requˆte. mais aussi d’extraire des donn´es d’un fichier XML afin de les ins´rer e e e dans un table Oracle. et on d´crit ce qui doit se trouver ` l’int´rieur de la balise. que nous d´crivons ci-apr`s. e e Fonctions SQLX SQLX est une partie ´mergente du standard SQL. Elles permettent de g´n´rer un e e format de sortie en XML. au format SQL. . – XMLForest() produit une forˆt (suite de balises XML) ` partir des ´l´ments e a ee pass´s en argument. 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. mais nous avons utilis´ un syst`me e e e presque en tout point semblable. e a En ce qui concerne l’export en XML. – XMLConcat() permet de concat´ner tous les ´l´ments pass´s en argument. Il offre ´galement la possibilit´ de modifier ou d’effacer e e des donn´es dans la table ` partir d’un fichier XML.

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

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

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

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. dont les e points sont renseign´s par des coordonn´es. Il s’agit donc e aussi d’un fichier XML.gml.6 Transformation du fichier source en HTML Nous l’avons vu.geoco. 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. Afin de parvenir ` une repr´sentation r´aliste de nos fronti`res. Si nous avions sp´cifi´ une extension en . dans le fichier de contexte. En effet. 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. il ne nous a pas e sembl´ utile de le d´tailler ici. Cet ensemble de segments come e mence et se termine en un point. Geoco1 . correspondant au pays et ` ses trois e e ee a r´gions. e e e e Le code source apporte peu d’informations suppl´mentaires. dont nous prenons le soin de concevoir l’affichage. e e e 7. Cependant. ` savoir la Belgique e e e a et ses trois r´gions. nous avons dˆ d´crire les fronti`res de celles-ci ` l’aide de e u e e a coordonn´es. dont la e e Belgique. lors de la mise en place d’une telle solution.CHAPITRE 7. 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. la couche n’aurait pas pu e e ˆtre charg´e. e e Notons qu’en interne. e Par contre. Afin de d´finir une couverture g´ographique. Cependant. 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 pu trouver un site internet. Il s’agit d’un ensemble de segments contigus. nous n’avons pas choisi le nom des couches par hasard. 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. Cela ne e e repr´sente pas un probl`me. 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.org . nous utilisons la propri´t´ GML e e ee nomm´ LinearRing. Ensuite. quant ` elles ´crites en GML. exception faite de la description des diff´rentes couches de la e carte. nous a e e e avons retenus les coordonn´es de plus de 150 villes diff´rentes. Afin de repr´senter les zones concern´es par nos donn´es. le GML Viewer fonctionne ` partir de fichiers de donn´es/cona e figurations XML.000 villes de douze pays europ´ens. situ´es le long e e e de la fronti`re ext´rieure ou le long de la fronti`re linguistique. 1 http://www. e e e Quatre fichiers en GML ont ainsi ´t´ cr´´s. renseignant les coordonn´es GPS de plus de 100. MISE EN OEUVRE 75 XML.

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

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. Il ne ee e e e e nous a pas paru utile de le d´tailler ici. que nous avions plusieurs niveaux de granularit´2 disponibles. 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. Nous illustrons ici la mani`re dont sont trait´es e e e e e 2 voir chapitre 2.switchLayerDisplay (’<xsl:value-of select="@id"/>’. dans notre fichier de donn´es e XML produit. 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. Nous pouvons observer que tout le code HTML que nous produisons est compris au sein d’une balise <div>. Nous devons donc “entourer” (wrapper ) le code que nous souhaitons produire d’une balise.CHAPITRE 7. e La feuille de style XSLT que nous avons produite traite chaque niveau de granularit´ de la mˆme mani`re. consacr´ aux entrepˆts de donn´es e o e . e Via l’instruction <xsl:apply-templates/>. En effet. true). nous sp´cifions qu’` cet endroit. </xsl:attribute> <xsl:value-of select="@id"/> </span> <div class="region"> <xsl:apply-templates/> </div> </div> </xsl:template> Commentons ce morceau de code. 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"/>. et la balise <div> est id´ale pour cette fonction. Nous avons vu. Ces e ee e propri´t´s sont d´finies dans un fichier CSS s´par´. e a nous souhaitons ex´cuter les transformations d´crites pour les noeuds enfants e e du noeud courant. que nous avons ´crit.

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

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

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

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

1). et nous e e avons. e La pseudo-couche “total” ne correspond donc pas ` une zone a afficher ici. 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. En effet. il nous a paru plus intuitif de proc´der ainsi. nous voulons provoquer l’affichage des fils de cet ´l´ment dans l’arbre. Si nous e avions eu des donn´es par province. dans le cadre de ce travail. En effet. accessible via children[1]. chaque e e niveau de granularit´ (sauf le dernier. . Lorsque que nous cliquons pour la deuxi`me fois sur un ´l´ment de notre arbre. . nous souhaitons masquer l’affichage e e a de la couche. l’affichage des couches GML correspondantes. 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. visionn´e avec le navigateur Fie e e refox (figure 7. d’une part. MISE EN OEUVRE – afficher la couche correspondant ` la Belgique.CHAPITRE 7. il s’agit du total pour la Belgique. a ` Ensuite. d’autre part. mais que l’on d´sire replier le deuxi`me. 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. En effet. Cette solution pose ´videmment des probl`mes en cas de gros fichiers de done e n´es. constitu´ des donn´es) comporte une e e e entit´ “total”. ` chaque clic pair. l’affichage des ´l´ments dans a ee l’arbre et. 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. voulu explorer cette piste. Cette balise est toujours le deuxi`me fils du noeud courant dans le e document4 . si e e l’´l´ment que nous traitons ne poss`de que des fils qui sont des feuilles. Voici une capture d’´cran du r´sultat obtenu. si elle ne s’appelle pas “total”. Ceci est fait grˆce ` la fonction clearChildren. Dans notre exemple. Si cinq niveaux de l’arbre e sont d´pli´s. e ee ou. Nous provoquons l’affichage de la couche pass´e en param`tre. 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. e e a a Cette fonction est appel´e seulement si le bool´en parent est vrai. mais nous travaillons depuis le d´but avec des fichiers textes. alors tous les niveaux e e e e inf´rieurs le seront ´galement. Pour l’affichage proprement dit. mais aussi l’affichage de tous les fils (au sens large). ee e La fonction clearChildren est donc une fonction r´cursive qui parcourt le souse arbre ` partir d’un noeud et supprime. . . a – afficher les fils directs dans l’arbre. Nous discuterons des quelques limitations que cela engendre dans le chapitre suivant.

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

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

MISE EN OEUVRE 85 en aucun cas int´resser des compagnies ayant de gros volumes de donn´es ` e e a analyser. sa gratuit´. nous allons conclure notre travail. nous discuterons des apports indispensables si nous voulons voir se propager ce type de techniques. et sa portabilit´.CHAPITRE 7. et ´noncer les limites e de celui-ci.9 Conclusions Dans ce chapitre. de part sa simplicit´. Il convient cependant de rester lucide e a e quant aux limitations inh´rentes ` la m´thode utilis´e. De plus. 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. e a e e 7. Cependant. . ces syst`mes e e e e restent int´ressants ` bien des ´gards. Dans le chapitre suivant.

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

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

´ CHAPITRE 8. et peuvent ici trouver une solution pouvant s’adapter fid`lement ` e e a leurs besoins. 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. 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. . ` moindre coˆ t. CONCLUSIONS ET DEVELOPPEMENTS FUTURS 88 transformer certaines balises GML. 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. Nous pouvons donc arriver ` un programme de stature proa fessionnelle. Pour les raisons pr´cit´es. Nous restons convaincus que ce type de logiciels a un avenir prometteur.

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

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

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

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 .´ ANNEXE A. 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 .

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

0" encoding="ISO-8859-1"?> <xsd:schema xmlns:xsd="http://www. EXEMPLES DU CHAPITRE 4 95 B.w3. <?xml version="1.ANNEXE 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"> .2 XML Schema Code source complet du sch´ma de validation en XML Schema du mˆme exemple e e XML.

ANNEXE B. 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> .

0’?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.3 Feuille de style XSLT <?xml version=’1. EXEMPLES DU CHAPITRE 4 97 B. <xsl:value-of select="adresse/ville"/></td> <td><xsl:value-of select="tel"/></td> </tr> </xsl:template> </xsl:stylesheet> .w3.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.ANNEXE B.

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]); } } }

7 <!--Aubel-->5.77 5.7 <!--Mouscron-->3.05 <!--Erquelinnes-->4.94.25.58.50.1 4. e <?xml version="1.72 5.50.73 4.opengis.6.50.3.xml#4326"> <gml:coordinates xmlns:gml="http://www.78.75 3.89.53 5.3 3.50.0. Les autres e e fichiers GML ´tant semblables.50.67.43.53.50.72 4.97 4.53.28 6.50.net/gml" decimal=". en GML.opengis.50.50.33.50.45 <!--Point EST-->6.68.50.100:8080/geoserver-1.50.9.50.net/wfs" xmlns:gml="http://www.49.33.73.50.33 6.3 Fichier GML de description des fronti`res.18.8 4.50.50.net/gml/srs/ epsg.opengis.50.17 4.0 </gml:coordinates> </gml:Box> </gml:boundedBy> <gml:featureMember> <gml:MultiPolygon srsName="http://www.38.50.0.50.0 7.03.opengis.50.27." cs=".4.22.2.xsd"> <gml:boundedBy> <gml:Box srsName="http://www.50.13.60.50.22.72 4.49.50.51 5.33 3.50.49.49.7.73.88.68.68 4.50.0/WFS-basic.7 4.07.50.50.net/gml" decimal=".72 4.33.50.0" encoding="UTF-8"?> <wfs:FeatureCollection xmlns:wfs="http://www.50.47 3. e Ce fichier repr´sente la description.83.68 5.62 3. MISE EN OEUVRE 101 C.net/wfs http://192.32.50.28.12.68 4.6 5.48 6.w3.25. des fronti`res wallonnes." cs=".50.73 3.50.72 5.50.13 5.50.68 3." ts=" "> 6.opengis.52 3.73 3.90.63.27.22.49.75 5.50.50.50.50.35 <!--Roisin-->3.0-RC3 /schemas/wfs/1.43 3.77.96.78 4.net/gml" xmlns:xsi="http://www.4.85. nous avons choisi de ne pas les transcrire ici." ts=" ">0.49.0 5.0.50.73 4.82 4.76 <!--Arlon-->5.0.7 <!--Waremme-->5.97 4.net/gml/srs/ epsg.50.48 6.15 6.52.49.48.03.37.50.48.org/2001/XMLSchema-instance" http://www.168.33 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> .62.60 5.73 3.03 <!--Givet-->4.86.xml#4326"> <gml:polygonMember> <gml:Polygon> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates xmlns:gml= "http://www.opengis.50.90.7 5.72.67 4.83.50.72 4.8.49.50.50.0.ANNEXE C.03.50.50.72 5.opengis.

50.8 3.50.50.12.01.net/gml" decimal=". MISE EN OEUVRE </gml:Polygon> </gml:polygonMember> <gml:polygonMember> <gml:Polygon> <gml:outerBoundaryIs> <gml:LinearRing> <gml:coordinates xmlns:gml= "http://www." ts=" "> 3." cs=".78 </gml:coordinates> </gml:LinearRing> </gml:outerBoundaryIs> </gml:Polygon> </gml:polygonMember> </gml:MultiPolygon> </gml:featureMember> </wfs:FeatureCollection> 102 .opengis.03.87 3.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> .ANNEXE C. MISE EN OEUVRE 103 C.

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

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

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