EBシリーズのDSL形式への対応方針について
数年前から進めていた既存アプリのリニューアル(KWIC Finder4、EBStudio2、EBWin4のタブ化等)が一段落し、モバイルアプリのダークモード対応もできたので、次なるお題を考える余裕ができてきた。
以前から要望があるdslフォーマット(ABBYY Lingvoの辞書フォーマット)の検討を再開したいと思う。
dslはテキスト形式の辞書のソースで、dsl compilerによってコンパイルしたバイナリ形式がlsdである。
lsdの構造は非公開だが、lsdからdslに変換するツールがいくつかあるので、リバースエンジニアリングを行えば対応は不可能ではない。だが作業時間は膨大になることが予想される。
そこで、段階的に対応することを考えた。
フェーズ1 EBWinのユーザ辞書形式に変換する
一番簡単なのは、dslからEBWinのユーザ辞書に変換することである。これでdslのパーサーと、dsl形式の辞書の内容の表示ルーチンができあがる。
変換の手間はあるが、公開されているdslを(モバイルも含めて)EBシリーズで利用することができる、
(作業工数1~2カ月)
フェーズ2 dslに対してインデックスを作成する
次は、dslのソースをそのまま辞書ファイルとして利用し、インデックスだけ作成してEBシリーズで利用することである。モバイルでインデックスをつくると辞書のサイズによっては長考状態になるので、母艦でインデックスを作成してdslと一緒に転送してもよいようにする。
(パーサーとdsl形式の表示ルーチンはフェーズ1で開発済みということになる)
(作業工数1~2カ月)
フェーズ3 lsdのネイティブサポート
最後に、リバースエンジニアリングによってlsdを解析し、直接参照できるようにする。
ただし、膨大な作業時間が予想されるので、フェーズ2までで終わる可能性が高い。あまり過度な期待はいだかないでほしい。
可能性として書いているだけで、着手できるかどうかもわからない。
現在フェーズ1の途中であり、整形していないdslの生データが検索出来ているところまでのスクリーンショットを掲載しておく。あとはテキストを整形して表示できるようにすれば、フェーズ1までは実現することになる。