「凧」の辞書

(98年1月12日更新)

はじめに

 タコのような柔軟性を目標にするのならば、方式や配列に固有の情報を、できるだけドライバ本体ではなく外部ファイルの中(以下、「辞書」と呼びます)で定義できるようにするのがいいでしょう。
 従来の入力方式のソフトは、特定の「方式」専用に作られていたため、書き換え可能なのは「配列」だけでした。「凧」の目標は、「方式」と「配列」の両方を変更可能にすることです。つまり、辞書の交換によって、各種の入力方式や配列のドライバに化けるようにするわけです。

「方式」と「配列」

 ここで、用語を整理しておきます。今まで私は、何のことわりもなく「2ストローク系入力方式」とか「覚えやすい漢字配列」などという使い方をしてきました。例えば「T-Code」というのは、2ストローク直接入力「方式」であり、その「配列」の中には平仮名・片仮名・漢字・記号が定義されています。この配列の内容だけを変えたもの(たとえばG-Code)は、T-Codeと同じ「方式」であるといえます。つまり、各種の「方式」の中に、多様な「配列」があるわけです。

辞書の書式

 日常会話の中では、「ローマ字」、「JIS仮名」、「親指」、「風」、「T」などと言えば用が足ります。たいていは、「○○方式の△△配列」ということまで言わなくても話が通じますが、何も知らない人に一から説明しようとすると骨が折れます。「凧」の辞書を作るのは、これらの方式や配列のことを何も知らない人に説明するのと同じくらい大変なことです。
 たとえば、「NICOLA」というのは、親指シフトという(31個の文字キーを、2個の親指キーとの同時打鍵により2通りにシフトする)入力「方式」であり、その「配列」には、仮名と記号(89文字)が定義されている、というふうに整理するわけです。あとは、単独打鍵時と2通りのシフト打鍵時の配列図を示せば、それで必要最低限の説明ができるでしょう。
 もうひとつ実例をあげると、「快速ローマ字」と「花配列」と「チョイ入力」と「親指シフト」の各入力方式は、「文字キーを何らかの方法でシフトする」という点で共通しています。そこで、まず、シフトに用いるキーを定義します。次に、タイミングによって(「通常」と「先打ち」と「後打ち」と「同時」に)分類し、最後に、シフト状態ごとの文字(列)の配列を定義します。これだけの情報があれば、ドライバは適切に動作できるはずです。
 このようにして、多種多様な方式や配列を説明する方法を考えていくと、辞書の中にどんなデータをどんなふうに入れておけばよいかが見えてきます。それを手がかりにして、辞書の基本的な書式を作っていくわけです。とはいっても、すべてを同じ辞書形式で統一するのは難しいので、辞書のヘッダに最低限の共通データを置き、その他の部分に方式や配列に固有のデータを入れることにしました。

辞書の分類

 「凧」で使う主な辞書を、以下のように2グループ/8ブロックに分類しました。
 基本辞書はドライバ内部で仮想キーコードや文字コード等の変換に用いるものです。このうち「打鍵文字変換」は必須で、仮名や漢字の配列を定義します。「シフト変換」はシフトケースの仮想キーコードの変換、「文字組後変換」は一旦確定した仮名に後から濁点を加えるなどの後変換に利用します。「文字位置変換」は、仮想鍵盤への漢字の配置を高速化するために使います。補助入力用辞書は、オプションです(ただし、「超多段シフト」をメインの入力方式にする場合は「単漢字変換」が必須となります)。各グループ/ブロックの詳細については、後述します。

辞書ファイルの構造

 

[ 「凧」の野望 | 「凧」(目次) | 錬金術師の実験室 | m(as)m's home position ]