y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

高精彩古絵図から古文書の全文検索できた

お仕事の話。
なかなかエキサイチングな要求が今週飛び込んできた。
「高精彩画像フォーマットZOOMAの古絵図に地名のリンクを貼り、関連する古文書を全文検索したい!」という要件。
もちろん、地番を検索して地図を表示(その地点を中心にしてZOOMAビューアで表示)もアリ。
・・・で先にPDFデータからWebDBへ全文検索実行要求をかけるのはNGだったが、ZOOMA画像(ZOOMAデータの描画を指示したHTML)からWebDBへの検索は成功。

古文書に含まれる旧町村名を現在の市区町村名に対応させるテーブルを用意すれば、時間軸を超越した地図→文書の検索が可能となる。
「これは、結構素晴らしいデジタルアーカイブシステムになるのではないか?」と今から興奮している。
古絵図と現在の地図をモーフィングする案件も自社でやったことがあるので、昔の地図と現在の地図が、タイムスケールのスライダーで切り替わりつつ、その土地に関連する歴史文書の全文検索が出来たらかっちょいい。

■方法
1:ZOOMAのリンクを管理するpolygon.jsをハック。
CMiViewer1.Execute(" uf polygon;id '0';points 3379,8002 3468,8002 3468,8044 3379,8044 ;param url '../0001.pdf';style /frame-size='3' /frame-color='#FF0000';end;");
のようになっているリンクを
CMiViewer1.Execute(" uf polygon;id '1';points 3373,8071 3460,8071 3460,8114 3373,8114 ;param url '地名';style /frame-size='3' /frame-color='#FF0000';end;");
なんていう地名の文字列に変更
2:表示用HTMLをハック
・SendKeyword関数を組み込む
・引数を受け取ってURLオープンになっている部分をJavascript実行に変更する
if(x != "none") window.open(x,"_blank");
↑こんな感じでURLを呼んでいるところを
if(x != "none") SendKeyword(x);
こんな風にSendKeyword(文字列)を呼ぶように変更

■宿題
現在のところ、リンク文字列も文書データもShif-JISで表現されているが、古文書と言えば、少なくともUTF-8でコンテンツが表現されていなければならない。この部分は今後の宿題。