formalizzazione.gif (4540 bytes)

hrmaroonato.gif (149 bytes)

Lo Standard Generalized Markup Language
  • La scelta di una codifica descrittiva per la Guida
  • Principi generali di SGML
  • Alcuni vantaggi dell’uso di SGML
  • Concetti fondamentali della sintassi SGML
  • Simboli usati nella rappresentazione grafica della DTD - Guida
  •  

    La scelta di una codifica descrittiva per la Guida

    I volumi della Guida Generale degli Archivi di Stato si configurano come dei repertori fortemente strutturati, nei quali le informazioni relative ai fondi archivistici posseduti dagli Archivi di Stato sono state ordinate in partizioni e strutturazioni logiche preordinate dai responsabili editoriali dell’opera. L’esistenza di una struttura interna nell’opera ha suggerito l’uso dello Standard Generalized Markup Language come linguaggio di codifica del documento elettronico risultante dalla digitalizzazione del documento cartaceo.

    Coloro che utilizzano normalmente un computer per comporre testi sanno che un documento elettronico contiene oltre al testo, una codifica che potremmo definire procedurale in quanto fornisce le istruzioni necessarie al programma per impaginare a video o in stampa il testo.
    Esiste tuttavia anche una codifica descrittiva, finalizzata cioè alla descrizione della struttura e del contenuto di un documento indipendentemente dall’aspetto grafico che esso deve presentare. I codici che si introducono in questo caso servono a separare le strutture informative presenti nel documento dichiarandone allo stesso tempo la natura in modo esplicito.

    Lo Standard Generalized Markup Language è un linguaggio per la codifica descrittiva dei documenti.

    Principi generali di SGML

    I primi tentativi di sviluppo di una codifica descrittiva risalgono alla fine degli anni sessanta; ben presto tuttavia si fece strada l’idea di elaborare un vero e proprio linguaggio per produrre sistemi di codifica descrittiva e i lavori si conclusero con la pubblicazione dello GML o Generalized Markup Language, trasformato in standard ISO nel 1986.

    SGML fornisce delle regole per definire un sistema di codici descrittivi; non prevede alcun meccanismo per associare questi codici a delle istruzioni per la loro gestione. Questo si traduce in una totale indipendenza della codifica SGML da ogni software e nella compatibilità assoluta con ogni piattaforma hardware. Le istruzioni necessarie affinché un programma esegua delle azioni non possono essere indipendenti, al contrario sono strettamente legate al software. Nel caso dei documenti SGML queste istruzioni vengono associate ai codici descrittivi mediante uno strumento chiamato foglio di stile che resta del tutto separato dal testo; in tal modo lo stesso documento può essere gestito da programmi diversi associato di volta in volta a diversi fogli di stile.
    I codici SGML sono in realtà delle etichette che, inserite nel testo, segnano l’inizio e la fine delle strutture informative presenti.

    Un sistema di codifica elaborato secondo le regole SGML si chiama Document Type Definition o DTD. Nella DTD viene descritta la struttura di un determinato tipo di documento mediante la definizione degli elementi che lo compongono. Con il termine elemento si intende indicare una classe di oggetti presenti nel documento, chiaramente identificabili sulla base del loro contenuto o della loro funzione nel testo. Possono essere elementi le divisioni interne del documento (capitoli, sezioni, etc.), i titoli, le note bibliografiche, i nomi propri o geografici, etc.
    Ogni volta che si trova nel testo un’occorrenza di un elemento essa va codificata utilizzando il nome assegnato a quel particolare elemento; ad esempio se si decide di chiamare la classe dei capitoli con il nome "capitolo", ogni capitolo presente nel documento sarà delimitato con l’inserimento dell'etichetta <capitolo>all'inizio e della corrispondente etichetta </capitolo> alla fine.

    Gli elementi che costituiscono il documento sono ordinati in modo gerarchico partendo da un elemento radice che contiene tutti gli altri, fino agli elementi di base che contengono solamente testo.

    Alcuni vantaggi dell’uso di SGML

    Il documento elettronico contenente testo e codici descrittivi, unitamente al modello che descrive la struttura gerarchica nella quale si inseriscono gli stessi codici, offre interessanti possibilità.

    • Le informazioni contenute possono essere estratte automaticamente, per esempio allo scopo di riversarle in una bancadati.

    • Il modo di presentazione del documento può cambiare senza che si debba modificare in alcun modo il testo informatizzato; ogni eventuale cambiamento infatti andrà eseguito nel foglio di stile.

    • Altri documenti dello stesso tipo possono essere composti rispettando esattamente la medesima struttura se si utilizza un editor SGML che guida l’inserimento dei codici sulla base di una data DTD. La funzione di parser, cioè di controllo sulla base della DTD, costringe infatti l’utente ad inserire ogni blocco di testo con le opportune etichette che lo definiscono, solamente in determinate posizioni. Se ad esempio in un modello di lettera l'elemento "data" segue l’elemento "destinatario" sarà impossibile scrivere la data prima del destinatario.

    • I dati possono essere facilmente condivisi tra sistemi hardware e software diversi senza perdita di informazione grazie all’indipendenza hardware e software dei documenti codificati.

    Concetti fondamentali della sintassi SGML

    Elementi ed attributi

    Gli oggetti che costituiscono un documento, dalle sue partizioni interne alle informazioni contenute in queste partizioni (nomi, informazioni bibliografiche, etc.) sono chiamati elementi e vengono codificati mediante l’introduzione di un codice o tag che ne evidenzia l’inizio (open-tag) e da uno che ne segnala la fine (end-tag).

    esempio: <titolo>Concetti fondamentali della sintassi SGML<\titolo>

    Gli elementi più complessi contengono al loro interno gruppi di altri elementi, ad esempio
    - un capitolo è costituito da un titolo e da una o più sezioni,
    - una sezione contiene un titolo e uno o più paragrafi
    etc.

    Ogni elemento può avere degli attributi. Essi servono a specificare delle caratteristiche proprie di ogni occorrenza del dato elemento, ad esempio
    l’elemento capitolo può avere un attributo "numero" che specifica il numero d’ordine di ogni singolo capitolo.

    Per elaborare la DTD della Guida generale degli Archivi di Stato è stato utilizzato il programma Visual DTD della Corel Draw. Esso rappresenta il modello del documento in modo grafico come una struttura ad albero composta di foglie=elementi. In questa visualizzazione i simboli della sintassi SGML sono trasformati in simboli grafici.

    Gli elementi sono rappresentati come rettangoli all’interno dei quali è inserito il loro nome. La presenza di attributi è evidenziata da un segno ~ dopo il nome dell'elemento.

    Indicatori di frequenza

    Se, dopo il nome dell' elemento, non è presente alcun indicatore allora una sola occorrenza dell’elemento deve essere presente nella posizione prevista.

    L’indicatore  ?  indica un elemento facoltativo (da zero ad uno volte).

    L’indicatore  *  connota un elemento facoltativo che può ricorrere qualsiasi numero di volte (da zero a n volte).

    L’indicatore  + connota un elemento che deve ricorrere almeno una volta (da 1 a n volte).

    I simboli che in SGML indicano quante volte può essere ripetuto un elemento in una determinata posizione, sono inseriti nel rettangolo che contiene il nome dell’elemento e sono rispettivamente:

    = ? = + = *

    Indicatori delle relazioni tra gli elementi

    I rapporti tra elementi inseriti in un gruppo sono esplicitati da speciali connettori previsti dalla sintassi SGML. Esistono tre simboli che rappresentano tre possibili relazioni:

    • la virgola indica una sequenza obbligatoria tra elementi posti allo stesso livello della gerarchia:
      a, b indica che l’elemento a deve sempre precedere l’elemento b;
    • il simbolo & indica che gli elementi possono trovarsi in qualsiasi ordine tra loro:
      a & b consente di introdurre a prima o dopo b;
    • il simbolo | impone una scelta tra elementi che non possono ricorrere contemporaneamente:
      a | b indica che dove è presente a non può trovarsi b e viceversa.

    Simboli usati nella rappresentazione grafica della DTD - Guida

    Connettori di elementi:

    and.gif (9922 byte) corrisponde alla virgola, che indica una sequenza determinata di elementi
    or.gif (5938 byte)  corrisponde a &, che indica la mancanza di ordine fisso tra gli elementi.
    xor.gif (6478 byte) corrisponde a | cioè impone una selezione tra gli elementi

    Contenuto degli elementi terminali

    Per definire il contenuto degli elementi non ulteriormente divisibili, SGML fornisce una serie di termini chiave; in Visual DTD sono stati associati a questi termini chiave degli speciali simboli da attaccare al rettangolo che rappresenta un elemento. Nella DTD della Guida sono stati usati solo due tipi di terminali:

    Un elemento definito come #PCDATA contiene solamente testo; il corrispondente simbolo grafico è 

    Un elemento definito come EMPTY non deve avere nessun contenuto; il corrispondente simbolo grafico è 

    Gli elementi in SGML possono essere definiti anche fuori dell’albero gerarchico principale mediante definizioni di "inclusione" o di "esclusione". Le inclusioni servono a specificare che un determinato elemento può essere usato in qualunque posizione all’interno di una determinata struttura. I riferimenti di nota e le note a piè di pagina sono definiti come elementi "inclusive" rispetto alla radice del modello perché non fanno parte della gerarchia principale descritta. Viene usato il simbolo + prima dell' elemento di cui si indica la "inclusione".

    Dal punto di vista grafico le inclusioni sono rappresentate dal simbolo  , le esclusioni dal simbolo .

    In questa struttura l'elemento radice è il capitolo; esso contiene un titolo e una o più sezioni; ogni sezione contiene a sua volta un titolo e uno o più paragrafi. Il numero di pagina può trovarsi in qualunque posizione all’interno del Capitolo e degli elementi ad esso subordinati, Titolo, Sezione e Paragrafo.

    Rappresentazione Grafica
    es1.gif (30718 byte)
    Rappresentazione SGML normale
    <!DOCTYPE capitolo [ 
    <!ELEMENT capitolo - O (titolo , sezioni+) +(num.pag) > 

    <!ELEMENT sezioni   - O (titolo , paragrafi+) > 

    <!ELEMENT paragrafi - O (#PCDATA) > 

    <!ELEMENT titolo - O (#PCDATA) > 

    La sintassi SGML prevede anche un meccanismo di "esclusione" di elementi da una data struttura.

    Ad esempio si può stabilire che il numero di pagina non deve mai comparire all’interno di un titolo "escludendo" l’elemento num.pagina dal contenuto dell’elemento titolo. Viene usato il simbolo - prima dell'elemento escluso

    Rappresentazione Grafica
    es2.gif (36958 byte)
    Rappresentazione SGML normale
    <!DOCTYPE capitolo [ 
    <!ELEMENT capitolo - O (titolo , sezioni+) +(num.pag) > 

    <!ELEMENT sezioni   - O (titolo , paragrafi+) > 

    <!ELEMENT paragrafi - O (#PCDATA) > 

    <!ELEMENT titolo - O (#PCDATA) -(num.pag) > 

    ]>