ソフトウェア検索の現状分析

第一回SPARTSプロジェクトミーティング 資料
ソフトウェア検索の現状分析
亀井俊之 粕淵健郎 佐藤弘紹
門田暁人 松本健一
奈良先端科学技術大学院大学
2002年3月18日
はじめに(発表の位置づけ)
• ソフトウェア検索システム:
– 収集
– 解析
– 分類・整理
• 本発表:
– 収集に的を絞る.
– 既存の手法・システムを紹介し,分析する.
– 今後のアプローチを提案する.
発表の流れ
• 従来のソフトウェア検索法
– 既存システムの整理
– 今後の指針
• WWW検索エンジンにおけるクロウリング
– 検索エンジンの仕組み
– クロウリングの特徴
– 今後の指針
• まとめ
既存のソフトウェア検索
• 専用サービス
– 登録型ソフトウェアライブラリ
– 登録型ソースコードライブラリ
– FTP 検索サービス
• WWW検索エンジンによる検索+ブラウジング
キーワードを工夫することで,目的のソフトのページを探す.
(例:download,version等のキーワードを併用する)
• 一般のWWW検索エンジン + 自動Indexing&解析
(本研究で目指す物?)
登録型ソフトウェアライブラリ
• ソフトウェアやその関連情報を人手でデータベース
化し,検索させる.
– 長所:人間がデータベース化するのである程度の精度が
期待できる.
– 短所:データベースの量が少ない.
• 例:
– Vector www.vector.co.jp/
– 窓の杜 www.forest.impress.co.jp/
– Softwarexchange.com
登録型ソースコードライブラリ
• 登録ソフトウェアライブラリのソース版.
– 長所:人間がデータベース化するのである程度の精度が期待できる.
– 短所:データベースの量が少ない.ソフトウェアライブラリよりももっと少
ない.
• 例:
– Layer-8 SourceCode Exchange www.layer-8.com/sce/
– freshmeat.net (開発プロジェクトの登録)
– SourceForge.net (同上)
(例) www.layer-8.com/
FTP検索サービス
• 世界各地のFTPサーバから登録されているファイル名を取得
してリストを作成し,ファイル検索を行うことができるようにする.
– 長所:世界中のFTPサーバを対象にできるので量が多い.
– 短所:ファイル名でしか検索できず,検索しにくい.
• 例:
– Archie Gateway www.iij.ad.jp/archie.html
– AllTheWeb.com http://www.alltheweb.com/
FTP検索に関する論文
• 広瀬雄二,大駒誠一:”インターネット上の資源検索
システムの設計と評価”,情報処理学会誌,Vol.39,
No.4,pp.1108-1115,Apr.1998.
– 設計したシステムDartsは,パッケージの持つ属性を検索
キーとしても指定できる.
• カテゴリ,OS,マシン,用途など
– Dartsは,一般公開されていると書かれているが,現在で
はアクセスできない状況にあるので,状況が把握できない.
(http://darts.comp.ae.keio.ac.jp)
WWW検索エンジンによる検索 +
ブラウジング
• WWW 全体を対象に検索を行い,検索エンジンが提
示した情報をもとに探索を進める.
– 長所:WWW全体を検索対象とできるので,多種多様の結
果を得ることができる.
– 短所:検索結果にノイズが多く含まれ,実際にいる情報が
埋もれてしまう.
– ユーザが探索しないといけないので面倒.
この短所を補えば理想的な検索方法と成りうる.
一般のWWW検索エンジン +
自動Indexing&解析
• SEIのAgora※ :Java BeansとCORBA Objectの
サーチエンジン
– クロウラにより全世界から自動的にIndexを作成する.
– AltaVistaのSDKを使って実装している.
– Java: ページのHTML中にappletタグがあるかどうかを
調べ,appletを自動ダウンロードし,applet中で参照され
ているJava BeansをIndex化する.
– CORBA: CORBAネーミングサービスを利用して
Objectを探す.
※ R.C. Seacord, S.A. Hissam, K.C. Wallnau, “Agora: A Search Engine for
Software Components,” IEEE Internet Computing, Vol.2, No.6, pp.62-70, 1998.
登録型 + クロウラ (ハイブリッド型)
• CodeHound ※
– Yahooのように,WWWサイトを登録する.
• サイト運営者による登録
• ユーザによる登録
– 登録されたサイトだけを定期的に探索し,各サイト内のテ
キスト情報をIndex化する.
– ページ内のアーカイブを解析する.
• Zip/Tar/GZip ファイルの中身を調べる.
• 検索結果を表示する際に,ファイルへの直リンクを提示する.
– 詳細は「we can’t talk too much about this」と書かれて
いるため,不明である.
※ http://www.codehound.com/
http://www.codehound.com/
今後の指針
• Agoraのアプローチを,Java,CORBA以外の言語
へも広げることが望ましい.
– クロウラにより全世界から自動的にIndexを作成する.
– 各Webページ中のソフトウェアを自動的に調査する.
• 一方では,Webページ中の全てのアーカイブを自
動ダウンロードして中身を調べるのは,実行効率の
点から無理がある.
– フィルタリングを行う.(明らかにソフトウェアと関係ないと
思われるページを探索しない)
– アーカイブの一部だけをダウンロードする.
(たとえば,LZHファイルは,ファイルの先頭に圧縮ファイ
ルのリストが入っている)
発表の流れ
• 従来のソフトウェア検索法
– 既存システムの整理
– 今後の指針
• WWW検索エンジンにおけるクロウリング
– 検索エンジンの仕組み
– クロウリングの特徴
– 今後の指針
• まとめ
WWW検索エンジンの仕組み
カテゴリ分け
フィルタリングエンジン
Filtering Engine
カテゴリ検索
クライアント
Client
新規ページ・
更新ページの収集
単語検索
索引作成
インデクサ
Indexer
クロウラ
Crawler
クロウリング(Crawling)
• クロウリング:クロウラを用いて検索対象となるWeb
ページを増やしていく処理.
• クロウラ(crawler):Web上のハイパーテキストを自
動的にたどるプログラム.
– ページの収集:
• Webページを取得する.
• そのページから参照されているページをたどる.
– ページの更新
探索を始める起点とする URL や巡回するアルゴリズムを
工夫することによって,集めるデータを選別することができる.
考察:クロウリング手法
• ソフトウェア資源のみを重点的に集めるクロウリング
手法を用いる場合の重要な要素:
– 起点URL:既存検索エンジンを用いて起点URLを選定する.
– 巡回アルゴリズム:Web 上のコミュニティを発見し,その中
を重点的に巡回する.
• 起点 URL を既存検索エンジンから選定することによ
る利点:
– 人的資源を節約できる.
– 検索質問語(クエリ)を拡張することにより,精度の高い情報
の収集を期待できる.
– 機械的に処理するので,大量に収集できる.
– 新規Webサイト発見の効率が向上する.
今後の指針
(1/2)
• サイトの発見
– 新規のソフトウェア資源を発見するに必要な起点URLは,
既存の検索エンジンを複数台使って調べる.そのために,
既存の検索エンジン対し,それぞれ最良のソフトウェア発
見クエリを考える.
• 巡回(更新チェックと類似サイト発見)
– 巡回アルゴリズムは,多くのソフトウェアを持っているコ
ミュニティサイトを重点的に(高頻度で)調べることができ
るようなものを考える.
今後の方向性指針
(2/2)
• データベースへの追加
– HTMLのタグを解析する,または文章をある程度理解する
などして,検索対象文書が存在するパターンを学習し,
データベースを強化していくことができるようにする.
発表のまとめ
• ソフトウェア検索の現状分析を行った.
–
–
–
–
登録型サービス
FTP検索サービス
一般のWWW検索エンジンによる検索
Agora,CodeHoundのアプローチ
• 今後の指針について議論した.
– Agoraのアプローチとフィルタリングの組み合わせ
– アーカイブ解析の工夫(LZHファイル)
– クローリング手法の検討