Lesigenza di produzione di testi in formato elettronico ha condotto allelaborazione di molteplici sistemi orientati alla creazione e manipolazione di testi, che vanno dai word-processor ai più sofisticati sistemi di desktop publishing (che consentono di controllare tutto il processo di produzione, composizione e formattazione dei testi a fini editoriali).
Diremo che i sistemi di text processing si possono dividere in due classi: i sistemi di tipo WYSIWYG (What You See Is What You Get) e i sistemi basati su markup language.
I primi sono programmi che sfruttano le sempre maggiori potenzialità grafiche offerte dagli elaboratori per tentare di rappresentare sul video esattamente ciò che apparirà poi sulla carta stampata. Il problema sostanziale di questi sistemi è che pur agevolando notevolmente il lavoro dellutente, proponendosi come mezzo rapido ed amichevole anche alloperatore meno esperto (consentendogli di interagire con la macchina tramite linterfaccia grafica, e cioè manipolando direttamente la rappresentazione visibile sullo schermo), legano lelaborazione del testo ad un determinato programma, rendendo quindi alquanto problematica la portabilità tra ambienti software diversi. Impiegando cioè, al fine della rappresentazione del testo, dei caratteri di controllo invisibili, immessi dentro il file di testo, rendono il file leggibile esclusivamente dal sistema che lha generato. E la macchina che inserisce direttamente il markup, la codifica, non lutente, che non necessita quindi di conoscere i comandi a memoria. I sistemi di questo tipo non si rivelano dunque come i più adatti alla codifica scientifica di un testo.
Esistono anche programmi che non si interessano dellaspetto che il documento assume sul video, per concentrarsi invece sul risultato finale. I file destinati a questo tipo di programmi sono composti dal testo che si vuole realizzare e da una serie di istruzioni che indicano al device di output (normalmente la stampante) quello che deve fare. Se, da un lato, questi programmi rendono complessa loperazione di elaborazione del testo, dallaltro, utilizzando file scritti con un normale editor (e quindi in plain ASCII o formato solo testo), rendono più agevole la trasportabilità dei prodotti.
Questi markup language, detti in italiano linguaggi di marcatura o di codifica del testo, si basano su un insieme di istruzioni facente parte, appunto, di un vero e proprio linguaggio orientato alla descrizione dei fenomeni di strutturazione, composizione, impaginazione del testo stesso. I comandi si configurano come sequenze di caratteri ASCII visibili, e vengono immessi dentro il file del testo, secondo una determinata sintassi, immediatamente accanto alla sequenza di caratteri a cui si riferiscono e cioè marcando direttamente i blocchi di testo cui intendono assegnare una determinata funzione.
Il termine markup, impiegato nellambito della codifica del testo in formato elettronico, deriva dalla designazione, nella stampa tipografica tradizionale, di quellinsieme di simboli, indicazioni, annotazioni aggiunte dallautore o dalleditore su di un manoscritto o su di un dattiloscritto per istruire il tipografo o il compositore relativamente a come trattare, dal punto di vista grafico, il testo: impaginazione, scelta dei caratteri da impiegare, spaziature, a capo ecc....
E possibile distinguere due diverse classi di linguaggi di markup, che differiscono per il tipo di comandi impiegati allatto delloperazione di codifica ovvero per la semantica delle istruzioni utilizzate: markup specifico e markup generico.
Il primo tipo consiste di un insieme di istruzioni operative che indicano localmente la struttura tipografica e compositiva della pagina, le spaziature, linterlineatura, le caratteristiche dei font, modificando questi parametri direttamente per le porzioni di testo cui si riferiscono. Questo tipo di marcatura è anche detta procedurale in quanto indica alla macchina le procedure di trattamento cui deve sottoporre la sequenza di caratteri al momento della stampa.
Si tratta dei primi linguaggi di marcatura, ideati con lobiettivo di occuparsi essenzialmente dellaspetto tipografico del testo. Non accettando ancora lottica del WYSIWYG, era necessario individuare una serie di istruzioni locali che consentissero alla periferica di generare il documento nella forma tipografico-compositiva desiderata. Sono questi i linguaggi orientati sul documento più che sul testo, da intendersi secondo le caratteristiche in precedenza descritte.
Sostanziali si rivelano quindi i limiti di un markup di tipo procedurale. In un documento testuale la composizione del manufatto rappresenta la realizzazione della struttura astratta (logica) del testo, la quale costituisce un bagaglio informativo essenziale ai fini di una corretta comprensione del testo stesso. Indispensabili le divisioni di un testo in sezioni o capitoli, che coordinano lintreccio testuale ed indicano al lettore il ritmo narratologico. In una codifica procedurale queste informazioni vengono inevitabilmente perdute in quanto non rappresentate e si rivela dunque necessario, per accedere ad esse, conoscerne esattamente la composizione tipografica. In più si presentano limiti anche di carattere pratico: un linguaggio di codifica procedurale comporta uno stretto legame con il software di trattamento del testo che è in grado di interpretarlo, limitando dunque la portabilità del testo codificato tra ambienti diversi. Inoltre le istruzioni di formattazione di un testo di questo tipo vengono fissate una volta per tutte: se si intende alterare laspetto stampato di un testo è necessario modificare tutte le istruzioni di codifica.
Proprio a causa di questa serie di limitazioni si è rivelata indispensabile lelaborazione di un nuovo tipo di linguaggio che consentisse essenzialmente la rappresentazione della struttura astratta del testo. Sono stati così creati i cosiddetti linguaggi di markup generico dove i simboli di codifica non vengono più impiegati come istruzioni di formattazione, di impaginazione, ma come indicatori di struttura.
I linguaggi basati su un generic markup sono costituiti da un insieme di marcatori (tag) che, immessi nel testo, indicano non le caratteristiche fisiche, ma la funzione assolta dal blocco di testo cui si riferiscono. A ciascun blocco viene associato un marcatore che lo definisce come titolo, paragrafo, nota, citazione ecc., senza preoccuparsi di come tali elementi del testo appariranno fisicamente.
Poiché consentono di dichiarare a quale tipo di struttura appartiene una qualsivoglia porzione della fonte, questi linguaggi vengono anche definiti linguaggi dichiarativi.
Diremo quindi che mentre un linguaggio basato su di uno specific markup (o linguaggio procedurale) si concentra essenzialmente sul documento, un linguaggio basato su di un generic markup (o linguaggio dichiarativo) si concentra sul testo.
Marcando elementi appartenenti alla struttura astratta del testo, un generic markup language risulta dunque assolutamente indipendente dai diversi device; questo però non esclude la possibilità che venga usato anche per ottenere un determinato output del documento. E cioè possibile marcare dichiarativamente anche aspetti grafici della pagina (salti-pagina, spazi bianchi, rientri ecc.) [1] . Se quindi il linguaggio scelto si configura come piuttosto potente, sarà possibile rappresentare il testo, e cioè i suoi elementi, a vari livelli; si potranno cioè costruire molteplici modelli del testo e, in più, sarà consentito impiegare un testo trattato con un linguaggio di codifica dichiarativa per qualsiasi tipo di trattamento informatico. Non essendo cioè tali linguaggi dedicati a nessuna particolare applicazione, se si è stati in grado di dichiarare tutto ciò di cui si necessita, il testo potrà essere analizzato dal punto di vista morfologico, lessicografico, narratologico.
Tra i linguaggi che impiegano una codifica di tipo dichiarativo, lo Standard Generalized Markup Language (lSGML) è sicuramente il più noto e quello che ha assunto una peculiare preminenza, divenendo lo standard ISO ufficiale per la creazione di testi in MRF. LSGML è oltretutto il linguaggio dotato di maggiore influenza nellambito del settore umanistico, grazie soprattutto alle DTD (Document Type Definition) prodotte dalla TEI (Text Encoding Inititive).
SGML nasce, essenzialmente, con lobiettivo di imporsi come schema linguistico standard a livello internazionale nellambito della codifica di fonti testuali o documentarie e superare quindi quella moltitudine di sistemi di codifica sviluppatisi negli ultimi ventanni; obiettivo, questo, primario per consentire quellinterscambio di documenti in formato elettronico tra ambienti hardware e software differenti e garantirne quindi lassoluta portabilità.
Scendendo nello specifico del funzionamento dellSGML, diremo che questo linguaggio si basa su di un markup generico orientato alla descrizione della struttura logica di un testo piuttosto che della sua forma grafica [3] . LSGML si fonda sullidea che un documento sia dotato di una organizzazione astratta o logica definibile tramite una configurazione strutturale rigidamente gerarchica. La struttura astratta di un qualsiasi documento corrisponde cioè ad un grafo ad albero in cui: a ciascun nodo dellalbero corrisponde un elemento (e cioè ogni partizione logica della fonte); ai rami uscenti da ogni nodo corrispondono le relazioni [4] tra elementi e sotto-elementi ad un dato livello; alle foglie corrispondono gli elementi finali non strutturali (generalmente i caratteri del testo) [5] .
Fondandosi su di una codifica di tipo dichiarativo, lSGML consente di definire (o di dichiarare), in modo assolutamente personale ed autonomo, un insieme di marcatori (tags) che adempiano al compito primario dello standard, che consentano cioè di fare il markup della struttura logica di un testo. Questo gruppo di marcatori, più precisamente, individua una classe di documenti testuali che presentano le medesime caratteristiche strutturali [6] .
Tali marcatori si presentano sottoforma di stringhe di caratteri ASCII; il markup viene aggiunto allinizio e alla fine di ogni partizione logica del testo, e cioè di ogni oggetto informazionale dotato di una propria funzione logica, vale a dire di ogni elemento.
Ogni elemento testuale viene individuato e descritto tramite ricorso ad un nome convenzionale, scelto dal codificatore (p.e. p per paragrafo, n per nota ecc.) e questultimo viene racchiuso tra due delimitatori posti allinizio dellelemento e da altri due delimitatori posti alla fine dello stesso; lelemento viene quindi rappresentato tramite una tag di apertura ed una di chiusura. Per le tag, la sintassi di SGML ci suggerisce una forma grafica simbolica che possiamo decidere di rispettare o meno (parentesi ad angolo, o delimitatori, racchiudenti il nome dellelemento, cioè lidentificatore dellelemento, come tag dapertura: <e>; stesse parentesi ma con lidentificatore preceduto dal simbolo / per la tag di chiusura: </e>).
Più esattamente diremo che SGML è dotato di una sintassi astratta (abstract syntax), che spiega come operare il markup di un documento testuale; esistono cioè regole che istruiscono lutente su come aggiungere i marcatori ad un documento [7] , senza però considerare le specifiche stringhe di caratteri impiegate a tal fine: lSGML non costringe cioè alluso di particolari caratteri in qualità di delimitatori, semplicemente spiega solo i ruoli dei vari delimitatori. E la sintassi concreta (concrete syntax) che attribuisce a quei delimitatori eventuali simboli impiegabili a tale scopo. Lo standard fornisce in questo caso un aiuto offrendo un esempio di sintassi concreta, detta sintassi concreta di riferimento (reference concrete syntax); essa lega la sintassi astratta a specifici caratteri [8] . Vengono inoltre suggeriti i criteri per definire la sintassi concreta delle varianti (variant concrete syntax), che consente di modificare a proprio piacimento quei simboli individuati come delimitatori nella sintassi concreta di riferimento [9] .
Per questo è lecito affermare che lSGML più che un linguaggio è un metalinguaggio che fornisce esclusivamente le regole necessarie alledificazione di infiniti linguaggi di codifica di testi. Ciascuno di tali linguaggi si configura come un peculiare modello di testo o, più esattamente, di un insieme di testi, elaborato sulla base delle esigenze del trattamento automatizzato cui si intende sottoporre la fonte e quindi in base a quello specifico punto di vista assunto sulloggetto di analisi.
Essendo lo scopo principale di ogni operazione di trasposizione di un testo in MRF il garantire la massima portabilità delloggetto creato, si rivela necessaria lassoluta condivisione del codice, con cui è stata effettuata loperazione di codifica del testo, da parte di tutti gli utenti. Questa prerogativa viene appunto raggiunta dichiarando esplicitamente tutti gli elementi che sono presenti in quello specifico testo, dai caratteri alfabetici ai marcatori impiegati allatto della codifica, e le combinazioni tra i suddetti elementi.
Talora però lo stesso codice di base, cioè il character set, non è condiviso fra applicazioni diverse. Ipoteticamente sarebbe possibile progettare una tabella alternativa allASCII standard [10] , ma è sicuramente più conveniente limitarsi ad indicare eventuali caratteri (entity) che non fanno parte dellASCII, ma che verranno impiegati allatto della codifica; caratteri che possono essere raffigurati pur non comparendo su di una normale tastiera ASCII. Sarà sufficiente scrivere lentità di riferimento facendola precedere dalle commerciale (&) e seguire dal punto e virgola (;) per istruire il programma a riconoscervi unentità [11] .
Per entità si intende precisamente ogni sequenza arbitraria di bit, da una stringa di caratteri ad un intero file, indipendentemente dallestensione delloggetto cui lentità fa riferimento. E questa la possibilità offerta da SGML di incorporare nel documento codificato ogni tipo di file. La capacità di rappresentare entità attraverso una stringa di caratteri ASCII per descrivere un simbolo può anche essere utilizzata in altro modo, ossia per rappresentare informazioni poste altrove. Questo risulta utile, per esempio, per fare riferimento a parti esistenti del documento, ad una tabella o ad una figura, cioè per incorporare altri file allinterno del documento codificato. La stringa di caratteri impiegata in qualità di entità potrebbe anche essere unabbreviazione che verrebbe estesa per intero in fase di output. Ci si potrebbe allora limitare alla sola abbreviazione descrivendola come entità (per esempio &SGML;), da sciogliere poi in fase di visualizzazione del testo (con Standard Generalized Markup Language).
Lelenco delle entity utilizzate sarà contenuto in unapposita tabella, esplicitamente dichiarata. Tale tabella prende il nome di DTD, Document Type Definition. In essa si presenterà, oltre allelenco delle entità impiegate, la struttura astratta del testo, specificata definendo gli elementi che la costituiscono, eventuali attributi, le relazioni intercorrenti tra gli elementi e si assegnerà ad ogni elemento un singolo marcatore.
Come premesso, lo standard non fornisce alcuna prescrizione relativamente alla tipologia, alla quantità o al nome dei marcatori, ma si occupa esclusivamente di fornire precise regole sintattiche, necessarie a definire un insieme di marcatori allinterno di una DTD: è attraverso tali regole che sarà consentita la definizione di un linguaggio di codifica adeguato per una determinata classe di documenti testuali.
Più precisamente nella DTD sono elencati e definiti tutti
gli oggetti necessari allelaborazione di un adeguato linguaggio
di codifica:
i marcatori per gli elementi presenti nel testo (elements)
o presenti in una certa classe di documenti (p.e. testo t, introduzione
i, capitolo c, paragrafo p, nota n, ecc.);
la descrizione del contenuto di ogni elemento (content model), quindi quali altri elementi possono apparire allinterno di un altro elemento, con quale ordine e con quale frequenza (un paragrafo potrà contenere parole e le parole potranno contenere lettere....);
i marcatori per gli attributi (attributes) assegnabili ad un qualsivoglia elemento (un titolo potrà essere caratterizzato dalla propria resa grafica [p.e. grassetto corsivo], una nota dalla sua posizione allinterno della pagina);
i simboli per le entità (entity) che possono occorrere allinterno del documento e che possono rappresentare caratteri non esistenti nel code set impiegato alla codifica oppure che si riferiscono a file esterni o ancora che prevedono lo scioglimento di una stringa del docuemento.
E chiaro che è possibile sviluppare una propria nuova DTD atta a descrivere quel peculiare tipo di documento che si intende codificare, ma è certamente più economico, e ovviamente meno difficoltoso, fare riferimento ad una DTD già esistente e quindi pubblicamente disponibile. In entrambe i casi comunque imprescindibile è una perfetta conoscenza della sintassi e delle regole che lSGML prescrive per la descrizione della struttura di un documento testuale.
E la DTD quindi uno degli elementi fondanti di SGML, ed è la DTD che raccoglie la maggior parte delle dichiarazioni di markup previste dallo standard. Nulla che non sia stato esplicitamente dichiarato può essere incluso in un documento. E dunque da tenere in considerazione che le cosiddette markup declarations sono tredici, ma non tutte rientrano nella DTD; tra di esse, assolutamente essenziale è la dichiarazione SGML.
Per questo è essenziale sottolineare che un documento SGML, e cioè un testo codificato in SGML, non è semplicemente un oggetto costituito da partizioni logiche descritte dai tag introdotti, ma è un oggetto diviso in tre parti distinte: la dichiarazione SGML, la DTD e lesemplare del documento.
E la dichiarazione SGML (SGML declaration) che raccoglie linformazione relativa al set di caratteri impiegato (nella DTD e, ovviamente nel documento testuale) e alla sintassi concreta. Ogni sistema sul quale gira SGML possiede una dichiarazione SGML, assolutamente indispensabile per conoscere i parametri impiegati allatto della codifica.
Per ciò che inerisce luso del set di caratteri, SGML propone, nella sintassi concreta di riferimento, lISO 646 [12] , comune nel mondo anglofono. Questo standard è sufficiente per molteplici impieghi. Tuttavia viene considerato insufficiente nella maggior parte dei paesi che usano lingue differenti dallinglese, in quanto potrebbero esigere non solo lettere accentate, ma anche alfabeti completamente diversi. Viene quindi fornita lopportunità di specificare nella dichiarazione SGML un altro set di caratteri che si intende utilizzare. E sicuramente significativo optare infatti per laltro standard ISO, l8859-1, ASCII a 8 bit, noto come ISO-Latin, dove il numero 1 si riferisce ai caratteri propri dellEuropa occidentale. Optando per questo character set la necessità di ricorrere a riferimenti di entità per le lettere accentate viene a cadere, in quanto esse fanno parte del set ISO-Latin.
Se però, come rilevato, lesigenza di rappresentare caratteri o simboli speciali estranei si verifica di rado, è consigliabile limitarsi ad impiegare i riferimenti di entità (dichiarati nella DTD), senza affidarsi ad un set di caratteri differente.
Per ciò che inerisce la sintassi concreta, diremo che lo standard ISO prescrive che nella dichiarazione SGML, con riferimento alla sintassi astratta, si rendano noti gli effettivi caratteri impiegati per i nomi e le parole chiave, impiegati per indicare, ad esempio, di aprire la tag iniziale (start tag open - STAGO: <), di chiudere la tag iniziale (tag close - TAGC: >) o di aprire la tag finale (end tag open - ETAGO: </). Per aiutare lapplicazione di SGML, e fare in modo che lutenza impiegasse essenzialmente la medesima sintassi concreta, lo standard ha previsto una sorta di sintassi concreta di default, definita in ISO 8879, che prende il nome di sintassi concreta di riferimento [13] .
Sarà poi nella DTD che verranno specificati i nomi dei vari elementi, e cioè gli identificatori, eventuali loro attributi, le relazioni tra gli elementi, i riferimenti di entità e quindi tutte le strutture necessarie al fine di codificare il documento.
Ogni DTD, o il riferimento alla DTD, sarà poi inserita nella dichiarazione del tipo di documento (la document type declaration o doctype declaration, da non confondere con la stessa DTD, che è invece labbreviazione per document type definition) che ci fornirà uninformazione essenziale e cioè con quale tipo di documento stiamo lavorando.
Per concludere, lesemplare del documento (document instance) è il documento vero e proprio che contiene il testo nella sua globalità e i riferimenti alla DTD.
Ogni file di testo comincerà quindi dichiarando quale tipo di documento contiene e a quale DTD fa riferimento. Questo verrà fatto in unapposita zona dellintestazione del file, chiamata appunto doctype declaration, che costituisce la prima istruzione presente in un file SGML. Senza questa dichiarazione, i programmi non saprebbero quali tag sono impiegati nel documento e quali regole sintattiche in esso vigono, e quindi non sarebbero in grado di leggerlo.
La DTD di riferimento è generalmente esterna rispetto al file codificato ma potrebbe anche essere inserita allinterno dello stesso file, anche se risulta sicuramente più economico conservarla a parte. Quando la DTD è interna, la doctype declaration riporta solo il nome della DTD e le singole dichiarazioni allinterno, nellinternal DTD subset, usato soprattutto quando solo alcune dichiarazioni vogliono essere specificate o quando la DTD è breve. La forma è la seguente:
<!DOCTYPE nome_DTD
[ dichiarazione1
dichiarazione2
....................
]>
Quando invece la DTD è interna, la doctype declaration può presentarsi in due forme differenti:
<!DOCTYPE novella.dtd SYSTEM c:/sgml/testi/novella.dtd>
Dove <! (se ovviamente ci si conforma alla sintassi concreta di riferimento) è il simbolo di apertura della doctype declaration; DOCTYPE è la parola chiave che indica il tipo di dichiarazione che si sta esplicitando; novella è il nome della DTD; SYSTEM è la parola chiave che indica che la DTD è esterna rispetto al file sul quale si sta lavorando (porla esternamente è semplicemente una scelta dettata da un criterio di economia) ma si trova nello stesso computer; c:/sgml/testi/novella.dtd è il percorso che consente di rintracciare il file in cui è contenuta la menzionata DTD (novella.dtd); > è il simbolo che indica la chiusura della dichiarazione.
<!DOCTYPE TEI.2 PUBLIC "-//TEI//DTD TEI Lite 1.6//EN"
Dove, a differenza della precedente, la DTD non deve essere ricercata allinterno di un preciso percorso ma è richiamata tramite lindicazione di un identificatore pubblico (PUBLIC IDENTIFIER) comunemente noto; ovviamente la DTD potrà essere conservata in una qualsiasi zona esterna rispetto al file.
Dopo questa dichiarazione seguirà una dettagliata descrizione del documento di cui si sta realizzando la versione elettronica, realizzata seguendo le specifiche regole sintattiche previste dallo standard e conformandosi a quanto esplicitato nella DTD.
LSGML si configura dunque come un potente strumento per progettare linguaggi di codifica testuale completi e formalmente consistenti, in grado di supportare numerose operazioni di text processing pur mantenendo, attraverso il riferimento ad un dato document type, di cui ogni singolo documento in formato elettronico rappresenta un esemplare, la massima portabilità.
6.3 La Text Encoding Initiative (TEI) [14]
Lesigenza avvertita in campo informatico umanistico di rispondere adeguatamente ai problemi di rappresentazione informatica del materiale testuale e documentario ha condotto alla definizione di una serie di raccomandazioni, accettate a livello internazionale, per la rappresentazione dei testi in MRF; tali direttive garantiscono la validità scientifica della codifica e, soprattutto, lintercambiabilità e la portabilità dei testi in formato elettronico.
A partire dal 1987 le tre maggiori associazioni mondiali di studiosi di scienze umane attraverso metodologie informatiche, la Association for Computers and the Humanities (ACH) la Association for Computational Linguistics (ACL) e la Association for Literary and Linguistic Computing (ALLC) hanno avviato un progetto internazionale per sviluppare un modello di codifica normalizzato che mettesse ordine nellintricata congerie di modelli e linguaggi di rappresentazione dellinformazione testuale in formato elettronico. Questo progetto è stato denominato Text Encoding Initiative (TEI) e ad esso hanno attivamente collaborato un gruppo di studiosi provenienti da differenti paesi.
La finalità della TEI è di definire uno standard di codifica, specificatamente orientato alla gestione dei dati umanistico-letterari, e realizzare una normalizzazione dei formati di memorizzazione dellinformazione testuale, al fine di consentire linterscambio dei documenti [15] . Per conseguire tali obiettivi i progettisti della TEI hanno assunto come linguaggio di base per la descrizione dei documenti lSGML e come set di caratteri quello suggerito dalla stessa sintassi concreta di riferimento dello standard e cioè lISO 646. Il lavoro delle commissioni a partire dal 1989 ha condotto alla realizzazione di una vasta e complessa Document Type Definition, le cui caratteristiche sono state per la prima volta presentate nella pubblicazione uscita nel 1994 col titolo Guidelines for Electronic Text Encoding and Interchange (TEI P3). La struttura della DTD è stata in seguito rivista, ma la versione a tuttoggi disponibile può considerarsi quella definitiva.
I principi che hanno orientato la commissione di sviluppo della TEI nel definire la struttura della DTD sono basati sui fondamenti teorici dellSGML, ovvero sulla predilezione per un markup di tipo dichiarativo piuttosto che procedurale.
Il modello descrittivo dei testi previsto dalla TEI si fonda su di una sostanziale formalizzazione delle convenzioni vigenti nellambito dellorganizzazione strutturale dei documenti testuali, convenzioni che sono state codificate fino al punto di divenire un vero e proprio schema argomentativo (trattasi della divisione in parti, capitoli, paragrafi ecc.).
La predilezione per una codifica di tipo dichiarativo è stata rispettata nella maggior parte dei casi, pur considerando che essa talora implica un apporto assolutamente soggettivo dello studioso-codificatore, che necessita di interpretare la funzione delle varie componenti strutturali tipografiche, o manoscritte, per essere in grado di impiegare in modo adeguato i marcatori per gli elementi previsti nella DTD della TEI. Tuttavia sono previsti anche marcatori di tipo procedurale, utilizzabili quando la scelta di una codifica di tipo dichiarativo introdurrebbe seri problemi interpretativi, o quando le necessità dellindagine automatizzata richiedono una forte aderenza del testo elettronico al suo originale cartaceo. Sono anche previste molte strutture adeguate alla codifica di fenomeni testuali complessi, quali la trascrizione di fonti manoscritte, la pratica ecdotica, lanalisi linguistica e strutturale del testo, la creazione di corpus, nonché la realizzazione di complesse strutture ipertestuali.
La TEI definisce uno schema di carattere generale, essenzialmente orientato allambito umanistico, ma non rigido. E infatti da rilevare come gli elementi previsti dalla TEI e definiti nella DTD siano oltre quattrocento, come molte caratteristiche strutturali di un testo possano essere agevolmente sottoposte a differenti tipi di codifica, infine come lo schema preveda possibilità di modifiche locali e di estensioni, per adeguarsi ad eventuali esigenze di memorizzazione testuale. Al fine di raggiungere questi obiettivi, e cioè consentire un universale applicabilità, si è optato per una divisione della DTD in molteplici frammenti, ognuno impiegabile a seconda della tipologia testuale da indagare (testo in prosa, testo poetico, testo drammatico, fonte manoscritta) o a seconda degli scopi di ricerca (codifica a fini editoriali, a fini di analisi linguistica, tematica, ecc.). Lutente che attua la codifica ha dunque la possibilità di riferirsi al frammento che lo interessa, includendo, allinizio del documento elettronico, opportune dichiarazioni.
E stato, a questo scopo, elaborato un sottoinsieme della TEI, denominato TEI lite, che dovrebbe consentire la diffusione del progetto di codifica, senza impegnare lutenza ad apprendere lo schema nella sua interezza. Trattasi infatti di una versione semplificata dellintero schema di codifica definito dalla TEI, che permette di facilitare la realizzazione di testi in formato elettronico, senza richiedere lo studio dellintera DTD e consentendo quindi la creazione di documenti TEI-compliant, cioè compatibili con lintero schema.
Scendendo nello specifico, diremo che ogni testo codificato conformemente alle specifiche della TEI è costituito da due parti: un TEI header (codificato con lelemento <teiHeader>), contenente le informazioni editoriali concernenti il documento elettronico, e un TEI text (codificato con lelemento <text>) contenente la trascrizione codificata del testo in versione integrale.
Ogni TEI header consta di quattro parti, una delle quali deve necessariamente ricorrere in ogni testo codificato secondo le raccomandazioni della TEI, ed è lelemento <fileDesc>, mentre le altre tre, <encodingDesc>, <profileDesc>, <revisionDesc>, sono opzionali. Diremo che nella testata della TEI sono raccolte tutte le informazioni utili in sede di descrizione bibliografica del testo elettronico e del suo esemplare originale di riferimento. Queste notizie possono definirsi come metadata, cioè meta-informazioni o informazioni su informazioni.
Lelemento <fileDesc> raccoglie tutte le notizie editoriali relative alla descrizione del testo elettronico. E una sorta di frontespizio elettronico in cui vengono raccolte tutte le informazioni bibliografiche relative al documento in oggetto. Il primo elemento è il titolo dellopera [16] (il cui marcatore è <titleStmt>) generalmente accompagnato dal nome dellautore della versione elettronica del testo (la cui tag corrispondente è <principal>) che viene graficamente rappresentato come un sottelemento del titolo [17] . Secondo elemento sono le note sulla pubblicazione elettronica (<publicationStmt>): il nome delleditore o della casa editrice, eventualmente lindirizzo, i dati relativi al distributore, lo status dellopera (generalmente indicato solo se la versione elettronica si trova ancora in fase di preparazione) e cioè se la versione elettronica del documento è disponibile per la consultazione o meno. Il terzo elemento (<sourceDesc>) del <fileDesc> è relativo alla descrizione bibliografica del testo o dei testi originali impiegati per realizzare la versione elettronica (dai quali cioè è derivato il formato elettronico dellopera).
Dopo lelemento <fileDesc>, la TEI header include lelemento <encodingDesc>. Il proposito di questo elemento è di definire le metodologie impiegate allatto della codifica, cioè di specificare metodi e principi che hanno sovrinteso alla trascrizione elettronica del testo.
Segue lelemento <profileDesc>, il cui obiettivo è di consentire di fornire una dettagliata descrizione degli aspetti non-bibliografici del testo, per esempio, nel caso dei manoscritti, il tipo di scrittura impiegata, la presenza di una o più mani scriventi.
Per concludere, lultimo elemento del <fileDesc> è il <revisionDesc>, il cui scopo è di fornire informazioni relative alla storia delle modifiche e delle revisioni che il documento elettronico ha subito.
Come affermato in precedenza, ogni documento conforme alla TEI deve essere costituito da due elementi: un TEI header che, come descritto, fornisce informazioni bibliografiche e non relative al documento e un TEI text che è il testo vero e proprio. Lelemento text si divide, a sua volta, in quattro elementi: <front> (opzionale), <body> (obbligatorio), <group> (obbligatorio) e <back> (opzionale).
<Front> e <back> sono necessari qualora il documento riporti delle informazioni, allinizio o alla fine del testo vero e proprio (per esempio un indice o un titolo nella pagina), delle quali si necessita operare una codifica. <Body> è lelemento che introduce il corpo del testo. <Group> è da impiegarsi nel caso di una serie di testi facenti parte della medesima pubblicazione, ognuno dotato della propria individualità (ognuno con un proprio front, body e back) [18] .
Allinterno dellelemento <body> ci saranno ovviamente una serie di suddivisioni ulteriori, necessarie a definire la struttura interna del testo indagato; suddivisioni che evidenzieranno la scansione in sezioni <div> di vario livello (div0, div1, div2), in paragrafi <p>se necessario in linee <l>, interruzioni di pagina <pb>, ecc. Saranno necessari marcatori differenti a seconda del tipo di testo codificato; come rilevato la TEI consente infatti di impiegare un set di marcatori ad hoc per la tipologia del testo in esame. Ogni fenomeno può essere infatti codificato: dai nomi di persona ai nomi di luogo, alle indicazioni cronologiche; sono gli obiettivi della codifica che orienteranno verso la scelta del set dei marcatori.
E chiaro che la trattazione relativa alla delineazione delle caratteristiche di questa iniziativa non può dirsi sufficiente, in quanto una presentazione complessiva e totale richiederebbe di dedicare alla TEI una pubblicazione a sé stante. Si ritiene di aver comunque presentato quelli che sono gli aspetti più significativi di questo progetto che, per la sua complessità e diffusione, unitamente alla sua origine ed evoluzione in ambito umanistico, è ritenuto essere, da parte degli studiosi di informatica umanistica, il più valido strumento di codifica per la creazione di testi elettronici e quindi ledificazione di banche dati testuali di ampio respiro [19] .
Con una precisazione.
Esiste infatti un limite sostanziale nel modello di codifica proposto dalla TEI, limite che inficia la realizzazione di un modello testuale adeguato alle necessità di analisi e di interpretazione [20] .
Ripartiamo dalla nozione di testo. Si è visto che la forma che linformazione testuale deve assumere per essere sottoposta a procedimenti di elaborazione automatica è quella della sequenza di caratteri.
La nozione di testo così intesa (sequenza o stringa di caratteri) è molto differente da quella del testo inteso in termini letterari. In ambito informatico, per testo non si intende il materiale letterario nella forma in cui è stato scritto originariamente dallautore, ma uninformazione codificata in forma di stringhe di caratteri, ossia una rappresentazione dellinformazione che consiste esclusivamente di caratteri. Una simile forma di rappresentazione non cattura, evidentemente, che una piccola parte dellinformazione testuale: al testo inteso come dato costituito dalla sola successione dei caratteri, occorre aggiungere esplicitamente, attraverso linserimento di marche o segni convenzionali, tutta linformazione testuale che non è possibile rappresentare in questa forma.
Abbiamo visto come lo scopo della codifica del testo, e lobiettivo della TEI, sia esattamente questo: definire attraverso lausilio di una serie di marcatori la struttura logica degli oggetti testuali, strutturando cioè i dati testuali come informazione.
Ma se si concepisce la codifica del testo come una rappresentazione di quellinformazione che si aggiunge al testo vero e proprio, e che eccede da esso, allora ci si trova di fronte ad una sostanziale ambiguità: da un lato si intende il testo come oggetto letterario, dallaltro come sequenza di caratteri; così inevitabilmente si scambia il testo con la sua rappresentazione, il testo con il documento.
Questo è ciò che essenzialmente limita il modello computazionale assunto dalla TEI e che nasce dallambiguità della nozione di codifica, lasciata sostanzialmente irrisolta.
La forma di rappresentazione e il conseguente modello del testo assunti dalla TEI, se ammettono infatti la possibilità di rappresentare strutture diverse dello stesso testo, non riescono a riunirle in ununica e coerente forma di rappresentazione.
Ma torniamo al modello del testo assunto dalle norme di codifica stabilite dalla TEI. Limplicita assunzione di questo modello dipende dalla scelta dello SGML come linguaggio base. LSGML definisce un documento in termini strutturali come una gerarchia ordinata di oggetti di contenuto testuale. La struttura è gerarchica, perché oggetti di tipo diverso sono contenuti luno nellaltro, come in uno schema di classificazione in cui classi più generali comprendono classi più particolari, o come in una struttura ad albero; ed è ordinata, perché tra gli oggetti cè una relazione lineare e dati due oggetti qualsiasi contenuti in un documento si può sempre affermare che luno viene prima dellaltro.
Questa nozione di testo non tiene però conto che talvolta lo stesso documento si conforma a diverse strutture sovrapposte, le quali non possono essere inserite nella stessa struttura gerarchica di modo che la sua elaborazione varia a seconda della particolare struttura considerata; né può tenere in considerazione il fatto che esistono relazioni strutturali di tipo non gerarchico. Assumendo lSGML come base per la definizione delle norme e dei linguaggi di codifica, la TEI assume implicitamente questo modello strutturale come modello fondamentale di rappresentazione del testo e vincola di conseguenza la forma di rappresentazione del testo ad una struttura di dati affatto particolare, che non permette di riunire in una singola rappresentazione coerente modelli strutturali diversi e alla quale non pare così applicabile un modello computazionale pienamente adeguato alle necessità dellanalisi e dellinterpretazione del testo.
La struttura del testo nella TEI viene dunque identificata con quella particolare struttura della sua forma di rappresentazione che meglio si presta alle necessità della manipolazione dei documenti; ma il vantaggio dellelaborazione automatica consiste proprio nello svincolare la rappresentazione del testo dal modello strutturale del documento stampato.
6.4 HTML Hyper Text Markup Language
Naturalmente il numero di DTD esistenti, definizioni di set di marcatori ad hoc per ogni corpus documentario dotato delle medesime caratteristiche strutturali, sono molteplici e loptare per luna o per laltra significa aver individuato il proprio modello della fonte in oggetto. LHTML è la DTD divenuta ufficiale nellambito della produzione di ipertesti, cioè di documenti navigabili a tuttoggi disponibili sul web. LHTML è quindi un prodotto SGML, nasce cioè nel rispetto delle specifiche della sintassi dello standard. Naturalmente essendo una DTD di SGML il set di marcatori proposti non è modificabile e lutente-codificatore non può skippare verso un set differente, deve quindi conoscere il significato e il valore dei codici proposti dallHTML e su questa base produrre la propria pagina web. I limiti insiti in questo linguaggio hanno condotto, di necessità, allelaborazione di un linguaggio diverso, che consentisse la diffusione dei testi su Internet, a tuttoggi lo strumento per eccellenza ai fini della distribuzione dellinformazione strutturata.
Lattuale stadio evolutivo delle tecnologie di gestione della documentazione in formato elettronico ha notevolmente contribuito a migliorare lefficienza e la fruibilità del materiale in MRF; lavvento delle reti e quindi di un sistema di interscambio delle informazioni di dimensioni mondiali, il Word Wide Web, ha condotto ad una sempre più consistente diffusione di dati strutturati. Tuttavia questa modernissima architettura soffre di alcuni limiti che inficiano lottimizzazione del suo operare. La causa sostanziale di tali limiti risiede nel cuore del Web, vale a dire nel linguaggio HTML.
Il primo gruppo di limiti riguarda essenzialmente lincapacità di questo linguaggio di fornire unadeguata rappresentazione dellinformazione. La rappresentazione e la codifica dei dati sono il fondamento di un sistema di gestione dellinformazione. LHTML impone in questo senso pesanti restrizioni. In primo luogo è un linguaggio di rappresentazione non modificabile, quindi chiuso; questo significa che non è concesso al codificatore di intervenire personalmente laddove lo ritenga necessario: lautore potrà solo scegliere entro un numero predefinito di elementi, capaci di descrivere solo taluni fenomeni testuali e non avrà la facoltà di esplicitarne di diversi, anche se la struttura del testo lo richiederebbe, o di qualificarli in modo differente.
In secondo luogo HTML è un linguaggio scarsamente strutturato, dotato di una sintassi poco potente, incapace di descrivere fenomeni complessi o informazioni altamente organizzate; ne consegue che non può essere utilizzato come sistema di interscambio per contenuti informazionali particolarmente elaborati come potrebbe essere un record di una base di dati. A tutto questo si aggiunge una spiccata predilezione per marcatori stilistici più che strutturali, cioè una codifica improntata alla descrizione dellaspetto fisico del documento piuttosto che alla struttura logica del testo.
Un secondo limite dellHTML è riguarda la definizione dei link ipertestuali. Questo linguaggio di codifica prevede infatti, in un costrutto ritenuto ipertestuale, il solo link unidirezionale: sia lorigine che la destinazione devono essere cioè esplicitate nei rispettivi documenti. Un sistema ipertestuale dovrebbe invece essere corredato da una serie di collegamenti ipertestuali, corrispondenti alle molteplici relazioni semantiche che si potrebbero definire tra gli elementi di un documento (link bidirezionali, link che puntano su sezioni strutturali di un documento di destinazione e non su una singola stringa, link sequenziali che identificano una serie di documenti fra loro correlati, ecc.).
Da questi limiti, che potremmo definire di natura rappresentazionale, ne derivano altri di natura operativa, riguardanti cioè il rapporto autore-sistema e lettore-sistema e quindi la loro facoltà di interagire con il documento codificato.
Innanzitutto la possibilità di un controllo più elastico da effettuarsi sullaspetto del documento, che risulta invece alquanto rigido e limitato. Questo significa che una pagina Web deve essere progettata per un output dotato di caratteristiche predefinite, con il rischio quindi di non ottenere i medesimi risultati, visibili su un determinato schermo, quando li si prova a riprodurre su di un altro dispositivo di visualizzazione o nelloutput si carta.
Inoltre HTML non consente di generare viste differenziate sul medesimo documento, facoltà talora necessaria alle esigenze di un ipotetico lettore (per esempio ottenere diverse versioni linguistiche a partire da un unico documento multilingua).
La limitata consistenza strutturale ostacola la creazione automatica e dinamica di indici e sommari. Per lo stesso motivo sono notevolmente ridotte efficienza, efficacia e globalità della ricerca di informazioni sul Web. I motori di ricerca si muovono secondo un information retrieval full-text, che non prende in considerazione la struttura del documento, ma restituisce riferimenti a documenti interi.
Succede poi sovente di rintracciare una pagina sul Web che è ovviamente solo una porzione di una più vasta collezione; spesso accade di trovare un link ad un indice, ad una home page, o altri riferimenti utili a raggruppare un insieme di dati relativi al medesimo contenuto informativo ed appartenenti al medesimo autore, o comunque inerenti lo stesso soggetto dindagine. Accade che allatto della stampa sia necessario operare su ogni singolo file HTML. Ci sarebbe invece un modo migliore per esprimere le interrelazioni sussistenti tra un set di pagine, in modo che possano essere processate come un unico file strutturato. Dovrebbe essere possibile aggiungere metadata (informazioni su di uninformazione, informazione quindi comprensibile dalla macchina, o meglio, linsieme di dati che descrivono una o più risorse informative sotto un certo aspetto) alle pagine Web, e raggiungere quindi lobiettivo della notifica delle mutue relazioni sussistenti tra le singole pagine.
Per concludere, a rendere ancora più complessa la situazione, sono intervenuti anche i browers, Netscape e Microsoft, che hanno iniziato linfelice pratica dellintroduzione di loro proprie e individuali extensions al linguaggio HTML. Questo ha condotto gli autori di pagine Web a giungere a pesanti compromessi, al fine di rendere le loro pagine accessibili allutenza, pur volendo impiegare le ultime features introdotte dai browser vendors. La conseguenza inevitabile è stata la realizzazione di siti inadeguati. Gli autori devono comprendere che il Web non è realmente Word Wide se essi scelgono di utilizzare extensions non universalmente supportate.
Per superare questi limiti si è tentata una generalizzazione del supporto sul Web ad SGML, il linguaggio standard da cui deriva lo stesso HTML, unapplicazione particolare dello standard ISO. Lobiettivo è stato quello di modificare la stessa architettura del Web per consentire di usare anche altre applicazioni SGML, oltre a quella universalmente nota, lHTML. Questo consentirebbe la distribuzione di documenti in MRF con formato SGML, garantendo un potere di controllo dellautore sulla struttura delle informazioni pubblicate; ogni editore potrebbe utilizzare il linguaggio di codifica più adeguato alle sue necessità, a cui poi associare uno o più fogli di stile, sovrintendendo così alla presentazione dei documenti pubblicati.
Per superare questi ostacoli si è deciso quindi di sviluppare un sottinsieme semplificato di SGML, appositamente pensato ai fini della creazione di documenti sul Web. Questo linguaggio è stato denominato XML, Extensible Markup Language.
6.5 XML Extensible Markup Language [21]
La codifica SGML dei testi elettronici offre una serie di consistenti vantaggi dal punto di vista del trattamento informatico.
In primo luogo, potendo un file SGML essere compilato ricorrendo esclusivamente a stringhe di caratteri ASCII stampabili, esso è facilmente portabile su ogni tipo di piattaforma hardware e software. Inoltre un testo codificato secondo il formato SGML può essere impiegato per differenti scopi, variabili secondo il trattamento computazionale cui sottoporre la fonte (stampa su carta, presentazione multimediale, indagine ed analisi effettuata tramite specifici software, elaborazione allinterno di una base di dati) consentendo di evitare il ricorso a conversioni tra formati spesso incompatibili. Infine la natura altamente strutturata di un documento SGML si presta allo sviluppo di complesse applicazioni (aggiornamento di database o creazione di strumenti di information retrieval contestuali).
Ladozione di una tecnologia come SGML sul Web risolverebbe molti dei problemi che ne limitano le enormi potenzialità. Tuttavia SGML è dotato di una complessità tale da renderne alquanto complessa limplementazione. Per questa ragione il W3C (Word Wide Web Consortium), ha optato per la realizzazione di una versione semplificata dello standard ISO che ha condotto allo sviluppo dellXML.
XML è dunque un sottinsieme di SGML semplificato ed ottimizzato specificamente per applicazioni in ambiente Word Wide Web. Le caratteristiche dellXML sono quindi molto simili a quelle dellSGML (sia per quanto riguarda i principi di codifica che per quello che concerne le specifiche della DTD) [link al file definizioniXML.doc]. Si tratta dunque di un vero metalinguaggio, che permette di specificare molteplici classi di linguaggi di marcatura, e non una semplice applicazione SGML come HTML (che si configura come uno dei possibili linguaggi di codifica conformi alla sintassi SGML).
La grande novità che caratterizza XML, in antitesi a HTML, orientato alla descrizione della struttura fisica del documento e della rappresentazione visiva dello stesso, è la propensione alla descrizione delle informazioni testuali in un formato leggibile e comprensibile dallutente, prescindendo dalle indicazioni relative a come i dati devono essere visualizzati. XML è un database-neutral e un device-neutral format; solo in un secondo momento i dati codificati in XML potranno essere indirizzati a differenti devices, usando lExtensible Style Sheet Language (XSL). Essendo XML extensible, rispetto a HTML (che prevede il solo utilizzo di prefissati set di elementi) il suo utilizzo eliminerà il bisogno da parte dei produttori di browser di aggiungere specifici tag HTML incompatibili (le extensions di cui si diceva).
Questo è possibile perchè XML è un metalinguaggio impiegato per realizzare altri linguaggi specifici, denominati anche vocabolari. Ogni vocabulary può essere costruito mediante il ricorso ad una DTD che fornisce le regole necessarie alla definizione degli elementi e della struttura del nuovo linguaggio [22] .
Dunque anche un singolo documento XML valido, un singolo esemplare di documento conforme a XML, deve essere associato ad una DTD che ne specifica la grammatica. Tuttavia a differenza di SGML, XML consente la distribuzione anche di documenti privi di DTD, documenti well-formed, dotati di una sintassi più rigida rispetto a quella di un documento SGML (per esempio è sempre obbligatorio inserire i marcatori di chiusura negli elementi non vuoti). Per questa ragione alcune delle più complesse caratteristiche di SGML, che ne accrescono la complessità computazionale, sono state eliminate in fase di realizzazione del nuovo progetto del Consortium. Sono state dunque introdotte novità nella sintassi, giungendo ad una consistente riduzione della complessità di implementazione di un browser XML e facilitando di molto lapprendimento del linguaggio. La semplificazione poi non comporta alcuna incompatibilità: un documento XML valido è sempre un documento SGML valido; ne deriva che il passaggio e quindi la trasformazione di unapplicazione o di un documento SGML in uno XML è una procedura quasi sempre automatica.
In termini opposti alla tendenza ora dominante nellambito delle recenti tecnologie Web, XML è orientato alla descrizione della struttura del testo e non alla rappresentazione visiva del documento. Un file HTML riflette il privilegio accordato alla rappresentazione della struttura del documento ma non ad un altrettanto adeguata descrizione della struttura dei dati. Un markup HTML si limita a fornire informazioni necessarie a comprendere come gli elementi testuali sono disposti allinterno della pagina, ma non fornisce alcuna informazione utile a comprendere il significato degli elementi codificati, in quanto ogni singolo tag non apporta nessuna nozione relativa al blocco di testo cui è affiancato. Quando un documento HTML viene processato dal browser, la semantica viene ignorata, la macchina non comprende quale tipo di informazione deve essere resa, il contenuto informazionale del testo non è oggetto di indagine.
Viceversa una codifica XML presta attenzione non allaspetto degli elementi testuali, cioè alla loro distribuzione fisica, ma al contenuto di ogni singola partizione; esprime quindi, tramite il ricorso a marcatori alfabetici, il significato della stringa di caratteri cui il tag è associato. Diremo che XML focalizza la codifica sulla semantica e sulla struttura dei dati, mantenendo altresì lordinamento gerarchico che sovrintende lorganizzazione degli elementi della fonte. Ne deriva un assoluto parallelismo con la distribuzione dei record allinterno di una base di dati.
Linsieme delle specifiche del progetto XML permette dunque di creare, gestire, manipolare e mantenere applicazioni ipermediali complesse in rete. XML si configura dunque come un potente metalinguaggio in grado di superare quella molteplicità di limitazioni di una delle più note applicazioni SGML, HTML. La possibilità di introdurre tag custom per codificare ogni tipo di fenomeno testuale o di elemento documentale fa di XML uno strumento innovativo. Senza dimenticare che lattenzione accordata allanalisi della struttura dei dati, con la possibilità fornita allutente di comprendere il significato delle componenti testuali grazie allutilizzo personalizzato dei marcatori, costituisce una imprescindibile potenzialità di XML. Lessere XML un sottinsieme di SGML, compatibile con HTML, consente spesso di non dover ricorrere allelaborazione di nuovi tool per la gestione e la manipolazione dei documenti codificati secondo le specifiche del W3C; molteplici parser e conversion tool nati per HTML e SGML funzionano in modo ottimale anche con XML.
La progressiva implementazione delle specifiche del W3C rappresenta un salto evolutivo nellarchitettura del web; il fatto che lindustria delle tecnologie Internet, ed in particolare le aziende leader del settore, Microsoft e Netscape, labbiano accolto e supportato consente di pensare in termini positivi ad un futuro salto definitivo di XML nel Word Wide Web.
[1] Se si codifica cioè esattamente laspetto grafico che deve avere un titolo (corpo 14, grassetto, centrato, 12 punti tipografici dopo), quella riga, quel titolo si porterà sempre dietro quella sua rappresentazione grafica, se invece ci limitassimo a dire che quello è un titolo nulla ci vieterebbe di istruire il nostro programma di visualizzazione o di stampa al fine di renderlo in molti modi differenti.
[2] Il testo ufficiale dello standard ISO, commentato
dallo stesso inventore del linguaggio, è in C.F. Goldfarb, The SGML
Handbook, Oxford, Oxford University Press, 1990. I testi impiegati
come consultazione sono: E. Van Herwijnen, Practical SGML, Boston-Dordrecht-London,
Kluwer Academic Publishers, 1994; J. M. Smith, SGML e standard relativi,
Bologna, Clueb, 1994, traduz.; la SGML/XML Web Page di Robin
Cover, reperibile su Internet, via web, allindirizzo
http://www.oasis-
open.org/cover/
sgml-xml.html.
[3] E più corretto affermare che lSGML riconosce sia la struttura logica che quella di layout di un documento, entrambe le quali possono essere associate allo stesso contenuto informativo. LSGML fa riferimento, essenzialmente, alla struttura logica del testo e, solitamente, non a quella di layout, per la quale vi sono altri standards collegati. Tuttavia lSGML offre la possibilità di legare una struttura logica ad una o più strutture di layout, sia che linformazione di legame si trovi in memoria assieme al documento, sia che si trovi ad esso associata per un eventuale futuro output.
Ciò che lSGML consente è quindi solo il collegamento della struttura logica alla/e struttura/e di layout.
[4] Le relazioni tra elementi possono essere relazioni di inclusione, di ordine e di ricorrenza: per esempio, relativamente ad un documento testuale, potremmo asserire che un elemento paragrafo è incluso in un elemento capitolo e può ricorrere molteplici volte, oppure che un elemento introduzione deve precedere un elemento capitolo, ecc.
[5] Un esempio di albero gerarchico per un semplice testo è: nodo radice corrispondente al testo stesso; testo composto da uneventuale introduzione, seguita da un certo numero di capitoli; a loro volta capitoli composti, ognuno, da un titolo, seguito da uno o più paragrafi; nodi terminali, o foglie, contenenti stringhe di caratteri costituenti il testo stesso.
[6] Come già rilevato, tutti i testi hanno, per esempio, unintroduzione e una serie di capitoli; i capitoli hanno tutti un titolo ed una serie di paragrafi ecc.
[7] Si dovranno porre una tag iniziale e una tag finale ad ogni elemento testuale; ogni tag sarà costituita da un nome convenzionale identificante lelemento racchiuso tra due delimitatori.
[8] Essa prevede di impiegare <e> come tag iniziale ed </e> come tag finale per ogni elemento.
[9] Essa permette di attribuire [e] come delimitatori della tag iniziale (al posto delle parentesi ad angolo) ed [/e] per la tag finale.
[10] In questo risiede uno dei punti forza dellSGML e cioè la sostanziale indipendenza dalle lingue: grazie a questa possibilità offerta dallo standard, lSGML può essere impiegato anche per lingue non derivanti dal latino, le quali, come già in precedenza rilevato, non trovano riscontro nella tabella ASCII. Lo standard potrà essere quindi agevolmente utilizzato, per esempio, in Grecia, in Arabia o in Polonia.
[11] Supponiamo di voler rappresentare la già citata e maiuscola accentata grave (E). Chiaramente non è presente tra i primi 128 caratteri del codice ASCII, e precisamente nellASCII a 7 bit, cioè quelli più agevolmente comprensibili da parte dellelaboratore. La sintassi che regola la costruzione delle entity in SGML prevede il rispetto di una precisa sintassi che consentirà la rappresentazione di un qualsivoglia carattere. La e commerciale (&) è il segnale di inizio codifica; il punto e virgola (;) quello di fine codifica. Tra i due segnali si dovrà inserire il carattere da codificare (nel nostro esempio la E) affiancato ad una descrizione predefinita della codifica (nel nostro esempio grave). Questo ci consentirà di rappresentare la E indicandola con il gruppo È.
[12] Il titolo, per esteso, dello standard è ISO 646 Information Processing - ISO 7-Bit Coded Character Set for Information Interchange. Esso corrisponde alle posizioni 0-126 della tavola ASCII.
[13] Quella che, come già descritto, assegna <e> come delimitatori di un tag iniziale ed </e> come delimitatori di una tag finale.
[14] Cfr. ACH/ACL/ALLC, Guidelines for Electronic Text Encoding
and Interchange (TEI P3), a cura di C. M. Sperberg Mc. Queen e L.
Burnard, Chicago, 1994. Trattasi della pubblicazione scelta come
punto di riferimento per lintera trattazione relativa alla delineazione
delle caratteristiche della TEI. Per quanto riguarda le risorse sul
web si consiglia: il sito del CRILET per la TEI Lite in italiano http://rmcisadu.let.
uniroma1.it/crilet/sgml/
teiu5-it/split/
teiu5-it.html e il sito ufficiale TEI
http://www.tei-c.org/.
[15] ".....More specific design goals of the TEI have been that the Guidelines should: provide a standard format for data interchange; provide guidance for encoding of texts in this format; support the encoding of all kinds of features of all kinds of texts studied by researches; be application independent." ACH/ACL/ALLC, Guidelines for Electronic Text Encoding and Interchange (TEI P3), a cura di C. M. Sperberg Mc. Queen e L. Burnard, Chicago, 1994.
[16] E sempre consigliabile specificare che il file rappresenta una versione elettronica del documento in questione: invece delle Novelle Porrettane sarebbe più corretto dire Trascrizione elettronica delle Novelle Porrettane.
[17] La trascrizione risulterebbe:
<fileDesc>
<titleStmt>
<title>Trascrizione elettronica delle Novelle Porrettane
</title>
<principal>Francesca Tomasi</principal>
</title>
</fileDesc>
[18] La struttura generale di un testo (un unico testo, non un corpus) codificato conformemente alla TEI risulterebbe dunque:
<Tei.2> [start tag della TEI]
<teiHeader> [contenente tutte le informazioni relative] </teiHeader>
<text> [start tag
del testo] </text>
<front> [dati che precedono il corpo del documento] </front>
<body>
[corpo del testo]
</body>
<back> [dati che seguono il corpo del documento] </back>
</text> [end tag del testo]
</Tei.2>
[end tag della Tei]
[19] Per banca dati testuali (o database testuali) si intende un archivio su supporto informatico che raccoglie un insieme di testi in MRF. Tali archivi elettronici si possono dividere in due tipologie, sulla base delle modalità di accesso e delle pratiche di consultazione dei dati in essi contenuti. Avremo basi di dati accessibili a livello locale, dove il supporto più diffuso ai fini della distribuzione è il CD-ROM, e dove allutente è consentita la sola consultazione dei testi ivi memorizzati e banche dati on-line, accessibili da stazioni di lavoro remote rispetto allarchivio, disponibili in rete e quindi consultabili tramite Internet, e che possono essere dotate di strumenti di text-processing e di information retrieval.
[20] Si allude alla distinzione tra testo e documento allatto della realizzazione di un modello computazionale adeguato.
[21] I manuali a tuttoggi in commercio
sul linguaggio XML sono davvero moltissimi. Vista la continua evoluzione
del linguaggio e la costante revisione delle specifiche correlate, si
consiglia di visitare la serie dei siti web dedicati. Primo fra tutti
il sito ufficiale che riporta le specifiche tecniche: http://www.w3.org/
XML; il sito di Robin Cover, il migliore fra quelli esistenti, che presenta
materiale utile realtivo al linguaggio, alle specifiche e agli standard,
alle risorse web, al software, ecc: http://www.oasis-open.org/
cover/sgml-
xml.html; un corso e un tutorial XML dal sito html.it: http://www.html.it/
xml/; http://www.
xmlsoftware.com tutto sul software XML disponibile.
[22] Ora esiste anche una versione della TEI utilizzabile con XML. E stato sufficiente adeguare la TEI per SGML alle richieste della sintassi XML. Cfr. http://www.tei-c.org