Visualizando todos os livros do mundo no espaço ISBN
(phiresky.github.io)-
Visualizando todos os livros do mundo no espaço ISBN
-
As bibliotecas vêm tentando reunir o conhecimento da humanidade. Na era digital, pode ser possível coletar de forma abrangente todos os escritos humanos que atendam a certos critérios. Bibliotecas sombra cumprem o papel de reunir e compartilhar o maior número possível de livros.
-
O ISBN (International Standard Book Number) é um número de 13 dígitos atribuído a quase todos os livros publicados. Esse número tem uma estrutura específica, o que permite visualizar o espaço ISBN13 com 2 bilhões de posições.
-
Estrutura única do ISBN
- Os prefixos 978- / 979- do ISBN são um subconjunto do código europeu de mercadorias. Esses prefixos podem ser praticamente ignorados.
- A Agência Internacional do ISBN atribui grandes blocos de ISBN a organizações internacionais, e cada país subdivide esses blocos para as editoras.
- Os blocos de ISBN são sempre atribuídos por prefixo. Por exemplo, o Japão recebeu o bloco 978-4 e, a partir dele, atribui ISBNs às editoras.
-
Curva de preenchimento de espaço
- Se removermos o prefixo e o sufixo do ISBN, obtemos um número decimal entre 0 e 2 bilhões. É preciso uma forma de projetá-lo em um espaço bidimensional.
- Curvas de preenchimento de espaço como a curva de Hilbert foram propostas, mas podem introduzir estruturas que não existem nos dados.
-
Curva da "estante"
- O ISBN é essencialmente decimal, e isso pode ser usado para criar uma curva de preenchimento de espaço fácil de entender e visualmente atraente.
- Essa curva se parece com uma estante, e uma transformação simples de coordenadas permite converter um ISBN em coordenadas.
-
Tiles de mapa
- É possível gerar imagens em tile para cada prefixo. Para cada conjunto de dados, diferentes informações são armazenadas por pixel.
- No nível máximo de zoom, 1 pixel corresponde a 1 livro para garantir precisão.
-
Shaders
- Em vez de armazenar dados RGB diretamente, a renderização é feita com um fragment shader em GLSL. Isso permite escolher a escala de cores depois e combinar vários conjuntos de dados instantaneamente.
-
Visualização em estante
- Na visualização com zoom total, cada pixel é estilizado como se fosse um livro. Isso é implementado no shader e aparece suavemente conforme o zoom aumenta.
-
Desempenho
- A renderização de texto é implementada em hierarquia conforme o nível de zoom e o view frustum culling. Para resolver problemas de desempenho, reduz-se a quantidade de elementos HTML e limita-se o conteúdo do DOM.
-
Código de barras
- No zoom máximo, cada livro tem um código de barras. Isso foi adicionado para reforçar a ideia de ordenar os livros por ISBN.
-
Faixas de editoras
- Cada "grupo" tem uma faixa grande, e cada editora tem uma faixa menor dentro do grupo. Para visualizar isso, cada grupo e cada editora recebe uma cor única.
-
Trajetória de voo
- Ao pesquisar um livro ou clicar no minimapa, a visualização se desloca até aquele local. O cálculo da trajetória de voo é complexo e foi aprimorado ao longo de várias tentativas.
-
Arquitetura
- Não é necessário backend; usa-se um host de arquivos estáticos para armazenar HTML, JS, CSS, PNG e JSON.
- O frontend é implementado com ThreeJS, React e MobX.
-
Conclusão
- O projeto oferece uma forma flexível de visualizar todos os livros publicados com ISBN. Foi um projeto muito divertido, e o código-fonte pode ser visto no GitHub.
1 comentários
Opiniões do Hacker News
Quando a Amazon começou, queriam usar a classificação tripla da Library of Congress, mas o provedor de dados a converteu em uma única string, o que dificultava encontrar as divisões. No fim, a ideia acabou sendo abandonada
Há casos em que um ISBN é atribuído em duplicidade a vários livros, então a expressão "todos os livros no espaço ISBN" pode ser um exagero. Além disso, existem livros com ISBN incorreto, que podem estar fora do espaço ISBN assumido na postagem do blog
A apresentação reflete apenas o conteúdo do Anna’s Archive e tem viés em relação a certos idiomas. As áreas mostradas em preto representam itens ausentes no arquivo
O projeto é impressionante, e a possibilidade de ver títulos, códigos de barras, capas e detalhes dos livros chama a atenção. Uma ideia de melhoria seria adicionar uma caixa de seleção para ocultar o painel branco no canto superior esquerdo e o elemento no canto superior direito
Dá para pensar em rotas de voo modelando o movimento no semiplano hiperbólico superior. Também foi considerada uma forma de minimizar tiles de acordo com o nível de zoom, e a implementação atual gasta mais tempo com panning em níveis de zoom altos
O formato atual da apresentação pareceu um pouco avassalador, mas a visualização de dados e a profundidade são excelentes. Foi interessante observar a atividade editorial de regiões específicas; a Polônia está bastante ativa recentemente, e a China cresceu muito desde 2005
O Microsoft SilverLight PivotViewer seria adequado para esta aplicação, e a palestra TED de Gary W. Flake é marcante. Porém, é uma pena que não seja um padrão web
Projetos como uma Library of Babel do mundo real são interessantes, e uma biblioteca ou museu infinito realizado em VR valeria investimento
É muito legal que, ao dar zoom, apareçam estantes de livros
Uma visualização muito legal, e há muitas outras submissões legais