remix logo

Hacker Remix

Visualizing All ISBNs

392 points by RyanShook 1 week ago | 139 comments

graypegg 1 week ago

I see that bounty at the bottom, so tossing away my chances here, but this visualization is just asking to be mapped onto a Hilbert Curve. [0] When you "stripe" the data like this, points that are sorted close together could end up pretty far apart, since a distance in the Y axis skips an entire row of data as you move down, rather than a distance in the X axis which is 1-to-1 with the source data.

If you map it onto a hilbert curve, the X and Y axis mean nothing, but visually points that are close together in the sorted list, will be visually close together in the output image.

Since the first part of an ISBN is the country, then the second part is the publisher, and the third part is the title, with a check sum at the end, I would remove the checksum and sort them each as a big number. (no hyphens)

You should end up with "islands", where you see big areas covered by big publishing countries, with these "islands" having bright spots for the publisher codes.

Bonus points for labeling these areas!

I set up something a while ago [1] for an interview that does this with weather data. It makes the seasons really obvious since they're all grouped together.

[0] https://en.wikipedia.org/wiki/Hilbert_curve

[1] https://graypegg.com/hilbert (https://github.com/graypegg/hilbertcurveplayground code if anyone wants to go for the prize using this! Please at least mention me if you decide to reuse this code, but I can't stop ya lol)

abetusk 1 week ago

And there's a generalized Hilbert curve, the Gilbert curve, for non powers of two rectangular regions [0] (online demo [1]).

[0] https://github.com/jakubcerveny/gilbert

[1] https://jakubcerveny.github.io/gilbert/demo/

n2d4 1 week ago

What property makes the Hilbert curve desirable compared to, say, a snake pattern, with which neighbouring ISBNs are also neighbours in the visualisation?

The worry I have with Hilbert curves is that they make the result look like there are distinct "squares" of data [0] when really this is just an artifact of how Hilbert curves work. In that sense, the current visualization is more useful, because it's straightforward to identify the location of each country in it.

[0] https://raw.githubusercontent.com/jakubcerveny/gilbert/maste...

graypegg 1 week ago

In a snake pattern, the neighbouring pixels on the left and right are related, but the ones above and below have skipped a whole row.

And yeah that’s true! you end up with squares with Hilbert curves. But those squares are all « related » data. Then those squares are related to the squares near it. Zoom out more and that grouping of squares is related to the neighbouring macro-squares etc etc.

Basically the square shape is a positive. Kind of like how charting the derivative lets you see how random/related information is, grouping into these squares gives you a visualization of pattern-ness, rather than any specific measurement.

n2d4 1 week ago

> In a snake pattern, the neighbouring pixels on the left and right are related, but the ones above and below have skipped a whole row.

But this is also true in Hilbert curves across the boundaries of the "squares" that I mentioned. The two center pixels in the top row are much more distant than any two pixels would be in a snake pattern.

NooneAtAll3 1 week ago

> What property makes the Hilbert curve desirable compared to, say, a snake pattern, with which neighbouring ISBNs are also neighbours in the visualisation?

2D neighbourhood is better than 1D one

> The worry I have with Hilbert curves is that they make the result look like there are distinct "squares" of data

that's the point, tho? instead of distinct lines of taken ISBNs in a row, you get distinct squares if taken ISBNs in a row - much more noticeable

WillAdams 1 week ago

The thing is, ISBNs aren't hierarchical --- they are bought in blocks (or even individually at an exorbitant markup, says the guy who bought one to reprint a single book), so this doesn't show anything really interesting/useful.

A visualization using LoC or even Dewey Decimal would be far more useful, esp. if it also linked to public domain and copyright-free repositories/lists, say an interactive and visual version of John Mark Ockerbloom's:

https://onlinebooks.library.upenn.edu/

est31 1 week ago

ISBN's are hierarchical, what do you mean? Like Gaul, ISBNs are divided into multiple parts, where one part is for the language, another is for the publisher, and the last is for the title. The last part is a checksum. https://en.wikipedia.org/wiki/ISBN#Overview

WillAdams 1 week ago

Yes, but this internal hierarchy for an issued number doesn't tell anything beyond those facts about a specific edition of a specific text.

One can't use ISBNs alone to create a hierarchical listing of texts which is useful for anything beyond browsing by language/publisher/order in which the ISBN was generated.

A visual and interactive representation of books by LoC or some other cataloging system would actually be useful.

PaulHoule 1 week ago

I got into an argument with the manager of South End Press back in '94 about whether 'Futuresplash' (soon to be Macromedia Flash) had a future, he thought it did and he was right.

Years later I was working at the library and got a little bit steamed because South End Press was reusing ISBN's after books went out of print which was allowed but, I think, lame.

One of my strategies for researching a topic is looking a few up in the OPAC, finding them in the stacks, and finding more books on the topic in those areas. (In the Library of Congress system, machine vision could be under QA56 with the rest of computer science or around TA1630, thus "areas".)

From time to time I've thought about trying to replicate the feel of this with some kind of UI given that our library moved a lot of the collection into deep archives and we have a very fast 'Borrow Direct' service with other peers)

convolvatron 1 week ago

totally agree, but thats not in the data. however, since blocks are assigned to agencies associated with countries and publishers, you might find some utility in showing coverage by likely language and/or country of origin and date.

MarceColl 1 week ago

It shows what they want to show, which is mostly how much of the world books they have. Hierarchical has nothing to do with it.

Finnucane 1 week ago

It only sort of shows that. ISBNs are issued by edition, not title, so many books would have more than one. And books published before 1970 or so might not be represented at all if they have no recent edition.

NoMoreNicksLeft 1 week ago

They can't even have a tiny fraction of the world's books. Each edition of the book gets a new ISBN... if a book is released as a paperback, hardback, kindle edition, pdf, and epub then there are supposed to be five ISBNs.

The vast, vast majority have only been released as dead-tree versions. They have none of those. The books they scan may have an ISBN, but the scans do not have them. Like all Project Gutenberg books, their books have no ISBNs at all. From a strict point of view, they've released new editions of these books.

nickelpro 1 week ago

Worthless semantics in the context of the mission of the project.

What you've described is that the archived content can be mapped to multiple ISBNs. It's clear the only element of concern here is the content itself. The failure to preserve a particular binding or printer's choice of typeface is irrelevant.

Failing to recognize this requires an almost malicious level of pedantry

jameshart 1 week ago

A successful archival of one of those ISBNs will light up; four of those ISBNs remain dark. Yet they have that content archived. It means that lighting up the entire grid is not necessary to achieve their goal.

Indeed a bigger problem is that it’s much harder to know which areas of the grid are never going to light up because the ISBN has not been used.

nickelpro 1 week ago

This is a separate problem, but a notable one.

Lighting up the entire grid is still the goal, you're describing the problem of ensuring the right set of squares is illuminated for each piece of archived content. One is a problem of archiving the content, the other is a problem of bookkeeping.

NoMoreNicksLeft 1 week ago

>Worthless semantics in the context of the mission of the project.

Hardly worthless... often times, the edition of the book matters as much as the title. Steven King wrote two books named The Stand, and one isn't anything like the other. He pulled a Lucas pretty early on.

He's hardly the only author to ever do this. But it's not just authors either. Editors, collectors, translators all make their mark, and give you works that though they might be slightly different to you, the differences actually matter to the rest of us. It's not that you're ignorant that offends me, it's the arrogance about a subject you seem to know so little about that makes it difficult to tolerate.

There is no pedantry here, just a desire to actually preserve books and to organize them.

nickelpro 1 week ago

> Steven King wrote two books named The Stand, and one isn't anything like the other

Then those two texts would map to different ISBNS, or perhaps each maps to multiple different ISBNs, it doesn't matter. That some texts exist with the same title but different content is similarly irrelevant.

The content is all that matters. Two different bodies of content, two different entries in the archive. Each entry may map to one or more ISBN numbers.

> the differences actually matter to the rest of us

The only differences that matter are what matters to the archive that made the blog post. Your concerns are for entirely different things, which is fine, but don't say the OP's concerns or initiatives are impossible or ill-suited based on a criteria you're projecting onto them.

mmooss 1 week ago

> The books they scan may have an ISBN, but the scans do not have them. Like all Project Gutenberg books, their books have no ISBNs at all. From a strict point of view, they've released new editions of these books.

Are you saying they actively remove ISBN numbers from scans? If I downloaded one of the books, it wouldn't have an ISBN?

Why? That seems like a bunch of extra processing per book, makes it harder for users to specifically identify a book, and probably does nothing for legality. Also, can people search by ISBN?

Tomte 1 week ago

> Are you saying they actively remove ISBN numbers from scans?

No, he‘s playing the pointless „well, actually a scan of a book is a different thing from the book itself“ game.

NoMoreNicksLeft 1 week ago

No, I'm saying that the ISBN doesn't describe titles, it describes editions, and editions matter.

nickelpro 1 week ago

You said:

> From a strict point of view, they've released new editions of these books.

And this is clearly a semantically worthless distinction from the point of view of the archive.

When different editions have different content, archiving those differences in that content may matter (arguably not for simple typographical corrections, printing errors, etc). When different ISBNs have identical content, it is totally irrelevant to the goals of the archive.

edflsafoiewq 1 week ago

This is addressed somewhat in the "The critical window of shadow libraries" post

> Until now, the only options to shrink the total size of our collection has been through more aggressive compression, or deduplication. However, to get significant enough savings, both are too lossy for our taste. Heavy compression of photos can make text barely readable. And deduplication requires high confidence of books being exactly the same, which is often too inaccurate, especially if the contents are the same but the scans are made on different occasions.

Finnucane 1 week ago

A text may be derived from an edition with an isbn, but the isbn wouldn’t apply to that file, it is effectively a different edition.

omoikane 1 week ago

One thing it shows is how ISBNs are allocated much faster than they are used, judging by the amount of black pixels.

The image contains 1000*800 pixels at 2500 ISBNs per pixel, so it's visualizing 2e9 ISBNs. ISBN-13 contains 12 digits plus one check digit, so we might have expected the image to be 500 times bigger/denser than the current image. The fact that it's at its current size suggests that only ISBNs with 978 and 979 prefixes are included, and since the bottom half is more sparse, that probably corresponds to the new 979 range.

skrebbel 1 week ago

I thought it was my color blindness that made me not able to distinguish between the red and green pixels as described (i only see red and black ones), but even with a browser extension that counters color blindness i can't distinguish more colors. Is this just me, or is the graph weird?

saithound 1 week ago

Fwiw (not color-blind) I can see red, green and black pixels. The graph doesn't look weird to the naked eye.

Find the interactive visualiser by scrolling down, and switch it to "Files in Anna's Archive [md5]". This will highlight the location of the green pixels in grey.

Muehe 1 week ago

If you have red-green blindness like me try this:

- Right-click the image and select "Inspect".

- Add a new CSS hue-rotate filter to the element:

    element {
       max-width: 100%;
       margin: 0 auto;
       filter: hue-rotate(-90deg);
    }

Usually I use "filter: saturate(100);", but that didn't really work well for this image. You might have to adjust the rotation degree though, -90 worked best for me.

superzamp 1 week ago

The graph seems to be alright, there are indeed red and (some) green pixels, looks like an issue with your extension unfortunately.

Finnucane 1 week ago

I am also color blind and the graph is not good.

glimshe 1 week ago

Anna's archive is one of the wonders of the world. If we almost destroyed our species but Anna's archive endured, there would be hope for a relatively expedient reconstruction.

wayathr0w 1 week ago

>relatively expedient reconstruction

If self-destruction is a necessary premise here, is that really a good thing?