Cos'e' la Biblioteca Totale?

La Biblioteca Totale e' una collezione digitale di pagine contenenti ogni combinazione possibile di 320 parole di lingua italiana. La biblioteca inizia con una pagina contenente la prima parola: 'aa' e finisce con una pagina contenente l'ultima parola: 'zzzz', ripetuta 320 volte. Il dizionario usato nella biblioteca contiene 653460 parole di lingua italiana. Tutto cio' significa che ogni libro, pensiero, storia d'amore, catastrofe, guerra, biografia, scoperta scientifica o verita' assoluta riguardo l'universo che sia stata mai scritta, o che ancora deve essere scritta, e' gia' presente in questa biblioteca e deve solo essere trovata.

L'idea della Biblioteca Totale e' fondata sul libro dell'autore e bibliotecario argentino Jorge Luis Borges: La biblioteca de Babel (La biblioteca di Babele). Nel libro, la biblioteca e' composta da ripetute stanze esagonali a nido d'ape, con librerie su quattro muri, contenenti libri con qualsiasi combinazione di 29 caratteri (26 lettere piu' il punto, la virgola e lo spazio). Nello scorso maggio (2015), Jonathan Basile, uno scrittore di Brooklyn, ha creato una versione digitale della biblioteca (libraryofbabel.info), usando una conversione matematica a base-29 e un generatore di numeri pseudo-casuale per collegare una ipotetica locazione del libro con il testo contenutone all'interno. Appena scoperto il sito, mi sono messo a lavorare sulla 'Library of Words', una versione rivisitata dell'idea di Borges, contenente parole inglesi (libraryofwords.info) per poi crearne la versione italiana.

Perche' questo progetto?
Nella Biblioteca di Babele di Borges, si trovano le figure dei 'Purificatori'. Essi sono dei bibliotecari che praticano un culto di esplorare la biblioteca distruggendo ogni libro che non abbia senso. Cercano senza pace l'esagono rosso, una stanza mitica contenente l'indice di tutta la biblioteca, che possa guidarli a trarne informazioni utili. Date le dimensioni immani della biblioteca, e l'inimmaginabile numero di libri presenti in essa, una 'purificazione' della biblioteca e' impossibile. Come i Purificatori, sono stato attratto anch'io dall'idea di trovare libri utili nella biblioteca e ho iniziato a pensare su come si potesse creare un sottoinsieme della biblioteca, contenente solo testo comprensibile. E' cosi' che ho iniziato a lavorare sulla Biblioteca Totale.

Puoi esplorare la biblioteca per fare ricerca, trovare ispirazione per scrivere or semplicemente contemplare la strana idea che ogni scritto di 320 parole e' contenuto in essa. Puoi cercare una frase precisa o esplorarne il contenuto casualmente, anche se e' difficile imbattersi in una pagina interessante. Noterai che la maggior parte del testo e' composto da parole rare o inusuali. Inoltre, la maggior parte delle frasi non avra' un senso logico, a causa del basso numero di articoli e congiunzioni, che le rende difficili da leggere. La causa di questa mancanza e' data dalla natura Zipf-iana del linguaggio umano. Cio' rende impraticabile una eventuale purificazione piu' profonda. Questa biblioteca non tenta di emulare la lingua italiana, ma puo' dare degli spunti interessanti sulle sue caratteristiche.

Come hai sviluppato il codice?

Le dimensioni della biblioteca ammontano a circa 10^1860 pagine. Se si pensa alle dimensioni della Biblioteca di Babele (circa 10^4677 libri), e' una 'purificazione' abbastanza soddisfacente. Un tale numbero, comunque, e' ancora cosi' grande che la mente umana fatica a comprenderlo. Si tratta di un numero con quasi duemila zeri. Salvare la biblioteca su disco richiederebbe 10^1846 exabytes di spazio. A confronto, l'intera umanita' ha prodotto 295 exabytes di spazio. Per tentare di comprendere la grandezza del numero, pensate che esistono solamente all'incirca 10^80 atomi nell'universo osservabile. Date queste considerazioni, la realizzazione di questa biblioteca sembra impossibile, ma c'e' un trucco matematico dietro tutto questo.

Ogni pagina della biblioteca e' creata al momento da un algoritmo che alloca una stringa di locazione unica ad ogni pagina. Queste due sono connesse matematicamente, quindi pre-determinate. Cio' non e' da confondere con generatori casuali di parole. Questa biblioteca non e' casuale, ne' generata a caso al momento. Ogni pagina ha una locazione unica e la stessa pagina puo' essere ritrovata, una volta che si e' a conoscenza della stringa di locazione. Il processo e' quindi deterministico e reversibile. Il testo e' quindi immutabile. La connessione tra la stringa e la pagina e' una conversione numerica in una base differente. Mentre la biblioteca creata da Basile usa una conversione a base-29, questa biblioteca usa una conversione a base-653460, che converte una stringa di testo in base-62 (cioe' la stringa di locazione, composta da caratteri alfanumerici) in parole. Il codice e' scritto in Python. A differenza della biblioteca digitale di Babele, ho deciso di non randomizzare l'output dell'algoritmo. In questo modo, la biblioteca e' ordinata alfabeticamente, dando un'idea migliore sulle dimensioni dell'opera, mentre la si esplora. L'unico elemento casuale introdotto nell'algoritmo si trova nel codice di ricerca: se si cercano frasi piu' corte di 320 parole, una pagina a caso e' scelta in automatico, tra le tante in cui le parole cercate sono contenute.

Come uso il sito?

Ci sono tre modi in cui puoi usare il sito:

Pagina casuale: cliccando sul logo nella pagina principale, una pagina a caso della libreria sara' aperta. Puoi esplorare le pagine vicine attraverso il menu' di navigazione in alto: prima pagina, 100^100 pagine precedenti, pagina precedente, pagina a caso, pagina successiva, 100^100 pagine successive, ultima pagina. Il link alla pagina trovata e' in basso, insieme ai tasti per il social sharing per divulgare le vostre scoperte.

Ricerca: puoi cercare frasi contenenti una combinazione delle 653460 parole di lingua italiana presenti nel dizionari. I simboli saranno rimossi dalla frase e le parole mancanti dal dizionario ignorate. Ci sono due opzioni di ricerca: 'pagina intera' e 'solo stringa'. La prima ti dara' una pagina casuale contenente le parole ricercate. La seconda ti dara' la stringa per la frase esatta. Puoi cercare quello che vuoi nella biblioteca: la storia della tua vita, la descrizione del tuo lavoro e addirittura questa stessa frase, ancor prima che la scrivessi. Ricorda che puoi trovare tutto nella biblioteca. Le verita' piu' nascoste, ma anche il loro esatto opposto.

Esplorazione: se conosci gia' la stringa di locazione di uno scritto, puoi immetterlo nella pagina di esplorazione e la pagina di testo sara' recuperata. Anche questo metodo include le due opzioni di ricerca. L'opzione 'pagina intera' ti dara' una pagina casuale con il testo convertito dalla stringa. L'opzione 'solo stringa' ti dara' la frase esatta corrispondente alla locazione.

Come posso contribuire?

Puoi contribuire al mantenimento della biblioteca seguendomi su GitHub, iscrivendoti alla pagina Facebook, mandandomi commenti, suggerimenti e bugs al seguente indirizzo: wordlibrarian, condividendo le tue scoperte nella biblioteca o donando al seguente indirizzo bitcoin:

18L24P3xgH8SGx1HbtNbtfLJ1tFjuvMdAs

Chi sei?

Mi chiamo Giulio Pepe, e sono un dottorando in fisica. Mi piace programmare nel mio tempo libero e sono stato colpito dalla natura multi-disciplinare di questo progetto, che spazia tra matematica, informatica, arte e lingua.

home