オブジェクトから実体参照への変換

守岡知彦 / MORIOKA Tomohiko tomo @ kanji.zinbun.kyoto-u.ac.jp
2004年 11月 24日 (水) 17:30:45 JST


>>>>> In [chise-ja : No.00394] 
>>>>>	"上地さん" = Koichi Kamichi <kamichi @ fonts.jp> wrote:

上地さん> 守岡さんからアドバイスをいただいて、結局PerlのBerkeleyDBモジュー
上地さん> ルで、これまた守岡さん配布のchise-dbを参照することにしました。
上地さん> ありがとうございます。
上地さん> (なぜかxemacs-chiseがmake時にコンパイル後のdumpでエラーを吐
上地さん> くので自前でchise-dbを構築できず、この1週間苦闘しています…)

もしかして Debian sid でしょうか?実は私も 2001 年頃に install して以
来、update を続けて来た Debian machine で、dump に失敗します。KNOPPIX
とか最近 install した testing 環境では build 出来るのですが。

xmalloc 中の malloc で死んでる気がするのですが、build 出来ない環境の 
libc6 の version と build 出来る環境の libc6 のversion が同じにしても
症状は一緒なので困ったもんです。


上地さん> それで、手元で検索cgiを作ったのですが、一つ昔から解決できな
上地さん> かったことを思い出しました。たとえば「鬯」という字をキーとし
上地さん> てideographic-structureを引くと「U+2FF1 hoge 匕」という値が
上地さん> 返ってきます。このときhogeの実体はutf-8でいう「fda28088a794」
上地さん> なのですが、これがオブジェクトの番号だと思っていいでしょうか。

そうですね。BDB 上では ?\xFD\xA2\x80\x88\xA7\x94 が文字素性に対するキー
になっていて、この UCS4 表現に相当する 0x620089D4 が文字オブジェクト 
ID です。

上地さん> で、質問なのですが、データを追加したりして再度chise-dbを構築
上地さん> した場合にこの数値は不変でしょうか?

不変だとはいえないです。

上地さん> もしかわってしまうならば、chise-dbとKAGEの部品を連携するため
上地さん> には、やはりchise-dbにKAGEの部品DBを入れ込む必要があると思い
上地さん> ます。

もしかして文字オブジェクト ID をキーに CHISE の外でなんかのテーブルを
引こうと思われたのかも知れませんが、もしそういうことをしたいのであれば、
そのテーブルを文字素性にして CHISE DB に突っ込むのがお勧めです。

また、単に Unicode の code point が必要なのなら、=>ucs (*1) の値を用い
るのが良いです。同様に、台湾中央研究院 CDP 外字の code point や GT, GT
部品集合 の値を =big5-cdp, =gt, =gt-k などで得ることが出来ます。

(*1) 実際には、=>ucs → =ucs → 親(<-subsumptive および
     <-denotational の値で示された文字オブジェクトの集合)の =>ucs →
     =ucs → そのまた親の… というように再帰的に値を辿る必要がある。近
     い将来、libchise でこの探索処理をサポートする予定。

-- 
===『幾千億の分子に分かれても ========================================
     決して忘れない。    
     この宇宙が終るまで』              守岡 知彦 (MORIOKA Tomohiko)
====================== Email: <tomo @ kanji.zinbun.kyoto-u.ac.jp> ======





More information about the CHISE-ja mailing list