Après avoir décrit les difficultés de la transmission des connaissances, ce texte de vulgarisation décrit la solution informatique émergente, basée sur le langage XML
Le progrès de la société repose beaucoup sur l'accroissement du volume de connaissances dans toutes sortes de domaines: industriel, scientifique, artistique, sociologique, etc. Lorsque les connaissances ne progressent pas, ou très lentement, la société ne progresse pas; exemples: le Moyen Age, l'Egypte ancienne.
Aujourd'hui le plus gros problème n'est plus le volume de connaissances ou sa vitesse de croissance, c'est l'aptitude à utiliser les connaissances qui existent quelque part. Nous sommes gênés par:
En pratique, la connaissance est stockée surtout par écrit (texte, images...) Or:
Pour comprendre un mot qu'on vient de lire il faut tenir compte de son contexte: phrase, titre du paragraphe, etc. Le même mot anglais "Cook" peut désigner le grand explorateur, l'archipel qui porte son nom, un cuisinier et le verbe cuire. Il est donc en général illusoire d'espérer trouver ce qu'on cherche dans une bibliothèque informatisée en n'utilisant que des critères de recherche à base de mots du texte: il faut absolument effectuer des recherches qui tiennent compte du contexte.
Le contexte se décrit d'abord à l'aide de la notion de structure du document, qui distingue le titre de l'ouvrage et son résumé, les divers chapitres, le titre et les paragraphes d'un chapitre, le titre d'un paragraphe, les figures et leur titre, etc. Le même mot peut avoir une signification différente et un intérêt différent dans une opération de recherche selon qu'il est dans un titre ou dans le corps d'un paragraphe. Si on veut un livre sur le navigateur Cook on cherchera un livre dont le titre contient le mot Cook: la recherche doit pouvoir accéder aux titres des ouvrages en tant que titres distincts du texte lui-même.
Le contexte se décrit ensuite avec les concepts d'un vocabulaire standard: on aura des vocabulaires distincts pour les ouvrages d'histoire, de géographie et de cuisine. Les mots de ce vocabulaire ont des définitions connues et précises, et leur liste est courte: quelques centaines de mots en général. Le vocabulaire lui-même caractérise un domaine de connaissances comme l'Histoire ou un métier comme la Banque. Pour trouver le navigateur Cook dans un livre d'histoire, on cherchera dans le vocabulaire standard d'Histoire le concept de navigateur pour trouver le mot standard correspondant, par exemple "explorateur". Ensuite, si on veut un livre qui a une chance de citer le navigateur Cook quelque part, on cherchera un livre d'histoire où il est question d'explorateur, pas de navigateur (mot inconnu dans le vocabulaire standard).
Une recherche utilisant seulement la structure avec des mots quelconques, ou le vocabulaire standard sans la structure, n'est pas assez fine: on risque de trouver trop d'ouvrages. Exemples: un livre dont le titre contient le mot Cook pourrait être un livre de cuisine, et un livre d'histoire où il est question de l'explorateur Cook pourrait citer Cook sans avoir Cook pour sujet principal. Il faut pouvoir chercher des ouvrages en utilisant à la fois les critères de structure et de vocabulaire; nous appellerons recherche "mixte" le type de recherche correspondant.
Pour pouvoir utiliser des recherches mixtes il faut d'abord que les ouvrages soient stockés dans un ordinateur avec, en plus de leur texte, la structure de celui-ci. On doit savoir qu'il y a un titre (et connaître les mots de ce titre), qu'il y a des chapitres (et pour chacun le titre et les paragraphes avec les mots qui y figurent), etc. Il faut ensuite qu'à chaque fois que, dans le texte, le sens d'un mot correspond à celui d'un mot du vocabulaire standard (comme "navigateur" correspond à "explorateur") le mot standard figure à côté du nom qu'il qualifie: devant le nom propre "Cook" on trouvera le mot standard "explorateur", pour indiquer que "Cook" est un explorateur, pas un archipel ou un cuisinier. En somme, au lieu de stocker un document tel quel dans l'ordinateur, avec ses mots l'un derrière l'autre, on le stockera sous une forme qui en fasse apparaître la structure et les concepts du vocabulaire d'une manière utilisable. Cela demandera du travail, mais permettra ensuite des recherches précises et rapides.
Nous avons déjà une solution informatique aux besoins exprimés jusqu'ici: le langage de documentation SGML. Un langage informatique est un ensemble de conventions de représentation d'informations, document ou programme par exemple. SGML permet de définir des vocabulaires et structures de documents d'une manière parfaitement utilisable selon les critères ci-dessus. Et c'est un langage standard: tout le monde, partout, l'écrit et le lit de la même façon; un document à la norme SGML (c'est une norme ISO) peut être interprété correctement, sans ambiguïté, par toute personne, quelque soit son pays ou son ordinateur.
Hélas, SGML est un langage pour spécialistes. Son utilisation est très complexe. On ne peut donc en envisager une utilisation généralisée pour stocker et retrouver les connaissances. Et il ne répond pas au deuxième problème de transmission des connaissances que nous allons maintenant énoncer.
Une forme particulière de connaissance est aujourd'hui très utilisée: les données informatiques, que celles-ci concernent de la gestion (commandes, comptabilité, etc.), des calculs scientifiques (position et mouvements des planètes, etc.) ou des documents à vocation non-culturelle tels qu'un catalogue de vente par l'Internet.
Ces données informatiques sont manipulées par des programmes qui ont l'immense inconvénient d'être, en général, incapables de coopérer: un programme écrit pour un ordinateur de type AS/400 est incapable de poser des questions ou de fournir des réponses à un programme écrit pour ordinateur Sun. Cette incapacité est le cas général: si on a, dès le départ, conçu ces programmes pour coopérer, alors ils coopéreront.
La coopération n'étant possible que lorsqu'on l'a prévue à l'écriture des programmes, l'informatique aujourd'hui ne peut pas improviser ou s'adapter. Si mon ordinateur PC ne contient pas les programmes nécessaires pour que j'achète un billet d'avion à la compagnie aérienne australienne Quantas en passant par l'Internet, je ne pourrai pas effectuer cet achat par ce moyen, pourtant commode. Or je ne puis avoir d'avance tous les programmes dont je pourrais avoir besoin, car il y a des millions de sociétés et d'organismes avec qui je suis susceptibles de travailler. Je ne peux pas, non plus, me faire envoyer au fur et à mesure, par chaque société dont les produits m'intéressent, des programmes certains de fonctionner sur mon PC.
La coopération entre applications qui n'ont pas prévu de coopérer lors de leur écriture a aujourd'hui une solution: l'échange de données en format standard XML.
XML est un langage informatique dérivé de SGML après un processus de simplification. Il a les avantages essentiels de SGML (description de structure et vocabulaire standard) tout en étant fort simple. On peut apprendre à lire un document XML en quelques heures.
La puissance descriptive de XML est considérable: il peut servir pour le stockage sur ordinateur puis la recherche de n'importe quel type d'ouvrage, fut-il gros, technique et illustré, de messages de courrier électronique, de programmes d'ordinateur, etc.
Deux programmes qui veulent coopérer peuvent aujourd'hui le faire de la manière suivante: ils vont s'échanger des messages (c'est à dire des documents, courts ou longs) en XML. C'est comme lorsqu'un Chinois veut travailler avec un Serbe à un projet commun: ils s'écriront en Anglais.
Le stockage et l'échange de documents en format XML sont indépendants de la mise en page de ces documents. En XML, un livre en format A4 (pages de 21 cm x 29,7 cm) ou en format A3 (29,7 cm x 42 cm) se représentent de la même façon. XML ne dit pas, non plus, si les titres doivent être en caractères gras ou italiques: ce langage est indépendant de la mise en page, il ne décrit que la structure et le vocabulaire, pas le côté visuel.
Cette indépendance est à la fois un avantage et un inconvénient. Avantage lorsqu'il permet à chacun d'adapter la mise en page d'un texte à ses besoins du moment; ainsi, par exemple, l'affichage sur écran s'adaptera à la taille de celui-ci. Inconvénient lorsque la mise en page aide à mieux comprendre ou à lire plus vite, et que celle imaginée par l'auteur est perdue dans le stockage ou la transmission du document.
On a donc imaginé un langage de mise en page universel: HTML. C'est le langage utilisé pour décrire les pages Internet. Tous les PC qui accèdent à l'Internet peuvent visualiser les pages que leur envoie le serveur auquel ils sont connectés, quelque soit leur marque ou la taille de leur écran. Et HTML est un cousin de XML: quand on connaît l'un on apprend l'autre assez vite. La solution HTML est donc complémentaire de la solution XML, à laquelle elle apporte la mise en page lorsque celle-ci est nécessaire.
HTML permet même la coopération entre programmes, lorsque celui de l'utilisateur est un simple programme d'affichage et saisie sur PC. Ce programme, appelé navigateur et disponible gratis, peut coopérer (par échange de pages HTML prêtes à afficher et de réponses de l'utilisateur) avec n'importe quel type de serveur de l'Internet, n'importe où. C'est un cas particulier simple de coopération entre programmes, où l'un des programmes est toujours le même, le navigateur.
Les possibilités apportées par XML - et HTML pour affichage dans un navigateur actuel - sont considérables et impacteront notre vie dans les années à venir.