|
I LINGUAGGI DI MARKUP: SGML |
![](Immagini/Riga_sottotitolo.jpg) |
SGML (Standard Generalized Markup Language) è un metalinguaggio, cioè un linguaggio usato per la descrizione di altri linguaggi, che serve per definire linguaggi di tipo markup: l'HTML (HyperText Markup Language) è un esempio di linguaggio derivato da SGML.
È divenuto standard internazionale ISO 8879 nel 1986. La sua caratteristica principale è quella di fornire una modalità di codifica dei documenti ipertestuali in modo da renderli indipendenti dalla macchina e dalla loro piattaforma software (purché tali software siano compatibili con SGML) finché sia possibile leggere documenti creati da altri anche se questi sono stati realizzati con applicativi diversi da quelli in cui i documenti stessi sono stati creati. Per rendere chiara ed esplicita l'interpretazione di ogni parte di un documento, viene usato un meccanismo di codifica detto markup; questo meccanismo permette di descrivere, usando particolari simboli (detti tag), la struttura di un documento, indicando, ad esempio, l'inizio e la fine di una parola o l'inizio e la fine delle varie parti di cui si compone un documento (paragrafi, sezioni, capitoli).
SGML venne sviluppato nell'arco di un ventennio (dagli anni '60 agli anni '80) e venne approvato dall'ISO nel 1986. Fu creato principalmente per due motivi: la necessità di avere una bassa quantità di informazioni sulla struttura del documento per minimizzare i tempi di trasmissione e la necessità di avere una codifica che fosse indipendente dalla piattaforma software implementata sulla macchina.
Le cinque principali caratteristiche di SGML sono:
-
permette la creazione di linguaggi markup di tipo descrittivo vale a dire che utilizza dei codici per la descrizione delle varie parti di un documento non preoccupandosi di come questo verrà poi rappresentato (la scelta delle modalità di rappresentazione è quindi lasciata solamente al software che riprodurrà il testo) ma soltanto di specificare che il testo tra racchiuso tra determinate tag deve essere considerato come un'unità indivisibile;
-
i suoi elementi e componenti sono organizzati in una struttura gerarchica con interconnessioni: questo vuol dire che un documento SGML può essere formato da link ipertestuali (indicati con apposite tag) che fanno riferimento ad altri documenti, o ad altri oggetti come dati, immagini, suoni, etc.;
-
non specifica nessun tipo di convenzioni del markup, quindi è aperto ad ogni possibile implementazione: come già detto, con SGML è possibile creare un proprio linguaggio, la cui struttura riflette quella dei documenti che dobbiamo creare. La sua flessibilità significa che non esistono restrizioni per la creazione di un proprio set di tag; ogni linguaggio creato a partire da SGML utilizzerà la propria DTD (Document Type Definition), contenente il set di tag creato ad hoc per il tipo di lavoro che si vuole compiere. La DTD definisce la sintassi del linguaggio, descrivendo ogni elemento che compone un documento realizzato con quel linguaggio, tutti gli attributi permessi per quell'elemento ed i dati che questo può contenere. Oltre che essere indipendente dal software e dalla piattaforma con cui viene implementato, SGML è anche indipendente dalla lingua e dal set di caratteri utilizzato; infatti, è possibile specificare i nomi delle tag in inglese, italiano, giapponese, etc., inserendo, con opportuni meccanismi, questi set di caratteri in SGML;
-
è completamente specificato a livello formale: la descrizione formale della struttura di un documento, infatti, avviene mediante la sua DTD; la DTD è un concetto introdotto da SGML ed è richiesta per ogni linguaggio creato a partire da SGML. Essa definisce la sintassi di un linguaggio markup e specifica tutte le convenzioni utilizzate nelle tag, i nomi di tutte le applicazioni che possono essere usate insieme ai documenti (ad esempio, in HTML, tutti i tipi di file non - HTML o file dati che possono essere attaccati al documento) e tutti i possibili markup, specificando il significato ed il contesto in cui possono essere usati. Esistono degli applicativi, analizzatori sintattici di SGML, che permettono di verificare se un documento è conforme alla propria DTD;
-
un documento SGML può essere facilmente letto sia da un computer che da una persona, a patto che quest'ultima conosca lo standard: la struttura dei documenti SGML, infatti, è facilmente comprensibile non solo da un computer ma anche da una persona che li legga. Il markup descrittivo è separato dal testo da opportuni delimitatori di stringa: in HTML, ad esempio, questi delimitatori sono costituiti dalle parentesi uncinate < e >. Grazie a questa caratteristica, risulta evidente come sia semplice trasportare un documento SGML da una piattaforma UNIX ad una DOS o MACINTOSH e viceversa; inoltre un documento SGML di grosse dimensioni, può essere spezzato in più parti e trasmesso in questo modo, senza nessuna perdita di informazione, a patto che poi le parti siano ricomposte correttamente.
Ci sono, tuttavia, alcuni svantaggi che trattengono molti utenti dall'adottare SGML come sostituto di HTML per il Web: le alte spese di gestione (dal momento che i browser tradizionali come Netscape o Internet Explorer non lo supportano, è necessario fornirsi di un software apposito per SGML molto costoso) e la sua estrema complessità (SGML è ricco di optional che aumentano notevolmente la sua flessibilità ma nello stesso tempo lo appesantisco e lo rendono difficile da usare).
|
|
|