Alle Bücher der Welt im ISBN-Raum visualisieren
(phiresky.github.io)-
Alle Bücher der Welt im ISBN-Raum visualisieren
-
Bibliotheken haben versucht, das Wissen der Menschheit zu sammeln. Im digitalen Zeitalter könnte es möglich sein, alle menschlichen Schriften, die bestimmte Kriterien erfüllen, umfassend zu erfassen. Schattenbibliotheken übernehmen die Aufgabe, möglichst viele Bücher zu sammeln und zu teilen.
-
Die ISBN (Internationale Standardbuchnummer) ist eine 13-stellige Zahl, die fast jedem veröffentlichten Buch zugewiesen wird. Diese Nummer hat eine bestimmte Struktur, mit der sich ein ISBN13-Raum mit 2 Milliarden Slots visualisieren lässt.
-
Die besondere Struktur der ISBN
- Die Präfixe 978-/979- der ISBN sind eine Teilmenge der europäischen Artikelnummer. Diese Präfixe können weitgehend ignoriert werden.
- Die Internationale ISBN-Agentur weist großen internationalen Organisationen umfangreiche ISBN-Blöcke zu, und jedes Land unterteilt diese Blöcke selbst weiter für Verlage.
- ISBN-Blöcke werden immer nach Präfixen vergeben. Japan erhielt zum Beispiel 978-4 und weist darüber ISBNs an Verlage zu.
-
Space-Filling-Curves
- Wenn man Präfix und Suffix aus einer ISBN entfernt, bleibt eine Dezimalzahl zwischen 0 und 2 Milliarden. Es wird eine Methode benötigt, um diese in einen zweidimensionalen Raum zu projizieren.
- Space-Filling-Curves wie die Hilbert-Kurve wurden vorgeschlagen, können jedoch Strukturen einführen, die in den Daten nicht vorhanden sind.
-
Die „Bücherregal“-Kurve
- ISBNs sind im Kern dezimal, und daraus lässt sich eine leicht verständliche und visuell ansprechende Space-Filling-Curve erzeugen.
- Diese Kurve sieht wie ein Bücherregal aus, und mit einer einfachen Koordinatentransformation lässt sich eine ISBN in Koordinaten umwandeln.
-
Kartenkacheln
- Für jedes Präfix lassen sich Kachelbilder erzeugen. Für jeden Datensatz werden pro Pixel unterschiedliche Informationen gespeichert.
- Auf der höchsten Zoomstufe wird zur Wahrung der Genauigkeit pro Pixel genau ein Buch abgebildet.
-
Shader
- Statt RGB-Daten direkt zu speichern, wird das Rendering mit einem GLSL-Fragment-Shader durchgeführt. Dadurch kann die Farbskala später gewählt werden, und mehrere Datensätze lassen sich sofort kombinieren.
-
Bücherregal-Ansicht
- In der vollständig hineingezoomten Ansicht wird jedes Pixel wie ein Buch gestaltet. Dies wird im Shader umgesetzt und erscheint je nach Zoomstufe sanft.
-
Performance
- Das Text-Rendering ist hierarchisch nach Zoomstufe und View-Frustum-Culling umgesetzt. Um Performance-Probleme zu lösen, wurden HTML-Elemente reduziert und DOM-Inhalte begrenzt.
-
Barcode
- Auf der maximalen Zoomstufe hat jedes Buch einen Barcode. Dieser wurde hinzugefügt, um das Konzept zu verstärken, Bücher nach ISBN zu ordnen.
-
Verlagsbereiche
- Jede „Gruppe“ hat einen großen Bereich, und jeder Verlag hat innerhalb der Gruppe einen kleineren Bereich. Um dies zu visualisieren, werden jeder Gruppe und jedem Verlag eigene Farben zugewiesen.
-
Flugpfad
- Wenn man nach einem Buch sucht oder auf die Minikarte klickt, wird zu dieser Position navigiert. Die Berechnung des Flugpfads ist komplex und wurde durch mehrere Versuche verbessert.
-
Architektur
- Ein Backend ist nicht erforderlich; statisches File-Hosting speichert HTML, JS, CSS, PNG und JSON.
- Das Frontend ist mit ThreeJS, React und MobX umgesetzt.
-
Fazit
- Es bietet eine flexible Methode, alle per ISBN veröffentlichten Bücher zu visualisieren. Dieses Projekt hat viel Freude bereitet, und der Quellcode ist auf GitHub verfügbar.
1 Kommentare
Hacker-News-Kommentare
Als Amazon startete, wollte man die dreifache Klassifikation der Library of Congress verwenden, aber der Datenanbieter hatte sie in eine einzige Zeichenkette umgewandelt, sodass die Grenzen schwer zu erkennen waren. Letztlich wurde diese Idee aufgegeben.
Da ISBNs manchmal mehrfach verschiedenen Büchern zugewiesen werden, könnte die Formulierung „alle Bücher im ISBN-Raum“ übertrieben sein. Außerdem gibt es Bücher mit fehlerhaften ISBNs, die damit außerhalb des im Blogbeitrag angenommenen ISBN-Raums liegen könnten.
Die Präsentation spiegelt nur den Inhalt von Anna’s Archive wider und weist eine Verzerrung zugunsten bestimmter Sprachen auf. Die schwarz dargestellten Bereiche stehen für Einträge, die im Archiv fehlen.
Das Projekt ist erstaunlich, und die Funktion, Buchtitel, Barcodes, Buchcover und Details ansehen zu können, ist beeindruckend. Als Verbesserung wurde eine Checkbox vorgeschlagen, um das weiße Panel oben links und die Elemente oben rechts auszublenden.
Man kann Flugrouten betrachten, indem man die Bewegung in der hyperbolischen oberen Halbebene modelliert. Es wurde überlegt, wie sich Kacheln je nach Zoomstufe minimieren lassen; die bestehende Implementierung verbringt bei hohen Zoomstufen mehr Zeit mit dem Panning.
Die Präsentation in ihrer aktuellen Form wirkte etwas überwältigend, aber die Datenvisualisierung und Tiefe sind herausragend. Es war interessant, die Verlagsaktivität bestimmter Regionen zu sehen; Polen ist in jüngerer Zeit aktiv, und China hat seit 2005 stark zugelegt.
Microsoft Silverlight PivotViewer passt gut zu dieser Anwendung, und Gary W. Flakes TED-Vortrag ist beeindruckend. Schade ist allerdings, dass es sich nicht um einen Webstandard handelt.
Ein Projekt wie eine reale Library of Babel ist faszinierend, und wenn eine unendliche Bibliothek oder ein unendliches Museum in VR realisiert würde, wäre es eine Investition wert.
Es ist wirklich großartig, dass beim Hineinzoomen Bücherregale sichtbar werden.
Eine sehr coole Visualisierung, und es gibt noch viele weitere großartige Einreichungen.