随筆:「曖昧性処理と永続化」

by ご近所のきよきよ


 

 いずれ分かる事だったのですが、彷徨(かなた)を作っていて未夢の仕様に重大な欠陥があることが分かりました。彷徨は、未夢の解析中間結果と最終出力をRDBの一つのテーブルにまとめて保管する機能を提供しています。で、ふと考えてみたのです。どうして、未夢は中間結果をデータベースに保管していないのだろう。一つの文章内の文の相関関係を解析するため、未夢は全文章の解析結果をコア上に保持しています。何も考えず、処理が簡単、高速ということで、そうしているのですが、これって・・・メモリ不足になるということですよね。

 前にもメモリ不足に悩まされて、未夢を改版したのですが、そのときよりも深刻な問題を抱えている事に気が付きました。気づいてみるとあきれるミスですが、ぽっかり念頭から落ちていました。恥ずかしい限りです。こうゆうミスをしてはいけません。未夢の大改装になりそうです。中間結果をデータベースに保存して、利用プログラムからはコア上にあるように見せなくてはいけません。面白い問題ですが、始めからそんな風に作ってれば軽いのですが、今となってはきつい課題になります。処理がぶつぶつに分散しているからです。でも、やらねばなりません。

 この解決策を施せば、前にメモリ不足を解消したときよりももっと根本的に対策がなされることになります。曖昧性もデータベース上で管理して、デフォルト値をコア上に持てばいいようにするのです。


 Javaのコレクションをデータベースにしますから、それはテーブルによる表現になります。すると、文章解析結果はまるまるデータベース一つにマップするしかないわけで、文章の数ほどデータベースがあるシステムになります。やはり、こうなりましたか。彷徨は、テーブルが一文章ということにしましたが、これだとXMLライクなテキストをオブジェクトをアクセスするたびに解析しなくてはなりませんでした。小さなデータでテストしたから気になることはなかったのですが、未夢の解析中間結果はこまめにオブジェクトデータを使っていく事になるため、できるだけテキスト解析は止めたいと思います。


 で、これから未夢の改版計画を練っていくのですが、実施は来年に持ち越しになりそうです。その前に、今のシステムでやらねばならないことが沢山あって。今度こそ、未夢の最終改版としたいですしね。

 細心の注意を払っても大きなミスはあるものです。でも、負けない。健気に作業を粛々と実施していきます。やれやれ。

 


 頑張りましょう。


 
 

おわり