Note de lecture : SGML Pratique, par Eric Van Herwijnen

Note : 6 ; Comprendre le précurseur de XML

SGML est le méta-format de documents utilisé par HTML. C’est aussi le point de départ de XML. Ce livre décrit par le menu cette normalisation de documents (car c’est bien de cela qu’il s’agit) promulguée par le DoD américain.

C’est un beau bébé que cet ouvrage, avec ses 270 pages sur 4 parties principales totalisant pas moins de 24 chapitres ! La 1ère partie s’intitule sobrement « pour commencer et regroupe les 6 premiers chapitres, soit près de 60 pages. La quinzaine de pages de l’introduction nous met au parfum de la nécessité de séparer la forme du fond, le tout illustré par Word, Tex et le programme CALs du DoD. C’est un excellent début. Plus court, le second chapitre nous dresse un bref historique sur les besoins en format d’échanges de document qui ont conduit à SGML. Là aussi, c’est bien écrit mais on reste un peu sur sa faim. Très court également, c’est-à-dire sur 5 pages, l’auteur nous présente les composants d’un système SGML, un chapitre qui aurait facilement pu être associé au suivant.

Au chapitre 4, c’est la DTD elle-même qui est décortiquée. Tout ou presque y passe : éléments, attributs, en-tête DOCTYPE. Bref, c’est du sérieux. Le chapitre 5 est anecdotique, et présente les caractéristique et la nécessité d’un éditeur SGML. Cette première partie se referme sur un chapitre 6 qui fait le tour des communautés et autres groupes de discussion autour du sujet. Une information qui ne pouvait pas tenir le poids des ans.

La seconde partie s’intitule « écrire une DTD » et compte 8 chapitres sur 80 pages. L’analyse du document est à l’affiche du chapitre 7. On y aborde la notion de classe de document et sa structure sous forme d’arbre. C’est assez sibyllin. Le chapitre 8 nous propose des diagrammes de structure, apparemment une notation assez officielle, mais que je n’ai jamais vue employée.

Les 4 chapitres suivants ont trait aux déclarations de la DTD. Les déclarations de balisage, abordées au chapitre 9 sont une particularité de SGML que l’on ne retrouvera pas dans XML. Elles ne sont pas non plus très faciles à comprendre et l’auteur aurait pu faire un meilleur boulot à cet égard. Fort logiquement, le chapitre 10 se focalise sur les déclarations d’éléments. Comme pour le chapitre précédent, on reste sur une description très austère, mais compréhensible toutefois. Les déclarations d’attributs font logiquement suite au chapitre 11, toujours dans la même veine « manuel de référence ». Le chapitre 12 aborde les déclarations d’entités et l’auteur y a fait d’avantage d’efforts pour rendre le concept plus abordable.

Les deux derniers chapitres abordent des aspects plus avancés. Tout d’abord c’est au référencement de DTD qu’il est question au chapitre 13. Je n’ai pas trouvé le propos très clair. Enfin le chapitre 14 prodigue des conseils de bonne écriture d’une DTD. C’est souvent du bon sens, mais on trouve aussi de judicieux conseils, comme par exemple le test de la DTD…

La 3ème partie évoque la personnalisation d’une DTD. Ce sont 6 chapitres qui couvriront cet aspect pour un peu moins de 80 pages. Derrière l’anodin titre « les déclarations SGML » se cache des aspects très avancés de SGML dans ce chapitre 12, comme le jeu de caractère, les délimiteurs ou les caractères de contrôle. Les explications ne sont pas évidentes, mais ce sont aussi des aspects qui ne sont que très rarement utilisés. Au chapitre 16 « les fonctionnalités de SGML », il s’agit de fonctionnalités encore plus rarement utilisées, telles que l’omission ou la minimisation. Je n’en dirais pas plus. Les notations abordées au chapitre 17 sont beaucoup plus intéressantes, car elles permettent d’embarquer des notations tierces comme Postscript, Tex ou de la notation musicale. Dommage que le chapitre soit si succinct, on est un peu frustrés.

Les sections marquées abordées au chapitre 18 sont certes utiles, mais ne méritent pas un chapitre à elles seules. Il en va de même pour les appels abrégés, certes utiles, même s’ils complexifient le SGML en en faisant un DSL… Limites d’enregistrement et ambiguïtés sont des aspects avancés. J’avoue avoir lâché prise et j’ai juste compris qu’il y avait 3 types d’ambiguïtés.

La 4ème partie aborde les applications particulières de SGML. Les 55 pages de cette dernière partie comptent 4 chapitres. C’est le protocole EDIFACT qui ouvre le bal au chapitre 21. C’est un protocole assez complexe et austère et le chapitre l’est aussi. L’auteur nous propose une grammaire dont la lecture nécessite quelque motivation. Ce sont les mathématiques qui sont au menu du chapitre 22. C’est un problème complexe que l’auteur esquive joyeusement en évoquant les notations P (visuelle) et S (sémantique) en survolant les notations existantes et en relevant leurs problèmes.
Le chapitre 23 traite des notations graphiques et plus précisément du kernel GKS. Il y a beaucoup de listing dans ce chapitre, mais finalement peu d’explications. Le livre se referme sur le chapitre 24 qui évoque d’autres normes telles que SDP, DSSL, etc. Les finalités de celles-ci ne sont pas toujours claires, sauf certainement dans la tête de l’auteur…

Les deux plus importantes parties de l’ouvrage concernent la description de la DTD d’une part et de la syntaxe SGML d’autre part. A l’heure d’XML, ce livre ne présente peut-être pas un grand intérêt. C’est néanmoins un « guide de l’utilisateur » assez complet sur le sujet, même s’il aurait peut-être rédigé de façon plus pédagogique.

SGML Pratique, par Eric Van Herwijnen

Référence complète : SGML Pratique – Eric Van Herwijnen – International Thomson Publishing 1995 (Kluwer Academic Publisher 1994) – ISBN: 2-84180-009-1

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.