文字と文字列

Kouichirou Eto 2003 @ eto.com
2003年 2月 13日 (木) 12:33:26 JST


> 江渡さん> p "文字".ucs #[25991, 23383]
> 
> これはこれで奇麗だけども有用かどうかが疑問なんですね?

その通りです。文字数が一つのときは数字が返ってきて、
文字数が二つ以上のときは配列が返ってくるというのだと、
仕様が不統一になるので、結局配列方式は採用しないことにしました。

> libchise では文字オブジェクトを導入するつもりです。というか、当面、文
> 字列オブジェクトに関する API は基本的には提供しないと思います。とはい
> え、C の文字列と libchise の文字列の変換は必要かなと思うようになったの
> で(第2層の文字列も CHISE 的文字の列として扱われるべきだろうから)、
> 当初言ってたように CES 変換関連の API を一切提供しないというのはまずい
> だろうと思うようになりました。

Ruby/CHISEでの文字列オブジェクトの扱いをちょっと書いてみます。

基本的にCHISE的な操作は全てChracterのほうに実装されている。
Stringに対する実装は単なるUTF-8の文字列というだけの扱いにして、
ミニマムに押えようと思っている。
しかし実体参照とIDSによる文字指定の二つだけは、
どうしても文字列と文字との関係を配慮した扱いにする必要がある。

p "&J90-3B7A;".de_er #"字"
p "&U-2ff0;木木".de_er.compose #"林"

この二つだけは文字列によって文字を指定するという動作になっていて、
単に文字オブジェクトに還元できない。

特にIDSによる文字指定は結構悩みが大きく、
私は今は、結論としてはIDSって結局使えない仕様なんだなと思ってます。

例えば「働」という字があるします。
"&U-2ff0;人動"
"&U-2ff2;人重力"
この二つの字は同一の字でしょうか? 違う字でしょうか?

このような仕様のあいまいさを考えると、結局IDSは字形合成のためにも、
部品による文字指定のためにも使えないのではと思っているところです。
かろうじて、漢字の字形構造分析には使えるかもという感じ。

江渡 浩一郎 2003 @ eto.com






More information about the CHISE-ja mailing list