# FRA3826/EDN6001-ProjetEditionNumerique-Lire tout le possible
## Lire tout le possible

ProjetEN2 12/17/2021 Université de Montréal fr Outil : Web Scraper par Web Graph SIA Corpus : The Library of Babel par Jonathan Basile (2015) Résumé : Ce projet vise à rendre le contenu de The Library of Babel plus facile à étudier en modifiant son format numérique. Mots-clefs : Library of Babel, Web scraping, Édition numérique
Tout ce qui a été écrit et perdu est maintenant trouvable. Tout ce qui s’écrit aujourd’hui est déjà fait. Tout ce qui sera créé ou ce qui pourrait être écrit est déjà créé. Du moins, c’est l’objectif de The Library of Babel. Alors, comment lire tout ce qu’il est possible de lire ? Ce projet, faisant partie du cours FRA3826/EDN6001 - Théories de l'édition numérique, a pour but d'extraire le contenu de The Library of Babel et de le mettre dans un format plus approprié à l'analyse à l'aide de l'outil Web Scraper.

## Objet d'étude
### Présentation de The Library of Babel

The Library of Babel est une bibliothèque accessible sur le Web. Elle a pour but de contenir tous les textes qui ont été écrits et tous ceux qui le seront. Elle est créée par Jonathan Basile, doctorant en littérature comparée à la Emory University, avec l’aide de ses amis et de sa famille.
Publié pour la première fois en 2015, le site Web est basé sur un algorithme qui génère un « livre » à partir de toutes les permutations de 29 différents caractères : les 26 lettres de l’alphabet anglais, la case d’espace, la virgule et le point. Si le projet est complété, il devrait y avoir toutes les combinaisons possibles d’une longueur de 1 312 000 caractères. Pour l’instant, il ne contient que toutes les combinaisons de 3200 caractères, ce qui donne tout de même environ 10$^{4677}$ livres. Les livres ont une place définie et permanente dans la bibliothèque : ils ne sont pas générés au moment de la requête. Toutes les permutations sont déjà accessibles, il suffit de les trouver.
Ce n’est pas une tâche simple : il est facile de se perdre dans la bibliothèque. C’est intentionnel. The Library of Babel est une place de recherche, d’inspiration, d’exploration et d’expérimentation.

#### Inspiration

La bibliothèque est inspirée de l’œuvre de Jorge Luis Borges, principalement la nouvelle La bibliothèque de Babel publiée pour la première fois en 1941. la forme hexagonale des pièces, le système de classement et le concept de la bibliothèque totale à la base du site Web sont inspirés par la nouvelle.

### Navigation

Puisque se perdre parmi l’énorme quantité de livres dans la bibliothèque est facile, plusieurs façons de parcourir ses ouvrages sont à la disposition de l’utilisateur. L’utilisateur peut choisir l’option Random qui lui montrera une page aléatoire de la bibliothèque. Il peut aussi cliquer sur Search, ce qui lui permettra de rechercher un texte en particulier et de le retrouver à plusieurs emplacements. Cependant, la première option proposée sur le site Web est Browse. Dans ce cas, l’utilisateur doit choisir une pièce par son numéro d’identification. Ce dernier est composé de n’importe quelle combinaison de chiffres ou lettres allant de 1 à 3260 caractères. Chaque pièce est en fait une « chambre » hexagonale ayant 4 murs de bibliothèque. Chaque mur comprend 5 étagères de 32 volumes ou livres. La suite de caractères qui est sur les livres et les pages représentent l’identification des emplacements, similaire à la classification décimale de Dewey. Basile donne cet exemple :
   For example, jeb0110jlb-w2-s4-v16 means the book you are reading is the 16th volume (v16) on the fourth shelf (s4) of the second wall (w2) of hexagon jeb0110jlb.
Puisque les identifiants des hexagones sont composé de lettres et de chiffres, le système pour identifier les emplacements de la bibliothèque sont en base 36. Néanmoins, les noms des hexagones comportent généralement plus de de 3200 caractères, ce qui peut créer des problèmes pour les rechercher. En effet, il n'est pas possible pour tous les navigateurs d'accéder à des identifiants aussi longs en utilisant une requête GET. Ainsi, il n'y a que deux façons de conserver l'emplacement d'un livre à plus de 1950 caractères : en mettant un signet sur la page du livre ou en copiant son identifiant. Or, les identifiants sont souvent tronqués et il faut soit télécharger le livre pour l'avoir au complet ou suivre le lien dans la section Browse.
Cette structuration des données fonctionne bien avec le but d’explorer et de se perdre. Toutefois, si l’on cherche à étudier et à analyser le contenu des livres, la structure actuelle rend la tâche plus difficile.

## Problématique éditoriale

En ce moment, Basile encourage les lecteurs à faire part de leur découverte sur le forum. Or, avec le nombre de livres à lire, il est impossible d’analyser le contenu du site plus en détails. Il est possible de passer des heures, voire bien plus, sur The Library of Babel sans trouver de textes qui ont du sens.
   “If you tried to read through all the books, the sun would expand into its red giant phase and engulf the earth before you finished,” claims Basile. “This is expected to happen in about five-and-a-half billion years, long before you could ever read through all the books.”
   But with Babel comes babble. The problem of the virtual library is the same as the library of Borges’ imagination: There’s simply so many permutations of text that the probability of finding rational letters by simply browsing is exceedingly rare. “It’s just a statistical impossibility,” says Basile. “You’d actually have a better chance of quantum-tunnelling (or disappearing and reappearing) through a wall.”
La plupart des textes présentent des suites de lettres qui ne forment ni mot ni phrase. Quelle proportion des textes sont des mots anglais isolés ? Combien de textes présentent plusieurs mots qui se suivent ? Combien de textes n’ont que des mots anglais ? Combien parmi ces derniers sont organisés en phrase compréhensible ? Comment trouver parmi le nombre astronomique de pages les livres qui sont porteurs de sens ? Comment analyser le contenu de ces livres s’il est impossible de tout lire en une vie ? Le contenu de The Library of Babel est illisible. Pour pouvoir faire des études sur cette bibliothèque totale, il faudrait que les textes soient clairement listés et répertoriés.
La problématique est donc : comment structurer le contenu de The Library of Babel pour le rendre accessible et analysable ?
L’objectif principal de ce projet est de permettre à la communauté d’étudier facilement le contenu de The Library of Babel. La structuration doit donc prendre en compte à la fois la lisibilité du contenu et l’accessibilité du format. Il s’agit alors d’un projetd'éditorialisation, dans le sens où l’utilisation d’un outil numérique vise à mieux structurer, à simplifier et à rendre accessible la recherche sur les textes de la bibliothèque totale. Ceci est appuyé par cette définition d'éditorialisation :
   L’éditorialisation désigne l’ensemble des dynamiques qui produisent et structurent l’espace numérique. Ces dynamiques sont les interactions des actions individuelles et collectives avec un environnement numérique particulier.
Afin de structurer autrement les textes de The Library of Babel, nous faisons appel à la technique de web scraping pour extraire les données.

## Outil
### Présentation de Web Scraper

Web Scraper est une extension de navigateur Web créé par la compagnie Web Graph SIA. Il est intégré aux outils de développement et s'utilise directement sur Google Chrome ou Firefox. Il permet de créer des sitemaps et de faire du web scraping à partir de site Web publics. Le web scraping est une technique qui permet l'extraction du contenu - données et métadonnées- d'un site Web ou d'un programme afin de le transformer et de l'utiliser dans un autre contexte. Ici, le but est d'extraire une partie du site The Library of Babel dans un seul tableau afin de l'utiliser dans un contexte d'analyse.

### Fonctionnement et modalités

L'extraction des données se fait en trois grandes étapes : créer un sitemap, choisir ses sélecteurs, extraire le contenu dans le format choisi.
L'avantage de cet outil est qu'il est facile d'utilisation même pour les gens qui ont peu de connaissances techniques. Cependant, l'outil est payant et appartient à une compagnie privée qui récolte les données des utilisateurs. Aussi, le processus pour cliquer sur les sélecteurs peut être long.

### Format de sortie des données

Trois formats de sortie sont disponibles : CSV, XLSX et JSON. Le format CSV, pour comma-separated values, est un format de texte ouvert où les données sont séparées par des virgules. Le format XLSX est un format qui classe les données en tableau. Le format JSON, pour JavaScript Object Notation, est un format de données textuelles dérivé du langage JavaScript. Les critères pour le choix du format sont la clarté de la représentation des données et l'accessibilité (la pérennité et l'interopérabilité).
D'abord, les données doivent être claires et lisibles afin d'être analysées. Le format XLSX est sûrement le plus facile à comprendre, car il divise les informations en classeur facilement. Le format JSON se lit bien autant par l'humain et que par la machine (ce qui est un avantage pour l'analyse des données par logiciel), mais il peut représenter seulement quelques types généraux. Le CSV a une séparation moins claire, surtout que la ponctuation serait difficile à repérer à côté d'une suite aléatoire de lettres, d'espace, de virgules et de points.
Ensuite, afin de pouvoir diffuser le fichier aux autres chercheurs potentiels, il faut s'assurer de l'interopérabilité. En effet, non seulement il faut diffuser le fichier, il faut aussi faire en sorte que d'autres logiciels puissent analyser les données présentes dans le fichier. Les fichiers doivent être facilement convertibles ou compatibles avec d'autres logiciels. Ainsi, les formats moins ouverts, comme le XLSX, devraient être éviter. En plus d'avoir une grande interopérabilité, le format JSON est très léger, ce qui aide l'envoi et la diffusion aux autres. En plus, il est facilement lisible par les ordinateurs grâce à sa nature synthétique.
Finalement, étant donné la grande quantité de textes à extraire de The Library of Babel, il est probable que le projet soit assez long à réaliser. Aussi, analyser toutes ces données va aussi prendre du temps. C'est pourquoi la pérennité du format est importante. Il faut éviter de devoir changer souvent le format d'un fichier qui risque d'être lourd ou de le voir devenir obsolète après tant de travail d'extraction. Dans ce cas, les formats libres et ouverts (JSON et CSV) qui ne sont pas autant susceptibles de changer à chaque mise à jour de Windows sont à privilégier.
Selon les critères établis, le format JSON est à essayer en premier.

## Réalisation
### Méthode

L'extraction des données se feront selon les étapes suivante :
1- Créer le sitemap d'un hexagone en ajoutant son URL à l'onglet Web Scraper des outils de développement du navigateur.
2- Ajouter les sélecteurs de liens pour que l'outil prennent en compte les liens vers les murs, vers les étagères, vers les livres et finalement vers les pages. Un logiciel de cliqueur automatique pourrait être pertinent à utiliser ici pour naviguer et sélectionner plus rapidement les pages des livres.
3- Ajouter des sélecteurs de textes à extraire.
4- Vérifier que l'arbre des sélecteurs fonctionne avant de lancer l'extraction.
5- Exporter les données dans le format JSON.

### Résultats attendus et voies d'étude

Les résultats attendus sont fichiers JSON où les textes et les métadonnées sont clairement organisées et qui présentent le contenu d'hexagones entiers ou plus selon l'espace requis.
Une fois ces résultats obtenus, nous espérons pouvoir analyser le contenu des textes en masse. Par exemple, il serait possible de passer le fichier dans des logiciels de reconnaissance de texte afin de voir les proportions de mots de plusieurs langues dans les textes. Il est surtout important de partager les données, probablement sur Wikidata, afin que d'autres puissent étudier The Library of Babel ou collaborer avec nous grâce à l'onglet de Discussion.

### Limites et améliorations possibles

Certaines limites sont à anticiper. D'abord, quant aux tailles des fichiers, il est possible de devoir faire plus de fichiers que prévu vu la taille de la bibliothèque. Un fichier trop volumineux ne pourrait pas être facilement ouvert, analysé, stocké et diffusé.
Ensuite, en ce qui concerne le temps nécessaire à la réalisation du projet, il serait pertinent d'extraire tout le contenu de The Library of Babel. Malheureusement, il est fort possible que ce soit beaucoup trop long avec la méthode actuelle. Il pourrait y avoir une méthode alternative, soit du web scraping gratuit et automatisé fait à l'aide de Python, mais cela dépasse nos connaissances techniques pour le moment.
Le manque de temps et d'espace nous force à limiter le projet à une extraction partielle de The Library of Babel.

### Ouverture

Si tout a déjà été écrit, quelle place reste-t-il à la créativité et à l'originalité ? Est-ce que tout devient plagiat ? Si, un jour, tous les textes sont analysés par le numérique, quelle place reste-t-il à la critique, à la théorie et à la littérature ?