今日は,Perl で misima 旧字・旧仮名遣い変換 SOAP Web Service クライアントを簡単に作成する方法について述べる。
misima SOAP Web Service
misima 旧字・旧仮名遣い変換支援は Web 版を数多くの方に使っていただいている。しかし,misima SOAP Web Service を利用している人はほとんどいない。misima SOAP Web Service パッケージには,Emacs / Meadow 用,
SOAP::Lite Perl モジュール
SOAP といえば Java という印象があるけれども,一方,
#!/usr/bin/perl
use utf8;
use SOAP::Lite;
binmode STDOUT, ":utf8";
my $p1 = "-kyitq -s a -x fki"; # 旧字旧仮名TeX変換指定
my $p2 = "鴎外は団扇であおいだ。Я люблю вас. Ça, déjeunons!"; # 変換対象 text
my $uri = "http://yasuda.homeip.net/webservices/misimaSoapConnector";
my $svc = SOAP::Lite->service("$uri?wsdl");
print $svc->misimaConvert($p1, $p2);
以上のような Perl コードを misimaconvert とでも名前を付けて格納する。コマンドラインでこれを実行すると「\CID{7646}外は團\CID{13883}であふいだ。YA lyublyu vas. \c Ca, d\'ejeunons!」(旧字・旧仮名遣い・多言語 TeX 変換)と出力される。
もちろん,これは核心部分だけのコードなので,実用的なプログラムには,パラメータの組立て,変換対象文字列の取得,結果の編集・加工など,その前段,後段が必要なのは言うまでもない。でも,misima の遠隔変換オペレーションはこれだけでできてしまうのである。SOAP はいかに簡単なのかということが分かると思う。misima SOAP サーバが Java で記述されているなんてことはまったく意識しないでよい。XML による標準化というものがいかに強力なのかが分かる,というものである。
SOAP::Liten インストール
おそらく SOAP::Lite モジュールの組込みの方がよっぽど面倒だろう。MIME-Lite, MIME-Tools, XML-Parser, Compress-Zlib など,いくつかの前提モジュールを別途インストールしておく必要があるからである。cpan -i SOAP::
参考文献
SOAP::Lite については,オライリーから出ている『Perl クックブック』VOLUME 2 に解説がある。上記のクライアントのみならず SOPA サーバや XML-RPC クライアント/サーバの例も掲載されている。かようにして,オライリーの言語本は必ず役に立つ。日本人の書いた駄本(多く,著者の知っていることしか書かれていないため,自分のちょっと曲がった課題に対してはまったく導きにならない)に手を出すのではなく,多少高価でも,米国のプロフェショナルが体系的にしるしたオライリー本(体系的かつ正確である)を手に入れて,参考にすべきである。
付記
ユーザでもし独自に misima アクセスクライアントを作成し運用する場合は,私に連絡いただきたい。
[ 2010.11.02 ]
misima SOAP Web Service は停止しました。上記プログラムを実行しても動作しません。
[ 2014.03.09 ]
最近の動向として Web Service 形態としては SOAP よりも REST が一般的になった。SOAP が XML データラッピングを必須とし,WSDL でインタフェースをやり取りしなければならないのに比べ,REST は HTTP トランスポートを利用する限りにおいてそのような制約がない。Perl 言語による misima RESTful クライアントについては,「misima RESTful Web Service Perl クライアント 」を参照。