Introduzione a XML: breve storia dell'XML

Per iniziare questo percorso di studio appare utile fare un salto indietro nel tempo alla ricerca delle origini del linguaggio (o per essere più precisi meta-linguaggio, ma questo lo spiegheremo in seguito) XML. Questo non è finalizzato alla soddisfazione di una mera curiosità storica, ma appare importante per la comprensione della natura stessa dell'XML, le cui origini risultano strettamente correlate alle origini dei processi di marcatura in campo informatico.

Non è mai facile descrivere le origini storiche di un qualsiasi oggetto, teoria, pensiero... Ciascun risultato è sempre frutto di percorsi le cui basi sono spesso indefinite ed interrelate a decine, centinaia di altri percorsi, anche apparentemente lontani. Allo stesso modo appare assai arduo ricostruire in poche righe quel fitto intreccio di eventi e sviluppi di pensiero che hanno portato alla nascita del linguaggio XML. Tuttavia abbiamo la necessità di delineare questo percorso (magari in forma semplificata) ma comunque chiara.

Risaliamo, dunque, alla fine degli anni '60, alla cui epoca i linguaggi di markup utilizzati per la gestione dei documenti erano di tipo prevalentemente procedurale, ciò dando origine a grosse difficoltà di interoperabilità degli stessi tra macchine ed applicazioni diverse (questo problema era particolaremnete sentito nell'ambito del mercato tipografico dove i diversi produttori utilizzavano ciascuno il proprio metodo proprietario per descrivere l'impostazione tipografica di un documento). Si sentiva pertanto l'esigenza di un nuovo genere di linguaggio in grado di mantenere le istruzioni sulla rappresentazione dei dati separate da quelle relative alla struttura ed al contenuto.

La prima risposta a tale esigenza prese il nome di GenCode. Questo sostanzialmente era il risultato, elaborato dai laboratori della GCA Graphic Communications Association, della standardizzazione dei codici tipografici.

La storia dell'XMLGli studi su GenCode vennero ripresi in quegli anni da un gruppo di ricerca, guidato da Charles Goldfarb (con cui collaboravano Edward Mosher e Raymond Lorie). Il risultato del loro lavoro portò alla definizione di GML "Generalized Markup Language" [1], un linguaggio realizzato nell'ambito di un progetto di ricerca dell'IBM sui sistemi integrati per la gestione dei documenti legali (GML rispondeva all'esigenza di uno strumento in grado di garantire lo scambio e l'elaborazione dei documenti legali in seno all'IBM). Goldfarb e collaboratori scelsero di adottare un formato comune basato sul concetto di markup e di definire, pertanto, un linguaggio in grado di descrivere la natura astratta delle informazioni contenute in un documento e la loro struttura. Sostanzialmente con GML nasceva un nuovo linguaggio di marcatura (fondato su una sintassi semplice di tag contenuti tra i simboli '<' e '>') avente l'obiettivo di fornire un formato aperto e standardizzato per il trattamento dei dati e per lo scambio e la manipolazione di documenti strutturati. Nel 1974 Goldfarb giunse a definire il concetto di validating parser, uno strumento in grado di leggere la DTD di un documento e verificare l'accuratezza del markup (ma rivedremo bene questo concetto più avanti).

Il 1978 rappresenta un'altra tappa fondamentale nella storia dell'XML, in quell'anno l'American National Standards Institute (ANSI) istituì un comitato, la cui direzione fu affidata ancora a Goldfarb, per la definizione di uno standard per la trasmissione e l'archiviazione di documenti. Questo comitato (supportato anche dal comitato GenCode), partendo dagli studi sul GML, si impegnò per arrivare alla standardizzazione di un linguaggio per la descrizione di documenti che culminò con la definizione del SGML (in italiano "Linguaggio di Marcatura Generalizzato Standard"), il capostipite dei linguaggi di marcatura odierni. L'intento con cui nacque SGML fu quello di favorire lo scambio di documenti fra diverse piattaforme, indipendentemente dall'hardware o dal sistema operativo utilizzato. Nel 1986 SGML divenne uno standard ISO (ISO 8879: 1986).

SGML non definisce direttamente i tag per la marcatura della struttura logica del testo, infatti, più che di un vero e proprio linguaggio, si tratta di un metalinguaggio, il quale fornisce una serie di norme sintattiche astratte con cui definire le regole da applicare nella marcatura di un determinato tipo di documenti. SGML è dunque un linguaggio per creare altri linguaggi, ognuno dei quali costituisce un'applicazione SGML; la più nota di tutte è sicuramente HTML (Hypertext Markup Language).

Il resto è storia recente. Nel 1994 nasce il World Wide Web Consortium il quale si pose l'obiettivo dello sviluppo di tecnologie che garantiscano l'interoperabilità per guidare il World Wide Web fino al massimo del suo potenziale.

Tuttavia l'enorme sviluppo del web degli ultimi decenni ha scatenato lotte agguerrite sul piano tecnico e commerciale; basti pensare alla "guerra dei browser" (Netscape e Microsoft) in cui ciascun contendente ha introdotto nel tempo diverse estensioni proprietarie all'HTML. Il risultato è stato che un sito Web che voleva utilizzare le estensioni proprietarie di un browser rischiava di risultare inaccessibile agli altri browser. L'HTML iniziò presto a venire snaturato e nel contempo a mostrarsi inadeguato rispetto alle esigenze degli ultimi anni.

Emerse così la necessità di un linguaggio di markup che offrisse maggiore libertà nella definizione dei tag pur rimanendo nell'ambito del rispetto di uno standard. Fu così che nel 1996 si costituì l'XML Working Group nell'ambito del W3C. La ricerca partì ancora una volta dal linguaggio SGML. Quest'ultimo tuttavia risultava troppo complesso per gli scopi della ricerca e pertanto fu snellito di alcune caratteristiche e semplificato in alcuni punti per renderlo più adatto allo scopo.

Le specifiche di XML furono pubblicate nel 1997 come Proposed Recommendation. Tuttavia, anche se gli obiettivi iniziali della nascita di XML erano rivolti alla soluzione di un problema di standard per il Web, ben presto ci si accorse che XML non era limitato al solo contesto Web. Esso risulta essere abbastanza generale da poter essere utilizzato nei più disparati contesti: dalla definizione della struttura di documenti allo scambio di informazioni tra sistemi diversi, dalla rappresentazione di immagini alla definizione di formati di dati.

Note:

[1] Una curiosità: Il nome GML deriva dalle iniziali dei cognomi dei tre ricercatori..