misima SOAP Web Service 2.4 のドキュメントができた。図版が多くて容量が 10MB を超過してしまい,パッケージに添付するのはやめにした。表題は『misima 旧仮名遣い・旧字変換支援 利用の手引き misima SOAP Web Service Ver. 2.4』である。関心のある方はダウンロードしてご覧ください。
misima を各 OS の有名どころのアプリアプリケーションで利用できるよう,知りもしない VBA やら AppleScript やらを勉強しつつ,SOAP クライアントをせっせと作ってきた。他人様が使うにはドキュメントがないと,ものができただけでは不十分である。早く文書を整理して追随しなくちゃと思っていたのである。
ドキュメンテーションは自分自身の経験を定着させるためにも是非とも必要な営みなのである。なにか困ったとき,ああ,あのときどうやって対処したのだったっけなーというのが私にはあまりにも多いのだ。つまりは自分のため。
機能,インストレーション,使い方,処理仕様,プログラミング手引きなど必要事項を書くと,サーバの設置方法はすべて割愛したにも拘らず,91 頁にもなってしまった。リファレンスが夥しくなり,LaTeX でコンパイルすると "multiply-defined labels" などラベルの多重定義警告や参照エラーが頻発した。ラベルの参照エラーは PDF を "??" で検索すれば不良箇所がすぐ判るのだけど,多重定義は目で探すと気が狂いそうになる。
そこで次のようなワンライナーを使う。1 行にいくつも \label 命令を使用していない限りにおいて動く。
% grep -v '^%' foo.tex | nkf -w | grep -e '\\label{' | \ sed -e 's|^.*\\label{\([^}].*\)}.*|\1|g' | sort | uniq -d
重複している \label の定義内容が表示されて,今度はエディタに戻って該当するラベル定義を訂正する。TeX 原稿が EUC だとうまく動かないので,nkf で UTF-8 にしてチェックしている。これも経験を定着させるため?
ここまで来てようやく,misima の当初の目標が達成できたような気がしている。もともと Perl で 700〜800 行くらいかと多寡を括っていたが,辞書などの量が予想外に大きくて手間を要してしまった。misima 辞書については,福田恆存の『私の國語敎室』に記載された本則で処理できない例外語彙をメインに登録する方式としたが,この本の記載だけではとうていきちんとすべてを賄うわけにはゆかず,試験・運用の過程でもとの何倍もの単語を登録しなければならなかった。まだ漏れがあるはずである。本書の学問的意味に疑問をもってしまった所以である。コンピュータ・プログラムでアルゴリズムが組めない言語の定式化は,学問的とは言えないと思う。「人間ならば分るはず」では定式化ではない。「例外」などというからにはその完全なリストを提示すべきである。
その後,Emacs Lisp を書き,TeX 変換コードを書き,Web サーバを書き,Java SOAP サーバを書き,SOAP クライアントを書き,ドキュメントを書き,とやっているうちに,この三年間で LaTeX,HTML ドキュメント,定義を含め 3 万行近くものコードを書いたことになる。プログラムと misima 辞書だけでも 1 万 5 千行である。その割にはソフトウェアのできることが限られていて唖然としてしまった。まあ Unicode,Perl,Java,Emacs Lisp,Word VBA,AppleScript,CGI,SOAP,JSP/Servlet,XML,Tomcat,Apache,LaTeX などなど,misima の構築の過程でいろんなことを勉強した。これが最大の成果か。
以下は misima SOAP Web Service 開発のために参照した書籍である。
Simeon Simeonov, Doug Davis,
Yuichi Nakamura, Ryo Neyama 著
ソフトバンククリエイティブ