辞書のデータ構造

ずっと以前の日記に書いたけれど、辞書のデータ構造をとりあえず、公表してみます。批判とかはいいけれどシステムが破壊されるのが少し心配。なので、もしかしたらすぐに引っ込めるかもしれません。

とりあえず、以下の図を見てね

  1. 全体
  2. メッセージ部分
  3. 語の要素構成(辞書の肝)

全体

700KBもあります。DLしにくい人もいるでしょう。すみません。とりあえず、謝っておくとこのデータ構造、全然完璧じゃないです。特にPartyの部分とメニューの部分が。ここは解析する時間がなかった(頭悪いので。。。)


メッセージ部分

メッセージ関連部分の抜粋です。今回は、多言語表示ということで、こんな構成にしてみました。各ロケールに対して、実際のメッセージ文字列を割り当てるような感じです。また、ロケールは言語と国から構成されるようにしています(あたりまえか)。例えば、英語で言えば、英国英語や米国英語、オーストラリア英語などなどあります。論理的には日本英語も構成可能ですね。

また、当然国のIDや言語のIDはISOの標準を利用してます。


語の要素

語を構成している要素についての抜粋です。ここは、製品構成表のような形にしています。なので、どのような構造もとることが可能です。つまり、データベースの構成を変えることなく、新たに要素を加えることができます。もちろん、プログラム側があらゆるデータ構成に対応できるものになってないといけません(ここが結構難しい)

内部的なデータの持ち方は楽なんだけれど、Smartyなんか使ってどうやってあらゆるデータ構造に対応した表示をすることができるのか?考えることができなかった(反省)。もちろんsmarty使わなければできるけれどね。
これさえ、解決できればあらゆる構造の辞書・百科事典になるのになぁと思ってます。

こんな感じ〜。