Documentazione

Come è codificato il corpus, come si leggono le edizioni, come contribuire. Lo stato di salute della validazione TEI è riportato a parte: Salute del corpus →.

Modello di codifica

Le edizioni sono codificate in TEI P5 con uno schema personalizzato dichiarato in schemas/libretto.odd. Lo schema impone una struttura in <div type="act"><div type="scene"> e tre tipologie di unità all'interno di ogni scena: <sp> (battute), <stage> (didascalie), <lg> (gruppi di versi).

Elementi obbligatori

<teiHeader>
Titolo, autore, data, luogo, editore, codificatore (<respStmt>) e licenza.
<sourceDesc> / <witness>
Almeno un testimone con segnatura della biblioteca depositaria.
<listPerson>
I personaggi del dramma con id stabili (referenziabili da @who sulle battute).
<castList>
I personaggi nella forma in cui appaiono sulla pagina, con descrizione e (dove disponibile) interprete (<actor>).
<facsimile>
Solo per le edizioni con scansioni: una superficie per pagina con @xml:id="page_NNNN".

Elementi opzionali

Quando presenti, vengono estratti e renderizzati: <metDecl> (sistema metrico dichiarato), <personGrp> (cori e gruppi), <listPlace>, <listRelation>, <set> (ambientazione globale), <titlePage> (frontespizio), e i paragrafi della dedica nell'<front>.

Convenzioni del corpus

Le tre edizioni curate dagli encoder (Cinna, Il ricco d'un giorno, Talismano) condividono un modello di codifica comune. La descrizione che segue riassume le scelte adottate; ciascun TEI sorgente le implementa in modo coerente.

Tipologia di edizione

Edizioni critiche: il testo è il risultato di un processo ecdotico, non una mera trascrizione. Non si rappresenta la topografia della pagina (s lunghe, abbreviazioni, layout originale); la correzione di errori meccanici manifesti è silenziosa e i criteri editoriali sono dichiarati nel <teiHeader> sotto <editorialDecl>/<correction>.

Gerarchia strutturale

<div1 @type="act">
└── <div2 @type="scene">
    ├── <head>
    ├── <stage @type="mixed">
    └── <div3 @type="recitative|aria|chorus|ensemble">

I sottotipi ammessi per <div3 @type="ensemble"> includono duet, trio, quartet, finale.

Battute (<sp>)

<sp @who="#character">
  <speaker>Name</speaker>
  <l> … </l>
</sp>

Quando una battuta è pronunciata simultaneamente da più personaggi, @who elenca tutti gli xml:id separati da spazio (es. @who="#cinna #servilia"); nello <speaker> i nomi compaiono in tondo, separati da virgola.

Versi (<l>) — attributi

@met
Forma metrica del verso: numero arabo seguito da p (piano), t (tronco) o s (sdrucciolo). Es.: 7p, 11t, 8s. Si può usare il numero senza suffisso quando si vuole indicare il tipo metrico generico (utile in combinazione con @real).
@real
Misura reale del verso quando differisce da quella nominale (versi ipermetri o ipometri).
@part
Verso spezzato fra più battute: I (initial), M (medial), F (final). Le porzioni M e F non incrementano la numerazione del verso (la portano le porzioni I).

Rima e gruppi di versi

  • @rhyme sul blocco aria/coro: <div3 @type="aria" @rhyme="ABBC-DEDE-FGHC">
  • Rima inline: <rhyme @label="A">parola_finale</rhyme>
  • Strofe: <lg>

Didascalie (<stage>)

Tre posizioni:

  1. Inline al verso quando si riferiscono a quel verso: <l>… <stage @type="delivery">…</stage></l>
  2. Fra le battute quando descrivono la progressione generale dell'azione: <stage @type="mixed">…</stage>
  3. Uscite di scena, dentro <sp> ma fuori dal verso: <stage @who="#x" @type="exit">Parte.</stage>

Simultaneità di battuta

Quando due o più personaggi pronunciano simultaneamente versi parzialmente o totalmente differenti, si usa @synch sul verso: il verso "spina" porta un xml:id (es. v14a) e il verso simultaneo lo riferisce (@synch="#v14a"). I versi corrispondenti si differenziano nella numerazione con una lettera minuscola (@n="14a", @n="14b").

Le porzioni M/F dei versi spezzati e i versi marcati con @synch non incrementano la numerazione progressiva.

Raggruppamenti di versi (<spGrp>)

Indicazioni come "a 2", "a 3", "a 4" presenti nelle stampe sono codificate con <spGrp @type="a_2">, "a_3", ecc. Non implicano di per sé simultaneità di pronuncia: questa è espressa separatamente tramite @synch sul verso.

Convenzioni xml:id

  • Testimoni: prime due lettere del luogo + anno. Es. Vienna 1788 → VI88; London 1798 → LO98.
  • Personaggi: nome in tondo, lettere minuscole (es. Perillo → perillo).
  • Versi: v + numero + i/m/f (se presente) + un progressivo numerico in arabo preceduto da . se più ancore ricorrono in uno stesso verso.

Descrizione bibliografica dei testimoni

Per i testimoni a stampa si adotta <biblFull> all'interno di <sourceDesc>/<listWit>/<witness>: è la struttura più adatta a una descrizione bibliografica completa di una stampa secentesca o settecentesca.

Una deviazione TEI: <move @onStage>

In Il ricco d'un giorno l'attributo @onStage su <move> non indica un'azione che ha luogo sulla scena, bensì — in associazione con @who — la presenza di uno o più personaggi sulla scena senza specificarne il momento di entrata (altrimenti espresso, quando possibile, dall'attributo @entrance). Si tratta di un uso locale che si discosta dal default TEI.

Annotazioni d'apparato

Le edizioni sorgenti non contengono <app>/<lem>/<rdg>: l'apparato è prodotto in standoff dalla pipeline di confronto, separatamente dai testi codificati. Vedere il file schemas/libretto.odd per la specifica completa.

Come leggere le edizioni

Ogni edizione del corpus si apre in una vista di lettura a colonna singola. Quando l'edizione ha facsimile associato, sulla destra compare un pannello con le scansioni della stampa consultabili in zoom (powered by OpenSeadragon).

Convenzioni tipografiche

  • Endecasillabi (versi pieni): rientro standard.
  • Settenari e versi più brevi: rientro maggiore (la cosiddetta scalinata: i versi corti vengono indentati visivamente sotto i lunghi).
  • Battute corali: speaker label in maiuscoletto, leggermente in corsivo.
  • Arie: in corsivo, marcate con un'etichetta « — Aria — » iniziale.
  • Didascalie: in corsivo grigio, centrate o inline a seconda del tipo.
  • Versi spezzati (sticomitia): le due metà di un endecasillabo pronunciate da personaggi diversi vengono allineate sulla stessa baseline.

Sincronizzazione testo / facsimile

Per le edizioni con scansioni, scorrendo il testo il pannello facsimile cambia automaticamente alla pagina corrispondente (basato sui riferimenti @facs="#page_N" codificati nei <sp> sorgenti). Cliccando una pagina nel selettore, la lettura scorre alla prima battuta di quella pagina. Il pulsante ⇄ flottante in basso a destra disabilita la sincronizzazione per ispezionare pagine indipendenti.

Permalink

Ogni verso è dotato di un permalink univoco, accessibile cliccando sul glifo che appare sostando sul verso stesso col puntatore. Il permalink restituisce un'ancora del tipo #l_a1_s1_001 usabile per le citazioni puntuali.

Contribuire

Il corpus accoglie nuove edizioni codificate in TEI P5 conformi alla ODD del progetto. La procedura completa, con convenzioni di denominazione, layout dei file e modalità di fallimento silente comuni, è in docs/CONTRIBUTING.md.

Versione breve

  1. Sistemare il TEI in corpus/{slug}/{filename}.xml; le scansioni in corpus/{slug}/images/page_NNNN.png.
  2. Registrarlo in _manifest.yaml sotto editions: + aggiungerne l'id alla lista del testo padre sotto texts:.
  3. Eseguire npm run check:manifest per verificare la consistenza.
  4. Eseguire npm run build:data (e npm run build:facsimiles se ci sono scansioni).
  5. L'edizione comparirà a /{lang}/corpus/{id}.

Pratiche da evitare

  • I file src/data/editions/*.json sono generati ma committati (per visibilità delle diff). Non modificarli a mano.
  • Lo stesso vale per CITATION.cff (rigenerato da scripts/generate_citation.py) e src/data/_manifest.json.
  • Le scansioni in public/iiif/ sono in .gitignore: non committarle, vengono prodotte localmente da build:facsimiles.

Changelog

v0.1.0 — pre-release

  • Pipeline TEI → JSON funzionante per tutte le 6 edizioni del corpus (Cinna di Da Ponte, Cinna di Anelli, Il ricco d'un giorno, le tre stesure del Talismano).
  • Vista di lettura singola con frontmatter (frontespizio, dedica, personaggi, ambientazione, testimoni) e sincronizzazione facsimile bidirezionale per le edizioni con scansioni.
  • Confronto a tre vie del Talismano con codifica della provenienza (8 codici) e allineamento intertestuale del Cinna (Anelli ↔ Da Ponte).
  • Convenzioni di codifica del corpus documentate (gerarchia <div1>/<div2>/<div3>, attributi @met/@real/@part, simultaneità @synch, spostamento di siglum nel testimone biblFull).
  • Pagina Salute del corpus: validazione TEI con regole Schematron + controlli Python (broken refs, sigla mancanti, dichiarazioni non referenziate).
  • ORCID e affiliazioni dei curatori (Pacchin, Scarponi, Malavasi, Di Nicola, Chiarini) e generazione automatica di CITATION.cff dal manifest.
  • Ricerca a testo pieno con Pagefind. Suite di test (pytest sulla pipeline).
  • Pagine Progetto e Documentazione consolidate (questa).

Lavori in corso (verso v1.0)

  • Indici trasversali (persone / luoghi / arie): pagine nascoste dalla navigazione finché l'indicizzatore non gestisce i riferimenti inline a <placeName> e non deduplica le forme chiuse interne agli ensemble.
  • Pannello di rete dei personaggi (Cytoscape).
  • Calibrazione Bertalign per gli allineamenti paraphrastic.
  • Deposito DOI Zenodo per ogni edizione e per il sito.
  • Edizione bilingue (Da Ponte / inglese o tedesco) sul modello del confronto attuale.
  • Audit accessibilità (WCAG 2.1 AA) e prestazioni (Lighthouse).