Les langages formels du Web
À la fin des années 80, le chercheur Tim Berners-Lee constate que les scientifiques du monde entier réunis au cern (centre européen de recherche nucléaire) de Lausanne dans un même bâtiment ne se rencontrent pas assez et n’échangent pas les résultats de leurs travaux. Dans son livre Tisser la toile, la conception originale et la destinée ultime du World Wide Web, Tim Berners-Lee décrit ces moments de solitude auxquels il essaye d’échapper en installant un petit bureau à des intersections de couloirs. Il cherche à établir des recoupements d’informations par un dispositif spatial, qui nous intéresse en tant qu’il lie intimement architecture et information, position dans l’espace et disposition d’esprit. La mise en place du Web procède d’abord d’une question pratique à résoudre : comment partager les capacités techniques des rares calculateurs de l’époque ? Le Web ne s’invente que lorsque les ingénieurs vont entrevoir l’idée que cette passerelle de calcul entre machines pourrait devenir un réseau de communication. Étant donné la grande diversité des machines, il était impossible de tout renouveler. Le cahier des charges consista alors à inventer un moyen de faire communiquer des machines qui ne parlent pas le même langage et qu’on ne souhaite pas reprogrammer : faire un protocole réseau neutre, indépendant des langages formels propres aux machines. La légende dira que le développement d’arpanet en pleine Guerre froide par la darpa (Defense Advanced Research Projects Agency) visait à développer un système décentralisé, conçu pour résister à une attaque atomique. L’histoire détaillée de cette période remet cependant en cause ce mythe :
C’est du rand (projet de l’Air Force) que provient la fausse rumeur proclamant que arpanet a quelque chose à voir avec la construction d’un réseau résistant à une attaque nucléaire. Cela n’a a jamais été vrai de l’arpanet, mais seulement d’une étude du projet (autonome66) rand relative à la mise au point d’une communication sécurisée dans le cadre d’une guerre nucléaire. Cependant, la mise au point ultérieure de l’Internet soulignera sa robustesse et sa très grande solidité, incluant sa capacité à résister à la perte de nombreuses sous-parties du réseau67.
Le mythe selon lequel arpanet a été conçu pour résister à une attaque nucléaire reste cependant tenace et séduisant, et est bien sûr une « belle histoire » que beaucoup de gens refusent d’abandonner68.
En 1969, le réseau Arpanet relie plusieurs universités de l’Ouest américain69. Le 1er janvier 1983 marque communément l’apparition d’Internet, pour interconnected networks (réseaux interconnectés). En 1990, le réseau s’étend à d’autre pays pour devenir une gigantesque source de données (articles, images, messages, etc.). L’apport de Tim Berners-Lee se joue dans la combinaison de technologies existantes : l’Arpanet déjà utilisé au cern le principe de l’hypertexte, les protocoles de transmission tcp et dns, etc.
Je n’ai fait que prendre le principe d’hypertexte et le relier au principe du tcp [le protocole de contrôle de transmission] et du dns [le système de noms de domaine] et alors – boum ! – ce fut le World Wide Web70 !
C’est l’ensemble de ces techniques qui forment le Web, que l’on confond trop souvent avec l’Internet71. Ce qui va assurer son succès, c’est la mise au point d’un « langage » informatique simple et structuré, destiné à l’origine à publier et partager des documents scientifiques. Le html (littéralement « langage de balisage d’hypertexte ») réalise la mise en relation de différents documents, communément appelés « pages Web ». Le html s’invente ainsi autour de l’idée de rassembler des informations éparses et multilingues, en mettant en place un protocole commun de publication de documents scientifiques, suivant en cela les intuitions de Vannevar Bush. Ce système de publication structurée va rapidement se répandre en raison de sa facilité d’accès et de sa proximité avec la langue anglaise (par exemple, la balise ‹b›
permet de mettre un texte en gras). Plus encore, et de façon décisive, il y a l’idée de définir des « standards » qui seraient indépendants de toute emprise commerciale. Normé et évolutif, le html ne doit pas être fermé par des brevets ou des typologies de machines.
Cette recherche d’une éthique pour maintenir et respecter le caractère ouvert et universel du standard html se poursuit dans les tensions entre les « langages » de programmation « ouverts » et « propriétaires », ainsi que dans les modes d’accès aux pages html par les « navigateurs Web72 ». À ce titre, il est intéressant de faire retour sur ce qui se joue dans le mot « langage ». Peut-on dire qu’un standard de programmation constitue un langage ? Pris au sens large, un langage est un système de signes composé d’un vocabulaire et d’une syntaxe. Or, en informatique, ce qu’on appelle communément « langage » permet de marquer un texte avec des annotations conventionnées. Dès lors, il s’agit davantage d’un système logique, d’un « langage formel » plutôt que d’un langage au sens fort — les notions d’ambiguïté, de doute, d’incompréhension, n’y ayant pas leur place. Par exemple, les « balises » html sont notées dans le même jeu de caractères que le texte signifiant. Elles sont reconnues par une syntaxe codifiée, qui permet d’identifier les limites du marquage. Ces caractères d’entrée et de sortie sont principalement ‹
, ›
, &
, et ’
.
Les marqueurs des balises ‹ et › permettent de distinguer ce qui est du ressort du fond (le texte) de ce qui relève de la mise en forme (les propriétés des balises). Ces marqueurs permettent au programme de lecture « d’exécuter » des opérations sur le texte pris entre ces balises. Le programme qui sert à ouvrir les « pages web » va donc jouer le rôle de premier lecteur, un lecteur absolu, imparable et mécanique. Le texte est parcouru de façon séquentielle, de gauche à droite et de bas en haut. Le lecteur humain ne peut lire la page web qu’à travers cet intermédiaire, la lecture sur le Web n’existe qu’appareillée. En étudiant les différentes « spécifications » du html, on pourra observer comment se déplace la volonté initiale de structurer et mettre en forme de données vers l’identification d’unités signifiantes.
[Spécifications html de 1992] Le système www [World Wide Web] utilise du texte balisé pour constituer un document hypertextuel transmissible dans le réseau. […]. Les parseurs www devraient ignorer les marqueurs qu’ils ne comprendraient pas, et ignorer les attributs inconnus de marqueurs connus73.
[Spécifications html 1.0 de 1995] Texte structuré : Une instance html est comme un fichier texte, excepté que certains de ses caractères sont interprétables comme des balises. Le balisage constitue la structure du document. L’instance représente la hiérarchie des éléments. Chaque élément possède un nom, quelques attributs et un contenu. La plupart des éléments sont représentés dans le document par un marqueur de début qui donne le nom et les attributs, suit ensuite le contenu, puis le marqueur de fin74.
[Spécification html 5, version de travail du 25 mai 2011] Le langage de balisage du World Wide Web a toujours été le html. html a été originellement conçu comme un langage pour décrire sémantiquement des documents scientifiques, bien que sa conception générale et ses adaptations au fil des ans lui ont permis d’être utilisé pour décrire de nombreux autres types de documents75.
Dès les débuts du html, une contradiction (encore d’actualité) se fait jour entre un Web « sémantique », dont les balises sont structurées en fonction du contenu du texte, et un Web de « mise en forme », dont les balises sont uniquement là pour modifier l’apparence du texte. Les spécifications du html opèrent ainsi une séparation entre « physical styles » et « logical styles76 ». Les balises de « mise en forme » contrôlent comment les caractères apparaissent à l’écran. Les plus connues sont ‹b›
(gras), ‹i›
(italique), ‹u›
(soulignement), etc. Par exemple, la visualisation à l’écran d’un texte en gras confond visuellement ce mot avec sa mise en forme. On ne voit pas les balises, mais juste le résultat de leur exécution. Il faut visualiser le code source pour accéder à la séparation du contenu et de sa mise en forme, comme dans le code source ‹b›
ces mots sont en gras‹/b›
. Une balise « sémantique » décrit comment le texte doit être utilisé, et pas nécessairement comment il sera mis en forme à l’écran. Les plus connues sont ‹code›
(code source Web), ‹cite›
(citation), ‹dfn›
(définition), ‹em›
, texte mis en avant, etc.
Pour autant, certaines balises classées habituellement dans la catégorie « logique » (« logical styles ») sont ambiguës, par exemple ‹strong›
qui sert à désigner une portion de texte plus importante a bien un caractère sémantique (tout comme la balise ‹em›
). Dès la première version du html, les documents sont divisés en titres (‹title›
), sous-titres (‹h1›
, ‹h2›
, ‹h3›
), paragraphes (‹p›
), listes (‹li›
), etc. Ces marqueurs structurants sont à la frontière de mise en forme et de la description de contenu. Comme l’indique Tim Berners-Lee, « une instance [html] représente une hiérarchie d’éléments. Chaque élément a un nom, quelques attributs, et quelque contenu77 ». Le fait que le html ait été originellement conçu pour décrire des documents scientifiques explique la volonté de chercher à diviser, structurer, etc., c’est-à-dire de chercher à rendre scientifiquement logique tout type de contenu. Nous entendons par « scientifique » le fait d’utiliser des modes de présentation normés, faisant consensus. On reste dans la typologie classique d’un texte identifié et identifiable, titré, normé, avec la volonté de conformer tous les types de contenu (même les non scientifiques) à ces spécifications. Sans ces normes, le texte ne sera pas parfaitement lisible par les machines (lire revient ici à « exécuter » tous les contenus des balises).
Au fil des versions successives du html, certains utilisateurs vont réclamer davantage de balises pour augmenter les possibilités de mise en forme, tandis que d’autres vont chercher à structurer davantage les documents afin de les rendre toujours plus transparents pour les « robots » de lecture (navigateurs web, moteurs de recherche, etc.). L’ambition initiale de structurer logiquement les textes se heurte à la nécessité de reprendre visuellement des aspects hérités des supports imprimés, tels que l’italique, le gras, le soulignement, etc., qui sont des façons de hiérarchiser visuellement un texte. Cette filiation introduit l’ambiguïté d’un signe visuel (« physical style ») qui ne serait pas porteur de sens (« semantic style »). Il nous faudra donc questionner cette distinction : jusqu’où est-elle tenable et pertinente ? Par exemple, le « code source » (marqué par la balise ‹code›
) est retranscrit visuellement par le navigateur Web en police de caractères type Courrier (dite à « chasse fixe », c’est-à-dire que chaque caractère possède la même largeur). Dans les paramètres « par défaut » des navigateurs Web, il y a une incidence immédiate entre la logique choisie pour structurer le texte et sa transcription visuelle. Pour qu’un titre nous apparaisse comme un titre, il faut qu’il soit différencié visuellement. Il y a un rapport direct entre la hiérarchisation des informations pensées pour leur «indexation» par des robots de lecture et leur disposition visuelle sur écran. Dès lors, en quoi et pourquoi serions-nous autorisés à parler de séparation entre un contenu et sa mise en forme ?
-
66
Internet Society, « Brief History of the Internet » [pdf], 2012, p. 2 : « The rand group had written a paper on packet switching networks for secure voice in the military in 1964. It happened that the work at mit (1961-1967), at rand (1962-1965), and at npl (1964-1967) had all proceeded in parallel without any of the researchers knowing about the other work. » ↩
-
67
Ibid., p. 15-16 : « It was from the rand study that the false rumor started claiming that the arpanet was somehow related to building a network resistant to nuclear war. » ↩
-
68
Fact Index : « The myth that arpanet was built to withstand nuclear attacks however remains such a strong and apparently appealing idea and of course ‹ a good story › that many people refuse to believe it is not true. » ↩
-
69
Des sociétés telles que ibm ou aol fournissent l’accès aux données et aux boites mail. Les premiers tests techniques sont réalisés au sein du gouvernement et d’universités américaines. Les rapports étroits entre politique, armée et institutions académiques dirigent encore aujourd’hui notre perception du réseau. ↩
-
70
T. Berners-Lee, cité par Olivier Perrin dans : « Le Web libre et ouvert fête ses 20 ans », Le Temps, 1er mai 2013. ↩
-
71
Internet regroupe le Web, le mail, les listes de diffusion, le chat, la vidéo, le système dns (pour attribuer des identifiants aux machines), les vpn (pour relier des réseaux informatique privés entre eux), etc. ↩
-
72
Croisant le meilleur de la recherche libre et le succès boursier du Nasdaq, le navigateur Web Netscape souffrira davantage de son rachat par aol que de la concurrence de Internet Explorer, lancé par Microsoft. Les « anciens » de Netscape qui fondèrent le projet Mozilla avaient donc comme dessein de poursuivre la recherche d’un Web pleinement « ouvert ». ↩
-
73
W3C, « The first version of html » [1992], janvier 2009 : « html: The www system uses marked-up text to represent a hypertext document for transmision over the network. The hypertext mark-up language is an sgml format. www parsers should ignore tags which they do not understand, and ignore attributes which they do not understand of tags which they do understand. » ↩
-
74
W3C, « Structured text. html Markup », 1995 : « Structured Text: An html instance is like a text file, except that some of the characters are interpreted as markup.The markup gives structure to the document. The instance represents a hierarchy of elements. Each element has a name, some attributes, and some content. Most elements are represented in the document as a start tag, which gives the name and attributes, followed by the content, followed by the end tag. » ↩
-
75
W3C, html5. A vocabulary and associated apis for html and xhtml », décembre 2012 : « The World Wide Web’s markup language has always been html. html was primarily designed as a language for semantically describing scientific documents, although its general design and adaptations over the years have enabled it to be used to describe a number of other types of documents. » ↩
-
76
T. Berners-Lee, D. Connolly, « Hypertext Markup Language (html). A Representation of Textual Information and Meta Information for Retrieval and Interchange », W3C, juin 1993. Traduction de l’auteur. ↩
-
77
T. Berners-Lee, ibid. : « Structured Text. An html instance is like a text file, except that some of the characters are interpreted as markup. The markup gives structure to the document. The instance represents a hierarchy of elements. Each element has a name, some attributes, and some content. » ↩