IPA


開発成果一覧へ





2004年度第2回未踏ソフトウェア創造事業  採択案件評価書


 



1.担当PM

 

 長尾 確  (名古屋大学 情報メディア教育センター 教授)



2.採択者氏名


 代表者

 石戸谷 顕太朗 (私立稚内北星学園大学 情報メディア学部情報メディア学科 学生)

共同開発者

 なし



3.プロジェクト管理組織


 株式会社リオ



4.委託金支払額

 

  7,487,190円



5.テーマ名

 

 知識・情報共有プラットフォーム SOYA



6.関連Webサイト


 http://soya.guarana.cc/




7.テーマ概要


 このプロジェクトでは、ネット上のさまざまなアプリケーションの開発にかかわるプログラマの負担を軽減するため、メタデータとデータ及びそれらを扱うためのモジュール化されたプログラムを、効率的に共有できるプラットフォームとして「知識・情報共有プラットフォームSoya」の開発を行い、オープンソースソフトウェアとして公開を行った。



8.採択理由

 

 WikiやBlogの相互運用性を向上させるプラットフォームの構想はよい。クローンを作って喜んでいる人たちが、データの再利用性に興味を持たない現状は大変残念である。その点に危機意識を感じ、具体的な改善策を提案している点は大いに評価できる。ただし、そのプラットフォームを有効に活かすための仕組みが十分に練られていないので、期間中に具体的な実用例を示すことを条件として採択する。




9.開発目標


 近年、ブログやWikiの登場によってWebに公開される情報は増加の一途を辿っている。これら情報を生成するためのツールがより便利により簡単に進化したことが要因のひとつである。しかし、生成されるコンテンツのフォーマットはツールごとに違い、ツール同士で連携して情報を再利用することは困難である。そこで、コンテンツにメタデータを付与し、共有するためのフレームワークとして機能することで、ツール間の互換性を生み出し、コンテンツの再利用可能性を高める。また、ツールを開発する過程で生み出されるプログラムをモジュール化して共有する手法を提供することで、開発者の負担を軽減する。
 具体的には、
  1.メタデータ及びデータを共有するための仕組み
  2.モジュールを共有するための仕組み
  3. Soyaを利用するためのクライアントライブラリ
  4. 実際に1、2および3を利用したデモアプリケーション
 これらの項目について開発を行うことを目標とした。



10.進捗概要


 基本的に、目標の各項目に関して想定していた最低限のレベルに達して開発期間を終了した。ただし、初期の構想中にあった、メタデータやモジュールを複数のSoya間で共有する仕組みや、共有しているリソースのバージョン管理機能、Java言語への移植、認証の安全性の担保等については、期間中に開発を完了するのが困難であったため、開発を見送った。デモアプリケーションについては最低限、Soyaがどのような動作を行うものかを示すものに留まった。
 一方で、モジュール開発を効率的に行うことを支援するフレームワークの開発や、メタデータを効率的に扱うためのライブラリKaibashiraの開発を行った。



11.成果


 以下の仕組みを実装し、オープンソース化した。

 (1)メタデータ及びデータを共有するための仕組み
 メタデータ及びデータを共有するための仕組みについて、メタデータに関しては当初利用を計画していたRDFライブラリRAP (http://www.wiwiss.fu-berlin.de/suhl/bizer/rdfapi/)が、Soyaの要求に耐えうる設計ではなかったため、新しくRDFライブラリKaibashiraの開発を行った。KaibashiraはNamed Graph (http://www.w3.org/2004/03/trix/)の考え方を元に実装したもので、Kaibashiraと同じくNamed Graphの考え方を元にJava言語を利用して実装が行われているNG4J (http://www.wiwiss.fu-berlin.de/suhl/bizer/ng4j/)と前述のRAPを参考に開発した。
 データの保存・利用に関しては、データベース実装に依存しないように設計・開発を行った。
 また、データ及びメタデータの連携は、前述のデータとメタデータを利用するための抽象レイヤーを抽象化する形で実装を行った。また一意性を保つために十分な名前空間を持ったIDを生成し、リソースを保存することで将来ネットワーク上での利用を視野に入れて設計・開発を行った。

 (2)モジュールを共有するための仕組み
 モジュールを共有するための仕組みについて、要求と応答を分離して実装することで、様々な状況に応じた利用をできるように設計・開発した。具体的には、SOAP/GET・POST(REST)による要求が利用でき、応答にはSOAP/WSDL/XML/RDF/PlainTextが利用できる。応答のフォーマットは要求時に指定することが可能なように実装した。また必要に応じて簡便に実装を追加できるように設計した。
 モジュールの開発に当たっては、RDF Schemaからプログラム中で利用することが可能なBeanを自動で生成し、Schemaを中心に、クライアント作成・モジュール作成・RDF変換をトータルにサポートできるツールを開発した。
 

 

図1.Soyaの全体構造図

 

 

 (3)Soyaを利用するためのクライアントライブラリ
 PHP5を利用してSoyaを利用するためのクライアントライブラリを作成した。これはSoyaを開発する過程でプログラムされたユーティリティークラスや、SOAPを簡便に利用するためのクライアントクラスを含んでいる。

 (4)デモアプリケーション
 デモアプリケーションは、実際にクライアントライブラリを使用しSoyaを利用してどのような動作を行うことが可能であるかを示したWebアプリケーションである。
 これは、「キーワードに基づいた情報の集約」をSoyaに格納されているデータに付与されたメタデータを利用して行うものである。Soyaに対してクエリを発行し、その応答を整形し表示する。
 

  

図2.クライアントアプリケーションのスクリーンショット



12.プロジェクト評価


 当初の計画内容をすべて達成したとは言えないが、基盤となる仕組みの開発は終了している。基盤システムの実装のプロセスは着実であり、既存のライブラリの問題点を逐次解決しながら、開発を進めた点も評価できる。個々モジュールの機能も妥当なもので、広範囲において有用性のあるものと判断できる。問題は、報告会等での成果の見せ方が不十分で成果の内容が聴衆にうまく伝わらなかったことである。企画力、実装力と同様にプレゼンテーション能力も本質的な能力であるため、結果にはやや不満が残る。

 



13.今後の課題


 このプロジェクトの成果を本格的に普及されるために今後実装すべき機能は以下の通りである。

 
 1. データ・メタデータ及びモジュールのSoya間での共有
 2. セキュリティの向上
 3. ニーズに即したモジュールの作成、蓄積
 4. メタデータ・データの蓄積
 5. アプリケーションの開発環境の整備

 

 1のSoya間の共有については、現在Soyaは他の場所にインストールされているSoyaと連携してリソースを共有することができない。これはある場所のSoyaと他の場所のSoyaにおいて必要なリソースを常に重複して格納しておく必要がある。しかし、真にリソースを共有するためにはネットワークを通じてあるSoyaに対してなされた要求を、他のSoyaを利用して解決できるようにする必要がある。
 2のセキュリティの向上については、現在の認証方法やアクセス管理手法では、どのような情報でもSoyaに格納できてしまう。現在の状態では意にそぐわない情報がSoyaに格納されてしまう可能性がある。これを解決するために公開鍵暗号方式を利用した認証や通信路の暗号化を行うための仕組みが必要になる。
 3のニーズに即したモジュールの作成・蓄積については、今後Soyaを普及させていくにあたって、開発者が即利用可能なモジュールを作成し利用可能な状態で提供していくことが必要になる。また、開発者が簡便にモジュールを作成できるようにするためのフレームワークの拡充が必要である。
 4のメタデータ・データの蓄積については、3と同様である。Soyaの価値はどれだけのリソースが即時利用可能な状態で格納されているかによって左右される。有用なメタデータ及びデータをSoyaに継続的に蓄積していくことが必要になる。
 5のアプリケーション開発環境の整備については、Soyaの普及を考えた場合、特に重要になる。アプリケーションの開発を通して作成される様々なモジュール、また開発されたアプリケーションを運用することによってメタデータが蓄積される。それによってSoyaがその威力を発揮することができる。

 

 以上5点について、開発を継続していく必要があるだろう。Soyaをオープンソース化したことによって今後外部の開発者と共同して、新たな機能を実装していくことができるだろう。


  ページトップへ   





  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004