Trực quan hóa mọi cuốn sách trên thế giới trong không gian ISBN
(phiresky.github.io)-
Trực quan hóa mọi cuốn sách trên thế giới trong không gian ISBN
-
Các thư viện từ lâu đã nỗ lực thu thập tri thức của nhân loại. Trong kỷ nguyên số, có thể việc thu thập một cách toàn diện mọi văn bản của nhân loại đáp ứng các tiêu chí nhất định là điều khả thi. Shadow library đảm nhiệm vai trò thu thập và chia sẻ nhiều sách nhất có thể.
-
ISBN (Mã số sách tiêu chuẩn quốc tế) là dãy số gồm 13 chữ số được gán cho gần như mọi cuốn sách đã xuất bản. Dãy số này có một cấu trúc nhất định, nhờ đó có thể trực quan hóa không gian ISBN13 với 2 tỷ ô.
-
Cấu trúc riêng của ISBN
- Tiền tố 978-/979- của ISBN là tập con của mã số hàng hóa châu Âu. Có thể gần như bỏ qua tiền tố này.
- Cơ quan ISBN quốc tế phân bổ các khối ISBN lớn cho các tổ chức quốc tế, và mỗi quốc gia tiếp tục chia nhỏ các khối này cho các nhà xuất bản.
- Các khối ISBN luôn được phân bổ theo tiền tố. Ví dụ, Nhật Bản được cấp 978-4 và từ đó phân bổ ISBN cho các nhà xuất bản.
-
Đường cong lấp đầy không gian
- Nếu bỏ phần tiền tố và hậu tố khỏi ISBN, ta sẽ có một số thập phân trong khoảng từ 0 đến 2 tỷ. Cần một cách để chiếu nó lên không gian 2 chiều.
- Các đường cong lấp đầy không gian như đường cong Hilbert đã được đề xuất, nhưng chúng có thể đưa vào những cấu trúc không tồn tại trong dữ liệu.
-
Đường cong "giá sách"
- ISBN về bản chất là số thập phân, và có thể tận dụng điều này để tạo ra một đường cong lấp đầy không gian vừa dễ hiểu vừa hấp dẫn về mặt thị giác.
- Đường cong này trông giống như một giá sách, và có thể chuyển đổi ISBN thành tọa độ bằng một phép biến đổi tọa độ đơn giản.
-
Ô bản đồ
- Có thể tạo ảnh tile cho từng tiền tố. Với mỗi bộ dữ liệu, mỗi pixel lưu trữ những thông tin khác nhau.
- Ở mức zoom tối đa, để đảm bảo độ chính xác, mỗi pixel được ánh xạ với đúng 1 cuốn sách.
-
Shader
- Thay vì lưu trực tiếp dữ liệu RGB, việc kết xuất được thực hiện bằng GLSL fragment shader. Nhờ đó có thể chọn thang màu về sau và kết hợp nhiều bộ dữ liệu ngay lập tức.
-
Chế độ xem giá sách
- Ở chế độ phóng to hoàn toàn, mỗi pixel được tạo kiểu như một cuốn sách. Điều này được triển khai trong shader và xuất hiện mượt mà theo mức zoom.
-
Hiệu năng
- Việc render văn bản được triển khai theo cấu trúc phân cấp dựa trên mức zoom và view frustum culling. Để giải quyết vấn đề hiệu năng, số lượng phần tử HTML được giảm bớt và nội dung DOM được giới hạn.
-
Mã vạch
- Ở mức zoom tối đa, mỗi cuốn sách đều có mã vạch. Chi tiết này được thêm vào để củng cố ý tưởng sắp xếp sách theo ISBN.
-
Phạm vi nhà xuất bản
- Mỗi "group" có một phạm vi lớn, và mỗi nhà xuất bản có một phạm vi nhỏ bên trong group đó. Để trực quan hóa điều này, mỗi group và nhà xuất bản được gán một màu riêng.
-
Đường bay
- Khi tìm kiếm sách hoặc nhấp vào minimap, giao diện sẽ di chuyển đến vị trí đó. Việc tính toán đường bay khá phức tạp và đã được cải thiện qua nhiều lần thử nghiệm.
-
Kiến trúc
- Không cần backend; chỉ dùng static file host để lưu HTML, JS, CSS, PNG và JSON.
- Frontend được triển khai bằng ThreeJS, React và MobX.
-
Kết luận
- Cung cấp một phương pháp linh hoạt để trực quan hóa mọi cuốn sách được xuất bản bằng ISBN. Dự án này mang lại rất nhiều niềm vui, và có thể xem mã nguồn trên GitHub.
1 bình luận
Ý kiến trên Hacker News
Khi khởi động Amazon, họ muốn sử dụng hệ phân loại ba tầng của Library of Congress, nhưng nhà cung cấp dữ liệu đã chuyển nó thành một chuỗi duy nhất nên khó xác định ranh giới. Cuối cùng họ đã từ bỏ ý tưởng này
Có những trường hợp ISBN được gán trùng cho nhiều cuốn sách, nên cách nói "mọi cuốn sách trong không gian ISBN" có thể là phóng đại. Ngoài ra cũng có những cuốn sách có ISBN sai, nên chúng có thể nằm ngoài không gian ISBN được giả định trong bài đăng blog
Phần trình bày chỉ phản ánh nội dung trong Anna’s Archive và có thiên lệch với một số ngôn ngữ nhất định. Các vùng được hiển thị màu đen biểu thị những mục còn thiếu trong kho lưu trữ
Dự án rất ấn tượng, và tính năng xem tiêu đề sách, mã vạch, bìa sách và thông tin chi tiết thật nổi bật. Một ý tưởng cải thiện là thêm hộp kiểm để ẩn bảng màu trắng ở góc trên bên trái và thành phần ở góc trên bên phải
Có thể hình dung đường bay bằng cách mô hình hóa chuyển động trong nửa mặt phẳng trên hyperbol. Họ đã cân nhắc cách giảm số lượng ô lát theo từng mức thu phóng, và cách triển khai hiện tại tốn nhiều thời gian hơn cho việc kéo khung hình ở mức thu phóng cao
Cách trình bày hiện tại hơi quá tải, nhưng khả năng trực quan hóa dữ liệu và độ sâu thì rất xuất sắc. Việc quan sát hoạt động xuất bản của từng khu vực rất thú vị; Ba Lan gần đây khá sôi động, còn Trung Quốc đã tăng mạnh từ sau năm 2005
Microsoft SilverLight PivotViewer rất phù hợp với ứng dụng này, và bài nói TED của Gary W. Flake rất ấn tượng. Tuy vậy, thật đáng tiếc vì nó không phải tiêu chuẩn web
Những dự án giống như Library of Babel ngoài đời thực rất thú vị, và nếu một thư viện hay bảo tàng vô hạn có thể được hiện thực hóa trong VR thì đáng để đầu tư
Việc khi phóng to có thể nhìn thấy các giá sách là cực kỳ ấn tượng
Một phần trực quan hóa rất tuyệt vời, và còn có nhiều bài gửi ấn tượng khác