категории | RSS

Представлен проект по визуализации всех книг мира в ISBN-Space

Представлен открытый проект ISBN Visualization по визуализации более 97 млн книг со всего мира в пространстве ISBN. Код решения написан на TypeScript и Rust и опубликован на GitHub под лицензией GNU Affero General Public License. Международный стандартный книжный номер (International Standard Book Number, ISBN) — уникальный номер книжного издания, необходимый для распространения книги в торговых сетях и автоматизации работы с изданием. «Библиотеки пытались собрать знания человечества почти с момента изобретения письменности. В цифровую эпоху, возможно, действительно можно будет создать всеобъемлющую коллекцию всех человеческих произведений, которая будет соответствовать определенным критериям.

Именно этим занимаются теневые библиотеки — собирают и делятся как можно большим количеством книг. Одна теневая библиотека, Anna's Archive (на которую я не буду давать здесь прямую ссылку из‑за проблем с авторскими правами), недавно задалась вопросом: как мы можем эффективно визуализировать 100 000 000 книг или больше одновременно?

Существует множество данных для просмотра: названия, авторы, страны, из которых поступают книги, какие издатели, сколько им лет, в скольких библиотеках они хранятся, доступны ли они в цифровом формате и т. д. Международные стандартные номера книг (ISBN) — это 13-значные номера, которые присваиваются почти всем опубликованным книгам.

Поскольку первые три цифры фиксированы (в настоящее время только 978- и ​​979-), а последняя цифра является контрольной суммой, это означает, что общее пространство ISBN13-Space имеет только два миллиарда слотов. Вот моя интерактивная визуализация этого пространства», — пояснил автор проекта под ником phiresky.

На данный момент в базе проекта отображаются 97 380 212 книг.

Архитектура проекта:

бэкенд: поскольку можно просто хранить наши плитки изображений как PNG, а наши деревья данных как JSON, не нужен никакой бэкенд. Нужен статический файловый хост, например Github Pages, чтобы выгрузить HTML, JS, CSS, PNG и JSON.

фронтенд: ThreeJS, React, MobX. Это очень удобная комбинация для создания реактивных декларативных 2D/3D-сцен с ускорением на GPU, с возможностью повторного использования компонентов.

Processing Scripts: набор скриптов обработки в основном написан на JS (непосредственно записывающих файлы JSON и PNG), но один из них написан на Rust, поскольку нужно прочитать исходный файл размером 250 ГБ, записывая вывод в SQLite.



Источник новости: habr.com

DimonVideo
2025-02-02T10:50:01Z

Здесь находятся
всего 0. За сутки здесь был 1 человек
Яндекс.Метрика