Vincent Quint, INRIA Rhône-Alpes
13 juin 2003 -- publication dans les actes de la conférence H2PTM'03
Résumé : Depuis plus de dix ans, le Web a très largement popularisé l'hypertexte et le multimédia. Plus récemment, des évolutions technologiques du Web, qui s'appuient sur XML ou qui l'accompagnent, ont apporté une nouvelle dimension au domaine de l'hypermédia. Ces technologies structurent réellement l'information. Elles offrent de nouvelles possibilités graphiques sur toutes sortes d'appareils. Elles ouvrent les documents hypermédia à de nouvelles applications. Elles les rendent plus dynamiques et enrichissent leur dimension hypertextuelle. Ce sont toutes ces évolutions qui sont analysées dans cet article.
Abstract: Since more than ten years the Web has turned hypertext and multimedia into very popular technologies. More recent evolutions of the Web, all related to XML, have broadened the field of hypermedia. These new technologies provide information with a strong structure. They bring new graphical possibilities on many kinds of devices. They allow new applications to handle hypermedia documents. They make these documents more dynamic and provide more sophisticated hypertext links. All these evolutions are analyzed in this article.
Mots-clés : Web, XML, hypertexte, hypermédia, multimédia, documents composites, documents dynamiques, langages de style, animation, adaptation
Keywords: Web, XML, hypertext, hypermedia, multimedia, compound documents, dynamic documents, style languages, animation, adaptation
Le domaine de l'hypertexte et de l'hypermédia a connu un développement fulgurant au cours des années 90 avec l'arrivée du Web. Il est maintenant l'objet d'un nouveau bouleversement, sans doute plus lent mais très profond, sous l'impulsion des technologies XML. C'est ce deuxième bouleversement qu'on essaie d'analyser ici.
Mais commençons par le commencement, c'est-à-dire par les débuts du Web, en 1990 [TBL99]. C'est la rencontre des concepts de l'hypertexte et de l'Internet qui a donné au Web son originalité. Le point clé de cette convergence est le mécanisme d'adressage universel (URI, Uniform Resource Identifiers) [URI] qui permet d'identifier de façon non-ambiguë n'importe quelle ressource accessible par l'Internet. Un lien dont les deux extrémités, les ancres, sont désignées par des URI peut relier n'importe quel couple de ressources. Le système hypertexte prend ainsi une dimension planétaire. Ajoutons à cela l'absence de tout composant centralisé et le système peut se déployer très rapidement, en s'appuyant sur les ressources déjà disponibles sur le réseau.
Le mécanisme d'adressage n'impose aucune contrainte sur le contenu des entités adressées. Il offre ainsi la possibilité de connecter des ressources de toutes sortes, donnant ainsi au Web sa dimension hypermédia. Depuis les premiers temps, les clients Web acceptent des formats de documents et d'images multiples, pour la plupart créés indépendamment du Web. Certaines implémentations offrent des choix plus larges que d'autres, mais l'architecture n'impose pas par elle-même de limitations de format.
Cependant, pour tirer tout le bénéfice des liens hypertexte, un format spécifique a été développé pour le Web. C'est HTML (Hypertext Markup Language). Un souci d'ouverture a présidé à sa conception. Il s'agissait de créer un format facile à produire et à interpréter, pour qu'il puisse être disponible sur de multiples plates-formes. Dès sa première version, HTML présentait de nombreux traits intéressants. D'abord, c'est un langage déclaratif. Il représente un document pour ce qu'il est, sans donner aucune directive sur les traitements à lui appliquer. Cette approche, même si elle n'était pas fondamentalement nouvelle à l'époque (SGML suivait déjà cette voie), était encore peu répandue dans la communauté scientifique, qui pourtant a été la première à adopter le Web. Beaucoup avaient en effet l'habitude de langages comme TeX pour écrire leurs documents, ou comme PostScript pour les échanger. Or ce sont des langages de programmation impératifs, qui décrivent très précisément la façon de produire la forme finale, graphique, d'un document. Il est bien difficile de faire autre chose, à partir de ces langages, que d'afficher ou d'imprimer le document sous la forme exacte qu'a voulu son auteur. Il en va tout autrement de HTML qui ne spécifie pas l'aspect du document, mais seulement sa structure, en termes d'objets documentaires simples (paragraphes, titres, listes, tableaux, etc.). Dès lors, il est aisé de présenter des pages HTML sur des appareils très différents. C'est ce qui a permis, dès les origines, le développement de browsers aussi bien pour des écrans graphiques que pour des terminaux en mode caractère. Mais ce n'est pas la seule vertu de cette approche. D'autres traitements que la présentation peuvent être exercés sur les documents, comme l'indexation ou la recherche d'information, par exemple. Si les moteurs de recherche ont pu se développer si vite sur le Web, c'est précisément parce que le format des pages Web leur permettait de trouver facilement l'information qui les concerne.
Le schéma d'adressage et les formats de documents sont deux des piliers de l'architecture du Web [TBL98]. Le troisième pilier est constitué des protocoles qui, comme HTTP, permettent d'échanger les ressources à travers le réseau. Depuis la création du Web, chacune de ces spécifications a évolué et s'est enrichi, mais l'architecture reste fondée sur ces trois mêmes piliers. Dans la suite de cet article, nous examinons plus particulièrement les évolutions des formats et leur impact dans le domaine de l'hypermédia.
HTML a évolué au fil du temps jusqu'à la version 4.0. Il s'agissait surtout de stabiliser le langage et de canaliser les initiatives qui s'étaient multipliées pour apporter des extensions plus ou moins bienvenues. Le vrai changement est arrivé avec XML (Extensible Markup Language) [XML]. Il s'agissait au départ de faciliter l'échange de données et de documents SGML sur le Web. Si le résultat des travaux remplit effectivement cet objectif, il a aussi eu depuis de nombreuses retombées qui ont fortement changé notre vision du Web.
Avec XML une véritable rupture se produit dans l'évolution des formats du Web. En effet, XML n'est pas le successeur de HTML 4.0. Il donne la possibilité de créer librement de nouveaux formats de document tout en garantissant une bonne intégration de ces documents dans le Web. Il résout ainsi un problème que posait HTML. Le type de document modélisé par HTML est assez simple. C'est en gros celui des documents de traitement de texte. Il est insuffisant pour représenter fidèlement des documents un peu complexes ou simplement spécialisés. L'ajout de nouveaux éléments au langage HTML ne peut se faire que de façon limitée et lente, puisque chaque extension doit recueillir l'approbation des implémenteurs et leur engagement de réaliser l'extension dans leurs produits, faute de quoi l'interopérabilité du Web serait compromise. Il fallait donc choisir une autre voie. Ce que XML permet, ce n'est pas seulement d'ajouter quelques balises, mais de créer de nouveaux langages de balisage, chacun bien adapté à une classe de documents. Et si XML demande des outils adaptés, il autorise les outils génériques qui peuvent traiter les différents langages de balisage ainsi créés.
Ainsi, l'introduction d'un nouveau langage de balisage XML n'impose pas la modification des browsers existants. Cela est du pour une bonne part à la séparation entre structure et présentation, qui est un des fondements de XML. En effet seul le contenu d'un document et sa structure logique sont représentés dans un format XML. Aucune indication n'est donné quant à la présentation, mais toutes sortes de présentations peuvent néanmoins être obtenues. En effet, XML est accompagné de deux langages qui permettent de spécifier très finement la présentation des documents.
Le premier langage utilisable pour définir la présentation d'un document XML est CSS (Cascading Style Sheets) [CSS]. CSS est un langage très simple qui permet d'associer des valeurs aux propriétés de style de chaque élément d'un document, en fonction du rôle de l'élément dans la structure du document. Il permet de jouer sur de très nombreuses propriétés de style : police de caractères, taille, graisse, couleur, marges, cadres, alignement, espacements, etc. Il comporte aussi des propriétés qui agissent sur le rendu sonore d'un document restitué par synthèse vocale.
Les règles CSS, qui affectent des valeurs aux propriétés de style des éléments, sont regroupées dans des feuilles de style qui sont séparées des documents eux-mêmes, mais peuvent leur être associées. Un document peut utiliser plusieurs feuilles de style différentes et une même feuille de style peut s'appliquer à plusieurs documents différents. Cette facilité permet d'enrichir considérablement et d'une façon très simple l'aspect esthétique du Web. En utilisant les mêmes feuilles de style pour une partie d'un site, on peut lui donner une grande homogénéité stylistique. En combinant différentes feuilles de style on peut varier l'aspect des pages Web. De plus, des changements de style peuvent être effectués très simplement, sans changer les documents eux-mêmes, simplement en leur assignant des feuilles de style différentes. On obtient ainsi des sites Web très vivants.
CSS a le grand avantage de la simplicité, mais lorsqu'il s'agit d'effectuer un formatage très élaboré d'un document XML complexe, l'utilisation d'un autre langage, XSL (Extensible Stylesheet Language) [XSL] est plus appropriée. XSL partage avec CSS les mêmes propriétés de style, mais il ajoute deux composants originaux, les objets de formatage (XSL-FO) et la transformation. Dans le processus de présentation de XSL, un document XML doit d'abord être converti en une structure d'objets de formatage. Ces objets sont typiquement des pages, de colonnes, des zones de notes, des blocs (comme des paragraphes), etc. De tels objets portent des propriétés de style et sont assemblés dans une structure décrite en XML. C'est l'interprétation de cette structure qui produit le document formaté.
Mais il faut d'abord produire la structure d'objets de formatage. Cela se fait par une transformation du document XML en cette structure de formatage. La transformation est décrite dans un autre langage, XSLT (XSL Transformation). Grâce à cette approche en deux temps du formatage, le concepteur graphique a une très grande liberté. La puissance de XSLT lui permet d'obtenir une structure de présentation très différente de celle du document XML. Cela permet également de produire des structures supplémentaires comme des tables des matières, des index, ou des glossaires.
Même si les concepteurs de XSL ne l'avaient pas cherché, XSLT a été utilisé plus largement que pour produire des objets de formatage XSL. En particulier, il a très rapidement été « détourné » pour produire du code HTML à partir de documents XML. Le processus en deux phases avec transformation de XSL est le même et donne la même puissance, mais au lieu de produire des objets de formatage XSL, on engendre du HTML, que l'on considère comme un langage de formatage. La sémantique de formatage de HTML n'est pas aussi bien définie que celle des XSL-FO. On remédie à ce défaut en accompagnant le code HTML de feuilles de style CSS qui précisent cette sémantique. Au bout du compte, il n'y a pas un choix binaire entre CSS et XSL, mais on peut également considérer des combinaisons intermédiaires de ces langages. On a ainsi une large palette d'outils pour passer des documents XML à leur présentation.
Le Web revêt un caractère d'universalité qui nécessite une ouverture à toutes sortes d'utilisateurs et de moyens d'accès. Les feuilles de style contribuent à l'accessibilité du Web en permettant, par exemple, d'adapter la présentation des documents aux lecteurs qui ont des difficultés visuelles ou qui ne peuvent pas fixer leur regard sur un écran, leur vision étant déjà mobilisée par une autre tâche. Pour arriver à un tel résultat, il n'est pas nécessaire de préparer plusieurs versions du document, avec les problèmes de maintien de cohérence qui en découlent. Une seule version suffit si elle est accompagnée d'un jeu de feuilles de style bien conçues. De plus, il n'est même pas nécessaire que l'auteur prévoie tous les usages de son document. Chaque lecteur peut créer et appliquer la feuille de style qui lui convient le mieux.
Les feuilles de style permettent aussi d'adapter les documents aux appareils sur lesquels ils doivent être présentés. CSS donne la possibilité d'exprimer des règles différentes selon le type d'appareil utilisé (PC, imprimante, assistant personnel, téléphone, téléviseur, projecteur, afficheur Braille, etc.). Parfois, un simple changement de style ne suffit pas pour consulter confortablement une page Web. Par exemple, une longue page avec des tableaux compliqués (des horaires de train ou d'avion, par exemple) peut se consulter aisément sur un PC, mais pour la consultation sur un téléphone, il vaut mieux la réorganiser en petites unités reliées par des liens hypertexte. Ici encore, XSLT peut intervenir pour engendrer ces pages.
Ce principe d'adaptation en vue d'assurer l'indépendance vis à vis des appareils est séduisant, mais il s'appuie sur l'hypothèse qu'il existe un document XML à partir duquel on peut dériver toutes les variantes voulues, soit par transformation, soit par application de feuilles de style. La création d'un tel document n'est pas une chose facile. Cela va à l'encontre du principe WYSIWYG, largement utilisé dans ce domaine, qui veut que l'auteur voie à l'écran exactement ce que verra le lecteur. Ici, on ne sait pas ce que le lecteur pourra ou voudra voir (ou plutôt percevoir). Un nouveau domaine de recherche s'est ouvert récemment pour attaquer ce problème, le device independent authoring [DIA] et il faut s'attendre au développement de nouveaux paradigmes pour les auteurs de documents destinés au Web.
Avec XML l'information accessible par le Web devient plus structurée. On a déjà vu les avantages que cette structuration apporte pour la présentation. Mais la présentation n'est qu'un des traitements qui peuvent s'appliquer à un document. C'est d'ailleurs tout l'intérêt de l'approche XML, qui représente le document d'une façon abstraite, indépendamment de tout traitement. Le même document, sous la même forme, peut être soumis à toutes sortes d'applications, y compris des applications qui n'étaient pas prévues au moment de sa création.
Pour certaines applications, des langages spécialisés sont disponibles, comme CSS ou XSL pour la présentation et le formatage. Un autre langage spécialisé est en cours de développement, XQuery [XQL], pour la recherche d'information et l'interrogation de bases de documents/données XML. Mais il n'est pas nécessaire qu'un langage spécialisé existe. Pour faciliter les traitements, un modèle objet des documents XML a été défini, le DOM (Document Object Model) [DOM]. Ce modèle est accompagné d'une interface de programmation, indépendante des langages de programmation et des plates-formes, qui permet à des programmes et à des scripts de manipuler tous les aspects du document : structure, contenu, style. Ainsi, le développement d'applications traitant des documents XML est grandement facilité.
Un autre facteur favorable pour le traitement des documents est apporté par les schémas. Ce sont des modèles qui définissent la structure que doivent respecter les documents XML. Ils permettent de guider le processus de création des documents et de vérifier que les documents sont bien structurés comme ils doivent l'être. Grâce à la rigueur que les schémas apportent à la structure, les traitements deviennent plus sûrs. Lorsqu'une application travaille sur un document qui respecte un schéma connu, elle a peu de chance de rencontrer des situations non prévues et donc de produire des résultats inattendus.
La syntaxe de XML est purement textuelle, comme celle de HTML, mais cela ne limite pas pour autant son champ d'application à des documents textuels. Au contraire, très rapidement après la publication du standard XML, sont apparus des langages de balisage construits sur XML, couvrant des domaines très variés comme les notations mathématiques, le multimédia, le graphique, l'interaction vocale, etc.
MathML [MML] est une des premières applications qui ait été développée en XML. Il s'agit d'un langage de représentation des expressions mathématiques qui représente à la fois la présentation des expressions et leur réel contenu mathématique. Ce langage permet ainsi d'afficher et d'imprimer des expressions mathématiques, comme le font TeX et LaTeX, mais il autorise aussi de véritable traitements mathématiques, favorisant ainsi les échanges non seulement entre personnes, mais aussi entre logiciels de calcul.
Les expressions mathématiques constituent rarement des documents isolés. Elles sont plutôt plongées dans des documents plus larges. Cette intégration est rendue possible par les espaces de noms. Cette technologie qui accompagne XML permet de mêler plusieurs langages de balisage XML dans un même document, en marquant clairement dans quel langage chaque partie du document est écrite. On peut ainsi créer de véritables documents composites et profiter librement des nombreux langages XML existant. Chaque langage peut être spécialisé dans un seul aspect des documents, comme l'est MathML, et décrire cet aspect de façon très complète et très précise à la fois. Cela mène à une approche modulaire des langages de balisage.
Un autre langage important pour les documents composites est SVG (Scalable Vector Graphics) [SVG]. C'est un langage XML qui représente des graphiques vectoriels à deux dimensions. Il est doté de toutes les caractéristiques des meilleurs langages graphiques, mais il offre en plus tous les avantages apportés par XML. Pour les documents composites, mentionnons aussi XHTML. C'est une réécriture de HTML en XML. Il peut donc représenter le même type de document que HTML, mais, lui aussi, apporte tous les avantages de XML. Avec XHTML, MathML et SVG, on peut construire des documents scientifiques et techniques très riches, où chaque partie est véritablement représentée pour ce qu'elle est, alors que HTML n'offre pour les formules et les dessins, notamment, qu'une simple représentation par matrices de points.
Les documents composites évoqués ici ne sont pas de véritables documents multimédia. Il leur manque une dimension essentielle, celle du temps. Cette dimension vient à la fois des contenus et de la structure. Des contenus comme le son ou la vidéo ont une dimension temporelle intrinsèque, mais la structure d'un document multimédia joue aussi un rôle dans la temporalité du document, en organisant dans le temps les différents contenus (temporisés ou non) qui le composent. C'est précisément ce rôle que joue le langage SMIL (Synchronized Multimedia Integration Language) [SMIL], un autre langage XML. SMIL ne décrit pas directement les contenus multimédia. Comme HTML pour les images, il intègre ces contenus par référence, en les désignant à l'aide d'un URI. Cela permet d'intégrer des images et des enregistrements sonores ou vidéo codés dans des formats variés, sans alourdir pour autant le langage SMIL lui-même. Cela permet aussi de profiter de l'ensemble du Web pour stocker et retrouver les différents composants d'un document multimédia.
Ces capacités multimédia du Web sont complétées par des capacités multimodales. De nouvelles techniques, fondées elles aussi sur XML, permettent l'interaction multi-modale sur le Web. Ces développements sont motivés par la variété croissante des appareils d'accès au Web. Ils ont commencé avec VoiceXML [VXML], un langage qui permet de définir des dialogues vocaux entre un utilisateur et une application Web. Ils s'élargissent maintenant avec la prise en compte d'autres modalités, notamment l'écriture manuscrite.
HTML nous a déjà habitué à des documents dynamiques sur le Web, c'est-à-dire à des documents qui changent en fonction des actions de l'utilisateur. À vrai dire, le HTML dynamique s'appuie largement sur CSS pour réaliser les changements du document.
Cet aspect dynamique des documents se retrouve sous une forme plus générale avec le DOM de XML (voir plus haut). Les scripts, ces petits programmes qui animent le document, peuvent être embarqués dans le document lui-même ou associés par des liens. Le DOM définit également des événements liés à des modifications du document ou à des actions de l'utilisateur et il permet d'y associer des traitements. Le document peut ainsi se transformer lui-même en réaction aux actions de l'utilisateur.
Cette technique requiert l'écriture des scripts et entraîne donc toute la complexité liée à la programmation. Mais, au moins pour certains documents et certaines applications, on peut éviter les scripts et recourir à l'animation SMIL. En effet, comme nombre d'autres langages XML, SMIL est modulaire. Il comporte notamment un module d'animation qui permet de faire évoluer dans le temps des éléments a priori statiques, comme du texte ou du graphique. Plus précisément ils permet de déclarer comment un attribut ou une propriété de style (position, taille, couleur, transparence, etc.) d'un élément doit évoluer dans le temps. Ce module d'animation de SMIL [ANIM] est notamment réutilisé par le langage graphique SVG. Avec le DOM et l'animation, il est possible de donner vie à des documents décrits statiquement, et d'animer n'importe laquelle de leurs parties.
Les liens entre les ressources sont fondamentaux dans l'architecture du Web et XML, conçu pour le Web, intègre bien sûr cette dimension hypertextuelle. Mais cela n'est pas dans le langage XML lui-même, conformément au principe de modularité. Au contraire, ce sont des spécifications distinctes qui définissent les services hypertexte associés à XML.
Le modèle hypertexte des débuts du Web est très simple. Le passage à XML a été l'occasion de développer un modèle plus riche, qui offre les possibilités développées depuis des années par les chercheurs du domaine. C'est la spécification XLink [XLL] qui met ce modèle en oeuvre. Ce langage XML permet de représenter toutes sortes d'hyperliens. Grâce aux espaces de noms, il peut être associé à n'importe quel type de document, lui apportant ainsi la dimension hypertexte. Il s'appuie sur le mécanisme d'adressage du Web, les URI, pour relier entre elles, avec une sémantique riche, n'importe quelles ressources du Web. De façon à fournir aux liens une grande précision, il utilise XPath qui identifie les points ou les fragments constituant les ancres des liens à l'intérieur des structures XML. XPath [XPA] est un langage d'expression de chemins qui décrit l'itinéraire à suivre dans une structure pour atteindre une partie choisie. Il offre l'avantage de ne pas altérer le document visé, et autorise donc l'établissement de liens vers n'importe quelle partie de n'importe quel document, y compris vers les documents qu'on ne peut pas modifier.
C'est grâce à XLink que des documents, ou de fragments, représentés en SVG, SMIL ou MathML, par exemple, peuvent être dotés de liens hypertexte. Ainsi, un document multimédia peut porter des liens dans toutes ses parties et devenir un document hypermédia.
Le développement de XML et des technologies associées apporte de nouvelles possibilités dans le domaine de l'hypermédia. Ces technologies peuvent s'appliquer à travers tout le Web et sont ainsi mises à la disposition de très nombreux utilisateurs. Elles permettent aussi de relier des ressources d'information fortement distribuées. Représentées selon le modèle XML, ces ressources peuvent être l'objet de traitements très variés. Elles sont aussi très largement adaptables. Ces deux propriétés garantissent la pérennité des informations. De plus, les formats spécialisés construits sur XML offrent une grande variété de médias qui peuvent être combinés et animés dans les documents très riches, avec toutes sortes de liens hypertexte.
Les points clés de ces technologies sont la modularité, l'extensibilité et l'ouverture. Chacun des composants présentés ici peut être combiné avec tous les autres pour répondre aux besoins précis de chaque application. Tous sont conçus pour évoluer et s'étendre. Enfin, ces technologies sont ouvertes, complètement documentées et d'utilisation entièrement libre. Elles ont été développées au W3C dans un contexte ouvert, et ont bénéficié de l'expérience et du soutien de tous les acteurs majeurs du domaine. Elles sont mises en oeuvre dans de nombreux produits et logiciels libres. Cela leur assure une forte interopérabilité.
[ANIM] P. Schmitz, A. Cohen, SMIL Animation, http://www.w3.org/TR/smil-animation/, 2001
[CSS] B. Bos, Cascading Style Sheets, http://www.w3.org/Style/CSS/
[DIA] R. Lewis, Authoring Challenges for Device Independence, http://www.w3.org/TR/acdi/
[DOM] Ph. Le Hégaret, R. Whitmer, L. Wood, Document Object Model (DOM), http://www.w3.org/DOM/
[MML] M. Froumentin, W3C Math Home, http://www.w3.org/Math/
[SMIL] T. Michel, Synchronized Multimedia, http://www.w3.org/AudioVideo/
[SVG] C. Lilley, D. Jackson, Scalable Vector Graphics (SVG), http://www.w3.org/Graphics/SVG/
[TBL98] T. Berners-Lee, Web Architecture from 50,000 feet, http://www.w3.org/DesignIssues/Architecture.html, septembre 1998.
[TBL99] T. Berners-Lee, Weaving the Web: the original design and the ultimate destiny of the World Wide Web by its inventor, Harper, San Francisco, ISBN 0-06-251586-1, 1999.
[URI] T. Berners-Lee, R. Fielding, L. Masinter, Uniform Resource Identifiers (URI): Generic Syntax (RFC 2396), August 1998
[VXML] D. Raggett, "Voice Browser" Activity - Voice enabling the Web!, http://www.w3.org/Voice/
[XLL] S. DeRose, E. Maler, D. Orchard, XML Linking Language (XLink) Version 1.0, http://www.w3.org/TR/xlink/
[XML] L. Quin, Extensible Markup Language (XML), http://www.w3.org/XML/
[XPA] J. Clark, S. DeRose, XML Path Language (XPath), http://www.w3.org/TR/xpath, 1999
[XQL] M. Marchiori, XML Query, http://www.w3.org/XML/Query
[XSL] M. Froumentin, The Extensible Stylesheet Language (XSL), http://www.w3.org/Style/XSL/