平成14年度未踏ソフトウェア創造事業(未踏ユース)

採択案件評価

1.採択者氏名 油井 誠  21歳 (芝浦工業大学 工学部 4年)
2.プロジェクト実施管理組織 株式会社メディアフロント
3.委託金支払額  2,250,000円
4.テーマ名  RDBを利用したXML Storage環境におけるXPathの実装
5.関連Webサイトへのリンク
6.テーマ概要

 W3Cで標準化されたXMLは,次世代のデータフォーマットとして急速に導入が推し進められている.XMLはそれ自体で「データベース」としての側面を持つとされ,問い合わせ言語もXQueryやXQLなどいくつか提案されている.

 しかし,ファイルベースのXML文書には,データベース管理システムが本来備えるべき,セキュリティ,トランザクション処理,マルチユーザアクセス,複数の文書をまたがったデータの問い合わせ,部分更新といった機能が欠如している,あるいは弱い.しかし,XMLを扱えるXML-DBシステムへの潜在的需要は強い.

 本プロジェクトでは,XMLをRDBに格納するXML Storageに焦点を当てる.XMLの代表的な操作系として,DOM (Document Object Model) とXPathがあるが,DOMとXPathを共にサポートするXML Storageは存在しない.そこで,DOMとXPathを共にサポートするXMLStorageを構築する.

 本実装ではベースとしてRDBMSの一種であるPostgreSQL,およびXMLPGSQLを用いる.XMLPGSQLは,木構造のXML文書をPostgreSQL上に格納するフレームワークである.XMLPGSQLの特徴は,DOM準拠の操作を可能にすることである.PostgreSQLは研究目的や,手軽に扱えるDBということでビジネスでも広く扱われているのだが,現在XMLを扱う機能をほとんど持ち合わせていない.

 このプロジェクトにより,フリーな環境で手軽にXMLデータをデータベースに格納したり,問い合わせたりすることが可能になる.

7.採択理由

 開発すべきものがクリアで,その点では紛うことはない.できるものの性能が命なので,結局それは蓋を開けてみないとわからない.計画の着実性がしっかりしているものの,それを信じて採択.学部4年生が,この短期間にどこまでできるか.これはユースのリトマス試験紙かもしれない.頑張ってほしい.

 
8.成果概要

 ベースとなるソフトウェアは,DBMSとしてPostgreSQL,そしてXML-DBフレームワークとして2001年度の未踏プロジェクトで開発されたXMLPGSQL (メディアフロントの小松誠さん,奇しくも,油井君のプロ管) を用いる.XMLPGSQLはDOMをサポートするが,XPathはサポートしていない.本プロジェクトではXMLPGSQLにXPath処理の仕組みを追加した.その概要は以下の通り.

(1) XPath式をSQLで利用する機能

 XPathを効率よく処理するために,要素間のデューイ順序の情報,およびXMLPGSQLにパスの情報を明示的に保持するテーブルを付加した.順序情報は効率を考慮した上で親番号の後ろに兄弟間のデューイ順序を付加する (親番号の後ろに兄弟間の番号を付けたもの,図書分類に使われている) を用いることにした (油井・表1).これにより,順序木を再編成することも容易である.


油井・表1

 実装した関数は,XPath問い合わせをSQL問い合わせに変換するXPath2SQL関数,XPath問い合わせを評価するXPath_EVAL関数である.

(2) 検索結果をリレーションで返す機能

 テストはベンチマークツールXbench,XMarkで検証を行なった.類似の研究で有名なXRel1,XQengine2と比較し,XPath処理系としていくつかの優位性を確かめた.一般のXMLベンチマークで用意されたXQuery問合せから,XPath式を抽出した問合せ11個と,自作問合せ4個の合計15個の問合せ (Q1〜Q15) で評価を行なった (油井・表2,油井・図1).これで見てわかるように,Xpathに関しては高い機能と非常に高い性能を達成できた.

P:XMLPGSQL/R:XRel/Q:XQengine                        
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 SUM
P 15
R × × × × × × × × × 6
Q × × × × × × × × × × × × 3

油井・表2


油井・図1

(3) XML文書を順序付けする機能

 成果は一般公開の予定.

  http://xml.myin.org/tutorial/index.html.

ただし,論文化まで公開は差し控える.

9.PM評価とコメント

 1月始めごろには性能が出ない,性能が出ないというメールが届いていたが,明けてびっくり.油井・図1を見ると,かなり荒っぽい出入りがあるものの,桁違いの性能が出ている部分がある.比較対象になっているものにはそれぞれの特質があり,油井君のXMLPGSQLがXPathによくチューンされているとはいえ,これは立派な成果である.ほかのものがちゃんとした論文になっているのだから,これも公開前に論文にしておいたほうがよい.

 同じ分野の専門家である小松さんがプロ管になり,メーリングリストでもよく議論が飛んでいたことが結果に効いたのであろう (PMもメーリングリストにいれてもらっていた ----- メーリングリストには入っていたほうがいいと実感).その後の対話を見ているかぎり,これはさらに展開していく価値があるようにPMにも見える.世の中,XML大流行であるから,早く波に乗るべきである.

 油井君は,現在は関係式となっているXPath式処理結果をXML化すること,XML文書の順序付けをさらに高速化することを今後の課題としているが,ここまで一気呵成につくったプログラムを実用レベルにきちんと固めることも,誰かの援助を受けてやってみるといいように思う.あと,せっかくできたこのシステムなので,こんなにうまく使えるよ,といったキャッチサンプルを少しつくっておくとよい.

 なにはともあれ,採択理由に書いたことに完全に応えてくれたことに感謝.

★★ スーパークリエータ:
淡々とプロジェクトをこなし,それでいて最後に非常に良い性能を出した.彼の成果はもっと発展させる価値がある.


   
(補足)