Introduzione alla codifica dei testi

Transcript

Introduzione alla codifica dei testi
Introduzione alla codifica dei testi
TEI - Storia
1987 - Nancy Ide e Michael Sperberg McQueen organizzano un meeting per la
realizzazione di uno standard digitale per materiale umanistico basato su SGML
1990 - Pubblicazione della prima versione di TEI P1
Guidelines for the Encoding and Interchange of Machine-Readable Texts
1992 – TEI P2
1999 – TEI P3
2000 – Nascita di TEI-C, il consorzio che mantiene e sviluppa TEI
2002 – TEI P4 basata su XML
2012 – TEI P5 diventa unico standard. Finisce la retro-compatibilità con le versioni
precedenti.
Linee Guida TEI P1
●
Sviluppare un formato standard per lo scambio dei dati
●
Sviluppare una guida per codificare testi in questo formato
●
●
Supportare la codifica di tutti gli elementi di qualsiasi tipologia
di testo
Consentire la creazione di una definizione rigorosa del testo e
un'elaborazione veloce dei dati
●
Permettere estensioni definite dagli utenti
●
Essere indipendente dall'applicazione utilizzata
●
Avere una sintassi semplice, chiara e concisa
●
Essere facile da utilizzare senza ricorrere a software
specialistico
Quando e perché usare TEI
Quando
Il campo primario di utilizzo di TEI sono le biblioteche digitali, ma in generale si può utilizzare TEI
ogni volta che si vuole operare una digitalizzazione di un documento.
Un documento TEI non è direttamente visualizzabile in un formato grafico, ma il Tei Consortium
(TEI-c) mette a disposizione una serie di strumenti automatici per la conversione in formati più
adatti alla presentazione (es. HTML o LaTeX).
Perché
A differenza della maggior parte dei documenti digitali con cui abbiamo a che fare ogni giorno (PDF,
DOC, HTML,...), un documento TEI è un oggetto digitale che ha un valore. Infatti un documento
TEI è:
●
●
completamente indipendente da software esterno (requisito necessario per sopperire al
problema dell'obsolescenza del software nel tempo): un documento TEI è un documento XML,
pertanto è interpretabile correttamente su qualsiasi sistema operativo (presente e futuro) e
machine-readable.
preservabile nel futuro: il consorzio TEI-C garantisce le manutenzioni e gli aggiornamenti dello
standard TEI e questo previene l'obsolescenza del modello dati.
I formati comuni sono inadeguati allo scopo
●
●
●
●
●
Non è standard;
Dipende da Microsoft Word;
Illeggibile con altro software.
Non ha tag di rappresentazione
specifici per i testi;
Mescola tag per la presentazione e
tag per la descrizione.
●
●
●
●
Non è standard;
Marcatura relativa alla formattazione
del testo.
Testo non facilmente estraibile;
Formato basato sulla
visualizzazione, non sul contenuto.
XML è standard, machine-readable, indipendente da sw e adatto a incapsulare qualsiasi tipo di dato.
Per sua natura però è “troppo libero”: due biblioteche diverse possono utilizzare metadati diversi
per rappresentare le stesse informazioni. Quindi non potranno condividere i documenti senza
ricodificarli!
TEI si basa su XML e definisce un tagset specifico per la rappresentazione di testi.
Digital Preservation
Se TEI affronta il problema della preservazione lato software, esiste lo stesso problema
lato hardware, perché:
●
I supporti di memorizzazione diventano obsoleti (nastri, CD-ROM, HDD, SSD,...);
●
I supporti di memorizzazione si rompono;
●
I sistemi falliscono (guasti hw, attacchi informatici, esposizioni elettromagnetiche,
catastrofi naturali,...).
Come si garantisce la digital preservation?
●
Aggiornamento dei componenti (migration);
●
Duplicazione dei dati (refreshing)
●
Sostituzioni programmate dei componenti;
●
Progettazione di sistemi fault-tolerant;
●
Dislocazione dei dati in aree diverse e sistemi diversi (replication).
Digital Preservation
La questione della preservazione della preservazione digitale (in particolare quella a
lungo termine) è così delicata che è stato sviluppato lo standard OAIS (Open Archival
Information System) che definisce concetti, modelli e funzionalità per la costruzione ed il
mantenimento di archivi digitali.
Digitale vs. Analogico
Tutta l'importanza di questa disciplina deriva dal fatto che gli oggetti trattati sono oggetti
digitali, che quindi non si degradano nel tempo, ma restano immutati per un certo
periodo, finché non si corrompono.
Un libro
● dura decine di anni;
● si logora lentamente nel tempo;
● quando è rovinato può essere
restaurato e durerà ancora a
lungo.
Un documento digitale
● ha una durata impredicibile;
● non si logora;
● quando è corrotto è molto spesso
irrecuperabile: il suo contenuto è
totalmente illeggibile.
Quindi tutte le misure per la conservazione devono essere prese all'inizio, prima
dell'inserimento dei documenti nell'archivio digitale.
Machine Readability e IR
Un documento TEI è analizzabile da un computer:
●
●
Ogni elemento del documento è interpretabile automaticamente in modo non ambiguo;
La codifica del testo è standard (XML), quindi è leggibile allo stesso modo da ogni
macchina.
Possibilità di effettuare ricerche nei documenti utilizzando un linguaggio di
interrogazione XML (es. Xquery).
Ricerche semplici:
●
tutti i romanzi pubblicati dopo il 1920;
●
tutti gli scritti di un certo autore.
Ricerche complesse:
●
tutti i testi del periodo 1890-1910 con più di 100 pagine in
cui compare almeno due volte la parola “autore”, contenenti
almeno una poesia, in cui il titolo inizia con la 'A'.
Una collezione di documenti TEI è già pronta per essere utilizzata all'interno di applicazioni di
Information Retrieval: ogni elemento di markup presente nei documenti è per sua natura
“ricercabile”.
E' importante tenere in considerazione questo aspetto quando si sceglie il tagset: è preferibile
annotare qualche elemento in più (che magari ci sembra irrilevante) se pensiamo che sia utile per
le ricerche in un sistema di IR.
Machine Readability e IR
Problemi di rappresentazione
Ogni documento ha caratteristiche proprie:
●
La tipologia: poesie, romanzi, dizionari, …
●
Il formato: testi manoscritti o stampati, rilegati o non legati,...
●
Il contenuto eterogeneo: testo (caratteri alfabetici o non alfabetici), immagini, glifi,
tabelle, grafici,...
Problema 1: Documenti diversi richiedono diverse rappresentazioni
Ogni oggetto ha una sua rappresentazione digitale che dipende dalla sua classe
oltre che dal contenuto.
es. Per rappresentare una poesia ho bisogno di definire i concetti di verso e
metrica, mentre per un dizionario dovrò definire cos'è un'entrata lessicale e cos'è
un significato.
Problemi di rappresentazione
Ogni documento ha caratteristiche simili ad altri documenti:
●
Dati generali: titolo, autore, data,...
●
Elementi di suddivisione del testo: capitoli, paragrafi, sezioni,...
●
Elementi interni al testo: liste e elenchi, elementi di formattazione (corsivo,
grassetto,...)
Problema 2: Sono necessari metadati comuni per rappresentare oggetti dello
stesso tipo in documenti diversi
Gli elementi che hanno lo stesso significato in classi di oggetti diversi devono essere
codificati nello stesso modo. Sarebbe assurdo differenziare questi oggetti per classe di
documento.
es. Titolo oppure autore sono elementi che possono ricorrere in qualsiasi documento, sia
esso una poesia, un dizionario, un romanzo,... Non voglio avere Titolo-di-romanzo,
Titolo-di-poesia, Titolo-di-dizionario, ma devo poter applicare lo stesso tag Titolo a
qualsiasi tipo di documento.
Problemi di rappresentazione
Problema 3: un documento può essere una collezione di documenti di tipologia diversa
Non è sufficiente associare un documento ad una classe in modo rigido, poiché un documento
può contenere una collezione di oggetti diversi. Un'antologia ad esempio può contenere brani
in prosa, in poesia, etc.
Struttura modulare
Per supportare tutto questo, TEI ha una struttura modulare in cui è possibile:
●
●
●
Creare un documento TEI generico e avere a disposizione un set di metadati comuni a
tutti i documenti;
Importare le definizioni TEI più specifiche necessarie per la rappresentazione del nostro
documento (una o più di una);
Definire tipologie di documenti personalizzati che siano conformi allo standard TEI tramite
il meccanismo dell'estensione degli schema.
Moduli della TEI
●
TEI Infrastructure
Definizione di tipi di dati principali e degli elementi di base
●
TEI Header
Definisce i descrittori per l'header dei documenti: metadati generali (lingua,
codifica,...)
●
Elements Available in All TEI Documents
Elementi utilizzabili in tutti i documento TEI: paragrafi, citazioni, numeri,
date, ...
●
Default Text Structure
Definizione degli elementi relativi alla struttura del testo: corpo del testo,
pagina del titolo, ...
●
Representation of Non-standard Characters and Glyphs
Definizione dei caratteri che non fanno parte della codifica standard
Unicode
Moduli della TEI
●
Names, Dates, People, and Places
Elementi per la specificazione dettagliata di nomi propri (persone,
organizzazioni e luoghi) e di date
●
Tables, Formulæ, and Graphics
Elementi per la rappresentazione di tabelle, formule e grafici.
●
Graphs, Networks, and Trees
Elementi per la rappresentazione di relazioni tra nodi di alberi e grafi
●
Simple Analytic Mechanisms
Elementi per poter collegare agli elementi del testo altri elementi
attraverso relazioni (es. analisi testuale, commenti, …)
●
Linking, Segmentation, and Alignment
Elementi per la specificazione di collegamenti incrociati tra testi.
Moduli della TEI
●
●
●
●
●
●
Verse
Elementi specifici per la codifica di poesie (sistemi metrici, schema delle
rime, enjambment,...)
Performance Texts
Elementi specifici per i testi teatrali (ambientazione, cast, istruzioni di
regia,...)
Transcriptions of Speech
Elementi specifici per la trascrizione del parlato (utterance, pause, gesti,...)
Dictionaries
Elementi specifici per la rappresentazione dei dizionari (informazioni
grammaticali, etimologia, significato,...)
Manuscript Description
Elementi specifici per codificare i manoscritti (descrizione del contenuto, del
supporto fisico,...)
Representation of Primary Sources
Elementi specifici per le trascrizioni di fonti primarie: cancellazioni,
sostituzioni, parti danneggiate,...
Moduli della TEI
●
Critical Apparatus
Elementi specifici per gli apparati critici: definizione di testimoni, apparato,...
●
Language Corpora
Elementi specifici per corpora linguistici (lingua parlata, scritta o segnata).
●
Feature Structures
Elementi specifici per costruire framework analitici complessi. Contengono
gli strumenti per legare oggetti tra loro attraverso relazioni (estende le
funzionalità di Simple Analytic Mechanism).
●
Certainty and Responsibility
Elementi specifici per l'attribuzione di responsabilità su chi ha codificato il
testo.
●
Documentation Elements
Elementi specifici per rappresentare la documentazione sulla codifica
utilizzata.
TEI Schema
Ogni modulo TEI è definito da uno schema, che è possibile importare all'interno del nostro
documento ed utilizzarne il tagset.
Volendo ad esempio digitalizzare un libro di poesie dovremmo sicuramente importare il modulo specifico
Verse e i moduli di base TEI Header e TEI Infrastricture. Probabilmente però sarà necessario aggiungere
anche altri moduli generali, come Elements Available in All TEI Documents oppure Certainty and
Responsibility, in relazione alle informazioni che intendiamo memorizzare.
Ogni schema può essere importato (oltre che in documenti TEI) all'interno di altri schema da noi
definiti.
Possiamo definire uno schema personalizzato che faccia uso ad esempio di una sottoparte del tagset TEI e
che sia meno generalista e più aderente alle nostre necessità. In questo modo i documenti digitalizzati con il
nostro schema saranno comunque dei documenti TEI.
Il set completo degli schema (XMLSchema, DTD e RelaxNG) di TEI P5 può essere scaricato
liberamente da SourceForge:
http://sourceforge.net/projects/tei/files/TEI-P5-all/
Personalizzazioni e TEI Lite
Personalizzazione degli Schema
Creare uno schema TEI personalizzato significa estendere uno o più schema
presenti nel pacchetto. Questa procedura è molto potente e molto utile, ma non
banale, perché è necessario rispettare tutti i vincoli imposti da TEI-C per garantire
che i documenti creati sulla base del nostro schema siano ancora dei documenti
TEI validi.
Documentazione per l'estensione dello schema:
http://www.tei-c.org/release/doc/tei-p5-doc/en/html/USE.html#MD
Strumento automatico per la creazione guidata di uno schema personalizzato:
http://www.tei-c.org/Roma/
TEI Lite
Simple demonstration of how the TEI encoding scheme might be adopted to meet
90% of the needs of 90% of the TEI user community.
TEI Lite è lo schema personalizzato più famoso: è uno schema contenente le
definizioni più utilizzate nei diversi moduli TEI ed è oggi lo strumento più
semplice per iniziare a codificare con TEI.
I documenti TEI
Struttura di base
TEI e XML
La TEI P5 utilizza XML
Ogni documento TEI è un documento XML.
Valgono le regole di base di XML:
●
Gli elementi sono identificati da tag: parole racchiuse tra parentesi angolate <tag>
●
Un tag aperto va sempre chiuso: <tag> … </tag>
●
Gli elementi devono rispettare la struttura ad albero:
–
Un unico elemento radice;
–
Incapsulamento coerente: <A> <b> </A> </b> NO!
TEI e XML
Un elemento può avere degli attributi.
Un attributo ha la forma
nome=”valore”
La differenza tra elementi e attributi è la stessa che c'è tra oggetto e
proprietà dell'oggetto: gli elementi rappresentano gli oggetti che vengono
codificati, mentre gli attributi ne specificano le proprietà.
<pb n="474" />
<div type="chapter" n="38">
Elemento pb: Divisione di
pagina
Attributo n: numero di pagina
Elemento div: suddivisione del testo
Attributo type: tipo di suddivisione
Attributo n: numero di suddivisione
Struttura base di un documento TEI
<?xml version="1.0" encoding="UTF-8"?>
<TEI>
Come minimo un documento TEI deve avere:
<teiHeader>
<!---...-->
</teiHeader>
<text>
<!--...-->
</text>
</TEI>
La dichiarazione XML
L'identificativo di un documento TEI (root)
L'intestazione
Il testo
Struttura base di un documento TEI
<?xml version="1.0" encoding="UTF-8"?>
<TEI>
Come minimo un documento TEI deve avere:
<teiHeader>
<!---...-->
</teiHeader>
<text>
<!--...-->
</text>
</TEI>
La dichiarazione XML (prologo)
L'identificativo di un documento TEI (root)
L'intestazione
Il testo
Struttura base di un documento TEI
<?xml version="1.0" encoding="UTF-8"?>
<TEI>
Come minimo un documento TEI deve avere:
<teiHeader>
<!---...-->
</teiHeader>
<text>
<!--...-->
</text>
</TEI>
La dichiarazione XML (prologo)
L'identificativo di un documento TEI (root)
L'intestazione
Il testo
Struttura base di un documento TEI
<?xml version="1.0" encoding="UTF-8"?>
<TEI>
Come minimo un documento TEI deve avere:
<teiHeader>
<!---...-->
</teiHeader>
<text>
<!--...-->
</text>
</TEI>
La dichiarazione XML (prologo)
L'identificativo di un documento TEI (root)
L'intestazione TEI
Il testo
Struttura base di un documento TEI
<?xml version="1.0" encoding="UTF-8"?>
<TEI>
Come minimo un documento TEI deve avere:
<teiHeader>
<!---...-->
</teiHeader>
<text>
<!--...-->
</text>
</TEI>
La dichiarazione XML (prologo)
L'identificativo di un documento TEI (root)
L'intestazione TEI
Il testo
teiCorpus: più documenti nello stesso file
<?xml version="1.0" encoding="UTF-8"?>
<teiCorpus>
<TEI>
<teiHeader>
<!---...-->
</teiHeader>
<text>
<!--...-->
</text>
</TEI>
<TEI>
<!--...-->
</TEI>
</teiCorpus>
teiCorpus: più documenti nello stesso file
<?xml version="1.0" encoding="UTF-8"?>
<teiCorpus>
<TEI>
<teiHeader>
<!---...-->
</teiHeader>
<text>
<!--...-->
</text>
</TEI>
<TEI>
<!--...-->
</TEI>
</teiCorpus>
XML ha una sola radice!
Senza teiCorpus non è possibile aggiungere più
di un documento nello stesso file.
Il testo
All'interno del tag <text> possiamo inserire uno di questi elementi,
uno solo dei quali è obbligatorio: <body>.
<front>: materiale peritestuale (intestazioni, frontespizio, prefazioni,
dediche, etc.) che si trova prima dell'inizio del testo vero e proprio.
<body>: corpo del testo
<back>: appendici e altri materiali peritestuali che si trovano dopo il
testo
<group>: raggruppa più <text> (volume collettaneo, opera
completa,...).
Il tag <group> si inserisce all'interno di <text> e può contenere una serie di altri elementi
<text>.
Capitoli e paragrafi
<p>
Le parti di testo in prosa sono racchiuse tra <p> e </p>. Ogni
separazione di testo (es. punto a capo) richiede la chiusura e la
riapertura di un nuovo <p>.
<div>
Tutti gli elementi di suddivisione (capitoli, sezioni, paragrafi,
sottoparagrafi,...) sono identificati dai tag <div>.
Oltre a <div> sono disponibili 7 sottolivelli: <div1>, <div2>, … , <div7>
Attributi dei <div>
●
●
●
id: identificatore univoco del capitolo (per i riferimenti)
n: numero della sezione facilmente interpretabile (es. “XII”, “4”, “12.1”)
type: serve a dare un nome alla sezione (es. “Libro”, “Capitolo”, “Sezione”,...)
Divisione di pagina
<pb>
Capitoli, sezioni, sottosezioni
<div>
Nuovo paragrafo (punto e a capo e simili)
<p>
Testo tra virgolette (discorso diretto, usi impropri,...)
<q>
Ricapitoliamo...
<teiCorpus>
<TEI>
<TEI>
<TEI>
...
<TEI>
<teiHeader>
<text>
<front>
<div>
Suddivisione in capitoli e sezioni
<body>
<back>
<p>
<pb>
<q>
Nuovo paragrafo
Interruzioni di pagina
Testo tra virgolette
<group>
<text>
<text>
<text>
...
Header
<teiHeader>
<fileDesc>
<titleStmt>
<title>Treasure Island [Electronic resource] / Robert Louis Stevenson</title>
<author>Stevenson, Robert Louis</author>
</titleStmt>
<publicationStmt>
<p>Not for distribution.</p>
</publicationStmt>
<sourceDesc>
<p>This text is a TEI version of a Project Gutenberg text. As per their license agreement we have
removed all references to the project's trademark, however have included this pointer to the original in case
you want the plain text, or their XHTML version.</p>
</sourceDesc>
</fileDesc>
<profileDesc>
<langUsage>
<language ident="eng">English</language>
</langUsage>
</profileDesc>
</teiHeader>
Header
<teiHeader>
<fileDesc>
<titleStmt>
<title>Treasure Island [Electronic resource] / Robert Louis Stevenson</title>
<author>Stevenson, Robert Louis</author>
</titleStmt>
<publicationStmt>
<p>Not for distribution.</p>
</publicationStmt>
<sourceDesc>
Intestazione
<p>This text is a TEI version of a Project Gutenberg text. As per their license agreement we have
removed all references to the project's trademark, however have included this pointer to the original in case
you want the plain text, or their XHTML version.</p>
</sourceDesc>
</fileDesc>
<profileDesc>
<langUsage>
<language ident="eng">English</language>
</langUsage>
</profileDesc>
</teiHeader>
Header
<teiHeader>
<fileDesc>
<titleStmt>
<title>Treasure Island [Electronic resource] / Robert Louis Stevenson</title>
<author>Stevenson, Robert Louis</author>
</titleStmt>
<publicationStmt>
Descrizione bibliografica del file elettronico
<p>Not for distribution.</p>
</publicationStmt>
<sourceDesc>
<p>This text is a TEI version of a Project Gutenberg text. As per their license agreement we have
removed all references to the project's trademark, however have included this pointer to the original in case
you want the plain text, or their XHTML version.</p>
</sourceDesc>
</fileDesc>
<profileDesc>
<langUsage>
<language ident="eng">English</language>
</langUsage>
</profileDesc>
</teiHeader>
Descrizione non bibliografica del testo
Header
<teiHeader>
<fileDesc>
<titleStmt>
Titolo
<title>Treasure Island [Electronic resource] / Robert Louis Stevenson</title>
<author>Stevenson, Robert Louis</author>
</titleStmt>
<publicationStmt>
<p>Not for distribution.</p>
</publicationStmt>
<sourceDesc>
<p>This text is a TEI version of a Project Gutenberg text. As per their license agreement we have
removed all references to the project's trademark, however have included this pointer to the original in case
you want the plain text, or their XHTML version.</p>
</sourceDesc>
</fileDesc>
<profileDesc>
<langUsage>
<language ident="eng">English</language>
</langUsage>
</profileDesc>
</teiHeader>
Header
<teiHeader>
<fileDesc>
<titleStmt>
Titolo
<title>Treasure Island [Electronic resource] / Robert Louis Stevenson</title>
<author>Stevenson, Robert Louis</author>
</titleStmt>
<publicationStmt>
<p>Not for distribution.</p>
Informazioni di pubblicazione e di distribuzione
</publicationStmt>
<sourceDesc>
<p>This text is a TEI version of a Project Gutenberg text. As per their license agreement we have
removed all references to the project's trademark, however have included this pointer to the original in case
you want the plain text, or their XHTML version.</p>
</sourceDesc>
</fileDesc>
<profileDesc>
<langUsage>
<language ident="eng">English</language>
</langUsage>
</profileDesc>
</teiHeader>
Header
<teiHeader>
<fileDesc>
Titolo
<titleStmt>
<title>Treasure Island [Electronic resource] / Robert Louis Stevenson</title>
<author>Stevenson, Robert Louis</author>
</titleStmt>
<publicationStmt>
<p>Not for distribution.</p>
Informazioni di pubblicazione e di distribuzione
</publicationStmt>
<sourceDesc>
Dati bibliografici della fonte originale (di solito cartacea)
<p>This text is a TEI version of a Project Gutenberg text. As per their license agreement we have
removed all references to the project's trademark, however have included this pointer to the original in case
you want the plain text, or their XHTML version.</p>
</sourceDesc>
</fileDesc>
<profileDesc>
<langUsage>
<language ident="eng">English</language>
</langUsage>
</profileDesc>
</teiHeader>
Header
<teiHeader>
<fileDesc>
<titleStmt>
<title>Treasure Island [Electronic resource] / Robert Louis Stevenson</title>
<author>Stevenson, Robert Louis</author>
</titleStmt>
<publicationStmt>
<p>Not for distribution.</p>
</publicationStmt>
<sourceDesc>
<p>This text is a TEI version of a Project Gutenberg text. As per their license agreement we have
removed all references to the project's trademark, however have included this pointer to the original in case
you want the plain text, or their XHTML version.</p>
</sourceDesc>
</fileDesc>
<profileDesc>
<langUsage>
Informazioni sulla lingua del testo
<language ident="eng">English</language>
</langUsage>
</profileDesc>
</teiHeader>
Ricapitoliamo...
<teiCorpus>
<TEI>
<TEI>
<TEI>
...
<TEI>
<teiHeader>
<text>
<fileDesc>
<encodingDesc>
<profileDesc>
<revisionDesc>
Descrizione bibliografica
Info sulla digitalizzazione
Descrizione non bibliografica
Storico delle revisioni
<front>
<body>
<back> <group>
<text>
<text>
<text>
...
<titleStmt>
<publicationStmt>
<sourceDesc>
Titolo e autore Informazioni di pubblicazione Informazioni sul testo
<title> e <author>
e distribuzione
originale
<langUsage>
Lingue del testo
<language>
Esercitazione
Strumenti per la codifica
Per codificare con TEI come minimo abbiamo bisogno
di un editor di testo semplice (solo testo senza
formattazione).
●
●
●
Inoltre dovremo utilizzare un parser XML per controllare che il documento XML prodotto
sia ben formato.
Se vogliamo verificare che il documento sia conforme a un modello dati (schema XML)
abbiamo bisogno di un XML validator, che è un tipo particolare di parser che analizza la
sintassi interna del documento.
XML Parser
XML PARSER
Un parser XML legge il file XML e costruisce l'albero dei suoi elementi.
Se ci riesce allora il documento è ben formato!
XML Validator
XML PARSER
Schema
XML
VALIDATOR
VALIDO
NON VALIDO
Un validatore XML legge il file XML, costruisce l'albero dei suoi elementi e ne
analizza la loro correttezza rispetto allo schema.
Se tutte le regole sono rispettate allora il documento è valido!
Editor XML
Un editor XML è un'applicazione che incorpora un editor di testo semplice e un
validatore XML.
Con lo stesso strumento abbiamo la possibilità di
●
scrivere file XML;
●
Controllare che siano ben formati;
●
Verificarne la validità rispetto a uno schema.
Attenzione!
Un documento TEI valido è corretto rispetto a uno schema, ma non corretto in generale: ci sono
alcuni tipi di errore che non vengono rilevati.
●
●
Errori ortografici nel testo: solo gli errori di digitazione nei nomi dei
tag vengono evidenziati dal validatore; tutto il contenuto testuale deve
essere verificato dall'utente.
Applicazione impropria degli elementi: utilizzare i tag in modo
coerente con il loro significato è responsabilità di chi codifica il testo. Il
validatore controlla i tipi di elementi, non la semantica del contenuto.
<p>Cera una volta...</p>
<title>Carlo Collodi</title>
<author>Pinocchio</author>
Editor XML
Per poter comporre un documento TEI c'è bisogno di un editor; ogni editor si colloca a
un diverso livello di astrazione dal dato fisico:
●
Alto livello (vicini all'utente): alta facilità di scrittura, poco controllo sui dati prodotti;
●
Basso livello (vicini alla macchina): bassa facilità di scrittura, controllo totale sui dati.
Editor wysiwig dedicati (es. Classical Text Editor, eLablorate)
Scarso o nessun controllo sul dato finale
Grande facilità di composizione
Servizi web o software a pagamento
Editor XML avanzato (es. oXygen)
Diversi strumenti di ausilio alla scrittura
Doppia visualizzazione: standard XML (Testo) e libera da tag (Autore)
Editor XML di base (es. XMLSpear)
Editor di testo semplice con integrazione di un validatore XML
Editor di testo semplice (es. Notepad di Windows)
L'unica astrazione è la conversione tra le lettere e la loro codfica binaria
Nessuno strumento di aiuto per la scrittura o per la validazione
Iniziamo!
Editor XML
XML Spear: http://www.donkeydevelopment.com/
Schema (DTD) di TEI Lite
http://www.tei-c.org/release/xml/tei/custom/schema/dtd/tei_lite.dtd
oppure (se avete scaricato l'archivio degli schema) lo trovate nella cartella
...\xml\TEI\custom\schema\dtd\tei_lite.dtd
TEI Lite Guidelines
http://www.tei-c.org/Guidelines/Customization/Lite/
http://www.lablita.it/app/TEI_Superlight.pdf
Documento da codificare
http://www.liberliber.it
Leggere gli errori del validatore
XMLSpear comunica gli errori di validazione scrivendo l'elemento TEI che ha un contenuto non
valido e la regola che lo invalida:
The content of element type ELEMENTO must match “REGOLA”
Saper leggere le regole permette di capire dov'è l'errore: si confronta il contenuto dell'ELEMENTO del nostro file
con la REGOLA formale che lo definisce e si identifica il punto in cui non “matcha”.
Le regole sono scritte in un linguaggio simile a quello delle espressioni regolari; questi sono gli operatori di base:
●
(…) Il contenuto delle parentesi costituisce una sottoespressione indipendente: come le
parentesi nelle espressioni matematiche!!
●
| Il pipe rappresenta l'OR logico (vel): almeno uno di questi elementi è richiesto;
●
, La virgola rappresenta l'AND logico: tutti questi elementi sono obbligatori;
●
? Operatore di opzionalità: l'elemento deve comparire 0 o 1 volte;
●
+ Operatore di molteplicità rigida: l'elemento deve comparire almeno una volta;
●
* Operatore di molteplicità: l'elemento può comparire un numero qualsiasi di volte, anche zero.
Leggere gli errori del validatore
Esempio
The content of element type "TEI" must match "(teiHeader,(((facsimile|sourceDoc)+,text?)|text))".
1. Indentiamo le parentesi per capire le precedenze
(teiHeader,
(
(
(facsimile|sourceDoc)+,
text?
) | text
)
)
2. Decodifichiamo i simboli della formula
teiHeader AND
(facsimile OR sourceDoc almeno una volta) AND (text opzionale)
OR
text
3. Traduciamo in un linguaggio comprensibile
L'elemento TEI deve contenere un teiHeader seguito da un elemento text oppure da almeno un elemento di tipo
facsimile o source; questi possono comunque essere seguiti da un elemento text.