(57)【要約】【課題】データベースおよびアプリケーション文書をクローリングするためのシステム、方法、およびコンピュータ読み取り可能な記録媒体を提供すること。【解決手段】検索エンジンが、様々なデータベースおよびアプリケーション文書（たとえば、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｅｘｃｅｌ文書）と通信するための固有のプロトコルを知らなくても、情報を求めて様々なデータベースおよびアプリケーション文書を検索することを容易にするシステムである。クローラがデータベースに接続するために用いなければならないであろうプロトコルは多数あるが、このシステムは、データベースおよびアプリケーション文書にある情報にアクセスする方法を統一する統一アプリケーションプログラミングインターフェースを含む。【選択図】図２
2006277732.tif 000002
【特許請求の範囲】
【請求項１】
情報を求めて多種多様なデータベースを探索するシステムであって、
探索される一連のデータベースと、返される情報に制約を加えるフィルタとを列挙する、コンピュータ読み取り可能媒体に格納された統一データ構造体と、
前記一連のデータベースと通信するためのプロトコル群を１つのプロトコルに変換する、別のコンピュータ読み取り可能媒体に格納された統一アプリケーションプログラミングインターフェースと、
前記１つのプロトコルを用いて、前記統一データ構造体で記述されたメソッドを呼び出し、前記一連のデータベースの各データベースに固有のプロトコルを知ることなく、所望の情報を求めて前記一連のデータベースを探索するクローラ（ｃｒａｗｌｅｒ）と
を備えることを特徴とするシステム。
【請求項２】
前記統一データ構造体は、システムの下に１つまたは複数のエンティティを含み、各システムは、前記一連のデータベースの中のデータベースを含み、各エンティティは、前記一連のデータベースの中の１つまたは複数のデータベースに存在する情報に構造を与えることを特徴とする請求項１に記載のシステム。
【請求項３】
前記統一データ構造体は、エンティティの下に１つまたは複数のメソッドを含み、各メソッドは、前記クローラが呼び出され、および所望の情報を求めてデータベース内を探索することが可能になるように、前記統一データ構造体によって記述可能であることを特徴とする請求項２に記載のシステム。
【請求項４】
前記統一データ構造体は、メソッドの下に１つまたは複数のパラメータを含み、１つまたは複数のパラメータは、返される情報に制約を加えるために前記フィルタによって注釈を付けられる（ａｎｎｏｔａｔｅ）ことを特徴とする請求項３に記載のシステム。
【請求項５】
前記フィルタは、特定の日付以降に修正された情報をフィルタリングするフィルタを含むことを特徴とする請求項４に記載のシステム。
【請求項６】
情報を求めて多種多様なデータベースをクローリングする（ｃｒａｗｌ）プロセスを強化するデータ構造体を格納するコンピュータ読み取り可能な記録媒体であって、前記データ構造体が、
クローラによって探索されるデータベースを示すシステムフィールドと、前記データベースに格納されている各情報に与えられる意味を示すエンティティフィールドと、前記データベース内の前記エンティティフィールドのインスタンスを見つけるための呼び出し可能なロジック部分を示すメソッドと、値で埋められる（ｐｏｐｕｌａｔｅ）変数を示すパラメータフィールドと、前記メソッドの呼び出しによって返される情報に制約を加える注釈を示すフィルタフィールドとを備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項７】
顧客、注文番号、および郵便番号からなる群から選択される情報のカテゴリを表す構造体を作成するために前記エンティティフィルタのインスタンス化をさらに備えることを特徴とする請求項６に記載のコンピュータ読み取り可能な記録媒体。
【請求項８】
前記クローラによって探索されるデータベースにおいて特定の並びを見つけるメソッドを作成するための前記メソッドフィールドのインスタンス化をさらに備えることを特徴とする請求項６に記載のコンピュータ読み取り可能な記録媒体。
【請求項９】
前記クローラによって探索されるデータベースにおいて複数の並びを見つけるメソッドを作成するために、前記メソッドフィールドのインスタンス化をさらに備えることを特徴とする請求項６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１０】
特定の日付以降に修正された情報をフィルタリングするフィルタを作成するための前記フィルタフィールドのインスタンス化をさらに備えることを特徴とする請求項６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１１】
所望の情報を求めてデータベースおよびアプリケーション文書を探索する、コンピュータに実装される方法であって、
統一データ構造体にアクセスし、１つまたは複数のフィルタを有するファインダメソッドを呼び出して各データベース下の各エンティティを探索することによって、所望の情報を求めてクローリングすることであって、各フィルタが、返される情報に制約を与えることと、
ユーザによってハイパーリンクが選択された場合に選択内容を受け取ることであって、前記ハイパーリンクは、ある識別子に関連付けられており、１つまたは複数のデータベースに存在する、前記識別子に関連付けられたエンティティに関係する情報を取得することと
を備えることを特徴とする方法。
【請求項１２】
クローリングされる１つまたは複数のデータベースと、各データベースの下のエンティティと、各エンティティの下のメソッドと、各メソッドの下のパラメータと、前記パラメータに関連付けられたフィルタとを列挙するための、クローリング動作に先立って前記統一データ構造体の内容を埋める動作をさらに備えることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記データベース内のキーフィールドにインデックスを作成することをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
統一アプリケーションプログラミングインターフェースによる前記メソッドの呼び出しを、データベースに固有のアプリケーションプログラミングインターフェースの呼び出しに変換することをさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１５】
１つまたは複数のデータベースで見つかった情報を、前記メソッドの呼び出しに関連付けられたフィルタに適合するようにフィルタリングすることをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
所望の情報を求めてデータベースおよびアプリケーション文書を探索する、コンピュータに実装される方法を実装するための命令を格納するコンピュータ読み取り可能な記録媒体であって、前記方法は、
統一データ構造体にアクセスし、１つまたは複数のフィルタを有するファインダメソッドを呼び出して各データベース下の各エンティティを探索することによって、所望の情報を求めてクローリングすることであって、各フィルタが、返される情報に制約を与えることと、
ユーザによってハイパーリンクが選択された場合に選択内容を受け取ることであって、前記ハイパーリンクは、ある識別子に関連付けられており、１つまたは複数のデータベースに存在する、前記識別子に関連付けられたエンティティに関係する情報を取得することと
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１７】
クローリングされる１つまたは複数のデータベースと、各データベースの下のエンティティと、各エンティティの下のメソッドと、各メソッドの下のパラメータと、前記パラメータに関連付けられたフィルタとを列挙するために、クローリング動作に先立って前記統一データ構造体の内容を埋める動作をさらに備えることを特徴とする請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記データベース内のキーフィールドにインデックスを作成することをさらに備えることを特徴とする請求項１７に記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
統一アプリケーションプログラミングインターフェースによる前記メソッドの呼び出しを、データベースに固有のアプリケーションプログラミングインターフェースの呼び出しに変換することをさらに備えることを特徴とする請求項１８に記載のコンピュータ読み取り可能な記録媒体。
【請求項２０】
１つまたは複数のデータベースで見つかった情報を、前記メソッドの呼び出しに関連付けられたフィルタに適合するようにフィルタリングすることをさらに備えることを特徴とする請求項１９に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主に検索に関し、より詳細には、検索エンジンによるキーワード一致検索を強化するために、アプリケーション文書やデータベースなどの多種多様な情報ソースをクローリングすることに関する。
【背景技術】
【０００２】
インターネット１０４は、ＴＣＰ／ＩＰプロトコル群を用いて相互通信を行うネットワークおよびゲートウェイの、世界中にまたがる集合体である。インターネット１０４の心臓部は、データやメッセージをルーティングする、商用、政府系、教育機関系、およびその他の何千ものコンピュータシステムで構成される主要なノードまたはホストコンピュータを結ぶ高速データ通信回線のバックボーンである。インターネット１０４の全体を危険にさらしたり、インターネット１０４上の通信を停止させたりすることなく、インターネット１０４の１つまたは複数のノードをオフラインにすることが可能であるが、これは、インターネット１０４を制御しているのが１つのコンピュータやネットワークではないためである。インターネット１０４の起源は、ＡＲＰＡＮＥＴという分散ネットワークであり、これは、米国の国防総省が１９６９年に、核攻撃を受けても通信が持続されることを目的として創設したものである。現在では、インターネット１０４は、電子メールやワールドワイドウェブなどの一連のサービスをユーザに提供している。
【０００３】
世界中のＨＴＴＰサーバに、相互にリンクされたハイパーテキスト文書１０６の膨大な集合が存在している。ワールドワイドウェブ（Ｗｅｂページ）を含むこれらの文書は、ＨＴＭＬ（ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）で書かれ、ファイルにアクセス可能とする手段として特定のマシンおよびパス名を指定するＵＲＬ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ）で識別され、ＨＴＴＰ（ｈｙｐｅｒｔｅｘｔ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）によってサーバからエンドユーザに送信される。これらのＷｅｂページは、検索エンジン１０２による検索が可能である。検索エンジン１０２は、利用可能なＷｅｂページのリストを収集し、それらのリストを、ユーザがキーワードで検索可能なデータベースに格納する。検索エンジンの古い例として、ＬｙｃｏｓやＥｘｃｉｔｅがある。最近の検索エンジンの例としては、ＧｏｏｇｌｅやＡ９がある。
【０００４】
インターネット１０４においてＷｅｂページの検索が容易であるのは、それらの多くがＨＴＭＬという共通言語で書かれ、ＵＲＬという合意された指定方法によってアクセスが可能であり、ＨＴＴＰという共通プロトコルによって通信が可能だからである。イントラネット１０８での検索には、インターネット１０４では一般に見られない問題がある。イントラネット１０８は、ＴＣＰ／ＩＰなどのインターネットプロトコルに基づくプライベートネットワークであるが、会社や団体の内部の情報管理のために設計される。その用途には、文書配布、ソフトウェア配布、データベースへのアクセス、トレーニングなどのサービスが含まれる。イントラネット１０８がそう呼ばれているのは、ワールドワイドウェブサイトに似ていて、類似技術をベースにしているからであるが、その一方で、厳格に組織内部用であって、インターネットにはまったく接続されない。イントラネット１０８の内部で利用可能になっているＷｅｂページは、従来の検索エンジン１０２による検索が可能である。一般にそうであるように、文書１１２など、イントラネット１０８に接続されている多くの文書は、ハイパーテキストなどの共通言語ではなく、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｏｒｄ、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｅｘｃｅｌなど、独自色の強いフォーマットで形成されている。検索エンジン１０２などの従来の検索エンジンは、ハイパーテキストなどの共通言語で形成されていない文書１１２の中の情報を検索することができない。
【０００５】
データベース１１０などのデータベースを検索する場合にも同様の問題が生じる。データベースでは、データは、Ｗｅｂページなどの文書には関連付けられていない。しかし、データベース１１０には、所望の情報が格納されており、それらはイントラネット１０８のユーザに対して公開されなければならない（ｅｘｐｏｓｅ）。しかしながら、データベース１１０は、検索用としてよく整理された構造になっていない。データベース１１０の検索に関する別の問題は、データベース１１０の検索に用いることが可能なプロトコルが多いことである。たとえば、検索エンジン１０２は、照会言語を用いてデータにアクセスすることが可能である。しかしながら、一般にそうであるように、データベース１１０などのデータベースは、直接にはアクセスされず、検索エンジン１０２がアプリケーションプログラミングインターフェースの様々なセットを介してアクセスしなければならない。検索エンジン１０２が１つのプロトコル（ＨＴＴＰ）だけを知っていればＷｅｂページと通信してデータを抽出することが可能であるインターネット１０４とは異なり、イントラネット１０８を検索する場合は、検索エンジン１０２は、データベース１１０などのデータベースやアプリケーション文書１１２から情報を抽出するために適切であることも適切でないこともある複数のプロトコルを知っていなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これらの問題や他の問題について、上記でイントラネット検索の文脈で説明してきたが、他のデータベース検索や文書検索の場合も、同一でなくとも類似の、イントラネットと関連することの多い異機種環境の問題がある。ユーザのイントラネット照会に効率よく応えなければならないという問題を解決しなければ、最後には、検索エンジン１０２は、格納されている情報を再生できる所望のコンピュータ活用を可能にするものとしてユーザに信頼されることがなくなるであろうし、市場での検索エンジンの需要が先細りになるであろう。したがって、既存のシステムに関連する前述の問題や他の問題を回避または緩和しながらイントラネット照会に応えるためのシステム、方法、およびコンピュータ読み取り可能な記録媒体が必要である。
【課題を解決するための手段】
【０００７】
本発明は、データベースおよびアプリケーション文書をクローリングするためのシステム、方法、およびコンピュータ読み取り可能な記録媒体を提供する。
【０００８】
本発明のシステム形態は、情報を求めて多種多様なデータベースを探索するシステムを備える。このシステムは、探索される一連のデータベースと、返される情報に制約を加えるフィルタとを列挙する、コンピュータ読み取り可能な記録媒体に格納された統一データ構造体（ｕｎｉｆｙｉｎｇ  ｄａｔａ  ｓｔｒｕｃｔｕｒｅｓ）を含む。このシステムはさらに、一連のデータベースと通信するためのプロトコル群を１つのプロトコルに変換する、別のコンピュータ読み取り可能な記録媒体に格納された統一アプリケーションプログラミングインターフェースを含む。このシステムはさらに、その１つのプロトコルを用いて、統一データ構造体で記述されたメソッドを呼び出し、一連のデータベースの各データベースに固有のプロトコルを知ることなく、所望の情報を求めて一連のデータベースを探索するクローラを含む。
【０００９】
本発明のさらなる態様によれば、本発明のコンピュータ読み取り可能な記録媒体の形態は、情報を求めて多種多様なデータベースをクローリングするプロセスを強化するデータ構造体を格納するコンピュータ読み取り可能な記録媒体を含む。このデータ構造体は、クローラによって探索されるデータベースを示すシステムフィールドと、データベースに格納されている各情報に与えられる意味を示すエンティティフィールドと、データベース内のエンティティフィールドのインスタンスを見つけるための呼び出し可能なロジック部分を示すメソッドと、値で埋められる変数を示すパラメータフィールドと、メソッドの呼び出しによって返される情報に制約を加える注釈を示すフィルタフィールドとを含む。
【００１０】
本発明のさらなる態様によれば、本発明の方法形態は、所望の情報を求めてデータベースおよびアプリケーション文書を探索する、コンピュータに実装される方法を含む。この方法は、所望の情報を求めてクローリングすることを含み、このクローリングは、統一データ構造体にアクセスし、１つまたは複数のフィルタを有するファインダメソッドを呼び出して各データベース下の各エンティティを探索することによって行われる。各フィルタは、返される情報に制約を加える。この方法はさらに、ユーザがハイパーリンクを選択した場合に、その選択結果を受け取ることを含む。このハイパーリンクは、ある識別子に関連付けられており、それによって、１つまたは複数のデータベースに存在する、その識別子に関連付けられたエンティティに関係する情報を取得する。
【００１１】
本発明の前述の各態様および付随する利点の多くは、以下の詳細説明を添付図面と併せて参照することにより、よりよく理解され、より容易に価値が認められるであろう。
【発明を実施するための最良の形態】
【００１２】
システム内部でイントラネットに接続されたビジネスシステム群を検索することが可能なシステムを図２に示す。このシステムは、データベース２０８〜２１２およびアプリケーション文書（図示せず）から形成されたビジネスシステム群に格納されている情報をクローラ２００が見つけることを可能にするために連係動作するソフトウェアアプリケーション群を有するネットワークコンピューティング環境である。クローラ２００は、所望の情報を求めてイントラネットを検索する、自動化されたアプリケーションである。クローラ２００は、検索エンジン（図示せず）による一致評価を可能にするように、データベース２０８〜２１２内およびコンテンツ関連情報内のキーフィールドにインデックスを作成する。
【００１３】
図２に示したシステムは、検索エンジンが、データベース２０８〜２１２およびアプリケーション文書（Ｍｉｃｒｏｓｏｆｔ(登録商標)  Ｅｘｃｅｌ文書など）と通信するための固有プロトコルを知らなくても、情報を求めてデータベース２０８〜２１２を検索することを可能にする機能を提供する。クローラ２００がデータベース２０８〜２１２に接続するために用いなければならないであろうプロトコルは多数あるが、本発明の各種実施形態は、データベース２０８〜２１２およびアプリケーション文書にある情報にアクセスする方法を統一する統一アプリケーションプログラミングインターフェース２０４を含む。統一アプリケーションプログラミングインターフェース２０４は、クローラ２００がデータベース２０８〜２１２およびアプリケーション文書と通信するための固有プロトコルを知らなくてもデータベース２０８〜２１２と通信できるように、変換を行う。多くのデータベース（データベース２０８〜２１２など）は、データベースの照会、更新、および管理に用いられてきた従来のデータベース準言語である構造化照会言語を理解する。しかしながら、データベース２０８〜２１２は一般に、構造化照会言語の使用を隠蔽してデータベース２０８〜２１２から所望の情報を取得することができるビジネスロジックを有する。したがって、各データベース２０８〜２１２は、個々のデータベースに情報を照会するための、個々のデータベースに固有である、カスタマイズ可能なプロトコルを有する。多くのソフトウェアアプリケーションは、クローラ２００からはアクセスも閲覧もできない埋め込み（ｅｍｂｅｄ）データベースにアプリケーション文書を格納していた。ソフトウェアアプリケーションにおけるこれらの埋め込みデータベースは、適切なプロトコルがコンパイルされていればアクセス可能である。本発明の各種実施形態では、ユーザが検索エンジンにキーワードを入力することが可能であり、クローラ２００が、データベース２０８〜２１２内の所望の情報を検索することが可能であり、それらの情報を検索結果としてユーザに返すことが可能であるように、それらの情報にインデックスを作成することが可能である。
【００１４】
統一アプリケーションプログラミングインターフェース２０４は、統一データ構造体２０２とともに、クローラ２００が、データベース２０８〜２１２およびアプリケーション文書と通信するための固有プロトコルを知らなくてもデータベース２０８〜２１２と通信することを可能にする。たとえデータベース２０８〜２１２のプロトコルが既知であっても、データベース２０８〜２１２から所望の情報を取得するためには、データベース２０８〜２１２の固有のアプリケーションプログラミングインターフェース（ＡＰＩ）２０８Ａ〜２１２Ａも既知でなければならない。統一アプリケーションプログラミングインターフェース２０４は、統一データ構造体２０２とともに、クローラ２００が、固有のプロトコルを知らなくても、固有のアプリケーションプログラミングインターフェース２０８Ａ〜２１２Ａを知らなくても、所望の情報を取得できるようにする。
【００１５】
当業者であれば理解されるように、データベース２０８〜２１２に格納されている各情報は、何テラバイトにもおよぶ非常に大きいものである場合がある。データベース２０８〜２１２が様々な情報を非常に高速に処理可能であるとしても、様々な情報が非常に素早く非常に大きくなる。クローラ２００がデータベース２０８〜２１２内のどれだけ多くの情報を探索してインデックスを作成するかについては、クローラ２００に制約を加えることが好ましい。重要でないレガシーデータや履歴データは、クローラ２００の探索対象から外すことが好ましい。本発明の各種実施形態は、統一データ構造体２０２の中にフィルタまたは注釈を含み、これらのフィルタまたは注釈は、クローラ２００の探索に様々な制約を加える。クローラ２００が統一アプリケーションプログラミングインターフェース２０４を呼び出すと、統一アプリケーションプログラミングインターフェース２０４は、統一データ構造体２０２に照会して、データベース２０８〜２１２およびアプリケーション文書にある情報を探索する際の制約を認識する。フィルタまたは注釈を与える好適な手法の１つは、データ記述言語を用いることである。データ記述言語は、データ構造体を記述することに特化して設計された言語である。
【００１６】
データベース２０８がＡＰＩ２０８Ａを有し、特定ビジネスの顧客に関する情報を取得するためにＡＰＩ２０８Ａを呼び出すことが可能であるとする。このＡＰＩが呼び出されると、データベース２０８が、検索可能な顧客リストを返す。本発明の各種実施形態では、そのＡＰＩの呼び出しの入力パラメータに対し、最終修正日付などの制約によるフィルタリングまたは注釈づけを行い、それによって、データベース２０８の探索を制限する。クローラ２００は、統一データ構造体２０２に格納されている制約を用いて、その最終修正日付より新しい情報を見つけることが可能である。ＡＰＩ２０８Ａは、統一データ構造体２０２によって与えられた制約（最終修正日付）に対応する情報を返す。この例では、統一データ構造体２０２に格納されている内容物の中でも特にこの制約がＡＰＩ２０８Ａに意義を与えている。言い換えると、返される情報は、最終修正日付より新しい顧客情報であることがわかっている。フィルタまたは注釈を用いることにより、クローラ２００の探索の効率を高めることが可能になる。
【００１７】
データベース２０８がクローラ２００によって探索された後、情報がフィールド名およびフィールド値によって戻される。各フィールドは特定の意味を有する。データベース２０８がリレーショナルデータベースとして実装されていれば、フィールドは、特定の並びを識別する一意識別フィールドであることができる。本発明の各種実施形態では、カテゴリ結果をユーザに提示して、情報に関連付けられた値への接続を可能にするために、それらの一意識別フィールドからハイパーリンクを作成することが可能である。ユーザがハイパーリンクを選択すると、その特定のハイパーリンクに接続されたすべての情報が、適切なアプリケーション（ブラウザなど）を介してユーザに対して表示される。この手法は、クローラ２００が探索したすべての内容を返すようにデータベース２０８〜２１２に要求することによって、データベース２０８〜２１２を過負荷にすることを避けるために用いることが好ましい。キーフィールドを識別子として用いるとともに、統一データ構造体２０２においてフィルタまたは注釈を用いると、すべての情報が一度に返されるのを防ぐことが可能であり、それによって、データベース２０８〜２１２によって形成されているコンピューティングシステムが壊滅することを回避することが可能である。本発明の各種実施形態では、統一データ構造体２０２においてフィルタまたは注釈を用い、キーフィールドを識別子として用いることによって、検索要求を複数の部分に分割する。特定の識別子に接続されたハイパーリンクをユーザが選択すると、この識別子が、データベース２０８内の並びを一意識別するフィールドに接続され、ユーザの関心の対象であると示された、情報の一部分が返される。
【００１８】
データベース２０８〜２１２はレコード群で構成され、各レコードには、フィールド群と、それに付随する検索、並べ替え、再結合およびその他の機能のセットとが含まれる。レコード内のフィールドは、キーの一部として指定される情報部分を一意識別する構造体である。これらのキーは、データベース２０８〜２１２の情報を取り出す性能を高める。本発明の各種実施形態は、これらのキーフィールドに関連付けられた説明または名前を提供する。これらのキーフィールドの１つをユーザが選択すると、所望の情報を含む、しかるべきレコードがユーザに返される。
【００１９】
統一データ構造体２０２は、クローラ２００が探索可能なデータベース２０８〜２１２を表す、システムのディレクトリを示す。言い換えると、統一データ構造体２０２は、組織内のビジネスシステムの系統（データベース２０８〜２１２など）を、クローラ２００が探索できるように列挙する。統一データ構造体２０２内のフィルタまたは注釈は、クローラ２００の探索によって見つかった、データベース２０８〜２１２内の情報に意味を与える。クローラ２００は、統一アプリケーションプログラミングインターフェース２０４を介して、データベース２０８〜２１２のうちのいずれとも通信することができる。クローラ２００は、統一アプリケーションプログラミングインターフェース２０４とだけ通信できればよい。統一アプリケーションプログラミングインターフェース２０４は、データベース２０８〜２１２との通信に用いるアダプタ群２０６のうちの特定のアダプタを認識する。アダプタ群２０６から選択されたアダプタは、ＡＰＩ２０８Ａ〜２１２Ａのうちの特定のＡＰＩを認識し、データベース２０８〜２１２内の情報にアクセスする。
【００２０】
アダプタ２０６は、通常は、データベース２０８〜２１２のソフトウェアメーカーから提供される。しかしながら、サードパーティのソフトウェアメーカーもアダプタ２０６を提供することが可能である。アダプタ２０６は一般にセマンティック変換（または意味の付与）を行わないが、統一アプリケーションプログラミングインターフェース２０４が、統一データ構造体２０２とともにセマンティック変換を行う。これは、当業者であれば理解されるように、クローラ２００は一般に、データベース２０８〜２１２に格納されている情報のセマンティクスを理解することを期待されていないからである。クローラ２００は、探索時に、情報のフィールド、テーブルまたは部分を認識するが、情報の意味を理解しない。統一アプリケーションプログラミングインターフェース２０４および統一データ構造体２０２によって行われるセマンティック変換（「最終修正日付」など）は、クローラ２００がよりインテリジェントに検索を行うことを可能にする。
【００２１】
図３は、統一データ構造体２０２の本質をよりよく説明するクラウド（ｃｌｏｕｄ）図３００である。システム３００は、クラウド間の関係を示しており、各クラウドは、より具体的なアイテムのグループを表す一般化カテゴリである。図３を参照されたい。クラウドは、クラウドの任意のメンバを特徴づける属性の集合および／またはサービス（プログラムの他の部分に対して実行可能なアクション）の集合を定義するためにプログラム内で用いられる記述ツールである。各クラウドは、本質的に、含んでいるエンティティの種類と、それらのエンティティの動作とを定義する。各クラウドは、好適なプログラミング手法（たとえば、オブジェクト指向プログラムやリレーショナルデータベーステーブルなど）を用いて実装可能である。
【００２２】
システムクラウド３０２は、ビジネスの系統を表す属性およびサービスを定義し、それはそのビジネスに関連する情報を含む。たとえば、データベース２０８〜２１２は、それぞれが、システムクラス３０２によって表されることが可能なシステムである。システム３０２のインスタンスは、ＳＡＰシステム３０２Ａを含み、このＳＡＰシステム３０２ＡはＳＡＰシステムに関連する属性およびサービスを定義する。ＳＡＰシステム３０２Ａから発せられ、システムクラウド３０２の矢印形状のところで終わる端部は、ＳＡＰシステム３０２Ａのインスタンス化とシステムクラウド３０２との間に対応関係があることを示す。
【００２３】
エンティティクラウド３０４は、データベース２０８〜２１２やＳＡＰシステム３０２Ａなどのシステムにある情報に与えられた構造に関連する属性およびサービスを定義する。たとえば、ＳＡＰシステム３０２Ａがリレーショナルデータベースを用いて実装されているとする。エンティティクラウド３０４の適切なインスタンス化を用いると、クローラ２００からはデータのリレーショナルテーブルが見えず、ＳＡＰシステム３０２Ａ内の顧客の並びが見える。エンティティクラウド３０４から発せられ、システムクラウド３０２の矢印形状のところで終わる端部は、システムクラウド３０２との１対多関係（すなわち、１つのシステムと、その１つのシステムの中の多数のエンティティとの関係）を示す。
【００２４】
顧客インスタンス３０４Ａは、商品またはサービスを購入する顧客の表現に関連した属性およびサービスを定義する。顧客インスタンス３０４Ａを用いて、ＳＡＰシステム３０２Ａにある情報に意味と構造を与え、それらの中の特定の情報が顧客に関連する情報であることを示すことが可能である。エンティティクラウド３０４によって表される各エンティティは、システムクラウド３０２によって表されるシステム（ＳＡＰシステム３０２Ａなど）に存在する情報の構造の記述である。顧客エンティティ３０４Ａから発せられ、エンティティクラウド３０２の矢印形状のところで終わる端部は、顧客エンティティ３０４Ａのインスタンス化とエンティティクラウド３０２との間に対応関係があることを示す。
【００２５】
各エンティティクラウド３０４は、メソッドクラウド３０６で表される特徴を有する。メソッドクラウド３０６は、エンティティが持ちうる動作を表す属性およびサービスを定義する。メソッドクラウド３０６から発せられ、エンティティクラウド３０４の矢印形状のところで終わる端部は、エンティティクラウド３０４との１対多関係（すなわち、１つのエンティティと、その１つのエンティティの中の多数のメソッドとの関係）を示す。
【００２６】
ファインダメソッド３０６Ａは、システム内でエンティティを見つける機能を提供する。たとえば、ファインダメソッド３０６Ａを用いて、システム（ＳＡＰシステム３０２Ａなど）内のエンティティとして顧客を見つけることができる。クローラ２００は、システム内のエンティティの固有のファインダメソッドを用いて、そのエンティティのすべてのインスタンスを見つけることが好ましい。ファインダメソッド３０６Ａから発せられ、メソッドクラウド３０６の矢印形状のところで終わる端部は、ファインダメソッド３０６Ａのインスタンス化とメソッドクラウド３０６との間に対応関係があることを示す。
【００２７】
各メソッドは、１つまたは複数のパラメータを有する。これらのパラメータは、パラメータクラウド３０８で表され、これはメソッドのパラメータを表す属性およびサービスを定義する。パラメータクラウド３０８から発せられ、メソッドクラウド３０４の矢印形状のところで終わる端部は、メソッドクラウド３０６との１対多関係（すなわち、１つのメソッドと、その１つのメソッドの中の多数のパラメータとの関係）を示す。
【００２８】
パラメータの１つの種類が、フィルタクラウド３０８Ａで表されるフィルタである。フィルタクラウド３０８Ａは、（ファインダメソッド３０６Ａなどの）メソッドを呼び出すことによって、クローラ２００が探索し返す情報に、注釈をつけるかその情報を制限する属性およびサービスを定義する。フィルタクラウド３０８Ａから発せられ、パラメータクラウド３０８の矢印形状のところで終わる端部は、パラメータクラウド３０８との１対多関係（すなわち、１つのパラメータと、その１つのパラメータの中の多数のフィルタとの関係）を示す。
【００２９】
１つの好ましいフィルタは、「修正開始時（modified-since）」フィルタ３０８Ｂで表され、これは修正日付が特定時点より後である情報を制限することに関する属性およびサービスを定義する。修正開始時フィルタ３０８Ｂから発せられ、フィルタクラウド３０８Ａの矢印形状のところで終わる端部は、修正開始時フィルタ３０８Ｂのインスタンス化とフィルタクラウド３０８Ａとの間に対応関係があることを示す。フィルタクラウド３０８Ａをインスタンス化して、（ＳＡＰシステム３０２Ａなどの）システムにある所望の情報に注釈をつけるか、その情報をフィルタリングすることが可能である。
【００３０】
メソッドの名前（たとえば、ファインダメソッド３０６Ａ）とそのシグネチャ（たとえば、パラメータクラウド３０８のインスタンスとフィルタ３０８Ａのインスタンス（すなわち、修正開始時フィルタ３０８Ｂ））は、原文どおりに記述され、統一データ構造体２０２に格納されることが好ましい。メソッドクラウド３０６は、パラメータクラウド３０８によって表されるパラメータの集合体である。メソッドクラウド３０６によって表されるメソッドの集合体が、エンティティクラウド３０４によって表されるエンティティの特性または動作である。それとともに、システムクラウド３０２のインスタンス、エンティティクラウド３０４のインスタンス、およびメソッドクラウド３０６のインスタンスが、システムに格納されているロジック部分（たとえば、呼び出して、所望の情報を取得することが可能な、データベース２０８〜２１２のＡＰＩ２０８Ａ〜２１２Ａ）をポイントする。
【００３１】
ユーザがブラウザの検索入力領域に検索表現「９８２２９」を入力するとする。検索文字列は、注文番号、顧客番号、郵便番号など、様々な意味を持つものであることが可能である。検索エンジンもクローラ２００も、検索表現が意味する内容を知ることはない。エンティティクラス３０４は、戻りデータに意味を持たせられるように、統一データ構造体２０２内にセマンティクスを与える。たとえば、クローラ２００は、検索表現「９８２２９」を見つけることが可能な、ＳＡＰシステム３０２Ａ内のエンティティのカテゴリを返すことができる。これらのカテゴリは、注文番号、顧客番号、郵便番号などを含む。検索表現は、ＳＡＰシステム３０２Ａまたは他のシステム（データベース２０８〜２１２など）に格納されている任意のフィールドに表示することが可能である。ユーザは、システムから情報を取得するためには、特定のエンティティを表すハイパーリンクを選択して指定する必要がある。この選択内容から、クローラ２００が、所望の情報をＳＡＰシステム３０２Ａから抽出するためにどの固有メソッドまたはファインダメソッドを呼び出すべきかを認識する。
【００３２】
本発明の各種実施形態では、特定のシステム（データベース２０８〜２１０など）の固有のプロトコルと直接対話する新しいプロトコルハンドラを書く必要はもはやない。それに代わって、クローラ２００は、統一アプリケーションプログラミングインターフェース２０４および統一データ構造体２０２を用いて、統一アプリケーションプログラミングインターフェース２０４と直接対話する必要があり、その際、データベース２０８〜２１２が必要とするプロトコルの細部を知る必要がない。データベース２０８〜２１２に固有のプロトコルは、ある意味では、本発明の各種実施形態によって単一の統一プロトコルに変換される。より具体的には、この変換は、クローラ２００が特定のエンティティについてファインダメソッドを呼び出すことである。情報を見つけるためには、クローラ２００は、ユーザの関心の対象である特定のエンティティの所望のファインダメソッドを見つけるだけでよい。他の複雑なプロトコルを知らなくても、クローラ２００は、所望の情報をデータベース２０８〜２１２から抽出することが可能である。
【００３３】
統一データ構造体２０２は、システムクラウド３０２によって定義される様々なシステムと、エンティティクラウド３０４によって定義される様々なエンティティと、メソッドクラウド３０６によって定義される様々なメソッド（たとえば、ファインダメソッド３０６Ａ）と、パラメータクラウド３０８によって定義される様々なパラメータと、フィルタクラウド３０８Ａによって定義される様々なフィルタ（たとえば、修正開始時フィルタ３０８Ｂ）とを、原文どおりに含む。データベース２０８〜２１２などのシステムの知識を有する、組織内の情報技術（ＩＴ）担当者が、統一データ構造体２０２の内容を埋めることが好ましい。統一データ構造体２０２の実装において本発明の各種実施形態を用いれば、コードを書く必要はない。統一データ構造体２０２の内容を埋めるために、組織内の情報技術担当者にユーザインターフェースが提供されることが好ましい。
【００３４】
ファインダメソッド３０６Ａは、複数存在することが可能である。１つのファインダメソッドが、データベース２０８〜２１２などのシステムにおいて、情報を含む特定の並びを見つけることを可能にし、別の好適なファインダが、所望の情報を含む複数の並びを見つけることが好ましい。メソッドクラウド３０６で表されるいくつかのメソッドは、パラメータクラス３０８で表される複雑なパラメータを有することができる。メソッドの呼び出しを簡略化するために、本発明の各種実施形態では、各種メソッドのデフォルトのパラメータを記述し、統一データ構造体２０２に格納することが可能である。これらのデフォルトのパラメータは、メソッドの呼び出しの際に自動的に挿入され、クローラ２０２はパラメータの細部を指定する必要がない。
【００３５】
図４Ａ〜Ｇは、データベースおよびアプリケーション文書にある情報を求めてクローリングするプロセス４００を示しており、簡単のために、プロセス４００の以下の説明では、クラウド図３００（図３）およびクローラ２００（図２）と関連して示される様々な要素を参照する。プロセス４００は、開始ブロックから、継続ターミナル（「ターミナルＡ」）と出口ターミナル（「ターミナルＢ」）との間で定義された一連のプロセスステップ４０２に進む。一連のプロセスステップ４０２は、統一データ構造体２０２の内容を埋めるプロセスである。
【００３６】
プロセス４００は、ターミナルＡ（図４Ｂ）からブロック４０８に進む。ブロック４０８では、情報技術担当者が１つまたは複数のシステムを原文どおりに指定する。プロセス４００はブロック４１０に進む。ブロック４１０では、ＩＴ担当者がシステム内の１つまたは複数のエンティティを原文どおりに指定する。次にＩＴ担当者は、エンティティに関連する１つまたは複数のメソッド（すなわち、ファインダメソッド）を原文どおりに指定する。ブロック４１２を参照されたい。プロセス４００は次にブロック４１４に進む。ブロック４１４では、ＩＴ担当者が、メソッドに関連する１つまたは複数のパラメータを原文どおりに指定する。次のブロック４１６では、ＩＴ担当者が、メソッドに関連する１つまたは複数のフィルタを原文どおりに指定する。ＩＴ担当者は同様に、１つまたは複数のデフォルトパラメータを原文どおりに指定する。ブロック４１８を参照されたい。その後、プロセス４００は出口ターミナルＢに進む。
【００３７】
プロセス４００は、出口ターミナルＢから、継続ターミナル（「ターミナルＣ」）と出口ターミナル（「ターミナルＤ」）との間で定義された一連のプロセスステップ４０４に進む。一連のプロセスステップ４０４は、データベースおよびアプリケーション文書に対してクローリングを実行するプロセスである。
【００３８】
プロセス４００は、ターミナルＣ（図４Ｃ）からブロック４２０に進む。ブロック４２０では、クローラが統一ＡＰＩを用いて統一データ構造体を調べ、クローリングするシステムを選択する。次のブロック４２２では、クローラが統一ＡＰＩを用いて、（統一データ構造体内で）クローリングするシステムのエンティティを見つける。システムの一例がデータベース２０８である。エンティティの別の例は、顧客エンティティ３０４Ａである。クローラは、統一ＡＰＩを用いて、エンティティのファインダメソッドを見つける。ブロック４２４を参照されたい。プロセス４００は次にブロック４２６に進む。ブロック４２６では、クローラが、統一ＡＰＩを用いて、ファインダメソッドに関連する１つまたは複数のパラメータを見つける。クローラは、統一ＡＰＩを用いて、１つまたは複数のデフォルトパラメータを見つける。ブロック４２８を参照されたい。プロセス４００は次にブロック４３０に進む。ブロック４３０では、クローラが、統一ＡＰＩを用いて、クローラの期限切れを強制するために１つまたは複数のフィルタを見つける。次にプロセス４００は、さらなる継続ターミナル（「ターミナルＣ１」）に進む。
【００３９】
ターミナルＣ１（図４Ｄ）から、クローラは、統一ＡＰＩを用いて、１つまたは複数のフィルタによる制約を受けた１つまたは複数のデフォルトパラメータを有するメソッドを呼び出す。次のブロック４３４では、統一ＡＰＩが、メソッドおよびパラメータを、特定のシステム（たとえば、データベース２０８）へのアダプタが認識可能なパラメータを有する別のメソッドに変換する。アダプタは、メソッド呼び出しを、システムのＡＰＩ（たとえば、ＡＰＩ２０８Ａ）が認識可能なプロトコルに変換する。ブロック４３６を参照されたい。プロセス４００は次にブロック４３８に進む。ブロック４３８では、アダプタが、メソッド呼び出しを、所望の情報を見つけることが可能なシステムの特定のＡＰＩが認識可能なプロトコルに変換する。次にプロセス４００は、さらなる継続ターミナル（「ターミナルＣ２」）に進む。
【００４０】
プロセス４００は、ターミナルＣ２（図４Ｅ）から判断ブロック４４２に進む。判断ブロック４４２では、クローラが選択されたメソッドを用いてクローリングを完了したかどうかを判定するテストを実行する。判断ブロック４４２のテストの答えが「いいえ」であれば、プロセス４００はループバックして判断ブロック４４２のテストを再度実行する。答えが「はい」であれば、プロセス４００はブロック４４４に進む。ブロック４４４では、メソッドが、所望の情報を含む並びを一意識別するキーフィールド（およびキーフィールドの説明）にインデックスを作成する。さらに判断ブロック４４６では、クローリングすべきエンティティがシステム内にさらにあるかどうかを判定するテストを実行する。判断ブロック４４６のテストの答えが「はい」であれば、プロセス４００はさらなる継続ターミナル（「ターミナルＣ３」）に進む。プロセス４００は、ターミナルＣ３（図４Ｃ）からブロック４２２にループバックする。ブロック４２２では、既述のプロセスステップを繰り返す。判断ブロック４４６のテストの答えが「いいえ」であれば、プロセス４００はさらなる継続ターミナル（「ターミナルＣ４」）に進む。
【００４１】
プロセス４００は、ターミナルＣ４（図４Ｆ）から判断ブロック４４８に進む。判断ブロック４４８では、クローリングすべきシステムがさらにあるかどうかを判定するテストを実行する。このテストの答えが「はい」であれば、プロセス４００はさらなる継続ターミナル（「ターミナルＣ５」）に進む。プロセス４００は、ターミナルＣ５（図４Ｃ）からブロック４２０にループバックする。ブロック４２０では、既述のプロセスステップを繰り返す。判断ブロック４４８のテストの答えが「いいえ」であれば、プロセス４００は出口ターミナルＤに進む。
【００４２】
プロセス４００は、出口ターミナルＤから、継続ターミナル（「ターミナルＥ」）と出口ターミナル（「ターミナルＦ」）との間で定義された一連のプロセスステップ４０６に進む。一連のプロセスステップ４０６では、クローラが見つけた情報の各種識別情報を選択的に表示する。ターミナルＥ（図４Ｆ）から、ユーザがブラウザを介して検索表現を入力する。ブロック４５０を参照されたい。次のブロック４５２では、プロセス４００は、検索表現の内容を含む、システムのエンティティを収集する。次にプロセス４００は、さらなる継続ターミナル（「ターミナルＥ１」）に進む。
【００４３】
プロセス４００は、ターミナルＥ１（図４Ｇ）からブロック４５４に進む。ブロック４５４では、検索表現の内容を含むエンティティの説明をユーザに提示する。次のブロック４５６では、ユーザが特定のエンティティを選択する。統一ＡＰＩが、インデックスを用いて、検索表現の内容および特定システムの特定エンティティに関連する実際の情報をプルする。次にプロセス４００はブロック４６０に進む。ブロック４６０では、ブラウザ上でユーザに情報を提示する。次にプロセス４００は判断ブロック４６２に進む。判断ブロック４６２では、実行すべき検索がさらにあるかどうかを判定する、さらなるテストを実行する。判断ブロック４６２のテストの答えが「はい」であれば、プロセス４００はターミナルＥに進み、図４Ｆにループバックして、既述のプロセスステップを繰り返す。判断ブロック４６２のテストの答えが「いいえ」であれば、プロセス４００は出口ターミナルＦに進み、実行を終了する。
【００４４】
本発明の好ましい実施形態を図示および説明してきたが、これらについては、本発明の趣旨および範囲を逸脱することなく様々な変更を施すことが可能であることを理解されたい。
【図面の簡単な説明】
【００４５】
【図１】アプリケーション文書およびデータベースを検索する際の様々な問題を示す、従来のシステムのブロック図である。
【図２】情報を求めてデータベースおよびアプリケーション文書をクローリングする例示的システムを示すブロック図である。
【図３】データベースおよびアプリケーション文書に格納されている各情報に対する構造体をまとめて定義するアイテムグループを表す一般化カテゴリを示すクラウド図である。
【図４Ａ】本発明の一実施形態による、情報を求めてデータベースおよびアプリケーション文書をクローリングするプロセスを示すプロセス図である。
【図４Ｂ】本発明の一実施形態による、情報を求めてデータベースおよびアプリケーション文書をクローリングするプロセスを示すプロセス図である。
【図４Ｃ】本発明の一実施形態による、情報を求めてデータベースおよびアプリケーション文書をクローリングするプロセスを示すプロセス図である。
【図４Ｄ】本発明の一実施形態による、情報を求めてデータベースおよびアプリケーション文書をクローリングするプロセスを示すプロセス図である。
【図４Ｅ】本発明の一実施形態による、情報を求めてデータベースおよびアプリケーション文書をクローリングするプロセスを示すプロセス図である。
【図４Ｆ】本発明の一実施形態による、情報を求めてデータベースおよびアプリケーション文書をクローリングするプロセスを示すプロセス図である。
【図４Ｇ】本発明の一実施形態による、情報を求めてデータベースおよびアプリケーション文書をクローリングするプロセスを示すプロセス図である。
【符号の説明】
【００４６】
２００  クローラ
２０２  統一データ構造体
２０４  統一アプリケーションプログラミングインターフェース
２０６  アダプタ
２０８，２１０，２１２  データベース
２０８Ａ，２１０Ａ，２１２Ａ  ＡＰＩ
【図１】
2006277732.tif 000003
【図２】
2006277732.tif 000004
【図３】
2006277732.tif 000005
【図４Ａ】
2006277732.tif 000006
【図４Ｂ】
2006277732.tif 000007
【図４Ｃ】
2006277732.tif 000008
【図４Ｄ】
2006277732.tif 000009
【図４Ｅ】
2006277732.tif 000010
【図４Ｆ】
2006277732.tif 000011
【図４Ｇ】
2006277732.tif 000012