Méthodologie de conception d un système expert pour la généralisation cartographique

Dimension: px
Commencer à balayer dès la page:

Download "Méthodologie de conception d un système expert pour la généralisation cartographique"

Transcription

1 Méthodologie de conception d un système expert pour la généralisation cartographique Xiao Chun Zhao Épouse Boury To cite this version: Xiao Chun Zhao Épouse Boury. Méthodologie de conception d un système expert pour la généralisation cartographique. Interface homme-machine [cs.hc]. Ecole Nationale des Ponts et Chaussées, Français. <tel > HAL Id: tel Submitted on 25 Nov 2010 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

2 Thèse de Doctorat de l'ecole Nationale des Ponts et Chaussées Spécialité: Informatique présentée par ZHAO Xiao Chun épouse BOURY pour obtenir le titre de: sujet: Docteur de l'ecole Nationale des Ponts et Chaussées Méthodologie de Conception d'un Système Expert pour la Généralisation Cartographique soutenue le 14 novembre 1990 devant le jury composé de: Monsieur Monsieur Monsieur Monsieur Monsieur Georges Jean-Paul Bruno Hervé René STAMON HATON PASQUIER LE MEN LALEMENT Président Rapporteur Rapporteur Examinateur Examinateur DES PONTS ET CHAUSSEES DOC24492

3

4 REMERCIEMENTS Cette thèse est le fruit d'une coopération entre l'ecole Nationale des Ponts et Chaussées et l'institut Géographique National. Je voudrais faire part de ma reconnaissance à Messieurs N. Bouleau au CERMA-ENPC, H. Le Men au COGIT-IGN, et R. Lalement au CERMICS- ENPC, pour l'aide précieuse qu'il m'ont bien accordée tout au long de cette thèse en en ont assurant la direction, et en m'accueillant chaleureusement dans leur laboratoire. J'exprime toute ma gratitude à Monsieur G. Stamon de m'avoir fait l'honneur de présider le jury, à Messieurs J.P. Haton et B. Pasquier d'avoir bien voulu accepter d'être rapporteurs de ce travail, malgré leur surcharge de travail. Pour les conseils, les marques d'intérêt qu'ils ont portés à mon travail en de nombreuses occasions et les corrections de fautes de français à la lecture de cette thèse, je remercie Messieurs G. Weger, J.G. Affholder, R. Lalement, G. Caplain. Mes remerciements vont aussi à tous mes collègues du COGIT, du CERMA et du GISE, notamment Mesdames V. Serre, M. Razurel, E. Frugier, Messieurs 0. Jamet, La Rivière, pour une ambiance amicale du travail, et à tous ceux qui m'ont apporté leur soutien. Je suis très reconnaissante envers ma famille en Chine, mon époux Pierre et toute ma belle-famille pour leur attention spéciale et leur soutien moral infiniment important au cours de ce travail.

5

6 >, 3L < : table des matières 1 Introduction Aperçu de la généralisation cartographique Difficultés essentielles Eléments d'intelligence artificielle Perspectives 16 1 Cartographie 19 2 La généralisation cartographique Analyse du problème Cas des voies de communication Carrefour Voies Les facteurs d'influence Règles de lisibilité Problème des signes conventionnels Nécessité des signes conventionnels Les signes conventionnels linéaires Evolution des signes avec l'échelle Placement des toponymes Ponctuel Linéaire Un critère de résolution de problème 34 II Outils Informatiques 39 3 Choix de modes de représentation des connaissances Caractéristiques des systèmes experts Composants de base d'un système expert Notre système, en résumé Difficulté de concevoir la connaissance Quelques modes de représentation des connaissances Procédural ou déclaratif? Raisonner logiquement Règles d'inférence en logique 53 1

7 3.5.2 La logique des prédicats 54 4 Les langages orientés objets Les réseaux sémantiques Les prototypes Les classes et objets Les frames Les acteurs Les langages hybrides Les messages L'héritage La relation d'héritage Objet et représentation des connaissance Les exceptions Héritage et exception Chemins d'héritabilité Quelques techniques de résolution L'intelligibilité Les défauts Comparaison des formalismes 74 5 Lisp et objets Intérêt de programmer en Lisp Ceyx Common Lisp Object System: CLOS KEE 87 III Réalisation 89 6 Modélisation des opérations graphiques Les mesures Règles de sélection Cas général Idées théoriques de sélection Cas linéaire Règles de schématisation structurale Signes linéaires Définitions des segments, arcs, tronçons Définition de la convexité Règles globales de schématisation Deux segments non alignés: virage Linéarisation locale Règles d'harmonisation Hiérarchie des éléments Séparer deux signes voisins ponctuels Séparer un groupe de signes ponctuels Séparer deux signes voisins linéaires Séparer un groupe de signes voisins linéaires 118 2

8 6.5.6 Translation d'un signe linéaire Traitement des carrefours Importance de carrefours Domaine de convexité d'un carrefour Distance entre carrefours Direction de déplacement d'un carrefour Stratégie générale Résumé La base de connaissances Les structures des objets Organisation des objets Les objets composites Les procédures des objets Exemples: les sommets-carrefours Formuler les connaissances Formuler les faits Les prédicats Formuler les règles L'organisation des règles Un petit moteur d'inférences Le Filtrage et l'unification Avantages et inconvénients Résolution Chaînage avant Mode d'inférence Stratégie du développement de la recherche Non monotonie Fonctionnement sur un exemple Exemples La base des objets du réseau Processus de généralisation De 1: aux échelles inférieures De 1: à 1: De 1: à 1: De 1: à 1: De 1: à 1: De 1: à 1: IV Conclusion générale 181 V Annexe 187 3

9 A Code des Programmes 189 A.l Structuration et gestion interne des objets 189 A.1.1 La représentation interne des faits 189 A.1.2 La représentation interne des règles 191 A.2 Le filtrage 196 A.3 L'unification 202 A.4 Code du moteur d'inférence 205 B Art de PostScript 212 B.l Introduction 212 B.2 PostScript et la cartographie. 213 B.2.1 Modèles d'image 213 B.2.2 Style de programmation 214 B.3 Exemples de constructions des graphiques 214 C Fichiers des règles 219 Bibliographie 229 4

10 Sj : Liste des Figures 1.1 Un petit exemple de carrefour à généraliser Système essentiel de G.C Positions préférentielles Les directions de placement de toponymes Réduction de carte à la façon photocopieuse La carte de la ville Marmande: les réductions en prenant les signes conventionnels correspondant sans généralisation Les champs de l'objet de voie routière Réseau communication Le lien ATPG et le lien ATPS Réseau à l'échelle E= 1: Les sous-classes de la classe de réseau de communication Graphe d'héritage, exception au niveau de Rivière Une exception au niveau de Canal La hiérarchie des packages Axes de voies de communication Quand l'échelle réduit Segment, arc, tronçon, route Enveloppe convexe de 3 points Les 2 domaines de convexité de 2 tronçons segments se croisent Arrondir les coins des segments Petits segments à supprimer Petites sinuosités pouvant être supprimées Superposition de deux signes linéaires Séparation de deux éléments ponctuels Expansion par rapport au centre géométrique Expansion par rapport au barycentre Homothétie d'un groupe d'éléments ponctuels Homothétie avec une distribution exponentielle Translation globale sans contrainte Translation locale + linéarisation locale Translation avec contraintes: avant linéarisation Translation avec contraintes: après linéarisation 120 5

11 6.20 Importance de carrefour Convexité d'un carrefour Distance de 2 carrefours non liés à leur axe Distance de 2 carrefours reliés à l'axe Stratégie de résolution Les objets du réseau de communication Les compositions des objets du réseau Les classes et sous-classes de Voies de communication Structuration des règles Toutes les règles de la G.C De 1: à 1: sans généralisation De 1: à 1: avec généralisation De 1: à 1: sans généralisation De 1: à 1: avec généralisation De 1: à 1: sans généralisation De 1: à 1: avec généralisation De 1: à 1: sans généralisation De 1: à 1: avec généralisation De 1: à 1: sans généralisation De 1: à 1: avec généralisation 179 B.l Tracer des routes avec PostScript 216 6

12 : Liste des Tableaux Comparer une carie avec une parole 22 Tableau de dimensions graphiques minimales 26 Evolution des signes conventionnels avec l'échelle 28 Tableau de comparaison des signes conventionnels 32 Les variables de la cartographie 46 Tableau de pourcentages de détails conservés 96 Tableau de relation de sélection utilisable pour les échelles 98 Ajout d'un fait 148 Suppression d'un fait 149 7

13 8

14 Chapitre 1 Introduction La carte est la représentation conventionnelle, généralement plane, en positions relatives, des phénomènes concrets ou abstraits localisables dans l'espace. CFC 1 L'intelligence est la faculté de comprendre, de saisir par la pensée: l'aptitude à s'adapter à une situation, a choisir en fonction des circonstances; la capacité de donner un sens à telle ou telle chose. La cartographie est l'ensemble des études et des opérations scientifiques, artistiques et techniques intervenant à partir des résultats d'observations directes ou de l'exploitation d'une documentation, en vue de l'élaboration de cartes, plans et autres modes d'expression, ainsi que dans leur utilisation. L'intelligence est l'intelligence humaine simulée par les machines. artificielle Petit Larousse édition 89 ACI La généralisation cartographique (GC) joue un rôle important dans les systèmes de production des cartes assistée par ordinateur et dans les systèmes d'informations géographiques. Elle est depuis longtemps l'enjeu de la cartographie en raison de sa complexité intrinsèque, et on ne connaît pas de méthodes de résolution directes et assurées. Devant un problème complexe comme la GC, il est difficile d'effectuer une bonne interprétation des informations géographiques connues pour les transformer, en respectant leur inter-relation, en données dessinables sur le support choisi dans le cadre d'objectifs particuliers des utilisateurs, en suivant l'ensemble des opérations subtiles effectuées actuellement par l'homme. Réciproquement, avec un vaste ensemble d'informations et d'opérations potentiellement accessibles, il est délicat de déterminer quelles informations sont les plus pertinentes pour effectuer telle opération plutôt que telle autre pour résoudre un problème précis. La communauté cartographique est 'Comité Français de Cartographie 2 Association Cartographique Internationale 9

15 10 Chapitre 1. Introduction convaincue que la GC ne trouvera sa juste place parmi les outils de communication et d'aide à la décision que lorsqu'elle aura réussi sa mutation informatique. On se pose donc des questions: quels sont les problèmes de la GC?» comment ces problèmes sont-ils représentés? quelles sont les techniques informatiques disponibles face à un tel problème? C'est autour de ces aspects que s'organise cette thèse. Bien entendu un certain nombre de préalables seront indispensables afin de bien préciser le problème de la GC. Une fois défini un cadre conceptuel nous étudierons les principales idées et techniques de l'intelligence artificielle. Après avoir donné quelques aspects de la modélisation des opérations de la GC et leur formulation mathématique et graphique, nous décrivons une méthodologie de représentation de connaissances qui, pourvue d'une interprétation adéquate et basée sur le concept de langage orienté objet et de règle de production, permet de coder les connaissances de la GC pour traiter les problèmes complexes. Enfin nous donnerons quelques résultats basés sur les détections et déductions par le moteur d'inférence écrit en Le-lisp en lui fournissant des connaissances initiales à l'aide des exemples, et des illustrations graphiques sorties par des codes PostScript. 1.1 Aperçu de la généralisation cartographique Comparez cette carte originale et cette :art< réduite de la précédente : dans cette dernière, il n'y a pas assez de place pour contenir le mot carte. Un traitement spécial est donc presque obligatoire si l'on veut garder le caractère exploitable de cette carte. Une diminution d'échelle provoque une diminution de surface disponible alors que l'encombrement de certaines symbolisations (ex: les écritures, les signes conventionnels des routes, etc.) sur une carte reste par contre plus ou moins constant. La première méthode est de réduire la taille de carte: ou bien: avec une taille encore plus petite. Mais on ne peut pas réduire à l'infini les tailles des symboles quand l'échelle devient de plus en plus petite, l'acuité visuelle de l'homme lui interdit la connaissance des objets infiniment petits sans l'aide d'appareils optiques. Par exemple, on voit bien les lettres cogit dans, tandis que dans K&^ALI, il devient beaucoup plus difficile de les reconnaître après une simple réduction de 50% en bloc. Dans ce cas, une resymbolisation est nécessaire. Une carte représente des objets géographiques que malheureusement nous n'avons pas matériellement la possibilité de voir en totalité dans la nature et dont, au contraire, nous ne percevons que des détails à notre échelle humaine, avec toutes les déformations et les impressions qu'entraîne notre situation normale au ras du sol.

16 1.2. Difficultés essentielles 11 Une carte bien conçue et bien réalisée permet à la fois d'embrasser d'un seul coup d'oeil un objet géographique d'une surface quelconque et d'en distinguer les éléments significatifs quelles qu'en soient leurs dimensions réelles. Le choix de ces éléments, la simplification de leurs représentations, leur harmonisation, leur mise en oeuvre coordonnée définissent la généralisation. Chaque carte représente une réduction de l'espace, alors que les graphismes, pour qu'ils soient lisibles, occupent une place proportionnellement égale ou plus grande que dans la réalité. Le problème est donc le suivant: compte tenu de l'échelle et de la nature des graphismes, quels sont les objets qui doivent être conservés et quels sont ceux qui doivent être éliminés? Comment symboliser ceux qui sont retenus en fonction de la surface du support? La généralisation est aussi nécessaire: à la rédaction d'une carte en changeant le but d'une carte initiale, à la dérivation d'une carte en diminuant l'échelle d'une carte d'échelle plus grande. Donc en résumé, la GC est nécessaire pour résoudre les difficultés à concilier la clarté de la carte avec les contraintes dues à l'échelle et aux objectifs particuliers des utilisateurs. Le but de la généralisation cartographique est d'aboutir à une synthèse plus poussée de l'information et de résoudre le problème d'encombrement à l'aide des 3 opérations: sélection, schématisation et harmonisation Elle permet finalement de reconstituer sur une carte la réalité de la surface représentée dans ses traits essentiels en fonction du but de la carte, de son thème, de son échelle et des particularités de la région cartographiée. La généralisation cartographique est une sorte de caricature, une sorte d'art, elle déforme presque obligatoirement les formes des données par la réduction, resymbolisation, etc. Un problème important est d'assurer la qualité du produit pendant tout le processus. C'est-à-dire qu'il faut préserver la fiabilité des données, la lisibilité de lecture (communication effective du produit cartographique), la précision compatible avec l'échelle et l'esthétique de la carte. Un compromis entre le désir d'exactitude et de clarté devrait être assuré; cette expertise, véritable casse-tête de la généralisation cartographique, est la plus difficile à formuler. La figure 1.1 montre un exemple simple. 1.2 Difficultés essentielles Le principe général de la généralisation cartographique (G.C.) repose sur les processus complexes et interdépendants de sélection, de schématisation et d'harmonisation des éléments constitutifs de la carte, en fonction des facteurs suivants: but et thème de la représentation,

17 12 Chapitre 1. Introduction cartel: les carrefours au SI et au S3 sont à la limite de distance de séparation. carte2: après la réduction, on ne distingue plus le carrefour au SI de celui au S3; les labels ne sont plus aussi lisibles. Figure 1.1: Un simple exemple d'un carrefour à généraliser échelle: elle a une influence primordiale sur la généralisation. caractère géographique régional: selon que l'on est en rase campagne ou en zone urbaine concentrée, la précision sera très différente. niveau de lecture, règles de lisibilité, valeur et précision des données. Plus de détails se trouvent dans le chapitre 2 et aussi dans les références suivantes: [1], [7], [8]. Depuis longtemps, la G.C. est un des aspects les plus délicats de la cartographie à cause des difficultés suivantes: Le volume des données est important, les structures de données sont complexes.

18 1.3. Eléments d'intelligence artificielle 13 La procédure subjective des opérations n'est pas homogène. Le résultat de la simplification d'une ligne par le même cartographe à quelques jours d'intervalle pourrait être même significativement différent. Une carte à échelle deux fois plus petite ne peut pas être considérée comme étant l'homologue de sa grande soeur avec seulement quatre fois moins d'objets représentés. Les yeux humains n'arrivent plus à distinguer les choses qui sont en-dessous du seuil de 0.1mm 2. Les jugements humains sur la qualité de produit sont difficiles à formuler, vu l'absence de critères universellement acceptables. Des considérations de nature esthétique et des critères de valeur intrinsèques qui méritent d'être définis interviennent dans le choix d'une appréciation personnelle souvent subjective. Devant une collection de cartes représentant le même phénomène, les avis peuvent être aussi différents. Le seul critère constituant une référence universelle est peut-être celui de V efficacité. La cartographie est une sorte d'art qui fait appel au bon sens et à l'expérience, mais il est difficile de formaliser le savoir des experts, de même qu'il est pratiquement impossible de formuler mathématiquement tous les savoirs humains. En bref, la généralisation ne peut pas être codifiée ou réglementée de façon précise. Cette constatation laisse le champ libre à l'empirisme et aux interprétations individuelles du cartographe, préparateur ou dessinateur; elle conduit donc inévitablement à des productions personnalisées dont le contenu et la forme dépendent plus de leurs auteurs que de règles rationnelles et méthodiques, ce qui justifie l'importance de l'harmonisation. Les moyens actuels de recueil, de traitement et de transcription graphique de données ne seront efficaces que dans la mesure où les fondements scientifiques de la généralisation auront été élaborés, en prenant les meilleurs outils informatiques pour la réalisation. C'est une tâche difficile et délicate car la cartographie est tributaire de son passé et des habitudes acquises. Il semble que c'est un champ privilégié d'application des recherches en intelligence artificielle: la généralisation cartographique semble indissociable des techniques de l'ia. 1.3 Eléments d'intelligence artificielle L'intelligence artificielle (IA) est depuis quelques années un point de focalisation des média, du public et des scientifiques. On s'interroge sur son existence en tant que discipline scientifique, sur ses buts et son champ d'investigation, sur sa situation et les limites qu'elle pourrait atteindre, sur ses applications actuelles ou à venir et leur impact social, économique ou psychologique[12]. Aujourd'hui, elle suscite un grand engouement dans l'industrie. Le concept d'intelligence est complexe et relatif, et l'expression fortement controversée, d'intelligence Artificielle ne le précise pas davantage. Bien que les Chinois doutent du caractère inné de l'intelligence humaine, ils la nomme Vintelligence du ciel. La philosophie du donné, empirisme, considère que toute connaissance vient de l'expérience[17], c'est à dire que l'esprit est une pure passivité,

19 14 Chapitre 1. Introduction une simple faculté d'enregistrer des réalités indépendantes de lui. L'empirisme est un procédé spontané qui consiste à agir par tâtonnement et sans réflexion préalable. Toute notre connaissance commence avec l'expérience, disait KANT, mais il n'en résulte pas qu'elle dérive toute de l'expérience. Il semble, en effet, qu'il y ait des vérités indépendantes de toute expérience particulière, notamment en logique et mathématiques. Les théories de Wallon et de Piaget donnent du développement intellectuel l'image d'une hiérarchie de savoir-faire acquis par l'enfant à travers une série de stades. Au plus bas niveau se situent les comportements réflexes, puis viennent les comportements concrets, liés à une intelligence pratique qui existe déjà chez les animaux supérieurs; l'intelligence concrète est le premier niveau de l'intelligence discursive capable d'opérer sur des signes et des symboles; quand cette opération se libère de l'affectivité et de l'action immédiate, l'enfant atteint le stade de l'intelligence abstraite (capacité de distinguer les qualités d'un objet, de comparer, de classer), que complète l'intelligence conceptuelle (raisonnement hypothético-déductif, appel à une logique formelle). Les humains pensent qu'ils sont des êtres plus intelligents que les animaux; en étant fier, ils cherchent toujours à reproduire les intelligences humaines, ce qui, avec les progrès des ordinateurs a fait naître l'intelligence artificielle. Son principal objectif est d'obtenir soit un résultat voisin de ce qu'aurait obtenu l'homme avec éventuellement des démarches différentes, soit d'un ordinateur un comportement semblable à celui d'un humain, c'est à dire, de disposer d'un programme qui adopte une démarche analogue à celle d'un spécialiste confronté à un problème précis. Dans cette dernière optique, le travail des chercheurs en IA commence par des observations de comportements humains et animaux faces à des situations particulières. De ces observations, on cherche à constituer un ensemble de théories scientifiques cohérentes, de lois de fonctionnement du raisonnement. Finalement, cette analyse longue et difficile doit aboutir à la reproduction, par des moyens réellement artificiels (mécaniques, informatiques), des comportements étudiés. L'ensemble des théories et des techniques mises en oeuvre pour réaliser des telles machines constitue l'intelligence artificielle. L'informatique classique traite des problèmes de manipulation de données: essentiellement des valeurs numériques ou des chaînes de caractères. Un programme y est chargé de traiter de manière spécifique un type de données bien propre. Les logiciels d'ia, par contre, doivent traiter non seulement des nombres et des caractères mais des informations plus abstraites: des connaissances humaines au milieu des activités concrètes, jusqu'ici faiblement informatisées, du type diagnostic, prévision, conception, planification d'actions; la généralisation cartographique en est un bon exemple. De telles activités intellectuelles sont souvent, comme nous l'avons constaté précédemment en ce qui concerne la généralisation cartographique, difficiles à être représentées sous forme d'algorithmes sûrs et définitifs. Comme toute discipline scientifique, le but de l'ia est de comprendre les phénomènes et les processus qui interviennent dans son champ d'investigation qui est le raisonnement: VIA cherche à comprendre les mécanismes de réflexion, son outil central d'investigation est l'ordinateur, elle cherche à marier les deux démarches cognitifet informatique numérique.

20 1.3. Eléments d'intelligence artificielle 15 Comment rendre les ordinateurs plus habiles? telle est la question fondamentale de l'ia. l'ia cherche à concevoir des programmes et des machines en mesure de traiter des problèmes pour lesquels on ne connaît pas de méthodes de résolution directes et assurées. Elle comprend tous les domaines où nous traitons de l'information sans savoir comment nous nous y prenons. Ces domaines sont nombreux et recouvrent les diverses formes de raisonnement, de résolution de problèmes tels que la généralisation cartographique. * L'IA interroge et cherche à découvrir le réel, les mécanismes de raisonnement et de compréhension. L'IA apporte sa contribution à la compréhension des manipulations effectuées sur des objets au cours de l'exercice de facultés mentales telles que: interpréter, comparer et faire des associations, synthétiser, abstraire et mémoriser, déduire, généraliser, induire, apprendre L'IA exploite les possibilités du réel pour concevoir des machines et des programmes traitant une classe de problèmes particuliers tels que: analyser une image, identifier son contenu, faire une synthèse plus poussée de son contenu pour générer une carte à échelle plus petite. Pour appréhender ces problèmes, les chercheurs s'intéressent aux techniques de représentation sur ordinateur des connaissances symboliques, aux règles et algorithmes d'inférence logique, aux machines, et aux logiciels les plus adaptées à ces représentations et ces algorithmes. L'objectif visé est que ça marche: que le programme ou la machine conçus résolvent effectivement le problème posé intelligemment comme un expert humain, mais comment rendre une machine aussi intelligente qu'un spécialiste humain confronté à un problème précis? En fait, une activité humaine intelligente met en oeuvre une grande quantité de connaissances, comprenant des informations générales mais aussi des informations propres au champ de l'activité, ainsi que des stratégies de raisonnement permettant de manipuler ces informations. Entre Vintelligence du ciel et les connaissances pratiques de l'empirisme, on peut se mettre d'accord sur le fait qu'un humain développe son intelligence, et renforce son intelligence en accumulant une masse de connaissances héritées des ancêtres au cours des siècles, et devient ainsi de plus en plus mûr ou intelligent, et finalement, expert. Un expert n'est pas nécessairement intelligent: il sait, sans réfléchir. Beaucoup de ce qui apparemment nécessite de l'intelligence peut être réalisé par compilation des règles de comportement superficiel[l2]. On s'oriente vers la voie: mettre à la disposition des programmes une masse importante de connaissances (déductives) sur le sujet traité, et par là même, les spécialiser dans un secteur bien précis, c'est à dire qu'on commence par apprendre aux ordinateurs, on les forme comme on forme des humains, ensuite, on espère qu'ils travailleront comme (plus ou moins) un humain, mais toujours sous la direction des êtres humains, au moins ceux qui écrivent le programme et ceux qui l'utilisent. La connaissance repose donc sur trois composantes: des faits ou données brutes qui

21 16 Chapitre 1. Introduction caractérisent les objets du domaine considéré, des règles permettant de manipuler ces faits, des stratégies de raisonnement et des heuristiques exprimant la façon de se servir des règles des structures de données appropriées au stockage et à la manipulation des informations relatives à une application. D'importants travaux sont déjà faits sur ce domaine. De tels programmes existent, leur but est de parvenir, dans des domaines bien précis, à des performances avoisinant celles des meilleurs spécialistes. On les nomme systèmes experts (SE), ou systèmes à base de connaissances. Les techniques de base de l'ia reposent essentiellement sur deux concepts permettant de représenter de manière efficace une grande variété de connaissances. Le premier, les règles de production et la programmation logique, est un outil popularisé par les systèmes experts (chapitre 3.1). Le second moyen, également très utilisé, est la représentation sous forme d'objets (chapitre 4). 1.4 Perspectives Les deux sciences, la généralisation cartographique et l'ia, ne sont pas des sciences aussi mûres et rigoureuses que les mathématiques. Néanmoins, on espère les marier ensemble par une étude des techniques existantes en informatique autant qu'en cartographie. La vocation d'un système expert est d'aider à résoudre des problèmes très difficiles pour l'homme relevant d'un domaine de compétence particulier où les activités sont difficilement représentables sous forme d'algorithmes sûrs et définitifs comme on l'a déjà indiqué plusieurs fois dans le domaine de la généralisation cartographique. On espère contourner cette difficulté partiellement en faisant appel à la méthodologie des systèmes-experts: leur structure et leur fonctionnement se prête assez bien à la reproduction des facultés humaines de décision ou jugement, à partir non d'algorithmes complets mais d'éléments d'algorithmes, spécifiques d'un domaine d'application, plus ou moins épars et non définitifs, fournis par des experts humains du domaine considéré. Par une étude critique des cartes existantes et par une analyse objective des facteurs de généralisation, quelques spécialistes ont déjà montré que certains principes, et notamment ceux de la sélection, peuvent recevoir une formulation mathématique et que les directives générales résultant de l'expérience et de la tradition peuvent s'exprimer sous une forme cartésienne. La structure complexe de l'image cartographique est régie par une multitude de règles qui sont appliquées plus ou moins implicitement par le dessinateur, selon son expérience et son habileté; aussi, sans nier l'importance de ces facteurs humains, il importe de limiter leur influence pour réduire la part d'interprétation personnelle, codifier ce qui peut l'être et normaliser ainsi les résultats et la qualité de la généralisation. Notre but est: de constituer une approche du problème par une analyse objective des facteurs de généralisation, en recueillant des règles qui sont appliquées plus ou moins implicitement par le cartographe, tout en essayant d'en tirer des règles générales, de formuler et codifier ce qui peut l'être et normaliser ainsi les résultats et la qualité de la généralisation.

22 1.4. Perspectives 17 de montrer, dans quelques cas bien précis, comment il est possible de tendre vers cette normalisation. de concevoir un système capable de réaliser les opérations de la G.C. ayant recours aux techniques diverses de l'intelligence artificielle, en cherchant une certaine automatisation et la souplesse des processus, apportant la rapidité et l'économie, et peut être une qualité supérieure et une plus grande homogénéité du travail. Le système a les fonctionnalités suivantes: Saisir et modifier des connaissances. Rédiger des cartes d'une échelle donnée à partir des données d'une échelle plus grande. Résoudre le problème qu'on lui demande dans le cadre de ses capacités, et dialoguer avec l'opérateur humain. Justifier la trace de sa résolution. Le système comprend les modules suivants (voir Sa figure 1.2): Système Expert. Bd initiale Ech ellel Bd finale Echelle2 Module PostScr ipt imprimante Carte dérivée Figure 1.2: Système essentiel de G.G. une base de connaissances contenant la base des données des objets initiaux et la base d'expertise (la base des règles). un moteur d'inférences non monotone, avec variables, fonctionnant en chaînage avant, avec l'interrogation de la base de faits, etc. un module pour acquérir des connaissances, les visualiser, et es compiler sous forme interne. un module de traduction des données graphiques en PostScript.

23 18 Chapitre 1. Introduction

24 Partie I Cartographie

25

26 Chapitre 2 La généralisation cartographique Ce chapitre décrit les différents aspects du processus de la GC pour bien comprendre et connaître ses problèmes. 2.1 Analyse du problème Une carte est plus qu'une simple image visuelle ou photographique d'une région donnée. > Elle assure, par l'utilisation des deux dimensions du plan, un classement géographique et, par le jeu des variables visuelles (voir le tableau 3.1 de la page 46), une perception de la nature et des valeurs des phénomènes.»> Elle n'est pas un enregistrement pur et simple, elle communique à son lecteur une information traitée et ordonnée compte tenu de l'échelle, d'un espace géographique défini. Elle constitue le moyen le plus efficace pour enregistrer, calculer, révéler, analyser et comprendre les relations spatiales qui existent entre les différents phénomènes concrets ou abstraits dont la localisation est géographique[l]. Outre l'aspect scientifique que la définition 1 de l'onu a attribué à la cartographie, la communauté cartographique parle de l'ensemble des études et opérations scientifiques, artistiques et techniques. A l'inverse d'une photographie qui enregistre fidèlement tous les détails compatibles et donne des détails une image qui correspond à leur dimensions originales (voir sur la figure 2.3 les réductions à la façon photocopieuse d'une carte), une carte opère une sélection, elle ne retient et renforce que les détails jugés indispensables en fonction des besoins et de l'échelle de la carte et elle omet volontairement tous les autres. Une carte réalise un classement selon des critères qualitatifs ou quantitatifs bien définis en 1 La Cartographie est la science qui traite de rétablissement de cartes de toutes sortes. Elle englobe toutes les phases des travaux depuis les premiers levés jusqu'à l'impression finale des cartes. 21

27 22 Chapitre 2. La généralisation cartographique parole: prononcer les phonèmes les uns à la suite des autres, grouper les phonèmes en mots et en phrases, exprimer des idées au moyen d'une ou plusieurs phrases complètes. carte enregistrer des données élémentaires, traiter ces données, les mettre en ordre et les coordonner, passer un message et des idées au moyen des graphiques: carte. Tableau 2.1: Comparer une carte avec une parole fonctions de ses buts et elle souligne les détails les plus importants selon ces critères. Par exemple, les routes sont classées par leur largeur, le nombre de voies, l'importance du trafic, et elles sont représentées par des figurations symboliques et conventionnelles comme les signes conventionnels en fonction d'échelle. La figure 2,4 montre des réductions de la carte de Marmande en prenant les signes conventionnels correspondants des routes. Une carte bien conçue fournit immédiatement une image claire et lisible qui procure des informations à tous leurs utilisateurs quel que soient leur langue maternelle et leur degré de connaissances. La cartographie, un moyen de communication et d'expression, est un langage graphique à part entière, qui possède comme tous les autres langages formels: son vocabulaire : elle utilise un ensemble des symboles graphiques qui suggèrent des objets ou des idées individualisées, une ligne de couleur rouge représente une autoroute; un carré désigne une maison, etc. sa grammaire : c'est la façon d'agencer les symboles graphiques, les combinaisons et les groupements exprimant des idées d'un ordre supérieur par comparaison, association ou analogie avec d'autres concepts. la ligne d'une route ne peut pas traverser une maison sans tunnel; une voie ferrée ne doit pas croiser à niveau une autoroute; ses règles : règles de fiabilité de transfert des informations, règles de lisibilité des données, règles esthétiques découlant de la culture: les informations dans une carte sont traitées pour dégager et traduire, sous une forme aussi facile que possible à lire et à retenir, les lois de correspondance et les relations qui existent entre ces informations. une carte ne doit pas donner de fausses informations telles que Paris soit en dehors de la frontière française;» Le fait que la couleur rouge soit attribuée à une forêt est susceptible de troubler lecteur moyen.

28 2.2. Cas des voies de communication 23 Par rapport aux autres formes de langage, la représentation cartographique dispose d'ailleurs d'avantages importants: * Par nature, la mémoire visuelle symbolique est plus efficace que la mémoire phonétique abstraite, comme le confirme l'histoire: les écritures symboliques sont beaucoup plus anciennes que les écritures alphabétiques. L'homme assimile naturellement les dessins. L'utilisation des deux dimensions du plan et la grande universalité des variables visuelles offrent de grandes possibilités d'expression. Un petit dessin sera plus précieux pour un étranger qui cherche son chemin et ne connaît pas bien la langue du pays qu'une petite phrase confuse. Devant une collection de cartes représentant le même phénomène, les appréciations personnelles peuvent différer tant sur l'esthétique que sur la nature de la carte. Le critère de Vefficacité est considéré comme une référence universelle. 2.2 Cas des voies de communication Vue la complexité totale de la généralisation cartographique, on a préféré, en première étape, prendre un cas particulier comme domaine de travail: le cas de voies de communication en espérant en faire un modèle de base pour proposer une méthodologie de représentation des connaissances dans ce domaine Carrefour Un point est géométriquement d'aire nulle. Comme toute représentation, pour être visible, la représentation d'un point est nécessairement une surface d'aire non nulle; et cette surface est purement conventionnelle et seul son centre a une signification positionnelle. Ponctuel comme première caractéristique, un carrefour peut être défini par l'intersection de deux lignes matérialisées, son sommet, parfaitement défini par l'intersection d'axes, sans surface; mais un carrefour en ce qui nous concerne, a une surface qui correspondent aux largeurs des routes qui s'y rejoignent Voies La ligne est un lieu du plan de mesure nulle dans un espace à deux dimensions, et non nulle (longueur) dans un espace à une dimension. Une voie de communication peut être représentée: par une ligne d'épaisseur de 2 mm; par une ligne continue ou discontinue; par des tracés jumelés.

29 24 Chapitre 2. La generalisation cartographique mais, seul l'axe linéaire de la tache visible a une signification positionnelle. Donc, une voie peut varier en largeur, en valeur, couleur... On fera appel à la largeur, à la variation et à la couleur de la ligne pour faire apparaître une hiérarchie. Par exemple un cas sur la figure 1.1, étant donné: un ensemble des carrefours E = {CI,Ê2J e 3> i e n} dans un réseau routier: SI, S2, S3; On doit * chercher à les représenter sous un modèle cartographique, mathématique, physique, informatique, etc. trouver des relations R entre les E; prenons l'exemple entre le carrefour SI (p2) et S3 (p3) de la figure 1.1: SI (p2) et S3 (p3 ) ont un arc(a2) en commun SI (p2) est à la gauche de S3 (p3 ); SI (p2) et S3 (p3) sont à la limite de lisibilité; etc. prendre en compte les contraintes C suivantes: échelle, but, caractère des données, lisibilité. esthétique. Les règles de lisibilité sont numérisables entre les éléments bien définies et restent constantes une fois modélisées. Alors que les échelles, buts et caractères des données sont variables et posent des problèmes pour la modélisation de l'ensemble des opérations de la généralisation. 2.3 Les facteurs d'influence Le principe général de la généralisation cartographique repose sur les processus complexes et interdépendants de sélection, de schématisation et d'harmonisation des éléments constitutifs de la carte; les facteurs d'influences sont les suivants: but et thème de la représentation. L'influence du but de la carte est évidente: si on compare 2 cartes géographiques générales à la même échelle, l'une dans un atlas de référence, l'autre dans un atlas scolaire, la précision sera complètement différente. L'influence du thème concerne l'harmonisation et l'équilibre des éléments représentés. La carte topographique est nécessairement détaillée puisqu'elle constitue le cadre dans lequel s'intégreront toutes les autres productions. Mais on ne peut pas satisfaire intégralement tous les besoins, car une carte très complète mais parfaitement illisible est inefficace pour des non spécialistes. échelle. Elle a une influence primordiale sur la généralisation. Théoriquement, une carte à 1: aura beaucoup moins de détails que sa grande soeur à 1: , le nombre de phénomènes représentables dans une surface donnée varie

30 2.4. Règles de lisibilité 25 en fonction inverse du carrée du rapport d'échelle. Mais une carte de 1: n'aura pas forcément 4 fois moins d'élément que sa petite soeur de 1:50 000, car par symbolisation, on arrive à mettre plus d'objets que le nombre théorique. Dans les cartes à grandes échelles, le souci est de maintenir la précision graphique absolue, ce qui conduit à une densité de détails inférieure à celle qu'exigerait le seul critère de lisibilité, Aux petites et très petites échelles, on se contentera d'avoir la précision relative, donc le nombre d'éléments maintenus est souvent supérieur à celui qu'autorise le rapport des surfaces. Avec la réduction d'échelle, la généralisation n'est pas seulement obligatoire, elle est nécessaire et dans l'esprit de la cartographie: une autoroute qui constitue un phénomène essentiel à l'échelon national ou international, n'a pas beaucoup plus de valeur dans le cadre de la commune qu'elle traverse que le moindre chemin d'exploitation. caractère géographique régional. La carte d'une région a pour but de traduire avec le maximum d'efficacité le caractère et les traits essentiels de cette région et de fournir des points de comparaison entre des régions semblables. Les détails des sentiers, points d'eau seront plus ignorés dans une région tempéré de fort peuplement que dans une zone désertique. niveau de lecture. Comme la transcription graphique est totalement dépendante des lois naturelles de la vision qui lui imposent des limites et des règles strictes, la carte ne peut que répondre à un objectif bien précis. Elle doit être conçue en fonction du niveau de lecture pour lequel la lecture sera instantanée et cela explique les réactions diverses devant une collection de cartes. règles de lisibilité. Ce facteur est entièrement développé dans la section suivante, vu sa grande importance. valeur et précision des données de base. Evidemment ce facteur secondaire est également important, la nature des documents disponibles conduit en effet le cartographe à prendre des décisions différentes. Dans tous les cas, quels que soient le niveau de lecture et la fonction de la représentation, l'efficacité d'une image est maximale lorsque le temps de perception est le plus court[l]. 2.4 Règles de lisibilité Normalement, les cartes sont destinées à être examinées sans l'aide d'instruments grossissants, à une distance normale (de l'ordre de 30cm) et sous un éclairage moyen. Dans ces conditions, leur contenu doit être conçu de telle sorte que tout élément graphique isolé soit perceptible, que sa forme soit distinguée, que deux éléments voisins soient séparés, enfin que les différents paliers soient différenciés. Voir le tableau 2.2 de la page 26. Un point est perceptible lorsqu'il est vu sous un angle de 1'; le seuil de perception pour un élément ponctuel est alors de 0,09mm, diamètre de ce point, ou dimension minimale d'un élément graphique de forme irrégulière.

31 26 Chapitre 2. La généralisation cartographique Contraintes visuelles Acuité visuelle de discrimination Acuité visuelle d'alignement Seuil de perception Seuil de séparation Seuil de différenciation ponctuel linéaire ponctuel linéair Représentations graphiques" à 30cm de distance, dd doit être de I dd < = 1' «0.1» 0.2 o en tracée I 0.2 da doit être au moins de 0.02 mm 2^ "S" en dessin III U i entre 2 paliers, le rapport des rapprochés éloignés surfaces doit être au moins de 2 écart d' épaisseur ox 0.3, Tableau 2.2: Tableau de dimensions graphiques minimales: Les chiffres sont exprimés enmm Une ligne, du fait de sa continuité, admet des tolérances plus faibles, soit un angle visuel de 0.7' ou une épaisseur de 0.6mm. Dans le domaine des formes, en implantation ponctuelle ou linéaire, il faut tenir compte de la lisibilité angulaire qui est faible lorsque les angles se rapprochent de 0 ou de 180 et maximale aux environs de l'angle droit; Un carré de petite dimension se distingue plus aisément d'un cercle de même surface qu'un hexagone ou qu'un pentagone. Selon l'expérience, un carré poché est distingué avec une largeur de 0.4mm, un carré vidé sera visible avec une largeur de 0.6mm. Les sinuosités d'une ligne anguleuse de.1mm se distinguent lorsque leur coté est d'environ 0.6mm-0.7mm, si elles sont quelconques, et leur base est de l'ordre de 0.6mm~0.7mm et leur amplitude de 0.4mm. Pour séparer deux signes voisins, on définit un seuil de séparation, qui est l'écart minimal nécessaire entre deux éléments graphiques voisins pour pouvoir les isoler à l'oeil. Par exemple, pour deux lignes fines parallèles l'écartement angulaire est un espacement graphique de 0.17 mm, et pour des lignes épaisses 0.15 mm. C'est cette valeur qui constitue le seuil de séparation valable pour des signes pochés contigus. En fait, dans la pratique, les chiffres exprimés ci-dessus sont nettement plus élevés; car il ne suffit pas de distinguer ou de séparer les éléments graphiques, il faut encore apprécier les différences de dimension ou de valeur qui expriment des paliers distincts en classement quantitatif (ou simplement ordonné), et corrélativement les éléments identiques appartenant au même palier. Les écarts sensibles qui définissent le seuil de différenciation doivent être respectés si la lecture au stade élémentaire est indispensable. Si au contraire, les questions élémentaires sont inutiles et qu'on ne souhaite pas une perception sélective des détails mais une vision d'ensemble, les écarts seront plus faibles et des tailles extrêmes identiques.

32 2.5. Problème des signes conventionnels 27 En cartographie topographique, les différenciations sont réalisées par des combinaisons des diverses variables visuelles qui évitent, dans une certaine mesure, l'utilisation de signes occupant trop de place. En bref, pour qu'une carte soit parfaitement lisible, il est indispensable de rechercher un équilibre, d'une part entre la surface totale des différents éléments graphiques et la surface du support (densité graphique), d'autre part dans les contrastes des graphismes entre eux. 2.5 Problème des signes conventionnels Nécessité des signes conventionnels Une des caractéristiques essentielles de la représentation de la planimétrie est qu'autant que possible, les détails doivent apparaître suivant la projection de leur contour, réduits à l'échelle, ou à la rigueur, par des graphismes axés ou centrés sur l'emplacement de cette projection. Par les règles de lisibilité, on a défini les dimensions minimales des images cartographiques. Donc théoriquement, à l'échelle de 1/25 000, on pourra conserver la représentation en projection par un trait isolé de tous les objets linéaires mesurant au moins 2.5m de largeur (0.1mm sur la carte) et par deux traits séparés de tous les objets linéaires mesurant au moins 10m de largeur (traits de 0.1mm séparés par un espace de 0.2mm). De même, les détails à implantation zonale seront perceptibles dès que leur coté dépassent 12.5m. Toutefois ces minima absolus ne permettent aucune différenciation d'objets de nature différente mais de dimension identique. Cette différenciation, justifiée et nécessitée par la multiplicité des objets, demande, dans tous les cas, une amplification des dimensions théoriques. En fait une représentation parfaitement homométrique, c'est-à-dire une représentation en projection et dimension réelles des objets, n'est possible qu'à très grande échelle, jusqu'à 1/ Les cartes topographiques font donc tout naturellement appel aux signes conventionnels souvent pour les éléments ponctuels et linéaires, puisque la variable forme (tableau 3.1) est la seule qui s'adapte au grand nombre d'objets. Pour des besoins de commodité, on a l'habitude de répertorier les éléments du contenu planimétrique d'une carte selon un certain nombre de catégorie. Par exemple, la catégorie linéaire comprend: les routes, chemins, sentiers, voies ferrées, les éléments du réseau hydrographique, les limites de culture et les limites administratives, etc.; alors que les constructions diverses sont dans la catégorie ponctuelle; la végétation dans la catégorie zonale. Dans la catégorie linéaire qui constitue notre domaine de travail, on se limitera aux: voies de communication du réseau de communication Les signes conventionnels linéaires Pour les implantations linéaires, la forme générale est imposée par le tracé, et une figuration semblable à la projection horizontale s'impose. Les critères d'ordre des distinctions de détails se traduisent par des variations de largeur du signe, par des différences de grosseur de traits ou par des variations de valeur (grisé ou couleur, discontinuités des traits). Ces diverses possibilités favorisent les combinaisons; c'est ainsi que, pour les routes, les critères de nature du revêtement, de classement administratif

33 28 Chapitre 2. La généralisation cartographique Voies ferrés Objets 1 voie TT" Échelle 1:55 ööu i:8ô ÔÔO 1:100 ÖÖÖ 30 2fl.3o.2u l:25ô ÔOO 1 i:bôôôôô Twr 20 Autoroute 2x2v chaussées séparés o.30.t2.ao.2o TTOT votes larges "3D" étroites 55 couleur orange Autre route non classée de 5m étroite îrrégulière Chemin d'exploitation Sentiers tireté blanche "HP continu 50 tireté Rivière navigable vrai grandeur +50Ö0h Ville +3000h nal ~30TTOn" continu 20 tireté S tireté 20 tireté signe conventionné '2 îéô Ö Tableau 2.3: Tableau de l'évolution des signes conventionnels avec l'échelle : Les chiffres sont exprimés en 1/100 mm; dans : 20: un trait noir ou de couleur de 20/l00mm, 30: espace 70 entre deux traits, 70 est le largeur total du signe conventionnel

34 2.5. Problème des signes conventionnels 29 et de largeur de voie se superposent éventuellement. Si le classement est quantitatif, on fait généralement varier la largeur du signe mais, pour éviter un encombrement excessif et une amplification disproportionnée, on préfère, aux petites échelles, jouer sur le nombre de signes adventifs comme des traits pointillés. Le tableau 2.3 montre l'encombrement des différents signes conventionnels suivant les différentes gammes d'échelles Evolution des signes avec l'échelle Il est pratiquement impossible de conserver les mêmes signes conventionnels pour toute la gamme des échelles. Comme les signes conventionnels, pour être lisibles, amplifient de plus en plus leur emprise graphique au fur et à mesure que l'échelle diminue, ces normes de sélection sont absolument nécessaires à chaque stade de dérivation qui conduit de la carte de base aux cartes générales mais il est prudent de considérer le problème dans son ensemble. En effet, la part de convention croît en même temps que diminue le nombre de phénomènes qui peuvent être représentés par la projection de leurs contours. Simultanément l'espace disponible varie en fonction inverse du carré des rapports d'échelle alors que les dimensions minimales des graphismes disponibles restent invariables et que les dimensions réelles des objets constituent un ensemble très vaste. Ces données impliquent, lorsqu'on descend la gamme des échelles, d'une part une généralisation par sélection, harmonisation et schématisation, d'autre part une égalisation de l'importance apparente des détails conservés; on peut dire que progressivement l'échelle s'éloigne de celle de la carte originale, la représentation des objets devient différente d'un objet à l'autre. Par ailleurs le niveau d'observation est fonction de l'échelle et il a une influence sur le concept et la définition des phénomènes, sur la nature de leur implantation et sur leur nombre. Routes et chemins Quelle que soit l'échelle, l'implantation demeure linéaire exception faite de certains aménagement routier complexes, échangeurs d'autoroutes, par exemple, dont la représentation devient ponctuelle à petite échelle. Au grandes échelles, le critère de base est la viabilité qui s'exprime soit en termes d'ordre: grande circulation, viabilité excellente, bonne, moyenne, incertaine; soit en termes quantitatifs: nombre de chaussées, de voies ou largeur de la route. La largeur d'une route peut d'ailleurs être exprimée de deux façons: la largeur de la partie utile qui conditionne le nombre de voies, les possibilités de circulation, la vitesse et la fluidité du trafic; la largeur de l'emprise totale, comprenant les fossés, les accotements, et éventuellement, le terre-plein central. En pratique, les routes praticables aux véhicules à moteur sont représentées par deux traits parallèles noirs et les différentes classes sont obtenues, non seulement par

35 30 Chapitre 2. La généralisation cartographique une variation d'écartement, mais également par des différences d'épaisseur des traits; pour les autoroutes, un trait médian met en évidence l'existence de deux voies séparés. Une route impraticable ou en construction est indiquée par des traits discontinus. A moyenne échelle, les deux critères précédents sont toujours prédominants, mais il devient intéressant de faire apparaître, de façon claire et évidente, l'importance des relations assurées; comme la place est limitée, l'encombrement des signes est réduit par suppression des traits forts, certaines catégories sont fusionnées mais la simplification nécessaire du signe est compensée par l'apparition de surcharge de couleur symbolisant le nouveau critère. Ici la couleur introduit une relation d'ordre, conventionnellement admise, un rouge vif mettant en évidence le réseau principal, un jaune ou un rouge moins intense (tiretés, grisé ou pointillé) le réseau secondaire. A petite échelle, le seul critère retenu est celui de l'importance des relations; aussi se limite-t-on le plus souvent à trois catégories, en opérant une sélection et une élimination importante, dans le réseau de relations locales. L'allégement et l'amenuisement obligatoire des signes fait renoncer à la représentation à deux traits fins pour passer au trait unique d'épaisseur variable, généralement rouge (voir le tableau 2.3). Chemins de fer La classification des chemins de fer est relativement plus simple car le nombre de catégories est réduit et les critères sont strictement quantitatifs: d'une part le gabarit des voies, voies normale, voies étroites, d'autre part nombre de voies. A toutes les échelles, l'implantation est linéaire et le signe imprimé le plus souvent en noir. A grande échelle, où la place n'est pas limitée, le nombre de traits peut indiquer le nombre de voies tandis que l'épaisseur du trait varie selon le gabarit; cependant cette solution conduirait à un encombrement excessif des voies multiples et dès l'échelle de 1/50000, on doit abandonner ce principe par des traits uniques et le nombre de traits perpendiculaires accolés indiquant sans ambiguïté le nombre de voies. Canaux et Rivières L'implantation des canaux est toujours linéaire et leurs signes conventionnels imprimés en bleu. Mais seulement la largeur d'une rivière n'est pas toujours constante, d'où justifie la nécessité de différencier les canaux et les rivières 2. On peut définir deux critères de classement: qualitatif selon que le canal est navigable ou non, quantitatif en fonction de sa largeur utile, de berge à berge. A l'échelle de 1: , tout canal de largeur égale ou supérieur à 10m peut être représenté par deux traits bleus séparés par un espace teinté en bleu clair; les dimensions vraies sont respectées et la représentation est homométrique. Les canaux de moins de 10m sont uniformément représentés par un trait bleu unique. Aux échelles inférieures, on a généralement une abstraction du critère dimensionnel, malgré des variations qui sont sensibles à moyenne échelle (de 4 à 25 m) et on se limite à deux signes. Le signe le plus large est attribué au canal ou rivière navigable. On considère, en effet, que le canal navigable fait partie du réseau des voies de communication. 2 voir la section 4.11

36 2.6. Placement des toponymes 31 A partir du tableau 2.3 de la page 28, on peut établir un tableau 2.4 de comparaison à la page 32. Le tableau 2.4 de la page 32, établi à partir des spécifications actuelles des cartes IGN à l'aide de Monsieur Weger 3, fournit pour les routes, et chemins de fer les données numériques suivantes: E: l'échelle correspondante. D r : dimension moyenne réelle pour chaque catégorie (exprimé en mtre). D c : largeur totale du signe conventionnel correspondant. D r x E: encombrement réel que le largeur D occupe sur la carte à l'échelle E. r : coefficient d'amplification moyen résultant, et on a Pc D r xe (2-1) Problème d'encombrement de signe Pour donner une idée plus précise des variations de dimensions des signes conventionnels en fonction de l'échelle et de leurs conséquences sur l'homogénéité de la représentation, on peut voir le tableau 2.4 de la page 32. Ce tableau montre que l'échelle de la représentation est variable d'un objet à un autre, et ce dans des proportions qui différent selon l'échelle. On constate également que l'amplification, pour une échelle donnée, s'effectue selon deux gradations différentes pour les signes à trait unique et pour les signes à traits multiples. Il existe toujours une disproportion entre les détails situés de part et d'autre part de la césure. 2.6 Placement des toponymes Evoquons rapidement le placement de toponyme dans le cadre routier. Les cartes sans toponyme (muettes) ont l'avantage de la clarté et de la lisibilité car les écritures sont plus encombrantes que les symboles. Mais le toponyme est le plus sûr moyen d'identifier un objet avec certitude; les écriture seront donc un élément indispensable de l'information géographique. Comme toujours dans le problème de cartographique, la mise en place des écritures obéit à des règles qui sont les fruits d'une longue expérience mais qui doivent toujours être respectées. La manière de disposer les écritures contribue dans une large mesure à la qualité d'une carte non seulement en précisant sans ambiguïté la localisation et la nature de la route, mais encore en participant à l'effet esthétique d'ensemble. Une harmonie générale est à rechercher, c'est à dire avec un minimum de goût et de sens artistique. Les règles sont différentes selon qu'il s'agit de noms dits à position ponctuelle ou à disposition linéaire ou zonale. 3 Ecole Nationale de Science Géographique, département cartographie

37 32 Chapitre 2. La généralisation cartographique Objets Type Dr Voies ferrés +2 voies Voies ferrés 1 voies Autoroute Route a 2x2v séparés Route à +3 voies Route à 2 voies larges Route à 2 voies étroites Route -5m Autre route étroite Route irrégulière Chemin d'exploitation Sentiers Rivière navigable -10m 7.5 m 4.5 m 28 m 28 m 17.5 m 13 m 7 m 4.5 m 4 m 4 m 2.5 m 1 m Rivière navig 6 m D c Dr X E r D c Dr X E r D c DrXE r De Dr X E r De Dr XE r D c DrXE r De Dr X r De Dr X E r De Dr X E r D e or X r De DxF r öe Dr XS r able De Dr X r Echelle 1:25 k 1:50 k 1:100 k 1:250 k 1:500 k l:lm T à lé é vrai grandeur Tableau 2.4: Tableau de comparaisons des signes conventionnels: D e et D r x E sont en mm

38 2.6. Placement des toponymes Ponctuel Par exemple, le nom d'un carrefour ou d'une ville est à disposition ponctuelle. Le placement est fonction de la place disponible. positions position3 position4 / " \ v # J \^y positions position 1 position2 Figure 2.1: Positions préférentielles 1. Le nom est placé le plus près possible de l'objet à désigner et de préférence, à droite dans le sens de lecture. 2. On évite la superposition des noms et des détails planimétriques au détriment de l'emplacement idéal suivant l'ordre préférentiel indiqué par la figure 2.1: positionl > position2 > position3 > position4 > position5 > position6 3. Quel que soit sa longueur, un toponyme en un seul mot ne doit pas être tronçonné pour être disposé sur plusieurs lignes mais on peut placer sur deux lignes les noms de lieux habités composés de plusieurs mots en faisant la coupure après le premier mot (article non compris) et avant le séparateur s'il existe. 4. Les noms des objets situés d'un seul coté par rapport à une rivière, une route, une voie ferrée, une frontière ou toute ligne planimétrique importante, seront inscrits du même coté Linéaire Le fait que nous sommes dans un cas linéaire et que la largeur du signe conventionnel des routes soit constante nous simplifie la tâche. Les noms de la route sont placés le long de la route en suivant l'orientation et le tracé de la route en faisant abstraction des petites sinuosités et en évitant qu'ils soient séparés de l'objet désigné. Direction: les noms sont placés de préférence au dessus de la ligne, à une distance à peu près égale à la moitié du corps ou un peu plus si le nom comporte des lettres descendantes;

39 34 Chapitre 2. La généralisation cartographique.a.s -* Je suis la coucou Je suis la * *& dû» %> * e **4t "»» suis la S V Figure 2.2: Les directions de placement de toponymes La disposition générale doit être telle que en regardant la carte de face, le Nord étant en haut, on puisse lire le nom, en tournant au besoin un peu la tête à gauche ou à droite, ce qui conduit aux sens d'écriture indiqués par la figure 2.2 On répète le nom autant de fois qu'il est nécessaire pour suivre le parcours de la route par un espacement définit, et sans ambiguïté en particulier après les carrefours, sauf s'il n'y a pas assez de place, et compte tenu éventuellement du pliage de la carte. En définitive, la stricte application des principes précédents n'est pas suffisante pour réaliser une bonne disposition car il faut, en plus, tenir compte de l'effet combiné de toutes les écritures et éviter les effets disgracieux résultant de groupements trop denses ou d'espaces vides ou d'apparition de figures géométriques attirant l'attention. 2.7 Un critère de résolution de problème Les éléments ou les informations ne sont pas au même niveau, on doit donc les traiter selon leur importance. Pour généraliser un réseau routier, il vaut mieux commencer par généraliser le point le plus délicat: les carrefours. On définit le carrefour élémentaire : un seul noeud auquel se rejoignent des arcs; voir la figure 6.21 de la page 122. carrefour complexe : au moins deux noeuds auxquels se rejoignent des arcs; c'est une suite de carrefours élémentaires qui sont proches l'un et l'autre selon le critère de lisibilité. Par exemple, sur la figure 1.1: SI est proche de S3, S4 est proche de SI. La méthodologie est de simplifier et décomposer le problème. Soit un carrefour complexe: Carf-c = (carf-ei, carf-e,..., carf-en)

40 2.7. Un critère de résolution de problème 35 dont les carf-et sont des carrefours élémentaires (avec un seul noeud) composant le Carf-c en raison des distances proches qui les séparent. On essaye de décomposer le problème en sous-problèmes moins complexes en traitant les carf-ei séparément: Généraliser[Carf-c(carf-ei, carf-eá,..., carf-en] décomposer _.,,., -.-, => Generauser[carf-eij +* Généraliser[carf-ei?] +*... +* Généraliser[carf-en] où : + s n'est pas à prendre au sens d'une réunion simple, mais d'une réunion Relative. Il faut combiner les généralisations de chaque carrefour: Généraliser[carf-ei],..., Généraliser[carf-e ] tout en respectant leur relations et leur structures internes et éventuellement externes avec leurs voisins non carrefours. Les sous-problèmes ne sont pas forcément toujours plus simples, donc on doit traiter en priorité les sous problèmes qui pourraient être plus complexes que le problème du départ. Par exemple, l'importance et la complexité d'un carrefour sont beaucoup plus grandes que celles d'un arc ou un axe tout seul. Pour généraliser un axe-routier Axel(arc/ arc2... aren) dont les arcs appartiennent à des carrefours carfi, carfs,..., carf» respectivement. On décompose d'abord le problème en sous-problèmes pour traiter les arcs respectivement. Généraliser[Axel(arci a.rc2... aren)] décomposerl _,,,..,,, ==> Generahser[arcjJ +* Généraliser[arc2] +*... =^> +* Généraliser[arcn] Généraliser[carfi(arcl)] +* Généraliser[carf2(arcl?)] +*... +* Généraliser[carf (arcn)] Par la participation d'un arc à un carrefour, le traitement de cet arc revient à traiter le carrefour correspondant. Donc on se trouve à une décomposition d'un problème en sur-problèmes. On pourrait dire que le processus de la G.G. est un ensemble de chaînes de décomposition en sous-problèmes et en même temps en sur-problèmes. Pour qu'on puisse exploiter les connaissances, le système doit savoir faire des requêtes à la demande. Pour la résolution de ces buts, on utilise des règles, leur rôle est de produire des nouvelles connaissances à partir de celles déjà fournies.

41 36 Chapitre 2. La généralisation cartographique Echelle initiale: 1: Ci-dessous les réductions a la façon photocopieuse r--marmande 1/ pmarmande 1/ / / Figure 2.3: Réduction de carte à la façon photocopieuse

42 2.7. Un critère de résolution de problème 37 Echelle initiale: 1/ Ci-dessous, les réductions sans generalisation ande 1/ amarmande sa 1/ / / Figure 2.4: La carte de la ville Marmande: les réductions en prenant les signes conventionnels correspondant sans généralisation

43 38 Chapitre 2. La généralisation cartographique

44 Partie II Outils Informatiques

45

46 Chapitre 3 Choix de modes de représentation des connaissances 3.1 Caractéristiques des systèmes experts Le problème de la généralisation est tellement complexe, dit Mackaness[2i], qu'une méthode basée sur des connaissances heuristiques serait peut être le seul moyen qui puisse résoudre quelques problèmes centraux dans un tel processus. On espère contourner cette difficulté partiellement en faisant appel à la méthodologie des systèmes-experts. Un cartographe humain est capable d'identifier les problèmes posés en une première étape, il dispose ensuite des méthodes pour les résoudre. Pour qu'un système imite un cartographe humain en identifiant et proposant une résolution au problème posé, il doit aussi, comme un cartographe, avoir des yeux pour identifier, un cerveau pour réfléchir, analyser et faire des décisions, et des mains pour réaliser ses buts. Il doit comme les humains, posséder: des connaissances en cartographie, une méthode pour structurer ces connaissances, la capacité d'exploiter les connaissances pour pouvoir prendre des décisions Composants de base d'un système expert Un système informatique intelligent comprend en général deux parties: une base de connaissances, et un programme qui opère sur la base. Plus précisément on peut dire qu'il est composé de trois éléments principaux: une base de faits, une base de connaissances, un moteur d'inférence. Les systèmes experts se différencient principalement: d'un point de vue externe, par le langage de représentation des connaissances qu'ils utilisent. La qualité de ce langage définit la puissance d'expression et la formation de situations complexes. 41

47 42 Chapitre 3. Choix de modes de représentation des connaissances d'un point de vue interne, par la démarche deductive qu'ils propose. Cette démarche englobe les particularités, les stratégies de contrôle et les modes de raisonnement du moteur d'inférence. Il est clair que le langage et le moteur sont interdépendants. Suivant le mode de représentation des connaissances choisi, et la logique du moteur d'inférences, un fait élémentaire peut être: un nom symbolique Ex: intersecter (formule atomique du calcul des propositions) Ex. (une Routel intersecte la Route2) un quadruplet < objet attribut comparateur valeur > (formule atomique du calcul des propositions avec variables globales) ou (formule atomique du calcul des prédicats sans variable) Ex: (Routel est de largeur > 7m); un couple < prédicat variables > (formule atomique du calcul des prédicats) Ex: (Intersecter îroutel?route2) Le raisonnement des systèmes experts est soit basé sur la logique des propositions, soit sur la logique des prédicats: on parle alors respectivement de système sans variables (d'ordre 0), et de système avec variables (d'ordre 1). Dans l'idéal, un tel système doit être facile à comprendre et à utiliser, et suffisamment souple pour pouvoir être adapté à des domaines divers. En résumé, les différents éléments d'un système expert sont les suivants: La base de faits : Elle contient à tout moment des connaissances assertionnelles: la collection des informations, touchant le cas particulier traité, données par l'utilisateur ou obtenues par le système. C'est la mémoire de travail du système expert; temporaire, elle est modifiée au fur et à mesure de la progression du raisonnement, et éventuellement vidée lorsqu'une consultation se termine. La base de connaissances : Elle rassemble la connaissance et le savoir-faire du spécialiste dans son domaine: description des objets et de leurs relations, cas particuliers, points de vue divers sur un même problème, stratégies de résolution et conditions d'application. Deux sortes de connaissances sont distinguées dans la section 3.2. Le formalisme le plus communément répandu pour représenter la base de connaissances est celui des règles de production. On l'appelle alors base de règles. Les détails sont dans la section 3.3. Notre système est basé principalement sur les règles de production. Le moteur d'inférence : C'est un programme qui met en oeuvre des mécanismes généraux d'interprétation des connaissances d'un domaine particulier. Généralement, l'action du moteur provoque des modifications de la base de faits et dans certains cas de la base de règles. Un moteur d'inférences est surtout caractérisé par la façon dont il utilise les connaissances.

48 3.1. Caractéristiques des systèmes experts 43 Le mode d'inférence : On distingue principalement deux sorte de stratégies de raisonnement: chaînage avant et chaînage arrière. chaînage avant: raisonnement deduct if : Dans ce mode, ie moteur essaye d'obtenir tous les faits déductibles à partir des règles dont les conditions d'application sont vérifiées par les éléments de la base de faits. Chaque fois qu'une règle est déclenchée, le moteur utilise les nouveaux faits obtenus pour activer d'autres règles. Il s'arrête lorsqu'un but est atteint ou lorsqu'aucun fait ne peut plus être déduit. On utilise le chaînage avant lorsqu'on n'a pas une idée précise sur l'objectif à atteindre. Ainsi, cette démarche convient à notre problème de généralisation cartographique où à partir d'un ensemble de "faits" (les données initiales concernant la carte d'échelle initiale), on déduit tous les "faits" finaux (les données finales d'échelle finale de la carte souhaitée). Dans cette optique, le système "sature" sa base de connaissances; il s'arrête lorsque plus rien ne peut être déduit. chaînage arrière : Dans ce mode, le moteur cherche à atteindre un ou plusieurs buts considérés comme des hypothèses ou des problèmes à résoudre. Pour cela, il essaye d'appliquer les règles qui "concluent sur ces buts". Lorsque l'on a un but précis à atteindre, le chaînage arrière s'avère judicieux. Un cartographe qui veut savoir si un carrefour est éliminable, va mettre le système expert en chaînage arrière. chaînage mixte : Dans ce mode, il y a mélange des deux types de raisonnements décrits ci-dessus. Le chaînage avant peut appeler le chaînage arrière lorsque certains faits n'ont pas pu être déduits, ou au contraire, appel du chaînage avant par le chaînage arrière lors d'une résolution. Ce deuxième cas est très fréquent, et permet, lors de la vérification d'un but, de déduire des informations supplémentaire. Fonctionnement du moteur d'inférence : La stratégie de raisonnement d'un MI comporte trois phases consécutives: * détection des règles intéressantes. sélection de la règle à appliquer; déclenchement de la règle retenue. Selon le mode d'interprétation (avant ou arrière), ces phases n'auront pas les mêmes actions. La puissance d'un système expert dépend principalement de la qualité de ses déductions et de la valeur des informations qu'il possède sur le domaine traité (son "expertise"). La puissance deductive est localisée dans le "moteur d'inférence" dont les techniques sont généralement bien maîtrisées. Par contre, on connaît fort peu de choses sur la constitution de bonnes bases de connaissances. C'est un art délicat connu sous le nom d'ingénierie de la connaissance; elle nécessite d'être structurée et organisée pour être exploitée. Cette acquisition des connaissances reste une tâche

49 44 Chapitre 3. Choix de modes de représentation des connaissances longue et difficile. La base de connaissances dépend du domaine d'application. Généralement, au cours d'une consultation, les connaissances du domaine traité ne varient pas. Ainsi, la base de connaissances est fixe, elle reste inchangée au cours d'une exécution, et intéresse au premier chef le spécialiste du domaine puisqu'il a pour mission de la construire. Par contre, la base de faits est liée au cas particulier envisagé, elle correspond à la description du problème traité et évolue au cours du traitement et de la consultation Notre système, en résumé Notre système essentiel comprend: voir la figure 1.2 Un système expert: un système de représentation de connaissances à base d'objets. un moteur d'inférence avec variables, en chaînage avant, non monotone. une interface entre le système et l'utilisateur par l'interprète Lisp.»> un module de traduction des données en code PostScript. Dans notre exemple de la généralisation cartographique, pour deux cartes à généraliser nous aurons la même base de règles, mais deux bases de faits différentes qui correspondent aux deux états géographiques et cartographiques. Souvent un cartographe procède, pour établir un processus de généralisation, par alternance entre l'évocation et la confirmation. En fonction des informations sous ses yeux, il évoque des actions possibles, puis par recherche du meilleur compromis entre la clarté, la fiabilité et l'esthétique, il cherche à infirmer ou à confirmer ses actions, ou à changer d'avis en prenant de meilleures décisions. Il peut donc déduire de nouvelles actions, ou au contraire éliminer les actions qu'il avait envisagées. En bref, un expert humain acquiert ou augmente sa connaissance en travaillant. Si les ensembles "base de faits" et "base de connaissances" sont distincts, les unités de connaissances qui constituent la base de faits et ceux qui apparaissent dans les éléments de la base de connaissances sont conceptuellement les mêmes. Dans notre exemple sur la généralisation cartographique, ces unités, appelées "faits", pourraient être:» l'échelle; le but de la carte; les éléments géographiques: les maisons, les routes, etc. les interprétations graphiques; les signes conventionnelles; Une des tâches délicates lors de la conception d'un système expert est la détermination d'un formalisme adéquat pour représenter ces unités de connaissances. Les

50 3.2. Difficulté de concevoir la connaissance 45 domaines d'application privilégiés du système, ainsi que ses performances et ses possibilités déductives, sont directement reliés au choix de représentation des connaissances. Pour cette raison, la section suivante est consacrée aux principaux formalismes utilisés. Avec les systèmes experts, on a réalisé de bons simulateurs du raisonnement humain. Ils ont montré toute l'importance de la connaissance humaine indispensable à un programme pour obtenir un embryon de raisonnement. Avec eux, d'importants travaux de recherche ont pris naissance, et se sont naturellement orientés vers les problèmes de représentation des connaissances en mémoire. Le grand nombre de formalismes différents existants aujourd'hui montre toute l'importance qu'attachent les chercheurs à définir la structure "idéale" pour modéliser la connaissance des experts. Des progrès réalisés dans ce domaine dépend de l'avenir des systèmes experts. 3.2 Difficulté de concevoir la connaissance Pour résoudre un problème, un être humain raisonne sur des concepts abstraits qui modélisent les entités de l'univers du problème et qu'il interprète ensuite dans cet univers. L'expert humain acquiert et augmente sa connaissance au cours de son travail en percevant de l'information: selon quels mécanismes cette information se structure t-elle et s'organise-t-elle, sans effort de sa part, en connaissances? Faire reproduire le comportement du raisonnement humain par un programme suppose d'abord une étape d'abstraction, qui consiste à établir les spécifications des concepts devant être représentés. Ces spécifications sont ensuite traduites en expressions symboliques d'un langage de représentation pour former une base de connaissances qui peut être comme un modèle de l'univers du problème. Le concepteur d'une base de connaissances doit donc d'abord déterminer quelle est la connaissance à représenter, puis se demander comment l'organiser, comment l'exprimer et quelles contraintes lui imposer pour qu'elle soit en accord avec l'univers modélisé. Si un concept représente une entité, une action ou un état faisant partie d'un certain univers, on peut le décrire de deux manières différentes [16], [15]: en extension, par enumeration de tous les individus, ou referents, qui sont représentés par le concept, Si Vc représente le concept de voies de communication, Vf le concept de voies ferrées, et Vr celui de voies routières, l'extension de Vc contient celle de Vf et celle de Vr: l'énumération de toutes les voies de communication contient l'union de l'énumération de toutes les voies ferrées et de celle des voies routières.» en intension, par enumeration des propriétés communes à tous les individus représentés par le concept. A l'inverse de la manière précédente: l'intension de Vc est contenue dans celle de Vf et celle de Vr: les voies ferrées et les voies routières possèdent l'union des caractéristiques des voies de communication et de celles qui sont propres aux voies ferrées et aux voies routières respectivement. C'est par Y intension qu'est décrit un objet dans les langages de classe (section 4.3). Généralement, un concept n'est pas isolé mais en relation avec d'autres concepts. Il existe deux modèles de concept:

51 46 Chapitre 3. Choix de modes de représentation des connaissances Variable forme dimension valeur orientation couleur rectangle 5 mm 2 A noir: 1 A vers le haut noir carré 4mm 2 4 à gauche bleu exemples cercle 3mm 2 triangle 2mm 2 Es HiË j^b Silk w&m ^^ gris: (0,1) T vers le bas vert à droite rouge étoile 1mm 2 jaune losange 0.5mm 2 A D O blanc: 0 marron Tableau 3.1: Les variables de la cartographie modèle relationnel, qui privilégie les relations: un concept n'existe que par l'ensemble des relations dans lesquelles il intervient; la base de donnée HBDS en est un exemple[3]. modèle structurel: qui met l'accent sur l'objet, représentation d'un concept et de ses propriétés: la connaissance disponible sur un concept est regroupée au sein d'une même entité. Les objets de la vie courante n'obéissent pas à des lois aussi rigoureuses que les objets mathématiques par exemple. Intégrer leurs différentes natures dans un formalisme de représentation pose de nombreux problèmes difficiles à résoudre. Le transfert de la connaissance du spécialiste vers le programme, pour une application particulière, est une tâche longue et difficile qui constitue un véritable obstacle au développement des systèmes experts. Elle nécessite une étroite collaboration entre deux corps de métiers parfois très éloignés: le domaine d'expertise et l'informatique. Pour que l'opération soit concluante, les personnes engagées dans le projet doivent faire preuve d'une grande ouverture d'esprit. Il est difficile, voire impossible, de représenter toute la connaissance d'un domaine dans un formalisme unique. Prenons deux propositions très communes des cartographes: une route est une voie de communication. il faut que es représentations graphiques des objets soient claires et efficaces. On perçoit intuitivement qu'elles ne sont pas de même nature. L'une décrit un objet et le situe dans un groupe, qui n'est autre qu'un objet plus abstrait. L'autre décrit un caractère général du travail qui permet de définir des critères et des hypothèses pour garantir une résolution efficace du problème. Nous dirons que la première est une connaissance conceptuelle, la seconde une méthode ou une connaissance experte ou encore heuristique. En effet, il existe deux groupes de connaissances:

52 3.2. Difficulté de concevoir la connaissance 47 conceptuelles : elles sont souvent bien définies et peuvent généralement être bien structurées et bien représentées par un réseau sémantique, un réseau de schémas, etc. Par exemple: Pour représenter graphiquement un phénomène concret ou abstrait localisé en un point de la surface terrestre, le cartographe dispose [1]: en premier lieu, des deux dimensions du plan, en second lieu et pour différencier les images, des variations de forme, dimension, valeur, orientation, couleur. Ces cinq composantes constituent les variables visuelles cartographiques (voir le tableau 3.1), elles permettent d'établir: une relation d'équivalence permettant de discerner par la perception visuelle la famille des éléments appartenant à une même classe d'équivalence et éventuellement, de les isoler des autres éléments pour les grouper en une image globale unique faisant abstraction de tous les autres signes, une relation d'ordre qui permet de différencier les familles de catégories différentes et de les classer dans un ordre qui s'impose naturellement et sans ambiguïté. Cet ordre peut être intuitif: ceci est plus grand, ou plus important, que cela, mais il peut aussi exprimer spontanément un rapport numérique approximatif: ceci est environ le triple de cela. une autoroute est une voie rapide de communication de transport, à double sens, avec un séparateur central; elles joue un rôle important pour les cartes topographiques, donc elle doit être représentée de couleur vive; par convention, elle est représentée par un trait au milieu et deux traits au bords séparés par deux espaces de couleur rouges sur des cartes à échelle moins de 1: , et par deux traits séparés par un espace de couleur rouge à partir de l'échelle 1: Deux routes non collées devraient être séparées par un espace de telle sorte que l'oeil humain puisse les distinguer. Ce type de connaissance est partagée par les experts du domaine et figure dans les manuels, revues spécialisées, etc. heuristiques : un groupe des connaissances touchant aux principes de cheminement du raisonnement, aux prises de décision, aux stratégies de résolution, aux démarches diagnostiques de l'expert, empiriques par nature, acquises par l'expert au cours de ses années de travail. Ce type de connaissance est bien sûr la plus difficile à saisir, du fait que les experts eux-mêmes éprouvent de grandes difficultés à la cerner. Par exemple: un toponyme doit être placé le plus près de l'objet à désigner, mais à quel degré de proximité? pour les règles de sélection des objets facultatifs, la section a défini une formule de sélection quantitative des éléments à maintenir sur la carte finale, mais en laissant toute la liberté de conserver tel objet plutôt que tel autre, et face à un grand nombre des éléments, une grande diversité de

53 48 Chapitre 3. Choix de modes de représentation des connaissances décisions seraient prises par des cartographes de personnalités, de formations, d'expériences différentes. Intégrer leurs différentes natures dans un formalisme de représentation pose donc de nombreux problèmes difficiles à résoudre: Les modalités: toutes les informations n'ont pas le même statut. Elles sont intangibles ou modifiables, certaines ou incertaines, valides ou périmées. Par exemple, dans la généralisation cartographique: le nom de toponymie doit être placé le plus près possible de l'objet à désigner, m Certains cartographes pensent qu'il ne faut pas trop charger la carie. Le nom d'un toponyme sera placé dans des positions différentes, et la densité d'une carte est donc variable selon les différents cartographes. Le type de propriété et le partage de propriété: une connaissance comme une autoroute constitue un phénomène essentiel n'a pas de valeur universelle. Elle exprime le fait qu'en général une autoroute est un phénomène essentiel à l'échelon national ou international, bien qu'elle n'ait pas beaucoup plus d'importance dans le cadre de la commune qu'elle traverse que le moindre chemin d'exploitation. Il faut donc attribuer aux divers éléments des valeurs qui dépendent de l'échelle spatiale représentée et dont la généralisation tient compte. Une famille d'objets possède globalement des propriétés spécifiques, qui peuvent être différentes, voire en contradiction, avec les propriétés particulières à un objet de la famille. Par conséquent, il est toujours difficile, sinon impossible, d'établir des conditions nécessaires et suffisantes d'appartenance d'un objet du monde réel à une classe. Les connaissances imcomplètes: la connaissance disponible sur un objet est la plupart du temps incomplète, parce qu'elle est implicite et donc généralement oubliée dans la représentation, ou encore difficile à transmettre. L'évolutivité: les connaissances changent au fur à mesure que l'univers dans lequel elles sont utilisées se modifie. Des informations sont créées, modifées ou détruites. Certaines d'entre elles étant en relation, la mise à jour des informations périmées doit être assurée. Par exemple, si Véchelle change, les tailles des symboles doivent être changées de telle façon qu'ils soient lisibles. D'autres informations changent de type, quand ce n'est pas le type lui-même qui se transforme: par exemple: on distingue une douzaine de classes de routes et chemins sur la carte de France à 1/ et quatre seulement sur la carte à 1/ où les routes principales (classement qualitatif) sont regroupées dans un signe unique; les routes de plus de 7 m et de moins de 7 m (classement quantitatif) sont différenciées aux échelles plus grandes. Dans ce cas, il faut prévoir le réajustement des objets préexistants afin que l'univers conserve sa cohérence.

54 3.3. Quelques modes de représentation des connaissances 49 Donc, la mission de la construction de la base de connaissances est la suivante: identifier les concepts clés du domaine et les différentes relations qui les lient. dégager les structures logiques du raisonnement, et apprécier l'opportunité d'utiliser ou non un raisonnement flou. t» déterminer les meilleures façons de représenter et de traiter les concepts dégagés (définir le langage d'expression). * écrire dans le langage défini toute la connaissance utile de l'expert. exhiber une séries d'exemples typiques du domaine (ni trop simples, ni trop compliqués) permettant de valider les étapes précédentes. 3.3 Quelques modes de représentation des connaissances La qualité de la représentation des connaissances est déterminante pour la performance d'un Système Expert. Pour réaliser une bonne représentation des connaissances dans un système expert, il faut prendre en compte les points suivants: extensibilité : les modèles envisagés doivent être souples pour permettre une modification aisée du système; simplicité : les concepts retenus ne doivent pas être trop complexes, de manière à ce que l'expert non informaticien puisse aisément transmettre son savoir au système; caractère explicite : la connaissance doit être explicite, c'est le facteur important dans la recherche des erreurs et la justification du système. Il existe de nombreux formalismes de représentation des connaissances. L'idée principale de la méthodologie est que les connaissances doivent être stockées de manière très accessible pour disposer de nombreux points d'entrée, mais aussi afin d'utiliser ces connaissances pour faire à la fois de la vérification et de la génération des solutions demandées. Les connaissances doivent être structurées, prototypées, testées, évaluées, elles doivent aussi être adaptées pour les applications et les algorithmes existants qui sont assez souvent dépendants des types de données. Il existe principalement les modes de représentations suivantes: les représentations procédurales classiques dans la programmation classique avec des structures de données classiques. les représentations à base de règles telles que la programmation logique et les règles de production. Les systèmes de règles de productions sont issus des travaux sur les grammaires formelles et les règles de réécriture; les exemples sont les langages à base de règles et les moteurs d'inférences, tels que OPS et ses variantes. Ils sont utilisés pour représenter des connaissances déductives.

55 50 Chapitre 3. Choix de modes de représentation des connaissances les représentations orientées objets: dans un sens très large, les réseaux sémantiques, les objets, les acteurs, les frames et les représentations hybrides sont dans cette catégorie. Il s'agit d'un ensemble d'informations structurées comportant à la fois des codes, et à la fois des méthodes d'accès et de manipulation des données; on dispose de nombreux mécanismes de propagation et d'héritages de propriétés. Les langages orientés objets actuels tentent une synthèse entre les structures des frames, les mécanismes d'héritages des réseaux sémantiques, et les techniques de contrôle par transmission de messages. Smalltalk en est le pionnier. Deux points communs à toutes ces représentations de la connaissance en IA sont l'accès associatif et le non-déterminisme. accès associatif, on a accès à des connaissances non pas par leur adresse en mémoire, mais par des traits, des caractéristiques de leur contenu, c'est à dire par filtrage ou unification. non-de'terminisme: il est lié au caractère déclaratif des connaissances, c'est-àdire à la possibilité de les fournir sans être contraint de prévoir explicitement tous leurs agencements et toutes leurs utilisations possibles. Il est difficile de représenter dans un formalisme objet des connaissances qui se traduisent plus naturellement en formules logiques ou encore en règles de production. Plutôt que de rester prisonnier d'un formalisme unique, il est commode d'en faire coexister plusieurs dans un même système. Dans les paragraphes suivants et dans le chapitre 4, on va essayer d'analyser les caractéristiques de ces différents modes existants, et montre les intérêts d'adopter finalement le mode hybride pour représenter les connaissances géographiques et cartographiques de façon procédurale, par règles, et par objets; c'est-à-dire: raisonner et déduire des connaissances avec des règles, représenter des règles et des objets réels par des objets compacts qui sont dotés des algorithmes, des procédures classiques, et des méthodes d'accès et de manipulation. 3.4 Procédural ou déclaratif? Un système est procédural s'il sait quelle connaissance il utilise, et comment les utiliser, c'est à dire trouver les faits pertinents et ensuite réaliser des bonnes inferences. Un programme du type procédural considère que les données à manipuler sont liées directement à leurs mécanisme d'interprétation; les systèmes procéduraux ayant comme principal souci de suivre une ligne naturelle dans le raisonnement. Lorsque le processus intellectuel, par lequel un humain évalue une situation ou prend une décision, est précisément modélisé (il n'en reste plus de choix non défini), il est relativement aisé de le programmer par un processus procédural, par exemple calculer la perpendiculaire à une droite passant par un point donné, chercher tous les points dans un cercle d'un diamètre défini autour d'un point donné. C'est aussi le cas, par exemple, dans des domaines tels que la comptabilité, le calcul scientifique ou la commande de machines-outils. Dans certains domaines importants d'application, tels que le diagnostic médical, l'orientation scolaire, la justice, la généralisation cartographique qui nous concerne ici,

56 3.4. Procédural ou déclaratif? 51 il est largement fait appel à des connaissances éparses, parcellaires, souvent d'origine expérimentale ou heuristique. Dans la généralisation cartographique, comme dans bon nombre d'activités intellectuelles qualifiées, relevant tant des sciences de l'ingénieur que des sciences humaines, des sciences sociales ou des sciences de la vie, le savoirfaire des experts humains n'est pas suffisamment structuré pour que l'on dispose d'algorithmes représentatifs de ces activités. Dans ces domaines, le savoir-faire des spécialistes semble alors plutôt représentable comme un ensemble d'unités de travail, chacune étant appropriée pour une classe de situations éventuelles. Plusieurs unités peuvent avoir trait à la même classe de situations. Chaque unité, appelée règle, décrit une étape possible du raisonnement des spécialistes dans le domaine considéré. Dans ces domaines il est important de pouvoir aisément compléter, réviser l'ensemble des unités de savoir-faire. Ceci amène à les considérer comme un type particulier de données qui seront exploitées par un programme relativement général comme un moteur d'inference ou une machine deductive. Une représentation où les connaissances sont considérées comme des données manipulées par un interprète général, comme dans les systèmes à règles de production, est dite déclarative. Dans ce cas, les connaissances n'ont pas un caractère opératoire et il n'est fait aucune hypothèse sur la façon de les utiliser. A l'inverse des premiers systèmes déclaratifs qui pour obtenir un résultat faisaient une recherche "aveugle" sans stratégie efficace, les systèmes procéduraux, dont les procédures sont désignées chacune par un nom et s'appellent naturellement par l'intermédiaire de leurs nom, dirigeaient exactement le contrôle en éliminant toute tentative inutile. Seulement en contre-partie, la complexité pouvait devenir importante, rendant toute modification délicate. Des connaissances procédurales ont un caractère opératoire et leur pertinence ne peut être jugée qu'après exécution du programme qui les manipule. A l'inverse, la pertinence des connaissances peut être discutée a priori. La rédaction déclarative des règles dans les systèmes experts permet, en principe, de rédiger chaque règle (unité de savoir-faire) en ignorant l'existence effective des autres. On présume seulement que chaque règle introduite dans la base de connaissances comporte, quel que soit son auteur, des expressions de conditions qui permettront d'évaluer si la règle est applicable et donc, éventuellement, de l'appeler. On présume aussi que les faits introduits comme effets d'une règle peuvent contribuer à appeler d'autres règles. Le grand avantage d'une rédaction déclarative des règles est de permettre d'ajouter et de supprimer aisément des règles sans être obligé d'étudier les conséquences des ajouts et des suppressions; elle confère aux systèmes experts une meilleur modularité. Il est très délicat de déterminer quel formalisme, déclaratif ou procédural, est le mieux adapté à la représentation des connaissances spécifiques d'un problème tel que la généralisation cartographique. Ce genre de comparaison fut à l'origine d'une polémique célèbre appelée controverse déclaratif-procédural. Elle a eu le mérite de faire progresser les travaux sur la représentation des connaissances en mettant en évidence les insuffisances et la complémentarité de chacune des méthodes. La controverse a finalement abouti à l'élaboration des langages de frames et des langages hybrides. Notre point de vue est de bénéficier conjointement des avantages de chacun; tant qu'un processus est bien précis, on adopte la méthode procédurale. Par exemple, les calculs formels, des recherches des informations sur un objet structuré, tel que "quels sont les voisins d'une route". Tandis que pour les décisions délicates nécessitant des

57 52 Chapitre 3. Choix de modes de représentation des connaissances confirmations et susceptibles d'être changées à un instant ou l'autre, tel que "une route doit être déplacée ou éliminée en cas de discussion de son avenir", on préférera prendre la méthode déclarative. C'est à dire que les décisions à prendre sont obtenues de façon déclarative, alors que les actions des décisions, une fois prises, sont exécutées procéduralement, l'action de suppression d'une route est vite faite par la suppression de son nom de la liste de toutes les routes vivantes. 3.5 Raisonner logiquement Etre logique avec soi-même, la logique est d'abord une science du discours cohérent, c'est à dire qu'elle considère moins le contenu des propositions que les conditions de leur enchaînement. La logique classique joue un rôle majeur en représentation des connaissances, même si, historiquement, elle a plutôt été conçue pour modéliser le raisonnement. Son formalisme est dépourvu d'ambiguïté et permet de décrire des situations du monde réel par des formules concises. La logique est caractérisée : d'une part, par un langage formé des assertions que l'on peut exprimer (les formules ou propositions du système logique formel), et d'autre part, par les lois régissant les entités manipulées, à savoir les règles déductives. son langage: un ensemble de formules; les règles de formation des formules, spécifient la manière de construire des expressions correctes du langage. Les formules sont construites à partir des atomes à l'aide des connecteurs (A: "et", V: "ou", -i: "non", =>: "implique", J_: "faux") et des quantificateurs pour la logique des prédicats (V: quantificateur universel quelque soit, 3: quantificateur existentiel il existe). son système d'inférence: un moyen de former des jugements et de déduire des jugements à partir d'autres jugements. Il existe plusieurs système d'inférence dont les systèmes de déduction naturelle NK pour la logique classique, NJ pour la logique intuitionniste, NM pour la logique minimale[18]. En déduction naturelle, un jugement est une formule. sa sémantique: (notion de modèle, d'interprétation) qui traite du sens attribué à ces expressions selon ce que l'on appelle des interprétations: la sémantique régit la manière de comprendre les expressions du langage en vue d'applications déterminées. Deux sortes de logiques sont distinguées selon leur langage: la logique des propositions et la logique des prédicats. Les formules du calcul des propositions ne prennent que les valeur booléennes vrai ou faux dans une interprétation (modèle, monde) donnée sans variable. Par exemple: 1. La terre est ronde. 2. Les chinois sont les plus nombreux sur la terre. 3. Une carte est plate. La première proposition prendra toujours la valeur vrai; la seconde prendra pour l'instant la valeur vrai, et peut-être dans 20 ans, quand les Indiens auront réussi à

58 3.5. Raisonner logiquement 53 rattraper les Chinois, elle prendra la valeur faux; la troisième est fausse dans une interprétation où il existe des cartes en relief. Par rapport à la logique des propositions, la logique des prédicats du premier ordre introduit deux notions importantes qui sont les variables et les quantificateurs. Les formules sont construites à partir des atomes (qui expriment des relations entre termes) à l'aides de connecteurs et de quantificateurs: V (universel) et 3 (existentiel) Règles d'inférence en logique Une règle d'inférence en logique est la représentation d'un procédé pour, à partir d'un ou plusieurs faits (formules), dériver d'autres faits. Par exemple: la règle d'inférence appelée modus ponens, à partir de deux faits respectivement de la forme A et A B, déduit le fait B, représenté par: A A-+ B B Elle permet à partir d'assertions connues (vraies ou fausses) d'en déduire de nouvelles qui en dépendent. Le modus ponens est à la base de presque tous les systèmes experts avec un moteur d'inférence fonctionnant en chaînage avant. Tandis que les systèmes avec un chaînage arrière lisent le modus ponens à l'envers: pour établir B, si A =» B est vrai, alors établir A. On a aussi des règles pour la conjonction: A B A A B A A B A A B A B pour le calcul des prédicats, il existe des règles permettant de raisonner sur les quantificateurs[18, pages 123]: A W r V ' VxA(x) F V ' WxA ( x ) A(t) où I signifie Introduction, E Elimination. La spécialisation universelle Ey est une règle d'inférence principale pour rendre compte d'un raisonnement en logique des prédicats. Elle consiste à substituer chaque occurrence de la variable x dite libre de J4(Z)[18] dans une formule Vx>l(x) par un terme, soit t, on déduit le fait A(t). Ainsi est éliminé V (quelque soit). une autre règle d'inférence peu utilisée est la règle d'inférence appelée modus toliens, à partir de deux faits respectivement de la forme -> B et A B, déduit le fait -i A. -.g A B - A

59 54 Chapitre 3. Choix de modes de représentation des connaissances La logique des prédicats Le calcul propositionnel n'est pas suffisant pour représenter des connaissances complexes. Dès lors, on a recours à un système logique plus puissant: la logique des prédicats, qui permet d'exprimer des connaissances complexes avec rigueur. Elle permet d'exprimer des formules dont la valeur de vérité dépend de paramètres. Par conséquent, elle permet de particulariser ou de généraliser des objets. Un prédicat est une entité à laquelle on peut appliquer un ou plusieurs arguments, qui retourne une valeur booléenne fonction de la valeur de ces arguments. Soit le prédicat Grand dans Grand(x) qui appliqué à la Chine donnera la valeur vrai, et avec la France prendra la valeur faux, dans l'interprétation chinoise. Par rapport à la logique des propositions, la logique des prédicats introduit les variables et les quantificateurs, ce qui la rend capable de représenter et d'exploiter davantage de connaissances. Une variable est un objet auquel on peut substituer n'importe quel élément constant. Par exemple, pour définir le prédicat intersecter entre deux routes, on écrira: Intersecter(?x,?y) indiquant que "?x" et "?y" s'intersectent (?x, et?y étant pris ici en tant que variables). En pratique les formules bien formées du type: V?x {A(?x) = B{lx)) (3.1) serviront à exprimer des significations: par exemple, on a: V?R (Navigable(?R) => Voie-de-communication(?R)) est équivalent à la phase Toutes les voies navigables sont des voies de communications. Alors que l'énoncé: // y une rivière traversant Paris s'exprime par: 3?R (Rivière(?R) A Traverser-Paris(?R)) Il n'est pas toujours facile de représenter par une formule une connaissance exprimée en langage naturel comme dans l'exemple précédent. Par exemple: Si deux tronçons sont de la même route, alors ils ont les mêmes propriétés: on peut proposer Pro, et MemeRoute comme prédicat: VPro, TL T 2 (MemeRoute(T 1) T 2 )=> (Pro(T!) «> Pro(T 2 ))) (3.2) Mais cette expression n'est pas du premier ordre car il y a une quantification sur un prédicat Pro. La principale règle d'inférence, utilisée pour rendre compte d'un raisonnement en logique des prédicats, est la spécialisation universelle qui consiste à substituer dans une formule une variable quantifiée universellement par un terme (instanciation de variables), une variable ou une constante. Cette règle est aussi nommée l'élimination du V. La logique, en I.A., s'attache à l'utilisation de la connaissance, et non à sa représentation. Elle trouve tout son intérêt dans une représentation de connaissances déclarative, en particulier pour les règles de production. Une règle de production est la représentation d'un procédé pour, à partir des formules de connaissances (de type tel que l'expression 3.1), déduire d'autres connaissances. On espère obtenir une connaissance proposée à priori en partant d'un

60 3.5. Raisonner logiquement 55 ensemble fixe de règles d'inférence par application de ces règles un nombre fini de fois. A l'heure actuelle, les règles de production connaissent un réel succès en tant que moyen de représentation des connaissances dans les systèmes experts. Les règles de production ne sont qu'une représentation superficielle d'un phénomène plus profond, elles ne cherchent pas à le comprendre mais à le simuler simplement, il faut que leurs bases soient déjà dotées de mécanismes plus ou moins riches. Notre position est donc de n'utiliser les règles de production qu'en dernier ressort, lorsque les autres représentations sont inadéquates. De plus en plus de programmes appliquent à un système de production des données complexes: schémas, réseaux sémantiques, objets, etc.

61 Chapitre 4 Les langages orientés objets La complexité et la taille des projets, comme la généralisation cartographique, aussi bien en moyen humain qu'en matériel, nécessitent des outils de programmation nombreux et perfectionnés pour faciliter la mise en oeuvre et mener les applications à leur terme dans les meilleures conditions. Il est souhaitable que la plus grande part possible du travail soit pris en charge par la machine, afin que les programmes soient faciles à tester, à améliorer, à réutiliser et à maintenir. Ces objectifs sont encore loin d'être atteints à cause de contraintes techniques diverses. La taille des programmes et les problèmes de maintenance ont mis en évidence la nécessité de promouvoir l'abstraction et la réutilisabilité des logiciels. On s'est déjà posé la question: comment sont structurées les connaissances qu'un humain a acquis au cours de ses activités. Les psychologues ont montré que les êtres humains ont tendance à identifier une famille d'objets et à mener des raisonnements sur ses membres en faisant référence à un objet précis, typique de la famille. En partant d'idée que la mémoire humaine dispose de structures d'information bien organisées dont le déclenchement est lié à certaines situations, les chercheurs ont introduit les notions voisines de schéma, frame, prototype, objet structuré pour définir des structures algorithmiques complexes de traitement de sens en comparant avec le mode de fonctionnement du raisonnement humain. La programmation orientée objets est plus un style de programmation qu'un ensemble de langages. Les objets, ou schémas sont la transposition informatique de la vie réelle: par exemple, sur la figure 4.1 décrit un objet d'une route avec son nom, son cod«administratif, sa largeur, sa liste de noeuds, sa liste d'arcs, ses voisins routes, son type de voies, son signe graphique conventionnel, ses noeuds de croisements importants et les connaissances associées (les procédures: comment se changent ses signes conventionnels selon l'échelle, comment déterminer ses voisins actuels, etc). Les langages à objets ont brisé la dichotomie classique entre données et programmes. On y groupe ensemble les connaissances liées à un même concept de la même manière qu'une recette de cuisine comprend la liste des ingrédients et méthodes de préparation. Ce style de programmation rend les logiciels extensibles et facilement réutilisables. Un programme n'a pas besoin de savoir de quel type est un objet et quelle est sa représentation interne. Il l'utilise en connaissant simplement ses fonctionnalités. Les 56

62 57 (Voie routière] fnomj fcodej farcsj fpoints^ MargeurJ Í voisins J ftype-vj fsigne-gj Figure 4.1: Les champs de l'objet de voie routière objets sont des boites noires utilisables dans des contextes divers. Certains n'hésitent pas à les comparer avec des composants électroniques, à des puces. Les systèmes classiques sont constitués de données et de procédures traitants ces données. Dans les langages orientés objets, il n'existe plus qu'un type de donnée: OBJET. Un schéma se définit comme une structure de donnée idéale, ou prototype, servant de modèle avec d'autres objets à analyser. Un objet particulier est une instance du prototype réalisé. Un objet représente à la fois un savoir déclaratif et un savoir procédural: savoir déclaratif, base de données locale: les variables ou champs. savoir procédural: programme: les méthodes, les procédures de chaque objet. Un logiciel est alors une collection d'objets différents. La connaissance (données et programmes) est distribuée entre chacune de ces entités. La programmation objet amène à structurer l'univers d'une application en terme d'objets plutôt qu'en terme de procédures. Trois grandes familles en ajoutant le pionnier les réseaux sémantiques apparaissent naturellement, chacun privilégiant un point de vue sur la notion d'objet. * Les réseaux sémantiques sont les premiers systèmes à héritages ayant été utilisés en représentation des connaissances. Ils ont eu une influence primordiale sur tous les langages de représentation à base d'objets, en particulier sur les langages à frames. langage à classes: la classe est un type de données, qui définit un modèle pour la structure de ses représentants physiques et un ensemble d'opérations applicable à cette structure. langage à frames: le frame est une entité de connaissance représentant le prototype d'un concept, les autres objets ressemblant à ce prototype prennent référence sur lui. C'est la catégorie du langage de frame. langage à acteurs: l'acteur est une entité autonome et active, qui se reproduit par copie, il privilégie la notion de comportement individuel. De nombreux langages intègrent des caractéristiques empruntées à une et à l'autre. Ils constituent une 5ieme famille, appelés langages hybrides.

63 58 Chapitre 4. Les langages orientés objets 4.1 Les réseaux sémantiques Un réseau sémantique est un ensemble de noeuds typés appelés concepts représentant les concepts de l'univers de référence, reliés par des arcs orientés étiquetés exprimant les relations qui peuvent exister entre ces noeuds. Les concepts peuvent être des entités, des individus, des situations, etc. Un ensemble d'opérations associé au réseau permet de l'exploiter: création et suppression de noeuds et d'arcs, parcours du graphe des relations, mécanismes d'héritages et de filtrage, etc. Les noeuds jouent le rôle des termes et les arcs jouent le rôle des prédicats en logique. Un réseau sémantique décrivant une phrase se représente naturellement par un graphe. Par exemple, le fait la routei se superpose au canal\ est représenté par la figure suivante: Route 1 superpose Canal 1 L'arc orienté représente l'action dont l'acteur est le noeud de départ et l'objet le noeud d'arrivée. Sous une forme non graphique, on pourra avoir un triplet: (superpose Route! Canal1) est-unc*' Nationale Voie de communication ^^esi-une Hydraulique ttoi. est superpose "t Canal 1 Figure 4.2: Réseau communication En général, les concepts sont reliés à la famille à laquel ils appartiennent. Les avantages d'une telle représentation sont multiples: un élément n'apparaît qu'une seule fois, alors qu'il peut intervenir dans la description de plusieurs concepts; de nombreuses relations entre>les éléments ne sont pas exprimées, l'interpréteur du réseau les retrouve: par exemple la transivité de la relation est permet de décrire des hiérarchies entre les concepts, et on parle d'héritages des propriétés. Les assertions affirmées dans un noeud supérieur sont également vraies dans les noeuds inférieurs. On peut alors spécifier des valeurs par défaut. Dans la figure 4.2, on peut déduire que la routei et la canah sont de la classe de voie de communication en remontant le lien est. La recherche d'une propriété

64 4.1. Les réseaux sémantiques 59 dans la hiérarchie d'héritage est assimilée à une inference, appelée inference par héritage. Si la représentation d'une relation binaire est un arc, celle d'une relation n-aire est un noeud, les informations associées à une action décrite dans le réseau sont des relations attachées au noeud figurant l'action. Par exemple, la description es objets se superposent peut être décrite précisément en indiquant l'objet du dessus, l'objet du dessous, le lieu, la longueur de superposition; elle était simplement figurée par l'arc superpose dans la figure 4.2, on verra que l'action superposer pourra très bien être représentée par un noeud de même nom dans le réseau de la figure 4.4. Les exemples précédents n'ont montré que des réseaux bien spécifiques, où les arcs qui relient les différents noeuds dépendent étroitement des phrases représentées. Pour modéliser des connaissances plus générales sous forme de réseaux sémantiques, il faut introduire des liens structurels exprimant les propriétés intrinsèques des concepts associés aux noeuds, on distingue alors ATPG attribution de propriétés génériques et ATPS attribution de propriétés spécifiques (figure 4.3) dans [15]. Routier so rte-de [! Routei i ATPG ATPS sorti Largeur 13 m! i noeuds génériques noeuds spécifiques Figure 4.3: Le lien ATPG et le lien ATPS Ces liens permettent de structurer un réseau en une partie spécifique, décrivant les données particulières à la phrase traitée, et une partie générique, réutilisable. La première est en quelque sorte une instanciation de la seconde. Il faut d'ailleurs définir avec précision les concepts et leurs inter-relations. Ainsi la phrase un tronçon de a route^ et un tronçon du canal\ se superposent à partir de l'échelle 1: ne pourra trouver de représentation adéquate qu'en augmentant le réseau précédent: on passera à une structure dans laquelle le concept superposer est l'élément principal du réseau. Cette solution consiste à permettre à des noeuds de modéliser des situations, des actions, aussi bien que des objets. La puissance d'un formalisme de représentation provient en grande partie des méthodes d'inférence qu'il propose pour résoudre des problèmes. Deux méthodes sont couramment utilisées dans les réseaux sémantiques, Pinférence par héritage et le filtrage, qui permet de rechercher des informations dans le réseau par accès associatif. Pour raisonner, il consiste à représenter par un réseau le contenu du but cherché, qui est ensuite mis en correspondance avec la base de données du réseau. Une demande d'informations est modélisée par un réseau où les noeuds représentant les informations inconnues sont étiquetés par des variables. Le rôle de la procédure de filtrage consiste à mettre en correspondance noeud à noeud ce réseau et un sous-ensemble du réseau représentant la connaissance disponible, afin de déduire les valeurs des variables. Autrement dit: le fragment de réseau issu du but cherché contient des noeuds variables qui, suivant le principe de l'unification, prendront des valeurs de façon à obtenir une correspondance parfaite entre ce réseau et la partie concernée dans le réseau de la base de données. Ainsi la question quelle route est superposée avec le

65 60 Chapitre 4. Les langages orientés objets tit/ Nationale Voie de communication \ ei! Hydraulique est Route 1 est-de Tronçon1 o bjrl ob jti Superposer ob. J3- o bjt2 échelle < 1: est Canal 1 > est-de Tronçon2 Figure 4.4: Réseau à l'échelle E= 1: canali? sera résolue, avec le réseau sémantique donné à la figure suivante en décrivant à l'interprète le graphe:?r superpose Canali Un propre algorithme de filtrage associé donnera rapidement une réponse souhaitée:?r = Routel. Il peut y avoir plusieurs réponses dans d'autres cas. On peut décrire sur ce modèle des situations plus complexes et non explicitement représentées dans le réseau sémantique, mais la formulation par un programme ou un expert d'un réseau sémantique de plusieurs milliers de noeuds est une tâche très difficile, on doit utiliser des heuristiques pour sélectionner les éléments du réseau qui doivent être utilisés en priorité, en évitant ainsi, lorsque le réseau devient trop important, des problèmes combinatoires. On s'est orienté plutôt vers la génération automatique de tels réseaux à partir de règles. Il existe des modèles sémantiques des bases de données qui s'affranchissent de la première forme normale du modèle relationnel. Elles proposent les mêmes outils de structuration de l'information que les langages à objets: par exemple, le principe d'abstraction de généralisation/spécialisation est analogue à l'héritage. Cependant, les modèles sémantiques sont avant tout structurels, dans la mesure où ils permettent de définir la structure des entités apparaissant dans une application, alors que l'approche objet favorise la modélisation du comportement des entités. Or, la notion de comportement, souvent appelée composante dynamique dans les bases de données, s'avère extrêmement importante pour les bases de données de dessin assistés par ordinateur. Malheureusement, les langages associés aux modèles sémantiques sont avant tout des langages d'interrogation et les langages de manipulation qui vont de pair ne respectent pas le principe d'encapsulation, pourtant essentiel pour développer des applications importantes. Les modèles objets se manifestent bien dans les applications à forte composante dynamique. Il reste cependant beaucoup de problèmes à résoudre pour les adapter à

66 4.2. Les prototypes 61 la problématique des bases de données: gestion de la persistance des objets au-delà de la simple exécution d'un programme, accès concurrents aux objets dans un contexte multi-utilisateurs, évolution dynamique du schéma de la base ou du comportement des objets eux-mêmes. 4.2 Les prototypes Un concept décrivant une catégorie d'individus peut donc être matérialisé par l'un d'entre eux, généralement le plus connu, appelé prototype. Il est considéré comme un membre moyen, représentant l'idéal de la catégorie. Un prototype possède les caractéristiques les plus fréquemment rencontrées chez les membres de la catégorie: il représente une connaissance par défaut qui n'est prise en compte qu'en l'absence de toute autre information. Un individu n'est pas moulé sur le modèle d'une classe et ne contient les seuls comportements et caractéristiques qui diffèrent de ceux du prototype. Par exemple, on définit un prototype autoroute par des caractéristiques suivantes: à chaussées séparées, voies larges, vitesse grande; ces caractéristiques étant les plus fréquemment rencontrées chez tous les membres de la catégorie autoroute. Pour en définir un membre autoroute-privée, il possédera les seuls comportements: propriété privée, payant, qui diffèrent de ceux de son prototype autoroute. Pour retrouver la description complète d'une autoroute-privée, il faut donc examiner d'abord ses propres descriptions: propriété privée, payant, puis celles du prototype autoroute: h chaussées séparées, voies larges, vitesse grande. 4.3 Les classes et objets Les langages de classes distinguent deux concepts: les classes et les instances, ou les schémas et les objet particuliers. La classe s'apparente à un type abstrait de données et décrit un ensemble d'objets partageant la même structure et le même comportement. Elle sert de moule pour générer ses représentants physiques, ou instances. Un objet est donc un module élémentaire réunissant un certain nombre de données qui lui sont propres et des procédures qui les manipulent. On peut le voir comme un serveur capable d'effectuer des requêtes sur sa propre structure, d'en masquer une partie ou d'en permettre un accès contrôlé. C'est une portion de connaissance possédant son propre contrôle et pouvant vivre indépendamment de ses congénères. Au sens LISP, un objet peut être vu comme un environnement, c'est à dire une collection de liaison (symbole «-» valeur), et (symbole <- ionction). Deux objets peuvent utiliser les mêmes symboles en y associant des valeurs différentes. La représentation de la structure d'un objet s'exprime en 2 niveaux: 1. abstrait: tout objet générique est représenté par un modèle appelé Classe qui décrit la structure et ses propriétés. C'est une représentation d'un type abstrait, un moule à partir du quel on fabrique autant d'exemplaires que l'on veut. Par exemple, pour décrire un modèle de toutes les autoroutes en France, on peut définir une classe Autoroute dotée des champs analogues à ceux de la

67 62 Chapitre 4. Les langages orientés objets Voie routière dans la figure 4.1 plus éventuellement un champ supplémentaire comme vitesse décrivant la vitesse limitée maximum pour la sécurité. On peut également définir une classe Chemin pour décrire les routes moins importantes. L'ensemble des classes constitue la base de classes. 2. concret: tout objet spécifique est une instance de la classe auquel il appartient, les instances de la même classe ont des propriétés communes qui sont définies par leur classe. La création d'une instance est appelée instantiation. On peut donc se servir du moule de Autoroute et Chemin qu'on a défini ci-dessus pour fabriquer des autoroutes et des chemins réels en donnant les valeurs exactes de leur largeurs, leur liste des arcs, des tronçons, des signes conventionnels, etc. L'ensemble des instances forme la Base des données du domaine d'application. Une classe décrit des informations qui sont complétées et enrichies pour définir d'autres familles d'objets. Les informations les plus générales sont ainsi mises en commun dans des classes à partir desquelles sont créées des sous-classes successives, contenant des informations de plus en plus spécialisées, l'ensemble des classes forme une hiérarchie dans laquelle chaque sous-classe hérite des données et des méthodes de ses classes mères. Une classe spécifie essentiellement la structure de données sur laquelle est bâtie chaque instance par la liste des champs et des méthodes. Cette spécification peut être plus précise, par exemple avec les valeurs attribuées par défaut aux champs ou la définition des facettes. Par exemple, on peut définir sur la figure 4.1 une classe Carrefour avec une structure de données, ou des champs, constituées des variables d'instances: nom, sommet, liste d'arcs, les carrefours voisins proches, les carrefours reliés directement, etc. une listes des méthodes, ou des procédures pour effectuer des requêtes sur sa propre structure et définir ses relations sémantiques avec d'autres objets: dwd: calculer les projections de la largeur entre les arcs voisins, Routes-principales: savoir les routes principales qui passent à ce carrefours et leurs types, les 2 routes les plus importantes de ce carrefour, angles-arcs: les angles entre les arcs voisins, domaine-convexité: savoir s'il a un domaine de convexité 1 non vide, et un sommet de convexité non nul, Défini dans la section 6.6.2

68 4.4. Les frames 63 Disl2sc: la distance avec un voisin quelconque en déduisant les projections des effets des largeurs des routes, et si elle est inférieure au seuil de séparation 2. Voisins-dangers: actuellement, tous les voisins trop proches autour, S1>S2?: s'il est prioritaire par rapport à un autre carrefour, Où-name: la meilleur position pour poser un nom de toponyme, Confondre: comment déménager chez un voisin si nécessaire, Delete: comment mourir en cas de suppression de ce carrefour, c'est à dire arranger les affaires de testament, d'héritages entre les arcs qui passent à ce point. Direction-d: les meilleures directions de déplacement en cas de besoin. etc. Nous pouvons ensuite modéliser tous les carrefours qui connaîtront leur propre structure, leurs propriétés, qui sauront se déplacer comme il faut. Une classe représente donc un ensemble dont les éléments sont les instances. Lorsque chaque classe ne comporte que des couples <attribut, valeur>, la base de données résultante est équivalente à un réseau sémantique. 4.4 Les frames Héritiers des réseaux sémantiques, généralement, le modèle de représentation des frames ne se réduit pas à un ensemble de couples <attribut, valeur>. Un frame est un prototype décrivant une situation ou un objet standard, l'ensemble des frames est organisé er* une hiérarchie d'héritage où, à la différence des classes, tout objet est à la fois un représentant des frames dont il est issu et un générateur de frames plus spécialisés. Un frame possède des attributs. Chaque attribut peut être caractérisé par un ensemble de facettes, déclaratives ou procédurales, ou aspects sémantiques, qui donne aux schémas une structure de réseau sémantique généralisé lorsque les éléments à manipuler sont complexes. Les facettes procédurales correspondent à des descripteurs qui indiquent les procédures (démons) à activer en cas d'accès ou de modification de cet attribut. On peut avoir deux types de facettes: facette déclarative : elle permet de spécifier des valeurs par défaut, c'est à dire qu'en cas d'information incomplète, on peut donner une valeur à un attribut. Ce type de facette permet aussi de décrire un ensemble de valeurs possibles pour un attribut. facette procédurale ou attachement procédural: elle a un caractère actif et est exécutée lors de l'acquisition d'une valeur pour l'attribut, on peut distinguer les types d'attachement procéduraux: si-besoin: exécuté lorsque la demande de la valeur de l'attribut est effectuée; défini dans la section 2.4

69 64 Chapitre 4. Les langages orientés objets si-ajout: exécuté lorsque l'attribut reçoit une valeur; si-suppresswn: exécuté lorsque la valeur de l'attribut est enlevée; * si-lecture: exécuté à chaque lecture de la valeur de l'attribut. Un frame n'a donc pas de comportement propre décrit par des méthodes: les opérations de manipulation des attributs sont détenues par les attributs eux-mêmes. En général, il est distingué des autres par le fait que son unité de base est le triplet: (frame, attribut, facette). 4.5 Les acteurs Un acteur est un objet actif qui communique avec ses semblables par envois de messages asynchrones. Il connaît des acteurs, appelés ses accointances, qui jouent le rôle des variables d'instance. Son comportement est défini par un script qui décrit la manière dont il réagit aux événements provoqués par les autres acteurs. Contrairement aux classes, les acteurs ne sont pas organisés hiérarchiquement: chaque acteur est en relation avec d'autres acteurs auxquels il délègue les messages qu'il ne peut pas traiter, réalisant ainsi l'équivalent du mécanisme d'héritage. Un acteur peut en créer un autre par copie de lui-même. La copie engendrée est soit rigoureusement identique, soit différentielle, c'est à dire spécialisée par adjonction de nouvelles caractéristiques. Ce mécanisme ressemble à l'instanciation des langages de classes. Par son coté dynamique, le modèle proposé par les langages d'acteurs se prête particulièrement bien à la programmation parallèle et à la mise en oeuvre de systèmes répartis sur un réseau de processeurs. 4.6 Les langages hybrides Typiquement, un langage hybride permet d'encapsuler des méthodes dans un frame ou bien d'associer des facettes aux variables d'instance d'une classe, ce qui permet de bénéficier conjointement des avantages offerts par les classes et les frames. La plupart du temps, il comprend également une composante de programmation logique. 4.7 Les messages Les objets communiquent entre eux par l'envoi et la réception de messages. On a accès aux objets ou on les utilise par un moyen unique: l'envoi de message. L'envoi de message repose sur le concept de type abstrait. Ce sont des types d'objets dont l'implantation est cachée aux programmes utilisateurs. La seule chose utile aux utilisateurs d'un objet est la documentation de ses opérations spécifiques. Un langage supporte les types abstraits lorsqu'il permet de regrouper sous un même type un ensemble de procédures qui lui sont spécifiques. Vis à vis de la programmation fonctionnelle, l'envoi de message précise le destinataire sans se soucier de son type. Le même message peut être interprété de manière différente par des destinataires de types distincts.

70 4.8. L'héritage 65 Puisque chaque objet contient son propre mode d'emploi, un même message envoyé à divers objets pourra donner des résultats différents. Dans cette optique, une grande partie des problèmes de syntaxe disparaît puisque toutes les communications ont la même forme, seuls les objets receveurs permettent de les différencier. C'est, en effet, le destinataire du message-ou sa classe- qui possède le code du programme à exécuter. Par exemple, on a déjà défini deux types de classes: Voies routières et carrefour, on définit une méthode pour se déplacer. Pour bouger un des objets de ces deux classes, il suffit de lui envoyer le message: déplacer. En fonction de son type, chacun agira selon son mode particulier de déplacement. un carrefour va consulter ses environs, et essayer de bouger son point du sommet dans son domaine de convexité 3 si c'est possible, et donne des informations en cas d'impossibilité de rester dans ce domaine. une route va d'abord envoyer des messages correspondants à tous ses noeuds qui vont réagir en fonction de leur type et environnement, et ensuite corriger les défauts de changement de convexité de l'ensemble de la route 4 en linéarisant les petites sinuosités. Un message tel que (écarter R5 dir dis) spécifie en général: le nom destinataire, comme le nom de la route: RS un sélecteur: un nom de fonction en quelque sorte, par exemple, l'action écarter. des arguments éventuels, la direction dir et la distance dis pour l'action écarter une route. Dans les langages objets, programmer revient à définir un ensemble d'entités actives, spécialisées, et une structure dynamique: les méthodes, qui définissent le mode d'emploi de l'objet. L'ensemble des méthodes constitue l'interface par laquelle un objet interagit avec l'extérieur. L'accès et la modification des champs peuvent se faire également par envoi de messages. 4.8 L'héritage Il s'agit d'un problème de partage de connaissances. La classe doit être considérée comme un réservoir de connaissances à partir duquel il est possible de définir d'autres classes plus spécifiques, complétant les connaissances de leur class mere. Les connaissances les plus générales sont ainsi mises en commun dans des classes qui sont ensuite spécialisées par définitions de sons-classe successives, contenant des connaissances de plus en plus spécifiques. Une sous-classe est donc une spécialisation de la description d'une classe, appelée sa sur-classe, dont elle partage les variables et les méthodes. La figure 4.5 décrit les sous-classes de la classe Réseau de communication, c'est un graphe réduit de la figure 7.1 de la page déftrû dans la section défini dans la section 6.4.2

71 66 Chapitre 4. Les langages orientés objets Réseau de communication noeud de communication voie de communication Carrefour Voie ferrée Voie routière Voie hydraulique Figure 4.5: Les sous-classes de la classe de réseau de communication Bien sûr, au niveau physique, les duplications inutiles sont évitées, mais conceptuellement tout se passe comme les informations de la sur-classe était recopiées dans la sous-classe: une sous-classe hérite des informations de sa surclasse. La spécialisation d'une classe peut être réalisée selon deux techniques: enrichissement: Une classe peut être définie comme sous-classe d'une autre, les instances de la sous-classe héritent alors automatiquement des propriétés de la sur-classe, la sous-classe spécialise sa sur-classe par addition et substitution de variables ou de méthodes. Par exemple, on crée une sous-classe passage-à-niveau de la classe carrefour, cette classe a la propriété que tous les arcs arrivant à ce point sont tous au même niveau, elle a ses méthodes propres comme signe graphique et variables propres et tout passage-à-niveau saura se déplacer et aura un nom, un sommet, des arcs,...etc. comme un carrefour normal. La sous-classe peut être dotée de nouvelles variables et/ou de nouvelle méthodes représentant les caractéristiques propres au sous-ensemble d'objets ainsi décrit. Par exemple: On définit une classe Route avec six variables d'instance: nom largeur lvoisins axe lares lnoeuds décrivant des routes principales sans préciser le nombre de voies en supposant 2 par défaut, une nouvelle variable nombre-de-voies est ajouté à la classe plus spécifique de routes qui ont plus de 3 voies: {R+3voies}. par héritage, la classe {R+3voies} compte en fait sept variables d'instance: nom largeur lvoisina axe lares lnoeuds nombre-de-voies Une classe est donc définie par ses propres champs et des méthodes plus ceux qui sont hérités de ses surclasses.» substitution ou masquer. Eventuellement, une méthode ou une variable peut être redéfinie dans une sous-classe et donc remplacer celle qui aurait dû être héritée, on peut donner une nouvelle définition à une méthode héritée, lorsque celle-ci se révèle inadéquate pour l'ensemble des objets décrits par la sur-classe.

72 4.8. L'héritage 67 Par exemple: on définit une méthode éliminer générale au niveau de la classe voie routier«pour la suppression d'une route en fonction de la taille de la route selon les règles de lisibilité, c'est une règle quantitative, selon la règle qualitative 5, on redéfinit la méthode éliminer au niveau inférieur de la classe voie routière, par exempte à la classe sentier, qui doit être éliminée à partir de l'échelle 1: selon son importance. statique: c'est la relation qui lie un objet à celui ou ceux dont il hérite. Elle est représentée par le graphe d'héritage et possède une sémantique. dynamique: c'est le processus qui réalise l'héritage, en donnant aux objets l'accès aux informations dont ils héritent. L'héritage permet de définir des classes d'objets qui sont semblables à d'autres permettant une structuration hiérarchique de la connaissance. Le concept d'héritage existe dans tous les langages objets. L'héritage permet de factoriser des connaissances pour créer de nouveaux objets, par spécialisation ou extension des objets préexistants. Il repose sur deux composantes: La relation d'héritage est transitive: les caractéristiques des classes supérieures sont héritées par les classes inférieures, qui sont d'autant plus spécialisées qu'elles sont proches des feuilles de l'arbre du graphe d'héritage. La relation classe-instance est assimilable à un lien d'appartenance: élémentensemble, la route A4 de type autoroute est une des routes qui appartient à l'ensemble de voies routières. L'héritage doit être considéré comme représentant une inclusion entre un ensemble et un sous-ensemble, la route A4 de type autoroute a un nom, des caractéristiques de voies, de largeur comme toutes voies routières. L'héritage peut être simple ou multiple pour des objets composites tels qu'une route, à la fois voie de communication et éventuellement aussi limite administrative. Dans le second cas, la sous-classe hérite de plusieurs classes, elle comprend alors l'union des variables et des méthodes de toutes ses sur-classes. Des conflits peuvent alors se déclarer entre les informations héritées de différentes surclasses. Il faut donc définir un moyen de les résoudre. La solution la plus simple est de donner une liste de priorité de classes qui détermine de quelle classe on hérite les variables ou les méthodes en conflit 6. La structuration en classe et sous-classe entraîne une modularité importante: la description de l'univers est divisée en partie indépendantes regroupant les objets par affinité. La modification de l'une d'elles n'entraîne qu'un minimum de modification des autres. Ce fait est bien mis en évidence par le graphe d'héritage: chaque sousarbre regroupe des objets partageant les caractéristiques de sa racine. En principe, la modification de cette racine n'a d'incidence que sur ses sous-classes. L'héritages permet la réutilisation des programmes, on peut s'arranger pour profiter de cet avantage: certaines classes ne sont créées que pour en faire des réservoirs d'héritage pour les autres classes, par exemple sur figure 4.5 la classe Voies de communication est définie pour définir ensuite les sous-classes: Voies routière, Voies ferrées,etc. 5 voir la section La section 4.11 en discute un en détails

73 68 Chapitre 4. Les langages orientés objets Instancier de telles classes n'a généralement pas de sens et représenterait de toute façon guère d'intérêt. Par exemple, la classe très générale et abstraite: Voies de communication n'est pas destinée à être instanciée, elle groupe toutes les méthodes communes à toutes les sous-classes: voie routière, voie hydraulique, voie ferrée, etc. ces dernières hériterons toutes les propriétés de la sur-classe voie de communication. Il y a peu d'intérêt à créer des instances de la sur classe voie de communication qui ferait créer des voies de communication incomplètes, trop abstraites, par contre, toutes les autres classes sont plus spécifiques qu'elle, mais celles-ci sont aussi abstraites et sont destinées à créer des sous-classes telle que rivière de la voie hydraulique, Route et Chemin de la Voies routières, etc. (voir le graphe complet des classes et sous-classes du réseau de communication sur la figure 7.1) Un accent devrait être porté sur le fait que l'évolution des connaissances nécessite la prise en compte d'exception et de modification du graphe d'héritage, pouvant entraîner l'apparition de contradictions et de redondances. La section 4.11 donne quelques exemples. 4.9 La relation d'héritage La relation d'héritage peut être interprétée de différentes façons selon l'usage qui en fait est. conceptuel: la relation d'héritage indique une spécialisation. Par exemple, la relation qui lie une espèce animale à ses sous-espèce est de cette nature: Une voie routière est une sorte de voie de communication Les classes les plus générales se trouvent près de la racine du graphe d'héritage tandis que les classes décrivant des objets particuliers se trouvent près des feuilles. ensemblisie: La relation d'héritage décrit une inclusion d'ensemble. La classe {VoieRoutière} héritant de la classe {VoiedeCommunication}, l'ensemble des éléments (instances) de la classe {VoieRoutière} est inclus dans l'ensemble des éléments de la classe {VoiedeCommunication}: (VoieRoutière Ç VoiedeCommunication) A ce propos, les langages de classe font une nette distinction entre classes et instances. Si la relation d'héritage peut être assimilée à une inclusion ensembliste (C) entre deux classes, la relation liant une instance à sa classe se représente comme Pappartenance(e) d'un élément à un ensemble. Il est convenu de ne pas parler d'héritage. Cette distinction classes-instances est toutefois souvent remise en cause, en particulier dans les langages dédiés à la représentation des connaissances. logique: L'appartenance à une classe est exprimée par un prédicat. Si l'élément x appartient à la classe { VoieRoutière }, alors VoieRoutière(x) est vrai. La formule une voie routière est une voie de communication se traduit alors par: Va; (VoieRoutière(x) => VoiedeCommunication(x))

74 4.10. Objet et représentation des connaissance 69 Toutes les relations correspondant à ces différentes interprétations sont transitives et déterminent un preordre sur les classes. Aujourd'hui, les langages orientés objets sont amenés à tenir une place de plus en plus prépondérante dans la conception des logiciels. Pour notre but qui est d'automatiser une partie des opérations de généralisation cartographique, la programmation objet tend à servir de base aussi bien pour la réalisation de moteur d'inférences (cf. la section 8) que pour la construction de bases de connaissances pour systèmes experts (cf. la section 7.1.1). Les langages orientés objets sont des langages de programmation à part entière. Néanmoins, ils diffèrent des langages classiques(pascal, etc.) dans la manière de résoudre les problèmes et de contrôler le déroulement des programmes. La programmation orientée modifie radicalement notre vision traditionnelle de programmeur (définir des variables et des procédures qui sont activées dans un ordre prévu par la séquence des instructions du programme). Les difficultés sont en fait, dans une application, de déterminer quelles sont les sortes d'objets à créer et quels messages ceux-ci devront supporter afin de permettre un dialogue efficace. D'une manière générale, on cherche à définir des objets représentatifs du monde réel, comportant peu de variables et de méthodes et ayant une forte cohérence fonctionnelle ou organique. On minise ainsi les interactions entre objets, cela se traduit par une bonne intelligibilité et une plus grande facilité de mise au point. La section discute les constructions et structurations des objets Objet et représentation des connaissance Les objets sont bien adaptés aux méthodes de descriptions incrémentales, où les connaissances spécifiques sont obtenues par affinement progressif de connaissances génériques. Le mécanisme d'héritage offre une meilleur solution au niveau de partage de connaissance. Ils permettent donc de traiter plus facilement certains des problèmes fondamentaux dans la représentation de connaissance: Typicalité, connaissance par défaut et exception Par définition, un objet ou un prototype représente des connaissances typiques, des informations par défaut ou implicites caractérisant une famille d'individus. C'est une référence, utilisée pour comparer des objets qui doivent être reconnus, analysés ou classés. Les propriétés exceptionnelles peuvent être masquées 7 chez un individu sans perturber la hiérarchie déjà établie. Modification de l'univers et informations incomplètes A l'origine incomplète, la connaissance décrite par un prototype s'affine au fur à mesure que la connaissance sur les objets représentés augmente. Puisque l'héritage est dynamique, toute modification dans un prototype est implicitement répercutée sur les objets qui dépendent du prototype, ces derniers ne possédant que virtuellement les propriétés qu'ils partagent avec lui. une propriété peut être masquée veut dire qu'elle peut être redéfinie

75 70 Chapitre 4. Les langages orientés objets 4.11 Les exceptions Le monde n'est pas parfait, les exceptions sont partout. Elles sont tellement courantes qu'il serait anormal qu'il n'y ait pas d'exception dans des domaine tels que le traitement des informations géographiques. Le traitement des exceptions constitue un des problèmes les plus difficiles de la représentation des connaissances et son études théorique est encore en pleine évolution[15] Héritage et exception Dans un système où l'héritage est le mécanisme du partage de connaissance, les propriétés d'un concept et leurs valeurs sont obligatoirement héritées par les spécialisations du concept. En général, l'héritage des variables d'instance est statique et celui des méthodes est dynamique. Cependant, il est difficile, voire impossible, de construire une abstraction ne décrivant que des propriétés valides pour toutes ses spécialisations. Certaines d'entre elles peuvent représenter des individus exceptionnels, pour lesquels il est nécessaire de masquer les valeurs par défaut de certaines des propriétés héritées. Par exemple, si le concept d'arc est ajouté dans une hiérarchie décrivant les Voies Routières, la propriété List-arcs, supposons définie avec la valeur de domaine liste pour les voies routières, est redéfinie avec la valeur du domaine atom ou nil pour le concept d'arc, puisqu'un arc ne contient que lui même. Figure 4.6: Graphe d'héritage, exception au niveau de Rivière Dans la figure 4.6, on définit une sous-classe Rivière de la sur-classe Voie hydraulique qui est aussi une sous-classe de la classe Voie de communication, cette dernière ayant des variables d'instances: nom largeur 1voisins axe lares lnoeuds et une liste de méthodes pour des processus de traitement. Donc une Rivière est défini en tant que Voie hydraulique qui est lui même une voie de communication. En général, une rivière n'est pas comme une voie ferrée, ni comme les routes qui ont une largeur régulière et constante, donc la variable d'instance largeur et axe ne peuvent pas décrire une rivière non régulière. Par conséquent, les méthodes concernant la largeur et l'axe d'une voie de communication devraient être redéfinies. Plutôt que de masquer dans Rivière toutes les propriétés de voies de communication,

76 4.11. Les exceptions 71 il est préférable de créer un arc exceptionnel, ou lien d'exception, entre voies de communication et Rivière, pour indiquer que le second objet n'hérite pas de caractéristiques du premier. Donc, chaque fois qu'une propriété serait ajoutée ou modifiée dans voie de communication, il faudrait vérifier sa compatibilité avec Rivière. Le maintien de cohérence du graphe d'héritage serait très difficile à assurer et ne pourrait pas être automatisé, faute d'indication explicite sur les incompatibilités existant entre les concepts liés hiérarchiquement. Voie de communication Figure 4.7: Une exception au niveau de Canal Les exceptions font perdre sa transitivité à la relation d'héritage: une rivière n'est pas voie de communication qu'on a spécifié comme modèle, avec régulière comme caractéristique, si une rivière n'est pas une voie de communication, cette exception porte-t-elle sur le seul objet excepté ou bien sur tous les ascendants de ce dernier? Ou bien faut-il encore ajouter d'autres concepts plus spécifiques au dessous ou en dessus du concept voie de communication? Ce n'est pas impossible, seulement d'autres exceptions pourraient bien apparaître. Par exemple, deux nouvelles sousclasses: Voie de communication régulière et Voie de communication irrégulière, et dans ce cas, les Voie routière et Voie ferrée seront des sous-classes de la première, et Voie hydraulique sera de la second. Mais si la classe Canal était une sous-classe de la sur-classe Voie hydraulique, alors elle n'est pas du tout de caractéristique irrégulière comme sa sur-classe ou comme son camarade Rivière, donc une autre exception se révèle. Ce qui justifie la fréquence des exceptions. Ce problème doit être réglé pour pouvoir ajuster en conséquence les algorithmes d'héritage Chemins d'héritabilité La liste de priorité d'un objet détermine l'ensemble des objets dont il hérite, appelé ensemble d'héritabilité ou ensemble des objets héritables. Touretzky[19], [15] exprime Phéritabilité en faisant intervenir la notion de chemin d'héritabilité:

77 72 Chapitre 4. Les langages orientés objets Un chemin d'héritabilité est un chemin du graphe d'héritage dont aucun arc de transitivité 8 n'est exceptionnel et dont seul le dernier arc peut être exceptionnel. Le chemin est dit négatif si le dernier arc est exceptionnel, positif sinon. Par exemple: sur la figure 4.6, entre Rivière et Voie communication, il existe un chemin d'héritabilité positif: Voie communication «Voie hydraulique Rivière, et un chemin négatif: Voie communication «* Rivière. Le chemin Voie communication < Voie hydraulique < Rivière n'est pas un chemin d'héritabilité, car il existe un arc de transitivité exceptionnel: Voie communication +* Rivière. L'héritabilité d'un objet se définit alors en fonction des chemins d'héritabilité issus de cet objet: Un objet o2 est heritable par un objet ol s'il existe un chemin d'héritabilité positif entre ol et o2. L'objet o2 n'est pas heritable s'il existe un chemin d'héritabilité négatif entre ol et o2. L'existence simultanée de chemins d'héritabilité positif et négatif entre deux objets introduit une contradiction, puisqu'un objet comme Voie communication est à la fois heritable et non heritable par un sous-objet: Rivière. Une contradiction est une redondance contradictoire si l'un des chemins d'héritabilité passe par un arc de transitivité de la relation d'héritage. La redondance est facile à reconnaître et à traiter. Il suffit de supprimer un arc redondant pour lever la contradiction. Une contradiction qui n'est pas due à un arc de transitivité est dite pure. Il est nécessaire d'introduire des critères supplémentaires pour trancher Quelques techniques de résolution Le plus court chemin La technique du plus court chemin, utilisée par Scott E. Fahlman, a été la première solution proposée pour traiter les exceptions dans un graphe d'héritage. Elle consiste à construire l'ensemble d'héritabilité en ne conservant que les objets accessibles par les plus courts chemins d'héritabilité positifs. En cas de contradiction sur une propriété, celle-ci est héritée si le chemin positif est strictement plus court que le chemin négatif de mêmes extrémités. Toutefois cette technique est souvent mise en défaut. La distance d'inference Tourezky a étendu le travaux de Fahlman en introduisant notamment une relation d'ordre sur les chemins d'héritabilité, la distance d'inférence, elle est devenu finalement la relation de préemption: Un chemin d'héritabilité négatif a «6 /- o prime sur un chemin d'héritabilité positif a ««c «o si et seulement s'il existe un chemin a <_...«_&...<_ c où 6 est une spécialisation de c. 8 Üii arc de transitivité relie deux objets non consécutifs d'un chemin d'héritage

78 4.12. L'intelligibilité 73 Donc une exception porte sur tous les ascendants d'un objet excepté, sauf ceux qui sont hérités par ailleurs. Ces deux techniques semblent faciliter les problèmes d'héritage, En général, on s'arrange pour faire hériter des propriétés des sur classes, même si celles-ci sont connectées par plusieurs sur-classes intermédiaires. A l'inverse pour deshériter un objet des propriétés d'une surclasse, on crée un arc exceptionnel qui relie directement ces deux concepts. Si un chemin d'héritabiîité est arbitrairement choisi:». S'il s'agit d'un chemin positif, l'exception est dite relative car elle peut quand même être effective, dans certain cas. S'il s'agit d'un chemin négatif, l'exception est dite absolue car elle est toujours effective L'intelligibilité Le petit nombre des concepts en facilite la mie en oeuvre et la manipulation.» L'envoi de messages tous de mêmes structures rend les programmes plus compréhensibles. L'héritage renforce la modularité et la possibilité d'approche incrémentale de la compréhension d'un système sauf s'il y a des exceptions. On peut spécifier des objets avec de plus en plus de détails. A la racine de l'arbre d'héritage, on a les structures de données et les méthodes les plus générales, aux éléments terminaux, les structures les plus spécialisées. On dispose d'un bon environnement de programmation tel que LISP et d'un langage extensible. Un objet est compact, ce qui facilite l'identification des erreurs. la réutilisation des logiciels permet beaucoup d'économie Les défauts En général, les langages oftrant de grandes facilités d'utilisation sont en contrepartie assez peu efficaces en temps d'exécution. Les langages orientés objets ne font pas exception à cette règle. Leur souplesse et leurs possibilités reposent sur une organisation interne relativement complexe, formée de liens entre les descriptifs des objets. Le maintien de ces structures et leur exploitation sont coûteux, particulièrement lors du passage de message où il faut passer de l'instance à la classe puis rechercher la méthode correspondante. Le passage de message est le seul moyen de communication entre objets; il est donc fréquent. Il s'ensuite qu'un langage orienté objets n'est pas très rapide.»- Ces langages sont consommateurs d'espace mémoire, par leur faculté de créer dynamiquement des structures représentant des classes et des instances.

79 74 Chapitre 4. Les langages orientés objets Si la représentation est loin d'être optimale, aussi bien pour l'espace mémoire occupé que pour le temps d'accès aux informations, elle est en contrepartie des plus faciles à exploiter. De nombreux langages sont aujourd'hui operationeis et commercialisés. Les techniques d'ia y font largement appel: représentation de la connaissance, systèmes experts, systèmes de fenêtrage... Ils s'intégrent dans des progiciels tels qu'outils de développement de systèmes experts, simulateurs, gestions de base de données, dans des langages plus classiques (C, C++, Lisp, Prolog, Ada). Le système d'exploitation des machines LISP est également construit sur un système d'objets: Les FLAVORS, et le Macintosh d'apple en est la première application grand publique. Le style orienté objet est une lame de fond qui déborde des applications usuelles d'ia. Elle va modifier, à terme, les habitudes de programmation de tous les secteurs informatiques Comparaison des formalismes Quels formalismes utiliser lors de la conception d'un système expert? Quels en sont les avantages et inconvénients? Quels critères doit-on considérer pour les discriminer? Il semblerait que: puissance d'expression et efficacité;» aisance à modéliser les concepts que l'on désirer exprimer; possibilités offertes pour assister le concepteur de la base dans son travail; soient les critères les plus déterminants dans le choix d'un formalisme de représentation des connaissances. Dans les règles de production, la connaissance d'un concept est morcelée dans la base de connaissances, elle est dispersée sur plusieurs règles différentes qui décrivent les attributs et les propriétés particulières du concept. Notre proposition est que l'extraction des connaissances soit orientée en fonction de la méthode de résolution qui les exploitera. Il existe plusieurs types de programmation: fonctionnelle, procédurale, par règles, avec objets; il semble qu'aucun de ces types ne constitue à lui seul une réponse au problème, la solution réside certainement dans l'utilisation conjointe de ces techniques. En intelligence artificielle, la représentation des connaissances conduit à combiner un ensemble de structures de données munies de leur mode d'emploi: des procédures charges de les interpréter. Les recherches dans ce domaine tendent à développer plusieurs classes de structures de données. C'est ensuite l'utilisation de ces structures qui permet de réaliser un raisonnement, et donc d'entrevoir un processus "intelligent". On associe donc plusieurs concepts de bases: La programmation orientée objets, La programmation par règles de production,»- La programmation dans un environnement fonctionnel (langage Lisp).

80 4.14. Comparaison des formalismes 75 En général, l'interprétation des connaissances dans un système informatique comme système expert requiert principalement trois phases: définition des modèles de représentation, acquisition de nouvelles connaissances, et enfin raisonnement sur les modèles définis. Le modèle de représentation des connaissances d'un moteur d'inférences dépend étroitement de la classe des problèmes qu'il est amené à traiter, et de son domaine d'application privilégié (un moteur n'est jamais réellement universel). La puissance d'expression du langage (facilité pour l'expert de transmettre son savoir, et complexité des connaissance mises en jeu) est directement liée à la qualité du mode de représentation des connaissances. Nous avons accepté l'approche fondée sur la représentation sous forme d'objets. Nous mettons à profit l'envoi de messages pour écrire des programmes modulaires et extensibles. Il est naturel de représenter les règles par des objets, cette approche permet alors la synthèse des méthodes de programmation par objet et par règles. On profite des systèmes procéduraux dans un langage orienté objet pour effectuer, grâce à l'association de règles aux modèles d'objets, des expertises ponctuelles, déclencher des procédures algorithmiques là où la représentation de la connaissance n'est pas satisfaisante. On utilise alors le système expert, qui permet une programmation plus indépendante de la représentation des données pour effectuer des expertises globales. De part ces différences et leur complémentarité, on peut estimer qu'un bon prototype de système pour gérer les opérations de la G.G. devrait s'appuyer d'une part sur un langage orienté objet pour les jugements ponctuels et les déclenchements d'algorithme, et d'autre part sur un moteur d'inférences chargé d'effectuer les expertises globales, travaillant sur la même base de données interprétées.

81 Chapitre 5 Lisp et objets 5.1 Intérêt de programmer en Lisp Il existe sur le marché de nombreux langages orientés objets. Au point de vue d'ia, on a préféré la famille Lisp: les langages à objets à partir d'un interprète Lisp. Lisp est l'un des principaux outils de programmation en I.A.. Conçu par J. McCarthy (au M.I.T) en 1958, Lisp est aussi un des plus vieux langages de programmation en usage aujourd'hui. Le champ d'application privilégié de Lisp reste la programmation symbolique, mais son utilisation hors de l'ia est de plus en plus large. Les qualités: * un environnement de programmation agréable, la richesse en moyen de représentation et de manipulation symbolique, la simplicité et homogénéité de la syntaxe: elle repose sur la seule structure de liste, peu de mots-clés, uniquement sur un ensemble de fonctions, le récursivité facilite la programmation des algorithmes complexes. la puissance du langage, et en particulier l'équivalence complète entre données et programmes, la souplesse: gestion dynamique des objets et des ressources,» l'interactivité: Lisp est principalement interprété, certaines versions complètes sont très efficaces. la facilité d'extension, Lisp est un langage méta-circulaire, qui peut se définir lui-même, donc être étendu par de nouvelles constructions, extensions syntaxiques par macros. Les défauts: le programme Lisp manque de concision, syntaxe trop élémentaire, 76

82 5.2. Ceyx 77 occupe beaucoup de mémoire, langage non typé. La contribution de Lisp à la programmation objet est considérable avec l'influence de Smalltalk, il a servi de base de développement à maint langages à objet, qui réutilise directement l'interprète et l'environnement du système Lisp choisi comme hôte. Les dialectes modernes de Lisp, comme Le-Lisp et Common Lisp, ont peu à peu intégré une composante objet. 5.2 Ceyx On a pris Ceyx, comme notre langage de travail, non pas pour un choix rigoureux, mais par sa préexistence. Il ne peut peut-être pas concurrencer des produits comme Smalltalk ou C++, développés et maintenus industriellement. Il s'agit plutôt d'un ensemble d'outils permettant de perfectionner les fonctionnalités de l'interprète Le-Lisp, sans perturber son fonctionnement habituel ni son efficacité. Ceyx, une composante objet de Le-Lisp, est un langage orienté objet du type classe décrit au paragraphe 4.3, n'ayant que l'héritage simple. Un sous-ensemble permet de programmer dans un style très proche de celui de Smalltalk. Il est basé sur la notion de package. Les packages forment une hiérarchie arborescente dont la racine est le package global () par défaut. Un package est lui-même désigné par un symbole qui peut à son tour appartenir à un autre package, et ainsi de suite, un package est précédé par le caractère #: tel que #:voie, les noms des packages étant séparés par le caractère :, par exemple, voie ou #:voie désigne le symbole voie du package (), #: voie:routière désignent le symbole routière du package #: voie et #: voie routière: noeud désigne le symbole noeud du package #: voie: routière, alors que #:noeud désigne le symbole noeud du package (). (Figure 5.1). #:noeud #:voie #:voie:ferrée Ferrée routière #:voie:routière #:voie:ferrée:noeud #:voie:routière:nœud #:voie:routière:axe Figure 5.1: La hiérarchie des packages Cette organisation est dans une certaine mesure comparable à celle des fichiers dans un système d'exploitation comme Unix, les packages constituant l'équivalent des répertoires. Elle permet classiquement d'éviter les conflits de noms entre les variables

83 78 Chapitre 5. Lisp et objets appartenant à des modules écrits séparément; comme un nom de fichier, la chaîne d'accès à un symbole décrit le chemin menant au symbole dans l'arbre des packages. Le nom d'un package étant aussi un symbole, une valeur peut lui être affectée.? (setq #:voie '(Al A2 FI)) = (Al A2 FI)? #:voie = (Al A2 FI)? (setq #:voie:routière '(Al A2)) = (Al A2)? #:voie:routier«= (Al A2)? (setq #:voie:ferree '(Al A2)) = (FI)? #:voie:ferrée = (FI) Les classes et instances Un modèle est une structure de données définie comme produit étiqueté de structures de données primitives Le-Lisp telles ques atom, symbole, string, cons, tcons (cellules de listes étiquetées) et vecteurs. Il est composé de champs, à la manière d'un record en Pascal ou d'un struct en C. La représentation du modèle est stockée dans le champ spécial 0-VAL du symbole désignant le modèle. Le symbole désignant le modèle représente également le package dans lequel sont définies des fonctions propres au modèle. Celles-ci constitue l'interface, le mode d'emploi en quelque sorte, du modèle: comment accéder au champs des instances, comment les imprimer, etc. Ce package est appelé l'espace sémantique du modèle, et les fonctions du package sont appelées les propriétés sémantiques du modèle. Un type est un modèle spécial dont les instances sont représentée par des cellules de listes étiquetées: tcons. La programmation objet est possible grâce à ces modèles: A chaque type est associé un espace sémantique dont les propriétés comprennent, entre autres, des fonctions de manipulation spécifiques aux instances du type. Les types sont organisés de manière hiérarchique, un sous-type héritant des propriétés sémantiques de ses parents. Tous les objets sont autotypés: le type d'un objet, c'est à dire la chaîne d'accès à l'espace sémantique de l'objet, constitue le car du tcons représentant l'objet.» Les valeurs des champs d'une instance sont stockées dans le cdr du tcons représentant l'espace. Une opération est appliquée à une instance par un envoi de message, réalisé grâce à la fonction send. Comme une instance est auto-typée, elle fournit directement le nom de l'espace sémantique où se trouve la fonction requise.

84 5.2. Ceyx 79 Plusieurs fonctions de définition de types offrent le choix de l'implantation physique des champs. Une classe est définie par deftclass, les champs correspondent aux variables d'instance et les propriétés sémantiques aux méthodes. L'héritage est simple: les classes forment un sous-arbre de racine Tclass, ellemême sous-classe de la classe (), racine de l'arbre d'héritage. Une classe est représentée par le symbole de même nom que la classe, ce symbole appartenant au package de même nom que la superclasse directe: la hiérarchie des classes coïncide avec la hiérarchie de leurs packages. * Les méthodes sont des fonctions définies dans le package de leur classe d'appartenance. Les fonctions prédéfinies Le-Lisp, telles que car ou cons, appartiennent à la classe (). Elles peuvent être masquées dans une classe définie par l'utilisateur. Par exemple: la définition d'une classe Moteur-d-inference possédant quatre variables d'instance, base-de-iaits, base-de-regles, base-de-faits-initiale, base-de-regles-valides:? (deftclass Moteur-d-inference base-de-faits-initiale base-de-faits base-de-regle base-de-regle-valides) = #:Tclass:Moteur-d-inference Chaque variable peut posséder un type et une valeur initiale optionnels. Par défaut, la valeur initiale est (). L'accès à une variable de classe et réalisé par envoi de message, une écriture se distinguant d'une lecture par un argument supplémentaire donnant la nouvelle valeur de la variable. Toutefois, le receveur du message peut indifféremment être une instance de la classe ou la classe elle-même. Cette classe est dans le package Tclass: #: Tclass :Moteur-d'inference, le nom de la classe devient ['abbreviation de la chaîne d'accès à ce package. Le prototype a la forme suivante: #(#:Tclass:Moteur-d-inference. #[() () () ()]) qui est une cellule tcons dont le car est son type #: Tclass:: Moteur-d-inf erence, le cdr est un vecteur contenant les valeurs initiales des variables d'instance, dans l'ordre où celles-ci sont données dans la définition de la classe. On peut ensuite définir des méthodes telles que: Initialiser Mode-d'inf erene e Chaînage Afficher-regles-valides Inférer etc. On peut envoyer des messages en respectant la syntaxe suivante:

85 80 Chapitre 5. Lisp et objets (send sélecteur argumentl argument2... ) Par exemple, on lance le moteur en chaînage avant en lui fournissant la base de faits initiale '(il Î2 Í3), et la base de règles '(ri r2 r3) comme arguments:? (sendq en-avant mi '(il Í2 f3) '(ri r2 r3)) = (fl 12 Í3 14) ; la base de faits finale L'héritage des variables est statique: à la création d'une classe, le vecteur du prototype d'instance de la superclasse est dupliqué et augmenté des valeurs des variables supplémentaires introduites par la classe. Le rang des variables héritées ne change pas, et les méthodes d'accès définies dans les superclasses restent valables pour toutes les instances des sous-classes. En revanche, l'héritage des méthodes est dynamique. Lors d'un envoi de message, la classe de l'objet receveur est déterminée grâce à la fonction prédéfinie type. Celle-ci retourne en fait le type de son argument, avec la convention que le type d'une cellule tcons, donc d'une instance d'une classe est donné par son car.? (type mil) = #:Tclass:Moteur-d-inference La recherche de la méthode à appliquer s'effectue en remontant l'arbre d'héritage à partir de la classe obtenue précédemment. Elle s'arrête dès qu'une fonction de même nom que le sélecteur est trouvée dans le package associé à la classe courante.? (sendq cons 'le 'lisp) ; la fonction 'cons' trouvée dans le package () = (le. lisp) Ceyx donne aussi la possibilité de définir des méthodes dont la sélection fait intervenir les deux premiers arguments des messages grâce aux défraie en précisant la classe d'appartenance des ces deux premiers arguments. Variable de classe Comme l'implantation de Ceyx est simple, homogène et ouverte, il est facile d'ajouter ses propres utilitaires ou de perfectionner ceux qui existent, sans nuire à l'intégrité du langage. A titre d'exemple, nous proposons d'implanter des variables de classe, au sens Smalltalk, partagées par toutes les instances d'une classe, et de ses sous-classes, au lieu de donner une valeur à une variable d'instance à chaque fois qu'on crée une nouvelle instance. Par exemple, elles pourraient servir à représenter la propriété : le signe conventionnel pour toute la classe autoroute, commun à toutes les instances de cette classe.

86 5.2. Ceyx 81 Au moyen d'une procédure-variable Une première méthode est d'emprunter une procédure d'une classe. Une visite de la valeur d'une variable d'instance (champ) et une activation d'une procédure se font toutes deux par le même moyen: envoi de message avec un sélecteur plus éventuellement des arguments s'il s'agit d'une activation d'une procédure. On peut donc très bien utiliser une procédure dont la fonction est de juste stocker une valeur; cette procédure ressemblera ainsi à une simple variable, d'où le nom procédurevariable. Une procédure-variable est partagée par toutes les instances de la classe et celles de ses sous-classes et sera héritée dynamiquement. Elle peut être redéfinie au niveau des sous-classes sans déranger les sur-classes. On définit une classe Autoroute avec trois variables d'instance: nom, largeur, voisins.? (deftclass Autoroute nom largeur voisins) = #:Tclass:Autoroute? (deimake {Autoroute} make-auto (nom largeur voisins)) = make-auto On peut donc créer une instance d'autoroute: ai avec la fonction de création d'instance: make-auto.? (setq al (make-auto 'al 20 '(a2 a3))) = #(#:Tclasa:Autoroute. #[al 20 (a2 a3)]) On souhaite donner le signe conventionnel ( ) pour représenter toutes les autoroutes à l'échelle de 1: On définit donc une procédure-variable:? (de {Autoroute}:signe-cv (autoroute) '( )) = #:Tclass:Autoroute:signe-cv Par un envoi d'un message, on peut obtenir le signe conventionnel de l'autoroute ai à l'échelle de 1 : ? (sendq signe-cv al) = ( ) Si une autoroute européenne (supposons son existence) al 1 est une instance de la classe Auto-euro qui est une sous-classe de la classe Autoroute:? (deftclass {Autoroute}:Auto-euro ) = #:Tclass:Autoroute:Auto-euro? (deimake {Auto-euro} make-euro (nom largeur voisins)) = make-euro

87 82 Chapitre 5. Lisp et objets? (setq ail (make-euro 'all 20 '(al))) = #(#:Tclass:Autoroute:Auto-euro. #[all 20 (al)]) Normalement, par l'héritage de propriété de la sur-classe Autoroute, ail a le même signe conventionnel qu'une autoroute normale telle que al:? (sendq signe-cv ail) = ( ) Pour qu'une autoroute européenne soit représentée autrement qu'une autoroute normale, on peut redéfinir le signe conventionnel de la classe Autoroute-euro par ( ):? (de {Autol}:signe-cv (auto-euro)? '( )) = #:Tclass: Autoroute : Auto-euro :signe-cv? (sendq signe-cv al) = ( )? (sendq signe-cv ail) = ( ) Le même signe conventionnel représentant al n'a pas été modifié. Au moyen d'une vraie variable de classe La définition des variables de classe permet une programmation plus déclarative que procédurale; dans ce dernière, on est parfois obligé de vérifier le type de la classe d'un objet avant de lui donner une valeur cherchée. On peut définir une variable de classe en deux étapes séparément: on reprend la même classe de Autoroute défini précédemment. Initialisation de la variable avec la valeur donnée:? (setq {Autoroute}:couleur 'rouge) = rouge Comme pour une variable d'instance toujours, une variable de classe telle que couleur de la classe Autoroute et la fonction d'accès correspondante: {Autoroute}:couleur portent le même nom; elles sont implantées toutes deux dans le package de leur classe d'appartenance: #:Tclass: Autoroute par exemple. Une variable de classe ne fait cependant pas partie du prototype d'instance détenu par la classe et n'est donc pas dupliquée lor des créations d'instances:

88 5.2. Ceyx 83? (setq al (make-auto 'al 2 ()) = #(#:Telass:Autoroute. #[ai 2 ()])? (send 'couleur al) ** send : Undefined semantic : (#:Tclass:Autoroute couleur)» Définition de la méthode d'accès à la variable sur le modèle des méthodes d'accès aux variables d'instance:? (de {Autoroute}:couleur (self. valeur) (if valeur ; une écriture (setq {Autoroute}:couleur (car valeur)) ; une lecture {Autoroute}: couleur)) = #:Tclass:Autoroute couleur Afin de pouvoir simuler un envoi de message à la classe, le symbole représentant la classe est ensuite valué avec une instance de la classe:? (setq {Autoroute} (omakeq Autoroute)) = #(#:Tclass:Autoroute. #[() () ()])? {Autoroute} = #(#:Tclass:Autoroute. #[() () ()])? (type {Autoroute}) = #:Tclass:Autoroute Cette fonction ramène en valeur une instance du modèle {Autoroute} qui est une instance de défaut de la classe {Autoroute}. Le rôle de cette instance étant de fournir à la fonction send le package à partir duquel est recherchée la méthode d'accès à la variable de classe; seul son type, donné par son car, est utile. Le cdr, c'est à dire le vecteur regroupant les valeurs des variables d'instance, peut donc être supprimé et remplacé par la liste vide:? (setq {Autoroute} (tcons '{Autoroute} ())) = #(#:Tclass:Autoroute)? {Autoroute} = #(#:Tclass:Autoroute)? (type {Autoroute}) = #:Tclass:Autoroute [15] propose une définition de la fonction devarclass permettant de réaliser automatiquement les différentes opérations à partir des couples (variable. valeur)s qui lui sont donnés en paramètres: (dmd devarclass (class. var-vals) '(progn,c(mapcan ; pour tous les couples var-vals

89 84 Chapitre 5. Lisp et objets (lambda (var-val) (let ((sym (symbol class (car var-val)))) ; la variable dans le package de la classe (list ; initialisation de la variable de classe '(setq,sym,(cadr var-val)) ; crveation la fonction d'acc\'es '(setfn '.sym expr '((sell. valeur) (if valeur (setq,sym (car valeur)) >sym)))))) var-vals) ; affectation de la fausse instance a la classe (setq,class '.(tcons class ())))) Ensuite on peut créer des variables couleur, type signe-conv de classe pour toutes la classe {Autoroute}:? (devarclass {Autoroute}? (sign-conv»( ))? (type 'autoroute)? (couleur 'rouge)) = #(#:Tclass:Autoroute) On peut visiter les valeurs d'une instance al:? (sendq couleur {Autoroute}) = rouge? (sendq couleur al) = rouge ou donner une nouvelle valeur:? (sendq couleur {Autoroute} 'jaune) = jaune? (sendq couleur al) = jaune On peut également donner une nouvelle valeur à une variable par l'intermédiaire d'une vraie instance al au lieu de la fausse instance {Autoroute}, mais qui sera également une nouvelle valeur de toutes les autres instances, ce qui justifie le caractéristique de variable de classe:? (setq a2 (make-auto 'a2 '23m '(al))) = #(*:Tclass:Autoroute. #Ca2 23m (al)])? (sendq couleur a2) = jaune? (sendq couleur a2 'verte) = verte? (sendq couleur al) = verte? (sendq couleur {Autoroute}) = verte

90 5.3. Common Lisp Object System: CLOS 85 On peut également redéfinir la valeur d'une variable de classe dans les sous-classes sans changer celle de la sur-classe, soit Àutoroute-prive est une sous-classe de la classe Autoroute, et api en est une instance? (deftclass {Autoroute}:Autoroute-prive ) = #:Tclass: Autoroute :Autoroute-prive? (type api) = #:Tclass: Autoroute :Autoroute-prive? (sendq couleur api 'vert) = vert? (sendq couleur {Autoroute}) = rouge ; comme precedent, sans changer Une classe qui n'a qu'une seule instance n'a aucun intérêt particulier d'avoir des variables de classe. Un changement de structure (par exemple, un ajout des variables d'instance) de la classe n'entraîne qu'un minimum de changement de l'instance déjà créée avant le changement de la structure de sa classe mère. Mais l'ajout des variables de classe à une classe, même avec de multiples instances créées ne nécessite aucun changement pour les instances créées auparavant. Dans notre implantation, une variable de classe d'une classe, comme une variable d'instance, reste une variable de classe dans les sous-classes aussi loin que l'héritage de classe à sous-classe puisse fonctionner. Pour Ceyx, il s'agit plutôt un ensemble d'outils permettant de perfectionner l'interprète Le-Lisp, sans perturber son fonctionnement habituel ni son efficacité. Toute la puissance des constructions Lisp est conservée pour l'écriture des méthodes, qui utilise indifféremment les appels fonctionnels classiques et envois de message. 5.3 Common Lisp Object System: CLOS Common Lisp comporte déjà quelques constructions objets, avec notamment la fonction deistruct, comme en Le-Lisp, pour définir des structures analogues aux enregistrement record Pascal. L'option include permet de réaliser un mécanisme rudimentaire d'héritage simple de variables, mais la notion de méthode n'existe pas. CLOS est un véritable système objet, avec une syntaxe héritée de Common Lisp, un mécanisme d'héritage multiple fondé sur un algorithme de linéarisation, des fonctions génériques unifiant l'appel de fonction et l'envoi de message, ainsi que des mécanismes de combinaisons de méthodes et de redéfinition dynamiques des classes inspirés de Res Flavors. Classe et instantiation Une classe regroupe un ensemble de slots qui sont des variables d'instance possédant des propriétés. Elle se définit avec la fonction def class: (defclass Autoroute (Routea2chaussees) ((nom allocation instance ; les superclasses ; le premier slot ; variable d'instance

91 86 Chapitre 5. Lisp et objets type string) ; le type du slot (couleur : allocation : classe ; variable de classe type string initions 'noir) ; valeur initiale (largeur type fix initarg largeur) autorise l'initialisation when (axe ; creation d'instance type cons initarg axe reader lire-axe) ;font. de lecture de la valeur de axe (lares type cons initarg lares) (lvoisins type cons initarg lvoisins) (Ines type cons initarg Ines)) ( documentation ''ING 1990'')) commentaire Pour créer une instance d'une autoroute avec A4 comme nom, largeur non encore connue (de valeur: ()), (pi p2) comme axe, avec al comme arc, voisins non encore connu, si comme noeud: (setq A4 (màke-instance»autoroute 'A4 largeur () '(pi p2) '(al) *(sl))) La redéfinition d'une classe est possible, le système se charge de modifier en conséquence les instances de la classe, ainsi que ses sous-classes et leurs instances. Les fonctions génériques En général ia sélection de la méthode invoquée par un envoi de message est fonction de la seule classe du receveur qui est le premier argument du message. C'est sur ce premier argument qu'est fait le décodage de type permettant de trouver la fonction à appliquer en profitant des informations sur le reste des arguments. CLOS permet d'avoir plusieurs receveurs classes, c'est-à-dire que la sélection se fait pour chaque argument du message: l'objet receveur n'est plus différencié des autres arguments du message. Par exemple, la même opération écarter peut être appliquée: à trois carrefours: (écarter carfl cari2 cari3)

92 5.4. KEE 87 à trois routes: (écarter routai route2 route3) ou encore à une route et deux carrefours: (écarter routai carf2 carf3) Le résultat sera différent en fonction de produit cartésien des classes de ses arguments. Il est possible d'obtenir ce résultat en Lisp pur en testant le type des arguments, mais CLOS réalise ce travail automatiquement en utilisant la notion de fonction générique. Un problème d'efficacité se pose quand le nombre des arguments s'accroît pour la définition des méthodes d'une fonction générique et pour assurer le déclenchement effectif de la méthode désirée. Cette notion de fonction générique se trouve également en Ceyx décrit ci-avant, avec les bi-méthodes, la sélection de méthode se fait en fonction du type des deux premiers arguments du message. 5.4 KEE Il existe de nombreux outils informatiques pour aider les concepteurs de logiciels, en particulier de systèmes experts: des générateurs des systèmes experts tels que KEE, ART, SMECI. Il était question qu'on se serve d'un de ces outils pour le travail de cette thèse. Malheureusement, l'auteur n'a eu l'occasion de se familiariser de KEE qu'à la fin de cette thèse. Cependant KEE mérite d'être mentionné pour son ensemble d'outils conçus pour aider les concepteurs de systèmes experts. Développé autour de UNITS, Le système KEE est un système hybride dans le sens où il associe plusieurs concepts de bases de l'ia: la programmation orientée objets (développé autour de UNITS), la programmation par règles de production (la programmation logique avec les principes d'unification et d'association a été associée), dans un environnment fonctionnel avec le langage Lisp. La version 3 sur station de travail SUN est basée sur Sunview, disposant d'une riche interface orientée fenêtre et graphique. L'objectif d'un tel outil est de fournir au concepteur les outils informatiques lui permettant de se focaliser plus sur ses problèmes que sur la maîtrise des langages de programmation. Pour cela il permet, en principe: de modéliser rapidement un prototype de système expert,» d'être facilement manipulable pour qu'un expert puisse sans un long apprentissage, construire l'ensemble de ses règles et de ses objets, de faire évoluer le prototype de système final robuste,». d'être ouvert sur l'environnement Lisp de la machine hôte, pour autoriser de finitions à la convenance de l'utilisateur. En tant que langage objets, la particularité de KEE réside dans la définition de l'instanciation et de l'héritage. Les deux notions sont, en effet, regroupées en un même mécanisme de transmission d'information entre objets. Ce mode de transmission est très sophistiqué et peut être paramétré à l'aide d'un grand nombre d'opérateurs.

93 88 Chapitre 5. Lisp et objets Dans la pratique, KEE est assez lourd, sa maîtrise complète demande la connaissance du langage Lisp et un investissement important. Il est beaucoup utilisé pour construire des maquettes et peu de systèmes opérationnels sont connus.

94 Partie III Réalisation

95

96 Chapitre 6 Modélisation des opérations graphiques L'histoire nous montre que l'évolution de la cartographie a toujours tendu à une nécessaire adaptation aux besoins des usagers toujours plus nombreux et plus exigeants en utilisant es techniques de pointe les plus efficaces en matière de conception, de rédaction, de reproduction et d'impression. L'évolution actuelle passe par une automatisation du recueil de l'information, du traitement des données et de leur transcription graphique. Le premier obstacle est la modélisation et quantification de tous les tâches du processus de la généralisation. Ceci constitue purement un problème cartographique plutôt qu'un problème informatique. Ce chapitre va dans cette direction en discutant les divers problèmes pour identifier et classer les problèmes et en proposant des solutions. Nous avons noté que la représentation graphique, moyen d'enregistrement, de traitement et de communication de l'information géographique, est un langage qui a son vocabulaire et sa grammaire, donc, par conséquent, ses règles lexicales et syntaxiques. Que, jusqu'à présent, ces règles aient été appliquées inconsciemment et sans formulation n'implique nullement leur inexistence et l'impossibilité de les énoncer sous une forme mathématique. Nous avons constaté au chapitre 2 que, en réalité, les propriétés des variables visuelles s'expriment sous forme de longueur, d'équivalence, d'ordre ou de rapports numériques, et que les règles de lisibilité s'énoncent en termes numériques. Peu de modélisation structurale a été faite dans le cadre de la généralisation automatique. La difficulté de l'automatisation de la rédaction ou de la généralisation cartographique ne réside pas dans le découpage en fonctions ni même dans l'écriture de ces fonctions, mais surtout dans leur mise en oeuvre [8, page 23]. En fait, les principes de la généralisation cartographique sont bien beaux à raconter, mais difficiles à réaliser. Nous essayons dans ce chapitre de montrer quelques aspects de modélisation des principes des opérations de la généralisation, qui sont justiciables d'une formulation plus ou moins mathématique si on prend la peine de procéder de façon logique et 91

97 92 Chapitre 6. Modélisation des opérations graphiques méthodique. Certaines opérations sont globales, d'autres sont locales. Dans les chapitres suivants, on abordera quelques réalisations sur des exemples réels. Vue les différences et les qualités que la méthode procédurale et la méthode déclarative en informatique peuvent rapporter, on essaye de modéliser des processus procéduraux et des formalismes déclaratifs pour pouvoir bénéficier des avantages de deux méthodes. 6.1 Les mesures Les notions ci-dessous, toutes relatives à la notion générale de mesure, sont à la base de la base de reconnaissance des formes des objets géométriques et de leur relations. La liste ci-dessous n'est pas exhaustive. Nous reviendrons sur ces notions dans la suite de l'exposé. Mesure de densité : cette mesure est évaluée pour plusieurs objets. Il s'agit plus précisément de nombre d'objets ponctuels, linéaires ou zonaux par unité de surface. Mesure de distribution : cette mesure concerne la distribution de l'ensemble des objets de la carte. On peut estimer la dispersion des objets ponctuels d'une même catégorie par rapport à leur barycentre (voir la section 6.5.3). Mesure de longueur : cette mesure concerne les objets linéaires tels que les voies de communication. Mesure de sinuosité : comme la mesure précédente, elle concerne les objets linéaires et renseigne sur les changements d'angle entre les segments de cet objet. Mesure de forme : la forme joue un rôle important pour déterminer si un objet est représentable à une nouvelle échelle. Cette mesure concerne les geometries des points, lignes, ou surfaces, etc. Mesure de Distance : La distance entre les objets élémentaires géométriques tels que: points, lignes, surfaces peut être évaluée par la plus courte distance perpendiculaire selon leur formes. Cette mesure de distance indique si la généralisation est nécessaire si des conflits apparaissent après une réduction d'échelle. Certaines mesures sont faciles à déterminer et évaluer dans le cadre numérique, d'autre non. Il existe d'autres mesures abstraites concernant la distribution spatiale telles que homogénéité, symétrie, complexité. Ces dernières sont difficiles à calculer. Toutes les mesures sont en fonction de l'échelle, du but de la carte, etc. Elles sont à la base des opérations de la GC. 6.2 Règles de sélection Cas général L'aspect sélectif de la généralisation intervient chaque fois qu'il y a une réduction d'échelle, ou changement de but ou de thème de la carte. Les graphismes occupent

98 6.2. Règles de sélection 93 toujours une place proportionnellement égale ou plus souvent beaucoup plus grande que dans la réalité. Par conséquent, soit par option, soit par manque de place, en général, tout objet est menacé par la peine de mort: Règle-de-sélection 1 Tout objet a le droit de rester tant qu'il y a de la place et risque sinon d'être éliminé. On doit s'assurer qu'un tribunal se charge de juger avant de condamner suivant sa propre loi. Cette loi est constituée par les règles ou critères de sélection. Au niveau de la conception, la sélection se traduit, d'une part par une réduction des catégories et des classes d'objets représentés, qui se traduit, soit par l'abandon des classes inférieures, soit par l'élargissement des intervalles séparant les paliers conservés, en valeurs quantitatives ou qualitatives, soit par une modification de l'implantation au niveau de schématisation. Par exemple, sur le tableau 2.3 de la page 28, il existe une douzaine de classes de routes et chemins sur la carte de France à l'échelle 1/25 000, et 4 seulement sur la carte à 1/ où les routes principales (classement qualitatif) regroupent dans un signe unique, les routes principales de plus de 7 m et de moins de 7 m (classement quantitatif) différenciées aux échelles plus grandes. Le problème est de choisir les objets à conserver ou à éliminer. La tendance est en général de disposer au mieux de la surface du papier disponible, c'est à dire de porter autant de détails que possible, ce qui risque d'occuper la place nécessaire aux objets essentiels. Il est difficile de traiter ce problème sans une vision d'ensemble des détails de même nature considérés indépendamment des autres catégories de détails; on trouve ici une justification des préparations de généralisation qui sont, en réalité, des préparations de sélection; elles correspondent aux problèmes suivants: choix des catégories des objets à représenter sur la carte, classement selon de nouvelles catégories ou de nouvelles classes des détails hiérarchisés adaptées à l'échelle de la carte, choix des détails ponctuels, linéaires et zonaux à représenter parmi ceux qui font l'objet d'une figuration facultative, sélection et position des cotes et des écritures, etc. On a une toute première règle de sélection quantitative : Règle-de-sélection 2 Tout objet qui est inférieur à la limite du seuil de isibilté 1 est èliminable. On précise ici que le mot èliminable indique l'action de suppression est simplement possible, et non certaine, car d'autres règles plus puissantes pourraient peut être sauver un objet éliminé par une règle moins puissante, ainsi que le précise la règle de sélection qualitative ci-dessous: Règle-de-sélection 3 Tout objet est maintenu si son importance le justifie s'il était peut-être jugé èliminable par d'autres règles). (même définit dans la section 2.4

99 94 Chapitre 6. Modélisation des opérations graphiques On a deux critères principaux: Critère 1: Spécifications relatives à la carte: qualitatives et quantitatives. On définit les détails à faire figurer par leur nature ou leur importance. Par exemple, on peut supprimer toutes les routes selon un critère: qualitatif. «non classées nationales ou départementales,» non revêtues. quantitatif: dont la largeur est inférieure à 5 m, Il est possible que les objets habituellement éliminés puissent être maintenus dans une région de faible densité graphique. Il est également possible qu'un élément qui doit être éliminé à cause de sa petite surface puisse être maintenu si son importance le justifie. Critère 2: entre es objets dont la représentation est facultative, on doit essayer de maintenir le caractère régional et les contrastes d'occupation du sol. Ces deux critères ne sont pas indépendants, ils doivent être bien combinés ensemble. Par exemple, selon le critèrel, on supprime beaucoup d'objets quand ils sont nombreux, et selon le critère'2 on maintient les objets quand ils sont rares, au risque d'aboutir à une égalisation de l'image cartographique, dénaturant le caractère régional et réduisant les contrastes qui apparaissent dans la nature et sur les cartes de base. Il est difficile d'échapper à cette tendance si on ne s'astreint pas à respecter strictement des règles fixant le nombre d'objets qui doivent figurer ou disparaître à chaque changement d'échelle, surtout dans la catégorie d'objets à figuration facultative. Dans la section suivante, on essaye d'établir et formuler des règles de sélection quantitative Idées théoriques de sélection Si on désigne par Ni le nombre d'objets figurant sur la carte initiale dont l'échelle est 1/Ei, et Nj le nombre d'objets conservés sur la carte dérivée finale dont l'échelle est 1/Ej, c'est à dire avec E > E, on doit admettre que les relations qui lient M et Nj est la suivante: tf/ = Wj(Jr) n (6-1) quand n varie de 0 à 4, l'équation 6.1 donne des relations différentes. a = 0: la carte finale est une simple réduction à la photocopieuse de la carte initiale; tous les détails sont conservés: N f = Ni (6.2) Ceci correspond à des cartes de très grandes échelles avec une représentation homométrique et une surface de papier amplement suffisante.

100 6.2. Règles de sélection 95 n = 1, 2, 3: des relations intermédiaires entre les 2 extrémités: n = 0 et n = 4, (6.3) (6.4) N f = NJ( -)* (6.5) n = 4: la densité des objets est identique sur les 2 cartes: le nombre d'objet Nf est proportionnel au rapport des surfaces de papier et inversement proportionnel au carré du rapport des dénominateurs des échelles, soit: Nf = ^( J^) 2 (6.6) cette dernière règle est une caractéristique des cartes générales, à partir de l'échelle de 1/ , lorsque les graphismes sont à la limite de la lisibilité et que la densité maximale est atteinte. Ces cinq relations se traduisent par les pourcentages de détails conservés dans le tableau 6.1 sur la page 96 quand la réduction d'échelle M*- varie de 2 à 20. On voit que quand les échelles sont voisines, c'est à dire que le facteur de réduction d'échelle est moins de 5, la sélection est relativement plus facile, on doit choisir un objet sur deux ou sur 10 sur la carte initiale, la liberté de choix est relativement limitée, on apprécie mieux le choix fait. Quand le facteur est plus grand, le choix est plus grand, on laisse plus de liberté au dessinateur, ce qui risque augmente d'interprétation individuelle. De plus, dans ce cas, les graphismes à dessiner sont gros, la généralisation est délicate car les humains auront du mal à apprécier l'espace disponible et on peut avoir tendance à surcharger la carte. Les différences de conception risquent d'introduire un manque d'homogénéité. Cependant l'utilisateur de la carte ne juge pas en fonction de la densité des objets représentés et n'est pas à même de comparer la densité des objets qui ont été conservés avec celle des objets supprimés C'est pourquoi la plupart des auteurs cartographes qui se sont penchés sur ce problème s'accordent pour adopter la règle de sélection exprimée par Töpfer et Pillewiser sous la forme suivante: Nf = NiC h C. Ci, est une constante dite d'amplification symbolique qui prend les valeurs suivantes

101 96 Chapitre 6. Modélisation des opérations graphiques Détails conservés en % en rapport en % en rapport en % en rapport en % en rapport en % en rapport en % en rapport 1 100% i T. 100% i ï 100% I 100% I I 100% I 100% r 1 î v«*) 70.7% % % i % 2 s 31.6 % % i 5 Relation -rf- = Ef 50.0% % i % i 20.0% i s 10.0 % 1 in 5.0% 1 ^ 35.4% i % i s 12.5 % i 8.9% 3.1% i an 1.1% i 100 if? 25.0% i % % TT5 4.0% 9S 1.0% J. Tôô" 0.25 % I 400 Tableau 6.1: Tableau de pourcentages de détails conservés en fonction du facteur de réduction. * quand l'amplification conventionnelle correspond au rapport des échelles: C 4 = l quand le détail n'est pas amplifié: C h = ce qui ramène à la relation 6.2: Nj = Ni, quand le signe conventionnel correspond à une amplification importante: C h : ce qui ramène à la relation 6.4: N = Ni{^-) C z est une constante de forme symbolique: * C z = 1, quand les signes conventionnels conservent des dimensions identiques au cours de la généralisation. sinon, pour tenir compte des variations de dimensions du signe, épaisseur des lignes ou surface du symbole, entre la carte initiale (D ) et la carte dérivée (Dj):

102 6.2. Règles de sélection 97 Ce coefficient tient donc compte de raffinement comme du grossissement éventuel des graphismes utilisés. Bien entendu, la relation ci-dessus précise le nombre d'objets à maintenir sur la carte dérivée, en laissant au préparateur l'initiative de conserver tel objet plutôt que tel autre, mais elle assure l'homogénéité du choix quantitatif pour toutes les feuilles d'une même série et elle réduit l'influence de l'interprétation individuelle. Les relations de sélection citées précédemment pour des objets ponctuels se révèlent parfaitement efficaces puisqu'elles conservent les vrais rapports de densité; elles sont peu adaptées dans le traitement des carrefours, puisque ces derniers occupent une surface non négligeable. Mais dans le cas linéaire où les éléments ne sont pas aussi réguliers, elles ne sont qu'une référence plus théorique que pratique Cas linéaire Quand l'épaisseur des signes conventionnels linéaires simples est pratiquement constante, ce qui facilite la codification, le choix se fait habituellement selon des critères de largeur, de longueur, en conformité avec les règles de lisibilité définies dans la section 2.4. Bien que quantitatif, le critère de longueur n'apporte pas une solution satisfaisante au problème de la généralisation car, sauf cas particulier, il n'est pas en corrélation avec la densité du réseau des voies de communication ou du réseau hydrographique; son application systématique et successive pouvant dénaturer totalement l'aspect géographique local, il vaut mieux éviter de trop se servir de cette règle. En effet, les éléments linéaires, conservés en vertu de leur nature, peuvent être choisis localement en fonction de leur longueur, de leur largeur, ou de tout autre facteur géographique. Si Largeur( rou(e ) est la largeur réelle d'une route, on a généralement la règle de sélection purement quantitative (en ignorant son importance) suivante: Règle-de-sélection 4 Si Lar&e^ > < 0.1mm (6.7) alors cette route ne sera pas figurée sur a carte à partir de l'échelle Cette règle quantitative est corrigée par la règle qualitative: Règle-de-sélection 5 Si l'indice de l'importance d'une route est plus grand que l'indice de seuil de sélection 1(E), alors elle doit être maintenue sur la carte. L'indice de seuil de sélection 1(E) varie en fonction des spécifications relatives à l'échelle E. Par exemple, sur une carte à partir de l'échelle de 1/ , seuls les chemin d'exploitation, les sentiers, les ruelles d'agglomération ne sont plus figurés. Si on définit Seuildelong{E} comme le seuil de longueur de route qu'on fait figurer sur une carte à l'échelle l/e. Règle-de-sélection 6 Soit Longueur^otlte ) l/e la longueur réelle de la route, si =-* '- < Seuildelong{E} (6.8) cette route ne sera pas figurée sur une carie à l'échelle l/e.

103 98 Chapitre 6. Modélisation des opérations graphiques applicable aux échelles 1 < l/5 k v^> 1/25 k- 1/50 k. _ Relation -if- = * 1/50 k- 1/100 k vafj-) 3 1/100 k-l/lm ( ) 2 > 1/1 M Tableau 6.2: Tableau de relation de sélection utilisable pour les échelles Le Seuildelong{E} varie d'une échelle à l'autre, mais on a toujours pour un tronçon ou un segment individuel : Seuildelong{E} > 1mm (6.9) Si on connaît uniquement la longueur figurée Longueur^ d'une route à l'échelle 1/Ei, alors sur une carte à l'échelle \/E, Ej > Ei~. on a une règle: Règle-de-sélection 7 Si alors elle éliminable sur la carie à l'échelle Longueur{Ei} < 0.3-J-mm (6.10) Ei Les relations de la section sont valables pour les réseaux linéaires compte tenu de la densité moyenne du réseau, voir le tableau 6.2 dans [1]. On confirme que par expérience, la densité graphique maximale est généralement atteinte pour la carte à 1/ et au delà de cette échelle, seule la relation 6.6 est utilisable. Pour les échelles intermédiaires, une solution simple mais satisfaisante, en accord avec la règle de sélection générale, consiste dans l'application de la relation 6.3 entre les échelles de 1/ et de 1/50 000, de la relation 6.4 entre le 1/ et le 1/ et de la relation 6.5 entre 1/ et le Le cas zonal est un autre problème, tant aussi complexe! On n'en parlera pas davantage. 6.3 Règles de schématisation structurale l/ej Après la procédure de sélection, on a tous les détails de la future carte. La procédure de schématisation sera une précompilation de la carte en tenant compte de l'ensemble de la carte. Au stade de la réalisation, après l'aspect sélectif, c'est la schématisation structurale qu'il convient de définir et, si possible, de normaliser. On se contentera de montrer quelques aspects pratiques sur la schématisation des éléments linéaires; il s'agit spécialement des lignes individuelles comme les axes de voies de communication. Pour bien apprécier et comparer les opérations, on suppose qu'on travaille sur un fond de la carte initiale de l'échelle l/ <, en prenant les signes conventionnels de la carte finale de l'échelle \je, c'est à dire que les signes de la carte finale sont amplifiés ~ft ^ ' s "

104 6.3. Règles de schématisation structurale 99 Figure 6.1: Axes de voies de communication Ces lignes sont matérialisées sur la carte par des traits simples (figure 6.1:a) de largeur finie ou des signes conventionnels linéaires (figure 6,l:b) qui correspondent à une certaine zone de terrain dont l'encombrement transversal est égal ou, plus souvent, supérieur à celui du détail considéré. Dans une représentation non généralisée, simple réduction d'échelle, le signe de cette zone de terrain viendrait se superposer exactement sur la figuration à grande échelle de la ligne considérée: voir la figure 6.2:(c), (d). Les petites sinuosités, les irrégularités et les dentelures contenues à l'intérieur de la zone seraient reproduites sur ses bords en leur donnant un aspect irrégulier et déchiqueté qui serait soit imperceptible à petite échelle, soit interprété comme une irrégularité de trait résultant de la mauvaise qualité du dessin: voir la figure 6.2. Les indentations plus importantes, les tracés compliqués et contournés provoqueraient des superpositions de parties voisines d'une même zone ou de zones différentes mais contiguës, se traduisant, sur la carte à petite échelle, par une impression d'épaississe ment du trait ou de juxtaposition de traits, sans signification apparente, voir la figure 6.2:(d). La schématisation comporte donc la suppression des sinuosités et des angularités de faible amplitude et l'amplification de celles qui sont significatives au regard de l'échelle et en fonction de leur importance relative; c'est, en réalité, un problème de sélection de formes. La schématisation affecte toutes les échelles, sans exception, car, même à très grande échelle, le point du crayon du topographe ou la précision du grain de pixel couvre une certaine zone plus large que l'emprise réelle du détail dessiné. Il est évident, d'autre part, qu'une ligne droite ou courbe simple, représentant par exemple un élément du réseau géographique, n'est pas affectée par la schématisation, et une ligne quelconque subit une déformation d'autant plus grande que ses dentelures sont nombreuses et de faible amplitude. Ceci se traduit par des discordances sur les longueurs de tracés de lignes différentes figurant sur une carte identique et par des différence entre les longueurs de tracé d'une même ligne sinueuse suivant l'échelle de la carte.

105 100 Chapitre 6. Modélisation des opérations graphiques Figure 6.2: Quand l'échelle réduit. On admet généralement qu'il est souhaitable sinon indispensable de conserver la figuration de certains accidents caractéristiques qui, en toute rigueur, devrait disparaître, en raison de leur dimension, mais qui sont amplifiés, donc déformés, en raison de leur importance locale. Le choix de ces accidents est nécessairement empirique, il exige du cartographe une grande expérience, des connaissances morphologiques et une vue d'ensemble des divers éléments de la carte puisque l'amplification d'un détail est justifiée par l'existence d'un phénomène différent; enfin, il se traduit par des déformations volontaires mais localisées et non identifiables qui risquent d'être transmises et amplifiées par les schématisations ultérieures jusqu'au moment où l'image cartographique est dénaturée de façon injustifiée. Donc, une carte à 1/ réalisée par généralisation directe à partir de documents de base à 1/ donne souvent une image plus expressive et moins déformée que la même carte dérivant d'un fond identique mais par l'intermédiaire des généralisations successives à 1/ puis 1/ Néanmoins, la méthode des dérivations successives étant la seule qui soit à la fois rapide, économique et pratique avant que le temps d'un processus d'automatisation plus complète soit arrivé, il est parfaitement normal et logique de l'utiliser pour les opérateurs humains en prenant des précautions pour éviter un effet caricatural excessif, d'où une grande justification pour un processus de généralisation automatique qui se différencie des humains par sa grande capacité de calcul scientifique quelque soit l'importance de données, ce qu'on va présenter des processus dans les sections suivantes sont en principe adaptées à toutes les réductions des échelles sauf cas spécial.

106 6.4. Signes linéaires Signes linéaires Definitions des segments, arcs, tronçons Habituellement, les lignes sont représentées par une succession des points équidistants dont Péquidistance est de l'ordre de l'erreur graphique. Par conséquent, la méthode numérique classique du traitement de ligne est de réduire le nombre de données en ne conservant qu'un point sur n (n étant le rapport des échelles). Le problème est que cette numérisation est redondante; la réduction des données risque d'éliminer des points remarquables et caractéristiques. Ici, nous supposons qu'une ligne quelconque soit numérisée par des segments droits dont la distance est variable, et la distance minimum définie a priori. Seuls les coordonnées de deux extrémités d'un segment droit sont conservées. Donc une ligne droite est représentée simplement par ses deux extrémités. Nous essayons d'examiner les procédés automatiques de généralisation de ces lignes et nous verrons si certains d'entre eux peuvent donner satisfaction et se concrétiser par des normes graphiques. Figure 6.3: Segment, arc, tronçon, route Pour chaque signe linéaire, on les coupe par des segments, des arcs, et des tronçons. On précise ci-dessous ces notions qui seront utilisées dans la suite de l'exposé. Définition 1 Un segment est une portion de droite définie par ses 2 points extrêmes. Définition 2 Un arc est une suite de segments sans branches au milieu. donc les deux extrémités d'un arc sont forcément reliés avec d'autres arcs. Définition 3 Un tronçon est une suite d'axes. on définit la notion de route au sens graphique numérisé: Définition 4 Une route est un tronçon ou une suite d'axes.

107 102 Chapitre 6. Modélisation des opérations graphiques Sur la figure 6.3, plp2, p2p3, p3p4 sont des segments, plp2p3, p3p4, p4p5sont des arcs, p3p4ps, plp2p3p4p5 sont des tronçons, pip2p3p4p6 est une route, p2p3p4 n'est pas un arc, ni p3p4ps Définition de la convexité On définit ensuite la notion de domaine de convexité d'un graphe à trois points. Cela va servir comme base à la fois pour la linéarisation locale d'une ligne, et pour le traitements des carrefours. Définition 5 Le domaine de convexité d'un tronçon à S points est l'intérieur de l'enveloppe convexe de ces 3 points. Figure 6.4: Enveloppe convexe de 3 points Sur la figure 6.4, l'enveloppe convexe de 3 points: pi, p2, et p3 est l'intérieur du triangle (plp2p3), cet enveloppe convexe est donc le domaine de convexité de ces 3 points. On définit ensuite une notion de domaine de convexité d'un graphe linéaire continu. Définition 6 Le domaine de convexité d'un graphe linéaire continu est le domaine formé par le graphe linéaire lui même plus, si cette ligne n'est pas encore fermée à ses extrémités, le segment de droite qui relie les deux points extrêmes. Le domaine de convexité de 3 points: pi, p2, p3 sur la figure 6.4 est aussi le domaine de convexité de la ligne pl-p2-p3. Une propriété évidente: Propriété 1 Le domaine de convexité d'un graphe à trois points est toujours convexe. La propriété suivante décrit l'évolution d'un domaine de convexité. Propriété 2 Quand l'un des 8 points se déplace dans leur domaine de convexité, ce domaine rétrécit. Sur la figure 6.4, quand le point p2 s'est déplacé au point po qui est à l'intérieur du domaine (plp2p3pl), le domain de convexité est devenu (plp0p3pl) qui est plus petit que le domaine (plp2p3pl).

108 6.4. Signes linéaires 103 Définition 7 Quand le domaine de convexité d'un graphe rétrécit, on dit qu 'il devient moins convex«. Quand le domaine de convexité d'un graphe s'agrandit, on dit qu'il devient plus convex«. Définition 8 Pour que la convexité d'une ligne continue soit gardée après la généralisation, il faut que: la base du domaine de convexité reste la même, * le domaine de convexité après la généralisation soit indu dans le domaine de convexité d'origine. Propriété 3 Si une ligne est composée de trois points dans l'ordre: pi, p2, et p3, seul le déplacement, dans le domaine de convexité de cette ligne, du point du milieu, c'est-à-dire du point p2, garde la convexité de cette ligne. Quand le domaine de convexité d'un graphe linéaire devient moins convexe, cette ligne devient moins anguleuse. Figure 6.5: Les 2 domaines de convexité de 2 tronçons Nous supposons dans cet exposé que la convexité d'un arc ou d'un tronçon soit toujours par rapport à leurs deux points extrêmes Règles globales de schématisation On définit des règles importantes de linéarisation: Règle 1 Un arc ou tronçon rectiligne doit rester toujours rectiligne. Règle 2 Un arc ou tronçon convexe peut devenir plus convexe dans la limite autorisée ou tout droit, mais jamais concave. Règle 3 Un arc ou un tronçon concave peut devenir plus concave dans la limite autorisée ou tout droit, mais jamais convexe.

109 104 Chapitre 6. Modélisation des opérations graphiques La règle suivante concerne la relation entre un objet ponctuel et un objet linéaire qui ont une relation de proximité. Règle 4 Un objet ponctuel doit toujours garder sa position relative par rapport à un graphe linéaire voisin. C'est à dire que la généralisation du graphe doit conserver la propriété pour ce point d'être intérieur ou extérieur au domaine de convexité de ce graphe. Ainsi, un bâtiment qui se trouve d'un certain côté d'une route ne risquera pas de se retrouver de l'autre côté de cette route après généralisation. Toutes les opérations de généralisation sont strictement soumises à ces règles. Pour savoir la position d'un point par rapport à un graphe linéaire, rappelons nous le théorème de Cauchy: Soit C le graphe linéaire, S le segment des 2 extrémités de C, C C + S, D le domaine ouvert formé par C, alors on a: f M ={ 2 â SÍ le point P est dans D Je l 0 sinon (6.11) Dans notre graphe linéaire segmenté fini, les algorithmes seront plus aisément programmés Deux segments non alignés: virage Figure 6.6: 2 segments se croisent Comme dans la section 2.5 du problème de signe conventionnel, deux routes ont chacune une certaine largeur, (supposons que les traits de routes soient noirs, voir la routai et route2 de la figure 6.6 de la page 104) quand elles se rejoignent, forment un domaine noir d'une certaine taille.

110 6.4. Signes linéaires 105 Selon leur largeur et la position de chacun, la taille de ce domaine sera différente aussi, sur la même figure: la routai de largeur u>i, la route2 de UJ 2, leurs axes se rejoignent au point pi, les axes forment un angle a entre le point pi et p2, il y a bien une longue distance, pi est appelé le point de croisement d'axes, P2 le point de croisement intérieur et P3 le point de croisement extérieur. La distance entre pi et ps est en effet la projection de largeur de la route2 sur l'axe de la routel, on appelle le segment pi et ps de cette projection comme segment de décalage, sa longueur u>2ti>i(a) comme distance de décalage sur l'axe de la routel. On trouvra également l'emploi de ces notions dans la section pour le traitement de carrefour. On essaye d'établir la relation entre la distance de décalage et les largeurs de deux routes et leur angle de croisement. Sur la figure 6.6 on a: p2p5 = (6.12) p4pè plp4 p4p5 plp5 - = = = = W-T, T p4p6 sin a w 2 2 sin a p2p5 tana W2 2 tan a plp4 + p4p5 (6.13) (6.14) (6.15) (6.16) donc, on aura généralement: W2W\(a) = plp5 = < w 2 /2 tul/2 tana u>i/2tana + u> 2 /2sina si si si sinon a = 0 ou a = ±7T w > a > 7r/2 ou V u>2 < w i a = T/2 (6.17) W\ < U>2 TT/2 < arcsin(u;i/w2) < T arcsin(tt;i/u)2) < a < ir On peut voir que si W2W\(a) > 0, la projection sera sur l'axe de la routel normalement. Si U>2 < lui < arc cos ( 1^2/1^1) < a (6.18) (6.19)

111 106 Chapitre 6. Modélisation des opérations graphiques on aura: u>2u>i (a) < 0 c'est-à-dire que la projection de la route2 de largeur wi sur la routel de largeur w\ se trouve sur la prolongation de l'axe de la routel. La distance diagonale entre pi et p2 est: plp2 trivial w'i + w\ 2V u 'l wi/2sina y] plp5 + p2p5 2 i ~ V^l + 2 COS aw l u '2 + 2 si SI SI / ou ou ou a = ir/2 a = 0 a = ±x TT/2 < a < 7T W2 < U>1 U>2 > U>1 (6.20).(6.21) ÎT/2 < arcsin(u;i/ui2) < ^ 3iTCsm(wi/w2) < a < ir *5 0 a ^ ±7T irfa? n/2 w 2 i. w x De l'équation 6.21, on voit que quand les deux segments sont connectés par un point miier, et quand l'angle entre ces deux segments a devient trop petit: a 0, la distance diagonale entre pi et p2 : plp2 s'accroît de façon inversement proportionnelle avec sin a, ce qui entraine un grand pic autour du point de croisement d'axes et que le hauteur de ce pic (plp2) devient trop importante. Egalement, on a: p3pî = pîp2 (6.22) P3 est le point du sommet du pic de rencontre de deux segments, plus a est petit, plus ce pic est pointu. Pour résoudre ce problème de grand pic, du coté du point p3, au point de croisement extérieur, c'est à dire à la rencontre de deux bords extérieurs, on pourra arrondir par un demi cercle de diamètre égal à la largeur de deux segments dans le cas où les deux segments sont de même largeurs, la moyenne de ces largeurs dans le cas contraire. Tandis que pour le coté intérieur (voisinage du point P2), on le laissera tel qu'il est. Par cet arrondisement de la zone de jonction de deux segments, les routes de la figure 6.2 de la page 100 deviennent comme sur la figure 6.7 de page Linéarisation locale Cas de petits segments isolés Soit Ei l'échelle initiale, E l'échelle dérivée finale, D cv la largeur du signe conventionnel d'échelle Ej, Voir la figure 6.8 : Df^; la longueur du segment P2P3, Si I«! < 10 (6.23)

112 6.4. Signes linéaires 107 Figure 6.7: Arrondir les coins des segments. 5~- &=*=*»*"" IlET^ Figure 6.8: Petits segments à supprimer. a < 10 PiPa <.6-fmm Ei < D cv -± Ei (6.24) (6.25) (6.26) alors le segment p- pz sera invisible ou confondu avec ses voisins, est sera donc supprimé. Si lai-lso"^ a alors c'est le point P3 qui sera enlevé, sinon ce sera p 2.

113 108 Chapitre 6. Modélisation des opérations graphiques Cas de petits segments reliés Si au moins 2 petits segments sont reliés ensemble, ils forment assez souvent de petites sinuosités. Quand le largeur de chaque route augmente, ces petits segments seront peut-être invisibles; sur la figure 6.9, on présente un tel cas. On essaye d'établir le seuil de visibilité pour un tel cas. Soit la base b\, coté d\, sa largeur w, d'après la section 6.4.4, on a: P1P2 = d 3 = b 3 = 64 =?<7^â + ) ^ < ^ 2 Uan ß sin ß w 2tan w 2 tan a w 2 sin a w 2 sin 7 (6.27) (6.28) (6.29) (6.30) AHM,ai di \ ck "v w i b 3 / ' h hx N 6 * Figure 6.9: Petites sinuosités pouvant être supprimées. soit h le hauteur, 62 la base après la déduction de largeur de la route; on a: P2P3 = di~d 3 P1P2 w w ~ l 2 tan a 2tanf W l l A _( + _) yß<ir/2 2 v F! tana tanf' 6 2 = w w 2 sin a 2 sin 7 h = P2P3sina (6-31) (6.32) (6.33)

114 6.4. Signes linéaires 109 Pour que cette sinuosité soit visible à l'échelle E, il faut que la base et la hauteur soient suffisamment grandes à l'échelle initiale : è 2 >.6mm- (6.34) Ei h > 0.4mm-/- (6.35) Ei A cause de la largeur de route, si la base 6o: après déduction de la partie mangée par la largeur de route, est d'environ moins de.&mm-çf- et leur amplitude moins de OAmm-^-, ces sinuosités seront invisibles, donc ces petits segments devront être enlevés. Supposons que cette sinuosité soit régulière: a y = ^j^, on aura ; w 62 = >i sin ^ w sini# = ^--JÍL. (6.36) cos ^ h = P2P3 sin a = cos-(di ) = d l cos TT ( 6-37 ) 2sin^ On peut voir que si la largeur de route devient grande, ou l'angle ß devient petit, la base et la hauteur de la sinuosité diminuent jusqu'à être cachés par la largeur de la route. Lorsqu'on linéarise une ligne anguleuse, on a tendance à supprimer toutes les petites sinuosités. La convexité de cette ligne risque donc d'être trop changée. Les règles globales de généralisation définies dans la section sont à prendre en compte. Linéarisation locale et globale On distingue deux sortes de linéarisations, locale et globale. Localement, on linéarise arc par arc en supprimant des petites sinuosités, des petits segments selon les règles évoquées précédemment, c'est à dire qu'on ne touche pas aux points de croisement; on parle donc de linéansation locale. Une ligne représentant une voie de communication n'est jamais seule, elle est toujours reliée avec d'autres lignes par des croisements qu'on appellera des carrefours. Pour garder les positions relatives de ces carrefours par lesquels une ligne est liée avec ses voisins, on a aussi des linéarisations à faire quand on fait translater cette ligne de façon globale. On sera donc obligé de déplacer le point de croisement au moment de la linéarisation; on pariera de linéarisation globale. On doit donc avoir une vue plus générale pour l'ensemble des graphes.

115 110 Chapitre 6. Modélisation des opérations graphiques 6.5 Règles d'harmonisation On a cité des règles de généralisation adaptées à des éléments séparés et indépendants par leur nature, leur implantation, leur forme. Dans la réalité, au fur et à mesure que l'on s'éloigne de la structure, de l'implantation et du nombre exact des objets, on accroît la part de convention et on risque, consciemment ou non, de rompre l'équilibre naturel de la carte en favorisant certaines catégories de détails au détriment des autres; alors que tous les éléments graphiques de la carte sont étroitement solidaires les uns des autres, leur sélection et leur schématisation doivent être équilibrées et coordonnées de manière à conserver au mieux les proportions relationnelles bien que certains détails privilégiés conservent leur position exacte et que les autres soient décalés. Ces conflits et ces décalages sont la conséquence inévitable de l'emploi de signes conventionnels et de la schématisation; au tableau 2.3 sur la page 28, une autoroute de 28 m sera représentée par un signe de.7mm sur une carte d'échelle 1: , soit 700 m à l'échelle de la réalité, ce qui donne une amplification à peu près de 25 fois de la réalité. Il existe deux sortes de conflits: local: ceci est dû aux sinuosités de lignes avec l'emploi de signe conventionnel. Il peut être détecté et résolu par la linéarisation local en supprimant les segments en question, (voir la section 6.4.5). global: ceci est dû aux superpositions et intersections entre les objets alors qu'ils devraient être écartés. Cette sorte de conflit demande une vue d'ensemble de la région ou de toute la carte. En résumé, tout conflit vient d'un problème d'espace: il manque toujours de la place. Figure 6.10: Superposition de deux signes linéaires Les décalages affectent non seulement les signes contigus mais également, dans les régions de planimétrie dense, les éléments situés à une certaine distance. Par

116 6.5. Règles d'harmonisation 111 exemple le signe d'une route repousse de chaque coté les détails qui la bordent, sur la figure 6.10 de la page 110, les axes de route2et route! n'étaient pas superposés l'un et l'autre, mais le largeur de chaque signe conventionnel fait que les routes s'intersectent, en plus, une distance de d qui est s#uil de séparation des lignes s'ajoute entre les 2 routes, une des deux ne peut plus garder sa propre position, ou bien encore l'une devrait être supprimée si elle n'est pas d'une grande importance, pour une plus grande clarté du signe conventionnel de l'autre. Selon la règle d'existence 1 de la page 93, on doit faire en sorte de garder tout ce qu'on peut; donc un premier essai de décalage est obligatoire, ensuite interviendra un essai de suppression. La généralisation aboutit ainsi à une égalisation apparente de phénomènes de dimensions réelles très différentes, égalisation qui fausse l'appréciation visuelle des rapports de surfaces. Les problèmes se posent: lequel décaler? lequel supprimer? Cela dépend de l'importance de chacun Hiérarchie des éléments Les règles d'harmonisation ont pour base l'adoption d'une hiérarchie préférentielle des graphismes en fonction de leur nature, certains restent en place, d'autres étant décalés. Les relations d'ordre devraient être définies selon la destination et le thème de la carte puisque la nature des détails primordiaux dépend de ces critères essentiels. En général, la liste de préférence sera: ligne hydrographique qui est presque toujours à sa position exacte; son tracé a une influence prépondérante sur l'emplacement, l'agencement relatif et la forme de voies de communication. * ligne de cote et rive de lac. voies ferrées qui sont assez souvent rigides. voies routières selon un classement par appartenance administrative: autoroute route nationale route départementale voie communale voie urbaine auquel s'ajoute d'autres statuts administratifs: voie express route internationale (européenne) route à grande circulation un classement selon la nature de leurs voies, par exemple à 1/25 000: 1. Autoroute

117 112 Chapitre 6. Modélisation des opérations graphiques 2. Route Express 3. Route à chaussées séparées 4. Route à plus de 3 voies 5. Route à 2 voies larges 6. Route à 2 voies étroites 7. Route moins de 5 m 8. Autre route étroite régulièrement entretenues. 9. Autre route étroite non régulièrement entretenues. 10. Route irrégulière. 11. Ruelle d'agglomération. 12. Chemin d'exploitation 13. Sentier 14. chemin de terre ou privé. Construction divers clôtures les limites de végétation et de culture les limites administratives Selon cette hiérarchie, on effectue des opérations d'harmonisation. Règle-d'harmonisation I 1 Les décalages s'effectuent selon cette hiérarchie. Règle-d'harmonisation 2 Lorsque des signes équivalents sont contigus et que cette proximité impose un aménagement, on fait en sorte que soit maintenu en place le centre ou l'axe du groupe qu'ils forment. 4* Les règles globales citées dans la section sont aussi des règles d'harmonisation. Les algorithmes proposés pour résoudre les conflits entre les éléments sont basés sur les principes: Un tronçon de type rectiligne doit rester rectiligne. Quand on déplace un segment (qui est toujours droit par définition), en fait on ne déplace que les deux extrémités de ce segment. Si ce segment constitue un des segments qui forment un tronçon rectiligne, alors le déplacement du segment en question revient à déplacer les deux extrémités du tronçon auquel ce segment appartient. Une priorité de fait est souvent accordée aux voies ferrées dont le tracé rigide, fait de lignes droites et d'arcs de cercles, ne s'accomode pas de sinuosités locales; la même remarque s'applique aux autoroutes alors que les routes ordinaires supportent mieux des décalages limités constituant des entorses locales à leur tracé réel.

118 6.5. Règles d'harmonisation 113 Un autre principe de l'harmonisation est le maintien de la cohérence: cohérence entre les éléments équivalents ou identiques qui doivent subir une sélection et une schématisation semblable. La relation locale entre les éléments doit être maintenu. Parmi un groupe d'éléments, les positions relatives par rapport aux autres doivent rester les mêmes. En tout cas, il faut toujours chercher à minimiser les décalages et à conserver au mieux les rapports relatifs de longueurs et de surfaces. Les éléments doivent être déplacés d'une distance minimum pour maintenir l'intégrité du groupe. La distance minimum est définie par les distances initiales entre eux et par la règle de lisibilité Séparer deux signes voisins ponctuels En calculant la distance entre deux éléments ponctuels, on peut facilement savoir s'ils ont besoin de subir ou non un traitement pour préserver la distance minimum entre eux. Pl2 Pi P2 Figure 6.11: Séparation de deux éléments ponctuels La distance de déplacement est fonction de leur distance de séparation initiale et de la distance d'écartement minimale définie par la règle de lisibilité (voir la section 2.4). La direction est choisie de façon à garder leur relation locale et relative par rapport à un point fixe défini par les positions initiales. Ce point fixe Pcentre de référence est défini: quantitativement: en fonction des positions initiales de deux éléments, par défaut au milieu de l'axe initial de deux éléments, s'ils sont de même catégorie: - _ Pi +P2 _ - /«, s x ^centre = Z = Pl2 (6.d8) Par exemple le point p 12 est le milieu des positions de deux points: pi et P2 sur la figure 6.11; dans ce cas, la direction de déplacement est vers la gauche pour le point pi, vers la droite pour le point p2- ou qualitativement: en fonction de l'importance de chacun: sur le point qui est dans l'absolu plus important que l'autre selon la hiérarchie des objets prédéfinis. si on n'a pas de choix, sur le point dont la direction pour écarter de l'autre point n'est pas disponible.

119 114 Chapitre 6. Modélisation des opérations graphiques ou par un compromis, sur un point entre les deux positions en fonction de coefficient d'importance de chacun. ^centre = kp\ + (l - k)p2 (6.39) Le coefficient k G [0,1] représentent l'importance relative entre les deux éléments. Si la distance entre ces deux éléments doit être de D, D > pip^>, les deux éléments doivent être déplacés à leurs nouvelles positions pu, p 2 2 : Pi Pu et pi < p 22 de telle façon que leur centre fixe P C entre soit maintenu: lalpeenirel = (l ~ k)d (6.40) \p22?centre\ = kd (6.41) En attribuant correctement le coefficient k, on peut donc contrôler la direction et la distance de déplacement de ces deux points. Par exemple sur le point pi s'il est plus important que le point p2, et que la direction de la droite de P2 soit disponible; dans ce cas, k = 1, le point pi reste sur son ancienne position, le point p 2 doit se déplacer vers la droite Séparer un groupe de signes ponctuels Déplacer séparément les éléments entraine fatalement la propagation de ces déplacements. On cherche donc plutôt des actions ensemblistes que des actions individuelles. Mackaness et Fisher[21] présente un algorithme d'identification et résolution de conflits entre un groupe d'éléments ponctuels, avec la même idée que l'équation 6.38 en cherchant, un centre de référence quantitative. Mais ils n'ont pas pris en compte les références qualitatives des éléments à déplacer. Les éléments de ce groupe sont implicitement tous de même type: p een(re = ft+ft+-+ft (6.42) n Le point Pcentre sera vers l'endroit où les éléments sont denses. L'intérêt de cet algorithme est de mettre l'accent sur un ensemble d'objets et le contraste au groupe, et non sur les On améliorera l'équation 6.42 de l'algorithme de Mackaness et Fisher en introduisant des coefficients d'importance m\,, m qui joueront le rôle des masses dans la définition du barycentre: s miih + m 2 p2 + + m n p n, ^barycentre ; ; ; (K>.1á) m l +m 2 -\ h m n Ce barycentre sera donc vers l'endroit où les éléments sont les plus denses et aussi où les objets sont les plus importants. En cas de déplacement nécessaire, les distances des éléments à déplacer seront calculée par une homothétie de rapport k par rapport à ce barycentre: Pid = "barycentre *r k\pi "barycentre) = (1 - k)p baryeentre + kpi (6.44)

120 6.5. Règles d'harmonisation 115 (0,0) 0 o o o (83.125, 68.75) O O 0 o Í&2L O O O ( , ) o o 0" Ä barycentre position initiale * position finale /'dl d = m Figure 6.12: Expansion de 2 sans prendre en compte l'importance des éléments par rapport à leur point du centre: P Cîn ire Figure 6.13: Expansion de 2 en prenant en compte l'importance de chaque élément par rapport à leur barycentre ^barycentre La distance de déplacement d'un point est proportionnelle à la distance initiale entre le point et ce barycentre. Les figures 6.14, 6.12, 6.13 montrent des exemples des déplacements par l'expansion, soit par rapport au centre de référence ordinaire des éléments sans considérer leur importance (sur les figures 6.14a, 6.12, tous les éléments sont représentés par des points de la même taille), soit par rapport à leur barycentre en prenant en compte les importances (qui sont représentées par le diamètre du rond sur les figures 6.14b, (79, ) o O ) ML (0,0) Figure 6.14: Homothétie d'un groupe d'éléments ponctuels

121 116 Chapitre 6. Modélisation des opérations graphiques 6.13) de chaque élément à déplacer. Les 2 groupes d'éléments ponctuels sont produits aléatoirement par une fonction Lelisp. L'avantage est que le centre de référence d'un groupe d'objets est maintenu sur place, et que les objets les plus importants sont les moins déplacés, la majorité des objets autour du barycentre sont également les moins déplacés, ainsi est minimisé l'ensemble des décalages des éléments. La forme de ce groupe d'éléments est également relativement conservée. Mais l'homothétie d'un groupe d'éléments par rapport à leur barycentre fait perdre partiellement la relation locale entre ce groupe et le reste de la carte. Une méthode est de remplacer le facteur constant de déplacement k dans l'équation 6.44 par une fonction /(x) de distribution qui varie en fonction de la distance x entre le point et le barycentre. on a: k est une constante. f(x)=l + (k-l)exp- î r (6.45) /(0) = k lim /(*) = 1 x >oo Pour comparer avec l'expansion sur figure 6.13, la figure 6.15 donne une autre expansion (k = 2) en utilisant les équations 6.46, 6.45, avec x "P Pi d m = m ' d P*Pi + m i d PcP7 + + m n d PcPn m mi + mj H 1- m n où p e est le barycentre ^barycentre, d PcPn est la distance entre le barycentre p e et le point p n. Ainsi est mieux résolu le problème de déplacement d'un groupe d'éléments en évitant la propagation du déplacement des autres objets introduit par le déplacement d'un seul objet. Le problème de contraste de relativité entre les objets est également résolu en cas de conflit. Mais en aucun cas on ne considère les positions relatives entre les éléments. Une méthode est d'attribuer les coefficients de façon différente pour rendre compte de relations entre eux. En changeant le coefficient d'importance m,- des éléments, le barycentre sera donc déplacé pour répondre à un besoin particulier. Par exemple, si on estime qu'un élément p,- est absolument plus important que les autres, et que son déplacement est strictement interdit, alors on peut lui attribuer l'importance: m = 1, et 0 aux autres. D'après l'équation 6.43, on aura: "centre Pi Le barycentre coïncidera donc avec cet élément qui ne sera déplacé en aucun cas.

122 6.5. Règles d'harmonisation 117 Í0,0) o o o # (»( , ) o w Figure 6.15: Homothétie avec une distribution exponentielle Séparer deux signes voisins linéaires On a défini dans la section 2.4 le seuil d«séparation, qui est l'écart minimal nécessaire entre deux éléments graphiques voisins pour les isoler à l'oeil nu et qui correspond au pouvoir séparateur de l'oeil. Enfin, il ne suffit pas de distinguer et de séparer les éléments graphiques, il faut encore apprécier les différences de dimension ou de valeur qui expriment des paliers distincts en classement quantitatif (ou simplement ordonné). Sur la figure 6.10 de la page 110, la route2 s'intersecte avec la routel; par la règle d'importance, c'est à la rouie2 de s'éloigner de la routel. Plusieurs décisions pourraient être prises: Figure 6.16: Translation globale sans contrainte

123 118 Chapitre 6. Modélisation des opérations graphiques 1. S'il y a de la place à l'autre coté de la route, on décale entièrement la route2 (ou plutôt le segment concerné de cette route2 qui n'a pas d'intersection avec d'autre routes), voir la figure S'il y a des contraintes, on ne décale que les segments qui sont dans la zone d'intersection, figure Pour garder localement la convexité des arcs ou tronçons, une linéarisation locale est éventuellement nécessaire. En fait,la séparation des signes linéaires se ramène aussi à: une translation globale si c'est possible, c'est à dire que le coté de la translation est suffisamment libre (figure 6.16). une linéarisation locale ou globale (figure 6.17) Séparer un groupe de signes voisins linéaires Les principes théoriques de la séparation d'un groupe de signes linéaires sont les mêmes. On met l'accent sur l'intégrité d'un signe linéaire. Il s'agit aussi de prendre un axe de référence (de type barycentre linéaire) que pour les éléments ponctuels. Trouver cet axe de référence n'est pas facile. Une recherche profonde des algorithmes est nécessaire Translation d'un signe linéaire La direction de déplacement d'une ligne est à priori donnée par la demande d'une action telle que Eloigner RI de R2. Donc elle est toujours à la direction verticale à la ligne fixe. Figure 6.17: Translation locale + linéarisation locale Définition 9 Une translation locale est une translation d'un arc.

124 6.5. Règles d'harmonisation 119 Il s'agit d'une translation des points d'un seul arc, les deux extrémités d'un arc qui sont reliés avec d'autres graphes linéaires restent fixes dans cette catégorie de translation; Définition 10 Une translation globale est une translation de plusieurs arcs. Il s'agit d'une translation d'ensemble d'un graphe linéaire, c'est -à dire de plusieurs arcs ensemble. Ce dernier problème est discuté dans la section suivante et dans la section pour les problèmes de carrefour. Figure 6.18: Translation avec contraintes: avant linéarisation Une translation d'un point avec des coordonnées (x,y) changement de coordonnées: de (x, y) à (x + dx, y + dy). est représentée par le Pour un point de croisement, si ses coordonnées sont devenues: (x + dx, y + dy), ce point a de forte chance de se trouver sans contact avec ses anciens segments. Par exemple, sur la figure 6.18, e 4 est un point de croisement entre la RouteS et la RouteS. La Route2 est à écarter de la Routel. Après une translation de la Route2, le nouveau point de croisement entre cette dernière et la RouteS se trouve sur le point 51, et non le point e 4 translaté. C'est à dire que le croisement de cette route ne sera pas forcément sur (x + dx, y + dy), la position du nouveau croisement est donc mise en question, c'est la nouvelle position du croisement qui deviendra la position du point en question de cette route, et pas simplement les (x + dx, y + dy). Le calcul de la nouvelle position sera dans la section suivante. Le maintien de la position relative du point de croisement avec ses segments liés est cher, car il change plus ou moins la convexité de la route à translater. Des problèmes pour les points de voisinages se posent aussitôt; ces points de voisinages devront toujours garder la convexité de l'arc auquel ils appartiennent malgré toute les conséquences des translations. Comme les points de croisement ne sont jamais à l'emplacement défini par la pure translation, cela pose aussi un problème pour les autres points voisins. Dans un premier temps, tous les points sont translatés normalement; les coordonnées (x,y) sont devenus (x + dx,y + dy), qui seront ensuite réexaminés et corrigées en consultant les anciennes convexités des arcs de la route:

125 120 Chapitre 6. Modélisation des opérations graphiques Figure 6.19: Translation avec contraintes: après linéarisation si un point est toujours dans l'ancienne convexité de l'arc dont il dépend, il sera gardé tel qu'il a été translaté. si un point n'est plus dans l'ancienne convexité de l'arc dont il dépend, il sera ramené sur le segment droit qui est formé par ses deux points de voisinage sur la même route; en effet c'est comme si ce point était éliminé (voir la figure Traitement des carrefours On accorde une attention particulière et un traitement spécial aux intersections de détails linéaires appartenant à la même catégorie: croisement, carrefours, bifurcation de routes et de chemins, raccordements de voies navigables ou de voies ferrées, etc, on les appellera carrefours. Plutôt que de chercher à respecter scrupuleusement l'axes des éléments en présence, ce qui défigure fréquemment l'aspect de l'intersection et donne une idée erronée de la position relative des lignes, il est préférable de traduire sans ambiguïté cette disposition relative de lignes, quitte à décaler les lignes secondaire. On donnera des exemples de cette schématisation. Une fois de plus, s'affirme le caractère conventionnel de la représentation cartographique et se manifeste la difficulté de réaliser un compromis entre la précision, les positions relatives des objets et la lisibilité Importance de carrefours L'importance d'un carrefour est fonction de l'importance des routes qui y arrivent. Les importances dans la hiérarchie des voies de communication sont définie dans la section 6.5.1, sur la page 111. Définition 11 L'indice d'importance d'un carrefour tsi défini par a somme des valeurs de chacune des routes (selon a hiérarchie définie dans le paragraphe 6.5.1) qui constituent ce carrefour.

126 6.6. Traitement des carrefours 121 \D D / A N sd N c 7 / N P 2 \p Figure 6.20: Importance de carrefour C'est cette indice qui permettra de comparer l'importance de deux carrefours. Par exemple, sur la figure 6.20, il y a deux carrefours: carrefour 1: 1 route nationale: 2 arcs de type 'N': n j = 2 1 route départementale: 2 arcs de type 'D': n j = 2 carrefour2: 1 route nationale : 2 arcs de type 'N': n? = 2 1 route départementale qui termine à ce carrefour: 1 arc de type 'D': n j = 1 On aura la comparaison d'importances de ce deux carrefours: "r? = *N n cl > n: c2 donc on a carrefourl > carref our2. (6.47) (6.48) Domaine de convexité d'un carrefour On définit la notion de carrefour: Définition 12 Un carrefour est composé d'au moins deux graphes linéaires qui se croisent à un point commun. Le sommet de ce carrefour est ce point de croisement. Les arc-carrefours sont les segments qui arrivent sur le sommet de carrefour. Sur la figure 6.5 de la page 103, la ligne (<fn s 392i) et la ligne (?22 s 39i2) forment un carrefour, elles se croisent au point «3, donc, S3 est un sommet de carrefour, les segments qns 3, 521*3,?i2«3! R22S3 sont ses arc-carrefours. On a déjà défini la notion de convexité générale dans la section 6.4.2, on définit maintenant un domaine de convexité d'un carrefour ci-dessous: Définition 13 Le domaine de convexité d'un carrefour est le domaine sur lequel toutes les routes aboutissant à ce carrefour deviennent moins convexes mais gardent toujours leur convexité quand le sommet du carrefour se déplace sur ce domaine.

127 122 Chapitre 6. Modélisation des opérations graphiques Figure 6.21: Convexité d'un carrefour Pour mesurer le domaine de convexité d'un carrefour, on examiner les arcs autour du sommet du croisement. Chaque route définit au voisinage d'un carrefour un triangle constitué par le sommet du carrefour et les extrémités des deux segments voisins, triangle dont l'aire peut être nulle est le domaine de convexité de la route correspondante à ce carrefour, on peut donc avoir la propriété suivante: Propriété 4 e domaine de convexité d'un carrefour est l'intersection de tous les domaines (triangulaires) de convexité de chaque graphe linéaire qui aboutit à ce carrefour. On définit la notion de sommet de convexité d'un carrefour: Définition 14 Le sommet de convexité d'un carrefour est un point déterminé par l'intersection des cordes qui sont les premiers segments des arcs aboutissant à ce carrefour. A un sommet de convexité d'un carrefour, toutes les routes traversent ce point tout droit. Par exemple, sur la figure 6.21 de la page 122, une route(gn, s 0, ç^) croise une autre Toute(q2i,s0,q22) au carrefour so, le domaine(»o,«i, «2,33,^0) est donc un domaine de convexité de ce carrefour BQ, le point s 2 est un sommet de convexité de ce domaine. Si le point SQ est déplacé au point s<, le sommet de convexité, les arcs des routes (9111*0,912), (92i,s0,g22) seront tout droits. On va essayer de voir les domaines de convexité des carrefours en mouvement. Pour un carrefour de 4 segments seulement, cette section sera allégée. Malheureusement, ce n'est pas toujours le cas, mais nous commençons par ce cas qui est relativement plus simple. Supposons sur la figure 6.21, que le point SQ se déplace sur son domaine de convexité: les routes deviendront de plus en plus droites mais en gardant toujours leur convexité, jusqu'au point «2, où les deux routes deviennent complètement droites.

128 6.6. Traitement des carrefours 123 Ce domaine de convexité n'existe pas toujours, cela dépend de position de chaque segment qui arrive sur ce point de croisement. Par exemple, sur la figure 6.5 de la page 103, les 2 routes #1(911,53,921) e t ^2(?12JS3,922) n'ont pas de domaine de convexité, puisque les deux triangles de chaque arc n'ont pas de conjonction. Quand le point s 3 se déplace, au moins une de 2 routes sortira toujours de son domaine de convexité, et donc on dira qu'elle deviendra toujours plus convexe. 4 formes d'existence d'un domaine de convexité sont évoquées: 1. zonal, ce carrefour est donc flexible, puisque qu'on peut le faire déplacer si nécessaire dans ce domaine tout en gardant les convexités des routes. Le domaine (so, si, si, S3, so) du carrefour s 0 sur la figure 6.21 de la page 122 est un tel cas. 2. linéaire, ce carrefour est aussi flexible sur un segment commun de cette ligne. Le carrefour Ci est flexible sur le segment C1P2 sur la figure 6.20 à la page 121. Un glissement de la route (C2D) sur ce segment est possible pour répondre au besoin de déplacement de ce carrefour. 3. ponctuel, c'est à dire que ce domaine ponctuel de convexité est sur le sommet de convexité. On ne peut faire un simple déplacement du sommet de carrefour pour déplacer ce carrefour sans détruire les convexités des routes, seule une translation globale de toute ou partie de routes aboutissant à ce carrefour est possible. Le carrefour Ci est presque gelé sur le point Ci sur la figure 6.20 à la page 121. Une translation de la route(dcid) ou de la route(i? icic 2 P2) ou des deux ensemble est nécessaire en cas de demande de déplacement de ce carrefour. 4. nul, sans domaine de convexité, un déplacement de ce carrefour éloignera toujours au moins une des routes de son propre domaine de convexité. On choisira donc de déplacer une des routes dont la priorité est moins grande pour favoriser le déplacement des autres routes. Tel est le cas sur la figure 6.5 de la page 103. Calcul du sommet de convexité On reprend la figure 6.21 de la page 122. Supposons qu'une droite se représente par deux points dont les deux coordonnées sont (x,y), et que les coordonnées de chaque points sont les suivants: 9ii(sn.yii)i 512(^12,yn), Ç2i(*2i,2/2i), 5*22(2:22,3/22) Le sommet de convexité S2(x,y) est sur: de l'équation 6.49 et 6.50, on a S2 = Í11 +*i(<fi2-9ii) (6.49) pour 0 < $1 < 1 «2 = Í21+<2(Í22-?2i) (6.50) pour 0 < Í2 < 1

129 124 Chapitre 6. Modélisation des opérations graphiques (?il - Í12) <1 + (Í22 -?2l) *2 = íll - Î21 soit: soit / x n - x u X22 - *ii \ f ti \ _ ( *n \ yn-yn 2/22-2/21 J \ h J \ yu - - *21 2/21 (6.51) Si: D ^ 0 : alors: D = D x = D 2 = *u *n *22 *2i yn~yn!/22!/2i xn -- X21 X /11 - î/21 2/22 - î/21 Xn-Ii2 X n -X2l yn-yn 2/11-î/21 (6.52) (6.53) (6.54) <i = < ~ * D de l'équation 6.49 (ou 6.50), 6.55, 6.56 on aura: *2(x,y): D l (6.55) (6.56) Si on aura: x ) = ( X l l )+t l ( x»- x» ) y J \ yn J V yn-yn ) 0 < D x <D 0 < Di <D 0 <<! < 1 0 < t 2 < 1 (6.57) (6.58) (6.59) (6.60) (6.61) Le sommet de convexité existe et ses coordonnées sont fournies par l'équation 6.57 et les relations 6.49 ou Si: D 0, c'est à dire que les 2 segments Çu9i2 e *?2ife SOR^ parallèles, et si on a: > 25 0 (6.62) (6.63) c'est à dire que les 2 segments sont écartés, il n'y aura pas de solution. Sinon, les 2 segments et sont collés ensemble, on aura plusieurs solutions sur la partie commune aux deux segments et Le calcul du segment commun sera détaillé ci-dessous; dans ce cas, le domaine de convexité sera dans le triangle dont la base est le segment commun et le sommet, le sommet du carrefour.

130 6.6. Traitement des carrefours 125 segment commun du sommet de convexité Dans le cas où le sommet de convexité se situe sur un segment, on veut le connaître, on reprend deux segments dans la section précédente, giiçi2 e *?2i?22- Si: 3<i,*2, pour tels que: alors, le segment qnq\ 2 est le segment commun. D'autres cas existent. 0 < ii < 1 (6.64) 0 < i 2 < 1 (6.65) <fll =?21+*l(?22-9*2l) (6.66) 9*12 = $21 + h(<î22 - <Í2l) (6.67) Simplification de calcul de sommet de s 2 Pour avoir une autre formule de l'équation 6.57, soit k\ la pente de la base çn<?i2 du triangle(gn,so,9i2), et k 2 celle de la base du triangle(ç2i, «0,522) : le point d'intersection de ces deux base: kl = V"-V» (6.68) Z11-12 h = ÍE1ZJ52. (6.69) *21 - «22 y = hx + y n - k lxl2 (6.70) y - k 2 x + y 22 - k 2 x 22 (6.71) donc, on peut avoir les coordonnées du sommet de convexité s 2 : si ki ^ 2 ^ 0, alors : V - yi2 fc 2-2/22*1 + kik 2 (x 22 ~ ^12), _,, - k 2 -k 1 [bj ) V\2 - î/22 + Í ^12*1 k 2 *i (6.73) Distance entre carrefours Un carrefour est marqué par un sommet qui est le point de croisement de toutes les routes qui passent en ce point; il est plutôt un objet ponctuel que linéaire malgré ses composantes linéaires. Naturellement, la distance entre deux carrefours est défini par la distance entre les deux sommets. Mais, si le raisonnement s'effectue sur les axes de routes, ces routes sont représentées graphiquement par des signes conventionnels d'une certaine largeur; les carrefours auront donc une certaine surface.

131 126 Chapitre 6. Modélisation des opérations graphiques Les signes conventionnels des routes interviennent largement dans la perceptibilité des carrefours et la séparation de deux carrefours voisins. Comme les signes conventionnels amplifient de plus en plus leur emprise graphique au fur et à mesure que l'échelle diminue, les carrefours amplifient leur tailles et deux carrefours voisins se rapprochent de plus en plus jusqu'à leur confusion; ainsi se créent des ambiguïtés. Pour que les formes des carrefours soient distinguées, et que deux voisins soient séparés, on doit élargir les distances entre deux carrefours au moins au seuil de séparations défini dans la section 2.4. On définit d'abord la notion d'axe de deux carrefours. Définition 15 L'axe de deux carrefours est le segment dont es deux extrémités sont les sommets de ces deux carrefours. Le segment P2P5 est l'axe de deux carrefours au point p2 et au p respectivement sur la figure 6.22 de la page 126. Définition 16 La distance entre deux carrefours est a plus courte distance entre es bords de routes de ces 2 carrefours, comptée parallèlement à l'axe de ces 2 carrefours. Compte tenu des effets des largeurs de signes conventionnels des routes, on définit la distance nette entre 2 carrefours comme la distance entre leurs sommets en déduisant les segments de décalages (défini au paragraphe 6.4.4) qui sont les effets de projections des largeurs des routes, (voir la figure 6.6 sur la page 104). Cas de deux carrefours non liés à leur axe Le segment de décalage à déduire est la plus grande projection de la largeur d'une des routes sur l'axe de ces 2 carrefour, cet axe était imaginé comme un arc sans largeur. Figure 6.22: Distance de 2 carrefours non liés à leur axe Propriété 5 si ces deux carrefours ne sont pas reliés par un segment à leur axe, l'axe de projections des routes de deux carrefours se trouve sur 'axe de ces deux carrefours. La distance de ces deux carrefours est donc q2qs sur la figure 6.22 de la page 126.

132 6.6. Traitement des carrefours 127 Cas de deux carrefours reliés à l'axe Le segment de décalage à déduire est la plus grande projection d'une des routes avec sa largeur sur l'arc (un segment droit) qui relie les deux sommet; cet arc a une lageur, donc la projection d'une autre route sur cet arc est sur un des bords de l'arc qui relie ces 2 carrefours. s S s '._. z..92 _. \yv* _ Ps \ Figure 6.23: Distance de 2 carrefours reliés à l'axe Propriété 6 si ces deux carrefours sont reliés par un segment, la distance entre ces 2 cerrefours est la longueur de l'axe diminuée des 2 segments de déclages 2. La distance du segment q2qs est la plus courte distance entre les deux carrefours au point p2 et au p2 respectivement sur la figure 6.23 de la page 127. La distance de ces deux carrefours est donc q2qs Direction de déplacement d'un carrefour Quand on bouge un point de croisement, ça va changer les formes de toutes les routes qui passent par ce croisement, par conséquent, les convexités des routes vont être changées, pour garder leur convexité, on a une définition ou plutôt une propriété suivante: Définition 17 Pour garder la convexité d'un carrefour, la meilleur direction de déplacement d'un carrefour se situe dans son domaine de convexité s'il existe. Quand on déplace un carrefour, souvent c'est pour l'écarter d'un autre objet, une route, un autre point de croisement, etc. La direction d'écartement ne tombe pas forcément dans son domaine de convexité. Il faudra donc trouver un compromis ou envisager une translation de l'ensemble des routes de ce carrefour. Les directions de déplacement d'un carrefour doivent toujours garder les convexités de chaque route qui arrive sur ce sommet de carrefour, elles sont choisies en respectant les règles globales 1, 2, 3 définies dans la section défini au paragraphe 6.4.4

133 128 Chapitre 6. Modélisation des opérations graphiques 6.7 Stratégie générale La stratégie générale est que tant qu'il y a des conflits entre les différents objets, des règles de résolutions seront déclenchées. La figure 6.24 montre la conséquence de cette stratégie. La chapitre 9 montre des exemples réels à titre d'illustration. 6.8 Résumé En conclusion, l'harmonisation réside dans la conservation de la solidarité de tous les éléments de la carte, dans l'équilibre entre ces différents éléments tout en maintenant le caractère géographique local et en évitant l'égalisation et l'uniformisation. Si la sélection et l'harmonisation ont été bien menées, ces conditions seront plus faciles à respecter. La généralisation intervient au stade de la conception de la carte (définition des critères de sélection) et pendant son élaboration et sa rédaction, d'une façon très complexe. Les problèmes d'avenir de la cartographie automatique ne seront résolus, en donnant satisfaction aux auteurs, aux réalisateurs et aux utilisateurs, que dans la mesure où des règles et des principes auront codifié la généralisation sous ses multiples aspects. L'établissement de cette méthodologies sera une des tâches essentielles du cartographe et aussi des informaticiens de demain.

134 6.8. Résumé 129 r«'# * v ' '. "/* **A v * * "* * "* *V' *'" f **' * * ' '* *'*" " * *'* " u * t ** \ ' ' "»,m *'" ^ ^###echelle initialed f:: : /:: : /:: : /^:/y/> : /-: : /y}:-::.^r-r-r.!-.r^w^:/-- ffiß &^f Udontie&s initiales[ï / /[entrée ^,V,\,V,LV,'/,V,V,-.^VV,V^ $&: : : :. : ;. # échelle finalefrv «F " ".' **V ' ". ' ".* * ". * " * * *.' " ] h u t [.. * *'I'I'IJ'.l'i'ii'-'*'-' '; ' '' '' ' "' '' '' ' '.' '.'-* ' ' t t t t t t t f^f\ ^ pré-sélection^ "*y > / > * i 11 /*/ ^ i'a Vil féidétection de&r '"i' M conflit \',\ (simplification) ; ; local) ' linéarisation locale OUI *+< resolution ^< ^*< de conflit & # $ * [lissage ; linéarisation global - ; plus [ de conflit l\ L J Figure 6.24: Stratégie de résolution

135 Chapitre 7 La base de connaissances 7.1 Les structures des objets Nous avons introduit la notion d'objet dans la section 3.3. Le concept d'objet repose sur le principe d'encapsulation: l'objet regroupe au sein d'une entité unique des données et les procédures qui les manipulent. Il communique avec le monde extérieur à travers une interface, qui cache son organisation interne, assurant ainsi l'abstraction des données. En ce qui concerne les objets cartographiques, le principe est qu'un objet cartographique ne doit pas être un simple objet graphique, il doit être doté des connaissances les plus complètes possibles: statistiques, graphiques et géographiques. Un objet géographique n'est jamais seul, il est toujours en relation étroite avec les autres objets de la carte. Un cartographe, avec l'ensemble des éléments de la carte sous ses yeux, effectue par un processus mental unique plusieurs tâches presque parallèlement sur plusieurs éléments. Dans ce processus, les structures de l'information sont implicitement reconnues par le cartographe avec ses diverses qualités physiques: des yeux pour voir, un cerveau pour réfléchir, des mains pour dessiner. Il applique ensuite un ensemble des règles pratiques en fonction de l'ensemble de ces éléments. Ces règles, reposant sur l'expérience et sur la tradition, sont en général comme interface entre des séries de cartes classiques. Elles sont par conséquent étroitement liées à la forme des éléments et à leur structuration. Pour bien modéliser les règles objectives du processus mental de la généralisation conduisant à une généralisation logique, la reconnaissance de structure est un élément important: une modélisation des objets auquels les règles vont s'appliquer est d'abord indispensable. La reconnaissance de structures complexes ne peut se faire sans une structuration des données appropriées. Un objet doit donc avoir les informations telles que sa forme individuelle géométrique, ses caractéristiques statistiques personnalisées, ses instructions graphiques, sa relation de proximité avec son voisinage, son importance individuelle et relative, et éventuellement la structuration de l'ensemble des éléments de la carte. Il doit connaître ses voisins, deux cas étant possibles: il ne connaît peut être pas exactement les caractéristiques de ses voisins, mais 130

136 7.1. Les structures des objets 131 il doit savoir au moins leur nom, par la possibilité de structure d'un objet, (par exemple, fa caractéristique d'auto-iypage d'un objet Ceyx), on connaîtra la catégorie de ses voisins, et les caractéristiques normales communes à cette catégorie seront ensuite obtenues par des requêtes évoquées par des processus prédéfinis. > un objet ne connaît pas du tout ses voisins, ni leur nom, ni leur existence. Un processus spécial de détection est donc nécessaire, il doit au moins fournir le nom d'un voisin pour qu'un autre processus de requête puisse fonctionner pour pouvoir fournir des informations. La structure d'un objet et celle de la base des objets déterminent donc directement l'efficacité et la capacité d'un système pour la généralisation qui se sert de ces objets. On décrit dans la section suivante les différents objets élémentaires qui seront les éléments de la base de connaissances, ces éléments permettant de modéliser les informations sous des formes plus naturelles et plus aisées à manipuler Organisation des objets Les entrées et sorties du système d'une part et le raisonnement modélisé d'autre part, définissent plusieurs zones d'expertises pour le problème du réseau de communication: une zone des objets géométriques élémentaires neutres. atomique : Point composite : Segment, Arc, Axe, ils sont composés des objets atomiques: Point. Ils n'ont que des coordonnées métriques, leur définitions se trouvent dans la section * une zone des objets géographiques: objet du Réseau de communication. Ce sont des objets composites ayant un sens géographique, et ils sont composés des éléments de la zone des objets géométriques. Cette zone est divisée en 3 zones: zone ierrée zone routière zone hydraulique Ces zones d'expertises sont définies par des classes ou des sous-classes au sens du langage orienté objet. Il existe sur le marché de nombreux langages orientés objets, Les objets de différentes zones sont organisés hiérarchiquement. La relation d'héritage lie une classe à sa superclasse. La représentation graphique de la relation forme le graphe d'héritage, dont la figure 7.1 de la page 134 montre un exemple pour décrire les objets du réseau de communication, le graphe d'héritage est un arbre, puisque l'héritage est simple, étant données les contraintes de logiciel (Ceyx), chaque classe ayant une mère. Sa racine représente la classe la plus générale, appelé Objet du réseau. Cette classe détient le comportement commun à tous les objets d'un réseau. Elle spécifie n'importe quel objet du réseau de communication, il y a deux variables

137 132 Chapitre 7. La base de connaissances d'instance nom et éliminable?, donc par l'héritage statique des variables d'instance, tout objet du réseau de communication aura un nom désigné par la variable d'instance nom et aura une propriété si cet objet est éliminable. Les différentes classes s'organisent entre elles sous la forme d'un réseau hiérarchique construit sur une relation de filiation pour profiter des avantages de l'héritage des propriétés d'objets prédécesseurs et donc simplifier la représentation de chaque objet pris séparément. La relation d'héritage est transitive: les caractéristiques des classes supérieures sont héritées par les classes inférieures, qui sont d'autant plus spécialisées qu'elles sont proches des feuilles de l'arbre. Par exemple: les superclasses de la classe Autoroute sont ordonnées de la façon suivante: Autoroute Route-à-2-chaussées Route Voies-routières Voies-routières Voies-de-communication Objet-communication Objet-communication Objet-du-réseau. Cette classe possède 11 variables: payant? qui lui est propre, cette variable peut avoir la valeur oui ou non. type-chaussée: héritée de la classe Route-à-2chaussées, cette variable prend une des valeurs suivantes: inconnu chaussées éloignées chaussées séparées autre i» circulation: héritée de la classe Route: son domaine de valeur est: grande, moyenne, petite. code-ad: héritée de la classe Voies routières, son domaine de valeur est: inconnu Nationale Départementale Communale Urbaine celles héritées de la classe Voies de communication: largeur : la largeur totale de la voie. axe : la liste des points (ou segments) qui composent l'axe médian, les points sont des objets de la classe Point. arcs : la liste des arcs 1. défini au paragraphe 6.4.1

138 7.1. Les structures des objets 133 noeuds : la liste des points sensibles qui sont les objets des sous-classes de la classe Hoeud de communication: par exemples: les carrefours à niveau, les échangeurs, etc. voisins-l : la liste des voisins linéaires tels que voies de communications. voisins-p : la liste des voisins ponctuels. t> nom et éliminable héritées de la classe Objet de communication. Par une extension de Ceyx, chaque classe peut posséder, outre les variables d'instance, des variables de classe 2 au sens Smalltalk ou champs "static" de C++. Ces variables, avec leurs valeurs, sont partagées par l'ensemble des instances de la classe et celles de ses sous-classes. Cela évite de donner une valeur à une variable chaque fois qu'on crée une nouvelle instance. Comme les variables d'instance, les variables sont héritées statiquement par les sous-classes, leurs valeurs peuvent être redéfinis au niveau des sous-classes sans changer celles de leur sur-classes. Par exemple la classe Voie de communication possède une variable de classe signe conventionnel, donc toutes ses sous-classes possèdent cette variable de classe, et toutes les instances d'une classe partagent la même valeur héritée d'une sur-classe ou redéfinie au niveau de cette classe. A l'échelle de 1: , si on donne à la variable de classe: signe conventionnel la valeur ( ) à la classe Autoroute, et la valeur ( ) à deux classes: Voie expresse et Périphérique, les instances des trois classes en question seront donc représentées différemment. Alors qu'à l'échelle de 1: , si on donne à la même variable de classe la valeur ( ) (deux traits de 20 mm séparés par un espace de 30 mm) à la classe Route à chaussées séparées, toutes les autoroutes, les voies expresses, les périphériques urbaines qui sont des sous classes de la classe Route à chaussées séparées seront donc indifféremment représentées par deux traits de 20 mm séparés par un espace de 30 mm. Par la suite on distingue les variables d'instance des variables de classe. Pour la recherche d'une propriété d'un objet, l'ordre du parcours de la hiérarchie est bien fixé, les classes sont bien évidemment examinées dans l'ordre établi, de la plus spécifique à la plus générale, en s'arrêtant à la première qui possède la propriété cherchée: la première occurence de la propriété cherchée masque les autres. Concrètement, la hiérarchie d'héritage est parcourue de bas en haut, à partir de la classe concernée, en suivant les liens d'héritage. Les valeurs de certaines propriétés (variables d'instance ou éventuellement variable de classe) peuvent être des pointeurs vers d'autres objets prédécesseurs ou successeurs, ou encore une indication des exceptions abordées dans la section Par exemple, on définit une variable d'instance maitre-route pour la classe Arc, cette variable pointe donc vers la route qui contient cet arc. Quelques descriptions non complètes de définitions de classe sont illustrées cidessous: La classe Reseau de communication?(deftclass Reseau-C nom'string) = #:Tclass:Reseau-C Ce qu'on sait sur cette classe: voir la section 5.2 où est décrite une implantation de cette variable

139 134 Chapitre 7. La base de connaissances Point dessus : dessous c A niveau Echangeur!à 1 sommet] (Complexe] Figure 7.1: [.es objets du réseau de communication

140 7.1. Les structures des objets 135 Abréviations: Reseau-C Type: #:Tclass:Reseau-C Champs : class-attributes " (Vector... ) nom " string Propriétés Sémantiques: nom obj Sous Modeles: Hoeud-C Voie-C La classe Koeud de communication? (deftclass {Reseau-C}:Hoeud-C centre'symbol larcs'cons voisin-cs'cons voisin-ds'cons) = #:Tclass:Reseau-C:Hoeud-C Ce qu'on sait sur cette classe: Abréviations: Hoeud-C Type: #:Tclass:Reseau-C:Hoeud-C Champs : class-attributes " (Vector...) nom * string centre * symbol lares * cons voisin-cs " cons voisin-ds " cons Propriétés Sémantiques: centre obj lares obj voisin-cs obj voisin-ds obj Sous Modeles: Carreíour Gare Péage Ville La classe Voie de communication: La figure 7.3 de la page 137 montre les classes et sous-classes de cette sur-classe.

141 136 Chapitre 7. La base de connaissances Point Réseau Axe-P) ÍAxe-Al ( mmeti Carrefour à 1 sommet * Carrefour-compiexei. Réseau-routier BD-objets /I c-x Classe Sous-classe objet li comooser -»Ol íobjet2j Figure 7.2: Les compositions des objets du réseau

142 7.1. Les structures des objets 137 Voies de 1 i communication j nom largeur axe arcs noeuds voisins /ZCl ; : Voies -v ferrées >m tl état ;::;;ÏI Í+4 voies i Í3 voies) Í2 voies) f 1 voie \ Voies routière : code-ad Voies hydrauliques < état d'eau... I \ kanaii rivière* Route à 2 chaussées type-chaussée chemin d'exploitation Voie I excress ÍAutorouiei Périphérique) [- 5 mj f étroite 1 j champs: Figure 7.3: Les classes et sous-ciasses de Voies de communication

143 138 Chapitre 7. La base de connaissances (deftclass {Reseau-C}:Voie-C largeur'fix lvoisins'cons axe*cons larcs'cons lncs'cons) = #:Tclass:Reseau-C:Voie-C Ce qu'on sait sur cette classe: Abréviations : Voie-C Type: #:Tclass:Reseau-C:Voie-C Champs : class-attributes " (Vector... ) non ' string largeur " íix lvoisins " cons axe ' cons lares " cons Ines ' cons Propriétés Sémantiques: axe obj lares obj largeur obj Ines obj lvoisins obj Sous Modeles: Voie-ferree Voie-hydraulique Voie-routiere Les objets composites Composer des objets est particulièrement courant en représentation des connaissances, mais assez souvent, les facilités font cruellement défaut dans les langages. L'héritage multiple permet de définir de nouveaux objets par fusion de la structure et du comportement de plusieurs autres objets. Mais l'héritage permet seulement de définir des classes d'objets qui sont presque semblables à d'autres. Les liens d'héritage représentent, grosso-modo, des inclusions entre ensembles, une spécialisation entre types. Mais on ne peut pas aller plus loin, l'héritage est inapproprié à la représentation de liens entre un objet et ses composants. Par exemple: une Ville est composée d'une mairie, des réseaux routier, des parcs, des réseaux ferrés, des services publics. Cependant c'est une erreur de penser que le comportement d'une ville soit l'union des comportements de ses différents éléments. La classe Ville ne peut pas être définie comme la spécialisation de la classe Réseau routier, ni de la classe Autoroute, ni de l'une des autres classes, car une ville n'est pas une route. En revanche, un réseau routier appartient partiellement à une ville, une Autoroute est bien une Route à chaussées séparées, une Route générale, une Voie routière, et une Voie de communication,

144 7.2. Les procédures des objets 139 donc une autoroute a un comportement qui est l'union des comportements de ses sur-classes évoquées ci-dessus. On dispose quand même déjà d'un moyen pour représenter un objet composite: les variables d'instance. Une classe décrivant structurellement une ville est pourvue de variables pour désigner ses différents comportements. Les différents éléments d'une ville seront représentés par des variables d'instances correspondantes: mairie, réseau, routier, réseau ierré, réseau hydraulique, etc. Une ville peut donc avoir autant de route qu'elle veut et qu'elle peut posséder(?). 7.2 Les procédures des objets Chaque classe d'objets a une liste de procédures (méthodes): soit pour fournir de simples paramétres concernant un objet. Par exemple, livrer la valeur de la largeur d'une route. soit pour répondre si nécessaire à des requêtes ponctuelles sur cet objet telles que: une route a-t-elle un ou des voisins linéaires à proximité? Un déclenchement d'autres méthodes sera éventuellement possible. soit des actions du type opérations de généralisation telles qu'une sélection des objets à conserver, ou des algorithmes candidates bien définis qui sont des opérations graphiques (des modélisations des opérations dans le chapitre 6 ) tels qu'un lissage local d'une ligne. soit des méthodes de choix des opérateurs ou des algorithmes graphiques de généralisation. Par exemple, quand il y a une superposition entre deux routes, on veut savoir si on peut résoudre ce problème par une translation d'une des 2 routes dont l'importance est moins grande, ou si une suppression d'une route d'importance inférieure est à envisager. On distingue des objets géométriques et des objets géographiques, par conséquent, on distingue des méthodes statistiques et des méthodes cartographiques. Les objets cartographiques sont des objets composites construits à partir d'objets géométriques, et les méthodes cartographiques sont des méthodes basées sur les méthodes statistiques. C'est-à-dire que les méthodes cartographiques peuvent appeler des méthodes statistiques. Par exemple, un objet arc de la classe Objet géométrique a ses méthodes telles que: linéarisation, déplacement, etc; pour un objet composite arc d'autoroute doté d'un arc et d'autres variables, cet objet arc d'autoroute aura donc la possibilité de faire une requête ou demander des renseignements sur l'arc géométrique associé. Les opérations de généralisation sont évoquées de deux façons: explicitement ou déclarativement. Les procédures opératoires, bien définiees telles que Déplacer une route sont désignées et appelées explicitement par leur nom sous forme de messages qu'on envoie en cas de nécessité à l'objet: route. Si on sait pertinemment que telle connaissance, précisément déterminée et assurément présente dans le système, doit être invoquée sans possibilité d'alternative, la rédaction déclarative n'aura pas la nécessité d'avoir lieu. Ces procédures des objets

145 140 Chapitre 7. La base de connaissances peuvent être appelées dans les règles sous formes toujours de messages aux objets correspondants. Par contre les décisions de déclencher ces procédures ponctuelles sont évoquées par des règles, de façon déclarative. C'est-à-dire que le séquencement des opérations de généralisation est contrôlé par des règles de décision, appelant des algorithmes applicables en fonction des situations des éléments cartographiques concernés et de précisions demandées. 7.3 Exemples: les sommets-carrefours Les modèles sont décrits à l'aide d'une liste de champs et d'une liste de méthodes (procédures); par exemple de l'extérieur, la classe de Carrefour-élémentaire (à un sommet) aura des: champs : * nom, sommet, liste-d'arcs, voisins-cercles, voisins-reliés,» directions-de-déplacement-autorisées, fréquentation, etc. procédures : 1. Décrire-toi: qui livre la structure de ce carrefour. 2. Sortie.ps: qui donne les codes en PostScript pour son toponyme. 3. new-voisin-cercles: qui cherche s'il a de nouveaux voisins de cercle. 4. new-voisin-directs: qui met à jour les voisins directement reliés en cas d'opérations qui risquent de changer son environnement. 5. S1>S2?: qui décrit la priorité relative par rapport à un Sommet-Carrefour donné. 6. HorsRond: qui donne la liste des arcs de Sommet-Ci qui sont en dehors du Rond centré à un autre Sommet-C2, avec la distance de deux Sommet-Cs comme diamètre; donc ces arcs sont disponibles pour écarter ce Sommet-Ci en éloignant du Sommet-C2. 7. Visualise-toi: qui visualise le carrefour graphiquement sur un terminal. 8. Type-nb: qui donne le nombre exact de chaque type d'arc à un moment donné. Par exemple: ((A. 2) (N. 0) (R. 0) (D. 4)) signifie qu'il y a 2 arcs de type Autoroute, 4 arcs de type Départementale. 9. Déplacer-toi: qui déplace le carrefour dans un endroit donné. 10. Déplacer-unarc: qui déplace seulement un arc spécifique. 11. Ecarter-toi: déplace en s'éloignant d'un autre objet.

146 7.4. Formuler les connaissances 141 Sous forme interne, on définit les propriétés sémantiques d'un modèle comme étant l'ensemble des fonctions définies dans l'espace de noms du modèle, ainsi définir une propriété sémantique du modèle revient à définir une fonction Lisp classique dans l'espace de noms du modèle. En Le-lisp, les espaces de noms sont organisés de manière arborescente à l'aide de packages, ce qui se traduit par une organisation hiérarchique des espaces sémantiques associés aux modèles. Les propriétés sémantiques d'un modèle constituent en quelque sorte son mode d'emploi: comment accéder aux champs des instances, comment imprimer ces instances, comment les éditer, etc. Il est de bon ton de considérer qu'une propriété sémantique soit étiquettée par le nom du modèle (ou de la classe) sur lequel on définit cette propriété sémantique: ainsi, on pourra envoyer des messages pour déclencher des procédures relatives aux objets typés. Pour appliquer une fonction de manipulation à une instance, on lui envoie en message le nom de la fonction et ses arguments éventuels; l'objet, qui connaît son type, n'a donc plus qu'à chercher dans l'espace sémantique associé à ce type la fonction voulue. Un des traits essentiels des objets est qu'ils possèdent implicitement toutes les informations et comportements nécessaires. De plus ils composent en réseau de modèle; si la recherche d'une valeur échoue, des procédures de remplacement, les mécanismes d'héritages des objets ou d'actions des règles, peuvent être utilisées. 7.4 Formuler les connaissances Formuler les faits Sous le terme commun de fait, on désigne des expressions et des interprétations des expressions: des connaissances assertionnelles, * utilisables pour conditionner puis réaliser l'exploitation de connaissances opératoires, * pouvant être créés et détruits par l'exploitation de connaissances opératoires. Pour simplifier, on utilise des prédicats 3 pour représenter des faits au lieu de langage naturel. Un fait est donc composé d'un prédicat et des arguments. Par exemple, le fait sous forme de langage naturel sera présenté par : la route-x et la route-y se sont superposées Superposer(?route-x,?route-y) avec Superposer comme prédicat, et route-x, et route-y comme ses deux arguments, le point d'interrogation? désigne une variable. Les valeurs des arguments seront des instances des classes prédéfinies telle que Autoroute, sentier, etc. La section détaille la définition et l'implantation des prédicats. 3 voir la section 7.4.2

147 142 Chapitre 7. La base de connaissances Les prédicats La perception globale de la figure (carte) par un cartographe lui suggère les ordres des éléments de la carte et les opérations nécessaires de la généralisation en appliquant des règles implicitement. La résolution du problème par une machine (un système expert par exemple) ne consiste pas à balayer aléatoirement toute la base de règles, du moins nous ne pensons pas que l'opérateur humain procède ainsi. La considération des données du problème nous indiquera quel groupe de règles utiliser pour résoudre le problème en question. On se sert ici des prédicats pour déterminer ces règles. C'est en particulier l'ensemble des prémisses communes qui se factorise dans une règle; en recommençant la factorisation sur les prémisses restantes, on obtient une cascade de contextes qui forme ainsi le réseau expert. Les prédicats sont utilisés pour représenter les faits de la base de connaissances et les opérateurs du processus de la généralisation tels que: écarter, agrandir, etc. en prenant éventuellement des arguments. Par exemple: (Ecarter si s2) représente le fait: déplacer le sommet si en s'éloignant de s2. Les règles sont groupées par les prédicats qui apparaissent dans la partie condition ou conclusion: Pour que les évaluations des états de système (état de règles, états de faits connus) soient efficaces, on cherche des améliorations dès le niveau de l'organisation des données, non seulement au niveau de l'implantation des faits et des objets élémentaires, mais aussi au niveau de la structuration des règles et de leurs composants: les prédicats. Les prédicats apparaissent dans les deux parties (prémisse ou conclusion) d'une règle mémorisent également l'état de cette règle. Pour limiter le temps souvent coûteux de filtrage, on a besoin de primitives permettant d'accéder plus vite à la base des règles, pour modifier aussi les modules de la base des règles valides, ainsi que toute partie de la base des connaissances. On se sert également des prédicats qui apparaissent dans les règles pour mémoriser l'état de la base des règles. Les prédicats appartiennent à une classe de prédicats. Donc chaque prédicat est repéré par un symbole Lisp, les informations relatives à ce prédicat sont accrochées aux champs (variables d'instance ou variables de classe) ci-dessous: nom: le nom est un symbole. Lfaits-totale: contient l'ensemble de toutes les instances des faits qui contient ce prédicat. Lreg-ante: liste des doublets dont les premiers termes sont les règles dans lesquelles le prédicat apparaît en partie antécédents tandis que les deuxièmes sont les nombres d'occurences de ce prédicat. Lreg-conc: liste des doublets dont les premiers termes sont les règles dans lesquelles le prédicat apparaît en partie conclusions, et les deuxièmes, les nombres d'ocurrences de ce prédicat. Par exemple: soit la base de faits: (Ecarter si s2) (Ecarter si s3). la base de règles: R sur la page 144

148 7.4. Formuler les connaissances 143 où si, s2, s3 sont des objet de la classe de Sommet-carrefour. Dans le filtre: (Ecarter?argl?arg2) ou le prédicat Ecarter prend 2 arguments qui sont des variables simples, il aura la forme interne: nom : Ecarter Lfaits-totale : ((Ecarter si s2) (Ecarter si s3)) Lreg-ante : ((R3.1. 2)) la règle R3.i a deux occurences de ce prédicat en prémisses. Lreg-conc : () Remarques: 1. Les prédicats variables comme dans (?P?argl?arg2) ne sont pas comptés dans le champ Lreg-ante ou Lreg-conc. 2. Le même prédicat qui apparaît plusieurs fois dans une même règle est compté dans les champs: Lreg-ante et Lreg-conc autant de fois qu'il apparaît dans cette règle. 3. Pour l'instanciation de prédicat variable, une nouvelle instance de cette variable ne donne pas une nouvelle chance pour déclencher la règle qui contient ce prédicat Formuler les règles La figure 7.2 de la page 136 donne une description des règles de généralisation. Le principal dénominateur pour formuler les règles réside dans ce que l'on peut appeler la rédaction déclarative des règles. C'est à dire que la désignation d'une information ne se fait pas par étiquette ou pointeur (c'est à dire un nom individuel externe) mais par la donnée d'un fragment de l'information: Chaque règle fournie par l'expert est rédigée de telle sorte que la représentation définit: non seulement les conclusions (les effets) de la règle, mais aussi les conditions de déclenchement, les conditions dans lesquelles cette règle est applicable. En usage normal, pour sélectionner une règle particulière, on ne fournit pas un nom individuel propre à cette règle mais un groupe de faits susceptibles d'être compatibles avec les conditions de déclenchement de la règle; Dans une règle on ne désigne jamais une autre règle par un nom individuel. L'expression explicite des conditions de déclenchement dans la représentation de la règle correspond très souvent à la formulation naturelle par les experts de leur savoir-faire. Elle tend donc à favoriser la saisie des connaissances. Simultanément elle favorise la révision des connaissances. En effet, il n'est pas nécessaire de donner un nom à chaque règle pour pouvoir la désigner lorsqu'on en a besoin. La rédaction déclarative des règles dans les systèmes experts permet, en

149 144 Chapitre 7. La base de connaissances principe, de rédiger chaque règle (unité de savoir-faire) en ignorant l'existence effective des autres. On présume seulement que chaque règle introduite dans la base de connaissances comporte, quelque soit son auteur, des expressions de conditions qui permettront d'évaluer si la règle est applicable et donc, éventuellement, de l'appeler. On présume aussi que les faits introduits comme effets d'une règle peuvent contribuer à appeler d'autres règles. Le grand avantage de la rédaction déclarative des règles est de permettre d'ajouter et de supprimer aisément des règles sans être obligé d'étudier les conséquences des ajouts et de suppressions; elle confère aux systèmes experts une meilleure modularité. Les connaissances dynamiques sont donc codées sous la forme de règles de production et de fonctions Lisp. Généralement, une règle en forme externe comporte deux parties: Si antécédents Alors conséquents On a abandoné la forme CONCLUSION-SINON par souci de simplification. La partie antécédents est une conjonction de conditions, on peut exprimer des disjonctions soit à l'intérieur d'une condition, soit en définissant plusieurs règles ayant la même partie conclusions. La partie conséquents peut être une conjonction de sousconclusions ou un ensemble d'actions à envisager. Grammaire des règles: <déclaration-règle> ::= règle<identificateur> <règle> <règle> ::= Si<antécédents> Alors <conséquents> <antécédents> ::= [<prémisse> <action >] [ et <antécédents> ]* <prémisse> ::= < filtre > non échec enrichir (<variable> < expr Lisp >) <filtre> ::= (< prédicat > < élément > *) <prédicat> ::= < identificateur?<identificateur> <élément> ::= <identificateur> <variable> <filtre> / <expr Lisp> <action> ::= [execute j avec / prédicat-exécution] (expr Lisp)* <conséquents> ::= [ <conclusion> j <action> ] [ et <conséquents>]* <conclusion> ::= ajoute supprime conclut (<fiitre>) <variable> ::= [? & ] <identificateur>?- & - <identificateur> ::= symbole qui ne débute pas par? ou & Exemple: la règle R3.1 groupe des actions : R3.1 : deux objets différents demandent de déplacer un même objet, alors un déplacement commun en éloignant de ces deux objets est proposé. (Ecarter?objl?obj2) veut dire qu'on doit écarter?objl de?obj2 Si: et et Alors: (Ecarter?objl?obj2) ;?obj2 demande îobjl de l'éloigner (Ecarter?objl?obj3) ;?obj3 le demande aussi (nequal?obj2?obj3) ;?obj2 fobjs différents

150 7.4. Formuler les connaissances 145 Ajoute (Ecarter-g?objl (?obj2?obj3)) ;on les groupe en évitant de déplacer 2 fois îobjl Supprime (Ecarter?objl?obj2) Supprime (Ecarter?objl?obj3) Langages pour déclencheur Ils jouent un rôle essentiel pour permettre la rédaction associatives des règles et donc faciliter un style de programmation déclarative: les règles sont indépendantes les unes des autres. On respecte un modèle de compatibilité entre les faits et les éléments du déclencheur d'une règle, on appelle les éléments filtre. Dans notre système dit avec variables, seules les règles admettent des variables, mais pas les faits, et donc comme dans beaucoup de systèmes, on respecte le modèle de semi-unification entre les faits et les filtres, un cas particulier de l'unification utilisée en programmation logique, où les variables n'apparaissent que dans un des deux termes à unifier. Les éléments qui composent les déclencheurs de règles, appelés filtres, respectent la compatibilité entre les données et les modèles. Les règles peuvent comporter explicitement des variables, ce qui facilite beaucoup l'expression des connaissances et pose donc des problèmes d'unification des expressions et des problèmes de filtrages. Ces problèmes de filtrage et d'unification sont exposés dans la section 8.1. Une condition peut être soit un fait en tant que tel (elle est alors vérifiée s'il existe un élément connu lui correspondant), soit un filtre, soit un opérateur avec ses arguments. L'argument peut être, selon le cas, un fait ou une expression Lisp. On peut évaluer des procédures en cours de filtrage, créer une variable et affecter à cette nouvelle variable une valeur et on peut ensuite se servir de cette variable. Il est possible de réaliser des opérations logiques (négation, conjonction) sur des filtres ou éléments de filtres: par exemple l'opérateut non oblige à vérifier qu'aucun fait de la base n'est compatible avec l'élément de filtre qui suit. Les opérateurs apparaissant en partie condition sont: execute ou avec <expression>: évalue <expression> (S-expression Lisp) dans l'environnement, si le résultat de la dernière évaluation est différent de "NIL", on continue, sinon on retourne au noeud de choix le plus récemment visité. enrichir < variable expression>: pour enrichir l'environnement de filtrage d'une nouvelle liaison <variable valeur>. non <filtre>: cette condition n'est satisfaite que s'il n'existe pas d'élément de la base de faits qui corresponde à <filtre>. Langages pour conclusion Les effets de déclenchement d'une règle sont des transformations de la base des faits, spécialement dans notre cas pour avoir des nouvelles données transformées d'une échelle initiale à une nouvelle échelle dérivée finale en vidant la partition de base de conflits, c'est à dire que tous les conflits seront résolus. On distingue trois sortes d'effets, en faisant un parallèle avec les trois classes d'instructions de base des langages de programmation:

151 146 Chapitre 7. La base de connaissances instructions de traitement: effets sur la base des connaissances et au premier chef sur la base des faits. On a des primitives pour insérer de nouveaux faits dans la base de faits ou supprimer des faits, donc le moteur est non monotone. Le moteur ne donne aucun changement sur la base de faits en cas d'ajout d'un fait déjà présent dans la base, ou de suppression d'un fait non présent dans la base. Pas de primitives pour modifier la base de règles, mais chaque changement d'états de la base de faits change également les états des règles dont le déclencheur contient un filtre qui correspond le prédicat du fait d'ajout ou de suppression. Par conséquent, l'état de la base de règles valides change. instructions d'entrée-sortie: communication externe. On propose également la primitive exécuter pour expédier des messages, consulter l'environnement, ou lancer des processus externes au moteur d'inférence et à la base de connaissances. instructions de contrôle du moteur lui-même: des primitives peuvent agir sur le comportement du moteur d'inférence. Par exemple: abandon du cycle de base en cours, arrêt du moteur. Les opérateurs sur les actions en conclusion sont: 1. ajoute <filtre>: permet d'ajouter dans la base de faits le <filtre> totalement instancié. 2. conclut <filtre>: donne la preuve d'un fait sans insertion dans la base de faits. 3. supprime <ftltre>: supprime de la base de faits l'ensemble de faits filtrables par <filtre>. Ce système est donc non monotone. 4. execute <expression>: évalue une (S-expression Lisp) dans l'environnement, etc. De même, on définit la classe de règles: principalement, la classe de règles a les champs suivants: nom : une chaine de caraactères, comme RI, Ractionl, etc. nb-prédicats : une liste de doublets dont le premier terme est un nom de prédicat apparaissant en prémisse de la règle, et le deuxième, le nombre d'occurrences de ce prédicat en prémisse de la règle. Une prémisse positive ne contient pas les actions non, avec, execute, échec, dans ce cas le deuxième terme aura une valeure positive. Une prémisse négative est une action préfixé par non; dans ce cas, le deuxième terme aura une valeur négative, la valeur en général est 1. nb-prédicats-inconnus : est utilisé pour gérer la sélection des règles candidates, il désigne le nombre de prédicats en partie antécédent n'ayant pas d'instance (lorsque celui-ci prend la valeur 0 la règle est considérée comme candidate), la valeur est un entier. utilisée? : indique si elle a déjà subi ou non un déclenchement, la valeur est T ou nil.

152 7.4. Formuler les connaissances 147 antécédents : contient îa liste de conditions à vérifier. conséquent : contient la liste des conclusions de la règle. Pour toute règle déclenchée le nombre de prédicats n'ayant pas d'instances (le champ nb-prédicats-inconnus) est affecté à 1. En effet, seule une nouvelle instance d'un des prédicats comme prémisse positive de la partie antécédent permet à nouveau son application. Une suppression d'une dernière instance d'un prédicat comme prémisse négative de la partie antécédent d'une règle permet de rendre cette règle candidate. L'acquisition d'une instance de prédicat permettra d'affecter pour toute règle déjà utilisée, et où il apparaît en partie antécédents, son champ nb~prédicat-inconnu à 0 rendant celle-ci candidate. On communique avec les règles en envoyant des messages pour obtenir des informations. L'implantation interne d'une règle se trouve à la section A.l. Les effets des actions dynamiques: ajout et suppression, sont décrits dans les tableaux 7.2 et L'organisation des règles Comme les informations, valeurs numériques ou littérales, procédures, une règle de production est représentée sous forme d'objet dans la base de connaissances. Elles sont groupées en une ou plusieurs classes. La gestion des règles est ainsi facilitée. Les règles sont aussi séparées en sous-ensembles liés à des sous-problèmes. On peut alors associer un ensemble de règles à une classe particulière des objets dont les instances peuvent l'évoquer, soit à l'intérieur d'une méthode, soit quand une des variables d'instances prend une valeur particulière. Cette hiérarchisation de la base des règles permet aussi de limiter l'espace de recherche des règles. L'organisation virtuelle des règles se montre à la figure 7.4 de la page 147. La figure 7.5, qui détaille les relations hiérarchiques, se trouve à la page 150, mais dans la base des règles, elles sont rentrées en vrac. Règles de généralisation Règles de sélection Règles de schématisation Règles d' Harmonisation Figure 7.4: Structuration des règles

153 148 Chapitre 7. La base de connaissances L'ajout d'un fait: Si : le fait est déjà connu dans la base de faits du cycle précédent Alors : on ne fait rien Sinon : on execute le processus suivant: on incremente le nombre de succès de la règle en cours du déclenchement. on actualise le dictionnaire des prédicats. on ajoute ce fait dans îe champ Lf aits-total du prédicat correspondant. on ajoute le fait dans la base de faits. pour chaque règle où le prédicat du fait est présent comme une prémisse négative (précédé par non): Si : c'est la première instance qu'on associe au prédicat de ce fait: Alors : Si : la règle a déjà été déclenchée. Alors : on la laisse bloquée: indéclenchable: utilisée(t). Sinon : on incremente de 1 le nb-prédicats-inconnus Sinon : on ne fait rien. pour chaque règle où le prédicat du fait est prémisse positive: Si : la règle a déjà été déclenchée Alors : rendre la règle à nouveau declenchable: "non déclenchée" mettre le nb-prédicat-inconnu à 0 afin de la rendre candidate Sinon : Si : le nombre de faits connus attachés au prédicat de ce fait ajouté est plus grand ou égal au besoin (de ce fait) de la règle pour pouvoir la déclencher Alors : on ne fait rien. Sinon : on décrémente le nb-prédicats-inconnus de la règle. Si ce nombre devient égal à 0, la règle est candidate. Tableau 7.1: Ajout d'un fait

154 7.4. Formuler les connaissances 149 La suppression d'un fait: Si : le fait n'est pas connu dans la base de faits du cycle précédent Alors : on ne fait rien Sinon : on execute le processus suivant: on retire ce fait du champ Lf aits-total du prédicat du fait on retire le fait de la base de faits» pour chaque règle où le fait est une prémisse positive: Si : il y a moins de faits connus associés au prédicat de ce fait que le besoin (de ce prédicat) de cette règle: Alors : Si : la règle a déjà été déclenchée Alors : on la marque non utilisée ( le nb-prédicats-inconnu en ce moment precis est 1). Sinon : on incremente de 1 le nb-prédicats-inconnus Sinon : on ne fait rien. pour chaque règle où le fait est une prémisse négative (prefiixé de "NON"): Si : il n'y a plus de faits connus associés au prédicat de ce fait: Alors : Si : la règle a déjà été déclenchée. Alors : on ia marque à nouveau déclenchable: non utilisée. on décrémente de 1 le nb-prédicats-inconnus (il devient 0 en ce moment) Sinon : si le nb-prédicats-inconnus est plus grand ou égal à 1, on décrémente de 1 le nb-prédicats-inconnus Sinon : on ne fait rien. Tableau 7.2: Suppression d'un fait

155 150 Chapitre 7. La base de connaissances qualitative TT fdensitéj fusibilitéj festhétisité] (superposition! [importance] (agrandissement) (réduction) (sy m cotisation) Figure 7.5: Toutes les régies de la G.C.

156 Chapitre 8 Un petit moteur cpinférences 8.1 Le Filtrage et l'unification Lorsque le système cherche à appliquer une règle, il est amené à instancier les prémisses de celle-ci. L'instanciation d'une condition avec un élément de la base de faits est effectuée par filtrage. L'étape de filtrage a pour but de déterminer l'ensemble de "conflits", c'est à dire l'ensemble des règles dont les déclencheurs sont compatibles avec l'état courant de la base des faits. Le filtrage est le mécanisme de base des systèmes avec variables. Il est principalement utilisé pour: savoir si une prémisse est élément de la base de faits, savoir si une règle est candidate, déclencher une règle si elle déclenchable. L'opération de filtrage consiste à comparer deux expressions symboliques: une donnée et un filtre. la donnée est une structure dont les éléments sont des constantes, par exemple: (écarter la route A4 de la rivière Marne) Le filtre est une structure qui peut contenir des variables ou des constantes, par exemple: (écarter la route A4 de la rivière Marne), dans ce cas le filtrage vérifie l'exacte correspondance de tous les éléments de deux expressions. donc comparer un filtre et une donnée: donne succès, et avec donnée = (écarter la route A4 de la rivière Marne) filtre = (écarter la route A4 de la rivière Marne) donnée = (écarter la route A4 de la rivière Marne) filtre = (écarter la route A4 de la rivière Seine) 151

157 152 Chapitre 8. Un petit moteur d'inférences donne un échec. En général, un filtre contient des symboles spéciaux, des constantes et des variables, par exemple (écarter la route?x de la rivière?y), où?x et?y sont des variables; au travers de tous éléments, on recherche les éléments correspondants pour rendre les deux expressions filtre et donnée semblables. Dans notre système avec variables, pour permettre une écriture plus souple des connaissances dans les règles, on utilise plusieurs variables de filtre. Un filtre peut contenir: les variables précédées de "?" capture l'élément simple associé de la donnée: Cx lier la variable?x (et non x,) à un élément simple: un symbole; indique un élément atomique quelconque, il est un opérateur absorbant atomique, cet opérateur peut apparaître n'importe où dans un filtre comme un élément atomique, il est compatible avec n'importe quel élément atomique. par exemple: donnée = (écarter la route A4 de la rivière Marne) filtre = (écarter la route?x de la rivière Marne) donne la valeur A4 à la variable simple?x: [?x : A4]. donnée = (écarter la route A4 de la rivière Marne) filtre = (écarter a?-?x de la rivière Marne) où?- indique qu"un élément correspondant doit être présent dans la donnée, ici route, et la variable simple?x a la même valeur A4. les variables précédées de "&" capture un segment de liste éventuellement vide: &x : lie la variable fzx à une liste éventuellement vide d'éléments; &> : indique une liste quelconque éventuellement vide d'éléments, c'est un o- pérateur absorbant de liste, il peut apparaître n'importe où dans un filtre, il est compatible avec n'importe quelle suite de symboles, éventuellement vide. par exemple: donnée = (écarter la route A4 de la rivière Marne) filtre = (écarter &y) donne la valeur (la route A4 de la rivière Marne) à la variable simple &y: [<ky:(/a route A4 de la rivière Marne)].

158 8.2. Avantages et inconvénients 153 avec ou /: ces deux signes précèdent une expression Lisp. Puisque le système a été écrit en Lisp, on a ajouté la possibilité d'avoir des condition Lisp à l'intérieur d'un filtre, on peut évaluer des procédures en cours de filtrage. La condition précédée par "avec" ou "/" dans un filtrage est évaluée dans l'environnement local créé lors de l'unification de la règle. Si le résultat de cette évaluation est différente de "Nil", le filtre réussit, sinon il échoue. Le filtrage de (écarter?x &x) avec les données (écarter cal ca2) échoue, tandis avec (écarter c2 (c3 c4)) réussit par lier?x à c2, &x à (c3 c4). Aucune restriction syntaxique n'est faite quant aux places des variables simples nommés. On peut définir des concepts aussi variés que: (carrefour C2 Grandecirculation) pour dire que le carrefour C2 est un noeud de grande circulation du monde, ou pour affirmer que?x intersecte?y par le filtre (?x écarter?y) ou par (écarter?x?y). On pourrait donc définir le concept de "écarter" par (écarter?x?y) ou (?x écarter?y). Le filtrage n'a aucune propriété sémantique, seul le concepteur ou l'utilisateur ou l'expert est concerné par des écrits (sous réserve d'une interprétation adéquate) : (?Relation?objl?obj2) ou (écarter?x?y?-), etc. Notons que l'opération de filtrage est une opération déterministe et séquentielle. Théoriquement, les variables segments ft- et ftx peuvent prendre des séquences variables des éléments. Pour cette raison, on se contente du premier ensemble de valeurs trouvées pour rendre le filtre identique à la donnée, et les variables segments(ft- et ftx) sont substituées par une séquence minimale d'éléments. Par exemple la comparaison entre donnera les substitutions: et non pas donnée = (écarter la route A4 de la route R4) filtre = (&x la route &y ) &x -C= (écarter) fty <= (A4 de la route R4) &x <ji= (écarter la route A4 de )»y *= ( M) Le filtrage est une opération de semi-unification, c'est à dire que l'expression mise en correspondance avec le filtre ne contient pas de variable. L'unification, quant à elle, autorise la comparaison de deux expressions acceptant des variables. On trouvera dans la section A.2 un algorithme de filtrage programmé en Lisp pour le besoin du chaînage avant. 8.2 Avantages et inconvénients L'avantage d'utiliser la méthode de filtrage classique est de ne manipuler que des termes symboliques sans se préoccuper de la signification des termes utilisés. Cette opération utilisée pour mettre en correspondance une condition d'une règle et un élément de la base de faits a les avantages suivants:

159 154 Chapitre 8. Un petit moteur d'inférences les symboles spéciaux:?x,?-, ft-, fcy apportent une grande souplesse dans l'écriture des connaissances. pas de restriction syntaxique sur un fait, et par conséquent, pas de restriction syntaxique sur les prémisses des règles, sous réserve d'une interprétation adéquate d'une règle, et des correspondances entres les prémisses des règles et les faits de la base de faits. pas de restriction syntaxique aux places des variables dans les filtres, donc il est facile d'étendre la puissance d'expression de la connaissance. L'inconvénient est que la structure de contrôle par filtrage lors de la sélection et du déclenchement des règles dans un système avec variables en mode chaînage avant est souvent très coûteuse en temps. une condition est filtrée autant de fois qu'elle apparaît dans des règles différentes. * les conditions d'une règles sont comparées avec tous les éléments de la base de travail de faits. Pour une base de connaissance importante, le filtrage seul est donc inapproprié. De toute évidence, il est indispensable d'allier aux possibilités du filtrage classique, des méthodes efficaces de sélection et de déclenchement des règles. 8.3 Résolution Pour éviter les inconvénients du filtrage classique, on doit: pour une prémisse donnée, avoir accès à l'ensemble des règles où elle apparaît, pour un filtre d'une règle, dans les prémisses ou les conclusions, connaître l'ensemble des éléments de la base de faits qui le vérifient, connaître les liens qui peuvent exister entre les différentes conditions d'une même règle. Afin d'augmenter la rapidité d'exécution pour instancier les variables des conditions d'une règles lors du filtrage, on utilise diverses informations visant à réduire le temps de calcul à chaque cycle: un prédicat est un objet, chaque prédicat est doté de l'ensemble des règles où il figure en partie prémisse et en partie conclusion, chaque condition est dotée, par l'intermédiaire de son prédicat, de l'ensemble des éléments de la base de faits qui la vérifient, pour chaque règle, qui est un objet, des indicateurs (variables d'instance) indiquent si elle est candidate, si elle est déjà utilisée dans le cycle courant, si elle est encore potentiellement déclenchable.

160 8.3. Résolution 155 les prémisses ne sont pas filtrées avec l'ensemble des faits de la base de faits mais seulement avec ceux apparaisant sur le champ Lf aits-total de leur prédicat. Donc, lorsque le système visite une prémisse dont le prédicat est une variable, celle-ci doit avoir déjà été instanciée. On considère qu'un prédicat est le premier élément d'un fait, d'un filtre en général; donc le premier antécédent ne pourra jamais comporter de prédicat variable. Exemple: soit la règle symétrie-1 Si (symétrique?r ) et (?R?x?y) Alors ajoute (?R?y?x) Soit la base de faits: (Voisin cl c2) (intersecter c2 c3) (symétrique intersecter) L'unification de la première prémisse de la règle ne sera tentée qu'avec (symétrique intersecter), tous les autres étant ignorés. En effet, dans a première règle l'unification est réalisée d'abord avec la première prémisse (symétrique?r) et les faits figurant sur le champ Lfaits-total du prédicat symétrique. La variable?r est donc instanciée par la valeur intersecter, la deuxième prémisse pouvant alors être unifiée avec les faits présents sur Li aits-total du prédicat?r, auquel est à ce moment substituée par sa valeur intersecter. Si les prémisses de la règle symétrie-1 sont interverties, celle-ci ne sera pas déclenchée correctement. Si Alors (?R?x?y) et (symétrique?r ) ajoute (?R?y?x) En effet, lorsque le système tente d'unifier la première prémisse, il décèle la présence d'une variable comme prédicat: cette variable n'est pas un objet, sans valeur, le système cherche donc sa valeur dans l'environnement et ne la trouve pas. Le moteur d'inférence interprète les connaissances comme un système avec variables, non monotone. La démarche du MI en mode chaînage avant est assez simple. Il y a balayage de l'ensemble des règle candidates tant que l'on peut obtenir de nouvelles informations; une règle est candidate, si à chacune de ses prémisses correspond un élément de la base de faits (son champ nb-prédicats-inconnus valant alors 0, voir l'annexe A.l pour la représentation interne d'une règle). Après son application le champ nb-prédicats-inconnus est initialise à 1, ceci pour la rendre à nouveau candidate dès l'acquisition d'une nouvelle instance d'un prédicat de sa partie condition (en admettant, bien sûr, qu'aucun des prédicats de sa partie condition n'a été supprimé). Toute règle déclenchée redevient candidate, si l'un de ses prédicats apparaissant en partie condition obtient une nouvelle instance. Les règles candidates sont visitées par le système dans l'ordre de leur numérotation, de même pour les prémisses. Une règle sera déclenchée lorsque tous ses antécédents auront été instancies par des éléments de la base de faits. Les actions figurant dans la partie conclusions de

161 156 Chapitre 8. Un petit moteur d'inférences la règle sont alors envisagés en substituant aux variables des termes par leur valeur enregistrée lors du filtrage. Le système présenté ici ne prend pas en considération le problème du choix de la règle à appliquer, et ne déploie pas de stratégie sophistiquée lui permettant de minimiser au maximum le nombre d'instanciations inutiles (notons que la création de l'ensemble des règles candidates et la modularisation des règles selon les domaines donnent déjà des performances appréciables). Le moteur d'inférence est aussi un objet d'une classe défini MI qui a les champs: - bdr: (la base des règles). - bdfi: (la base des données initiales). - bdff: (la base des données finales dérivés de la base des données initiales). Le moteur d'inférences a des procédures suivantes: Initialiser: (initialise le moteur en initialisant la base des règles, la base de faits (bdfi, bdff)). Afficher: (affiche la règle que le moteur execute.) Editer: (édite des connaissances.) En-avant: (met le moteur en mode de chaînage-avant.) etc. 8.4 Chaînage avant L'algorithme du cycle de base: phase de détection et de résolution de conflit: (1)- On prend la première règle candidate phase de déduction - On sature sur la règle: Si: on a obtenu au moins un succès (c'est à dire un fait nouveau) Alors: on recommence en (1) avec la nouvelle base de règles candidates Sinon: -on passe à la règle candidate suivante -on s'arrête lorsqu'aucune règle candidate n'a pu s'appliquer Saturer sur une règle signifie obtenir de celle-ci le maximum d'informations, c'està-dire la déclencher autant de fois que possible au cours d'un cycle. On a préféré cette solution à celle qui consiste à appliquer une seule fois la règle retenue, ou encore à déclencher (en parallèle) toutes les règles candidates, puis à passer au cycle de base suivant. Lorsqu'une règle est déclenchée, sa partie <conclusions> est évaluée, les différences actions (ajoute, suppression, etc.) qui y figurent sont exécutées.

162 8.5. Mode d'inférence Mode d'inférence D'une manière générale, chaque cycle de base d'un moteur réalise principalement une dérivation de la forme de type modus ponens 1. Néanmoins, nos règles contiennent des actions, pas simplement des faits; la base des faits peut être modifiée à tout moment. Le parallélisme entre exécution d'un cycle de moteur d'inférence et application du modus ponens à deux formules logiques est indépendant du type de chaînage, avant ou arrière. Les variables dans les règles peuvent être quantifiées universellement, l'opération de filtrage entre déclencheur de règles et faits, inhérente aussi bien au chaînage avant (à partir des faits établis) qu'au chaînage arrière (faits à établir) correspond, en principe, au mode d'inférence appelé spécialisation universelle. 8.6 Stratégie du développement de la recherche Le mode d'invocation des règles (chaînage avant ou arrière) et les modes d'inférences, n'ont qu'une incidence partielle sur la détermination des enchaînements de règles. On superpose la stratégie en profondeur d'abord pour réduire et ordonner les choix des règles, tant qu'il y l'ajout d'un fait nouveau, le moteur intégre immédiatement les conclusions et commence un nouveau cycle avec une nouvelle base de règles qui tient compte du nouvel état de la base de faits résultant de cat ajout. Sinon, le moteur cherche à saturer toute la base de règles candidates au cours du même cycle. 8.7 Non monotonie Le système fonctionne en sens non monotone: tous les faits établis sont suscepstibles d'être retirés de la base, un fait peut être remis en cause. On a bien des situations qui conduisent à de telles suppresssion: en raison de la suppression d'objets: Un objet supprimé par une règle de suppression pourrait être sauvé par une autre règle de priorité plus grande, Un objet qui était obligé précédemment de se déplacer en raison de la superposition avec un autre objet peut se trouver tout seul après la suppression de l'autre objet par une autre règle. en raison du regroupement des actions, en raison des règles par défaut dont les conclusions sont à réviser. Par exemple, la régie si on n'a pas de choix, on supprime l'objet faute de place disponible, et la règle tant que c'est possible, on garde tout objet sont vues comme des règles par défaut dès lors qu'on n'est pas certain de la décision. 'Voir la section 3.3

163 158 Chapitre 8. Un petit moteur d'inférences 8.8 Fonctionnement sur un exemple Soit EC: Ci, C2, -.., C n sont les carrefours. Il s'agit de déterminer s'ils sont tous dans les limites du seuil de séparation; si non, il faut séparer l'un de l'autre, ou séparer l'un d'un sous ensemble de SC. La figure 2.4 de la page 37 montre la carte à l'échelle initiale 1:25 000, avec les réductions sans généralisation à différentes échelles. La figure 9.3 de la page 172 montre la carte réduite à l'échelle 1: sans généralisation, avec les signes conventionnels de cette échelle. La base de règles: (Rg9.1 Rg2.1 Rg2.2 Rg3.1 Rg3.2 Rg3.3 Rg8.1 Rg8.2 Rg8.3 Rg8.6 Rg8.4 Rg8.5 Rg4.1 Rg4.2 Rg4.3 Rg4.4 Rg4.5 Rg6.4 Rg6.1) Elles sont dans l'annexe C Ci-dessous est un échantillon de processus du moteur d'inférence: échelle initiale : 1/ ; échelle finale : 1/ ; reduction el/e2 :.25 ****AVAKT3***AVANT3***AVANT3***AVAIJT3***AVANT3*** *» 0K COMMENCE LE MOTEUR EN CHAINAGE AVANT3 ** ««Initialisation du moteur********** *La base_de_faits initiale - : (V-c SI S2) (V-c SI S3) (V-c S2 S3) (V-c S3 SI) (V-c S3 S21) (V-c S4 SU) (V-c S4 S19) (V-c S9 S10) (V-c Sil S4) (v-c su si2) (V-c S12 Sil) (V-c S12 S19) (V-c S13 S26) (V-c S19 S4) (V-c S19 S20) (V-c S20 S12) (V-c S21 S3) (V-c S25 S27) (V-c S27 S25) (Voisin V-c) (symétrique V-c) (synetrique V-d) (sy«étriqué Voisin) (V-c S2 SI) (V-c S3 S2) (V-c S4 SÎ2) (V-c S10 S9) (V-c S12 S4) (V-c S12 S20) (V-c S19 S12) (V-c S20 S19) (V-c S26 S13) (Voisin V-d) ******* Le nouveau cycle *** *La base regles valides - : (Rg2.1 Rg8.1 Rg8.4) **

164 8.8. Fonctionnement sur un exemple 159 avec la Rg2.1 Ajout de : (Ecarter S25 S ) (Ecarter S19 S ) (Ecarter S26 S ) (Ecarter S20 S ) (Ecarter S19 S ) (Ecarter Sil S ) (Ecarter S4 S ) (Ecarter S19 S ) (Ecarter Sil S ) (Ecarter S21 S ) (Ecarter S2 S ) (Ecarter S3 SI ) (Ecarter S2 SI ) 13 succès avec la regle- : Rg2.1 «FIN>> de la saturer! ******* Le nouveau cycle *** La base regles valides» : (Rg3.1 RgS.l Rg8.4 Rg6.4) ** avec la Rg3.1 Ajout de : (Ecarter-g S2 (SI S3) ) SUPPRESSION de: (Ecarter S2 SI ) SUPPRESSION de: (Ecarter S2 S ) Ajout de : (Ecarter-g SU (S4 S12) ) SUPPRESSION de: (Ecarter Sil S ) SUPPRESSION de: (Ecarter Sil S ) Ajout de : (Ecarter-g S19 (S4 S12) ) SUPPRESSION de: (Ecarter S19 S ) SUPPRESSION de: (Ecarter S19 S ) 3 succès avec la regle- : Rg3.1 «FIN» de la saturer! ******* Le nouveau cycle *** *La base regles valides» : (Rg2.2 Rg3.2 Rg3.3 Rg8.1 Rg8.4 Rg6.4 Rg6.1) ** avec la Rg2.2 Ajout de :

165 160 Chapitre 8. Un petit moteur d'inférences (Ecarter-g S19 S4 S12 S ) SUPPRESSION de: (Ecarter-g S19 (S4 S12) ) 1 succès avec la regle- : Rg2.2 «FIN» de la saturer! ******* Le nouveau cycle *** La base regles valides : (Rg3.2 Rg3.3 Rg8.1 Rg8.4 Rg6.4 Rg6.1) ** -on n'a pas eu de succès avec la regle- : Rg3.2 Le reste des regles valides de ce cycle : (Rg3.3 Rg8.1 Rg8.4 Rg6.4 Rg6.1) -on n'a pas eu de succès avec la regle- : Rg3.3 Le reste des regles valides de ce cycle : (Rg8.1 Rg8.4 Rg6.4 Rg6.1) -on n'a pas eu de succès avec la regle- : Rg8.1 Le reste des regles valides de ce cycle : (Rg8.4 Rg6.4 Rg6.1) -on n'a pas eu de succès avec la regle- : Rg8.4 Le reste des regles valides de ce cycle : (Rg6.4 Rg6.1) avec la Rg6.4 Ajout de : (Action (Ecarter S3 SI )) (Action (Ecarter S2Í S )) (Action (Ecarter S4 S )) (Action (Ecarter S20 S )) (Action (Ecarter S26 S )) (Action (Ecarter S19 S )) (Action (Ecarter S25 S )) 7 succès avec la regle- : Rg6.4 <<FIN>> de la saturer! ******* Le nouveau cycle *»* La base regles valides» : (Rg6.1) ** avec la Rg6.1 Ajout de : (Action (Ecarter-g SU (S4 S12) )) (Action (Ecarter-g S2 (SI S3) )) 2 succès avec la regle- : Rg6.1 <<FIN>> de la saturer!

166 8.8. Fonctionnement sur un exemple 161 ******* Le nouveau cycle *** *La base regles valides : O ** Je ne peux rien déduire de plus. Les nouvelles connaissances déduites totales sont:* = :((Ecarter S25 S ) (Ecarter S19 S ) (Ecarter S26 S ) (Ecarter S20 S ) (Ecarter S4 S ) (Ecarter S21 S ) (Ecarter S ) (Ecarter-g S2 (SI S3) ) (Ecarter-g SU (S4 S12) ) (Ecarter-g S19 S4 S12 S ) (Action (Ecarter S3 SI )) (Action (Ecarter S21 S )) (Action (Ecarter S4 S )) (Action (Ecarter S20 S )) (Action (Ecarter S26 S )) (Action (Ecarter S19 S )) (Action (Ecarter S25 S )) (Action (Ecarter-g SU (S4 S12) )) (Action (Ecarter-g S2 (SI S3) ))) Et voila, c'est tout AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA on sort la carte généralisée en code PostScript La carte a généraliser se trouve au fichier: marmandel00f.ps = marmandel00f.ps?

167 Chapitre 9 Exemples Dans ce chapitre, nous allons illustrer par des opérations de la GC des exemples de réalisation. Ils sont basés sur la ville de Marmande 1, proposée par Monsieur Weger de l'ign, et sont des exemples pédagogiques classiques de la généralisation cartographique manuelle à l'ign. Les généralisations sont réalisées avec le système implanté en Le-Lisp et Ceyx. 9.1 La base des objets du réseau On va représenter essentiellement le fonctionnement du processus de résolution en entier sur le réseau de la ville de Marmande. La figure 2.4 de la page 37 montre la carte à l'échelle initiale 1:25 000, avec les réductions sans généralisation à différentes échelles. Nous allons ici généraliser cette carte selon différents facteurs de réduction d'échelle en comparant avec les réductions sans généralisation: Le réseau est composé de: un chemin de fer F5 composé des arcs: (asi, as2, asa, a.54, a 55 ) une rivière La Garonne H6 composée des arcs: (agi, ago) et (^63) a 6 4, 365 ) Le périphérique de la ville: (a7t, a72, a73, a74, a7s) une route nationale H3 composée des arcs: (a3i, 3,32, ^33, a34, a35, a.^e, 337)» des routes départementales: Di (an, ai 2, ai 3, ai 4, ai 5, ai 6, a t 7, ajg, ai 9 ) D n : des routes régionales: (ano, am, ain, *U3, an 4, ans) R4: (a 41, a^, a 43 ) 'Les tomates de Marmande sont bonnes et connues, semble-t-il 162

168 9.2. Processus de généralisation 163 R2: (aai) R8: (agi, as2, a 83, ag 4, ag 5,) R9: (a 9 i, a 92, a 93 ) RIO: (ami, aio2> aio3) R12: (a m ) R13: (ai 2, a i3 ) des ruelles d'agglomération: R13 R14 R15 ( a i3i, ai3 2, ai33, ai 34 ) ( a 14l) (ai5i) Il se peut que le nom de certains arcs ne figurent pas sur la carte pour des raisons de lisibilité. Mais ils sont tous codés suivant les routes dont ils dépendent. 9.2 Processus de généralisation La liste de priorité des objets est: (H, F, E, P, A, N, D, R)»- H: Hydraulique, F: Voie ferrée, E: Européeenne, P: Périphérique, A: Autoroute, N: Nationale, D: Départementale, ft- R: Régionale L'algorithme de procédure est le suivant:» Processus de sélection: qualitatif, quantitatif. Détection de confusion localement, route par route, arc par arc; s'il y a des confusions, le processus d'écartement local et éventuellement le processus de linéarisation local seront déclenchés.

169 164 Chapitre 9. Exemples * Détection des confusions des carrefours. Processus d'harmonisation détection de translation globale revenir en arrière des sélections et suppressions supplémentaires. 9.3 De 1: aux échelle inférieures De 1: à 1: La figure 9.1 de la page 170 montre la carte réduite à l'échelle 1: sans généralisation, avec les signes conventionnels de cette échelle. La figure 9.2 de la page 171 montre la carte réduite à l'échelle 1: avec généralisation, avec les signes conventionnels de cette échelle. Pour le signe conventionnel de voie ferrée, à grande échelle, 1:25 000, où la place n'est pas aussi limitée, le nombre de traits peut indiquer le nombre de voies tandis l'épaisseur du trait varie selon le gabarit des voies. Dés l'échelle 1:50 000, cette solution conduirait à un encombrement excessif des voies multiples, on doit abanbdonner ce principe; de plus, les voies ferrées doublant fréquemment des routes, on ne peut les faire apparaître qu'à l'aide de signes adventifs, petits traits perpendiculaires symbolisant les traverses. Une solution plus logique: l'épaisseur du trait est fonction de la largeur de la voie et le nombre de traits perpendiculaires accolés indique sans ambiguïté le nombre de voies. Etant données la faible densité et l'importance du réseau ferroviaire, cette convention est valable jusqu'aux très petites échelles. Comme le facteur de réduction est 2, après la réduction, la carte reste lisible, il n'y pas de grosse différence entre les deux cartes, sauf: l'arc a21 de la route R2 se trouve maintenant sur la Garonne, il est superposé à l'arc a61, l'arc a82 de la route R8 entre le carrefour S16 et S18 colle avec l'arc as2 de la vote ferrée F5. Donc le processus ajuste réalisé une procédure d'écartement en linéarisant les arcs de priorité inférieure. Un échantillon du processus: pre-traiterl: écarter-ps a21 de : a61 ecarter-ps a82 de : a52 ecarter-ps a85 de : as5 pre-traiter3-sg: écarter-arc a82 de : as2 ecarter-arc al22 de : a75

170 9.3. De 1: aux échelle inférieures 165 on sort la carte généralisée en code PostScript échelle initiale : 1/ ; échelle finale : 1/ ; reduction el/e2 :.5 La carte a généraliser se trouve au fichier: marmande50f,ps = marmande50f.ps De 1: à 1: La figure 9.3 de la page 172 montre ia carte réduite à l'échelle 1: sans généralisation, avec les signes conventionnels de cette échelle. La figure 9.4 de la page 173 montre la carte réduite à l'échelle 1: avec généralisation, avec les signes conventionnels de cette échelle. Comme le facteur de réduction est 4, après la réduction, il y a plusieurs endroits où les objets se superposent l'un à l'autre: l'arc a21 de la route R2 se trouve maintenant de plus en plus sur la Garonne, il est superposé à l'arc a61, l'arc a82 de la route R8 entre le carrefour S16 et S18 est presque caché, avec son élargissement de signe conventionnel; l'arc a52 de la voie ferrée F5, et a85 contre a55 de la même façon, même coté. l'arc a73 du périphérique P7 se heurte à l'arc a53 de la voie ferrée F5, l'arc al34, entre S25 et S26, de la ruelle d'agglomération R13, se colle à l'arc a75 du périphérique P7 le triangle S1-S2-S3 disparaît à cause de l'élargissement de ses arcs de bord. Donc le processus a déclenché: une procédure d'écartement en linéarisant les arcs de basse priorité pour séparer les arcs collés ensemble. une procédure de séparation de carrefours: S2 de SI écrire la base de faits initiaux dans *bdf.11* La base de faits au fichier bdf.11 : charger le fichier de base de faits initiaux: *bdf.11* * Charger le fichier de Base de Regles: B2newBdr.MIl : * AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA pre-traiterl:

171 166 Chapitre 9. Exemples ecarter-ps al14 de : a71 ecarter-ps a21 da : a61 ecarter-ps a73 de : a53 ecarter-ps a82 de : a52 ecarter-ps a8b de : a55 pre-traiter3-sg: ecarter-arc al2 de : a62 ecarter-arc al02 de : al8 ecarter-arc al34 de : a75 ecarter-arc al22 de : a75 Les actions a effectuer sont les suivantes : (Action (Ecarter-g S2 (SI S3) )) (Action (Ecarter-g SU (S4 S12) )) (Action (Ecarter S25 S )) (Action (Ecarter S19 S )) (Action (Ecarter S26 S )) (Action (Ecarter S20 S )) (Action (Ecarter S4 S )) (Action (Ecarter S21 S )) (Action (Ecarter S3 SI )) Et voila, c'est tout AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA une action : ECARTER S2 pour eloigner ses voisins : (SI S3); Direction: pour avoir la distance: une action : On laisse ces 3 ses tels qu'ils sont: SU et (S4 S12) ECARTER S25 pour eloigner ses voisins : (S27); Direction: pour avoir la distance: une action : ECARTER S19 pour eloigner ses voisins : (S20); Direction: pour avoir la distance: REVERIFICATIOM: S19 est MIS au centre-10

172 9.3. De 1: aux échelle inférieures 167 une action : ECARTER S26 pour eloigner ses voisins : (S13); Direction: pour avoir la distance: On ne déplace que: au lieu de: une action : ECARTER S20 pour eloigner ses voisins : (S12); Direction: pour avoir la distance: une action : IMPOSSIBLE de deplacer: S4 C'est une croix-dix, a translater! translater ECARTER S21 pour eloigner ses voisins : (S3); Direction: pour avoir la distance: ECARTER S3 pour eloigner ses voisins : (Si); Direction: pour avoir la distance: pre-traiterl: ecarter-ps all4 de : a71 écarter-ps a21 de : a61 ecarter-ps a85 de : a5s De 1: à 1: La figure 9.5 de la page 174 montre la carte réduite à l'échelle 1: sans généralisation, avec les signes conventionnels de cette échelle. La figure 9.6 de la page 175 montre la carte réduite à l'échelle 1: avec généralisation, avec les signes conventionnels de cette échelle. Dans la généralisation cartographique manuelle, pour aboutir à une carte finale, on essaie d'avoir comme référence une carte d'échelle pas trop éloignée de celle de la carte finale, le facteur ne devant pas dépasser pas 4 ou 5; la raison en est que le cartographe a du mal à évaluer visuellement les différences de caractéristiques de deux cartes, et appécie mal l'espace disponible, par conséquent, il peut avoir tendance à surcharger la carte ou au contaire à la sous-charger, s'il y a trop d'écart entre les deux. Mais ce genre de problème ne se pose pas pour notre système, quel que soit le rapport d'échelle; la règle de lisibilié est toujours la même numériquement. Comme le facteur de réduction est 10, qui est considéré comme grand dans la généralisation

173 168 Chapitre 9. Exemples manuelle, les cartes ont des caractéristiques plus différentes que jamais. Par définition, la carte est une image conventionnelle qui n'est pas et ne peut être rigoureusement semblable au terrain représenté. Quelle que soit la densité des phénomènes figurés, la possibilité de mesure est conditionnée soit par une exactitude positionnelle (mise en place rigoureuse par rapport au réseau de référence), soit par une exactitude relationnelle (disposition relative des phénomènes l'un par rapport à l'autre). Ces deux qualités de la carte ne coexistent que sur les plans ou sur les cartes à très grande échelle où la part de convention est réduite. Dans le cas général, on réalise un compromis et l'exactitude relationnelle devient prédominante au fur et à mesure que l'échelle décroît. Sur une carte de 1:25 000, il est presque possible de contenir tous les objets comme dans la nature, alors à l'échelle 1: , c'est plutôt une caricature de la réalité, c'est juste avant l'étape de symbolisation complète des objets: après la réduction, il y a plusieurs endroits où les objets se superposent l'un à l'autre: l'arc a21 de la route R2 est en train de boire de plus en plus sur la Garonne en superposant sur l'arc a61, l'arc a82 de la route R8 entre le carrefour S18 et S18 a presque caché, avec son élargissement de signe conventionnel, l'arc a52 de la voie ferrée F5, et a85 contre a55 de la même façon, même coté. l'arc a73 du périphérique P7 a dépassé l'arc as3 de la voie ferrée F5; il se trouve de l'autre coté et a rejoint l'arc a83. la ruelle d'agglomération R13 est entièrement cachée par la périphérique P7. * L'arc al2 (entre SI et S2) et l'arc all5 (entre S2 et S3) sont cachés par l'arc a70 (entre SI et S3), ce dernier a été beaucoup plus agrandi que ses 2 voisins. Par conséquent, le triangle S1-S2-S3 disparaît à cause de l'élargissement de ses arcs de bord. De même, on ne distingue plus le carrefour complexe composé de (S4, S12, S19, S20) Donc le processus a eu les effets suivants: Par un processus de sélection qualitative, la ruelle d'agglomération est éliminée, Par la règle de détection de conflits, l'arc a2i ne trouve pas assez de place entre ses deux voisins l'arc a61 et l'arc a31, et il n'est pas plus puissant qu'eux, il est disparaît. De même les arcs al 15, a43, al2, al3, Par les règles d'harmonisation, la voie ferrée F5 est translatée entièrement en l'éloignant du périphérique P7. Par la propagation, la route R8 subit une translation dans la même direction que la voie ferrée pour garder uns distance minimum entre elle et la voie ferrée. En se déplaçant, la route R8 subit aussi une linéarisation locale (voir la section 6.5.6). une procédure d'écartement en linéarisant les arcs de base priorité pour séparer les arcs collés ensemble. une procédure de séparation de carrefours: S2 de SI

174 9.3. De 1: aux échelle inférieures De 1: à 1: La figure 9.7 de la page 176 montre la carte sans généralisation réduite à l'échelle 1: , avec les signes conventionnels de cette échelle. La figure 9,8 de la page 177 montre la carte avec généralisation réduite à l'échelle 1: , avec les signes conventionnels de cette échelle, De 1: à 1: La figure 9.9 de la page 178 montre la carte sans généralisation, réduite à l'échelle 1: , avec les signes conventionnels de cette échelle. La figure 9.10 de la page 179 montre la carte avec généralisation, réduite à l'échelle 1: , avec les signes conventionnels de cette échelle.

175 170 Chapitre 9. Exemples Ci-dessus: échelle finale: 1/ agrandie au 1/ sans generalisation 1/50000 Figure 9.1: En bas: la carte réduite à 1: sans généralisation; En haut: agrandie à l'échelle 1:25 000

176 9.3. De 1: aux échelle inférieures 171 Ci-dessus: échelle finale 1/ agrandie au 1/ avec generalisation 1/ Figure 9.2: En bas: la carte réduite à 1: avec généralisation; En haut: agrandie à l'échelle 1:25 000

177 172 Chapitre 9. Exemples Ci-dessus: échelle finale: 1/ agrandie au 1/ sans generalisation 1/ Figure 9.3: En bas: la carte réduite à 1: sans généralisation; En haut: agrandie à l'échelle 1:

178 9.3. De 1: aux échelle inférieures 173 Ci-dessus: échelle finale: 1/ agrandie au 1/ avec generalisation 1/ Figure 9.4: En bas: la carte réduite à 1: avec généralisation; En haut: agrandie à l'échelle 1:25 000

179 174 Chapitre 9. Exemples Ci-dessus: échelle finale: 1/ agrandie au 1/ sans généralisation rmande 1/ Figure 9.5: En bas: la carte réduite à 1: sans généralisation; En haut: agrandie à l'échelle 1:25 000

180 9.3. De 1: aux échelle inférieures 175 Ci-dessus: échelle finale: 1/ agrandie au 1/ avec generalisation viande 1/ Figure 9.6: En bas: la carte réduite à 1: avec généralisation; En haut: agrandie à l'échelle 1:25 000

181 176 Chapitre 9. Exemples ^H Marmande ^Ê ^ ^ ^i ( *^r ^ 61 i ^00 sl Âr 1 1 / V s N ^W ^^> Ci-dessus: échelle finale: 1/ agrandie au 1/ sans generalisation 1/ Figure 9.7: En bas: la carte réduite à 1: sans généralisation; En haut: agrandie à l'échelle 1:25 000

182 9.3. De 1: aux échelle inférieures 177 Marmande k^^^fl L> 1 su ^fc î-# 1 \ V \ Ci-dessus: échelle finale: 1/ agrandie a 1/ avec generalisation \ ^T S13 ande 1/ Figure 9.8: En bas: la carte réduite à 1: avec généralisation; En haut: agrandie à l'échelle 1:25 000

183 178 Chapitre 9. Exemples Ci-dessus: échelle finale: 1/ agrandie au 1/ sans generalisation ande 1/ Figure 9.9: En bas: la carte réduite à 1: sans généralisation; En haut: agrandie à l'échelle 1:25 000

184 9.3. De 1: aux échelle inférieures 179 Marmande.«%» S13 \ Ci-dessus: échelle finale: 1/ agrandie au 1/ avec generalisation ande 1/ Figure 9.10: En bas: la carte réduite à 1: avec généralisation; En haut: agrandie à l'échelle 1:25 000

185 180 Chapitre 9. Exemples

186 Partie IV Conclusion generale

187

188 Analyse des résultats Si on regarde les séries de cartes de la ville de Marmande généralisées à partir d'une carte à l'échelle 1/25 000, cartes pour lesquelles les règles suggérées et citées jusqu'à maintenant sont appliquées de façon systématique, on constate les résultats suivants: à l'échelle 1/ , les tracés sont fiables par rapport à l'échelle initiale 1/25 000, puisqu'il y a que des petits décalages, le facteur de réduction est moins de 5; à 1/ , les tracés commencent à être dilatés, amplifiés, mais toujours semblables à la carte initiale; à partir de 1/ , il y beaucoup moins de catégories d'objets, de par la conception même de la carte, et par manque de place; à 1/ , le facteur de réduction atteint 40, la carte initiale occupe 10 mm 2, il n'en reste plus que la nationale N3, le chemin de fer, et la symbolisation ponctuelle de la ville. Nous avons noté que la représentation graphique, moyen d'enregistement, de traitement et de communication de l'information géographique, est un langage qui a son vocabulaire et sa grammaire, et, par conséquent, ses règles d'orthographe et de syntaxe. Que, jusqu'à présent, ces règles aient été appliquées inconsciemment et sans formulation n'implique nullement leur inexistence et l'impossibilité de les énoncer de façon formelle. En réalité, les propriétés des variables visuelles s'expriment sous forme de longueur, d'équivalence, d'ordre ou de rapports numériques. Les règles de lisibilité s'énoncent en termes numériques, les principes de généralisation, eux-mêmes, sont justiciables d'une formulation mathématique si on prend la peine de procéder à une approche logique et méthodique; loin d'affaiblir la portée de la généralisation, ces méthodes semblent la renforcer en lui apportant l'élément d'objectivité qui lui faisait défaut. Le rôle personnel du cartographe reste fondamental dans un système automatisé conçu en mode conversationnel, c'est à dire permettant le dialogue permanent entre l'homme et la machine. Débarassé des travaux de routine et des contraintes artisanales, le cartographe de demain devrait être en mesure de mieux maîtriser les problèmes de conception tout en gardant des possibilités d'intervention, de choix et de décision au cours des phases d'exécution. 183

189 Conclusion genérale Dans cet exposé, on a abordé quelques aspects de l'automatisation de la généralisation cartographique dans le cadre des réseaux de communication. On a essayé de contourné les difficultés partiellement en faisant appel à la méthodologie des systèmesexperts. On a montré essentiellement une analyse des objectifs (pourquoi généraliser), des estimations des situations (quand généraliser), une compréhension de problème (comment généraliser), et la recherche des méthodes informatiques en nous facilitant la vie pour réaliser une automatisation de ce problème bien complexe de la généralisation cartographique. Quelsque algorithmes basés sur la compréhension des éléments géographiques dans leur ensemble sont décrits. On a ensuite présenté une approche globale de l'acquisition de la connaissance fondée sur un processus itératif en quatre phases: communication, formulation-modélisation, validation, réalisation-illustration. On a mis l'accent sur les études de l'acquisition des connaissances humaines, e savoir-faire des experts, leur modélisation mathématique, et également sur leur représntation informatique à l'aide de plusieurs outils pratiques de l'intelligence artificielle telles que: programmation orientée objet, la programmation par règles de production, la programmation en Lisp. Il est difficile de dire telle technique informatique est meilleure que telle autre. Vue la complexité des problèmes de la généralisation et l'existence de nombreux de modes de représentation des connaissances, on est persuadé qu'aucun de ces modes ne constitue à lui seul une réponse au problème. En analysant les différents modes de représentation des connaissances tels que: les représentations procédurales, les représentations à base de règles, et les représentations par objets, on décrit une solution par l'utilisation conjointe de plusieurs techniques: représentation des connaissances de façon procédurale, par des objets, raisonnement avec des règles. Les connaissances abstraites de la GC seront ainsi codés de façon plus efficace et plus souple pour mieux traiter les problèmes complexes. A cette approche, nous avons associé diverses autres méthodes, pour résultat partiel que nous espérons intéressant. De ce point de vue, nous estimons, non pas avoir atteint un but d'un système totalement opérationnel, mais avoir pris la bonne direction, qui n'était pas évidente au début. Je me rappelle qu'au début, je ne savait pas très bien où me mènerait cette reherche, et je n'avais pas non plus une idée très claire de l'objectif à atteindre. Car j'avais l'impression que, dans ce domaine, la communauté cartographe n'était pas optimiste. A l'issue de cette thèse, avec toutes les difficultés que j'ai eues, les résultats des études, des essais, j'ai maintenant une idée plus claire: l'automatisation de la généralisation n'est pas impossible, même tout à fait possible. Mais on ne peut pas s'attendre à des solutions parfaites à court terme. Elle nécessite des études au 184

190 185 niveau tant de ia théorie cartographique que la pratique d'informatique. Il me semble qu'aucun de deux aspects ne constitue à lui seul une réponse au problème. La solution réside certainement dans le mariage de ces deux techniques bien différentes. L'informatique offre une grande facilité à la cartographie; la cartographie fournit un domaine particulier d'application qui demande l'évolution de l'informatique. Les théories de la généralisation cartographique sont intéressantes à raconter, mais les difficultés résident dans la réalisation concrète de ce processus complexe dont la description est parfois un peu effrayante. C'est ce qui rend admirable le travail du cartographe, ou, de façon plus générale, de l'expert humain, La résolution de ce problème résidera dans: la recherche des théories de la communication, une bonne représentation des connaissances et une formalisation des règles de généralisation utilisées inconsciemment par les experts humains. * des algorithmes basés sur une compréhension de l'élément ou des éléments géographiques dans leur ensemble. La recherche de la généralisation cartographique tend à approfondir les bases théoriques, à repenser les concepts de généralisation, d'algorithme, de modèles de données, et à développer des processus parallèles traitant des éléments cartographiques complexes. Il semble qu'un système expert n'est pas seulement une base de règles et un moteur d'inférence, et que la construction de tels systèmes requiert plus que l'analyse de cohérence. C'est tout un environnement complexe qui doit être analysé pendant le développement d'un système expert et plus précisément pendant la phase d'acquisition de la connaissance qui ne se limite pas à une simple transmission d'informations. Le système décrit dans cet exposé permet de modéliser un grand nombre de problèmes de la généralisation cartographique, grâce à la souplesse et à la puissance de repésentation de connaissances en objets, et au moteur d'inférences qui utilise des variables. Pourtant le cycle de base du moteur d'inférences est simple. Le système peut également fonctionner en logique sans variable, mais il est moins efficace en rapidité qu'un système en pure logique de proposition. Le système est écrit en Le-îisp et Ceyx de l'inria. Un transfert vers Common lisp a été réalisé par monsieur Tierry Salset à l'ign. Les éléments sommairement présentés dans cette communication sont en cours de perfectionnement.

191 186

192 Partie V J. \- Í JL J, M. \*s ^L *»->

193

194 Annexe A Code des Programmes A.l Structuration et gestion interne des objets Nous utilisons le même formalisme objet de façon homogène pour l'ensemble du programmme. Comme les éléments géographiques, les prédicats et les règles sont représentés par des objets, mieux adaptés pour l'ensemble des traitements. Ils ont donc des champs (variables d'instance ou de classe) et des méthodes (procédures) de traitement. A. 1.1 La représentation interne des faits Un fait est une liste dont le premier élément est un prédicat suivi des arguments. Par exemple, dans (Voisin al a2), Voisin est un prédicat, al et a2 ses deux arguments. Pour les arguments qui sont des variables, leurs valeurs sont souvent des objets, instances d'autres classes. Dans l'exemple précédent, ai et a2 sont des routes ou des carrefours. La définition de la classe {PREDICAT} de prédicats sous Ceyx par (Les explications des différents champs d'un prédicat se trouve dans la section 7.4.3): (deftclass PREDICAT nom Lfaits-totale Lreg-ante Lreg-conc) tandis que la fonction make-predicat création de ses instances est: (defmake {PREDICAT} make-predicat (nom Lfaits-totale Lreg-ante Lreg-conc)) Fonction de traitement d'un fait Traiter un fait consiste à actualiser les différents champs de son prédicat ou à en créer un dans un dictionnaire des prédicats (dico), les différents champs des règles qui contiennent ce prédicat. On suppose donc que son prédicat ne soit pas une variable: 189

195 190 Annexe A. Code des Programmes (de traite-fait-rgl ((pred. arg). conc?); le PREDICAT (or (VAR pred) ; c'est une variable, (VARC pred) ; il n'y a rien a íaire (selectq pred ; aucune mise a jour a faire ((execute supprime liaison insère avec non échec)) ; on passe l'action pour recommencer ; avec les arguments ((ajoute conclut) (traite-fait-rgl (car arg) conc?)) (t (unless (member pred dico) ; le prédicat n'est pas encore connu ; du dictionnaire (set pred ; on le cree, initialise (make-predicat pred '() (pairlis '() '() ()) (pairlis '() >() ()))) (newr dico pred)) ; on le memorise (lets ((p-ou-c conclusion ou antecedent (if conc? 'Lreg-conc 'Lreg-ante)) (regles-quialefait (send p-ou-c (eval pred)))) ; obtenir les regles (ifn (assq nora-regle regles-quialefait) ; si la regle n'est pas presente dans le champ (and (send p-ou-c ; alors on en rajoute. (eval pred ) (acons nom-regle 1 regles-quialefait)) ; si on traite une prémisse, on incremente le (or conc? nombre de prédicats de regle (sendq nb-predicats regle (incr nb-pred)))) ; sinon la regle a deja une instance de ce prédicat ; on increment le nb d'instance (send p-ou-c (eval pred ) (al-vincr nom-regle regles-quialefait))))))))

196 A.l. Structuration et gestion interne des objets 191 A.1.2 La représentation interne des règles La classe de règles {REGLE} est définie ci-dessous; (deftclass REGLE nom utilisée? coefficient variables nb-predicats nb-predicats-inconnu antecedents consequents) la création des instances de règles par la fonction make-regle: (defmake {REGLE} make-regle (nom utilisée? coefficient variables nb-predicats-inconnu nb-predicats antecedents consequents)) Par exemple, la regle R3.1 est une instance de la classe {REGLE}, elle aura la forme interne: (setq R3.1 (make-regle ;la fonction d'appel de creation d'instance R3.1 le nom 0 non-utilisee 1 coefficient (?objl?obj2?obj3) les variables 2 ;le nombre de prédicats inconnu ((Ecarter. 2)) nombre de prédicat ((Ecarter?objl?obj2) (Ecarter?objl?obj3) antecedent1 antecedent2 (avec (nequal?obj2?obj3))) ; antecedents ((ajoute (Ecarter-g?objl (?obj2?obj3))); conclusionl (supprime (Ecarter?obji?obj2)) ; conclusion (supprime (Ecarter?objl?obj3))))) ; conclusion

197 192 Annexe A. Code des Programmes Les macros de reconnaissance lexicale: VAR, VARC, VARCN Ce sont des définitions des variables pour les prédicats et le filtrage. Déterminer des variables simples consiste de voir si sa première lettre est commencée par?: variable::=?<identificateur>. C'est une variable filtrant un objet: (dmd VAR (element) '(and (vaxiablep.element) (= (chrnth 0.element) #/?))) Déterminer les variables segments::^ 4<identif icateur>. C'est une variable filtrant une liste (dmd VARC (element) '(and (vaxiablep.element) (= (chrnth 0.element) #/*)))? (VARC '&x+) = 38 Une variable segment non anonyme (i.e ne commençant pas par &-): (dmd VARCN (element) '(and (VARC.element) (neq (chrnth 1.element) #/-))) Initialisation Initialise les différentes variables qui se trouvent dans des fonctions différentes: (de initvar () (setq mode 't ; imprimer les messages de deduction premier degré mode-infere '() ; imprimer les messages de deduction 2ieme degré mode-aff-reg '() ; imprimer les messages d'affiche des regles env '((i i)) ; environnement cpt 0 base_de_faits () base_de_regles () dico () ; dictionnaire des prédicats definitions () implicites ())) ; les faits initiaux Fonctions de traitement des variables L'env: une A-list, est une variable globale décrivant un environnement pour le filtrage et l'unification. Livrer toutes les instances d'un prédicat:

198 A.l. Structuration et gestion interne des objets 193 (de fait-inst (prédicat) (sendq Lfaits-inst prédicat)) Retourne la valeur terminale d'une variable dont la valeur peut être une variable: (de Valeur (var) (let ((v (cassq var env))) (ii v si la valeur est une variable, (Valeur v) on l'évalue recursivement var))) sinon on rend le résultat? env = ((&x+. s) (ftx. i) (ftx. s) (êx. s) (i i))? (Valeur 4x) Ajout d'un fait On ajoute un fait dans la base de faits (base_de_f aits est une variable globale) soit par initialisation de la base de faits, soit par des déductions, des déclenchement de règles par le moteur d'inférence. Il faut donc prendre en compte des effectives d'un nouveau fait dans la base pour actualiser l'état des règles, etc. On s'interdit d'introduire des faits déjà connus. (de ajoute (fait. top?) ; le test d'existence est nécessaire lors d'une ; deduction par le système, (unless (member fait base_de_íaits) ; si ce fait non encore connu ; 1- affichage de la deduction ; suivant le mode et le moment de linsertion. (when mode ; on a le droit de parler (prin " Ajout de : " fait) ; si l'insertion a lieu au Toplevel aucune ; regle n'est déclenchée (if top? (terpri) (print " avec la " nom-regle))) ;2-on actualise le dictionnaire de prédicats (dico-newp (car fait)) ;3-on actualise la base de faits ; on l'insère dans la base de faits ;4-on actualise le champ Lfaits-inst de ce prédicat et ajoute cette nouvelle instance ; sous le champ Lfaits-ins (sendq Lfaits-inst

199 194 Annexe A. Code des Programmes (eval (car fait)) (cons fait (sendq Lfaits-inst (eval (car fait))))) ; 5-on actualise les champs Lreg-ante, ; Lreg-cons du prédicat ; et chaque regle ou le prédicat est prémisse (mapc (lambda ((regle. nb-instance)) (if (Pred-nega regle) ; une regle avec ; prémisse negative? (when (= 1 (sendq nbfconnu (eval (car fait)))) ;premier fait ajoute (lets ((reg (concat (substring regle 1))) ; prémisse negative (nb-pr-in (sendq nb-pred-inco (eval reg ))) (nb-pr (sendq nb-predicats (eval reg )))) (unless (sendq utilisée (eval reg)); sinon utilisée (sendq nb-pred-inco (eval reg) (incr nb-pr-in))))) ; prémisse positive (let ((nb-pr-in (sendq nb-pred-inco (eval regle ))) (nb-pr (sendq nb-predicats (eval regle )))) (ifn (sendq utilisée (eval regle)) ;*1 si elle n'a pas ete déclenchée et qu'on ; insère une nouvelle instance du prédicat (or (eq 0 nb-pr-in) ;soit plus de prémisse inconnue ;pas la peine de continuer (< nb-instance ; soit le besoin de (sendq nbfconnu ; ce fait de la regl (eval (car fait)))) ; est moins grand que ce qu'on a ; sinon ajout de ce nouveau (sendq nb-pred-inco ; fait decr (eval regle) ;le nb-pred-inco (decr nb-pr-in))) ; de cette regle

200 A.l. Structuration et gestion interne des objets 195 ;*2 la regle a deja ete déclenchée, on la rend ; donc candidate remettant son compteur a 0, ; on la marque comme declenchable (sendq nb-pred-inco (eval regle) 0) (sendq utilisée (eval regle) '()))))) ; ens de regles ou le prédicat est prémisse (sendq Lreg-ante (eval (car lait)))) ; pour envoyer un résultat T pour succès (newr base_de_laits iait))) Suppression d'un fait La suppression d'un fait de la base de faits caractérise la non monotonie du système. ; pour supprimer des faits établis(non-monotonie) (de supprime-fait (fait) ; supprime un fait ou un filtre ; on ne supprime pas un atom, un fait est une liste (if (atom fait) (error 'suppression "non autorisée" fait) (enlevé (filtrep fait) t))) Prise en compte effective de la suppression. (de enlevé (faits. top?) (mapc (lambda (fait) (when ;si le fait n'est pas connu, on (member fait base_de_faits) ; ne fait rien ; si le mode d'affichage le permet, (when mode ; on imprime chaque retrait (prin " SUPPRESSION de: " fait) ; au toplevel aucune regle n'est appliquée (if top? (terpri) (print " avec la " nom-regle))) ; on retire le fait de la base de faits (setq base_de_faits (retire fait base_de_faits)) ; on retire le fait des instances connues du prédicat (sendq Lfaits-inst (eval (car fait)) (retire fait (sendq Lfaits-inst (eval (car fait))))) ; s'il n'y a plus d'instance du prédicat

201 196 Annexe A. Code des Programmes (let ((nbf (sendq nbfconnu (eval (car fait))))) ;pour les regles ou le prédicat est prémisse (mapc (lambda ((regle. nb-instance)) (if (Pred-nega regle) (unless (= nbf 0) (lets ((reg (concat (substring regle l))) ; prémisse negative (nb-pr-in (sendq nb-pred-inco (eval reg))) (nb-pr (sendq nb-predicats (eval reg )))) (or (= 0 nb-pr-in) (sendq nb-pred-inco (eval reg) (deer nb-pr-in))) (when (sendq utilisée (eval reg)) (sendq utilisée (eval reg) '())))) (when ; prémisse positive (< nbf nb-instance) ; moins de fait que ce qu'il faut (let ((nb-pr (sendq nb-pred-inco (eval regle)))) (ifn ; si la regle n'a pas ete utilisée ou (sendq utilisée (eval regle)) ; rendue declenchable ; alors on incremente son compteur (sendq nb-pred-inco (eval regle) (incr nb-pr)) ; sinon on la rend non-utilisee (sendq utilisée (eval regle) '())))))); ;toutes les regles (sendq Lreg-ante (eval (car fait))))))) faits)) ;poux tous les faits A.2 Le filtrage Le filtrage est employé aussi bien pour les inferences déductives que pour la gestion interne des connaissances. Il permet de sélectionner l'ensemble des faits par un filtre. Le déclenchement des règles est réalisé en filtrant les prémisses des règles avec des éléments de la base de faits. Evaluer une expression exécutable (le CAR est une fonction exécutable) dans un environnement représentée par une A-liste telle que ((?x pi) (?y p2)). (de evalexp(exp env) (if (constantp exp) ;une constante

202 A.2. Le filtrage 197 exp (if ; on la rend comme rvesultat. env ;on construit une fermeture dans laquelle on évalue l'exp (apply '(lambda, (mapcar 'car env),<bexp) (mapcar 'cdr env)) env)));sinon on rend l'environnement vide Substituer une liste de variables (qui existent déjà dans l'env) dans une expression, les variables non figurées dans env ne sont pas remplacées (de Substr (exp env) (if env ; appel recursifs tant que tout ; l'environnement n'a pas ete visite (Substr (if (VARC (caar env)) ; variable segment, le résultat étant ; une liste, on fait appel a la fonction "MAPCAN" (Substs (cdar env) (caar env) exp) sinon on substitue avec "SUBST" (subst (cdar env) (caar env) exp)) (cdr env)) exp)); on a parcouru tout l'environnement, ; on rend la nouvelle exp. Pour substituer une variable segment dans une expression: (de Substs (valeur variable exp) (mapcan (lambda (element) (if (equal variable element) ; c'est une variable valeur ; la valeur est une liste ; sinon, on cree une liste (list element))) (pour le MAPCAN) exp)) Dans la fonction suivante: l'argument filtre contient des variables (?x,?-, Sex, ft-), supposons que le CAR de (filtre) soit un prédicat non variable, la fonction rend comme résultat la liste des faits filtrables avec ce filtre dans le champ Lfaits-inst de son prédicat dans l'env(ironnement). (de Ffiltres (filtre env) ; on memorise tous les faits connus ; du prédicat du filtre (let ((faits (sendq Lfaits-inst (eval (car filtre))))) ; ensuite on les filtre (Filtre-données faits filtre env)))? env

203 198 Annexe A. Code des Programmes = ((?pl. pl) (?p2. p2) (?p3. p2) (?p4.?p3))? (setq Deplacer (make-predicat 'Deplacer '((Deplacer pl p2) (Deplacer p2 p3)) '(rl r2) '(r2))) = #(#:Tclass:Prédicat. #[Deplaccer ((Deplacer pl p2) (Deplacer p2 p3)) (rl r2) (r2))? (Ffiltres '(Deplacer?-?-) env) = ((Deplacer pl p2) (Deplacer p2 p3)) ; ; les deux faits sont filtrables? (Ffiltres '(Deplacer?pl?-) env) = ((Deplacer pl p2)) ; ; un seul, puisque?pl vaut pl dans env. Comparer un filtre avec une liste des données ldonnees: rendre l'ensemble des faits filtrés. (de Filtre-données (ldonnees filtre env) (and ldonnees ; s'il y des données, on continue le filtrage (if (Filtre (car ldonnees) filtre env) ;si le car est filtrable, ;on la memorise dans une liste (cons (car ldonnees) (Filtre-données (cdr ldonnees) filtre env)) ; sinon, on regarde le reste: cdr (Filtre-données (cdr ldonnees) filtre env))))? env = ((?pl. pl) (?p2. p2) (?p3. p2) (?p4.?p3))? (Filtre-données '((poser pl p2) (poser pi p3)) '(poser?pl?p2) env) = ((poser pl p2))? (Filtre-données '((poser pl p2) (poser pl p3)) '(poser?pl?-) env) = ((poser pl p2) (poser pl p3))? (Filtre-données '((poser pl p2) (poser pl p3)) '(poser ft-) env) = ((poser pl p2) (poser pl p3)) Le filtrage Filtre compare un filtre qui contient des variables avec une donnée, il rend l'environnement éventuellement augmenté si le filtrage est réussi.

204 A.2. Le filtrage 199 (de Filtre (donnée filtre env) (and env; non nul (cond ((VAR filtre); c'est une variable simple (Filtres donnée filtre env)) ((atom filtre) ; un atom: les 2 doivent être identiques (and (eq filtre donnée) env)) (t ; sinon le filtre est une liste (Filtre-liste donnée filtre env)))))? env = ((?pl. pi) (?p2. p2) (?p3. p2) (?p4.?p3))? (Filtre '(deplacer pi p2) ' (Se-) env) = ((?pl. pi) (?p2. p2) (?p3. p2) (?p4.?p3))? (Filtre '(deplacer pi p2) '(ftx) env) = ((Stx deplacer pi p2) (?pl. pi) (?p2. p2) (?p3. p2) (?p4.?p3))? (cadr (Filtre '(deplacer pi p2) ' (ÊX) env)) = (?pl. pi) Pour comparer un filtre qui est une liste avec une donnée. (de Filtre-liste (donnée filtre env) (and env (cond ((null filtre);si le filtre est vide, teste de fin ; la donnée doit l'être aussi (and (null donnée) env)) ; rend env comme résultat ; son CAR est une variable segment complexe ((VARC (car filtre)) (Filtrée donnée filtre env)) ; le CAR du filtre annonce une condition a verifier ((eq (car filtre) */) ; on les évalue (and (evalexp (list (cadr filtre)) env) ;on continu le filtrage ;si la condition est vérifiée (Filtre-liste donnée (eddr filtre) env))) (t ; on a une liste non vide (and (consp donnée) (Filtre-liste ; on filtre les CDR (cdr donnée)

205 200 Annexe A. Code des Programmes (cdr filtra) ; dans env éventuellement enriche avec le CAR (Filtre (car donnée) (car filtre) env))))))) La fonction Filtres compare une variable simple de type (?x ou?-) avec une donnée dans l'environnement: env. (de Filtres (donnée variable env) (if (eq variable '?-) env ; il n'y a pas de liaison, on rend env inchange (let ((valeur (cassq variable env))) (if valeur ; si la variable est deja presente dans env on teste l'égalite sa valeur avec la donnée, si ; identiques, on rend env inchange, sinon échec (and (equal donnée valeur) env) ; si elle non encore presente dans env ; on lui affecte la donnée, env est enrichit (newl env (cons variable donnée)))))) La fonction Filtrée compare unfiltredont le premier est une variable segment de type (ÊX OU &-) avec une donnée dans l'environnement: env. (de Filtrée (donnée filtre env) (let ((valeur (assq (car filtre) env))) (cond (valeur ; il y a une valeur, on substitue la variable par ; sa valeur dans le filtre, on recommence le filtrage ; avec ce nouveau filtre et la même donnée (Filtre-liste donne«(append (cdr valeur) (cdr filtre)) env)) ((null (cdr filtre)) ; il n'y a plus rien dans le filtre après la variable. ; si cette variable est anonyme(4-), on rend env, ; sinon on cree une nouvelle liaison variable-valeur ; avec toute la liste "donnée" en valeur, rend env (and (listp donnée) (Res (cons (car filtre) donnée)))) (t ; sinon on initialise la variable avec un segment de list vide, (let ((liaison (list (car filtre))) (donnée donnée)) (Filtrecl liaison donnée)))))); essaye la liaison

206 A.2. Le filtrage 201 Filtrecl essaye de faire adapter les liaisons pour la variable & ou &x avec une dominée. (de Filtrecl(liaison donnée) (and donnée ;si la donnée devient nulle, on reste ; sur échec, et on rend nil. ;si le filtrage réussit, la liaison de notre ; variable convient, on sort du OR avec env (or (Filtre-liste donnée (cdr filtre) (Res liaison)) ; il y a un échec avec la liaison, on essaye ;donc avec un segment de liste supérieur (Filtrecl (append liaison ; a cause de NEXTL (list (nextl donnée))) ;on est dans CDR de donnée du pas precedent donnée))))? envi = ((?p2. p2) (?p3. p2) (?p4.?p3))? (Filtre '(deplacer pi p2 p3) '(?d âx?w) envi) = ((?w. p3) (&x pi p2) (?d. deplacer) (?p2. p2) (?p3. p2) (?p4.?p3))? (Filtre '(deplacer pi p2 p3) '(?dft-?w) envi) = ((?w. p3)(?d. deplacer)(?p2. p2)(?p3. p2)(?p4 ; left-a filtre (pi p2)? (Filtre '(deplacer pi p2 p3) '(?dft-?w?e) envi) = ((?e. p3) (?H. p2) (?d. deplacer) (?p2. p2) (?p3. p2) (?p4.?p3)) ; left-a filtre (pi)? (Filtre '(deplacer pl p2 p3) '(?d ftx?w?e) envi) = ((?e. p3) (?H. p2) (ftx pl) (?d. deplacer) (?p2 (?p3. p2) (?p4. p3)) ; le ftx a capture (pl) Res rend env inchangé si on a affaire à une variable anonyme, ou enrichit env si la variable est nommée. (de Res (liste) (if (= (chrnth 1 (car liste)) #/-) env (cons liste env))).?p3)) p2) La fonction f iltrep donne la liste des faits a enlever lors d'une action supprime.

207 202 Annexe A. Code des Programmes On ne fera appel à la fonctions Ff iltres que si l'on a un filtre qui contient une variable anonyme (?- ou ft-); dans ce cas on aura plusieurs éléments à supprimer. (de filtrep (donnée) (if (or (occur ' ft-[ donnée) (occur '?-l donnée)) (Ffiltres donnée env) ;si on a une variable anonyme (list donnée))) ; sinon on rend la donnée elle-même Livre la liste de tous les faits filtrables connus lors d'une question. (de interroge (donnée) (let ((faits (Ffiltres donnée env))) ; les faits filtrables (ifn faits (print " Il n'y a pas de fait") (mapc 'print faits) ; il y en a, les afficher (print "Et voila, c'est tout")))) A.3 L'unification Le filtrage compare un filtre pouvant contenir des variables et une donnée sans variable. L'unification, quant à elle autorise la comparaison de deux données pouvant contenir des variables. Le filtrage est donc un cas particulier de l'unification: on parle aussi de semi-unification. Pour notre unification, les variables autorisées ne sont que d'un seul type: VAR qui sont des variables simples nommées (ex:?x,? ob jet). La fonction unifie rend env créé si l'unification a réussi, nil dans le cas contraire. (de unifie (el e2 env) (and env ; si l'env est nul, on arrête tout (cond ; les terms sont égaux, rend l'env ((eq el e2) env) ; pour les termes liste identiques, ; seront verifies ici ((VAR el) ; on ne peut substituer une variable par ; une expression la contenant (if (occur el e2) () ; échec sinon, on enrichit l'environnement (if ;si el n'est pas dans env (member (cons el e2) env) env (newl env (cons el e2))))) ((VAR e2) ; comme précédemment (if (occur e2 el) () ; échec (if ;si el n'est pas dans env

208 A.3. L'unification 203 (member (cons e2 el) env) env (newl env (cons e2 el))))) ((or (atom el ) (atom e2)) ()); 2 atoms différents, echec ; diviser pour mieux régner: ; on unifie dans les CAR et dans les CDR (t (unif-suite (cdr el) (cdr e2) avec env enrichi dans les CAR (unifie (car el) (car e2) env))))))? envi = ((?p2. p2) (?p3. p2) (?p4.?p3))? (unifiel '?pl '?pl envi) = ((?p2. p2) (?p3. p2) (?p4.?p3))? (unifiel»?pl 'pi envi) = ((?pl. pi) (?p2. p2) (?p3. p2) (?p4.?p3)) Les differences entre unifie et unifiel? env = ((?pl. pi) (?p2. p2) (?p3. p2) (?p4.?p3))? (unifiel *?pl 'pi env) = ((?pl. pi) (?pl. pi) (?p2. p2) (?p3. p2) (?p4.?p3) (&x pi p2))? (unifiel '(?pl?pq p2 pi) '(pi pi?pe pi) env) = ((?pe. p2) (?pq. pi) (?pl. pi) (?pl. pi) (?p2. p2) (?p3. p2) (?p4.?p3) (4x pi p2)) Dans le unifiel, il n'y a pas de détection d'existence de valeur d'une variable déjà présente dans l'environnement, donc il y a la repétition de (?pl. pi) dans env. Alors que la fonction unifie n'aura pas ce défaut.? (unifie '(?pl?pq p2 pi) '(pi pi?pe pi) env) = ((?pe. p2) (?pq. pi) (?pl. pi) (?p2. p2) (?p3. p2) (?p4.?p3) (&x pi p2)) pas de repetition de (?pl. pi)? (unifie '(?pl?pq p2 pi) '(pi pi?pe &-) env) ; át- doit unifier une liste = 0? (unifie '(?pl?pq p2 pi) '(pi pi?pe &x) env) ; de même &x = 0? (unifie '(?pl?pq p2 pi) '(pi pi?pe?var.simple) env) = ((?var.simple. pi) (?pe. p2) (?pq. pi) (?pl. pi) (?p2. p2) (?p3. p2) (p4.?p3) (Êx pi p2))

209 204 Annexe A. Code des Programmes unifiel ne fait pas de vérification de duplication dans env: (de uniiiekel e2 env) (and env ; si l'env est nul, on arrête tout (cond ; les terms sont égaux, rend l'env ((eq el e2) env) ; pour les termes liste identiques, ; seront verifies ici ((VAR el) ; on ne peut substituer une variable par ; une expression la contenant (or (occur el e2) ; sinon, on enrichit l'environnement (newl env (cons el e2)))) ((VAR e2) ; comme précédemment (or (occur e2 el) (newl env (cons e2 el)))) ((or (atom el ) (atom e2)) O); 2 atoms différents, échec ; diviser pour mieux régner: ; on unifie dans les CAR et dans les CDR (t (unif-suite (cdr el) (cdr e2) avec env enrichi dans les CAR (unifiel (car el) (car e2) env)))))) On substitue une liste des variables déjà présentes dans env par leur valeur dans el et e2. (de unif-suite (el e2 env) (unifie (Substr el env) substituer une liste de variables dans une expression (Substr e2 env) env)) La fonction occur teste l'occurrence d'un élément dans une expression liste. (de occur (element liste) (if (atom liste) ; on teste 1'égalité avec un atome (eq element liste) ; si l'élément apparait dans le CAR, ; on ne teste pas dans le CDR (or (occur element (car liste)) (occur element (cdr liste)))))

210 A.4. Code du moteur d'inférence 205 A.4 Code du moteur d'inférence Substitution des variables de la conclusion d'une règle par leur valeur trouvée dans l'environnement lors du déclenchement. (de genere (exp) (mapcan (lambda (terme) (if (VARCM terme) ;; variable segment non anonyme, ; sa valeur sera forcement une liste (copy (Valeur terme)) ; dans les autres cas, on cree une liste(mapcan) (list (cond ; c'est une variable;copy important!!! ((VAR terme) (copy (Valeur terme))) ; c'est une constante ((atom terme) terme) ; une liste, et c'est une fonction Lisp (t (if (typefn (car terme)) ; on évalue (evalexp (list terme) env) ; liste de liste, continuer (genere terme))))))) exp)) Une variante de la fonction précédente, substitue les variables sans évaluer les fonctions. (de genere-neval (exp) (mapcan (lambda (terme) (if (VARCM terme) ;; variable segment non anonyme, ; sa valeur sera forcement une liste (copy (Valeur terme)) ; dans les autres cas, on cree une liste(mapcan) (list (cond ; c'est une variable COPY important!!! ((VAR terme) (copy (Valeur terme))) ; c'est une constante ((atom terme) terme) ; une liste, et c'est une fonction Lisp (t (genere-neval terme)))))) liste de liste, continuer exp))? env = ((?pl. pi) (?p2. p2) (?p3. p2) (4x pi p2))? (genere '(?pl?p2?p3))

211 206 Annexe A. Code des Programmes = (pl p2 p2)? (genere '(proche?pl?p2)) = (proche pi p2)? (genere '((proche?pl?p2) (deplacer?pl p2))) - ((proche pl p2) (deplacer pl p2)? (genere '(pd p)) - (pd p)? (genere '((proche?pl?p2) (deplacer?pl ftx))) = ((proche pl p2) (deplacer pl pl p2)) ; pour enrichir l'env d'une liaison au cours du chaînage avant (de Enrichirav (liste) (newl env (cons (nextl liste); on place la nouvelle variable ; on place sa valeur (exp évalue) (evalexp liste env))))? env = ((?pl. pi) (?p2. p2) (?p3. p2) (?p4.?p3) (&x pl p2))? (Enrichirav '(?pp?pl))) = ((?pp. pl) (?pl. pl) (?p2. p2) (?p3. p2) (?p4.?p3) (&x pl p2))? (Enrichirav '(?pp 'pl)) = ((?pp. pl) (?pp. pl) (?pl. pl) (?p2. p2) (?p3. p2) (?p4.?p3) «tx pl p2))? env = ((?pp. pl) (?pp. pl) (?pl. pl) (?p2. p2) (?p3. p2) (?p4.?p3) (fex pl p2))? env = ((i i))? (Enrichirav '(?x 'x)) = ((?x. x) (i i))? (Enrichirav '(?y 'y)) = ((?y. y) (?x. x) (i i))? (Enrichirav ' (Axy (cons?x?y))) = ((ftxy x. y) (?y. y) (?x. x) (i i))? (Enrichirav '(ftxly (list?x?y))) = ((4xly x y) (ftxy x. y) (?y. y) (?x. x) (i i))? (Enrichirav '«txay (append?x?y))) =((&xay. y) (ftxly x y) (4xy x. y) (?y. y) (?x. x) (i i)) Insérer une liste d'éléments elements dans une liste: (de ajoutdr (elements liste) (unless (member (car elements) liste)

212 A.4. Code du moteur d'inférence 207 (nconc liste (list (car elements))) («hen (cdr elements) (ajoutdr (cdr elements) liste)))) Insérer un élément atomique: (de ajoutdr2 (element liste) (unless (member element liste) (nconc liste (list element)))) Retirer un élément: retire une seule occurrence d'un élément dans une liste: (de retire (element liste) (ifn (member element liste) ; tester l'existence liste (if (equal (car liste) element) (cdr liste) (rplacd liste (retire element (cdr liste)))))) Moteur d'inférence La classe de moteur d'inférence: (deftclass Moteur-d-inferences base-de-regles base-de-faits bdff regles-valides) (defmake {Moteur-d-inferences} MI (base-de-regles base-de-faits bdff regles-valides)) (defvar mil (MI () () () ())) Initialise le moteur (de {Moteur-d-inferences}:initialise-mi (mi) (setq mi (MI O O O ())) (reinitialise) (sendq regles-valides mi '()) (sendq base-de-faits mi base_de_faits)

213 208 Annexe A. Code des Programmes (sendq base-de-regles mi base_de_regles) (sendq Valider-r mi) mi) Afficher la règle: (de {Moteur-d-inferences}:afficher (mi) (mapc (lambda (regle) (sendq afficher (eval regle))) (sendq base-de-regles mi))) Trouver l'ensemble des règles valides: (de {Moteur-d-inferences}:Valider-r (mi) (sendq regles-valides mi ()) (mapc (lambda(regle) (when (and (sendq valide? (eval regle)) (not (member regle (sendq regles-valides mi)))) (sendq regles-valides mi ; (nconc (sendq regles-valides mi) (list regle))))) base_de_regles) (sendq regles-valides mi)) Le chaînage avant réalise des déductions, il envisage les règles candidates dans l'ordre ou elles ont été fournies, de même pour les prémisses. Une règle est déclenchée lorsque toutes ses prémisses ont été instanciées par des faits. Les actions de la règle sont alors envisagées dans l'environnement créé lors des instanciations des prémisses. (de {Moteur-d-inferences}:en-avant (mi) (sendq initialise-mi mi) (while ; on sature sur la base de regles (new-cyc mi)) (let ((mode»()) ) ; enlever les faits initiaux (enlevé implicites t) ; afficher les faits dveduits (print " = :" base_de_faits) (terpri))) Dans un nouveau cycle: (de new-cyc (mi) (let ((regles-v (sendq Valider-r mi) )) (and regles-v ; il n'y a plus de regles candidates, ; on a sature la base de connaissance. ; une regle s'est appliquée avec succès (if (sendq essai-regle (eval (nextl regles-v)) 0)

214 A.4. Code du moteur d'inférence 209 Dans le même cycle: ; on recommence avec la nouvelle regles-v (new-cyc mi) (same-cyc regles-v))))) (de same-cyc (bdr-v) balaye la bdr (ifn bdr-v ; Plus de regle valable. FIN de Cycle (if (sendq essai-regle (eval (nextl bdr-v)) 0) (new-cyc mi) (same-cyc bdr-v)))) ; sinon on passe a la suivante Détection : déclencher une régie, l'ensemble de régies candidates est virtuellement construit par l'état de la base de faits. (de {Regle}:essai-regle (regle nb-succes) (when (sendq valide? regle) (let ((nom-regle (sendq nom regle))) (sendq afficher regle ) ; on essai de la saturer avec la base de faits (infere (sendq antecedents regle) env) (sendq utilisée regle 't) marque comme utilisée (elle n'est plus potentiellement utilisable) (sendq nb-pred-inco regle 1) (ifn (> nb-succes 0) (print "-on n'a pas eu de succès avec la regle- : " nom-regle) (print nb-succes " succès avec la regle- : " nom-regle " «FIN» de la saturer!")) (and mode-infere (print "-la base_de_faits actuel est : " ) (print "****** ' base_de_faits)) (terpri) (> nb-succes 0)))) Déclencher une règle d'exécution de fin: (de {Regle}:exeaction (regle) («hen (sendq valide? regle) (infere (sendq antecedents regle) env))) Inference:

215 210 Annexe A. Code des Programmes (de infere (antes env) (and env ; si l'environnement est nul, il y a échec (ifn ; plus de premisses, antes ;on envisage la partie action de la regle (succès (sendq conclusions regle) env) sinon on commence a inférer (selectq (caar antes) ; accès au prédicat ou operateur de la premiere ; prémisse une contrainte lisp evalue-la ((avec execute) (and (evalexp (cdar antes) env) ; on continue ; si l'évaluation est différente de NIL (infere (cdr antes) env))) ; une liaison, enrichir l'env (liaison (Enrichirav (cadar antes) ) (infere (cdr antes) env)) ; operateur de non demontrabilite (monde clos) (échec (or (prouver ; pas encore défini (Substr (cadar antes) env) env) ; si la resolutiona échoue on continue ; sinon Retour-arriere (infere (cdr antes) env))) ; la negation (monde clos) (non si aucune des instances du prédicat considere ; ne filtre la condition (or (any (lambda (fait) (Filtre fait (cadar antes) env)) (sendq ;ens des instance du prédicat Lfaits-inst (eval (Valeur (caadar antes))))) ;si le fait ne parait pas dans la bdf, on continue (infere (cdr antes) env))) ; c'est une prémisse simple (t ( nape (lambda (fait) ; on sature sur la regle (infere (cdx antes) ; on instancia une prémisse (Filtre fait (car antes) env)))

216 A.4. Code du moteur d'inférence 211 (sendq Lfaits-inst (eval (Valeur (caar antes)))))))))) Execution de la partie action d'une règle (de succès (liste-exp env) (tag ajoute ; on s'échappe si une conclusion est deja connue (mapc (lambda (conc) ; si l'action est une "execute", on ne substitue pas les ; variables par leur valeurs, la fonction d'évaluation ; "evalexp" réalisant cette substitution (let ((conclusion (il (eq (cadr conc) 'execute) (cdr conc) ; on ne fait rien ; on substitue (genere (cadr conc))))) (selectq (car conc) (execution ; action (evalexp (cdr conc) env)) evaluation LISP (execute ; c'est une execution (evalexp conclusion env)) ; on l'évalue ; insertion d'un fait dans la base de faits ((ajoute insère) ;un ajout de conclusion (or (ajoute conclusion) si la conclusion est deja connue (and (print " ajout non réussi! ") (exit ajoute))) (incr nb-succes)) ajout réussi H (supprime ; suppression de faits ; la fonction "filtrep" rend l'ens de tous les ; faits filtrables par la conclusion (enlevé (filtrep conclusion))) (conclut ) une simple conclusion ; rien a faire,(pour chainage arriere) ; l'action envisagée n'est pas connue (t (error 'succès "sélecteur inconnu" (car conc)))))) liste-exp)))

217 Annexe B Art de PostScript I! me semble que je ne peux pas, dans cette communication, passer sous silence le langage PostScript (PS en abbreviation ci-dessous), sans lequel je n'aurais pas pu illustrer les travaux de cette thèse. On a cherché depuis le début un logiciel graphique adéquate en vain, mais ce n'est pas la seule pour laquelle ce langage nous a attiré, ni le succès que PostScript a déjà eu en milieu industriel. La raison principale est peut-être sa puissance et sa simplicité. B.l Introduction PostScript est un langage de description de page, fruit de plusieurs années de recherche. Le premier produit commercial de Postscript est Apple LaserWriter en Il est devenu un standard dans le domaine de l'impression Laser. Préféré par les constructeurs (IBM, DEC, Apple... ), utilisé par les développeurs (Microsoft, Digital Research,...), il fait une entrée en force dans le domaine de la publication assitée par ordinateur (PAO) et de la micro-édition avec, notamment, la LaserWriter d'apple. En général, Postscript n'est pas à programmer directement. Il est plutôt un langage de contrôle de machine qu'un langage de programmation de haut niveau. Le programme de PS est souvent généré par l'intermédiaire d'autres programmes d'applications tels que T^X, ' es logiciels de traitement de texte, de dessin. Le code PS est ensuite prêt à être envoyé à une imprimante pilotée par PS. Les primitives de PS sont comparables à celles des autres langages graphiques comme CORE, GKS, PHIGS, ses utilitaires de fontes standards le rendent encore plus utile. En programmant directement en PS et en profitant de sa grande souplesse, on peut obtenir des effets étonnants qu'on ne pourrait pas avoir avec d'autres langages graphiques. Un texte et un dessin peuvent être placés dans n'importe quel sens, position, et avec n'importe quelle taille sur la page; on peut faire presque ce qu'on veut. Mais on ne peut pas être paresseux, car il n'est pas aussi simple et pratique que les autres logiciels de traitement de texte ou de dessin, dans lesquels on n'a qu'à cliquer sur la souris. 212

218 B.2. PostScript et la cartographie 213 B.2 PostScript et la cartographie La partie graphique de ce langage offre de grandes possibilités à la cartographie, bien qu'à l'origine ce langage n'a pas été conçu pour cette discipline. On avait cherché en vain des logiciels de dessin pour la représentation des voies routières, c'est finalement PostScript qu'on a retenu tant pour illustrer les opérations de la généralisation cartographique que pour rédiger cette thèse. La plupart des figures dans cette thèse, notamment en ce qui concerne la cartographie, sont produites par des programmes en PS, et les cartes réelles sont réalisées par des codes PostScript générés par le module PS dans le système de généralisation: elles sont aisément insérées dans les fichiers UT^X pour cette thèse. Les concepts de mise en oeuvre sont d'une grande simplicité. PS est indépendant des caractéristiques de l'imprimante et voit son avenir assuré: des imprimantes Post Script couleurs sont déjà commercialisées, les écrans PostScript sont à l'études et promettent d'être de puissants outils graphiques. Il est même question qu'un système de fenêtrage basé sur PS (XNeWs par exemple) remplace ceux qui sont basés sur bitmap en raison de la grande puissance de PS qui est, notamment indépendant de la résolution de la machine. Même le coté opaque de PS, généralement considéré comme son grand défaut, nous facilite la tâche pour construire notre réseau routier, et en particulier pour tracer les signes conventionnels de différentes routes de catégories diverses. B.2.1 Modèles d'image Les modèles comprennent:» SPACE: le système de coordonnées (x, y), l'unité de mesure est le point (72 points = 1 inch). Il existe 3 opérations pour changer ce système: 1. translation de l'origine translate 2. rotation des axes: 30 rotate 3. changement d'échelle: 2 1 scale PAGE: vide au debut, il sera remplie par les différents opérateurs de peinture qui marquent effectivement sur la page, iill pour remplir un path avec une couleur donnée, stroke pour tracer le contour d'un path. PATH: déclaré par l'opérateur nenpath, il est composé d'un groupe des points reliés ou non, lignes, polygones, ou de forme quelconque. Le PATH pourra être: 1. stroke: peindre sur la page courante le contour du path courant. 2. fill: remplir l'intérieur d'un path fermé avec une couleur. 3. clip: ce path sera le contour de limite (clipper) pour le path suivant. CLIPPING PATH: une frontière. Seuls les éléments de l'intérieur de cette frontière sont effectivement tracés, le reste est ignoré. Par défaut, c'est la limite du papier de l'imprimante. On peut le changer en une forme qu'on veut en en définissant un nouveau. Le clipping path sera l'intersection de toutes les définitions de clipping paths actifs, donc il est de plus en plus petit.

219 214 Annexe B. Art de PostScript B.2.2 Style de programmation Un tiers du langage est consacré aux graphiques, le reste constitue un langage de programmation comme les autres langages informatiques. C'est un langage proche du FORTH, assembleur, possédant un dictionnaire et une pile: notation postfix: les opérateurs se trouvent après les opérandes. L'expression sera exprimée comme: 2 3 add pile: last in first out: le résultat de 12 3 add sera 1 5 dictionnaire: pour stocker des variables et leur valeurs, des procédures et leurs définitions. variable: la variable x\ sera précédée par / et définie par une affectation d'une valeur avec l'opérateur def: /xi 2 def Procedure: définie avec def par un groupe d'opérations entre { } qui ne sont pas tout de suite exécutées. La procédure de changement de milimètre en point sera: processus minimal /mm {2.835 mul} def. Un processus minimal d'un programme en PS:»- initialiser un path placer le point courant. déplacer un point. tracer un élément. terminer, et c'est tout. B.3 Exemples de constructions des graphiques Exemplel: tracer un triangle Tracer un triangle de 30mm (85 points). Après avoir initialise un path pour ce triangle, on commence par tracer sa base horizontale, ensuite on fait tourner les axes du système de coordonnées de 120 degrés dans le sens direct; on trace un côté; et enfin on ferme ce path.

220 B.3. Exemples de constructions des graphiques 215 newpath 0 0 moveto 85 0 lineto 120 rotate 85 0 rlineto closepath 4 setlinewidth stroke showpage y, initialiser X point initial y. iieme ligne horizontale % tourner les axes (120 degree) Y, 2ieme ligne '/, fermer le path y, largeur de ligne '/.tracer le path '/(imprimer la page Exemple2: tracer plusieurs carrés de couleurs Cet exemple montre comment définir une procédure en PS et remplir un path avec l'opérateur fill. '/.- define box procedure- /box {72 0 rlineto 0 72 rlineto rlineto closepath} def '/. Begin programme translate newpath 0 0 moveto box 0 setgray fill newpath moveto box.4 setgray fill newpath moveto box.8 setgray fill showpage '/.carre noir '/.carre gris '/.carre clair Etat graphique courant L'état graphique courant est composé de: path courant.

221 216 Annexe B. Art de PostScript point courant. K gray courant.»- line width courant. >- font courant user système courant. Certains opérateurs de PS tels que fill et stroke effacent le path courant. D'autres opérateurs changent l'état graphique en recevant une nouvelle valeur. On a parfois besoin de conserver un état à un moment ou un path pour s'en servir ou pour y revenir après. Par exemple, après avoir construit une route, on veut la tracer sur une première position, on veut ensuite la translater, ou faire une rotation pour tracer une autre position. On doit tout d'abord conserver le path de cette route, ensuite, on peut effectuer des opérations telles que la rotation, la translation, etc. Cela est possible grâce aux opérateurs gsave pour stocker l'état graphique et grestore pour restaurer cet état graphique conservé. '/.- '/.construction d'un path '/.- gsave % stocker l'état grahique et le path courant, stroke '/. tracer l'état grahique et eifacer le path courant, grestore '/, restorer l'état grahique et le path courant, fill '/, remplir l'intérieur du même path On finit par donner un exemple pour tracer des routes avec des couleurs (la figure B.l): < \ W u \ t^.\ S 1 < Is L ^N të Ä r^^h f-.-npsssa TT"~" vas*:** k ^v~phr { i i EU JH Jll 1 ^ ffilw.11, t^" I ; i i i i i ' r i 1 a m J& û m É ém y V SnJSfiSS i 1 i 5j m Éh Á m M 70 S IM 1«15S » 1» MO » J40 Figure B.l: Tracer des routes avec PostScript M

222 B.3. Exemples de constructions des graphiques 217 '/, les def /saved save def /HonDict 200 diet def '/, define a working dictionary MonDict begin '/ start using it. /n-str 10 string deí /prt-n {nstr cvs snow } def /fontxy {/Times-Roman findfont S scalefont setfont } def /carreau { newpath /haut exch def /long exch def fontxy.04 setlinewidth 0 10 long { /xy exch def xy 0 moveto 0 haut rlineto xy 5 sub -7 moveto xy prt-n} for 0 10 haut { /xy exch def 0 xy moveto long 0 rlineto -11 xy 2 sub moveto xy prt-n long xy moveto 2-2 rmoveto xy prt-n} for stroke } def /put-xy {aload pop} def /tracer-route % array des pts: ary-r í /ary-r exch def ary-r 0 get put-xy moveto ary-r aload length 1 sub array astore exch pop {put-xy lineto} forall stroke } def 7. les (x, y) /pl [10 50] def /p2 [80 50] def /p3 [20 130] def /p4 [80 10 ] def /p5 [220 50] def /p6 [ ] def /p7 [260 10] def /p8 [300 50] def '/. programme 1 setlinejoín carreau '/, tracer des carreaux 30 setlinewidth [pl p8] tracer-route 22 setlinewidth [p3 p2 p4] tracer-route 18 setlinewidth [p6 p5 p7] tracer-route

223 218 Annexe B. Art de PostScript.8 setgray 26 setlinewidth [pi p8] tracer-route.6 setgray 18 setlinewidth [p3 p2 p4] tracer-route.4 setgray 16 setlinewidth [p6 p5 p7] tracer-route 1 setgray 2 setlinewidth [pi p8] tracer-route [p3 p2 p4] tracer-route [p6 p5 p7] tracer-route 0 setgray [ ] 0 setdash.5 setlinewidth [pi p8] tracer-route [p3 p2 p4] tracer-route [p6 p5 p7] tracer-route showpage end clear saved restore

224 Annexe C Fichiers des règles (print " * Charger le fichier de Base de Regles: B2nesBdr.MIl : * ") regle avec variables détecter les relations symétriques entre les Sommets completer toutes les relations deja connues (setq Rgl (regle 'Rgl ; le nom de la regle '2 ; le nb-predicat '0 ; le nb-predicats inconnus '((symétrique?r) ;les premisses (?R?objl?obj2)) '((ajoute (?R?obj2?objl))) ; la conclussion '())) ; non-utilisee ; détecter les besoins de déplacement des Sommet-carf (setq Rg2.1 (regle 'Rg2.1 '2 '0 '((V-c?sl?s2) (avec (and (D12<dmd?sl?s2) (S1>S2??sl?s2))) ; SI prioritaire (non (Ecarter-g?s2 à-?-)) (non (Aconfondre?s2?-)) (liaison (?delta-dis (dmdvc-disl2?sl?s2))) la distance a écarter (avec (>?delta-dis delta-erreur)) ; > precision ) '((ajoute (Ecarter?s2?sl?delta-dis)) 219

225 220 Annexe C. Fichiers des règles ) i ; ; S1>S2 (setq Rg2.2 (regle 'Rg2.2 '2 '0 '((V-c?sl?s2) (avec (and (D12<dmd?sl?s2) (S1>S2??al?s2))) (liaison (?disl (dmdvc-disl2?sl?s2))) (Ecarter-g?s2 (ftx)?dis2) (avec (not (member?sl fti))) (liaison (*x+ (appendl *r?sl))) (liaison (?delta-dis (max?disl?dis2))) ) '((ajoute (Ecarter-g?s2fcx+?delta-dis)) (supprime (Ecarter-g?s2 (fcx)?dis2 )) ) '())) ; détecter les besoins de déplacement des Sommet-carf ; S1=S2, on l'enlevé (setq Rg2.3 (regle 'Rg2.3! 2 '0 '((V-c?sl?s2) (avec (and (D12<dmd?sl?s2) (S1-S2??sl?s2))) ; SI prioritaire (non (Ecarter-g?s2 *-?-)) (non (Aconfondre?sl?-)) (non (Aconfondre?s2?-)) (liaison (?delta-dis (*.5 (dmdvc-disl2?si?s2)))) (avec (>?delta-dis delta-erreur)) ; > precision ) '((ajoute (Ecarter?s2?si?delta-dis)) (ajoute (Ecarter?sl?s2?delta-dis)) ) *())) ;;; l'écartement pas a la limite DND ; ; ; entrer le premier Aconfondre ;;; S1>S2 (setq RgS.l

226 ;;; S1>S2 (regle 'Rg8.i '2 'O '((V-c?8l?s2) (avec (and (not (D12<dnd?sl?s2)) (S1>S2??sl?s2))) (non (Aconfondre?s2?-)) ) '((ajoute (Aconfondre?s2?8l)) (supprime (V-c?sl?s2)) (supprime (V-c?s2?al)) ) '())) (setq Rg8.2 (regle 'Rg8.2 '2 '0 '((V-c?sl?s2) (avec (and (not (D12<dmd?sl?s2)) (Si>S2??sl?s2))) (Aconfondre?s2?s3) (avec (or (and (nequal?s3?sl) (not (S1-S2??s2?s3)) (> (dmdvc-disl2?s2?sl) (dmdvc-disl2?s2?s3))) (S1>S2??sl?s3))) rapproche au +important ) '((ajoute (Aconfondre?s2?sl)) (supprime (Aconfondre?s2?s3)) (supprime (V-c?s2?sl)) (supprime (V-c?sl?s2>) ) '())) ; ; ; supprime les faits abusifs de V-c (setq Rg8.3 (regle 'Rg8.3 '2 '0 '((V-c?sl?s2) (avec (and (not (D12<dmd?sl?s2)) (S1>S2??sl?s2))) (Aconfondre?s2?s3) (avec (and (nequal?s3?sl) (or (and (not (S1-S2??s2?s3)) (< (dmdvc-disl2?s2?sl)

227 222 Annexe C. Fichiers des règles (dndvc-disl2?s2?s3))) (S1-S2??s3?s2) (S1>S2??s3?sl)))) ; ) '((supprime (V-c?s2?sl)) (supprime (V-c?sl?s2)) ) '())) ; ; ; S1=S2 (setq Rg8.4 (regle 'Rg8.4 '2 '0 '((V-c?al?s2) (avec (and (not (D12<dmd?sl?s2)) (S1-S2??sl?s2))) (non (Aconfondre?sl?-)) (non (Aconfondre?s2?sl)) ) '((ajoute (Aconfondre?sl?s2)) (supprime (V-c?s2?sl)) (supprime (V-c?sl?s2)> ) '())) (setq Rg8.5 (regle 'Rg8.5 '2 '0 '((V-c?sl?s2) (avec (and (not (D12<dmd?al?s2)) (S1-S2??sl?s2))) (Aconfondre?sl?s3) (non (Aconfondre?s2?sl)) (avec (and (nequal?s3?s2) (or (and (S1-S2??s3?sl) ;soit S=, et +pres (> (dmd»c-disl2?sl?s2) (dmdvc-disl2?sl?s3))) (not (S1-S2??s3?al))))) ;soit non S= ) '((ajoute (Aconfondre?sl?s2)) (supprime (Aconfondre?sl?s3)) (supprime (V-c?s2?sl)) (supprime (V-c?sl?s2)) ) '()))

228 (setq Rg8.6 (reglo 'Rg8.6 '2 '0 '((V-c?sl?s2) ;1'ecarte pas a la limite DMD (avec (and (not (D12<dad?sl?s2)) (S1=S2??8i?s2))) (Aconfondre?sl?s3) (avec (or (equal?s3?s2) (and (S1=S2??s3?sl) «(dmdvc-disl2?sl?s2) (dmdvc-disl2?sl?33))))) ) '((supprime (V-c?s2?sl)) (supprime (V-c?sl?s2)) ) >())) (setq Rg9.1 (regie 'Rg9.1 '2 '0 '((Aconfondre?sl?s2) (Aconfondre?s2?s3) ) '((ajoute (Aconfondre?al?s3)) (supprime (Aconfondre?sl?s2)) ) '())) ; 1ère groupement de deplacer un Sommet-Craf (setq Rg3.1 (regle 'Rg3.1 '2 '0 '((Ecarter?sl?s2?disl) les premisses (Ecarter?sl?s3?dis2) (non (Ecarter-g?sl *-?-)) (avec (nequal?s2?s3)) (liaison (tsl (list?s2?s3))) (liaison (?dis (max?disl?dis2))) ) '((ajoute (Ecarter-g?sl (tsl)?dis)) ; les conclusions (supprime (Ecarter?sl?s2?disl))

229 224 Annexe C. Fichiers des règles (supprime (Ecarter?sl?s3?dis2)) (supprime (Action (Ecarter?sl?-?-))) ) '())) ; non-utilisee ; grouper les restes (setq Rg3.2 (regle 'Rg3.2 '2 '0 '((Ecarter?sl?s2?disl) (Ecarter-g?sl (ftx)?dis2) (avec (not (member?s2 ftr))) (liaison (4x+ (appendl kx?s2))) (liaison (?dis (max?disl?dis2))) ) '((ajoute (Ecarter-g?sl (fcx+)?dis)) (supprime (Ecarter?sl?s2?disl)) (supprime (Ecarter-g?si (*x)?dis2)) (supprime (Action (Ecarter?sl?-?-))) (supprime (Action (Ecarter-g?sl 4-?-))) ) ; la conclussion '())); ;les premisses ; non-utilisee (setq Rg3.3 (regle 'Rg3.3 '2 '0 '((Ecarter?sl?s2 îdisl) ;les premisses (Ecarter-g?sl (ix)?dis2) (avec (member?s2 *x)) ) '((supprime (Ecarter?sl?s2?disl)) (supprime (Action (Ecarter?sl?-?-))) ) '())) (setq Rg4.1 (regle 'Rg4.1 '2 '0 '((Ecarter?sl?-?-) ;les premisses

230 (Aconfondre?sl?-) ) '((supprime (Ecarter?sl?-?-)) ; on confonde d'abord (supprime (Action (Ecarter?sl?-?-))) ) '()» (setq Rg4.2 (regle >Rg4.2 '2 '0 '((Ecarter-g?sl t-?-) les premisses (Aconfondre?sl?-) ) '((supprime (Ecarter-g?sl 4-?-)) ; on confonde d'abord (supprime (Action (Ecarter-g?sl k-?-))) ) '())) (setq Rg4.3 (regle >Rg4.3 '2 '0 '((Ecarter?sl?s2?disl) ;les premisses (Aconfondre?s2?s3) (avec (dmdvc-disl2?sl?s3)) ;?sl?s3 voisin ) '((supprime (Ecarter?sl?s2?disl)) (supprime (Action (Ecarter?sl?-?-))) (ajoute ) '())) (Ecarter?sl?s3?disl)) (setq Rg4.4 (regle 'Rg4.4 '2 '0 '((Ecarter?sl?s2?disl) ;les premisses (Aconfondre?s2?s3) (avec (not (dmdvc-disl2?sl?s3))) ;?sl?s3 voisin ) '((supprime (Ecarter?sl?s2?disl)) (supprime (Action (Ecarter?sl?-?-))) ) '()))

231 226 Annexe C. Fichiers des règles (setq Rg4.5 (regle 'Rg4.5 '2 '0 '((Ecarter-g?sl (&x)?disl) les premisses (Aconfondre?s2?s3) (avec (»ember?s2 fti)) ;?s2 dans 4x (liaison (*x-s2 (remore?s2 *x))> ) '((supprime (Ecarter-g?sl (*x)?disl)) (supprime (Action (Ecarter-g?sl 4-?-))) (ajoute ) '())) (Ecarter-g?si tx-s2?disl)) ; conclut des actions des déplacement en éloignant des groupes (setq Rgô.l (regle»rg6.1 '2 '0 '((Ecarter-g?si (&xl)?dis) (non (Action (Ecarter-g?sl (4x1)?dis))) ; est le mieux ) '((supprime (Action (Ecarter-g?sl t-?-))) ; on detrui le precedent (supprime (Action (Ecarter?sl?-?-))) détruit les individuelles (ajoute ) '())) (Action (Ecarter-g?sl (txl)?dis))) ; est le mieux ; conclut des actions des déplacement en éloignant un seul Sommet: (setq Rg6.4 (regle 'Rg6.4 '2 '0 '((Ecarter?sl?s2?dis) (non (Ecarter-g?sl (t-)?-)) (non (Action (Ecarter?sl?s2?dis)))

232 ) '((supprime (Action (Ecarter?sl?-?-))) (ajoute (Action (Ecarter?sl?s2?dis))) ) '())) (setq Rg7.1 (regle >Rg7.1 '1 '0 '((Action (Ecarter-g?sl (ftx)?dis)) ) '((execution (ecarterment?slftx?dis)) (supprime (V-c?sl?-)) ) '())) (setq Rg7.2 (regle 'Rg7.2 '2 '0 '((Action (Ecarter?sl?s2?dis))) '((execution (ecarterment?sl (list?s2)?dis )) (supprime (V-c?sl?s2)) (supprime (V-c?s2?sl)) ) '())) (setq Rg7.3 (regle 'Rg7.3 '2 '0 '((Aconfondre?sl?s2) ) '((execution (Confondre?sl?s2)) (supprime (V-c?-?s2)) (supprime (V-c?s2?-)) ;?s2 n'existe plus (supprime (V-c?s2 *-)) ;?»2 n'existe plus ) '())) (setq base_de_regles '( Rg9.1 Rg2.1 Rg2.2 Rg3.1 Rg3.2 Rg3.3 RgS.l Rg8.2 Rg8.3 Rg8.6 Rg8.4 Rg8.5

233 228 Annexe C. Fichiers des règles Rg4.1 Rg4.2 Rg4.3 Rg4.4 Rg4.5 Rg6.4 Rg6.1)) ;;; Rg7.1 Rg7.2 Rg7.3ne sont pas dans la liste de regles bdr ;;; Rg2.3(Sl=S2?)

234 Bibliographie [1] R. Cuenin Cartographie générale Tome 1: notions générales et principes d'elaborations. Tome 2: méthodes et techniques de production Coilection scientifique de l'ign. Eyrolles, Paris, [2] P. Lecordix Traduction de Généralisation cartographique. La Société Suisse de Cartographie, [3] F. Bouille Un modèle de données simultanément partageable, portable et réparti Thèse de Doctorat d'état, Université Pierre et Marie curie, Paris, [4] F. Bouille A Structured Expert System for Cartography Based on HBDS. Auto-Carto VI Proceedings Vol [5] B. G. Nickerson, H. Freemann Development of a rule-based system for automatic map generalization Proceedings 2nd International Symposium on Data Handings, pp , [6] W.A. Mackanes8 et al. Towards a cartographic expert system. Proceedings Auto-Carto London Vol. 1 pp , [7] J-P. Grelot Cours de Cartographie Assistée par Ordinateur. IGN, St.-Mandé, [8] M. Pernot Automatisation de la rédaction cartographique: Synthèse et Réflexions rapport ENSG-IGN, St.-Mandé, [9] R. Voyer Moteurs de Systèmes Experts Eyrolles, Paris, [10] J.M. Hullot CEYX-Version 15 II: Programmer en Ceyx Rapports Techniques de l'inria,

235 230 BIBLIOGRAPHY [11] J. Chailloux, et al. LEJLISP de l'inria version 15.2 Le Manuel de référence INRIA, Rocquencourt, [12] H. Farreny, M.Ghallab Eléments d'intelligence Artificielle Hermes, Paris. [13] C. Queinnec LISP Mode d'emploi Eyrolles, Paris, [14] C. Bally, et al. Les langages orientés objets CEPADUES-EDITION, Toulouse, [15] Masini G., et al. Les langages à objets InterEdition, Paris, [16] R. Carnap Introduction to Symbolic Logic and its Applications Dover Publications, Inc., New York, [17] G. Pascal Mémento de philosophie Guides Pratiques Bordas, Paris, [18] R. Lalement Logique, réduction, résolution Masson, Paris, [19] D.S. Touretzky The Mathematics of Inheritance Morgan Kaufmann Publishers, Inc., Los Altos, California, [20] W.A, Mackaness, P.F. Fisher, G.G. Wilkinson Towards a Cartographic Expert System AutoCarto 6 Vol.1, pp , London, [21] W.A. Mackaness, P.F. Fisher Automatic recognition and resolution of spatial conflicts in cartographic symbolization Auto Carto 8 pp [22] M. Monmonier Towards a Practicable Model of Cartographic Generalization AutoCarto 6 Vol.2, pp , London, [23] F. Christ A Program for the Fully Automated Displacement of Point and Line Features in Cartographic Generalization Nachrichten aus dem Kartern und Vermessungswesen, serie II n 35 pp

236 BIBLIOGRAPHY 231 [24] Adobe System Inc. PostScript Language: Tutorial and Cookbook [25] Adobe System Inc. PostScript Language: Reference Manual [26] D.M. Mark Conceptual basis for geographic line generalisation AUTO-CARTO Proceedings Ninth International Symposium on Computerassisted Cartography, pp 68-77, Baltimore, Maryland, [27] K.Stuart Shea et Robert B. McMaster Cartographic Generalization in a Digital Environment: When and How to Generalize AUTO-CARTO Proceedings Ninth International Symposium on Computerassisted Cartography, pages 56-67, Baltimore, Maryland, [28] K. Brassel, and R. Weibel Map generalization 8ième assemblée ICA, Report on Int. Research & Development in Advanced Cartographic techniques, pp [29] E. Charniak, and al. Artificial intelligence programming LEA, New Jersey, second edition [30] B.C. Moszkowski. Executing temporal logic programs Cambridge University Press, [31] B. Pasquier Cartographie numérique des domaines: structuration, modélisation, algorithmique Thèse d'état es Sciences de Paris VI, [32] K. Mehlhorn Data Structures and Algorithms 2: Graph Algorithms and NP-Completeness Springer-Verlag, [33] W. Lichtner Computer-Assisted Processes of Cartographic Generalization in Topographic maps Geo-processing 1, pp , [34] W. Lichtner Locational Characteristics and the Sequence of Computer Assisted Processes Nachrichten aus dem Kartern und Vermessungswesen, serie II n 35 pp 65-75, 1978 [35] R.B. MacMaster Automated Line Generalization Cartographica Vol. 24 No 2, pp , 1987.

237 232 BIBLIOGRAPHY [36] P. Titeux Automatisation de processus complexes nécessitant des données structurées, des raisonnements et des jugements qualitatifs Cognitiva 87 pp , Paris. [37] P.F. Fisher, W.A. Mackaness Are Cartographie Expert Systems Possible? AutoCarto 8, pp , [38] D.M. Mark Design Criteria for a Cartographie Expert System Journées: Les systèmes experts et leurs applications, pp , Avignon, [39] J-P. Tsang, D. Brissaud Méthodologie de structuration de connaissance: Illustration sur la conception d'un système de CFAO: propel Revue International de CFAO et Infographie Vol 2 No 3, [40] J-C. Muler, R.D. Johnson, L.R. Vanzella A knowledge-based Approach for Developing Cartographic Expertise Proceedings, 2nd International Symposium on Spatial Data Handings, pp , [41] G. Robinson, M. Jackson Expert Systems in Map Design Auto-Carto 7, pp , [42] B. Buttenfield Treatment of the Cartographic Line Cartographica Vol.22 No.2, pp 1-26, [43] R. Weibel, B.P. Buttenfield Map design for geographic information systems Proceedings GIS/LIS 88, vol.1, pp , [44] K.E. Brassel, R. Weibel A review and framework of automated map generalization International Journal of Geographical Information Systems, forthcoming. [45] X-C. Zhao La généralisation cartographique par l'intelligence artificielle. Cahier du CERMA, ENPC, pp juin, 1988 Paris. [46] X-C. Zhao Méthodologie de conception d'un système expert pour la généralisation cartographique. Journée d'ia au MELTM, pp , novembre, 1989, Arche de la Défense. [47] X.-C. Zhao Représentation des connaissances par approche orientée objet. Accepté au MICAD 91, Paris.

238 BIBLIOGRAPHY 233 [48] Roland. Schittenhelm The problem of Displacement in Cartographic Generalization. Attempting a Computer-Assited Solution Nachrichten aus dem Kartern und Vermessungswesen, serie II n 33 pp [49] V.b. Robinson, A.U. Franck Expert Systems Applied to Problems in Geographie Information Systems: Introduction, Review and Prospects Auto-Carto 8, pp , 1987 [50] Paul Churchland, Patricia Churchland Les machines peuvent-elles penser? Pour la Science n 149, pp 46-53, Mars [51] Barr, Feigenbaum, Kaufman Le manuel de l'intelligence artificielle Eyrolles, [52] Guillaume Dorbes Intégration d'une méthode d'analyse de l'information (NIAM) dans une méthode globale d'acquisition de la connaissance pour la création d'un système expert 8ièmes journées internationales. Les systèmes experts et leurs applications, pp , Avignon, [53] M. Gondran Introduction aux système experts Eyrolles [54] M. Cayrol Le langage LISP. CEPADUES, [55] W.F. Clocksin and CS. Mellish Programming in PROLOG Springer-Verlag, [56] J.L. Lauriere Intelligence Artificielle, résolution de problèmes par l'homme et par la machine Eyrolles, [57] P.H. Winston and B. Horn Lisp Addison-Wesley, [58] P.H. Winston Artificial Intelligence Second edition, Addison-Wesley, [59] Adele Goldberg and Daavid Robson SMALLTALK-80; the language Addison-Wesley Publishing Company, 1989.

239 234 BIBLIOGRAPHY [60] David Gries The Science of Programming Collection: Texts and Monographs in Computer Science Springer-Verlag, New York, [61] J.-M. Berge, L.-o. Donzelle, V. Olive, J. Rouillard ADA avec le sourire Presses Polytechniques Romandes, [62] Leon Sterling, Ehud Shapiro The Art of Prolog The MIT Press, [63] J.G.P. Barnes Programming in ADA Third edition, Addison-Wesley, [64] Reference manual for the ADA programming language Alsys, ANSI/MIL-STD 1815, Janvier [65] Bjarne Stroustrup The C++ programming language Addison-Wesley, [66] Tony L. Hanson The C++ answer book Addison-Wesley, [67] Stanley Lippman C++ Primer Addison-Wesley, [68] Brian W. Kernighan, Dennis M. Richie The C programming Language Prentice-Hall, Inc Englewood Cliffs, New Jersey. [69] Manuel d'utilisation: Le-Lisp V sur SUN CRIL [70] SUN Common Lisp 3.0 : User's Guide INTELLICORP. [71] KEE 3.0, Software Developement System: User's Manual INTELLICORP. [72] R. Kent Dybvig The SCHEME programming Language Prentice-Hall, Inc Englewood Cliffs, New Jersey. [73] G.L. Steele, S.E. Falman, R.P. Gabriel, D.A. Moon, D.L. Weinreb Common Lisp: the language Digital Press.

La voix en images : comment l évaluation objectivée par logiciel permet d optimiser la prise en charge vocale

La voix en images : comment l évaluation objectivée par logiciel permet d optimiser la prise en charge vocale La voix en images : comment l évaluation objectivée par logiciel permet d optimiser la prise en charge vocale Stéphanie Perriere To cite this version: Stéphanie Perriere. La voix en images : comment l

Plus en détail

Système de diffusion d information pour encourager les PME-PMI à améliorer leurs performances environnementales

Système de diffusion d information pour encourager les PME-PMI à améliorer leurs performances environnementales Système de diffusion d information pour encourager les PME-PMI à améliorer leurs performances environnementales Natacha Gondran To cite this version: Natacha Gondran. Système de diffusion d information

Plus en détail

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement

Plus en détail

Sur le grossissement des divers appareils pour la mesure des angles par la réflexion d un faisceau lumineux sur un miroir mobile

Sur le grossissement des divers appareils pour la mesure des angles par la réflexion d un faisceau lumineux sur un miroir mobile Sur le grossissement des divers appareils pour la mesure des angles par la réflexion d un faisceau lumineux sur un miroir mobile W. Lermantoff To cite this version: W. Lermantoff. Sur le grossissement

Plus en détail

Notes de lecture : Dan SPERBER & Deirdre WILSON, La pertinence

Notes de lecture : Dan SPERBER & Deirdre WILSON, La pertinence Notes de lecture : Dan SPERBER & Deirdre WILSON, La pertinence Gwenole Fortin To cite this version: Gwenole Fortin. Notes de lecture : Dan SPERBER & Deirdre WILSON, La pertinence. 2006.

Plus en détail

Dessin assisté par ordinateur en lycée professionnel

Dessin assisté par ordinateur en lycée professionnel Dessin assisté par ordinateur en lycée professionnel Bernard Dauga To cite this version: Bernard Dauga. Dessin assisté par ordinateur en lycée professionnel. Bulletin de l EPI (Enseignement Public et Informatique),

Plus en détail

L'EPS à l'école primaire aucune modification des programmes

L'EPS à l'école primaire aucune modification des programmes L'EPS à l'école primaire aucune modification des programmes Les 3 objectifs sont poursuivis aussi bien à l'école maternelle, qu'à l école primaire MATERNELLE * Favoriser la construction des actions motrices

Plus en détail

statique J. Bertrand To cite this version: HAL Id: jpa-00237017 https://hal.archives-ouvertes.fr/jpa-00237017

statique J. Bertrand To cite this version: HAL Id: jpa-00237017 https://hal.archives-ouvertes.fr/jpa-00237017 Quelques théorèmes généraux relatifs à l électricité statique J. Bertrand To cite this version: J. Bertrand. Quelques théorèmes généraux relatifs à l électricité statique. J. Phys. Theor. Appl., 1874,

Plus en détail

Le développement cognitif selon Jean Piaget. Les stades du développement cognitif selon Piaget

Le développement cognitif selon Jean Piaget. Les stades du développement cognitif selon Piaget Le développement cognitif selon Jean Piaget Piaget (BIO) et ses collaborateurs sont sans conteste les auteurs qui ont le plus contribué à notre compréhension du développement des capacités mentales durant

Plus en détail

Compte-rendu de Hamma B., La préposition en français

Compte-rendu de Hamma B., La préposition en français Compte-rendu de Hamma B., La préposition en français Badreddine Hamma To cite this version: Badreddine Hamma. Compte-rendu de Hamma B., La préposition en français. Revue française de linguistique appliquée,

Plus en détail

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar [email protected]

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar [email protected] Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Peut-on perdre sa dignité?

Peut-on perdre sa dignité? Peut-on perdre sa dignité? Eric Delassus To cite this version: Eric Delassus. Peut-on perdre sa dignité?. 2013. HAL Id: hal-00796705 https://hal.archives-ouvertes.fr/hal-00796705 Submitted

Plus en détail

AGROBASE : un système de gestion de données expérimentales

AGROBASE : un système de gestion de données expérimentales AGROBASE : un système de gestion de données expérimentales Daniel Wallach, Jean-Pierre RELLIER To cite this version: Daniel Wallach, Jean-Pierre RELLIER. AGROBASE : un système de gestion de données expérimentales.

Plus en détail

REMARQUES SUR LE PETIT FRAGMENT DE TABLETTE CHYPRO MINOENNE TROUVÉ A ENKOMI EN 1952. par EMILIA MAS SON

REMARQUES SUR LE PETIT FRAGMENT DE TABLETTE CHYPRO MINOENNE TROUVÉ A ENKOMI EN 1952. par EMILIA MAS SON REMARQUES SUR LE PETIT FRAGMENT DE TABLETTE CHYPRO MINOENNE TROUVÉ A ENKOMI EN 952 par EMILIA MAS SON. C'est pendant sa campagne de 952 à Enkomi que M. Porphyrios Dikaios a trouvé un petit fragment de

Plus en détail

Traitement numérique de l'image. Raphaël Isdant - 2009

Traitement numérique de l'image. Raphaël Isdant - 2009 Traitement numérique de l'image 1/ L'IMAGE NUMÉRIQUE : COMPOSITION ET CARACTÉRISTIQUES 1.1 - Le pixel: Une image numérique est constituée d'un ensemble de points appelés pixels (abréviation de PICture

Plus en détail

L indice de SEN, outil de mesure de l équité des systèmes éducatifs. Une comparaison à l échelle européenne

L indice de SEN, outil de mesure de l équité des systèmes éducatifs. Une comparaison à l échelle européenne L indice de SEN, outil de mesure de l équité des systèmes éducatifs. Une comparaison à l échelle européenne Sophie Morlaix To cite this version: Sophie Morlaix. L indice de SEN, outil de mesure de l équité

Plus en détail

Prédiction de couverture de champ radioélectrique pour les réseaux radiomobiles : L apport du Système d Information Géographique ArcInfo 8

Prédiction de couverture de champ radioélectrique pour les réseaux radiomobiles : L apport du Système d Information Géographique ArcInfo 8 Prédiction de couverture de champ radioélectrique pour les réseaux radiomobiles : L apport du Système d Information Géographique ArcInfo 8 Christine TURCK 1 * et **, Christiane WEBER**, Dominique THOME*

Plus en détail

Jean-Luc Archimbaud. Sensibilisation à la sécurité informatique.

Jean-Luc Archimbaud. Sensibilisation à la sécurité informatique. Sensibilisation à la sécurité informatique Jean-Luc Archimbaud To cite this version: Jean-Luc Archimbaud. Sensibilisation à la sécurité informatique. lieux en France, 1997, pp.17. École

Plus en détail

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies Régis Boulet Charlie Demené Alexis Guyot Balthazar Neveu Guillaume Tartavel Sommaire Sommaire... 1 Structure

Plus en détail

O b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée

O b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée O b s e r v a t o i r e E V A P M É q u i p e d e R e c h e r c h e a s s o c i é e à l ' I N R P Taxonomie R. Gras - développée Grille d'analyse des objectifs du domaine mathématique et de leurs relations

Plus en détail

Présentation. Référenciel : textes officiels

Présentation. Référenciel : textes officiels Présentation BO n 42 du 23 novembre 2000 BO n 13 du 29 mars 2001 Compétences requises pour le niveau 2 Référenciel : textes officiels Feuille de position niveau 2 (collège) - Culture informatique. - Organiser

Plus en détail

Un SIG collaboratif pour la recherche historique Partie. Partie 1 : Naissance et conception d un système d information géo-historique collaboratif.

Un SIG collaboratif pour la recherche historique Partie. Partie 1 : Naissance et conception d un système d information géo-historique collaboratif. Un SIG collaboratif pour la recherche historique Partie 1 : Naissance et conception d un système d information géo-historique collaboratif Claire-Charlotte Butez, Francesco Beretta To cite this version:

Plus en détail

Note technique. Formats de compression vidéo utilisés par CamTrace V11 avantages et inconvénients.

Note technique. Formats de compression vidéo utilisés par CamTrace V11 avantages et inconvénients. Note technique Formats de compression vidéo utilisés par CamTrace V11 avantages et inconvénients. 1) Formats d'acquisition et de stockage utilisées par CamTrace. CamTrace n'effectue aucune compression

Plus en détail

Les principes de la sécurité

Les principes de la sécurité Les principes de la sécurité Critères fondamentaux Master 2 Professionnel Informatique 1 Introduction La sécurité informatique est un domaine vaste qui peut appréhender dans plusieurs domaines Les systèmes

Plus en détail

Les déterminants du volume d aide professionnelle pour. reste-à-charge

Les déterminants du volume d aide professionnelle pour. reste-à-charge Les déterminants du volume d aide professionnelle pour les bénéficiaires de l APA à domicile : le rôle du reste-à-charge Cécile Bourreau-Dubois, Agnès Gramain, Helen Lim, Jingyue Xing, Quitterie Roquebert

Plus en détail

Créer un modèle Impress

Créer un modèle Impress Auto-formation sur OpenOffice.org 2.0 par Cyril Beaussier Version 1.0.24 - Janvier 2006 Créer un modèle Impress Sommaire Introduction... 2 Présentation... 3 Création du modèle... 4 Passage en mode Masque...

Plus en détail

PARCOURS COMPLET AU COURS MOYEN

PARCOURS COMPLET AU COURS MOYEN 81 I) UNE ENTAME DE TYPE "SOCIAL" : LE BUREAU DE POSTE Le bureau de poste de St Herblain Preux est récent. La classe de CM de l'école proche ("Les Crépinais") pouvait y découvrir divers aspects de l'informatique

Plus en détail

7. Exemples de tests pour détecter les différents troubles de la vision.

7. Exemples de tests pour détecter les différents troubles de la vision. 7. Exemples de tests pour détecter les différents troubles de la vision. 7.1 Pour la myopie (mauvaise vue de loin) : Test de vision de loin Sur le mur d un pièce, fixez l illustration ci-dessous que vous

Plus en détail

modélisation solide et dessin technique

modélisation solide et dessin technique CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir

Plus en détail

L'ORDINATEUR ET LA VUE

L'ORDINATEUR ET LA VUE 45 L'ORDINATEUR ET LA VUE On parle beaucoup des troubles liés au travail devant écran d'ordinateur. Qu'en est-il des recherches dans ce domaine? On peut dire que les problèmes de la vision sur écran en

Plus en détail

Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI

Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI Jean-Pierre Dedieu To cite this version: Jean-Pierre Dedieu. Les intermédiaires privés dans les finances royales

Plus en détail

Bonnes Pratiques de Fabrication des médicaments à usage humain et vétérinaire

Bonnes Pratiques de Fabrication des médicaments à usage humain et vétérinaire 1 2 3 4 Bonnes Pratiques de Fabrication des médicaments à usage humain et vétérinaire Partie 1 Chapitre 3: Locaux et matériel 5 6 7 8 9 10 11 12 13 PRINCIPE Les locaux et le matériel doivent être situés,

Plus en détail

Les Champs Magnétiques

Les Champs Magnétiques Les Champs Magnétiques Guillaume Laurent To cite this version: Guillaume Laurent. Les Champs Magnétiques. École thématique. Assistants de prévention, Paris, France. 2014, pp.31. HAL Id:

Plus en détail

Un exemple avec WORKSPACE d'interwrite

Un exemple avec WORKSPACE d'interwrite S'approprier un utilitaire de TNI Un exemple avec WORKSPACE d'interwrite Objectifs : S'approprier un utilitaire de TNI («soft»)afin de percevoir la plus-value pédagogique de l'outil. Pour cela utiliser

Plus en détail

VOS PREMIERS PAS AVEC TRACENPOCHE

VOS PREMIERS PAS AVEC TRACENPOCHE Vos premiers pas avec TracenPoche page 1/16 VOS PREMIERS PAS AVEC TRACENPOCHE Un coup d'oeil sur l'interface de TracenPoche : La zone de travail comporte un script, une figure, un énoncé, une zone d analyse,

Plus en détail

Le graphisme et l écriture, en lien avec les apprentissages en maternelle

Le graphisme et l écriture, en lien avec les apprentissages en maternelle Le graphisme et l écriture, en lien avec les apprentissages en maternelle Conférence de Marie-Thérèse Zerbato-Poudou : Les apprentissages à l école maternelle 12 novembre 2008, St Etienne de St Geoirs

Plus en détail

Enquête 2014 de rémunération globale sur les emplois en TIC

Enquête 2014 de rémunération globale sur les emplois en TIC Enquête 2014 de rémunération globale sur les emplois en TIC Enquête 2014 de rémunération globale sur les emplois en TIC Les emplois repères de cette enquête sont disponibles selon les trois blocs suivants

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Conservation des documents numériques

Conservation des documents numériques Conservation des documents numériques Qu'est ce qu'un document numérique? Matthieu GIOUX [email protected] Contexte de la préservation des documents numériques Une croissance en expansion Développement

Plus en détail

Détermination des enjeux exposés

Détermination des enjeux exposés RAPPORTS CETE de LYON Centre d'études Techniques de LYON Département Laboratoire de Clermont-Ferrand Affaire 19526 Détermination des enjeux exposés au risque inondation de l'oeil à Cosne d'allier novembre

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes. Introduction L'objectif de mon TIPE est la reconnaissance de sons ou de notes de musique à l'aide d'un réseau de neurones. Ce réseau doit être capable d'apprendre à distinguer les exemples présentés puis

Plus en détail

Présentation des CMS au CIFOM-EAA

Présentation des CMS au CIFOM-EAA Présentation des CMS au CIFOM-EAA http://www.esne.ch/infogestion/laboratoires/ldi/enseignement/article_0000.html filière informatique de gestion - Dominique Huguenin 1 sommaire Introduction 1 ère partie

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

Ordonner les étapes «Voitures en circulation»

Ordonner les étapes «Voitures en circulation» «Voitures en circulation» 17-21 Niveau 2 Entraînement 1 Objectifs - S entraîner à décomposer une action. - S entraîner à anticiper une action. - S entraîner à ordonner une suite de mouvements dans l ordre

Plus en détail

MANUEL TBI - STARBOARD

MANUEL TBI - STARBOARD MANUEL TBI - STARBOARD TBIH MOD2 TITRE Manuel STARBOARD (Module 2) Trucs et astuces INTITULE Manuel d'utilisation du logiciel STARBOARD accompagnant le tableau blanc interactif HITACHI F-Series et FX-Series

Plus en détail

Stockage ou pas stockage?

Stockage ou pas stockage? Stockage ou pas stockage? Table des matières 1- Stockage chimique?...1 2- Stockage thermique?...3 3- Stockage thermique et chimique!...4 4- Conclusion...5 La question du surplus dans les installations

Plus en détail

Contenus détaillés des habiletés du Profil TIC des étudiants du collégial

Contenus détaillés des habiletés du Profil TIC des étudiants du collégial Contenus détaillés des habiletés du des étudiants du collégial Auteur(s) : Équipe de travail du réseau REPTIC. Version originale REPTIC Version en date du : 5 octobre 2009 Comment citer ce document : Équipe

Plus en détail

Aperçu et raison d être du programme d études

Aperçu et raison d être du programme d études Section I Section I - Aperçu et raison d être du programme Aperçu et raison d être du programme d études Contexte Le cours Carrière et vie 2231 s inspire, du point de vue conceptuel, philosophique et pratique,

Plus en détail

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL J. TICHON(1) (2), J.-M. TOULOTTE(1), G. TREHOU (1), H. DE ROP (2) 1. INTRODUCTION Notre objectif est de réaliser des systèmes de communication

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

I- Définitions des signaux.

I- Définitions des signaux. 101011011100 010110101010 101110101101 100101010101 Du compact-disc, au DVD, en passant par l appareil photo numérique, le scanner, et télévision numérique, le numérique a fait une entrée progressive mais

Plus en détail

Degré de confiance pour les indicateurs de performance : degré de fiabilité du processus de production et écart significatif 1

Degré de confiance pour les indicateurs de performance : degré de fiabilité du processus de production et écart significatif 1 Degré de confiance pour les indicateurs de performance : degré de fiabilité du processus de production et écart significatif 1 L utilisation des indicateurs de performance ne peut se faire de manière pertinente

Plus en détail

Code de la publicité écologique

Code de la publicité écologique Code de la publicité écologique Code de la publicité écologique: Préambule Une société saine construit un avenir durable. De plus en plus, le souci de l'homme pour son environnement en constitue un élément

Plus en détail

2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE

2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE 2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance

Plus en détail

Suite dossier d appel

Suite dossier d appel Suite dossier d appel Table des matières 1. INTRODUCTION... 3 2. TRAITEMENT D'UN APPEL... 4 2.1. TRAITEMENT EN DIRECT... 4 2.2. TRAITEMENT DIFFERE... 4 2.3. MECANISME DU TRAITEMENT D'UN APPEL AU NIVEAU

Plus en détail

Comptabilité à base d activités (ABC) et activités informatiques : une contribution à l amélioration des processus informatiques d une banque

Comptabilité à base d activités (ABC) et activités informatiques : une contribution à l amélioration des processus informatiques d une banque Comptabilité à base d activités (ABC) et activités informatiques : une contribution à l amélioration des processus informatiques d une banque Grégory Wegmann, Stephen Nozile To cite this version: Grégory

Plus en détail

Étude des formes de pratiques de la gymnastique sportive enseignées en EPS à l école primaire

Étude des formes de pratiques de la gymnastique sportive enseignées en EPS à l école primaire Étude des formes de pratiques de la gymnastique sportive enseignées en EPS à l école primaire Stéphanie Demonchaux To cite this version: Stéphanie Demonchaux. Étude des formes de pratiques de la gymnastique

Plus en détail

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT Compression - Décompression avec 7-Zip Georges Silva Logiciel : 7-Zip site : http://www.7-zip.org Niveau : Débutant Auteur : Georges Silva

Plus en détail

Systèmes de transport public guidés urbains de personnes

Systèmes de transport public guidés urbains de personnes service technique des Remontées mécaniques et des Transports guidés Systèmes de transport public guidés urbains de personnes Principe «GAME» (Globalement Au Moins Équivalent) Méthodologie de démonstration

Plus en détail

Répartition des coûts du compte de pass-on par catégorie de consommateurs

Répartition des coûts du compte de pass-on par catégorie de consommateurs Répartition des coûts du compte de pass-on par catégorie de consommateurs Coûts et caractéristiques de la consommation Plan de travail 1. Retour sur le suivi de la rencontre du 17 mai 1.1 Illustration

Plus en détail

INF6304 Interfaces Intelligentes

INF6304 Interfaces Intelligentes INF6304 Interfaces Intelligentes filtres collaboratifs 1/42 INF6304 Interfaces Intelligentes Systèmes de recommandations, Approches filtres collaboratifs Michel C. Desmarais Génie informatique et génie

Plus en détail

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques. Logique binaire I. L'algèbre de Boole L'algèbre de Boole est la partie des mathématiques, de la logique et de l'électronique qui s'intéresse aux opérations et aux fonctions sur les variables logiques.

Plus en détail

Initiation à JAVA et à la programmation objet. [email protected]

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet [email protected] O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Chapitre IV : La Tenue Des Livres Le journal Le grand Livre

Chapitre IV : La Tenue Des Livres Le journal Le grand Livre Chapitre IV : La Tenue Des Livres Le journal Le grand Livre A - Notion sur la tenue des livres : 1) Notions Générales : La tenue des livres consiste à inscrire sur des registres comptables les différentes

Plus en détail

Parcours FOAD Formation EXCEL 2010

Parcours FOAD Formation EXCEL 2010 Parcours FOAD Formation EXCEL 2010 PLATE-FORME E-LEARNING DELTA ANNEE SCOLAIRE 2013/2014 Pôle national de compétences FOAD Formation Ouverte et A Distance https://foad.orion.education.fr Livret de formation

Plus en détail

Inclusion bancaire et financière, quelles nouvelles?

Inclusion bancaire et financière, quelles nouvelles? Inclusion bancaire et financière, quelles nouvelles? Ce que nous apprennent les dernières données issues de l'enquête Special Eurobarometer 373 1 «retail financial services» en matière d'inclusion financière.

Plus en détail

1 sur 5 10/06/14 13:10

1 sur 5 10/06/14 13:10 Time Machine est un outil proposé par Mac OS depuis sa version 10.5 (Leopard) et qui permet d'effectuer des sauvegardes de votre disque dur de manière régulière. Mais au-delà de la simple sauvegarde périodique,

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils

Plus en détail

Attestation de maîtrise des connaissances et compétences au cours moyen deuxième année

Attestation de maîtrise des connaissances et compétences au cours moyen deuxième année Attestation de maîtrise des connaissances et compétences au cours moyen deuxième année PALIER 2 CM2 La maîtrise de la langue française DIRE S'exprimer à l'oral comme à l'écrit dans un vocabulaire approprié

Plus en détail

- un Sigma DP1 Quattro (http://www.focus-numerique.com/test-2116/compact-sigma-dp1-quattro-presentationcaracteristiques-1.html)

- un Sigma DP1 Quattro (http://www.focus-numerique.com/test-2116/compact-sigma-dp1-quattro-presentationcaracteristiques-1.html) Par Renaud Labracherie, 31 Mai 2015 12h12 Pour clore notre mois noir & blanc (http://www.focus-numerique.com/50-nuances-gris-focus-numerique-mois-mainews-6880.html), nous souhaitions faire un comparatif

Plus en détail

Famille continue de courbes terminales du spiral réglant pouvant être construites par points et par tangentes

Famille continue de courbes terminales du spiral réglant pouvant être construites par points et par tangentes Famille continue de courbes terminales du spiral réglant pouvant être construites par points et par tangentes M. Aubert To cite this version: M. Aubert. Famille continue de courbes terminales du spiral

Plus en détail

Organiser des séquences pédagogiques différenciées. Exemples produits en stage Besançon, Juillet 2002.

Organiser des séquences pédagogiques différenciées. Exemples produits en stage Besançon, Juillet 2002. Cycle 3 3 ème année PRODUCTION D'ECRIT Compétence : Ecrire un compte rendu Faire le compte rendu d'une visite (par exemple pour l'intégrer au journal de l'école ) - Production individuelle Précédée d'un

Plus en détail

SOS Info: Traitement de textes. 1. Structurer un document. 2. Enregistrer un document

SOS Info: Traitement de textes. 1. Structurer un document. 2. Enregistrer un document De plus en plus de documents seront «lus» par des systèmes automatiques. Il est important que les textes soient parfaitement structurés pour qu'un ordinateur puisse repérer les éléments importants. On

Plus en détail

EPIJEUX-WIN POUR MATERNELLE ET ELEMENTAIRE AUTEUR : JEAN-FRANÇOIS LUCAS. Documentation. «Labypro»

EPIJEUX-WIN POUR MATERNELLE ET ELEMENTAIRE AUTEUR : JEAN-FRANÇOIS LUCAS. Documentation. «Labypro» Association Enseignement Public et Informatique (Loi 1901 - agréée par le Ministère de l'éducation nationale) E-mail : [email protected] Web : http://www.epi.asso.fr EPIJEUX-WIN POUR MATERNELLE ET

Plus en détail

Salle de technologie

Salle de technologie Prénom : Nom : Classe : Date : Salle de technologie Séquence Le dessin technique Définition du dessin technique : Le dessin technique est un ensemble de règles pour représenter des objets ; ces règles

Plus en détail

Photos et Droit à l image

Photos et Droit à l image Photos et Droit à l image 1) Le droit à l image (photos-vidéos) L atteinte au droit à l image n est pas caractérisée dès lors que la personne photographiée n est pas identifiable et que sa vie privée n

Plus en détail

Prise en main du logiciel. Smart BOARD Notebook 10

Prise en main du logiciel. Smart BOARD Notebook 10 Prise en main du logiciel Smart BOARD Notebook 10 1. Introduction : Le logiciel Smart BOARD est utilisable avec les tableaux blancs interactifs de la gamme SMART. Toutefois, il n'est pas nécessaire d'avoir

Plus en détail

l'ordinateur les bases

l'ordinateur les bases l'ordinateur les bases Démarrage de l'ordinateur - Le bureau, mon espace de travail - J'utilise la souris - Ouvertes ou fermées, les fenêtres - Dans l'ordinateur, tout est fichier - Le clavier : écrire,

Plus en détail

PRÉSENTATION DE LA MAINTENANCE INFORMATIQUE

PRÉSENTATION DE LA MAINTENANCE INFORMATIQUE 1000. PRÉSENTATION DE LA MAINTENANCE INFORMATIQUE En informatique, la notion de maintenance n'est pas figée et comporte des prestations de natures forts différentes qui vont du simple dépannage des équipements

Plus en détail

Commission Polydog Règlement de compétition SportPlaisir Catalogue des disciplines catégorie adresse niveau B

Commission Polydog Règlement de compétition SportPlaisir Catalogue des disciplines catégorie adresse niveau B 1 FAIRE UNE PIROUETTE SUR UNE PALETTE Description des installations Une estrade plane (palette) est placée au sol à environ 7 pas du point de départ. Pour le CCh, une ligne de démarcation est tracée un

Plus en détail

Freeway 7. Nouvelles fonctionnalités

Freeway 7. Nouvelles fonctionnalités ! Freeway 7 Nouvelles fonctionnalités À propos de ce guide... 3 Nouvelles fonctionnalités en un coup d'oeil... 3 À propos de la conception d'un site web réactif... 3 Travailler avec les pages pour créer

Plus en détail

MATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN

MATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN MATHÉMATIQUES Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN Mars 2001 MATHÉMATIQUES Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN Mars 2001 Direction

Plus en détail

Program Analysis and Transformation: From the Polytope Model to Formal Languages

Program Analysis and Transformation: From the Polytope Model to Formal Languages Program Analysis and Transformation: From the Polytope Model to Formal Languages Albert Cohen To cite this version: Albert Cohen. Program Analysis and Transformation: From the Polytope Model to Formal

Plus en détail

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES Compétences mises en jeu durant l'activité : Compétences générales : S'impliquer, être autonome. Compétence(s) spécifique(s) : Reconnaître des signaux de nature

Plus en détail

Annexe sur la maîtrise de la qualité

Annexe sur la maîtrise de la qualité Version du 09/07/08 Annexe sur la maîtrise de la qualité La présente annexe précise les modalités d'application, en matière de maîtrise de la qualité, de la circulaire du 7 janvier 2008 fixant les modalités

Plus en détail

De l importance des lieux réticulaires Entretien avec Boris Beaude

De l importance des lieux réticulaires Entretien avec Boris Beaude De l importance des lieux réticulaires Entretien avec Boris Beaude BORIS BEAUDE Géographe Chercheur au sein du laboratoire Chôros École Polytechnique Fédérale de Lausanne [email protected] Entretien

Plus en détail

VOIRIE ACCESSIBLE Véronique IMBAULT Décembre 2011

VOIRIE ACCESSIBLE Véronique IMBAULT Décembre 2011 VOIRIE ACCESSIBLE Véronique IMBAULT Décembre 2011 Plan Rappels règlementaires Cheminements et trottoirs Escaliers Équipements et mobilier urbains Traversée de chaussée Feux de circulation permanents Emplacements

Plus en détail

CARTOGRAPHIE EN LIGNE ET GÉNÉRALISATION

CARTOGRAPHIE EN LIGNE ET GÉNÉRALISATION CARTOGRAPHIE EN LIGNE ET GÉNÉRALISATION par Julien Gaffuri JRC IES SDI unit Via Enrico Fermi, 21027 Ispra, Italie [email protected] Les cartes en ligne pourraient être améliorées par l utilisation

Plus en détail

Conférence. Comment améliorer le taux de conversion de votre boutique en ligne grâce au design sous Prestashop? Réalisé par ECOMIZ

Conférence. Comment améliorer le taux de conversion de votre boutique en ligne grâce au design sous Prestashop? Réalisé par ECOMIZ Conférence Comment améliorer le taux de conversion de votre boutique en ligne grâce au design sous Prestashop? Réalisé par ECOMIZ Table des matières Présentation d'ecomiz...2 Pré-requis...2 Visibilité

Plus en détail

Dossier justificatif des travaux de R&D déclarés au titre du CIR

Dossier justificatif des travaux de R&D déclarés au titre du CIR Dossier justificatif des travaux de R&D déclarés au titre du CIR I PRÉSENTATION DE LA SOCIETE Présenter l activité de la société en quelques lignes ou au moyen d une plaquette publicitaire et replacer

Plus en détail

L'insertion professionnelle des diplômés DNSEP 2003 trois ans après le diplôme

L'insertion professionnelle des diplômés DNSEP 2003 trois ans après le diplôme IREDU-CNRS Ministère de la Culture et de la Communication Délégation aux Arts plastiques Magali Danner Gilles Galodé L'insertion professionnelle des diplômés DNSEP 2003 trois ans après le diplôme Enquête

Plus en détail

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,

Plus en détail

Intelligence Economique - Business Intelligence

Intelligence Economique - Business Intelligence Intelligence Economique - Business Intelligence Notion de Business Intelligence Dès qu'il y a une entreprise, il y a implicitement intelligence économique (tout comme il y a du marketing) : quelle produit

Plus en détail