Visualiser tous les livres du monde dans l’espace ISBN
(phiresky.github.io)-
Visualiser tous les livres du monde dans l’espace ISBN
-
Les bibliothèques ont cherché à rassembler le savoir de l’humanité. À l’ère numérique, il pourrait être possible de collecter de manière exhaustive tous les écrits humains répondant à certains critères. Les bibliothèques de l’ombre jouent le rôle de collecter et de partager autant de livres que possible.
-
L’ISBN (Numéro international normalisé du livre) est un nombre à 13 chiffres attribué à presque tous les livres publiés. Ce numéro possède une structure particulière, qui permet de visualiser l’espace ISBN13, composé de 2 milliards d’emplacements.
-
La structure propre à l’ISBN
- Les préfixes 978-/979- de l’ISBN sont un sous-ensemble du code produit européen. Ces préfixes peuvent pratiquement être ignorés.
- L’Agence internationale ISBN attribue de grands blocs d’ISBN à des organisations internationales, puis chaque pays subdivise lui-même ces blocs pour les éditeurs.
- Les blocs ISBN sont toujours attribués selon le préfixe. Par exemple, le Japon a reçu le bloc 978-4, qu’il utilise ensuite pour attribuer des ISBN aux éditeurs.
-
Courbe remplissant l’espace
- Si l’on retire le préfixe et le suffixe d’un ISBN, on obtient un nombre décimal compris entre 0 et 2 milliards. Il faut une méthode pour le projeter dans un espace bidimensionnel.
- Des courbes remplissant l’espace comme la courbe de Hilbert ont été proposées, mais elles peuvent introduire une structure absente des données.
-
Courbe « bibliothèque »
- L’ISBN est fondamentalement décimal, et cela permet de créer une courbe remplissant l’espace à la fois facile à comprendre et visuellement attrayante.
- Cette courbe ressemble à une bibliothèque, et une simple transformation de coordonnées permet de convertir un ISBN en coordonnées.
-
Tuiles de carte
- Il est possible de générer des images en tuiles pour chaque préfixe. Pour chaque jeu de données, des informations différentes sont stockées par pixel.
- Au niveau de zoom maximal, une correspondance d’un livre par pixel est utilisée pour garantir la précision.
-
Shader
- Au lieu de stocker directement les données RGB, le rendu est effectué avec un fragment shader GLSL. Cela permet de choisir plus tard l’échelle de couleurs et de combiner instantanément plusieurs jeux de données.
-
Vue bibliothèque
- En vue totalement zoomée, chaque pixel est stylisé comme un livre. Cela est implémenté dans le shader et apparaît progressivement selon le niveau de zoom.
-
Performances
- Le rendu du texte est implémenté de manière hiérarchique selon le niveau de zoom et le view frustum culling. Pour résoudre les problèmes de performances, le nombre d’éléments HTML est réduit et le contenu du DOM est limité.
-
Code-barres
- Au zoom maximal, chaque livre possède un code-barres. Celui-ci a été ajouté pour renforcer l’idée de trier les livres selon l’ISBN.
-
Plages d’éditeurs
- Chaque « groupe » couvre une grande plage, et chaque éditeur possède une petite plage au sein du groupe. Pour visualiser cela, une couleur unique est attribuée à chaque groupe et à chaque éditeur.
-
Trajectoire de vol
- Lorsqu’on recherche un livre ou qu’on clique sur la mini-carte, on se déplace vers cet emplacement. Le calcul de la trajectoire de vol est complexe et a été amélioré au fil de plusieurs essais.
-
Architecture
- Aucun backend n’est nécessaire : un hébergement de fichiers statiques suffit pour stocker HTML, JS, CSS, PNG et JSON.
- Le frontend est implémenté avec ThreeJS, React et MobX.
-
Conclusion
- Cette approche offre une méthode flexible pour visualiser tous les livres publiés avec un ISBN. Le projet a été très plaisant à réaliser, et le code source est disponible sur GitHub.
1 commentaires
Commentaires sur Hacker News
Lors du lancement d’Amazon, l’idée était d’utiliser la triple classification de la Library of Congress, mais le fournisseur de données l’avait convertie en une seule chaîne de caractères, ce qui rendait les frontières difficiles à repérer. L’idée a finalement été abandonnée
Il arrive que des ISBN soient attribués en double à plusieurs livres, donc l’expression « tous les livres de l’espace ISBN » est peut-être exagérée. De plus, certains livres ont des ISBN erronés, et pourraient donc se trouver en dehors de l’espace ISBN supposé dans le billet de blog
La présentation ne reflète que le contenu d’Anna’s Archive et présente un biais en faveur de certaines langues. Les zones affichées en noir représentent les éléments absents de l’archive
Le projet est étonnant, et la possibilité de voir les titres, codes-barres, couvertures et détails des livres est impressionnante. Parmi les idées d’amélioration, on peut citer l’ajout de cases à cocher pour masquer le panneau blanc en haut à gauche et les éléments en haut à droite
On peut imaginer des trajectoires de vol en modélisant le déplacement dans le demi-plan supérieur hyperbolique. Une réflexion a porté sur la manière de minimiser les tuiles selon le niveau de zoom, et l’implémentation actuelle passe plus de temps à gérer le panoramique aux niveaux de zoom élevés
La présentation, dans son format actuel, était un peu écrasante, mais la visualisation des données et la profondeur sont remarquables. Il était intéressant d’observer l’activité éditoriale selon les régions : la Pologne est active récemment, et la Chine a fortement progressé depuis 2005
Microsoft SilverLight PivotViewer conviendrait bien à cette application, et la conférence TED de Gary W. Flake est marquante. Dommage toutefois que ce ne soit pas un standard du web
Un projet semblable à une Library of Babel réelle est fascinant, et si une bibliothèque ou un musée infini prenait vie en VR, cela vaudrait la peine d’y investir
Le fait de voir des étagères en zoomant est vraiment très réussi
Une visualisation vraiment très réussie, et il y a eu beaucoup d’autres soumissions remarquables