摘 要:古籍數字化需要遵循世界通用的Unicode標準,Unicode標準在設計時并未考慮到異體字的特點,因此不能很好地解決古籍中的異體字問題。在Unicode標準下,通過建立異體字數據庫、使用XML標記等方法能夠較好地解決異體字問題。
關鍵詞:Unicode 古籍數字化 異體字
Unicode字符集的全稱為“通用多八位編碼字符集”(Universal Multiple-Octet Coded Character Set),它支持現今世界各種不同語言的書面文本的交換、處理及顯示。自Unicode標準產生后,它已經成為全世界通用軟件以及互聯網信息傳輸的基礎字符集。由于具有良好的國際通用性和跨平臺兼容性,為方便國際交流和知識的傳承,Unicode也成為學術界所遵循的基本字符標準。
一、Unicode設計原則與異體字
為保證其良好的通用性、可繼承性及高效性,Unicode在制定之初就規定了若干設計原則。其中和異體字關系較大的是“字符、非字形”原則。Unicode標準對字符和字形加以區別。字符是具有語義值的用以書寫語言的最小組成要素的抽象表示。字形反映的是字符呈現的形狀。與字符相比,字形是作為一個或多個字符的特殊表現形式出現在屏幕上的[1](P15),這一原則在計算機上表現為同一字符在不同字體下顯示風格的區別,此即所謂的“數碼異體”[2]。同一組數碼異體字的內碼完全一樣,只是由于其所鏈接的字體文件不同,所以才導致其顯示的差異。
紙本古籍中所存在的嚴格意義上的異體字,即“音義完全相同僅字形不同”的異體字,和“數碼異體”的本質是一樣的,各異體字形只是在刻寫過程中和外形結構上有所區別。由此,在古籍數字化的過程中,根據Unicode的“字符、非字形”原則,刻寫異體字應該也具有相同的代碼點,其外形的差別可以通過制作不同的字體,根據需要調用所需字體來實現。
實際上,Unicode標準中已經收錄了相當數量的刻寫異體字。《漢語大字典》后附的“異體字表”中所列的11900組異體字中,絕大部分已被Unicode標準收錄。并且在Unicode的最新版本中,還在不斷地增加新的異體字。比如最新的Unicode6.0版本中新增的兩個漢字編碼區CJK Unified Ideographs Extension C(中日韓統一表意文字擴充C)和CJK Unified Ideographs Extension D(中日韓統一表意文子擴充D),仍然收錄了相當數量的異體字、俗字甚至訛字。
二、Unicode標準下的異體字問題
Unicode標準中收錄了各種異體字,在一定程度上解決了古籍數字化過程中異體字顯示的問題。但從另一方面看,它又使異體字的輸入、檢索等變得更加困難。
由于Unicode標準為其所收錄的所有字符分配獨立的碼點,這使得同一組異體字的每個異體具有不同的碼點,也就是說Unicode標準將它們看作不同的字符,忽略了異體字之間的關系。這在異體字的顯示方面并沒有問題,但在異體字的檢索與處理方面,該方案的缺點卻顯而易見。第一,在異體字的輸入上,包含異體字的字符集會異常龐大,輸入法編碼中的重碼數量顯著增多,導致輸入困難。第二,在包含異體字文本的檢索上其缺點更加明顯。可以設想,如果某古籍電子文本遵循保持紙本原貌的原則,使用獨立Unicode碼的異體字符,從計算機處理方式來看,這些異體字和它們的正體字之間將毫無關系。在用戶只知道語義或語音的情況下,一般只會通過正體字查詢,而正體字和異體字內碼不同,很顯然這樣是檢索不到任何內容的。
對于古籍數字化中的異體字問題,有學者提出“對漢字進行完全獨立的解碼”,即“為已經整理好的古漢字異體字申請代碼區”[3]。這種處理方案只為各組異體字的代表字(正體字)分配碼點,其它異體字形采用二級編碼和代表字鏈接。在輸入、檢索代表字時,可以通過字符鏈接找到其它異體字形,同樣,也可以找到正體字。但目前幾乎所有的字符編碼系統都采用的是一級編碼制,二級編碼在技術上如何實現、如何處理和現有系統平臺以及網絡信息傳輸的兼容性問題,目前并沒有很好的解決方案。前面已經提到過,目前Unicode標準中已經收錄了大量的異體字,為各種異體形式分配了碼點。由于Unicode具有另外一個重要的設計原則即穩定性原則,一旦字符確定,其代碼點即不可改變,Unicode也不可刪除它。因此,在目前Unicode標準下,已經無法僅為代表字編碼了。
三、Unicode平臺下異體字問題解決思路
到目前為止,學術界已經整理出一些古籍數字化過程中的異體字處理原則。
在數字化時,異體字字形選用及異體字檢索的問題上,迪志文化出版有限公司和書同文計算機技術開發有限公司整理開發的《文淵閣四庫全書電子版》,遵循“在現有CJK+字符集的基礎上盡量保真,不做以簡代繁,只做有控制的異體代換”。異體代換寬嚴原則為:“字書從嚴,其它從寬;字頭從嚴,釋義從寬;表形時從嚴,表義時從寬”。該原則在CJK+(Unicode子標準)基礎上,盡量采用Unicode已分配碼點的字形,盡量保持古籍原貌。這種做法會帶來上文所述的異體字檢索問題,《文淵閣四庫全書電子版》的解決辦法是:“將輸入的字符串據簡繁、正異、古今、通假、新舊字形等關系衍生成一系列字符串,經全部選擇或局部選擇之后進行檢索”。實際上,該辦法是為簡繁字、異體字、古今字等建立一系列詞典,在檢索過程中,將關鍵詞字符串和該詞典進行匹配查詢,生成一系列與原關鍵詞對應的檢索字符串,并將其和原關鍵詞一起作為檢索條件進行檢索。這種處理方法能夠比較有效地解決異體字正體、異體之間交互檢索的問題,為我們整理古籍提供了一個很好的借鑒。
在現有原則的基礎上,我們提出一套在古籍整理中處理異體字時可能的處理方案。由于Unicode標準已經忽略了異體字形之間的關聯,首先需要重建它們之間的關系。即根據已整理的異體字表建立一個動態的異體字數據庫,比如目前可以以《漢語大字典》中整理的異體字表為依據,以其中正體字為主鍵字段,其它異體字形分別作為其它字段,由此建立異體字與正體字(代表字)之間的關系。但是由于異體字整理工作繁難復雜,現有異體字表中也有許多問題,因此此異體字數據庫應該設計為一個開放的系統,能夠不斷地增加新的異體字組或者異體字形。同時,該系統還需要具有一定程度的穩定性,以保證在不同時期利用該系統所制作的古籍的正確性和通用性。因此,異體字數據庫應該和Unicode一樣,異體字一旦進入數據庫就不能隨意刪除和修改。
在異體字數據庫建立之后,就可以建立專用的異體字輸入法了。異體字輸入法可采用二級編碼方案。如采用音碼,可首先為一組異體字的正體編一級音碼,各異體字形在音碼后加間隔碼(比如目前流行輸入法中常使用的隔音符號編碼“‘”),間隔碼后再為各異體字形賦二級編碼。這樣,輸入正體字時采用普通音碼即可,而如要輸入該正體字,只需輸入正體字音碼加上間隔符號就可出現異體字形列表,此時選擇所需字形即可。
包含異體字形的古籍數字文本中,另外一個需要解決的重要問題,就是異體字形的檢索問題了。《文淵閣四庫全書電子版》在異體字的檢索上為我們提供了一個很好的思路,但是它所建立的異體字庫只能在其本身的封閉環境內使用,無法推廣至通用系統平臺。在我們的方案中,建立了一個通用的異體字數據庫之后,任何遵循Unicode標準的古籍數字化文本都可以通過鏈接該數據庫進而檢索到異體字形相應的正體字、異體字,或者通過輸入正體字形,查找該正體字相應的異體字形,生成可能的異體字形關鍵詞列表,將它們一次作為關鍵詞進行檢索,這樣就能保證完整無遺漏地獲得需要的結果。
最后,在古籍數字化過程中,還可以采用相應的計算機技術,配合異體字數據庫、異體字輸入法等制作適合古籍特點的文本。比如,可以采用xml技術來標記古籍中的異體字:我們可以遵循盡量保持古籍原貌的原則,在xml文本正文中采用和紙本相同的異體字形,同時在異體字形后使用xml標記指示其相應的正體字。這樣,在檢索時無論關鍵詞是正體字形還是異體字形,都可以得到正確的結果,并且這種文本的異體字檢索并不需要依賴異體字數據庫,具有更好的獨立性。
注 釋:
[1]Unicode協會.Unicode5.0標準[M].孫偉峰,李德龍譯.北京:清
華大學出版社,2010.
[2]尉遲治平.電子古籍的異體字處理研究——以電子《廣韻》為例
[J].語言研究,2007,(3).
[3]李菊萍.檔案館數字化過程中的異體字問題[J].山西檔案,2007,
(1).
參考文獻:
[1]Unicode協會.Unicode5.0標準[M].孫偉峰,李德龍譯.北京:清
華大學出版社,2010.
[2]尉遲治平.電子古籍的異體字異體字處理研究——以電子《廣
韻》為例[J].語言研究,2007,(3).
[3]李菊萍.檔案館數字化過程中的異體字問題[J].山西檔案,2007,
(1).
[4]劉延玲.近五十年來異體字研究與整理狀況綜述(下)[J].辭書
研究,2001,(5).
[5]姜永超,郭翀.《說文解字義證》信息化中異體字的處理[J].現
代語文(語言研究),2009,(2).
(高天俊 湖北武漢 華中科技大學中文系 430074)