La préoccupation fondamentale de l'EBSI (comme celle de la plupart des écoles de sciences de l'information dans le monde) est la conception et la mise en place de systèmes efficients de transfert d'information documentaire dans la société. Qu'est-ce que l'"information documentaire"? En deux mots, c'est toute information publique possédant une valeur importante pour la société. Cette valeur peut être, entre autres, légale, une valeur de référence, une valeur de témoignage ou une valeur historique. À cause de sa valeur, l'information documentaire mérite d'être rendue accessible au public et conservée.
Évidemment, le changement le plus important ayant affecté la forme que prend cette préoccupation depuis 1960 est le recours de plus en plus grand aux technologies pour la production et le traitement de l'information documentaire. Les bibliothécaires et les autres professionnels de l'information doivent maintenant mettre en place des systèmes capables de traiter, diffuser et conserver l'information documentaire sous forme électronique. Or, l'information sous forme électronique ne répond pas a priori aux besoins d'accessibilité, de diffusion et de conservation qui caractérisent l'information documentaire dans la société. Une attention particulière doit donc être prêtée à ces conditions dans les systèmes de transfert d'information documentaire.
C'est ici que SGML présente un attrait particulier. SGML est en effet une des premières technologies, sinon la première, qui puissent, lorsque utilisées à bon escient, conférer àl'information documentaire électronique les qualités requises pour en assurer l'accessibilité, la diffusion et la conservation efficiente dans la société. Depuis 1991, l'EBSI s'intéresse donc activement à SGML, à son potentiel pour les systèmes d'information documentaire et aux moyens de le mettre en oeuvre.
Dans cet article, nous voulons exposer la nature de SGML, en justifier l'existence et expliquer pourquoi aujourd'hui, plus que jamais, il est possible de tirer profit de son potentiel en basant les systèmes d'information documentaire sur cette norme de représentation de l'information électronique. L'exposé, plutôt théorique, se veut tel. Nous voulons démontrer que SGML n'est ni un engouement passager de l'industrie, ni un format propriétaire parmi tant d'autres qu'une poignée de producteurs s'efforce de promouvoir, mais bien une technologie robuste et générale, qui s'appuie sur des fondements théoriques solides et peut offrir aux concepteurs de systèmes d'information la même indépendance des données pour l'information documentaire que le modèle relationnel, par exemple, offre pour les bases de données traditionnelles.
Le but de l'article n'est pas de présenter SGML en détail. Nous ne couvrons pas non plus son histoire ni l'utilisation qui en est faite dans le monde. Le lecteur intéressé par ces sujets pourra consulter les ouvrages mentionnés dans la bibliographie.
Comme tout langage informatique, SGML possède sa syntaxe et sa sémantique. Celles et ceux qui connaissent la programmation ne se sentent pas dépaysés devant la syntaxe de SGML. Évidemment, il s'agit d'un langage descriptif et non procédural; il ne faut donc pas y chercher le style impératif. SGML pourrait être décrit comme un langage de définition de constantes, les constantes définies étant les documents que l'on désire traiter, échanger, conserver. La sémantique de SGML en est une de documents hiérarchiques, structurés en arborescences. La Figure 1 présente un exemple (très simple) de document hiérarchique tel qu'on peut en définir en SGML. Il s'agit d'un mémo comme il en circule tous les jours dans les entreprises. La Figure 2 montre quelle pourrait être l'expression syntaxique de ce même document en SGML.
- Un mémo vu comme document hiérarchique
<mémo>
<auteur> Julia Royer </auteur>
<dest>
<nom> Jean Picard </nom>
<nom> Émilie Dugré </nom>
</dest>
<sujet> Invitation </sujet>
<corps>
<par> Veuillez noter que ... le 27 septembre 1996. </par>
<par> SVP, avisez-moi ... dans les plus brefs délais. </par>
</corps>
</mémo>Figure - Texte SGML du document de la Figure 1
La syntaxe de SGML est basée sur l'ASCII (American Standard Code for Information Interchange) et est donc directement lisible à l'oeil[2] Elle ne comporte aucuns "codes" spéciaux qui ne peuvent être affichés ou imprimés directement.
Il est à noter que SGML permet seulement d'exprimer la structure du document; il ne permet l'expression d'aucun traitement, transformation ou opération à effectuer sur ce document, pas même le formatage sur papier. Cette caractéristique, qui peut à première vue sembler une restriction ou même un handicap, est en fait un puissant avantage de SGML, sur lequel nous reviendrons plus tard.
Notons finalement que la syntaxe plutôt rébarbative de SGML (qui ne l'est cependant pas plus que celle de tout autre langage informatique) n'est pas nécessairement visible aux utilisateurs. En effet, il est tout à fait possible de mettre au point une chaîne de traitement de documents basée sur SGML sans que les utilisateurs, et à la limite même les auteurs, ne soient conscients du format dans lequel les documents sont stockés (tout comme le format HTML passe inaperçu dans la grande majorité des utilisations du World Wide Web).
- Format propriétaire secret: format défini par un producteur d'équipement ou de logiciel spécifique et reconnu par lui seul, les spécifications du format n'étant pas publiées. Le logiciel ou l'équipement du producteur original doit être utilisé pour accéder au document. Sous la pression des utilisateurs, ce genre de formats tend à disparaître.
- Format propriétaire public: format défini par un producteur spécifique, mais dont les spécifications sont disponibles publiquement. D'autres producteurs peuvent donc développer des passerelles d'importation/exportation vers ce format, s'ils le désirent. Ex.: RTF, WordPerfect.
- Norme de facto: format propriétaire public devenu très populaire et reconnu par un grand nombre de producteurs. Ex.: GIF (format d'images), WordPerfect.
- Norme officielle: norme définie et adoptée par une instance officielle de normalisation. Les instances de normalisation incluent certains organismes ou consortiums sans but lucratif, diverses associations nationales ou internationales et finalement des organisations nationales ou internationales s'occupant exclusivement de normalisation. Ex.: SGML, ODA.
L'ISO (International Organization for Standardization ou Organisation internationale de normalisation), dont le siège social est situé à Genève, en Suisse, est une instance officielle de normalisation, probablement la plus importante au monde. En particulier, les accords du GATT (General Agreement on Trade and Tariffs) reconnaissent la prépondérance des normes ISO sur les autres. SGML est une norme ISO: la norme ISO 8879, adoptée par l'ISO en 1986. Il s'agit donc d'une norme internationale de tout premier plan.
La normalisation est la base même des systèmes ouverts. Un système ouvert est un système informatique dont les spécifications d'entrée-sortie sont non seulement publiques, mais reposent sur des normes établies. Dans leur incarnation la plus pure, les systèmes ouverts peuvent facilement être agencés de façon à constituer des chaînes de traitement indépendantes de matériel, plate-formes ou logiciels spécifiques et dont les maillons sont également indépendants l'un de l'autre. Le respect de normes assure une plus grande interopérabilité des systèmes, laquelle permet de rentabiliser les investissements des utilisateurs en matériel et logiciels.
L'ampleur des bénéfices de la normalisation dépend évidemment du degré d'acceptation des normes utilisées. Le fait qu'une norme soit reconnue par une instance officielle assure qu'elle est fonctionnelle et qu'elle a fait l'objet de discussions sérieuses. À ce chapitre, SGML jouit de la plus haute crédibilité possible, étant une norme de l'ISO. Mais le statut de norme officielle n'est pas en soi garant de la valeur d'une norme. En pratique, c'est beaucoup plus le nombre de produits et systèmes utilisant cette norme qui en détermine la valeur. Sur ce plan, SGML est maintenant une norme très utilisée et pour laquelle il existe un grand nombre (toujours grandissant) de produits disponibles sur le marché.
Il faut cependant noter que, dans le cas d'un format de documents électroniques, le fait d'être reconnu par une instance officielle de normalisation représente une valeur additionnelle: celle d'augmenter le potentiel de pérennité des documents. En effet, un format non normalisé, même extrêmement populaire, peut finir par disparaître sous l'effet d'avancements technologiques ou de mouvements de marché. Alors, les documents stockés doivent être convertis en un autre format "équivalent", faute de quoi ils deviendraient tout simplement illisibles. Un format normalisé, surtout s'il est largement utilisé, n'a qu'une très faible probabilité d'être victime d'une telle disparition.
Le balisage consiste à insérer dans un document électronique de courtes chaînes de caractères, appelées balises, qui indiquent soit le début, soit la fin d'une partie du document que l'on désire rendre identifiable. Dans la syntaxe concrète de référence de SGML, les balises d'ouverture (début) sont de la forme <id-gén> et celles de fermeture (fin) </id-gén>. Les noms que l'on retrouve à l'intérieur des balises s'appellent des identificateurs génériques et leur rôle est en quelque sorte d'identifier le "type" d'information que l'on retrouve entre la paire de balise. Notons qu'en général, une balise d'ouverture peut contenir certains éléments d'information en plus d'un identificateur générique (en particulier, des attributs).
Il est à noter qu'un utilisateur n'aura pratiquement jamais à taper explicitement les balises SGML dans un document. En effet, il existe des éditeurs SGML qui permettent d'insérer automatiquement les balises (par sélection dans un menu) et qui ne permettent d'ailleurs à tout point du document que l'insertion des balises valides à ce point. Il faut aussi mentionner que SGML permet l'omission ou l'abréviation des balises, lorsque le contexte le permet (par exemple, lorsqu'un seul type de balise est permis à un certain point du document).
Comme on veut pouvoir représenter n'importe quel document en SGML, faut-il que la norme prévoie tous les types d'information pouvant se retrouver dans tous les types de documents? Cela est évidemment impossible, puisqu'on pourra toujours inventer de nouveaux types de documents et d'information.
La solution est qu'en fait, SGML est un "méta-langage", qui permet de définir les jeux de balises que l'on désire utiliser, de même que les règles syntaxiques d'utilisation de ces balises[3]. C'est cette caractéristique de SGML qui en fait un langage de "balisage généralisé".
En SGML, la définition d'un jeu de balises et des règles syntaxiques associées s'appelle une DTD, pour Document Type Definition. Le langage dans lequel on exprime les DTD fait partie intégrante de SGML et il utilise lui aussi le balisage (mais d'une forme particulière). L'apparence d'une DTD est donc très similaire à celle d'un document SGML. Tout document SGML possède un prologue (possiblement implicite, mais néanmoins existant) dans lequel la DTD à laquelle il se conforme est identifiée. La DTD peut être directement incluse dans le prologue, ou elle peut simplement y être nommée. (Notez que le prologue du document n'est pas montré dans la Figure 2.) À titre d'illustration seulement, la Figure 3 présente un prologue incluant une DTD qui pourrait être utilisée pour des documents de type mémo et à laquelle le document de la Figure 2 est conforme.
<!DOCTYPE mémo [
<!ELEMENT mémo - -
((auteur & (date?) & sujet & dest & (cc?)), corps)>
<!ELEMENT (dest | cc) - - (nom+)>
<!ELEMENT corps - - (par*)>
<!ELEMENT (auteur | date | sujet | nom | par) - - (#PCDATA)>
]>Figure - Un prologue incluant une DTD pour les mémos
Un autre exemple de balisage primitif est l'emploi de "séquences d'échappement" pour contrôler certaines imprimantes: le caractère d'échappement (ESC ou "escape") peut être vu comme une balise d'ouverture et le délimiteur de fin de séquence (en général, le retour de chariot) comme une balise de fermeture. La signification de cette paire de balises est qu'il faut interpréter les caractères médians non pas comme des caractères à imprimer, mais comme une commande de contrôle dans un certain langage propre à l'imprimante utilisée. À un niveau plus élevé, certaines des séquences d'échappement peuvent elles-mêmes être vues comme des balises, servant par exemple à délimiter les portions de texte devant être imprimées en italique, en gras, etc.
Ces exemples illustrent ce qu'on appelle le balisage orienté-matériel, dans lequel la forme et la signification des balises sont dictées par l'équipement utilisé.
Les codes de formatage (gras, italique, etc.) utilisés par les logiciels de traitement de texte courants sont des exemples de balisage générique. Ces codes sont produits et gérés par le logiciel de traitement de texte utilisé et ce sont eux qui sont stockés dans les documents. Le moment venu d'imprimer un document, un pilote approprié (fourni avec le logiciel de traitement de texte ou l'imprimante) traduit les codes en instructions spécifiques à l'imprimante utilisée.
Le balisage générique constitue une amélioration par rapport au balisage orienté-matériel, mais il entraîne encore certains problèmes dans la production de documents. Pour illustrer ces problèmes, supposons que l'on ait préparé à l'aide d'un logiciel de traitement de texte une série de manuels techniques et que l'on désire modifier le style de présentation des titres (taille et position).
Comme les instructions de formatage sont stockées dans les documents eux-mêmes (sous forme de balises génériques), il n'y a évidemment pas d'autre solution que de modifier chacun des documents. Cette perspective n'est déjà pas très réjouissante, mais le véritable problème, c'est que pour modifier le formatage des titres, il faut d'abord repérer ces titres dans les documents. Si les titres se distinguent par un formatage caractéristique qui leur est exclusif (e.g., centré et en gras), alors ce repérage pourra être fait automatiquement (avec beaucoup de programmation). Si cependant les titres n'ont pas de formatage distinctif, ou encore si la saisie des documents n'a pas été parfaitement systématique, alors le repérage devra se faire manuellement, ce qui représente un travail considérable.
Un problème additionnel survient si l'on désire continuer à produire les manuels dans l'ancien style. On devra alors dupliquer les documents sources, ce qui entraînera des problèmes de cohérence lors des mises-à-jour.
Le postulat de base du balisage descriptif est qu'un document est le mieux décrit non pas en fonction des opérations que l'on peut effectuer sur lui, mais en fonction de sa structure intrinsèque. Avec le balisage descriptif, des balises identifient tous les éléments structurels d'un document et associent un type à chacun d'eux. Rien dans le balisage n'indique directement comment les éléments structurels doivent être formatés, ou autrement traités; ce sont les applications (logiciels) de traitement des documents qui déterminent comment elles agissent sur chaque type d'éléments structurels.
Un autre bienfait de cette factorisation du travail est que la spécification du contenu des documents et celle de leur traitement n'ont pas besoin d'être faites en même temps. En particulier, on peut saisir et stocker des documents avant même d'avoir développé une application pour les traiter. Également, il est tout à fait possible de développer de nouvelles applications pour traiter des documents existants, sans avoir à modifier ces derniers de quelque façon que ce soit.
Le balisage descriptif facilite également l'indexation automatique ou assistée par ordinateur des documents, de même que la recherche d'information dans ceux-ci, puisqu'on peut savoir dans quel élément structurel (titre, légende, citation, note de bas de page, etc.) chaque mot du texte survient.
En deux mots: SGML apporte d'une part la normalisation et, d'autre part, la robustesse du balisage généralisé. Nous avons parlé déjà des avantages de la normalisation. Le balisage généralisé, par la possibilité qu'il offre de définir des règles d'utilisation des balises, permet au concepteur d'un système de traitement de documents de s'assurer que le balisage soit toujours utilisé de façon cohérente. Il permet donc la validation de la structure des documents à la source, dès leur création. Dans le détail, évidemment, SGML offre de nombreuses autres possibilités qui le rendent particulièrement attrayant pour les sytèmes de traitement de documents. Ce sujet déborde cependant le cadre de cet article.
Cependant, cette popularité s'explique et les explications font ressortir l'importance de certaines caractéristiques de SGML par rapport à ODA. Nous proposons donc ci-dessous quelques facteurs pouvant expliquer le plus grand succès de SGML. Auparavant, cependant, nous présentons les deux autres formats de balisage descriptif généralisé reconnus par l'ISO: HyTime et ODA.
Le seul autre format de balisage descriptif généralisé reconnu par l'ISO est ODA.[4] ODA signifie Office Document Architecture. ODA est la norme ISO 8613, adoptée par l'ISO en 1989. ODA offre sur bien des aspects des possibilités semblables à celles de SGML, en particulier, il permet de réaliser l'équivalent du balisage descriptif. Potentiellement, donc, ODA offre une alternative à SGML.
Or, si pendant un certain temps, on a cru qu'ODA était un compétiteur sérieux de SGML, il semble qu'ODA ait eu beaucoup de difficulté à se faire des adeptes et on ne le considère plus à l'heure actuelle comme une menace véritable pour SGML (même s'il n'est pas exclus qu'ODA trouve un jour son créneau). Cette état de choses s'explique sûrement par une combinaison de facteurs dont certains sont techniques, d'autres politiques et d'autres enfin circonstanciels. Quelques-uns de ces facteurs nous semblent dignes d'attention.
Le programme CALS touche non seulement les fournisseurs directs du département de la défense, mais également tous les sous-contractants. Un vaste mouvement de mobilisation a donc animé un large segment de l'industrie américaine, mouvement qui s'est propagé ensuite vers l'Europe et le Canada. Par l'entremise de CALS, SGML a donc joui d'une visibilité et d'un élan de promotion considérables.
Il est clair aussi que le fait que SGML soit lisible à l'oeil (alors qu'ODA ne l'est pas) peut avoir contribué à son succès. En effet, il est beaucoup moins inquiétant de travailler avec des documents électroniques lisibles directement lorsqu'on est habitué de travailler avec des documents papier; le choc culturel est moins grand. Or, les maisons d'édition ont été parmi les premiers utilisateurs de SGML et celles-ci sont habituées au papier. Il ne faut donc pas sous-estimer l'importance de la lisibilité directe de SGML dans ses premiers succès.
Selon nous, cependant, le plus important facteur qui puisse expliquer le succès de SGML par rapport à ODA est le fait qu'il n'inclut aucune normalisation des directives de formatage. ODA est différent sur ce point, car il permet d'inclure dans les documents des directives normalisées de formatage, en plus du balisage descriptif. Cette caractéristique est certainement justifiée par les objectifs de conception d'ODA, mais le prix à payer est que toutes les fonctionnalités de formatage possibles doivent théoriquement être normalisées, ce qui n'est pas une mince tâche. Dans les faits, on a procédé par étapes, introduisant progressivement de nouvelles fonctionnalités dans la norme (qui n'a d'ailleurs toujours pas atteint sa forme finale). Ce "démarrage lent" a possiblement eu un effet dissuasif sur les adeptes potentiels, du fait qu'on leur demandait de sacrifier certaines fonctionnalités sur lesquelles ils en étaient venus à compter.
SGML, de son côté, n'a pas eu à attendre la normalisation des directives de formatage et était donc prêt à prendre son envol dès que les utilisateurs ont commencé à exprimer leurs besoins. Ironiquement, un projet de norme ISO pour les fonctionnalités de formatage a récemment franchi avec succès la dernière étape avant l'adoption comme norme internationale. Il s'agit de DSSSL, pour Document Style Semantics and Specification Language. Longtemps attendu, DSSSL représente le complément parfait à SGML pour les concepteurs de systèmes de traitement de documents qui désirent utiliser une spécification normalisée du formatage des documents. Cependant, comme DSSSL et SGML sont deux normes distinctes, cette attente n'a pas freiné l'essor de SGML.
Un autre "coût" pour une organisation qui adopte SGML est la transformation qu'il amène dans l'organisation du travail. Nous avons déjà parlé de la factorisation du travail entre les auteurs d'une part et les typographes et les informaticiens d'autre part. Un autre aspect est la contrainte que représente pour les auteurs l'utilisation d'une DTD. Ils ne sont plus entièrement rois et maîtres dans le processus de rédaction, la structure de leur création doit respecter certaines règles. Pire encore, peut-être, ils ne contrôlent plus complètement l'apparence de leurs documents une fois formatés. Si l'on choisit un scénario dans lequel les documents sont convertis d'un format de traitement de texte vers SGML, alors le "coût" de ce choc culturel est remplacé par celui de la conversion des documents qui peut parfois être ardue.
À cause du rôle primordial joué par les DTD dans un système de traitement de documents SGML, la conception de celles-ci doit faire l'objet d'un travail d'analyse documentaire minutieux, souvent confié à des consultants externes. Ce travail représente encore un coût additionnel relié à l'adoption de SGML.
Étant donné les coûts reliés à son adoption, SGML a toujours été une technologie que l'on adopte "par nécessité", lorsque la valeur de l'information à traiter est suffisamment grande pour que les bénéfices retirés de son accessibilité universelle et de sa préservation justifient les coûts de mise en place du système et les changements dans l'organisation du travail qu'entraîne le passage à SGML.
Selon nous, ce facteur de nécessité demeurera toujours. Néanmoins, compte tenu de la diminution du coût des outils SGML disponibles sur le marché, il nous semble que le "seuil de nécessité" justifiant le passage à SGML a atteint aujourd'hui un niveau suffisamment bas pour que toute organisation dont la mission inclut une part de transfert d'information documentaire le considère très sérieusement.
Évidemment, il y a plusieurs facettes importantes de SGML que nous n'avons pu aborder, par exemple le traitement des contenus non-textuels et des jeux de caractères nationaux, la notion de sous-documents et le balisage parallèle suivant plusieurs DTD. Nous espérons tout de même avoir réussi à transmettre au lecteur un aperçu des principes sous-jacents à SGML et de sa "philosophie".
Même si l'utilisation faite de SGML dans le monde n'est pas un sujet de cet article, nous voudrions terminer en mentionnant deux faits, choisis tout à fait arbitrairement, qui illustrent chacun à sa façon la popularité de SGML. Le premier, c'est que SGML a été retenu comme format de documents pour le système de publication électronique de l'ACM, la plus grande association professionnelle en informatique au monde et un important éditeur dans le domaine, avec un volume de publication atteignant 40 000 pages par année, incluant des livres, des périodiques et des actes de conférence. Le second fait, c'est que depuis quelques mois, le magazine de micro-informatique BYTE demande à ses lecteurs de lui faire parvenir leurs commentaires par courrier électronique, en respectant un bordereau dont les intitulés de champ ne sont rien d'autres que... des balises SGML!
Mentionnons finalement que la firme torontoise SoftQuad a récemment mis sur le marché le logiciel Panorama, un baladeur du World Wide Web (WWW) capable de traiter directement les documents SGML. Ceux-ci sont maintenant publiables sur le WWW directement, sans devoir être convertis d'abord en HTML. Doit-on voir dans cette accession à un phénomène aussi "grand public" que le WWW un signe que SGML est une idée dont l'heure de gloire est arrivée?
CAMPBELL-GRANT, I.R., "Introducing ODA." Computer Standards & Interfaces, 11:149-157, 1991.
DANISH STANDARDS ASSOCIATION. SGML - ODA: présentation des concepts et comparaison fonctionnelle. Paris: AFNOR, 1991.
DeROSE, S.J. et DURAND, D.G., Making hypermedia work. A user's guide to HyTime. Boston: Kluwer Academic Publishers, 1994, 384 p.
GOLDFARB, C.F., The SGML Handbook. New York: Oxford University Press, 1991.
MARCOUX, Y., "Les formats normalisés de documents électroniques." ICO Québec, 6, 1 & 2 (printemps 1994), pp. 56-65.
MARCOUX, Y., "Les formats de documents électroniques en archivistique: la solution au problème des archives électroniques passe-t-elle obligatoirement par les formats normalisés de documents structurés?" Archives, Vol. 26, nos 1 et 2, été-automne 1994, pp. 85-100.
ROLE, F., "La norme SGML: pour décrire la structure logique des documents." Documentaliste-Sciences de l'information, 28(4-5):187-192, 1991.
<TAG> Bulletin d'information sur SGML publié par la Graphic Communications Association.
Van HERWIJNEN, E., Practical SGML. Norwell, MA: Kluwer Academic Publishers, 1990.
WRIGHT, H., "SGML frees information." Byte, 17(6):279-286, 1992.
Il existe également un groupe de discussion Internet sur SGML
(comp.text.sgml) ainsi qu'une page WWW
(http://www.sil.org/
sgml/sgml.html).