2 points par GN⁺ 2025-01-11 | 1 commentaires | Partager sur WhatsApp
  • Visualisation des ISBN

    • Anna's Archive propose le plus grand catalogue ouvert de livres de l'histoire de l'humanité.
    • Chaque pixel représente 2000 ISBN, et le pixel s'affiche en vert lorsqu'un fichier est disponible.
    • Seuls 16 % de l'ensemble des livres ont été sauvegardés, et davantage de travail est nécessaire.
  • Contexte

    • Anna's Archive dresse un catalogue de livres en utilisant les numéros ISBN afin de sauvegarder les connaissances de l'humanité.
    • Les ISBN sont attribués aux livres publiés dans la plupart des pays depuis les années 1970.
    • Le système fonctionne de manière distribuée, sans autorité centrale, et les numéros sont attribués dans l'ordre suivant : pays, grands éditeurs, puis petits éditeurs.
    • Anna's Archive scrape diverses sources de métadonnées comme ISBNdb, Worldcat et Google Books, et possède ainsi les plus vastes métadonnées ouvertes sur les livres.
    • Il est important d'identifier et de préserver les livres rares et menacés.
  • Visualisation

    • Il est possible de consulter séparément différents jeux de données, et de passer de l'un à l'autre à l'aide d'un menu déroulant et de boutons.
    • Parmi les jeux de données figurent Anna's Archive, Google Books, Goodreads, Internet Archive, etc.
    • On peut observer dans la visualisation des motifs tels que des lignes et des blocs réguliers, ainsi que des zones vides.
  • Prime de 10000 $

    • Une prime est proposée pour améliorer la visualisation, et le code open source doit être soumis avant le 31 janvier 2025.
    • La meilleure proposition recevra 6000 $, la deuxième 3000 $ et la troisième 1000 $, avec paiement en Monero (XMR).
    • Une partie de la prime pourra être versée même si la proposition ne satisfait pas aux critères minimums.
    • Les propositions doivent améliorer la visualisation en modifiant le HTML, et bien fonctionner sur desktop comme sur mobile.
    • Des points supplémentaires seront accordés en fonction de l'utilisabilité et de l'attrait visuel.
  • Code

    • Le code de génération des images et les exemples se trouvent dans un répertoire spécifique.
    • Un format de données compressé de 75 MB est utilisé pour fournir les informations ISBN.
    • Il n'est pas nécessaire d'utiliser ce format pour participer à la prime, mais c'est le format le plus pratique pour démarrer.
    • Tout le code doit être fourni en open source.

1 commentaires

 
GN⁺ 2025-01-11
Commentaires sur Hacker News
  • En voyant la prime en bas, je renonce sans doute à mes chances de gagner, mais cette visualisation semble parfaite pour être mappée sur une courbe de Hilbert [0]
    Avec les données en « rayures » comme ici, des points proches dans l’ordre peuvent se retrouver assez éloignés l’un de l’autre. Descendre d’un cran sur l’axe Y revient à sauter toute une ligne de données, alors que la distance sur l’axe X correspond en 1:1 aux données d’origine
    Avec une projection sur une courbe de Hilbert, les axes X et Y perdent leur signification propre, mais des points proches dans la liste triée restent visuellement proches dans l’image produite
    Comme l’ISBN commence par le pays, puis l’éditeur, puis le titre, avec une somme de contrôle à la fin, je retirerais la somme de contrôle et je trierais chaque partie comme un grand nombre, sans tirets
    On verrait alors les vastes zones occupées par les grands pays d’édition comme des « îles », et à l’intérieur de ces îles, les codes éditeur apparaîtraient sous forme de points lumineux. Bonus si on ajoute aussi des labels à ces zones
    J’avais déjà fait quelque chose de ce genre avec des données météo pour un entretien [1]. Les données par saison s’y regroupaient, ce qui rendait la saisonnalité très nette
    [0] https://en.wikipedia.org/wiki/Hilbert_curve
    [1] https://graypegg.com/hilbert (si vous voulez tenter votre chance pour la prime avec https://github.com/graypegg/hilbertcurveplayground, ce code peut servir de référence. Si vous le réutilisez, j’aimerais au moins que mon nom soit mentionné, même si je ne peux pas l’imposer)

    • Il existe aussi la courbe de Gilbert, une généralisation de la courbe de Hilbert pour des zones rectangulaires qui ne sont pas des puissances de 2 [0], et il y a aussi une démo en ligne [1]
      [0] https://github.com/jakubcerveny/gilbert
      [1] https://jakubcerveny.github.io/gilbert/demo/
    • Je me demande quelle propriété fait qu’une courbe de Hilbert est préférable, par exemple, à un motif en serpent. Dans un motif en serpent aussi, des ISBN adjacents deviennent voisins dans la visualisation
      La courbe de Hilbert n’est en réalité qu’un produit de la structure de la courbe, mais je crains qu’elle fasse paraître le résultat comme des blocs « carrés » très marqués dans les données [0]. En ce sens, la visualisation actuelle me semble plus utile, car elle permet de repérer directement la position de chaque pays
      [0] https://raw.githubusercontent.com/jakubcerveny/gilbert/maste...
  • Le problème, c’est que l’ISBN n’est pas hiérarchique. On peut acheter des ISBN par blocs, ou à l’unité moyennant des frais supplémentaires absurdes. Je le dis pour en avoir acheté un seul afin de republier un livre
    Donc cette visualisation ne montre rien de particulièrement intéressant ou utile
    Une visualisation basée sur la classification de la Bibliothèque du Congrès ou sur la classification décimale de Dewey serait bien plus utile, surtout si elle renvoyait vers des dépôts ou catalogues du domaine public et libres de droits. Par exemple, une version interactive et visuelle des ressources de John Mark Ockerbloom
    https://onlinebooks.library.upenn.edu/

    • L’ISBN est hiérarchique. Je ne vois pas ce que vous voulez dire. Comme les numéros Gallica, l’ISBN est découpé en plusieurs parties : l’une correspond à la langue, une autre à l’éditeur, et la dernière au titre. La toute dernière partie est la somme de contrôle https://en.wikipedia.org/wiki/ISBN#Overview
    • Cette visualisation montre bien ce qu’elle veut montrer : essentiellement, combien de livres du monde ils possèdent. Cela n’a rien à voir avec la hiérarchie
    • La quantité de pixels noirs montre aussi que les ISBN sont attribués beaucoup plus vite qu’ils ne sont réellement utilisés
      L’image fait 1000×800 pixels, avec 2 500 ISBN par pixel, donc elle visualise 2 milliards d’ISBN. Un ISBN-13 contient 12 chiffres plus 1 chiffre de contrôle, donc on pourrait s’attendre à ce que l’espace total soit 500 fois plus grand ou plus dense que l’image actuelle
      Cette taille actuelle semble indiquer qu’elle n’inclut que les ISBN avec les préfixes 978 et 979, et comme la moitié inférieure est plus clairsemée, il s’agit probablement de la nouvelle plage 979
  • D’après l’explication, je devrais distinguer les pixels rouges et verts, mais j’ai cru que je n’y arrivais pas à cause d’un trouble de la vision des couleurs. Je ne vois que du rouge et du noir
    Pourtant, même avec une extension de navigateur de correction du daltonisme, je n’arrive pas à distinguer davantage de couleurs. Je me demande si c’est juste moi ou si le graphique a un problème

    • Pour référence, je ne suis pas daltonien, et je vois des pixels rouges, verts et noirs. À l’œil nu, le graphique ne me paraît pas anormal
      Faites défiler vers le bas jusqu’à l’outil de visualisation interactif, puis remplacez par « Files in Anna's Archive [md5] » et l’emplacement des pixels verts sera mis en évidence en gris
    • Si vous avez, comme moi, une déficience rouge-vert, vous pouvez essayer ceci
      Faites un clic droit sur l’image, choisissez « Inspecter », puis ajoutez un nouveau filtre CSS hue-rotate à l’élément
      element { max-width: 100%; margin: 0 auto; filter: hue-rotate(-90deg); }
      D’habitude, j’utilise filter: saturate(100);, mais ça ne convenait pas bien à cette image. Il faudra peut-être ajuster l’angle de rotation ; pour moi, -90 degrés fonctionnait le mieux
    • Le graphique lui-même a l’air correct, et il y a bien des pixels rouges ainsi qu’un peu de vert. Malheureusement, cela ressemble plutôt à un problème avec l’extension
    • Moi aussi je suis daltonien, et ce graphique n’est pas bon
    • Je vois des points verts et quelques lignes faites de points verts. Vous avez essayé de zoomer ?
  • Anna's Archive est l’une des merveilles du monde. Même si l’humanité allait presque jusqu’à l’autodestruction, tant qu’Anna's Archive survivrait, il y aurait de l’espoir pour une reconstruction relativement rapide

    • Vous dites « reconstruction relativement rapide », mais si l’autodestruction est la condition préalable ici, est-ce vraiment une bonne chose ?
  • Il semble que l’IP du serveur soit bloquée dans l’UE. J’obtiens ce message sur une connexion Ziggo aux Pays-Bas
    « Ce site web a été bloqué
    Sanctions européennes
    Le Conseil de l’Union européenne a décidé que les sites RT (anciennement Russia Today) et Sputnik News ne doivent plus être diffusés. Le site web auquel vous essayez d’accéder relève de ces sanctions européennes
    VodafoneZiggo est tenu d’appliquer ces sanctions et a donc bloqué le site web »

    • En Pologne, ça s’ouvre bien. Utilisez plutôt ce lien
      https://web.archive.org/web/20250106112552/https://annas-arc...
    • Mise à jour : le problème a été résolu en changeant la configuration du serveur DNS pour que mon serveur déjà auto-hébergé utilise le DNS racine au lieu de passer par l’ISP
    • Aucun problème en France
    • Il y a quelques avantages à faire tourner son propre résolveur récursif
    • Aucun problème en Finlande
  • Est-ce que d’autres voient aussi ce message ?
    « Ce serveur n’a pas pu prouver qu’il était annas-archive.org. Son certificat de sécurité a été émis pour *.hs.llnwd.net. Cela peut être dû à une erreur de configuration ou à une attaque visant à intercepter votre connexion »

    • Moi aussi. Sur le réseau EE au Royaume-Uni, une requête DNS pour annas-archive.org renvoie l’adresse de www.ukispcourtorders.co.uk, qui affiche aussi un avertissement de sécurité
      Si on ignore l’avertissement sur n’importe lequel des sites, on obtient ensuite une erreur HTTP 400
      D’après Wikipedia, www.ukispcourtorders.co.uk était un site qui listait autrefois les ordonnances judiciaires liées à des domaines bloqués
      https://en.wikipedia.org/wiki/List_of_websites_blocked_in_th...
    • Non, on dirait plutôt que vous subissez quelque chose qui ressemble à une attaque de l’homme du milieu. Cela dit, le domaine lui-même ressemble à un CDN légitime
    • Sur le DNS d’un FAI finlandais, on obtient un certificat apparemment normal émis par Google Trust Services
    • Pareil pour moi
  • Il est assez difficile de comprendre à quoi correspond quoi dans ce graphe. Si quelqu’un pouvait indiquer où se trouve Bookland, c’est-à-dire 978, ce serait plus facile pour s’orienter

    • Le but de la prime annoncée dans ce billet est justement d’obtenir une visualisation plus facile à lire
  • Est-ce illégal de télécharger et d’utiliser le fichier ISBN de leur côté ? Je ne vois pas en quoi le simple fait d’avoir ce genre d’informations poserait problème

    • Pour une page qui renvoie vers libgen et sci-hub, j’imagine qu’ils ne se soucient pas tant que ça du droit d’auteur
  • Ils disent : « Chaque pixel représente 2 500 ISBN. Si nous avons un fichier pour ces ISBN, nous rendons ce pixel plus vert », mais je ne comprends pas ce que signifie plus vert. Je ne vois pas de vert nuancé
    Et faut-il comprendre que les pixels noirs correspondent à des ISBN non enregistrés ?

    • Je recommande de faire un test de daltonisme. Le vert est très net, surtout vers 40 % plus bas dans l’image complète
    • En regardant de près, on distingue bien quelques pixels brunâtres et quelques pixels vert foncé
  • J’obtiens ce message
    « Sanctions européennes
    Le Conseil de l’Union européenne a décidé que les sites RT (anciennement Russia Today) et Sputnik News ne doivent plus être diffusés. Le site web auquel vous essayez d’accéder relève de ces sanctions européennes »

    • Ce site est censuré au niveau DNS, et ils semblent avoir choisi la mauvaise page d’erreur
      En Italie, ça échoue simplement avec NS_ERROR_CONNECTION_REFUSED
    • Même depuis une IP européenne, ça s’ouvre bien ici
    • Il suffit de changer de DNS pour 1.1.1.1 (Cloudflare) ou 8.8.8.8 (Google)