Navigando nell’EPUB CFI

Avevo promesso di dare qualche feedback sugli EPUB CFI. Le specifiche degli EPUB Canonical Fragment Identifier non brillano per chiarezza, e parrebbe che nemmeno in IDPF siano particolarmente felici per questa particolare specifica di EPUB3.

Cosa dovrebbero permettere di fare i CFI in pratica?

Si tratta di una specifica che dovrebbe permettere di identificare una precisa zona testuale (e non) di un ePub. Non un link a un file o a un id, ma il puntamento o la selezione di una parte di un paragrafo o altro. Il puntamento può essere effettuato dall’interno dell’ePub, o dall’esterno: è quindi in teoria possibile per un software/biblioteca di ePub andare a prelevare, leggere, confrontare brani di diversi ePub, così come fornire all’esterno riferimenti precisi ai contenuti di più ePub, magari gestiti in rete. Non mi pare invece ancora possibile interrogare un ePub a partire da un altro ePub. La sintassi è complessa e parte dalla spine dell’ePub. Si lavora a saltelli. Ogni elemento della DOM viene numerato in maniera crescente, secondo alcune regole che riassume bene Matt Garrish nel suo blog, dopo di che si saltella tra gli elementi del package fino alla spine, e poi all’interno di questi fino al file nel quale è contenuto il testo che ci interessa selezionare. La sintassi è qualcosa del tipo: content.opf#epubcfi(/6/4!) Ovvero: vai al quarto elemento figlio del sesto elemento contenuto nel file content.opf (il quarto elemento corrisponde in realtà al secondo tag figlio, e il sesto elemento al terzo tag figlio: lo schema del surriportato link di Matt chiarisce bene le regole per un buon conteggio). Il punto esclamativo significa, e poi fai un salto grosso. Dove? Dentro al file selezionato nella spine dell’ePub. A questo punto il gioco dei saltelli continua, e si inseriscono dopo il punto esclamativo i successivi salti nella dom, fino al punto esatto che si vuole individuale, o – se si usa un range – alla porzione testuale che si vuole selezionare. Un esempio di CFI corretto potrebbe essere: content.opf#epubcfi(/6/4!/4/4/2/1:5). I saltelli prima del punto esclamativo ci portano fino alla spine, in corrispondenza del capitolo in cui vogliamo andare. Quelli successivi al punto esclamativo iniziano a saltellare dentro il capitolo in questione, andando esattamente nel punto desiderato.

Il supporto

Ho provato a creare un CFI per un semplice link. Testato con Adobe 4, Ibooks, Azardi e Readium, il link ha dato qualche segno di vita solo con quest’ultimo. Il supporto, insomma, sembra ad oggi molto timido, tenendo anche conto che il link non è certo l’utilizzo più significativo dei CFI che dovrebbero e potrebbero avere uno sviluppo molto più interessante per tutto ciò che riguarda la visione, selezione, spostamento di porzioni di testo scelte in maniera omogenea dal lettore/editore. Vedremo se i CFI fioriranno, come certe rose, o se finiranno nel mare morto delle specifiche deprecate, assieme alle XML island.

UPDATE

Per completezza riporto anche il link a un progetto di motore lettura EPUB on line che parrebbe usare proprio gli EPUB CFI per l’accesso e il puntamento alle pagine. Per leggerli guardate la barra degli indirizzi.

03. dicembre 2014 by fabrizio venerandi
Categories: ebook concetti generali, EPUB3 | Leave a comment

Leave a Reply

Required fields are marked *