1
BÁO CÁO THAM DỰ HỘI NGHỊ QUỐC TẾ VỀ CHỮ NÔM
(Hà Nội 11/2004)
MỘT SỐ KẾT QUẢ ỨNG DỤNG CNTT
PHỤC VỤ NGHIÊN CỨU CHỮ NÔMNgười viết báo cáo: Phan Anh Dũng, Chuyên viên Công ty Sách-TBTH TT-Huế, Cộng tác
viên của Trung tâm Công nghệ phần mềm Huế (Huesoft).
I. Giới thiệu:
Việc phát triển quan hệ kinh tế với TQ, Đài Loan, Hồng Kông, Singapor đã thúc đẩy
phong trào học tiếng Hoa trong nước, đặc biệt từ cuối những năm 1990. Việc chế bản vi
tính chữ Hán du nhập vào nước ta từ khoảng đầu những năm 1990 với các phần mềm tiếng
Hoa như Windows 3.1 tiếng Hoa, TwinBrigde (Song Kiều), Chinese Star hay ET .v.v. Xu
hướng chung là khai thác khả năng của Song Kiều cho phép đăng ký thâu nhập pháp tự biên
soạn để đánh chữ Hán theo âm Hán Việt, và nhờ khả năng của Song Kiều cho phép vẽ bổ
sung nhiều chữ mới, nên có thể vẽ và chế bản cả chữ Nôm. Nhóm chúng tôi đã tận dụng các
khả năng này của Song Kiều để chế bản được một số tác phẩm chữ Nôm kinh điển.
Đồng thời trong những năm đó Viện nghiên cứu Hán Nôm ở Hà Nội phối hợp với Hội
bảo tồn di sản chữ Nôm (NômFoundation) đã đi trước một bước cơ bản là xúc tiến việc đưa
chữ Nôm vào chuẩn Unicode quốc tế. Hiện tại đã đưa được 9299 chữ Nôm căn bản nhất
vào chuẩn Unicode 3.1 và sẽ còn tiếp tục bổ sung. NômFoundation cũng đang xúc tiến việc
vẽ font chữ, làm các công cụ tra cứu trên mạng Internet và bắt tay xây dựng phần mềm xử
lý chữ Nôm có bài bản
Nhóm chúng tôi ở Huế cụ thể là Phan Anh Dũng, Nguyễn Thế với sự cố vấn của Nhà
giáo ưu tú Nguyễn Đình Thảng, cũng quan tâm tới lĩnh vực ứng dụng CNTT vào nghiên
cứu chữ Nôm, chúng tôi chọn con đường thực nghiệm, bắt đầu từ việc vẽ font chữ Nôm để
biên khảo và chế bản in một số sách chữ Nôm, làm các tự điển tra cứu chữ Hán và chữ Nôm,
phẳng mã hóa bổ sung 2, có mã số lớn hơn 2bytes, chúng được biểu diễn bởi 2 ký tự trong
khu vực surrogate của mặt phẳng đa ngữ cơ sở, đó gọi là cơ chế surrogate (thay thế), công
thức mã hoá surrogate xin xem ở phụ lục. Việc sử dụng các chữ thuần Nôm đó cần có các
phần mềm hỗ trợ kỹ thuật surrogate. Theo tài liệu của các chuyên gia như TS Ngô Trung
Việt, Đỗ Bá Phước thì số lượng các phần mềm hiện hỗ trợ kỹ thuật surrogate hiện còn khá
hạn chế:
- Windows XP, Office XP, và các phầnn mềm khác dựa trên công nghệ UniScribe của
Microsoft.
- Mac OS X, và các phần mềm khác dựa trên công nghệ ATSUI của Apple.
Như vậy việc dùng các chữ Nôm ở mặt phẳng 2 trong điều kiện ở nước ta hiện nay có
nhiều cái khó khăn. Nhất là vấn đề đưa chữ Nôm lên mạng internet, nếu theo đúng chuẩn
unicode thì vấp phải một số vấn đề kĩ thuật khá rắc rối. Thử nghiệm ngay với OfficeXP và
WinXP tuy nói là hỗ trợ surrogate, nhưng thực tế vẫn còn có chỗ chưa được suôn sẻ
Chúng ta có thể chọn giải pháp tạm thời là ánh xạ các chữ thuần Nôm vào khu vực
người dùng tự do định nghĩa trong mặt phẳng cơ sở. Khu vực này từ E000 tới F8B0 có
6320 mã đủ cho các chữ thuần Nôm Unicode 3.1. Tuy nhiên vì nhiều lý do, trong phiên bản
chương trình đầu tiên chúng tôi đã áp mã vào khu vực CJK cơ sở. Tuy chiếm dụng mã CJK
cơ sở, nhưng không chiếm dụng mã các chữ Hán trong BIG5 và GB, chỉ chiếm các mã bổ
sung mới của CJK. Do đó khi dùng bộ font TTF chữ Nôm có cả chữ Hán trong chương
trình để xem các trang WEB của TQ cũng như Đài Loan thấy vẫn hiển thị đầy đủ, hầu như
không có lỗi. Do mã chữ Nôm được xếp ở các „khe hở“ trong khu vực CJK nên IE bị đánh
lừa, coi nó hoàn toàn như chữ Hán, việc đưa các chữ Nôm này lên mạng Internet, hay sao
chép giữa các chương trình Windows rất dễ dàng, thông suốt, không có trục trặc gì cả.
Tuy nhiên về lâu dài thì tất yếu phải theo chuẩn Unicode, muốn thế phải giải quyết vấn
đề hiển thị surogate. Ban đầu chúng tôi chỉ biết OfficeXP có hỗ trợ cơ chế surrogate, nhưng
qua nhiều thử nghiệm thực tế thì phát hiện thấy ngay notepad của WIN2000 cũng có thể
3
hiển thị các chữ Unicode surrogate, còn IE6.0 có thể hiển thị nếu có các thiết đặt thích hợp.
Phiên bản phần mềm giới thiệu ở hội nghị này là phiên bản đã chuẩn hóa đúng theo
làm phần mềm chữ Nôm có khả năng đánh được các chữ Nôm đó vào văn bản, và tra cứu
được ý nghĩa của chúng. Nhưng trước khi bắt tay làm chúng ta cần phân tích và tìm hiểu
các yêu cầu của một phần mềm chữ Nôm.
1. Yêu cầu về phía người sử dụng:
- Trước hết phải xác định đối tượng phục vụ của phần mềm là quảng đại quần chúng
hay một số ít nhà nghiên cứu Hán Nôm ? Chúng tôi nhắm tới quảng đại quần chúng
trước.
4
- Còn với đối tượng là các nhà chuyên môn Hán Nôm thì cần có những phần mềm
chuyên nghiệp hơn. Chúng tôi nghĩ là phải bổ sung những công cụ tiện ích hay làm hẳn
một phần mềm có những tính chất “chuyên dụng” và “đặc thù” để phục vụ riêng cho
đối tượng này.
- Với quảng đại quần chúng thì yêu cầu đối với phần mềm đầu tiên là các khả năng tra
cứu, phiên dịch và học tập tức là các tự điển và bảng tra vi tính cùng với các bộ văn
tuyển chọn lọc đi kèm.
- Chức năng đánh chữ Nôm và soạn văn bản Hán Nôm là mức cao hơn chủ yếu dành
cho chuyên gia và những người đã có quá trình nghiên cứu học tập Hán Nôm tương đối
lâu.
- Khả năng vẽ thêm chữ Nôm mới và đưa nó vào văn bản (để chế bản sách Nôm) là ở
mức cao hơn nữa, mức chuyên gia. Phần mềm hiện tại chưa cung cấp tiện ích vẽ font
TTF, do chúng tôi phải tôn trọng vấn đề bản quyền.
- Phần mềm chữ Nôm phải gắn bó với phần mềm chữ Hán, trên lý thuyết thì có thể học
ngay chữ Nôm mà không cần học trước chữ Hán, nhưng ai cũng thừa nhận chúng có
quan hệ rất gắn bó, và thực tế nếu có căn bản chữ Hán trước thì học chữ Nôm mới dễ.
Các văn bản chữ Nôm của ta thường chen rất nhiều chữ Hán, hầu như không có văn bản
nào là thuần Nôm cả, cho nên thâu nhập pháp để đánh chữ Nôm cũng phải đánh được
những chữ Hán phổ thông thường dùng. Ngoài ra nó phải có các thâu nhập pháp đánh
chữ Hán theo âm Hán Việt và âm phổ thông TQ (PinYin), phục vụ Hoa Kiều và những
người học tiếng Hoa hiện đại.
3. Yêu cầu đối với thâu nhập pháp đánh chữ Nôm.
- Nhiều nhà chuyên môn nhấn mạnh yêu cầu là thâu nhập pháp (IME, hay gọi nôm na là
bộ gõ) cần có phần hiển thị ý nghĩa ngữ cảnh của từng chữ Nôm để người mới học có thể
đánh được chữ Nôm. Nhưng trong phần trên chúng tôi đã phân tích đối tượng sử dụng thì
những người cần đánh chữ Nôm vào văn bản thuộc mức trung bình (đã có học ít nhiều Hán
Nôm) và cao (chuyên gia Hán Nôm), chứ chưa phải quảng đại quần chúng. Bộ gõ chúng
tôi làm cũng đã tính tới trường hợp này nên tích hợp gắn bó với phần tự điển tra cứu chứ
không phải bắt trước giống y như IME của người TQ là IME chỉ có mỗi việc đánh chữ, thực
tế tự điển gắn với IME đã là một dạng hiển thị ngữ cảnh.
- Thực ra có thể đoán được nghĩa của nhiều chữ Nôm chỉ qua tự hình vì đặc trưng quan
trọng nhất của họ chữ chữ biểu ý là có sẵn cái hình dạng biểu ý trong chữ ! Lại còn
một đặc điểm nữa tiếng Việt là thứ tiếng đơn âm, thường mỗi chữ mỗi âm đều có nghĩa,
nhiều khi không cần ghép thêm một chữ nào đi cùng làm ngữ cảnh vẫn có thể hiểu chữ, ví
dụ chữ người chẳng hạn.
- IME trong các chương trình tiếng Hoa thường có chức năng “gợi ý” và tự động hoàn
thành từ tổ theo một từ điển có sẵn, đó cũng là một hình thức hiển thị ngữ cảnh. Để làm điều
đó quan trọng là phải làm một từ điển chữ Nôm thông dụng, (từ chứ không phải tự), việc
này khá tốn thì giờ cần có thêm các chuyên gia Hán Nôm tham gia.
- Về vấn đề bộ gõ theo tự dạng, chúng tôi quyết định làm thâu nhập pháp Thương Hiệt
giản cho cả chữ Hán và chữ Nôm. Nhân đây nên bàn kĩ thêm về kiểu gõ Thương Hiệt
(CangJie), nó rất lợi hại khi dùng để tra tự điển, tra nghĩa chữ chưa biết, vì nó là kiểu gõ
theo phân tích tự dạng, dùng lúc không biết biết âm đọc và ý nghĩa. Nhằm giúp người dùng
tìm và phân tích mã Thương Hiệt, nên các tự điển trong phần mềm của chúng tôi có cung
cấp mã Thương Hiệt giản cho cả chữ Hán và Nôm.
Về kỹ thuật quản lý bàn phím trong IME, phải quản lý ở mức hệ thống nên vấn đề
lớn là tính ổn định, tránh xung đột với các bộ gõ tiếng Việt như Viêtkey, Unikey
3. Phác thảo cơ bản của phần mềm:
Từ các yêu cầu phân tích ở trên chúng tôi phác họa cho phần mềm một mô hình “ba
chân” như sau:
thị các chữ Nôm “surrogate” ở mặt phẳng mã hóa 2. Như vậy giải quyết luôn được nhiệm
vụ quan trọng là đưa chữ Nôm lên mạng internet, một đòi hỏi bức thiết trong thời buổi bùng
nổ CNTT trên mạng hiện nay.
V. Giới thiệu cụ thể một số kết quả đã làm được:
Kết quả nghiên cứu của chúng tôi là phần mềm “Việt Hán Nôm” phiên bản 1.0 đã
cho phổ biến miễn phí trên mạng, và đã có một số bài giới thiệu trên các tạp chí PCWorld
VN và Echip, nên trong báo cáo này chúng tôi thấy không cần giới thiệu chi tiết về các
chức năng hoạt động của nó, mà chỉ đề cập sơ qua các chức năng chính yếu.
a./ Vài số liệu kỹ thuật cơ bản :
- Độ lớn file cài đặt: 24,4 MB. Độ lớn sau khi bung ra 38,4 MB, dung lượng chiếm
đĩa khoảng 30Mb tuỳ hệ điều hành.
- Yêu cầu cấu hình máy tối thiểu là Pentium 220MHZ, dung lượng đĩa trống 50MB,
chạy hệ điều hành Win98, Win2000, WinXP.
- Gồm có hai font TTF chữ Hán-Nôm dạng Khải thể và Minh thể, độ lớn mỗi file font
khoảng 2,2 vạn chữ (khoảng 10-11MB), tổ chức như sau:
o 13.200 chữ Hán phồn thể BIG5.
o 3.000 chữ Hán giản thể GB, không trùng dạng chữ phồn thể.
o 4.500 chữ Nôm không trùng với BIG5 và GB. Không kể hơn 5000 chữ vốn
mượn chữ Hán.
o Còn lại là các ký tự La tinh, Nga, Nhật, Arập, Thái, Việt (quốc ngữ), dấu
chấm câu và các kí hiệu toán như ở các font chữ Unicode thông thường
- Chương trình chứa 5 thâu nhập pháp cơ bản là: đánh telex âm Hán Việt, đánh telex
âm chữ Nôm, đánh âm PinYin Hán, đánh mã Thương Hiệt giản chữ Hán, đánh mã
Thương Hiệt giản chữ Nôm. b. Giao diện chính của chương trình Việt Hán Nôm:
Do dùng IE làm cơ sở hiển thị nên bản chất cũng như hình thức của chương trình
Hình trên minh hoạ quá trình browse giải nghĩa chữ “quy”, chú ý có hiển thị cả chữ giản thể, và có thể tra
chữ trong cửa sổ browser qua cửa sổ popup “ quick view”.
Tra chữ trong ứng dụng khác: Nếu người dùng có sẵn văn bản dạng *.DOC mở trong MS
Word, chỉ việc tô đen chữ rồi nhấn vào biểu tượng kính lúp ở khay hệ thống, chương trình
mở một cửa sổ QuickView nhỏ hiển thị nghĩa chữ. Cái hay của chương trình là có khả năng
tự động nhận diện mã phồn thể BIG5, mã giản thể BG hay mã Unicode trong văn bản và
hiển thị đúng chữ cần tra.
Tra theo bộ thủ (dàn trang theo bộ thủ): Toàn bộ các chữ Hán trong bộ font BIG5 được dàn
trang theo từng bộ thủ, chỉ việc nhấn các liên kết lần tìm theo số nét bộ thủ tới từng bộ rồi
tìm tới khu vực số nét cần tra và nhấn vào con chữ cần tra.
Chú ý: phần tra chữ Hán đặt cơ sở trên Tự Điển Hán Việt Thiều Chửu (1942) có tăng
bổ, thêm vào tất cả các chữ trong bộ mã phồn thể BIG5 và cung cấp nhiều dữ liệu vi
tính của từng chữ; phần tra chữ Nôm lấy cơ sở là cuốn Bảng tra chữ Nôm của
UBKHXH (1976).
2. Hỗ trợ phiên âm chữ Hán:
Phần mềm có một chức năng khá độc đáo là hỗ trợ phiên âm Hán Việt cho chữ Hán,
nhận diện được cả văn bản mã giản thể GB lẫn phồn thể BIG5 và mã unicode, giúp người
sử dụng có thể thưởng thức các tác phẩm văn thơ chữ Hán và ngao du trong các trang WEB
tiếng Hoa trên mạng mà không cần có nhiều vốn chữ Hán lắm. Chỉ cần tô đen đoạn văn bản
cần phiên âm, với văn bản hiển thị trong Browser của chương trình thì nhấn chuột vào ô
hiển thị phiên âm, kết quả hiện thị ngay trong ô đó. Còn với văn bản mở trong MS WORD
10
thì nhấn nút phải biểu tượng kính lúp trên khay hệ thống, kết quả sẽ hiển thị popup trong
cửa sổ QuickView nhỏ.
Hình minh hoạ cửa sổ popup đang hiển thị phiên âm bài Tam tự kinh:
* Tiện ích biên tập lại thâu nhập pháp:
Chức năng này để tu sửa lại các thâu nhập pháp theo ý người dùng, ví dụ đưa vào một chữ
mới hay định nghĩa tốc ký cho một chữ thường dùng.
Giao diện của nó như sau:
12
* Tiện ích đổi mã văn bản ra mã Unicode:
Tiện ích này chỉ đổi văn bản dạng HTML nhưng còn chưa hoàn chỉnh lắm.
* Tiện ích hiệu chỉnh phiên âm:
Do một số chữ có nhiều âm đọc, mà chương trình chỉ chọn sẵn một âm, nên phải
dùng tiện ích này để hiệu chỉnh một số từ thông dụng, dưới dạng một tự điển đối chiếu từ
sai/đúng. Dự kiến sẽ bổ sung các thuật toán và từ điển hiệu chỉnh tinh vi hơn.
* Bản đồ font (Unicode Character Map):
Để xem mã font và copy các ký tự đặc biệt không có sẵn trong thâu nhập pháp. Tiện
ích này tương tự Character Map của Windows.
Hình sau là giao diện của nó.
13
*Trang Văn tuyển:
Trong chương trình có một bộ văn tuyển các tác phẩm Hán Nôm kinh điển của Việt
Nam và Trung quốc có dạng thức như một trang WEB trên mạng, nhằm giúp người dùng
"thích mà đọc, vui mà học", vừa học chữ vừa học văn phạm, vừa thưởng thức văn
chương
VI. Việc đưa phần mềm lên mạng, và hướng phát triển:
(Trích từ tài liệu của TS Ngô Trung Việt)
Công thức surrogate như sau:
High-surrogate: H, from U+D800 to U+DBFF
Low-surrogate: L, from U+DC00 to U+DFFF
Surrogate pair: <H, L>
Unicode scalar value: N, between 0 10FFFF
16
(21 bits maximum; 17 Planes; > 1million characters)
N = (H - D800
16
) * 400
16
+ (L - DC00
16
) + 10000
16
H = (N - 10000
16
)/400
16
+ D800
16
L = (N - 10000
16
)/400
16
+ DC00
10
Trong văn bản HTML nó có thể ghi bằng "𠀧" hay cặp "��"
- Sơ đồ sau mô tả kiến trúc của Unicode: Mặt phẳng chuyên dụng bổ sung SSP Byte mặt phẳng 16
Mặt phẳng chữ biểu ý bổ sung SIP Byte mặt phẳng 02
80 D8 DFVùng thay thế (Surrogate)
E0 F8Vùng sử dụng riêng
Điểm mã