Editing SGB

From Phonology

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Current revision Your text
Line 38: Line 38:
     部_____立
     部_____立
       | |_口
       | |_口
-
      |___阝         
+
     |___阝         
長於思考的讀者讀到這裏大概就要發難了,因文中已出現了一些自相矛盾的地方——至少表面上看起來。
長於思考的讀者讀到這裏大概就要發難了,因文中已出現了一些自相矛盾的地方——至少表面上看起來。
Line 55: Line 55:
對第三箇疑問,我回答:SGD的原則是就字論字,眞書作何字,SGD就解何字。㕻(⊟丶否)和咅(⊟立口)在眞書中雖然有正奇的關係但絕不是一箇字, IDS的不同就是明證。對SGD對漢字的解析不限於unicode 3.1中的CJK字集,SGD與異體字的問題見下文,㕻咅是否同字的辯證請參閱The Unicode Standard 4.0 Chapter 11中對unification的解釋。
對第三箇疑問,我回答:SGD的原則是就字論字,眞書作何字,SGD就解何字。㕻(⊟丶否)和咅(⊟立口)在眞書中雖然有正奇的關係但絕不是一箇字, IDS的不同就是明證。對SGD對漢字的解析不限於unicode 3.1中的CJK字集,SGD與異體字的問題見下文,㕻咅是否同字的辯證請參閱The Unicode Standard 4.0 Chapter 11中對unification的解釋。
-
===SGD 中的構字式===
+
SGD 中的構字式
-
====部件樹與獨立漢字====
+
 
 +
〘一〙部件樹與獨立漢字
【1】獨立的漢字也是構字式。沒錯,我們有必要把獨立的漢字也看成是構字式。比如漢字「天」、「地」、「玄」、「黃」,就是四箇構字式。我將獨立漢字的構字式稱作獨立型-singleton。之所以要引入這個概念,就是因為:1,幾乎*所有更複雜的構字式都可以被分析成singletons。2,構字式可以包含子構字式,依前文所述,每條子構字式描述一箇部件,整條構字式描述一箇字。比如,前例的「部」字,可解析爲「◫咅阝」,又可進一步解析作「◫⊟立口阝」,咅本身是一個獨立的字,它在構字式的功能與⊟立口相當,在字與構字式之間竝不存在一道不可逾越的鴻溝,而與此同時,「部」字又可以充當其他字的構成部件,如:「廍」=「◲广部」,所以,在字和部件之間也沒有甚麼明晰的疆界。SGD 將所有的漢字都看成是潛在的構字部件,同時,每一條構字式(包括子構字式。相信各位讀者已然意識到了,這箇「子」字是無關緊要的)都對應一箇潛在的構字部件。所以說,獨立漢字也是構字式,這是對IDS的一條必要補充。
【1】獨立的漢字也是構字式。沒錯,我們有必要把獨立的漢字也看成是構字式。比如漢字「天」、「地」、「玄」、「黃」,就是四箇構字式。我將獨立漢字的構字式稱作獨立型-singleton。之所以要引入這個概念,就是因為:1,幾乎*所有更複雜的構字式都可以被分析成singletons。2,構字式可以包含子構字式,依前文所述,每條子構字式描述一箇部件,整條構字式描述一箇字。比如,前例的「部」字,可解析爲「◫咅阝」,又可進一步解析作「◫⊟立口阝」,咅本身是一個獨立的字,它在構字式的功能與⊟立口相當,在字與構字式之間竝不存在一道不可逾越的鴻溝,而與此同時,「部」字又可以充當其他字的構成部件,如:「廍」=「◲广部」,所以,在字和部件之間也沒有甚麼明晰的疆界。SGD 將所有的漢字都看成是潛在的構字部件,同時,每一條構字式(包括子構字式。相信各位讀者已然意識到了,這箇「子」字是無關緊要的)都對應一箇潛在的構字部件。所以說,獨立漢字也是構字式,這是對IDS的一條必要補充。
Line 66: Line 67:
【2】與singleton對應,樹形的類IDS的構字式就稱作複合型-  composition.例略。
【2】與singleton對應,樹形的類IDS的構字式就稱作複合型-  composition.例略。
-
====對composition 的分析====
+
〘二〙對composition 的分析
【1】僅由一箇連接符和相應箇數的singletons組成的compostion構字式,我們稱其爲簡單的複合-simple compound。
【1】僅由一箇連接符和相應箇數的singletons組成的compostion構字式,我們稱其爲簡單的複合-simple compound。
【2】包含兩箇以上連接符的composition構字式,稱作複雜的複合-complex compound。
【2】包含兩箇以上連接符的composition構字式,稱作複雜的複合-complex compound。
Line 84: Line 85:
All simple compostions are simplest,反之則不然。
All simple compostions are simplest,反之則不然。
-
====對singleton的補充====
+
〘三〙對singleton的補充
IDS的全部材料都取自現有字集,確切說就是unicode cjk unified及ext a/b。現有字集中的可拆解字符(直觀上)並不能全部以現有字集中的字符來描述,比如郎的左部、即的左部、经的右部等,unicode現有字集中並沒有這些字或部件。另有一些字從造字機理上看包含某獨立漢字的省形,如「傷」字依《說文》從「𥏻」省,「度」從「庶」省,而「𥏻」省、「庶」省都不成字。此外,還有一些部件,雖然從造字機理上講不通,但在眞書中確有類推應用,如「秦、泰、春、舂」的上部,「表、毒、青、責」的上部等。前文反復強調,SGD以客觀原則而就字論字。所以有必要補充一些客觀存在的部件以滿足ids解析的需要。SGD是反對主觀臆斷的字根的,它以如下兩種方式來描述這些補充部件。
IDS的全部材料都取自現有字集,確切說就是unicode cjk unified及ext a/b。現有字集中的可拆解字符(直觀上)並不能全部以現有字集中的字符來描述,比如郎的左部、即的左部、经的右部等,unicode現有字集中並沒有這些字或部件。另有一些字從造字機理上看包含某獨立漢字的省形,如「傷」字依《說文》從「𥏻」省,「度」從「庶」省,而「𥏻」省、「庶」省都不成字。此外,還有一些部件,雖然從造字機理上講不通,但在眞書中確有類推應用,如「秦、泰、春、舂」的上部,「表、毒、青、責」的上部等。前文反復強調,SGD以客觀原則而就字論字。所以有必要補充一些客觀存在的部件以滿足ids解析的需要。SGD是反對主觀臆斷的字根的,它以如下兩種方式來描述這些補充部件。
Line 93: Line 94:
既然上述兩種特殊的部件表述方式都被看做singleton,那麼對simple compound的定義可以擴展爲:只包含一個連接符和相應個數singlegons/X-singletons/V-singletons的 composition構字式。如「◲◲庶X又」(度)、「H纟V巠」(经)也都是simple的。
既然上述兩種特殊的部件表述方式都被看做singleton,那麼對simple compound的定義可以擴展爲:只包含一個連接符和相應個數singlegons/X-singletons/V-singletons的 composition構字式。如「◲◲庶X又」(度)、「H纟V巠」(经)也都是simple的。
-
====SGD中的IDS連接符====
+
〘三〙SGD中的IDS連接符
在SGD中,IDS表達式中的連接符號以「神似」的大寫羅馬字母代替,這是因為;一方面,在utf-8格式中羅馬字母只占一箇字節,比較經濟;另一方面, postgres對ids operators和上文所用的一些幾何符號的處理有一些bug;再者就是,羅馬字母也能給用戶帶來方便,畢竟現在通行的IME和鍵盤佈局中還很少有支持這些字符的錄入的。
在SGD中,IDS表達式中的連接符號以「神似」的大寫羅馬字母代替,這是因為;一方面,在utf-8格式中羅馬字母只占一箇字節,比較經濟;另一方面, postgres對ids operators和上文所用的一些幾何符號的處理有一些bug;再者就是,羅馬字母也能給用戶帶來方便,畢竟現在通行的IME和鍵盤佈局中還很少有支持這些字符的錄入的。
-
SGD所用連接符和標識符全表如下:
 
-
{|class="prettytable"
 
-
|⿱
 
-
|⊟
 
-
|Z
 
-
|2
 
-
|上下
 
-
|-
 
-
|⿰
 
-
|◫
 
-
|H
 
-
|2
 
-
|左右
 
-
|-⿲
 
-
|⫴
 
-
|W
 
-
|3
 
-
|左中右
 
-
|-
 
-
|⿳
 
-
|⌸
 
-
|E
 
-
|3
 
-
|上中下
 
-
|-
 
-
|⿴
 
-
|⧈
 
-
|O
 
-
|2
 
-
|包圍
 
-
|-
 
-
|⿷
 
-
|⍃
 
-
|C
 
-
|2
 
-
|左包圍
 
-
|-
 
-
|⿶
 
-
|⍌
 
-
|U
 
-
|2
 
-
|下包圍
 
-
|-
 
-
|⿵
 
-
|⍓
 
-
|N
 
-
|2
 
-
|上包圍
 
-
|-
 
-
|⿸
 
-
|◲
 
-
|P
 
-
|2
 
-
|左上包圍
 
-
|-
 
-
|⿺
 
-
|◳
 
-
|L
 
-
|2
 
-
|左下包圍
 
-
|-
 
-
|⿹
 
-
|◱
 
-
|Q
 
-
|2
 
-
|右上包圍
 
-
|-
 
-
|┛
 
-
|◰
 
-
|J
 
-
|2
 
-
|右下包圍
 
-
|-
 
-
|〾
 
-
|≆
 
-
|V
 
-
|1
 
-
|V變體
 
-
|-
 
-
|〿
 
-
|☒
 
-
|X
 
-
|0
 
-
|X變體占位符
 
-
|-
 
-
 
-
|⧉
 
-
|D
 
-
|2
 
-
|重疊
 
-
|}
 
-
===SGD 的 backend(後端)===
 
-
我已整理了49303箇CJK字符的最簡構字式,包含CJK unified 字集的絕大多數字符和ext a/b的部分字符。其中未拆解的singletons 782個,simple compound 47478 個。
 
-
 
-
SGD現以postgresQL關係型數據庫管理系統(rdbms)爲載體,選擇postgres的原因是出於下述這些方面的考慮:
 
-
 
-
1)postgres是自由、開源軟件。SGD也是自由開源軟件。暫擬以GPL發佈。
 
-
2)postgres是跨平臺的功能完備的而且號稱是最高級的 free rdbms系統,有廣大的用戶羣和豐富的技術資源。
 
-
3)postgres對SQL國際標準有相當容程度的兼容,作為國際標準的追隨者,我很自然地要選擇更規範的postgres而不是mySQL。
 
-
4)postgres支持procedure language(PL,過程語言)的後端編程,PL/pgsql是sql語言的擴展,後端編程可以提高數據庫的操作效率,而且sql也是我比較熟悉的語言,選擇它可以縮短我的學習曲線。
 
-
5)postgres 對unicode plane2部分的字符支持良好。這可能是最重要的一個原因。比如,在postgres中用length函數獲取字符串長度,length ('Q𢦏木')(栽的ids)的結果是3而不是其他的甚麼莫名其妙的數值。
 
-
 
-
postgreSQL 下載地址:
 
-
http://www.postgresql.org/download/
 
-
postgreSQL的安裝配置不在本文的討論範圍之内,這裏簡單說幾句,詳細指導請參考官方網站的相關信息。
 
-
 
-
postgreSQL在M$ windows xp下的安裝很簡單,幾乎可以單擊完成。應注意的是,自動安裝的可執行文檔要求安裝目錄必須在NTFS格式的硬盤分區中。當然,如果是手工安裝也可以安裝到其他格式的分區中,只是我沒試過。安裝包中附帶圖形界面的客戶端管理程序pgAdmin III,數據庫的維護,SQL語言查詢,PL函數的編寫調試都可以在此界面下實現。
 
-
 
-
這裏是實驗階段的SGD數據庫備份文件的壓縮檔,你可以將它恢復到你的數據庫中,擺弄擺弄,看看好不好用。
 
-
===SGD已實現的和部分實現的功能===
 
-
 
-
====將IDS表達式解析成部件樹====
 
-
函數名:ids_tree(ids_exp,pos)
 
-
參數1_ids_exp:IDS 表達式或singleton
 
-
參數2_pos:(子)IDS表達式在部件樹上所對應節點的ID,遞歸調用時會用到此參數,初始值應設爲 null 或 ''。
 
-
返回值:無。該函數將IDS表達式的樹形分析結果及中間值保存在table ids_components_buffer中。每一次調用都會更新此table。
 
-
 
-
實例:
 
-
select ids_tree('H言C匸Z口H口口'null);
 
-
select * from idsa_components_buffer order by position;
 
-
更新後的 idsa_components_buffer 如圖:
 
-
 
-
position爲節點的ID;operator爲連接符,singleton的連接符就是singleton本身;type是節點的類型;length是該節點所包含的子節點數;start和end是節點在ids字符串中的起止位置。
 
-
 
-
====由IDS表達式還原CJK字符====
 
-
函數名:ids2cjk(ids_exp)
 
-
參數_ids_exp:IDS表達式或singleton
 
-
返回值:所對應的CJK字符
 
-
 
-
實例:
 
-
select ids2cjk('H言C匸Z口H口口');
 
-
返回「謳」
 
-
[[Category:項目]]
 
-
[[Category:中文信息處理]]
 

Please note that all contributions to Phonology may be edited, altered, or removed by other contributors. If you don't want your writing to be edited mercilessly, then don't submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Project:Copyrights for details). DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION!


Cancel | Editing help (opens in new window)
Personal tools