hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

EBシリーズのDSL形式への対応方針について

数年前から進めていた既存アプリのリニューアル(KWIC Finder4、EBStudio2、EBWin4のタブ化等)が一段落し、モバイルアプリのダークモード対応もできたので、次なるお題を考える余裕ができてきた。

以前から要望があるdslフォーマット(ABBYY Lingvoの辞書フォーマット)の検討を再開したいと思う。
dslはテキスト形式の辞書のソースで、dsl compilerによってコンパイルしたバイナリ形式がlsdである。

lingvo.helpmax.net


lsdの構造は非公開だが、lsdからdslに変換するツールがいくつかあるので、リバースエンジニアリングを行えば対応は不可能ではない。だが作業時間は膨大になることが予想される。

github.com


そこで、段階的に対応することを考えた。

フェーズ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までは実現することになる。

 

f:id:hishida:20191207143645p:plain