文字素性データベースの構成について (Re: libchise に向けて)

守岡知彦 / MORIOKA Tomohiko tomo @ m17n.org
2003年 3月 9日 (日) 18:24:47 JST


複数の計算機言語やアプリケイションで CHISE の文字データベースを共有す
ることを考慮して、文字素性名や素性値について次の提案を行います。

;; <chise-ja:00154> の続きです。


『文字素性データベースの構成について』

* はじめに

比較的近い将来において libchise が提供するサービスが第2層までに留まる
ことを考えれば、第3層で複雑なデータ構造を使うと各アプリケーションは自
前で構文解析やメモリ管理を行う必要が生じる。このため、なるべく素性値と
して複雑なデータ構造(リスト等)を用いないことが望ましい。

一方、文字オブジェクトの素性の束としての性質を活かし、これを積極的に支
援するには文字指定形式(char-spec; define-char の第1引数)間の集合演
算が容易に実現可能であることが望ましい(特に、join, union,
intersection)。

この観点で現状を鑑みれば、素性名毎によって値が1つしか取れないもの(例:
ideographic-radical)と複数取れるもの(例:<-simplified-ideograph)が
あり、まちまちである。また、値がリストの場合に、その意味が列のもの(例:
ideographic-structure)と異説の集合を意味するもの(例:
<-simplified-ideograph)がある。こうした現状は望ましくなく、ある統一的
なルールに従って第3層の標準データ形式を定めるのが望ましい。

この際、

(a) 全ての文字素性に対し、素性値として1つしか許さないことにする。その
    代わり、ここで定義される文字定義を継承する文字素性の集合を示す特別
    な文字素性 or を導入する

(b) 全ての文字素性に対し、素性値として複数候補を許すことにする。

の2案が考えられる。

ここでは、文字素性名の名前空間を表現する命名規則を導入することによって、
(a) 案に基づく構成法を提案する。


* 命名規則

素性名に対し次の命名規則を定める:

  素性名 = 実データ素性名 / メタデータ素性名

  実データ素性名 = 主素性名 [“@”選択指示子 ]

  メタデータ素性名 = 実データ素性名“*”メタデータ指示子
		   /“@”選択指示子“*”メタデータ指示子

;; ここで、「A / B」は A と B の選択を表し、「[ C ]」は C が省略可であ
;; ることを表す。


* 選択指示子

主素性名で表されるクラスの情報に関して異説(複数の候補)がある場合、各
候補をユニークに指示するためのシンボルを表す。

例:部首に関して異説がある場合、次のように表現することができる:

((ideographic-radical @ daikanwa . 89)
 (ideographic-radical @ ucs . 9)
 ...)

なお、選択指示子の有効範囲はある char-spec の中に及ぶ。即ち、

((ideographic-radical @ daikanwa . 89)
 (ideographic-strokes @ daikanwa . 15)
 (ideographic-radical @ ucs . 9)
 (ideographic-strokes @ ucs . 17)
 ...)

とある時、ideographic-radical @ daikanwaideographic-strokes @ daikanwa,
および、ideographic-radical @ ucsideographic-strokes @ ucs は組になっ
ているものと解釈される。


* メタデータ指示子

メタデータ指示子は、ある素性名で表される情報に関するメタデータを表すシ
ンボルである。

例:出典を sources で表す

例1:

((ideographic-radical*sources daikanwa cns-11643)
 ...)

この場合、主素性名を ideographic-radical とする全ての実データ素性名に
この出典情報が結合する。

例2:

((ideographic-radical @ daikanwa*sources daikanwa cns-11643)
 ...)

この場合、実データ素性名 ideographic-radical @ daikanwa にのみこの出典情
報が結合する。

例3:

((@daikanwa*sources daikanwa cns-11643)
 ...)

この場合、選択指示子 @daikanwa を持つ全ての実データ素性名にこの出典情
報が結合する。


* 集合について

集合は列と同様に first class object と見倣されるべきである。即ち、ある
素性の値が本質的に集合である場合に、選択指示子を使って無理に複数の素性
に分解する必要はない。


* 文字参照形式について

文字参照形式は原則として文字素性データベースや CHISE 第2層以下のサー
ビスでは使わないことが望ましい。現在、文字参照形式を用いている部分はこ
こで提案する仕様に従って複数の素性に分離して扱われるべきである。

また、第3層以上のサービスでは、実データとメタデータの組を文字参照形式
で扱うことが可能である。


* 疑問点

メタデータ素性名に対して選択指示子を付けることを認めるべきだろうか?こ
の場合、どの程度ネストを許すべきだろうか?


* 補足

この提案に基づく場合、次のような文字素性が影響を受ける:

・<-foo, ->foo などの写像の値が char-ref のリストから1個の char-spec
  (文字)に変わる

・ucs-gb, ucs-cns, ucs-jis, ucs-ks, ucs-big5 などはそれぞれ =ucs @ gb,
  =ucs @ cns, =ucs @ jis, =ucs @ ks, =ucs @ big5 などに変わる

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




More information about the CHISE-ja mailing list