Chuyển đến nội dung chính

Từ giấc mơ đến thực tế: Jonathan Basile và Thư viện Babel điện tử

 Mấy bữa trước, trong lúc đi tra cứu thông tin để phục vụ bài review A Short Stay In Hell, mình có tình cờ phát hiện ra một điều thú vị: đã có người xây hẳn một cái Thư viện Babel thật rồi, anh em ạ.

Hoặc đúng hơn là phiên bản điện tử của nó, với địa chỉ là: https://libraryofbabel.info/.


Cụ thể, cái thư viện đó được xây lên bởi Jonathan Basile, một tác giả kiêm tiến sĩ văn học Brooklyn. Một đêm nọ, trong lúc đang nằm trên giường, Basile có vơ vẩn nghĩ về Thư viện Babel (bản gốc của Borges ấy, chứ không phải bản cập nhật của Peck đâu), và từ đó đã sực nảy ra ý tưởng về một phiên bản online của cái thư viện này. Việc đưa Thư viện Babel lên không gian ảo nghe quá hợp lý, đến nỗi Basile cứ cầm chắc rằng kiểu gì cũng đã có người chế ra một cái website mô phỏng nó rồi. Nhưng ngày hôm sau, lúc lên mạng tìm kiếm, Basile đã không khỏi thất vọng ê chề. Khắp toàn cõi mạng, tuyệt không có một trang web nào như vậy cả.

Nhưng thay vì bỏ cuộc, Basile lại quyết định sẽ tự tay chế ra một cái thư viện như vậy.

Cái khó khăn đầu tiên là Basile vốn là dân văn, một lệnh code bẻ đôi không biết. Nhưng với lòng quyết tâm ngang tầm thằng em 96 cơ khí Bách Khoa, Basile đã mày mò tự học, vừa học vừa đặt từng viên gạch cho một cái website Babel. Trong quá trình mò mẫm, ông anh nhận thấy rằng nếu chơi kiểu thủ công, đó là tạo ra một loạt các tệp tin chứa những ký tự ngẫu nhiên, xong up lên host như một trang web bình thường, mình sẽ đâm đầu vào ngõ cụt ngay lập tức. Cần đến hơn một terabyte dung lượng lưu trữ thì mới chứa nổi một triệu cuốn sách, trong khi một Thư viện Babel đúng chuẩn theo miêu tả của Borges thì sẽ có con số sách khả dĩ là khoảng 10^4677 cuốn. Có lấp đầy cả vũ trụ với server thì cũng không tài nào đủ dung lượng lưu hết cái mớ đấy.

Nhưng rồi trong quá trình học hỏi, Basile ngày một thành thạo lập trình hơn, và từ đấy đã nhìn thấy một con đường khác: thay vì tạo ra tệp thực, ông anh sẽ tạo ra một thuật toán dựa trên một bộ sinh số bán ngẫu nhiên.

Cụ thể, Basile không tạo ra từng tệp lẻ cho mỗi quyển sách, mà chỉ gán cho các quyển sách một chuỗi tọa độ nhất định, tương ứng với “vị trí” của nó trong thư viện. Cái chuỗi đấy được cấu thành từ tên căn phòng lục giác, số hiệu bờ tường đặt kệ sách, ngăn kệ đặt cuốn sách, tiêu đề cuốn sách, và trang sách. Chuỗi tọa độ đó sẽ đóng vai trò một cái “mầm” ngẫu nhiên (tức “random seed”). Mỗi khi có ai bốc một quyển sách nào đấy, người đó về cơ bản nhắn lên cho server cái chuỗi mầm này, và căn cứ vào cái mầm nhận được, thuật toán của Basile sẽ sản sinh ra một chuỗi ký tự dựa trên một quy tắc nhất định theo thời gian thực. Cái chuỗi đấy sẽ là một hoán vị nhất định của một tập hợp 29 ký tự (26 chữ cái tiếng Anh, dấu cách, dấu phẩy và dấu chấm), và nó sẽ được sắp xếp đúng theo kiểu một trang sách trong thư viện Borges. Vì mọi thứ tạo ra theo thời gian thực, sẽ không việc gì phải lo về dung lượng host cả.

Dù đây trên lý thuyết là tạo ngẫu nhiên, nhưng nó cũng có quy tắc ẩn đằng sau. Vì tạo chuỗi dựa trên quy tắc, mỗi một mầm sẽ ứng với một chuỗi duy nhất, không giống với bất cứ chuỗi sản sinh ra từ cái mầm nào khác, và ai chọn đúng cái mầm đấy cũng sẽ thúc thuật toán sản sinh ra đúng cái chuỗi kia. Điều này đảm bảo rằng mỗi lần quay lại với một quyển sách bất kỳ từng đọc, anh em sẽ vẫn thấy cùng một nội dung như cũ, và nó sẽ không trùng hoàn toàn với nội dung bất cứ trang nào khác cả. Nhưng vì cái thuật toán không hoạt động dựa trên một quy tắc nào quá dễ hiểu, thế nên anh em không biết cái mầm nào sẽ tạo ra cái gì. Ngay cả nếu có bốc một cách rất quy củ (tức chọn trang thứ nhất của cuốn sách thứ nhất, đặt trên ngăn kệ thứ nhất của giá thứ nhất bên trong “căn phòng” thứ nhất), anh em cũng sẽ không thể tìm được cái gì có quy luật. 

Có 3 cách để mọi người xem sách trong đó. Cách thứ nhất là bấm vào “random,” nhờ cái thư viên bốc bừa một trang sách bất kỳ; cách thứ hai là bấm vào “browse,” sau đấy cứ tuần tự chọn phòng, chọn kệ, chọn gian, chọn quyển, và chọn trang; cách thứ ba là bấm vào “search,” sau đó điền vào một cụm dài không quá 3.200 ký tự, và trang web sẽ cho mọi người biết cái cụm đấy có thể được tìm thấy ở trang nào, cuốn nào, kệ nào, phòng nào. Sau khi đã tìm được sách, trang web sẽ cho mọi người bookmark cái tọa độ đó lại để về sau quay lại đấy đọc, hoặc down cả quyển sách xuống. Nó cũng có chế độ tô đậm các từ có thể có ý nghĩa theo quy luật từ vựng của tiếng Anh, để anh em có thể tra xem cái trang mình giở đến có gì có ý nghĩa không.

Nếu anh em nào muốn thử trải nghiệm cảm giác sống trong cái địa ngục thư viện này, hãy thử ngó qua trang web này nhé. Và nếu có anh em nào chơi mò thủ công tìm ra được đủ bộ các quyển chép lại nguyên văn các tác phẩm của Shakespear, nhớ hãy chia sẻ lên đây nhé. Mình xin hứa sẽ thắp đủ 3 nén hương ảo để lạy anh em 🐧 .

***


Bài gốc được đăng trong group Hội thích truyện Sci Fi trên Facebook. Cùng ghé chơi group để thảo luận về bài viết hoặc đọc thêm các bài tương tự, bạn nhé.