Progetto:Trascrizioni/Sperimentazioni pagina Indice
Il nuovo confine dell'automazione
modificaDal raffronto fra wikisource ed altri progetti analoghi come Distribute Proofreaders, emerge il grado molto maggiore di complessità della nostra procedura, in parte derivante dal faticoso adattamento del software "generalista" mediawiki al nostro ambito di digitalizzazione di testi, in parte dalla procedura proofreading, che ci costringe a riflettere, in fase di formattazione, a due versioni notevolmente diverse fra di loro (la versione nsIndice+nsPagina e la versione transclusa in ns0).
L'obiettivo dell'automazione è in parte raggiunto attraverso l'evoluzione dell'estensione (es. attraverso il tag pages), in parte attraverso la semplificazione dei template (es. l'uso di IncludiIntestazione), ma restano sempre faticose alcune fasi, come quella della costruzione dei "doppi link" che devono puntare in nsPagina da nsPagina, in ns0 da ns0. Nel caso di opere complesse, con molte sottopagine in ns0, è laboriosa anche la compilazione ex novo di IncludiIntestazione e del tag pages.
Alcuni accorgimenti nella compilazione della pagina Indice possono permettere, con impegno limitato, di riunire nel codice della pagina, normalmente utilizzato per costruire la tabella dei link alle pagine e la sezione indice, tutti i dati per l'automazione integrale della compilazione di includiIntestazione e del relativo tag pages. La sperimentazione è stata inizialmente svolta in Indice:Poesie inedite di Silvio Pellico I.djvu ed è attualmente in corso su Indice:Trattato di archeologia (Gentile).djvu
I dati e il flusso delle informazioni
modificaI dati disponibili nella pagina Indice sono:
- il codice del tag pagelist
- il contenuto dei template {{Indice sommario}}
Sfruttare i dati di Indice sommario
modificaIl nuovo codice del tl Indice sommario è compatibile con i vecchi parametri, ma può essere anche compilato con campi nominativi che comprendono i seguenti parametri: nome, titolo, from, to, fromsection, tosection, delta. From, to, fromsection, tosection hanno esattamente lo stesso significato di quando vengono usati nel tag pages; nome è il nome completo della pagina in ns0; titolo è il titolo pagina, da inserire nel campo sottotitolo di includiIntestazione; delta se numerico esprime la differenza fra numero della pagina djvu e numero della pagina cartacea, se non numerico rappresenta semplicemente un'etichetta di identificazione della pagina (es. un numero romano, o un testo libero come Frontespizio.
Il template Indice sommario è congegnato in modo che il titolo del capitolo costituisca un link con la pagina ns0 corrispondente allo stesso capitolo. Cliccando tale titolo, se rosso, si ha la possibilità di creare la pagina corrispondente, con nome esattamente corrispondente a quanto registrato nella pagina Indice. I dati per la compilazione completa della pagina ns0 sono tutti disponibili nella sequenza ordinata dei template Indice sommario.
Giunti nella pagina ns0 vuota, la ricerca delle informazioni prevede:
- la lettura AJAX del tl Intestazione della pagina principale per ottenere il nome della pagina Indice collegata;
- la lettura AJAX del codice della pagina Indice;
- l'elaborazione dei dati del campo Sommario;
- la compilazione di IncludiIntestazione e pages con i dati elaborati dal template Sommario corrispondente per nome alla sottopagina da cui parte la query;
- la compilazione dei campi prec= e succ= sulla base dei dati dei template Indice sommario immediatamente precedente e seguente.
Essendo tutti i dati recuperabili senza ulteriore intervento dell'utente, la creazione del codice completo della sottopagina ns0 si ottiene con un singolo click del mouse.
Sfruttare i dati di pagelist
modificaAll'interno del tag pagelist sono contenuti, in forma estremamente compatta, tutti i dati necessari a ricostruire la relazione numero pagina djvu - numero pagina cartacea. Eseguendo il parsing dei suoi vari elementi, è possibile disporre di due funzioni inverse, da divu a cartaceo e da cartaceo a divu (la seconda molto più complessa). La prima fase della raccolta dati è la lettura del codice wiki della pagina Indice, ed è quindi comune con quella precedente.
All'interno del tag pagelist vi sono tre costrutti particolarmente significativi (dove x e y sono due numeri, s è una stringa non numerica)
- xtoy=roman|highroman|empty : dalla pagina djvu x alla pagina djvu y compresa i numeri sono romani minuscoli|romani maiuscoli|sono pagine vuote
- x=y : dalla pagina djvu x la numerazione cartacea progressiva inizia dal numero y
- x=s : per la pagina djvu x mostra, come link, la stringa s
I due algoritmi d2p() e p2d() mirano a:
- d2p(x) : data la pagina djvu x ottenere il valore y
- p2d(y) : data la pagina cartacea y (SOLO araba|romana|romana maiuscola) ottenere la pagina djvu x
(continua)