(57)【要約】【課題】様々箇所にあるウエブサイトにある半構造化情報を照会してそれを構造化する。【解決手段】語彙解析を使用してテキスト情報を含む半構造化情報に反復パターンがないか調べて求めるパターンを識別し、パターンを名前と位置によってネストされた構造体にカタログ化し、ネストされた構造体内のパターンを調べてリレーショナル・データベースのリレーショナル・スキーマのフィールドに対応する属性を識別し、ネストされた構造体内のパターンを調べてパターンを識別し、分解してネストされた構造体にカタログ化し、ネストされた構造体内のパターンを調べて他の半構造化情報へのリンクを識別し、検査してネストされた構造体にカタログ化し、該当するネストされた情報がすべてカタログ化されるまで上記を繰り返し、専用のプログラム・トランスレータが使用するように半構造化情報の正規表現を含む定義を得る。【選択図】図５
2008123547.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを使用して異なる半構造化情報源からの半構造化情報の照会と解釈を構造化する方法であって、
ａ）語彙解析を使用してテキスト情報を含む半構造化情報に反復パターンがないか調べ、求めるパターンを識別するステップと、
ｂ）先験的情報なしに、パターンを名前と位置によってネストされた構造体にカタログ化するステップと、
ｃ）ネストされた構造体内のパターンを調べてリレーショナル・データベースのリレーショナル・スキーマのフィールドに対応する属性を識別するステップと、
ｄ）ネストされた構造体内のパターンを調べてパターンを識別し、分解してネストされた構造体にカタログ化するステップと、
ｅ）ネストされた構造体内のパターンを調べて他の半構造化情報へのリンクを識別し、検査してネストされた構造体にカタログ化するステップと、
ｆ）該当するネストされた情報がすべてカタログ化されるまでステップ（ｃ）ないし（ｅ）を繰り返し、専用のプログラム・トランスレータが使用するように半構造化情報の正規表現を含む定義を得るステップと、
ｇ）リレーショナル・データベースのパーサを構築するために定義をプログラム・トランスレータに入力として供給するステップと
を含む方法。
【請求項２】
複数の異なる半構造化情報リソースにわたる単一の高水準構造化ユーザ照会に応答する方法であって、
特定の半構造化情報リソースのために半構造化情報の定義に使用するラッパーを、異なる半構造化情報リソースの１つ１つに供給するステップと、
ラッパーを介して複数の異なる半構造化情報リソースにユーザ照会を発行するステップと、
照会に応答してラッパーの１つ１つからタプルを受け取るステップと、
タプルを共通のリレーショナル・データベースに供給するステップと、
共通のリレーショナル・データベース上で照会を実行してユーザに結果を返すステップと
を含む方法。
【請求項３】
複数の異なる半構造化情報リソースにわたる単一の高水準構造化ユーザ照会に応答する方法であって、
特定の半構造化情報リソースのために半構造化情報の定義に使用するラッパーを、異なる半構造化情報リソースの１つ１つに供給するステップと、
タプルを収集するために、１組の事前選択されたロード照会をラッパーを介して複数の異なる半構造化情報リソースに対して発行するステップと、
照会に応答してラッパーの１つ１つからタプルを受け取るステップと、
タプルを供給し、共通のリレーショナル・データベースにタプルを記憶するステップと、
共通のリレーショナル・データベース上で単一のユーザ照会を実行してユーザに結果を返すステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる半構造化情報リソースからの構造化された情報検索および解釈に関する。本発明の１つの具体的な応用分野は、インターネットによって容易になった、世界規模の情報源にわたる公衆および半公衆のデータベースからの情報の取り出しである。  
【背景技術】
【０００２】
インターネットは、情報、アイデア、およびメッセージの世界的通信手段を提供するネットワークである。インターネットは長年にわたり大学などで使用されてきたが、最近、インターネットおよびインターネット上にある情報に対する関心が爆発的と言えるほど高まっている。ワールド・ワイド・ウェブ（または「ウェブ」）は、インターネットの人気増大のかなりの部分を担っており、それはおそらくウェブにアクセスするために容易に使用することができる使いやすいグラフィカル・ユーザ・インタフェース（「ＧＵＩ」）によるものであろう。
【０００３】
ワールド・ワイド・ウェブは、インターネットを介してハイパーテキスト文書をユーザが入手することができるようにする。ハイパーテキスト文書は書物のように情報を線状には提示せず、読者に他の場所へのリンクまたはポインタを提供し、それによってユーザが１つの場所から他の場所にジャンプすることができる。ウェブ上のハイパーテキスト文書はハイパーテキスト・マークアップ言語（「ＨＴＭＬ」）によって書かれる。
【０００４】
ワールド・ワイド・ウェブの人気が増大するに伴い、それによって提供される情報の量も増大している。したがって、ワールド・ワイド・ウェブ上にはユーザが探索する情報を含むサイトやページが多数ある。しかし、ウェブは興味ある情報を探索するための組込まれた機構を備えていない。探索機構がなかったとしたら、インターネットのサイトを見つけだすのは文字通り干し草の山で針を探すようなものであろう。しかし幸い、ユーザが比較的簡単なキーワード探索を行うことができるいくつかのウェブ・サイト（Ｙａｈｏｏ、Ａｌｔａ  Ｖｉｓｔａ、Ｅｘｃｉｔｅなど）がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
キーワード探索は多くの用途にとって十分であるが、他の多くの用途ではほとんど用を成さない。たとえば、就職口、売り家などに関する項目またはリストを複数含むウェブ・サイトは多数ある。キーワード探索は、多くの理由からこのようなサイトの探索には不十分である。キーワード探索では常に、そのキーワードとは一致するが求める情報ではない情報が見つけ出される。この問題は、探索パラメータを絞り込むことによって多少軽減されることがあるが、これには求める情報が見つけられないというリスクが伴う。さらに、サポートされている探索語では求める情報を特定することができない場合がある。たとえば、３年未満のコンピュータ・プログラミング経験を必要とする就職口リストを見つけるようにキーワード探索照会で指定することはできない。  
【０００６】
理想的には、複数のウェブ・サイトにある就職口リストのような情報を単一のリレーショナル・データベースとして示し、それによってリレーショナル・データベース照会を使用して求める情報を検索することができれば望ましいであろう。しかし、ウェブ上には就職口リストのような情報の構造体の標準はない。１つの解決策は、新聞、企業、またはその他の機関などの各ウェブ・サイトに対して、所定の形式の就職口リスト情報を提供させて、就職口リストを融合したものを作成することであろう。これは、別のサイト（たとえば就職バンク・サイト）が使用するように情報を絶えずフォーマットし直さなければならないため、十分な解決策ではないことがわかるであろう。  
【０００７】
他の解決策は、サイトから情報を取り出すラッパーを手作りすること（すなわちカスタム・プログラム）であろう。ラッパーは、ウェブ・サイト上の情報（たとえば就職口リスト）がリレーショナル・データベースのように見えるようにしたり、リレーショナル・データベースによってアクセス可能にしたりするプログラムまたはソフトウェア層である。したがって、ラッパーはどちらかと言えばウェブ・サイト固有のものであり、サイトにある半構造化情報の実際の形式を隠す。ラッパーを手作りすることには、きわめて手間と時間がかかり、それによってサイトのコストが大幅に増すと共に、新しいサイトを利用可能にするのが大幅に遅れるという欠点がある。さらに、手作りされたラッパーは、ウェブ・サイトの変更を考慮に入れるためにメンテナンスすることが難しい。
【課題を解決するための手段】
【０００８】
本発明は、異なる半構造化リソースにおいて半構造化情報がどのような構成になっているかを判断し、ラッパーを生成して情報を取り出し、構造化情報（たとえば構造化照会言語すなわちＳＱＬデータベースのタプル）を標準リレーショナル・データベース・エンジンに結合されたマッパに提供するシステムおよび方法である。特定の実施態様ではマッパの最上部に照会エージェントを設ける。さらに、本発明によると、各ラッパーが特定の情報源専用である複数のラッパーを使用して異なる半構造化リソース間で構造化高水準ユーザ照会を処理する。
【０００９】
一実施態様では、本発明は半構造化情報にアクセスするためのラッパーを生成する方法であって、半構造化情報を検査して属性を含む求めるパターンを識別するステップと、半構造化情報内の属性の場所を指定するパターンの正規表現を含む記述ファイルを生成するステップと、記述ファイルを使用して、リレーショナル・データベース・システムのタプルとして半構造化情報内の属性へのアクセスを提供するラッパーを生成するステップとを含む方法を提供する。ラッパーは、コンパイラまたはインタプリタによって記述ファイルから自動的に生成することができる。好ましい実施態様では、半構造化情報はウェブ・サイトにおけるウェブ・ページを表すＨＴＭＬ内にある。  
【００１０】
本発明の利点としては、文字通り数千個のウェブ・サイトからの情報を統合し、それらを単一の統一されたリレーショナル・データベースとして使用可能にする機能を備えることが含まれる。実際には、ウェブはユーザが構造化照会言語（「ＳＱＬ」）照会を行うことができる仮想リレーショナル・データベースになる。さらに、本発明は、この機能をきわめて高速な方式で実現し、拡張することができるようにすると同時に、アクセスされるウェブ・サイトの変更に容易に対応することができるようにする。
【発明を実施するための最良の形態】
【００１１】
本発明は、添付図面を参照しながら以下の詳細な説明を読めばよりよく理解できよう。
【００１２】
定義
半構造化情報  −  全体としては精密な構造を持たないが、半構造化情報内の各要素は半構造化情報内におけるその場所または周囲状況に基づく意味を持つ情報である。半構造化情報の形式は、正規表現、典型的にはネストされた正規表現によって表すことができる。
【００１３】
サイト  −  テキスト、フォームなどのブロックから成る関連性のある相互接続された集合を含む場所又はオブジェクトである。たとえば、ウェブ・サイトはテキストをウェブ・ページの形の半構造化情報として提示することができる。
【００１４】
エージェント  −  ユーザが見ることができる構成要素である。たとえば、エージェントには、ユーザのリレーショナル・データベース照会を受け入れ、照会の結果を表示するユーザ・インタフェースなどが含まれる。
【００１５】
ラッパー（またはサイト・プログラム）  −  サイト上の情報に対するリレーショナル・データベース・インタフェースを提供するソフトウェア層である。
【００１６】
マッパ  −  異なるサイトの語彙を、エージェントにわかる語彙に翻訳する役割を果たす構成要素。
【００１７】
詳細な説明
以下の詳細な説明では、本発明についてワールド・ワイド・ウェブ上で動作する好ましい実施形態を参照しながら説明する。具体的には、ウェブ上での本発明の具体的な応用例を示す例について説明する。しかし、本発明は特定の情報源には限定されず、本明細書に記載されている例にも限定されない。したがって、以下の実施形態の説明は、例示的なものに過ぎず、限定的なものではない。
【００１８】
図１に、本発明の実施形態のソフトウェアを実行するために使用するコンピュータ・システムの例を示す。図１には、モニタ３と、画面５と、筐体７と、キーボード９と、マウス１１とを備えるコンピュータ・システム１が図示されている。マウス１１は、マウス・ボタン１３のような１つまたは複数のボタンを有することができる。筐体７には、ＣＤ−ＲＯＭドライブ１５と、システム・メモリと、ハード・ドライブ（図２参照）とが収容され、これらは本発明を実施するコード、本発明と共に使用するデータなどを含むソフトウェア・プログラムの記憶と取り出しのために使用することができる。コンピュータ可読記憶媒体の例としてＣＤ−ＲＯＭ１７が図示されているが、フロッピィ・ディスク、テープ、フラッシュ・メモリ・システム・メモリ、ハード・ドライブなどの他のコンピュータ可読記憶媒体も使用することができる。筐体７には、中央処理装置、システム・メモリ・ハード・ディスクなどの周知のコンピュータ構成要素（図示せず）も収容されている。
【００１９】
図２に、本発明の実施形態のソフトウェアを実行するために使用するコンピュータ・システム１のブロック図を示す。図１に示すように、コンピュータ・システム１はモニタ３とキーボード９を備える。コンピュータ・システム１は、中央処理装置１０２、システム・メモリ１０４、入出力コントローラ１０６、ディスプレイ・アダプタ１０８、取外し可能ディスク１１２（たとえばＣＤ−ＲＯＭドライブ）、固定ディスク１１６（たとえばハード・ドライブ）、ネットワーク・インタフェース１１８、およびスピーカ１２０などのサブシステムをさらに備える。本発明と共に使用するのに適したその他のコンピュータ・システムは、追加のサブシステムまたはこれより少ないサブシステムを備えることもできる。たとえば、他のコンピュータ・システムは、複数のプロセッサ１０２（すなわちマルチプロセッサ・システム）やキャッシュ・メモリを備えることもできる。
【００２０】
１１２などの矢印は、コンピュータ・システム１のシステム・バス・アーキテクチャを表す。しかし、これらの矢印は、サブシステムをリンクする役割を果たす任意の相互接続方式の例示に過ぎない。たとえば、ローカル・バスを使用して、中央処理装置をシステム・メモリとディスプレイ・アダプタとに接続することができる。図２に示すコンピュータ・システム１は本発明と共に使用するのに適したコンピュータ・システムの一例にすぎない。当業者なら、本発明と共に使用するのに適した他のサブシステム構成も容易にわかるであろう。
【００２１】
本発明の好ましい実施形態は、インターネットのウェブ・サイト上の半構造化情報（たとえばウェブ・ページ）へのアクセスを提供する。図３に、インターネットを介してネットワーク化された複数のコンピュータの図を示す。コンピュータ２０２、２０４、および２０６は、世界中の教育、研究、および商業コンピュータ・サイトを結ぶ一連の高速通信リンクであるインターネット２０８によって相互接続されている。インターネット・コンピュータは、通信プロトコルとして伝送制御プロトコル／インターネット・プロトコル（「ＴＣＰ／ＩＰ」）を使用する。
【００２２】
図４は、ラッパーを生成するプロセスを示す高水準フローチャートである。ステップ２５２で、（たとえば語彙解析を使用して）半構造化情報を調べ、属性を含む半構造化情報内の求めるパターンを識別する。属性は、典型的には半構造化情報のテキスト内の１つまたは複数の語である。たとえば、「Ｐａｌｏ  Ａｌｔｏ（パロアルト）」という語が、半構造化情報内の求める属性であり、後でリレーショナル・データベース・スキーマの「ｃｉｔｙ（市）」フィールドに関連づけられることになる。属性を処理して、追加の半構造化情報を得ることもできる。したがって、属性はウェブ・ページへのリンク、または情報のストリングを出力する関数に対する引数とすることができる。好ましい実施形態では、半構造化情報はウェブ・ページを表すＨＴＭＬである。
【００２３】
ステップ２５４で、パターンの正規表現を含む記述ファイルを生成する。この記述ファイルは、半構造化情報内の属性に対するマップとして機能する正規表現を含む。記述ファイルは、典型的にはハード・ドライブやメモリのようなコンピュータ可読記憶媒体に記憶される。ステップ２５２および２５４は典型的にはユーザによって行われるが、これらのステップはプログラム式コンピュータ・システムが実行するように自動化することもできる。
【００２４】
ステップ２５６で、記述ファイルを使用してラッパーを生成する。このラッパーは、リレーショナル・データベース・システムのタプルとして半構造化情報内の属性へのアクセスを提供する。ラッパーは、記述ファイルをコンパイルするかまたは記述ファイルをインタプリタへの入力として使用することによって生成することができる。
【００２５】
以下で詳述するように、特定の半構造化情報のラッパーが生成された後は、ユーザはリレーショナル・データベース照会（たとえばＳＱＬ照会）を生成することができ、この照会はラッパーが提供するタプルによって満足される。ラッパーは、半構造化情報から求める属性を取り出し、タプルをリレーショナル・データベース・システムに供給することができる。したがって、リレーショナル・データベース・システムは、半構造化情報をラッパーの結果としての１つまたは複数のデータベース・テーブルとして見る。
【００２６】
当然ながら、上記の例は、読者の理解を助けることを意図した本発明のきわめて単純な実施形態である。一般には、異なる半構造化情報に対応する複数のラッパーが存在することになる。さらに、ラッパーがアクセスした半構造化情報内の属性をリレーショナル・データベース・スキーマのフィールドに変換する１つまたは複数のマッパがある。
【００２７】
図５は、異なる半構造化情報源からの半構造化情報にアクセスするためのラッパーを生成するプロセスを示すフローチャートである。ステップ３０２で、語彙解析を使用して、求める反復パターンがないか半構造化情報を調べる。求める反復パターンには、１つまたは複数の属性が含まれる。
【００２８】
ステップ３０４で、半構造化情報内のパターンのオカレンスを、先験的情報なしで名前と位置によってネストされた構造体にカタログ化する。先験的情報なしでカタログ化することは、パターンをカタログ化する前にユーザが事前情報を持っている必要も事前プログラミングを行う必要もないことを意味する。一実施形態では、ネストされた構造体は半構造化情報内の属性のネスト化を表すグラフである。典型的には、ネストされた構造体の属性の多くはリレーショナル・データベース・スキーマのフィールドに対応する。
【００２９】
ステップ３０６で、ネストされた構造体内のパターンを調べて、リレーショナル・データベース・スキーマのフィールドに対応する属性を識別する。これらの属性が識別された後、半構造化情報内の属性の場所を指定する正規表現を生成する。この正規化表現は、それらの属性が識別されたら直ちに生成することも、半構造化情報の定義をファイルに書き込むときに生成することもできる。したがって、正規表現の生成は特定の時点で行う必要はない。
【００３０】
ステップ３０７で、ネストされた構造体内のパターンを調べてさらにカタログ化することができるパターンを識別する。求めるパターンによっては、他の求めるパターンにさらに分解することができる場合もある。識別されたそれらのパターンの１つ１つを、それを構成するより小さなパターンに分解する。次に、これらのより小さなパターンをさらに調べるためにネストされた構造体にカタログ化する。
【００３１】
ステップ３０８で、ネストされた構造体内のパターンを調べて、他の半構造化情報へのリンクを識別する。これらのリンクは、求めるパターンと属性を含んでいる可能性のある他の半構造化情報を指す。リンクをたどって、他の半構造化情報に求めるパターンがないか調べ、次にそのパターンをネストされた構造体にカタログ化する。典型的には、リンクはウェブ・ページのユニフォーム・リソース・ロケータ（「ＵＲＬ」）アドレスである。しかし、リンクは、実行された場合に次に調べる半構造化情報出力を生成するプログラムを指すこともできる。
【００３２】
次にステップ３１０で、他に調べるべきネストされた情報がないかどうか判断する。ネストされた情報がまだある場合、ステップ３０６でネストされた構造体内のネストされた情報を調べてリレーショナル・データベース・スキーマのフィールドに対応する属性を識別する。ステップ３０６、３０７、３０８は特定の順序で図示されているが、これらのステップはこのフローチャート内の他の多くのステップと同様に、図示されている順序で行う必要はない。したがって、フローチャートに示されている順序は、一実施形態を例示するために過ぎず、本発明を限定するものではない。
【００３３】
調べるべきネストされた情報がそれ以上ない場合、ステップ３１２で半構造化情報の定義がプログラム・トランスレータに供給または入力され、パーサが構築される。半構造化情報の定義には、リレーショナル・データベース・スキーマのフィールドに対応する属性を含む正規表現が含まれる。この正規表現は、リレーショナル・データベース・スキーマに対応する半構造化情報内の属性の場所を指定する。したがって、ラッパーは、属性の半構造化情報を構文解析することができるパーサを含むことになり、それによってラッパーは属性をリレーショナル・データベース・システムにタプルとして提示することができる。プログラム・トランスレータは、コンパイラまたはインタプリタとすることができる。
【００３４】
一実施形態では、コンパイラが、定義ファイルを入力として受け取り、半構造化情報からリレーショナル・データベース・スキーマのフィールドに対応する属性を取り出してタプルを形成するプログラム（すなわちパーサ）を生成することによって、パーサを生成する。他の実施形態では、インタプリタが、半構造化情報の定義と半構造化情報を入力として受け取り、半構造化情報からリレーショナル・スキーマのフィールドに対応する属性を取り出してタプルを形成することによって、パーサを生成する。
【００３５】
ここで一例を検討すればわかりやすいであろう。図６に、複数の賃貸不動産物件を含むウェブ・サイトのサンプルＨＴＭＬページを示す。このウェブ・サイトでは賃貸用の２件のコンドミニアムと２件のアパートが記載されていることが容易にわかる。このウェブ・サイトはきわめて単純であるが、本発明によりリレーショナル・データベースを介してアクセス可能な一種の半構造化情報の好例である。
【００３６】
このＨＴＭＬページを走査して属性を含む求める反復パターンを調べる。求めるこれらの反復パターンを識別し、図７に示すグラフまたはネストされた構造体にカタログする。ルート・ノード４０２は、このウェブ・サイトのＵＲＬアドレスの表示である。ルート・ノードの下には、図６のウェブ・サイト内の求めるパターンを示すその他のノードがある。ノード４０３は、このウェブ・サイトがカテゴリ・ブロックを示すことを示している。ノード４０４および４０６によって示されているように、このカテゴリ・ブロックは「ｃａｔｅｇｏｒｙ（カテゴリ）」という属性の後にリスト・ブロックが続いた１つまたは複数の表現を含む。「ｃａｔｅｇｏｒｙ（カテゴリ）」という属性は賃貸のタイプ（たとえばコンドミニアムかアパートか）である。
【００３７】
リスト・ブロックは、ノード４０８によって示されているように「テキスト」という１つまたは複数の属性を含む。「ｔｅｘｔ（テキスト）」属性は、賃貸単位のリストのテキストである。図のように、このテキストはノード４１０、４１２、４１４、および４１６によって示されているように、「ｃｉｔｙ（市）」、「ｒｅｎｔ（賃貸料）」、「ｂｅｄｒｏｏｍｓ（寝室数）」、および「ｂａｔｈｒｏｏｍｓ（浴室数）」を含むことができる。したがって、このグラフはウェブ・サイト内の属性の場所を示す。以下のように、このグラフを使用して正規表現を含む記述ファイルを生成することができる。
【００３８】
図８に、図６のＨＴＭＬページをマッピングするために生成することができる記述ファイルを示す。最初に、この記述ファイルには変数定義がある。したがって、変数＄ｃａｔｅｇｏｒｙ、＄ｌｉｓｔｉｎｇｓ、＄ｔｅｘｔ、および＄ｃｉｔｙは文字列（すなわち１個または複数個の文字）である。また、変数＄ｒｅｎｔ、＄ｂｅｄｒｏｏｍｓ、および＄ｂａｔｈｒｏｏｍｓは数値である。これらの変数は、ウェブ・サイト内の求める属性に対応し、ウェブ・サイトのグラフ内の各非ルート・ノードにも対応する。
【００３９】
変数定義の後には、半構造化情報またはウェブ・サイトの定義がある。図のように、ウェブ・サイト・アドレスは「ＵＲＬ」タイプのアドレスである。ウェブ・サイト自体は以下の正規表現によって定義される。
"<h2>"$category"</h2>"$listings #LOOKAHEAD ("<h2>"|"</body>")
この正規表現は、属性「ｃａｔｅｇｏｒｙ（カテゴリ）」に対応する変数＄ｃａｔｅｇｏｒｙがＨＴＭＬタグ＜ｈ２＞と＜／ｈ２＞の間に見つかることを意味している。たとえば、図６のＨＴＭＬページの３行目に、この２つのタグの間に「Ｃｏｎｄｏｓ」が示されている。
【００４０】
上記の正規化表現は、ＨＴＭＬタグ＜／ｈ２＞の後に変数＄ｌｉｓｔｉｎｇｓがあり、＜ｈ２＞または＜／ｂｏｄｙ＞に達するまでそれが続くことも示している。変数＄ｌｉｓｔｉｎｇｓは、図７の４０６のリスト・ブロックに対応する。キーワード「＃ＬＯＯＫＡＨＥＡＤ」は、変数＄ｌｉｓｔｉｎｇｓを区切るためにこれらのタグを探索しなければならないが、これらのタグはさらに解析するために残っていなければならないことを示している。このウェブ・ページには、各賃貸リストについて１つずつ、この正規表現と一致する半構造化情報の４つの反復が含まれているのがわかる。
【００４１】
図８を参照すると、変数＄ｌｉｓｔｉｎｇｓは「ＴＥＸＴ」タイプ（これはデータ・タイプであり、属性「ｔｅｘｔ（テキスト）」や変数＄ｔｅｘｔと混同してはならない）であり、以下の正規表現によって表される。
"<p>" $text #LOOKAHEAD ("<p>" | "<hr>")
この正規表現は、変数＄ｌｉｓｔｉｎｇｓがタグ＜ｐ＞とタグ＜ｐ＞または＜ｈｒ＞との間に変数＄ｔｅｘｔ（属性「ｔｅｘｔ」に対応する）を含むことを示している。
変数＄ｔｅｘｔは「ＴＥＸＴ」タイプであり、以下の正規化表現によって表される。
”＜ｂ＞”＄ｃｉｔｙ”＜／ｂ＞”
”＄”＄ｒｅｎｔ
＄ｂｅｄｒｏｏｍｓ”ＢＲ”
＄ｂａｔｈｒｏｏｍｓ”ＢＡ”
上記の正規表現は、変数＄ｔｅｘｔが変数＄ｃｉｔｙ、＄ｒｅｎｔ、＄ｂｅｄｒｏｏｍｓ、および＄ｂａｔｈｒｏｏｍｓのすべてを含むことも１つも含まないこともできることを示している。これらの変数は、それぞれ属性「ｃｉｔｙ（市）」、「ｒｅｎｔ（賃貸料）」、「ｂｅｄｒｏｏｍｓ（寝室数）」、および「ｂａｔｈｒｏｏｍｓ（浴室数）」に対応する。正規化表現によって示されているように変数＄ｃｉｔｙは＜ｂ＞と＜／ｂ＞の間にくる。変数＄ｒｅｎｔがドル符号の後に続く。また、変数＄ｂｅｄｒｏｏｍｓおよび＄ｂａｔｈｒｏｏｍｓがそれぞれ語「ＢＲ」および「ＢＡ」の前にくる。この例では、データ源として単一のＨＴＭＬページだけが示されているが、データ源は一般に情報リポジトリとすることができ、場合によっては異なる情報の間のリンクを備える。
【００４２】
この記述ファイルを専用プログラム・トランスレータが使用してラッパーを生成することができる。前述のように、記述ファイルには１組の正規化表現と、各正規表現についてその名前（明示的）と、ネストされた構造体内の位置と、ネストされた構造体の対応する属性とを含む。ラッパーは、属性をリレーショナル・データベース・システムがタプルとして使用することができるようにする。
【００４３】
図９に、図７の記述ファイルから生成されたラッパーによって、共通リレーショナル・データ・ベース・システムが使用することができるようにされたタプルを示す。説明を簡単にするために、この５つの属性はリレーショナル・データベースの５つのフィールドに直接対応している。しかし、実際には、属性はマッパによって変換する必要がある。たとえば、マッパは属性「ｃａｔｅｇｏｒｙ（カテゴリ）」を「ｒｅｎｔａｌ＿ｔｙｐｅ」という名前のフィールドに関連づける必要がある。さらに、マッパは賃貸料を月額から年額に変換しなければならない場合がある。マッパによって行われる変換は、リレーショナル・データベースを使用することもできる。
【００４４】
図のように、ラッパーは４つのタプルをリレーショナル・データベース・システムが使用できるようにする。タプルのうちの２つはコンドミニアムを記述し、もう２つのタプルはアパートを記述する。ウェブ・サイトに情報がなかったフィールドは空白になっている。場合によっては、属性の単一のグループ化の結果として複数のリレーショナル・タプルができることがある。
【００４５】
これらのタプルをユーザがリレーショナル・データベース・システムを介して使用することができるようにすることによって、ユーザはキーワード探索では使用することができない照会を行うことができる。例えば、ユーザは月額１１００ドル未満のすべての賃貸物件を求めることができる。さらに、ウェブ・サイトの半構造化情報をリレーショナル・データベースで使用可能にすることができる。したがって、この情報を他のリレーショナル情報と組み合わせることができる。たとえば、市名、人口、収入中央値、住宅価格中央値など、市に関する情報を持つウェブ・サイトがあるとする。本発明により、ラッパーを使用してその半構造化情報を使用可能にし、それによって、月額１１００ドル未満であって人口が６５，０００人未満の市にあるすべての賃貸物件をユーザが求めることができるようにすることができる。リレーショナル・データベース・システムで標準になっている通り、この市フィールドを使用してこの情報を一緒にリンクし、この照会が満足されることになる。
【００４６】
図７のノード４０８にある属性「ｔｅｘｔ（テキスト）」は、図９のタプルには示されていない。これは、半構造化情報内のすべての属性がリレーショナル・データベース・スキーマのフィールドに対応していなくてもよいことを例示している。当然ながら、すべての属性を使用可能にして、それによってリレーショナル・データベースが必要な属性を使用するようにすることもできる。
【００４７】
上記の例では、２つのウェブ・サイトからのリレーショナル・データを使用しているが、本発明は数百または数千のウェブ・サイトがユーザにとって１つの仮想リレーショナル・データベースとして見えるようにすることができることが容易にわかるであろう。また、この仮想リレーショナル・データベースを、ローカル・コンピュータ・システム上に記憶されている他のリレーショナル・データベースや、遠隔の他のネットワーク・コンピュータ・システム上にある他のリレーショナル・データベースと組み合わせることもできる。したがって、上述の市に関する情報はコンピュータ・システム上にローカルに記憶されているリレーショナル・データベースに入っていても構わなかったことになる。
【００４８】
図１０に、データウェアハウスのためにデータベース・ローダを使用する本発明の一実施形態のブロック図を示す。複数のラッパーまたはサイト・プログラム５０４を介して複数の情報源５０２（たとえばハイパーテキスト・ネットワークを形成する複数のウェブ・サイト）にアクセスする。ラッパーによって供給されたタプルは、単一のマッパ５０６を介してリレーショナル・データベース・システムのスキーマ（またはフィールド名）と合致するように変換される。１つのマッパが図示されているが、複数のマッパ（たとえば各ラッパーについて１つのマッパ）を使用することもできる。
【００４９】
データウェアハウスでは、データベース・ローダ５０８が情報源から求めるすべてのデータを取り出し、それをリレーショナル・データベース５１０にロードする。したがって、データはリレーショナル・データベース５１０に事前にロードされているため、ユーザ５１２が照会を出した場合、ユーザの照会はウェブを介して送られて複数のウェブ・サイトにアクセスすることによっては満たされない。したがって、ユーザの照会はリレーショナル・データベースによって満たされる。これには、ウェブを介してリアルタイムで照会に応じるよりも格段に高速であるという明らかな利点がある。
【００５０】
データウェアハウスを実現するためには、求めるすべての可能な属性を知っていることが役に立つ。たとえば、データベース・ローダが「パロアルト」が市であることを知らなかった場合、状況によっては、データベース・ローダがリレーショナル・データベースに事前ロードするタプルが市フィールドに「パロアルト」を含まないことになる。これは図６に示すウェブ・ページでは起こらない（ｃｉｔｙ（市）が常にタグ＜ｈ２＞と＜／ｈ２＞によって囲まれているため）が、市を常にそれほど容易には識別することができないある種のウェブ・サイトではこれが起こる可能性がある。
【００５１】
図１１に、動的エージェントを使用する本発明の他の実施形態を示す。複数のラッパー５５４を介して複数の情報源５５２にアクセスする。ラッパーによって供給されたタプルはマッパ５５６を介してリレーショナル・データベース・システムのスキーマに合致するように変換される。図１０とは異なり、ユーザ５５８は動的エージェント５６０に照会する。動的エージェントは情報源の情報にアクセスし、その結果のデータがリレーショナル・データベース５６２に記憶またはキャッシュされる。リレーショナル・データベースには、情報源からのリレーショナル・データと共に他のリレーショナル・データも入れることができる。
【００５２】
動的エージェントがユーザから照会を受け取ると、エージェントはリレーショナル・データベース内にその照会に応じるのに十分なデータがすでに入っているかどうかを判断する。さらに、エージェントは、（たとえばタイムスタンプを使用して）リレーショナル・データベース内のデータが十分に最新であるかどうかを判断することができる。追加のデータまたは情報が必要な場合、エージェントはマッパに照会を出し、さらにマッパはラッパーを介して適切な情報源に照会を出す。
【００５３】
この手法は常にデータウェアハウス手法ほど高速であるとは限らないこともあるが、全範囲の属性を事前に知っている必要がないという利点がある。たとえば、ユーザが「ｃｉｔｙ＝Ｐａｌｏ  Ａｌｔｏ」を含む照会を出した後は、動的エージェントは「Ｐａｌｏ  Ａｌｔｏ」が市であることがわかり、それに応じて情報源を探索することができる。他の実施形態では、この２つの手法を合わせた手法を使用し、それによって、ある種のデータがリレーショナル・データベースに事前ロードされ、他のデータはリアルタイムで取り出されるようにする。このような混成手法によって両方の手法の利点を得ることができる。
【００５４】
以上、本発明について特定の実施形態を参照しながら説明した。当業者には他の実施形態も明らかであろう。したがって、本発明は特許請求の範囲の記載以外には限定されない。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施形態のソフトウェアを実行するために使用するコンピュータ・システムの例を示す図である。
【図２】本発明の実施形態のソフトウェアを実行するために使用する典型的なコンピュータ・システムのシステム・ブロック図である。
【図３】インターネットを介してネットワーク化された複数のコンピュータを示す図である。
【図４】ラッパーを生成するプロセスの高水準フローチャートである。
【図５】半構造化情報にアクセスするためのラッパーを生成するプロセスのフローチャートである。
【図６】ウェブ・サイトのＨＴＭＬページのサンプルを示す図である。
【図７】図６のＨＴＭＬページの、対象となる属性を含むグラフである。
【図８】図６のＨＴＭＬページをマッピングするために生成することができる記述ファイルを示す図である。
【図９】図７の記述ファイルから生成されたラッパーによって、リレーショナル・データベース・システムに使用することができるようにされたタプルを示す図である。
【図１０】データウェアハウス化のためにデータベース・ローダを使用する本発明の一実施形態を示すブロック図である。
【図１１】動的エージェントを使用する本発明の他の実施形態を示すブロック図である。
【符号の説明】
【００５６】
１  コンピュータ・システム
３  モニタ
５  画面
７  筐体
９  キーボード
１５  ＣＤ−ＲＯＭドライブ
１０８  中央処理装置
１１２  取外し可能ディスク
１１６  固定ディスク
１１８  ネットワーク・インタフェース
１２０  スピーカ
２０２  コンピュータ
２０８  インターネット
【図１】
2008123547.tif 000003
【図２】
2008123547.tif 000004
【図３】
2008123547.tif 000005
【図４】
2008123547.tif 000006
【図５】
2008123547.tif 000007
【図６】
2008123547.tif 000008
【図７】
2008123547.tif 000009
【図８】
2008123547.tif 000010
【図９】
2008123547.tif 000011
【図１０】
2008123547.tif 000012
【図１１】
2008123547.tif 000013