Introduzione alla codifica XML per i testi umanistici Daniele Silvi, Domenico Fiormonte, Fabio Ciotti fiormont@uniroma3.it - silvi@lettere.uniroma2.it - ciotti@lettere.uniroma2.it
La digitalizzazione dei testi / 1 Negli ultimi anni si è verificata una vera e propria esplosione delle iniziative di digitalizzazione Tuttavia non sempre l aspetto qualitativo dell operazione di digitalizzazione è tenuto nel dovuto conto
La digitalizzazione dei testi / 2 Con aspetto qualitativo intendiamo la considerazione di tutti quegli elementi teorici e tecnologici che rendano le risorse testuali digitalizzate: intellettualmente integre Accessibili nello spazio e nel tempo
Requisiti di un edizione scientifica elettronica / 1 Un edizione scientifica elettronica può offrire una serie di strumenti analitici e di apparati che la rendono proficuamente utilizzabile da un ampio spettro di utenti (non necessariamente specialisti) La creazione di edizioni elettroniche di testi scientificamente e criticamente adeguate è un compito intellettuale tanto opportuno ai fini del miglioramento della ricerca scientifica quanto necessario alla preservazione del patrimonio culturale
Requisiti di un edizione scientifica elettronica / 3 Un edizione scientifica elettronica deve assumere una forma tale da garantire il migliore equilibrio tra necessità e vincoli imposti dal medium digitale e requisiti di integrità intellettuale
Requisiti di un edizione scientifica elettronica / 4 L integrità intellettuale implica: rispetto tanto per il contenuto che per la forma originaria del documento da digitalizzare. A tale fine si renderanno necessarie: annotazioni editoriali che indichino al lettore come utilizzare il testo rappresentazione esplicita della tradizione testuale dell opera mediante un apparato di varianti selettivo o esaustivo specificazione delle fonti primarie utilizzate per la costituzione del testo ed eventuale loro trascrizione comprensiva di tutti i dati relativi al loro stato (cancellazioni, omissioni, lacune etc.) indicazione esplicita delle correzioni e delle congetture interpretative effettuate dall editore nella costituzione del testo, con specificazione del livello di certezza che l editore assegna a ciascuna di esse
Requisiti di un edizione scientifica elettronica / 5 Un edizione scientifica elettronica deve esser accessibile al maggior numero di utenti possibile Un edizione scientifica elettronica deve godere di una sufficiente longevità, almeno pari a quella di un edizione cartacea sufficiente significa atta a garantire la preservazione a lungo termine delle risorse digitalizzate
Requisiti di un edizione scientifica elettronica / 6 La base per la creazione di un edizione scientifica digitale (o di un archivio di edizioni digitali) non può in nessun modo essere il software! Perché?
Requisiti di un edizione scientifica elettronica / 7 Nessun software è adeguato per ogni genere di utilizzazione Nessun software, per quanto efficiente e versatile può essere gradito a tutti i possibili utilizzatori di una risorsa testuale digitalizzata Ma soprattutto, i software hanno un ciclo di vita estremamente ridotto e sono legati a una particolare piattaforma informatica
Requisiti di un edizione scientifica elettronica / 8 Ma se il software non è la risposta, come è possibile realizzare edizioni scientifiche digitali che rispettino i requisiti di integrità e accessibilità? Innanzitutto dobbiamo scegliere strumenti in grado di inglobare la maggior parte delle informazioni rilevanti a livello di rappresentazione dei dati (o codifica) Ciò si traduce nella scelta del sistema di codifica ottimale per la rappresentazione delle informazioni testuali
La codifica dei testi / 1 L edizione digitale di un documento richiede la rappresentazione dell informazione contenuta in una fonte testuale in un formato utilizzabile da un elaboratore (Machine Readable Form), ovvero una codifica A tale fine occorre utilizzare un apposito linguaggio informatico che deve rispondere ai vincoli formali imposti dalla elaborazione automatica e allo stesso tempo deve essere sufficientemente espressivo per rappresentare la complessità dell oggetto testo
La codifica dei testi / 2 La codifica è la rappresentazione formale di un testo a un qualche livello descrittivo mediante un linguaggio informatico Si tratta dunque di un processo rappresentazionale che implica una serie di operazioni di selezione e classificazione degli elementi rilevanti in funzione di un determinato punto di vista
I linguaggi di markup / 1 Per conseguire un adeguata rappresentazione delle caratteristiche di un testo sono stati sviluppati i markup language, linguaggi di codifica del testo I ML sono costituiti da un insieme di istruzioni, ciascuna dotata di particolari funzioni Le istruzioni di un markup language sono costituite da stringhe di caratteri visibili e delimitate da caratteri, dette tag (etichette) Una sintassi regola l uso la forma e i rapporti tra i tag
XML: cosa è XML: Extensible Markup Language: è un linguaggio che consente la rappresentazione di documenti e dati strutturati su supporto digitale è uno dei più potenti e versatili sistemi per la creazione, archiviazione, preservazione e disseminazione di documenti digitali ma la sua sintassi rigorosa e al contempo flessibile ne rende possibile l applicazione anche nella rappresentazione di dati strutturati, fornendo una soluzione alternativa ai tradizionali sistemi DBMS relazionali
XML: le origini XML è stato sviluppato dal World Wide Web Consortium (http://www.w3.org) Le specifiche sono state rilasciate come W3C Recommendation nel 1998 e aggiornate nel 2004 XML deriva da SGML, un linguaggio di mark-up dichiarativo sviluppato dalla International Standardization Organization (ISO), e pubblicato ufficialmente nel 1986 con la sigla ISO 8879 XML nasce come un sottoinsieme semplificato di SGML orientato alla utilizzazione su World Wide Web ma ha assunto ormai un ruolo autonomo e una diffusione ben maggiore del suo progenitore
XML: caratteristiche XML è un metalinguaggio, che permette di definire sintatticamente linguaggi di mark-up Un linguaggio XML permette di esplicitare la (le) struttura(e) di un documento in modo formale mediante marcatori (mark-up) che vanno inclusi all interno del testo (character data)
XML: caratteristiche / 2 XML adotta un formato di file di tipo testuale: sia il mark-up sia il testo sono stringhe di caratteri XML si basa sul sistema di codifica dei caratteri ISO 10646/UNICODE Un documento XML è leggibile da un utente umano senza la mediazione di software specifico
XML: caratteristiche / 3 XML è indipendente dal tipo di piattaforma hardware e software su cui viene utilizzato XML permette la rappresentazione di qualsiasi tipo di documento (e di struttura testuale) indipendentemente dalle finalità applicative XML è indipendente dai dispositivi di archiviazione e visualizzazione un documento XML può essere archiviato su qualsiasi tipo di supporto digitale un documento XML può essere visualizzato su qualsiasi dispositivo di output
XML: caratteristiche / 4 On-line WWW File XML <Title> Titolo </title> <p>paragarafo.. <p>paragrafo Carta CD-ROM DBMS NATIVI O RELAZIONALI DOCUMENT MANAGEMENT SYSTEMS
XML: sintesi principi fondamentali XML adotta un paradigma di codifica dichiarativo e descrittivo XML descrive un documento come una struttura ad albero XML introduce il concetto di tipo di documento e di sintassi del documento XML si basa su ISO 10646 /UNICODE
Nozioni di base per creare e visualizzare documenti XML
Il concetto di modello Prima della codifica di un qualsiasi documento è necessario studiarne la natura, le caratteristiche e le possibili funzionalità In questa fase perciò scegliamo non solo come ma che cosa vogliamo rappresentare/codificare Dal punto di vista della codifica informatica, questo processo analitico coincide con la creazione di un modello del documento fonte Questo modello, una specie di matrice, in XML si chiama tipo di documento, Document Type Definition
Il concetto di tipo di documento Un applicazione XML si basa su un determinato tipo di documento Un tipo di documento descrive le caratteristiche di una classe di documenti strutturalmente omogenei Il tipo di documento è il fondamento della sintassi e della semantica di una applicazione XML
La Document Type Definition Una DTD è costituita da un elenco di dichiarazioni (markup declaration) che descrivono la struttura del documento Le dichiarazioni di una DTD definiscono: gli elementi strutturali (element) di un documento mediante un identificatore generico il modello di contenuto di ogni elemento (content model) ovvero gli elementi che contiene e i loro rapporti (un elemento può essere vuoto) la lista degli attributi associati a ciascun elemento e il loro tipo
Gli ingredienti necessari Si può generare il file.dtd con qualunque editor di testo (TextPad va benissimo) Gli elementi da inserire sono: Elemento radice Elementi figli Attributi Indicatori di occorrenza
Elemento radice Si tratta dell elemento che dovrà contenere tutti gli altri, quello che apparirà in cima all albero di codifica XML nel documento Nella TEI l elemento radice si chiama TEI.2 e contiene i diversi elementi figli (TeiHeader, Text, ecc) Nell esempio seguente l elemento radice è: <!ELEMENT libro (introduzione*, corpo+, epilogo*, indice*)>
Entità parametrica Modello di contenuto Elemento radice Caratteri di testo
Indicatori di occorrenza e connettori Indicatori di occorrenza Punto interrogativo (?), zero o una occorrenza Segno più (+), una o più occorrenze; Asterisco (*), zero, una o più occorrenze Connettori Virgola (,), indica sequenza degli elementi Barra verticale ( ), indica alternanza degli elementi.
La codifica del documento
Mettere tutto insieme Una volta definita la DTD si passa alla codifica del documento Nell esempio propongo la codifica di una raccolta di poesie con tag inventati
DTD File codifica XML
La sintassi XML Validità e buona formazione
Aspetti di sintassi generale I nomi di elementi, attributi e entità sono sensibili alla differenza tra maiuscolo e minuscolo Il mark-up è separato dal contenuto testuale mediante caratteri speciali: < > & Tali caratteri speciali non possono comparire come contenuto testuale e devono essere eventualmente sostituiti mediante i riferimenti a entità < > &
Vincoli di buona formazione Esiste un solo elemento radice Tutti gli elementi non vuoti devono presentare sia il tag iniziale sia il tag finale Tutti gli elementi devono essere correttamente annidati Tutti i valori di attributo devono essere racchiusi tra apici doppi o singoli
La codifica degli elementi Sintassi di un elemento Delimitatore Finale Start tag Delimitatore Iniziale End tag <nome>contenuto dell elemento</nome> Delimitatore Iniziale Start tag Delimitatore Finale End tag
I quattro errori comuni Spesso codificando in XML si può cadere in questi errori: 1. Omettere i tag di chiusura: ogni tag va aperto e chiuso <p>oggi c'è il sole (sbagliato) <p>oggi c'è il sole</p> (esatto)
2. Dimenticare che XML è sensibile alle maiuscole e minuscole: <PersName>Daniele</persname> (sbagliato) <PersName>Daniele</PersName> (esatto)
3. Inserire gli spazi nel nome dell elemento: <Pers Name> (sbagliato) <PersName> (esatto)
4. Dimenticare le virgolette per i valori degli attributi: <note place=foot> (sbagliato) <note place="foot"> (esatto)
Parte II: elementi di codifica dei testi secondo TEI-XML
TEI Text Encoding Initiative
TEI La Text Encoding Initiative è un progetto internazionale che ha visto coinvolte le maggiori organizzazioni internazionali dedicate all'informatica Umanistica
TEI: macrostruttura Tutti i testi conformi alla TEI contengono: una testata TEI <teiheader>, da considerarsi il frontespizio del documento elettronico; una trascrizione del testo vero e proprio marcata con l'elemento <text>.
Macrostruttura del testo La macrostruttura del testo Come già detto ogni testo unitario deve iniziare con l'elemento obbligatorio <text>. Esso è composto a sua volta da tre elementi di livello inferiore: <front>: contiene tutti i materiali di tipo avantestuale, che introducono il testo nelle edizioni a stampa, dalla pagina del titolo, al frontespizio, ad introduzioni, dediche, prefazioni, etc.; <body>: contiene il testo vero e proprio, il suo corpo; <back>: contiene tutti i materiali peritestuali che possono essere rinvenuti nelle pagine finali di un testo stampato, postfazioni, glossari, indici, etc.
La macrostruttura di un testo è la seguente: <text> <front> [materiali peritestuali iniziali] </front> <body> [testo] </body> <back> [materiali peritestuali finali] </back> </text>
Tei Header L intestazione elettronica TEI contiene informazioni analoghe a quelle contenute nel titolo della pagina di un testo stampato: documentazione della responsabilità editoriale, dati bibliografici, metodologie adottate per la codifica, etc
Contenuti del TeiHeader Una corretta documentazione del testo elettronico dovrebbe prevedere le seguenti informazioni: individuazione del testo elettronico attraverso le sue determinazioni bibliografiche: titolo, autore, luogo e data di edizione, ecc.; certificazione della responsabilità del testo, anche quando la codifica ha avuto diversi responsabili; indicazione della fonte; documentazione accurata delle metodologie di rappresentazione dei vari fenomeni testuali, delle scelte teoriche che permettano di interpretare correttamente i simboli usati nella codifica del testo, delle eventuali modifiche o correzioni introdotte rispetto alla fonte.
Struttura del TeiHeader L elemento <TEIheader> è a sua volta suddiviso in: <filedesc>: contiene la descrizione bibliografica del documento e della sua fonte; <encodingdesc>: contiene la descrizione delle scelte fatte nella codifica del testo; <profiledesc>: contiene una serie di informazioni accessorie che caratterizzano il testo (revisioni, etc.); <revisiondesc>: contiene la documentazione relativa ai diversi interventi di codifica.
Strutture XML: gli elementi
Gli elementi I componenti strutturali di un documento sono denominati elementi (element) Ogni nodo dell albero del tipo di documento è un (tipo di) elemento Ogni (tipo di) elemento è dotato di un nome (detto identificatore generico) che lo identifica
Gli elementi / 2 Esiste un (e uno solo) elemento, detto elemento radice (corrispondente al nodo radice dell albero), che non è contenuto da nessun altro e che contiene direttamente o indirettamente tutti gli altri Ogni elemento, escluso l elemento radice, deve essere contenuto da un solo elemento (elemento padre) e può contenere altri sotto-elementi (elementi figli) e/o stringhe di caratteri Esiste un sottoinsieme di elementi che non contengono altri elementi e che possono essere vuoti contenere esclusivamente stringhe di caratteri
Gli attributi A ogni elemento possono essere associati uno o più attributi (attribute) che ne specificano ulteriori caratteristiche o proprietà non strutturali. Ad esempio: il tipo rispetto a una data tassonomia la lingua del suo contenuto testuale un identificatore univoco un numero di ordine ecc.
Gli attributi / 2 Gli attributi XML sono caratterizzati da un nome che li identifica un valore Il valore di un attributo può avere un tipo esplicitato nella DTD Se un documento XML è solo ben formato, tutti i valori degli attributi sono di tipo CDATA
Doctype declaration: dov è la dtd? Se la definizione della DTD si trova in una entità esterna <!DOCTYPE nome_dtd SYSTEM sys-id > <!DOCTYPE Antologia SYSTEM c:\sgml\dtd \antologia.dtd > Se la DTD è dotata di un identificatore pubblico <!DOCTYPE nome_dtd PUBLIC pub-id sys-id > <!DOCTYPE TEI.2 PUBLIC -//TEI P4//DTD Main Document Type//EN tei2.dtd > n. b. il nome della DTD corrisponde al nome del suo elemento radice
La codifica degli elementi <text><div1> <p>subito, con le prime parole che le rivolse, volle avvisarla che non intendeva compromettersi in una relazione troppo seria </p> <p>la sua famiglia? Una sola sorella non ingombrante né fisicamente né moralmente, piccola e pallida, di qualche anno più giovane di lui </p> </div1></text>
La codifica degli elementi La relazione lineare tra i tag rappresenta la relazione gerarchica tra gli elementi Per ogni elemento, se il suo tag iniziale è nel contenuto di un elemento X allora il suo tag finale deve essere nel contenuto del medesimo elemento X Detto altrimenti le coppie di tag devono annidarsi correttamene e mai sovrapporsi (il 5 errore comune!)
La codifica degli elementi SBAGLIATO! <p>subito, con le prime parole che le rivolse, volle avvisarla che non intendeva compromettersi in <emph>una relazione troppo seria </p> <p>la sua famiglia?</emph>una sola sorella non ingombrante né fisicamente né moralmente, piccola e pallida, di qualche anno più giovane di lui </p>
La codifica degli elementi CORRETTO <p>subito, con le prime parole che le rivolse, volle avvisarla che non intendeva compromettersi in <emph>una relazione troppo seria </emph> </p> <p> <emph>la sua famiglia?</emph> Una sola sorella non ingombrante né fisicamente né moralmente, piccola e pallida, di qualche anno più giovane di lui </p>
La codifica degli elementi Gli elementi vuoti o sono rappresentati da entrambi i tag <nome_elemento> </nome_elemento> o assumono la seguente forma <nome_elemento/> Esempio: <img src= foo.gif />
La codifica degli attributi Ogni elemento XML può avere uno o più attributi Un attributo ha un nome e un valore, che può assumere diverse tipologie
La codifica degli attributi Gli attributi devono essere associati agli elementi all'interno del tag iniziale dopo l identificatore <nome_elemento nome_attributo = "valore"> contenuto </nome_elemento> Altri eventuali attributi vanno collocati dopo il primo separati da uno o più spazi Non possono esservi più istanze dello stesso attributo per un elemento
La codifica degli attributi <text resp= Italo Svevo n= Senilità > <div n= 1 > <p id= C1P1 >Subito, con le prime parole che le rivolse, volle avvisarla che non intendeva compromettersi in una relazione troppo seria </p> <p id= C1P2 >La sua famiglia? Una sola sorella non ingombrante né fisicamente né moralmente, piccola e pallida, di qualche anno più giovane di lui </p> <pb n= 5 />
I fogli di stile Come si presenta un documento XML
Standard correlati a XML La presentazione di un documento XML viene controllata da uno o più fogli di stile I linguaggi di stile utilizzabili con XML sono Extensible Stylesheet Language (XSL) XPath: selezione e individuazione di nodi XSLT: trasformazione tra alberi XSL-FO: formattazione di pagina Cascading Style Sheet (CSS)
XSL-T XSL: extensible Stylesheet Language L'eXtensible Stylesheet Language (XSL) è un insieme di tre linguaggi che forniscono gli strumenti per l'elaborazione e la presentazione di documenti XML in maniera molto flessibile. un meccanismo per l'individuazione dei dati da presentare un meccanismo per il controllo dell'elaborazione dei dati e di come la presentazione deve essere effettuata un meccanismo per la definizione della formattazione da applicare ai dati per la presentazione vera e propria
La famiglia XSL A ciascuno di questi tre meccanismi, XSL associa uno specifico linguaggio: XPath consente di individuare gli elementi e gli attributi di un documento XML sui quali verranno applicate le operazioni necessarie per la presentazione dei dati XSLT (XSL transformation) consente di controllare le operazioni che rendono i dati presentabili XSL-FO (XSL Formatting Objects) definisce un insieme di tag di formattazione
Alcuni marcatori TEI importanti
Elemento paragrafo <p> (paragraph) è l'elemento fondamentale per la codifica dei testi in prosa ne rappresenta la più piccola unità testuale in cui essi possono essere suddivisi Naturalmente può essere ovunque appaia un testo in prosa suddiviso in blocchi.
Elemento Div <div> contiene una sezione del corpo del testo, indicandone il livello logico La TEI prevede 7 livelli di div(ision) <div1> <div2> ecc
Elemento LG <lg> contiene un gruppo di versi che rappresentano una unità di qualche tipo (una strofa, un ritornello, ecc)
Elemento L <l> indica un singolo verso di una poesia
TEI Trascription of primary sources: alcuni esempi di elementi
<add> Usato nei casi di aggiunta di lettere, parole e frasi Tramite ATTRIBUTI possiamo specificare il tipo di aggiunta: <add place=above> indica una
<del> Si usa per la cancellazione di lettere, parole e frasi Tramite attributi possiamo specificare il tipo di cancellatura <del rend=strikethrough> indica una cancellazione tramite riga
<mod> Nel caso di correzioni istantanee possiamo usare il tag <mod> nel seguente modo: <mod type=subst> <del>the</del> <add place="above"> <del rend="overstrike">his</del> </add> </mod>
Sitografia http://www.tei-c.org http://www.tei-c.org/release/doc/tei-p5- doc/en/html/ref-elements.html [link diretto all elenco dei tag della P5]