佛教圖書館館訊 第二十四期 89年12月
標記語言的應用中華佛學研究所、佛學網路資訊室資訊組組長 周邦信【摘要】:中華電子佛典協會(CBETA)使用XML作為佛典電子檔的標記語言,並採用國際規範TEI作為基礎標籤集,再依實務標記作業經驗,修訂或新增標籤,建立適用於漢文電子佛典的標籤集。 在輸入、校對階段,CBETA設計了一套簡單標記系統,使用約三十個簡單標記,方便輸入、校對組的作業人員,不必學習XML就可以進行基礎標記。校對階段結束後,再使用自行開發的轉檔程式將簡單標記轉為XML標記。 CBETA電子佛典XML標籤集,目前使用約六十餘個標籤,文中分檔頭(Header)、本文(Body)兩大類,摘要、舉例介紹各標籤。 標記作業中,CBETA使用UltraEdit(r)作為編輯器,使用CVS作為版本管理系統,使用Perl開發各種作業輔助工具、轉檔程式。 關鍵詞:CBETA;電子佛典;標記;簡單標記;XML;TEI;標籤集 壹、標記語言 一、什麼是「標記」? 標記(Markup)是在稿件或文章上加上的記號,以記錄各種不同的資訊。 標記主要可分為兩大類,一類是關於「排版或顯示格式」的標記,另一類則是關於「資料結構或內容」的標記。 例如大家最熟悉的標記語言HTML,可能會有如下的用法: 佛教資料電子化技術探討--以< b >中華電子佛典協會< /b >為例 在這�堙A< b >……< /b >表示「中華電子佛典協會」這些字要加粗體字顯示,這是第一類關於「格式」的標記。 而電子佛典的製作,關於「內容」的標記則更為重要,例如: 長阿含經序 < byline type="Author" >長安釋僧肇述< /byline > 夫宗極絕於稱謂。賢聖以之沖默。玄旨非言 這�堛�< byline >標記標出了經文中的作者行,相對的,它並未指定這個作者行要如何顯示。這種將「顯示格式」與「內容」分離的做法,在後面介紹電子佛典的發行時我們將會瞭解它的好處。最重要的是,這種「內容標記」是讓電腦「看懂」經文的第一步。 二、SGML→HTML→XML 前面說「標記是在稿件或文章上加上的記號」,聽起來是充滿了無比的彈性,那麼我用螢光筆在書本上畫重點,算不算是「標記」呢?應該算是,那麼,你用你的標記,我用我的標記,各自運用想像力與創造力建立自己的標記系統,這樣彼此之間也算是相安無事,但要交換資訊就有困難了。於是「標記語言」就應運而生了。 SGML(Standard Generalized Markup Language,標準通用標記語言)是早在1986年就建立的國際標準,其中定義了如何描述一組標記標籤的規則,但由於它相當的複雜,因此應用並不十分普遍。 接下來是紅遍半邊天的HTML(Hypertext Markup Language),HTML是SGML的一種應用,以其簡單易用的語法隨著網際網路的興起而盛行,世界各地不同語言、文化、電腦作業平台之間,得以藉由HTML這個標準的共通語言相互溝通,地球村的資訊交流達到前所未有的迅速與廣度。 然而HTML的缺點--正是它的優點--也漸漸的浮現,HTML不再能滿足網際網路上許多新興的需求。SGML夠強卻太複雜,HTML夠簡單卻不夠強,感謝標記語言的專家們,又為我們設計了一套又強、又不太難、又適用於網際網路的標記語言--XML(eXtensible Markup Language),讓我們能順利地為電子佛典標記。 三、電子佛典為什麼要使用標記? 為什麼電子佛典要使用標記呢?這得先回頭想想,我們為什麼要製作電子佛典?主要目的應該是要利用資訊科技、電子媒體的便利性,使藏經易於保存、複製、傳播、編輯再製……等等。所以,很自然的,第一步我們將紙面的經文輸入或掃描成電子檔,這個階段完成後,我們已經可以開始享受到電子媒體的便利性。 然而,從紙本到電子檔的過程中,許多保存在紙本中的資訊,到了電子檔�堳o失去了。例如,《大正藏》以許多不同的編排格式來告訴我們,這�堿O經名、這�堿O譯者、作者、這�堿O品名、這�堿O偈頌、這�堿O附文、這�埵陵桹氶A可是這些資訊在電子檔�堣ㄣ_存在,大正藏編輯委員會的許多心血在這個數位化的過程中流失了。 如果我們使用標記,忠實的記錄《大正藏》中的各種資訊,編輯經驗得以傳承,電腦也更能理解經文電子檔中各個部分的關係、屬性,資訊科技因而可以為我們提供更多使用電子佛典的輔助工具。 四、為什麼要使用XML? CBETA早期也使用SGML來做電子佛典的標記,隨著標記語言的發展,XML已成為最佳的選擇,原因如下: 1. XML是W3C通過的國際標準。 2. XML去除了SGML的複雜性,有愈來愈多的工具軟體支援。 3. XML適合於Internet上使用,例如IE5便已直接支援XML。 4. 目前臺灣中文文獻處理計畫的標記作業大都採用XML。 五、為什麼用TEI? 相較於HTML,XML最大的一個優點就是它可以自訂標籤(Tag)。因此,各個不同的XML應用可以按照各自特殊的需求訂定新的標籤,這在HTML的功能限制上是一大突破。然而,再一次我們又隱約看到了「資訊交換」的問題。由於有了共同的標記語言XML,大家所使用的標記格式都一樣,我們可以用同樣的標記語言、標記格式來定義各自不同的標籤名稱,例如我們要標出一個段落,可以有如下數種不同的標法: ● < p >......< /p > ● < para >......< /para > ● < 段落 >......< /段落 > 這些都是符合XML標準的標記,但明明同樣指的是一個段落,卻可以有不同的標法,這在資訊交換上將會造成問題,至少要增加一道標記轉換的手續。然而,如果大家對於共同的標記,能有一套可以依循的標準,比如大家都以< p >......< /p >來標示段落,這個問題就可以解決。 早在SGML時代就有一個TEI(Text Encoding Initiative)專案,他們研究了各種不同西方文獻,整理出一套標籤集(Tag Set),希望獲得大家採用而促進電子文獻的分享交流。 雖然TEI不見得適用於中文文獻,更不見得適用佛教典籍,不過它的標籤集�堣揭陶\多是屬於各種文獻所共有的,可以與電子佛典共用的標記。 因此,CBETA在建立自己的標記系統時採取這樣的策略: 1. TEI已有定義而能適用的,採取TEI 2. TEI�埵部A但對屬性等稍作修改 3. TEI�堥S有的,通常是屬於中文文獻或佛典所特有的情況,我們才自訂新標籤 如此,藉由共同標準的採用,在國際上各個不同電子佛典製作團體之間的成果才得以分享、交換。 貳、簡單標記 在進入正式的XML標記之前,CBETA校對組會提供一個稱為「簡單標記版」的經文電子檔給研發組,內容格式如下:
從這個範例中我們可以看到:經號(N)、卷名(J)、作者行(A)、段落(P)等基本標記都已標出,提供了標記作業的基礎。 目前所使用的簡單標記如下表:(見表1) 【表1】簡單標記表
然後研發組使用自行撰寫的轉檔程式,將「簡單標記版」轉為「XML版」,流程如右圖。(見圖1)
接下來進入本文的重點,介紹CBETA電子佛典目前所使用的標記。 我們先看XML經文檔的整個架構:
從上面可以看出整個檔案的架構可以分為檔頭(Header)、本文(Body)兩部分,以下便依檔頭、本文兩大類介紹CBETA目前所使用的標記: 一、檔頭(Header) 檔頭標籤集分成以下三類: 1. File Description本電子檔書目資訊描述 檔案描述所使用到的標記如下表:(見表2) 【表2】檔頭相關標記
範例:
2. Encoding Description電子版與來源間的關係描述 範例:
3. Revision Description修訂摘要記錄
二、本文(Body) 1. 最上層結構標籤集 < div1 >……< div7 >是本文最外層的結構描述標記,相當於一般書藉的篇、章、節、項、目等等,例如《瑜伽師地論》標記如下:
2. Paragraph Level段落層標籤集 (1) < p > 段落 範例:T02, No. 99, p. 1
如上type="inline"是原本《大正藏》未分段,CBETA進一步細分的段落,如此在經文呈現時,可以選擇依《大正藏》原來的段落編排,或是可以有更易閱讀的段落編排。另外還有< p type="dharani" >則是咒語段落。 (2) < list > 列表 範例:T46, No. 1912, p. 207b
(3) < lg > 偈頌 範例:
3. Phrase Level片語層 (1) < corr > 勘誤 CBETA的編輯原則是以《大正藏》為準,但遇到《大正藏》有明顯的錯誤,我們也會做勘誤,標記如下: T02, No. 99, p. 8, c6
(2) < fan > 反切 範例:T10, No. 279, p. 418, a20
(3) < note > 夾註 範例:T02, No. 103, p. 500, a04
(4) < skgloss > 梵漢對照 範例:
(5) < tt > 悉曇字
4. Milestone tags 里程碑相關標籤 (1) < milestone > 里程碑
(2) < juan > 卷
(3) < pb > 頁碼 如下所示是《大正藏》第2冊第1頁的上欄、中欄。
(4) < lb > 行號
(5) < mulu > 目錄 《大正藏》之中,尤其是一些大部頭的經典,雖然也有許多目錄資訊,但並不完整。如果有完整的目錄,甚至科判資訊,我們在HTMLHelp版便可以提供很方便的樹狀結構讀經介面,因此我們加了一個CBETA自訂的標籤 例如《瑜伽師地論》標記如下:
5. 校勘 < app > 校勘 《大正藏》的校勘記錄了非常豐富、寶貴的資訊,我們將這些資訊記錄在 < app > �堙A例如T8, No. 235, p. 748, c19 第26個校勘: 《大正藏》作:姚秦天竺三藏鳩摩羅什譯 宮本作:姚秦三藏法師鳩摩羅什譯 標記如下:
6. Graphics圖形 < figure > 插圖 範例:T18, p. 178
肆、軟體工具 接下來介紹一些我們在標記編輯過程中所使用的工具軟體。 一、標記修訂:UltraEdit UltraEdit(r)(註1)是一個相當好用的純文字編輯器,我們使用它來編輯XML經文檔,並在UltraEdit�堻]定呼叫XML Parser(註2),讓我們隨時可以做XML語法檢查,方便尋找、修正錯誤。 二、版本維護:CVS CBETA校對組致力於提昇經文的正確度,不遺餘力,進入標記階段後,我們當然不希望任何人工編輯的失誤降低了經文的正確度,因此我們採用了CVS(Concurrent Versions System)(註3)這套免費的版本管理軟體,它允許多人同時編輯,並有完整的修訂歷史記錄,幫助我們提昇CBETA的經文品質。 三、成果輸出 前面我們提到,「顯示格式」與「內容」分離處理的好處,現在就顯現出來了。有了基礎的XML經文檔,便可以運用各轉檔程式產生各種不同格式的經文檔,滿足使用者的各種不同需求。例如在Normal、App這兩個純文字版本中,我們儘量以通用字來表達缺字,在HTMLHelp版中則優先以Unicode來表達缺字,對於顯示格式、字體大小、顏色等也能有更好的編排選擇。 我們使用自行撰寫的程式來進行轉檔,流程如下圖所示:(見圖2)
伍、CBETA電子佛典標記的未來 CBETA目前對電子佛典所做的標記還是相當有限的,因為CBETA現階段的工作重點在於建立電子佛典的基礎,因此我們並沒有太多的人力進行全面的內容標記。即使如此,對於五十餘冊《大正藏》,大約一億字的資料(還是文言文的),光是要進行這些基本的標記,工作量也不算小的了! 未來,我們希望能做更進一步的內容標記,例如:人名、地名、時間、朝代、名相等等;利用這些標記,能設計出更方便大家使用的工具軟體。然而這可能不是CBETA可以獨力完成的工作,但或許CBETA可以在Internet上建立一個分工合作的機制,一套標準的佛典標籤集,讓Internet上專精不同領域的學者都能為電子佛典標記貢獻心力! 【附註】
【參考書目】
|