proposal about character inheritance and some features

守岡知彦 / MORIOKA Tomohiko tomo @ m17n.org
2004年 1月 23日 (金) 01:53:31 JST


このところひどい肩こりで、溜った仕事がはかどらず、泣きたい気分の守岡で
す。

そういう訳で、毎度おなじみ現実逃避なんですが、今回は懸案のひとつの文字
定義の継承をやってみようということで、以下の提案をします。


(1) ->unified

派生する文字を表す文字素性として ->unified を新設する。値の型は
char-ref の list とする。

文字 P に対し、文字素性 ->unified の値として (C_0 C_1 ... C_i ... C_n) 
を設定した時、C_i が未定義文字に対する char-spec であれば、C_i の定義
に従った文字が定義され、C_i の位置に置き換えられる。また、C_i ないしは
それに対応する文字は P から派生する文字と見倣され、(P) を値とする文字
素性 <-unified が設定される。


(2) <-unified

派生元の文字を表す文字素性として <-unified を新設する。値の型は
char-ref の list とする。

<-unified を持つ文字 C がある文字素性 f(但し、f は CCS 素性でないこと
とする)を持たない時、<-unified の値で指定される派生元の文字が f を持っ
ていれば、その値を C の値と見倣すこととする。また、この性質は再帰的に
成立することとする。

<-unified を持つ文字は define-char 形式での独立したエントリーを設けな
いこととし、親文字における ->unified の要素として表現することとする。


(3) ->inherited, <-inherited

->unified, <-unified と同じセマンティクスとする。

但し、<-inherited を持つ文字に対して define-char 形式での独立したエン
トリーを設けることとする。


(4) =CCS 素性

CCS 素性 =FOO を設定した時、必ず =>FOO も設定することにする。

但し、define-char 形式では、=FOO が存在する時の =>FOO は省略する。


(5) 親文字から子文字の文字素性の参照

文字 C に ->unified もしくは ->inherited が存在する時、C に存在しない
素性がこれらの値で指定される文字に存在する時、最初に見つかったものを親
の素性値とする。

また、全数探索する API を追加することとする。

また、子文字がおかれた domain を表す文字素性 domains を新設する。この
型は symbol の list とし、各要素は domain を表す。

この時、文字 C に対し、文字素性 FOO @ BAR の値を求めることは、domains の
要素として BAR を持つ子文字の素性 BAR の値を求めることとして処理される。
但し、この時、C は文字素性 FOO @ BAR を持たないこととする。


(6) =ucs の扱い

UCS で統合されているにもかかわらず、文字定義を分離しているものに対し、
現在、Unicode の例示字形にもっとも近い文字定義に対し =ucs を与え、それ
以外に =>ucs を与えているが、今後はこれらの文字定義を ->unified 要素と
して持つ文字に対し =ucs を設定することとし、従来、=ucs を設定していた
ものには =ucs @ unicode (BMP) もしくは =ucs @ iso (Ext-B) を設定することに
する。

同様に、他の要素に関しても ->unified や ->inherited を用いることで、
適切に包含関係を表現することとし、これにより、さまざまな抽象度の文字を
表現・操作しやすくする。


これらの提案を実施した場合、以前より派生文字の定義が簡潔かつ楽に行える
ようになります。また、文字の抽象度の制御もやりやすくなると考えられます。
なおかつ、文字素性の参照をする限りでは、継承関係は隠蔽され、従来と同様
なフラットな文字オブジェクトの世界に見え、文字素性の集合演算も可能とな
ります。


また、継承に関係ないですが、

(7) 文字間の関係を表す文字素性の命名規則

->FOO, <-FOO は文字間の関係に関する文字素性を表すものとし、FOO は原則
として、英語の形容詞を用いることにする。

値が char-ref (char-spec, character) の list だとしても、それが文字間
の関係を表すものでなければ、->, <- からはじまる名前を付けないこととす
る。


(8) 文字から ID への写像を表す文字素性について

意味的に ID への写像になっていれば、値の型が整数でなくても、=>FOO から
はじまる名前を用いることにする。


も提案します。これらにより

->decomposition は =>decomposition

->ancient-ideograph は ->ancient

<-ancient-ideograph は <-ancient

<-original-ideograph は <-original

<-simplified-ideograph は <-simplified (実施済(^_^;;;)

->vulgar-ideograph は ->vulgar

<-vulgar-ideograph は <-vulgar

<-wrong-ideograph は <-wrong

->same-ideograph は ->same

->ideographic-variants は ->

への改名を提案します。

また、->ucs-unified から ->unified @ ucs への改名も提案します。


また、->FOO, <-FOO の要素に対応する文字が存在する時、文字データベース
中では char-spec を文字に正規化して格納するようにすることも提案します。


以上、ご意見お待ちしております。

-- 
││ ─ │  ─  /    ─   ┼─     ┬                ─   ─┼ ┬┴─
┯━…‥・きっと 真実は呆れてる・‥…━━┯━━━┯━
                ┼|〓━ 守岡 知彦 (MORIOKA Tomohiko) <tomo @ m17n.org> ─ ─┬
┻┻━┻━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━




More information about the CHISE-ja mailing list