30
Lezione 7 Esempi DTD, TEI Lite Materiali adattati da www.tei-c.org, www.griseldaonline.it

Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Embed Size (px)

Citation preview

Page 1: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Lezione 7 Esempi DTD, TEI Lite

Materiali adattati da www.tei-c.org, www.griseldaonline.it

Page 2: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Esercizio: delineare un DTD

Punto di partenza: versione on-line del libro di cucina: La scienza in cucina o l’arte di mangiar bene, di Pellegrino Artusi.

Page 3: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,
Page 4: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Progettazione di una DTD Quali sono gli aspetti generali di questo

libro e quali quelli comuni ad altri manuali di cucina? Struttura delle prefazioni / appendici. Struttura delle singole ricette.

Visualizzazione del testo (vedi un esempio in LiberLiber) Creazione di un XSL? Quali filtri? Quali ordinamenti?

Page 5: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

DTD per l’Artusi: Prefazioni<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE ricettario [<!ELEMENT ricettario (introduzioni, ricette, appendici)><!ELEMENT introduzioni (storia_editoriale*,

prefazione*,norme*,glossario*altro*)>

<!ELEMENT storia_editoriale (#PCDATA) ><!ATTLIST storia_editoriale

edizione CDATA #IMPLIED> <!ELEMENT prefazione (#PCDATA) ><!ELEMENT norme (#PCDATA) ><!ELEMENT glossario (titolo?, (termine, definizione)+) ><!ELEMENT altro (#PCDATA) >…]>

Page 6: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Prefazione: Note Alternativa:

<!ELEMENT introduzioni (storia_editoriale?,

prefazione?,norme?,glossario?altro?)*>

Come rappresentare il titolo delle varie introduzioni? <!ELEMENT storia_editoriale (titolo, #PCDATA) > NO! <!ELEMENT storia_editoriale (titolo?, (corpo, citazione?) >

<!ELEMENT corpo (#PCDATA) > <!ELEMENT titolo (#PCDATA) ><!ELEMENT citazione (#PCDATA) >

<!ELEMENT storia_editoriale (#PCDATA?, titolo?, citazione?)+ >

Resa diversa via XSL

Page 7: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

DTD per l’Artusi: Ricette<!ELEMENT ricettario (introduzioni, ricette, appendici)>…<!ELEMENT ricette (sez+) ><!ELEMENT sez (prologo?, ricetta+) ><!ELEMENT prologo (#PCDATA)><!ELEMENT ricetta (titolo, corpo_ric) ><!ATTLIST titolo-sez

num ID #IMPLIED><!ELEMENT corpo_ric (prologo?, ingredienti?, descrizione)

><!ELEMENT prologo (#PCDATA)>

Page 8: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Come marcare gli ingredienti? <!ELEMENT descrizione (#PCDATA | citazione?, img?)+>

<!ELEMENT ingredienti (ingred+)><!ELEMENT ingred (materiale, quant?, unità?)+><!ELEMENT quant (#PCDATA)><!ELEMENT unità (#PCDATA)> <!ELEMENT materiale (#PCDATA)> <ingred><materiale>Farina,</materiale>

<unità>grammi</unità><quant>300</quant></ingred>

<!ELEMENT ingrediente (#PCDATA)><!ATTLIST ingrediente

quant CDATA#REQUIRED> unità (unità|pezzo|grammo|litro|chilo|…)#REQUIRED>

variazione CDATA #IMPLIED>

Page 9: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Note Alternative:

<!ATTLIST titolo-sez num ID #REQUIRED>

Possibilità di riferimenti interni: <!ELEMENT descrizione (#PCDATA, citazione?, rif?, img?)+><!ELEMENT rif (#PCDATA)> <! ATTLIST rif

vedi IDREF #REQUIRED>

Page 10: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Esempio<ricetta><titolo num=“407”>CARDONI CON LA BALSAMELLA</titolo><corpo_ric>Scartate le costole più dure, le altre nettatele dai

filamenti e lessatele a mezza cottura. Qui, sia detto una volta per tutte, gli erbaggi vanno messi al fuoco ad acqua bollente e i legumi ad acqua diaccia. Tagliate le costole dei cardoni a pezzetti lunghi tre dita circa e tirateli a sapore con burro e sale a sufficienza, terminate di cuocerli aggiungendo latte, o meglio panna, poi legateli con un poco di balsamella <rif vedi=“137”>n. 137</vedi>. Aggiungete un pizzico di parmigiano grattato e levateli subito senza più farli bollire. Questo è un eccellente contorno agli stracotti, alle bracioline, allo stufatino di rigaglie e ad altri simili piatti. Nella stessa maniera si possono cucinare le rape a dadi grossi, le patate e gli zucchini a spicchi, ma questi ultimi non vanno lessati.</corpo_ric>

</ricetta>

Page 11: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Esempio<prologo>Questa minestra sa di poco, ma vedendola usata non di rado ne' pranzi di gusto straniero, ve la descrivo.</prologo><ingredienti><ingrediente quant=“3” unità=“unità”>Uova, n. 3. </ingrediente><ingrediente quant=“30” unità=“grammi”>Farina, grammi 30. </ingrediente><ingrediente quant=“1” unità=“noci”>Burro, quanto una noce. </ingrediente></ingredienti><descrizione>Lavorate prima i tre rossi con la farina e il burro, aggiungete le tre chiare montate e cuocere il composto al forno o al forno da campagna entro a uno stampo liscio il cui fondo sia coperto di una carta unta. Quando questo pane sarà cotto e diacciato, tagliatelo a dadi o a piccole mandorle, versategli il brodo bollente sopra e mandatelo in tavola con parmigiano a parte. Dose per sei o sette persone.</descrizione>

Page 12: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Cosa manca?

Mescolanza di ingredienti e descrizione (cf. ricetta 372)

Concetto di ingrediente principale (attributo di “ingredienti”?)

Indicazione esplicita delle dosi(p.es. “<dose pers=“3”>basta per tre persone</dose>”)

Page 13: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Da XML ad un “result tree”

Page 14: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

XSL<xsl:template match=“ingredienti">

<table> <xsl:for-each select=“ingrediente"> <tr> <td><xsl:apply-templates/></td>

<td><strong> <xsl:value-of select=“@unità”>

<xsl:text>: </xsl:text> <xsl:value-of select=“@quant”>

</strong></td>

</tr> </xsl:for-each >

</table> </xsl:template>

Page 15: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

TEI e TEI Lite Text Encoding Initiative Guidelines della Text Encoding Initiative

(TEI): indirizzate a quanti intendono produrre e diffondere informazioni archiviate in formato elettronico.

Schemi di codifica in diversi linguaggi formali. La prima edizione si basava su SGML; l'edizione più recente (TEI P4, 2002/2004) può essere espressa anche in formato XML;

Page 16: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Obbiettivi delle guidelines TEI Essere semplici, chiare e concrete; Essere di semplice utilizzazione per i

ricercatori senza il ricorso a software specializzati;

Permettere una definizione rigorosa e un’efficiente elaborazione dei testi;

Consentire estensioni definite dall’utente; Essere conformi agli standard esistenti o in

procinto di essere adottati.

Page 17: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

TEI vs. TEI Lite Le linee guida principali della TEI si sono rivelate spesso poco

pratiche per via della loro completezza e conseguente complessità

E’ stato perciò create un sottoinsieme noto come “TEI Lite” La traduzione italiana della descrizione di tale sottoinsieme si

può leggere a http://www.tei-c.org/Lite/teiu5_it.xml.ID=U5-pref

Page 18: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Struttura generale di un testo TEI Tutti i testi conformi alla TEI contengono:

A. una intestazione (codificata come elemento <teiHeader>)

B. la trascrizione del testo vero e proprio (marcata con l’elemento <text>).

L'intestazione TEI contiene informazioni analoghe a quelle contenute nel frontespizio di un testo a stampa.

Fino a quattro parti: 1. una descrizione bibliografica del testo memorizzato

su supporto digitale, 2. una descrizione del modo nel quale è stato codificato,3. una descrizione non bibliografica del testo (un profilo

del testo), 4. un elenco delle revisioni.

Page 19: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Tipologia di testi Un testo TEI può essere unitario (un’opera

singola) o composito (una collezione di opere, come un’antologia).

In entrambi i casi, il testo può avere un peritesto iniziale o un peritesto finale facoltativi.

In mezzo c’è il corpo del testo, che, nel caso di un testo composito, può essere costituito da gruppi, ciascuno dei quali può a sua volta contenere più gruppi o testi.

Page 20: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Struttura generale Un testo unitario sarà codificato usando una

struttura generale come questa:<TEI.2>

<teiHeader> [informazioni dell'intestazione TEI]</teiHeader> <text>

<front> [materiali del peritesto iniziale (opzionali)] </front> <body> [testo unitario] </body> <back> [materiali del peritesto finale (opzionali)] </back>

</text> <TEI.2>

Page 21: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Struttura generale: testo composto<TEI.2>

<teiHeader> [informazioni dell'intestazione TEI]</teiHeader> <text>

<front> [materiali del peritesto iniziale del testo complessivo] </front> <group>

<text> <front> [materiali del peritesto iniziale del testo 1] </front> <body> [testo 1] </body> <back> [materiali del peritesto finale del testo 1] </back> </text> <text> <front> [materiali del peritesto iniziale del testo 2] </front> <body> [testo 2] </body> <back> [materiali del peritesto finale del testo 2] </back> </text>

</group><back> [materiali del peritesto finale del testo complessivo] </back>

</text> <TEI.2>

Page 22: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Un semplice documento TEI è dunque costituito, al livello testuale, dai seguenti elementi:

<front> Contiene qualsiasi materiale peritestuale (intestazioni,

frontespizio, prefazioni, dediche, etc.) che si trovi prima dell'inizio del testo vero e proprio.

<group> Raggruppa un insieme di testi unitari o di gruppi di testi.

<body> Contiene l'intero corpo di un singolo testo unitario, con

l'esclusione di ogni elemento peritestuale.<back>

Contiene qualsiasi appendice che segua la parte principale di un testo.

Page 23: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Elementi di ripartizione testuale <p>

Codifica i paragrafi in prosa. <div>

Contiene una sezione del peritesto o del corpo di un testo.

<div1> Contiene una sezione di primo livello del peritesto o

del corpo di un testo (la più ampia, se <div0> non è usato, altrimenti la seconda in ordine gerarchico).

Si può andare avanti fino a <div7> (o usare un elemento non numerato <div>: un elemento <div> può essere suddiviso in elementi più piccoli <div>, senza limiti alla profondità di annidamento)

Page 24: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Attributi delle ripartizioni testuali type

Indica il nome convenzionale per questa categoria di partizione del testo. Il suo valore sarà generalmente Libro, Capitolo, Poesia, etc. Altri possibili valori includono Gruppo per gruppi di poesie, etc., trattati come un'unità singola, Sonetto, Discorso o Canzone.

Si noti che qualsiasi valore venga fornito per l'attributo type del primo <div>, <div1>, <div2>, etc., in un dato testo, si assume che sia valido per tutte le successive <div>, <div1>, all'interno dello stesso <body>.

id Specifica un identificatore unico per la partizione, che può essere usato per

creare riferimenti incrociati o altri collegamenti (ad esempio a un commento). Spesso è utile dare un attributo id a ogni unità strutturale importante di un

testo, e derivarne i valori in un modo sistematico, ad esempio aggiungendo un numero di sezione a un breve codice per il titolo dell'opera in questione.

n Specifica un breve nome mnemonico o un numero per la divisione, che può

essere usato per identificarla, preferendolo a id. Se già esiste una forma convenzionale di riferimento o un'abbreviazione per le parti di un lavoro (come il sistema libro/capitolo/verso delle citazioni bibliche), l'attributo n è il luogo deputato a registrarlo.

Page 25: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Il valore di ogni attributo id deve essere unico all'interno di un documento.

Un semplice modo per assicurarsi che questo avvenga è fare in modo che esso rifletta la struttura gerarchica del documento.

Esempio: i Principi di scienza nuova di Vico consistono di cinque libri, ognuno dei quali è diviso in sezioni, le quali sono ulteriormente suddivise in capitoli. Dunque:

<div1 id="PSN1" n="I" type="libro"> <div2 id="PSN101" n="I.1" type="sezione"> <div3 id="PSN10201" n="I.2.1" type="capitolo"> ...</div3> <div3 id="PSN10202" n="I.2.2" type="capitolo"> ... </div3> </div2> ... </div1> <div1 id="PSN2" n="II" type="libro"> .... </div1> ...

Page 26: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Codifica della struttura dei testi in versi o drammatici<l>

contiene una singola riga di poesia, eventualmente incompleta. Tra gli attributi:part

specifica se il verso è metricamente completo o meno. I valori legali sono: F per la parte finale di un verso incompleto, Y se la il verso è metricamente incompleto, N se il verso è completo, o se nessuna assunzione è fatta sulla sua completezza, I per la parte iniziale di un verso incompleto, M per la parte mediana di un verso incompleto.

<lg> contiene un gruppo di versi che costituiscono un'unità formale, per esempio una strofa,

un refrain, un paragrafo in versi, etc. <sp>

contiene una singola battuta in un testo drammatico, o un brano presentato come tale (cioè per la recitazione) in un testo in prosa o in versi. Tra gli attributi:

who identifica mediante un ID il soggetto parlante

<speaker> contiene una forma particolare di intestazione o etichetta, che fornisce i nomi di uno o

più parlanti in un testo o frammento drammatico. <stage>

contiene qualsiasi tipo di didascalie o direttive di scena all'interno di un testo o di un frammento di testo drammatico. Tra gli attributi:

type indica il tipo di didascalia. I valori consigliati includono entrata, uscita, scenografia,

dizione, etc.

Page 27: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Esempio:<lg> <l>S'i' fosse foco, ardere' il mondo;</l> <l>s'i' fosse vento, lo tempestarei;</l> <l>s'i' fosse acqua, i' l'annegherei;</l> <l>s'i' fosse Dio, mandereil en profondo;</l> </lg><lg> <l>s'i' fosse papa, serei allor giocondo,</l> <l>ché tutti ' cristiani embrigarei;</l> <l>s'i' fosse 'mperator, sa' che farei?</l> <l>a tutti mozzarei lo capo a tondo.</l> </lg> …

Page 28: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Numeri di pagina e di riga<pb/>

segnala i confini tra una pagina di un testo e la successiva in un sistema di riferimento standard.

<lb/> segnala l'inizio di una nuova riga (tipografica) in una

certa edizione o versione di un testo. Questi elementi marcano un punto singolo nel testo, non una sua porzione. L'attributo globale n dovrebbe essere usato per fornire il numero della pagina o della riga che inizia con il marcatore. Inoltre, questi due elementi condividono il seguente attributo:

ed indica l'edizione o versione in cui l'interruzione della

pagina è localizzata a questo punto.

Page 29: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Esempio (da B.Fenoglio “Una questione privata”)<p><q>&mdash; Perché hai deviato? &mdash;</q> domandò Ivan. <q>&mdash; Perché ora ti sei fermato? Cosa guardi? Quella casa? Perché ti interessi a quella casa?</q></p> <p><q>&mdash; Non la vedevo dal principio della guerra e non la rivedrò più prima della fine. Abbi pazienza cinque minuti Ivan.</q></p> <pb n="3" ed="TE90"/> <p><q>&mdash; Non è questione di pazienza ma di pelle. Quassù è pericoloso. Le pattuglie.</q></q> <p><q>&mdash; Non si azzardano fin quassù. Al massimo arrivano alla strada ferrata.</q></p> <p><q>&mdash; Da' retta a me, Milton, pompiamo. L'asfalto non mi piace.</q></p> <p><q>&mdash; Qui non siamo sull'asfalto, &mdash;</q> rispose Milton che si era fissato sulla villa.</p> <p><q>&mdash; Ci passa proprio sotto, &mdash;</q> e Ivan additò un tratto dello <pb n="1001" ed="EG92"/> stradale subito a valle della cresta, con l'asfalto qua e là sfondato, sdrucito dappertutto</p>

Page 30: Lezione 7 Esempi DTD, TEI Lite Materiali adattati da ,

Esempi di testi codificati con TEI

Da Griseldonline Il Galateo di Giovanni della Casa (per

visualizzarlo, è necessario scaricare la directory “galateo” con tutto il suo contenuto (file xml, xsl, e teixlite.dtd)