(57)【特許請求の範囲】
【請求項１】
仮想ドキュメントを用いた検索を促進するネットワーク・コンピューティング装置であって、前記コンピューティング装置は、
命令を格納したメモリと、
格納した前記命令に基づいて検索アプリケーションを実行する、前記メモリに接続されたプロセッサであって、前記検索アプリケーションが、
検索要求を受信し、
クロール時に、前記検索要求において提供された前記基準にマッチする１つ以上のドキュメントを特定し、
関連するドキュメントにリンクされたドキュメント、前記関連するドキュメントに埋め込まれたドキュメント、前記関連するドキュメントにリンクされた前記ドキュメントに埋め込まれた別のドキュメント、および前記関連するドキュメントにデータを提供するデータ・ソースを判定し、
前記リンクされたドキュメント、前記埋め込まれたドキュメント、前記別の埋め込まれたドキュメントおよび前記データ・ソースの各々を表す仮想ドキュメントを生成し、
前記仮想ドキュメントを一意に特定して、複数サイクルでなく１サイクルで、前記仮想ドキュメントのインデックス付与、および、前記仮想ドキュメントを介してのクローリングを行い、
前記関連するドキュメントおよび前記仮想ドキュメントを含む検索結果にインデックスを作成し、前記仮想ドキュメントは、前記リンクされたドキュメント、前記埋め込まれたドキュメント、前記別の埋め込まれたドキュメントおよび前記データ・ソースを表し、
所定のアルゴリズムにしたがって前記インデックスにおける前記検索結果を順位付け、
前記検索結果を、レンダリングするために、クライアント・アプリケーションに提供して、前記検索結果を前記関連するドキュメントと前記仮想ドキュメントとの間の関係を考慮して順位付け、
複数のフォーマットでマッピングするドキュメントとして前記関係をレンダリングする  ように構成されたプロセッサと
を含むコンピューティング装置。
【請求項２】
前記検索アプリケーションはさらに、前記関連するドキュメントと前記仮想ドキュメントとの間の関係に関連付けられた情報を、前記クライアント・アプリケーションに提供して、前記クライアント・アプリケーションが前記関係を前記検索結果とともに表示できるようにするように構成された、請求項１に記載のコンピューティング装置。
【請求項３】
グラフィカル方式およびテキスト形式のうちの少なくとも１つを用いて前記関係を表示する、請求項２に記載のコンピューティング装置。
【請求項４】
前記関係は、チェーンされた形式での複数のリンクされたドキュメント、複数の埋め込まれたドキュメント、複数のリンクされたデータ・ソース、のうちの１つを含み、前記仮想ドキュメントの識別子は、前記チェーンされた関係を反映するようい構成された、請求項１記載のコンピューティング装置。
【請求項５】
前記関連するドキュメントにリンクされたドキュメントを表す仮想ドキュメントのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）は、前記関連するドキュメントのＵＲＬと前記リンクされたドキュメントのＵＲＬとの組合せを含み、前記関連するドキュメントに埋め込まれたドキュメントを表す仮想ドキュメントのＵＲＬは、前記関連するドキュメントのＵＲＬと前記埋め込まれたドキュメントの名前との組合せを含み、前記関連するドキュメントにリンクされたデータ・ソースを表す仮想ドキュメントのＵＲＬは、前記データ・ソースに関連付けられたサーバ名とデータ・ソース識別子との組合せを含む、請求項４に記載のコンピューティング装置。
【請求項６】
前記検索は、データベース・ソース、分析サービス、ポータル、別のサーバ、およびデスクトップの集合からの少なくとも１つにおいて実行される、請求項１に記載のコンピューティング装置。
【請求項７】
前記コンピューティング装置は、企業ベースのネットワーク、クラウド・ベースのネットワーク、および企業ベースのネットワークとクラウド・ベースのネットワークとの組合せのうちの１つに接続されることを特徴とする請求項１に記載のコンピューティング装置。
【請求項８】
仮想ドキュメントを用いて検索を容易にするためのコンピューティング装置であって、該コンピューティング装置が、
格納された命令に基づいて検索アプリケーションを実行するように構成されたプロセッサと、
前記プロセッサに結合されたメモリであって、前記命令を格納するように構成されたメモリと、
を含み、前記命令は、
検索要求を検索アプリケーションが受けるステップと、
クロール時に、前記検索要求において提供された基準にマッチする１つ以上のドキュメントを特定するステップと、
関連するドキュメントにリンクされたドキュメント、前記関連するドキュメントに埋め込まれたドキュメント、前記関連するドキュメントに埋め込まれた前記ドキュメントに埋め込まれた別のドキュメント、および前記関連するドキュメントにデータを提供するデータ・ソースをクロール時に判定して、前記関連するドキュメント、関係のあるドキュメント、およびデータ・ソースを１つの検索でインデックス付与するようにするステップと、  前記リンクされたドキュメント、前記埋め込まれたドキュメント、前記別の埋め込まれたドキュメント、および前記データ・ソースの各々を表す仮想ドキュメントを生成して、前記リンクされたドキュメント、前記埋め込まれたドキュメント、前記別の埋め込まれたドキュメント、前記データ・ソースが検索可能にかつナビゲーション可能にレンダリングされるようにするステップと、
前記仮想ドキュメントにインデックスを付与するため、および複数のサイクルではなく１つのサイクルで前記仮想ドキュメントをクロールするために前記仮想ドキュメントを一意に特定するステップと、
前記関連するドキュメントおよび前記仮想ドキュメントを含む検索結果のインデックスを作成するステップであって、前記仮想ドキュメントは、前記リンクされたドキュメント、前記埋め込まれたドキュメント、前記別の埋め込まれたドキュメント、および前記データ・ソースを表す、ステップと、
所定のアルゴリズムにしたがって前記インデックスにおける前記検索結果を順位付けるステップと、
前記検索結果、および前記関連するドキュメントと前記仮想ドキュメントとの間の関係を提示するために、前記検索結果をクライアント・アプリケーションに提供するステップであって、前記検索結果は、前記関連するドキュメントと前記仮想ドキュメントとの間の関係を考慮して順位付けられる、提供するステップと、
複数のフォーマットでマッピングするドキュメントとして前記関係をレンダリングするステップと
を含む、コンピューティング装置。
【請求項９】
前記データ・ソースを表す前記仮想ドキュメントにより、前記検索アプリケーションが、前記関連するドキュメントと、同一のデータ・ソースを共有する複数のドキュメントとの間の関係を推論できるようにすることを特徴とする請求項８に記載のコンピューティング装置。
【請求項１０】
前記関連するドキュメントに埋め込まれた前記ドキュメントの種類は、前記埋め込まれたドキュメントを表す前記仮想ドキュメントのプロパティとして格納されることを特徴とする請求項８に記載のコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想ドキュメントを用いたインデックス付与と検索に関する。
【背景技術】
【０００２】
検索エンジンはウェブ・ページのようなドキュメントに関する情報を発見し、格納する。当該情報は、一般に、ドキュメントのコードから取り出される。当該ドキュメントは、クローラまたは自動ブラウザによって取り出されることがあり、当該クローラまたは自動ブラウザは、ドキュメント内またはウェブ・サイト上のリンクを辿ることができる。従来型のクローラは一般に、ドキュメントをフラットなテキスト・ファイルとして分析して、複数の単語（例えば、タイトル、見出し、または特殊なフィールド）およびその位置を調べる。分析したドキュメントに関するデータを、後のクエリで使用するためにインデックス・データベースに格納することができる。クエリが１つの単語または単語の組合せを含むこともある。
【０００３】
多くのドキュメントは、テキスト・データに加え、グラフィカル要素、ビデオ要素、オーディオ要素、および同様な要素を含む。ドキュメント間のリンク（例えば、他のドキュメントへのハイパーリンク）もありふれたものである。さらに、ワープロ・ドキュメントまたはスプレッド・シートのようなドキュメントが、複数のドキュメントの間で共有できる外部データを含むこともある。さらに、ドキュメント全体を他のドキュメントに埋め込むことも日常的に行われている。
【０００４】
フラットなテキスト・ベースの検索では、ドキュメント間の多次元的な関係、およびドキュメントと上述のようなデータ・ソースとの間の多次元的な関係を必ずしも捉えることはできない。リンクされたドキュメントもしくは埋め込まれたドキュメントの間の関係、またはドキュメントとデータ・ソースとの間の関係を捉えるためには、複数の検索を行う必要がある場合もある。これは、システム・リソースの利用を増大させ、かつ／または、検索結果を表示する際に関係情報を紛失させることとなる。
【発明の概要】
【０００５】
本概要は、選択した概念を簡潔な形で導入するために与えたものである。その概念は、下記の発明を実施するための形態においてさらに説明する。本概要は、特許請求する主題の主要な特徴または本質的な特徴を排他的に特定しようとするものではなく、特許請求する主題の範囲の決定を支援しようとするものでもない。
【０００６】
諸実施形態は、リンクされたドキュメントおよび／または埋め込まれたドキュメントの間の関係、ならびに、データ・ソース（複数可）を共有するドキュメントの間の関係を、仮想ドキュメントを介して捉え、表示することに関する。ある実施形態によれば、リンクされたドキュメントまたは埋め込まれたドキュメント、および関連するドキュメントに関連付けられたデータ・ソースを表す仮想ドキュメントを生成することができる。実ドキュメントと仮想ドキュメントとの間の関係をマップとして検索結果とともに保存し、表示して、検索結果の包括的なイメージをユーザに提供することができる。
【０００７】
これらおよび他の特徴および利点は、下記の詳細な説明を読み、添付の図面を検討することで明らかになろう。以上の一般的な説明および下記の詳細な説明はともに例示的なものであり、特許請求の範囲に記載の諸態様を限定するものではないことは理解されよう。
【図面の簡単な説明】
【０００８】
【図１】ネットワーク検索環境における、仮想ドキュメント・ベースの検索動作を示す概念図である。
【図２】仮想ドキュメントを用いて、リンクされたドキュメント、埋め込まれたドキュメント、または外部ドキュメントの間の関係を捉える検索動作を示す概念図である。
【図３】ある実施形態に従うシステムにおいて、リンクされたドキュメントの間の関係を、仮想ドキュメントを介して捉える図である。
【図４】他の実施形態に従うシステムにおいて、データ・ソースを共有するドキュメントの間の関係を、仮想ドキュメントを介して捉える図である。
【図５】別の実施形態に従うシステムにおいて、埋め込まれたドキュメントの間の関係を、仮想ドキュメントを介して捉える図である。
【図６】諸実施形態に従うシステムを実装できるネットワーク環境の図である。
【図７】諸実施形態を実装できる、例示的なコンピューティング動作環境のブロック図である。
【図８】諸実施形態に従う、仮想ドキュメントを用いてリンクされたドキュメント、埋め込まれたドキュメント、または外部ドキュメントの間の関係を捉える検索を行うプロセスに関する論理流れ図である。
【発明を実施するための形態】
【０００９】
上で簡潔に説明したように、仮想ドキュメントを用いて、リンクされたドキュメント、埋め込まれたドキュメント、または外部ドキュメントの間の関係をクロール時に捉え、検索結果とともにユーザに表示することができる。以下の詳細な説明では、添付図面を参照する。添付図面は、本明細書の一部をなし、実例として種々の具体的な実施形態または例を示すものである。本開示の趣旨または範囲から逸脱せずに、これらの態様を組み合わせ、他の態様を利用し、構造的な変更を加えることができる。したがって、以下の詳細な説明は限定的な意味で捉えるべきではなく、本発明の範囲は添付の特許請求の範囲およびその均等物により定義される。
【００１０】
諸実施形態を、パーソナル・コンピュータのオペレーティング・システムで実行されるアプリケーション・プログラムに関連して実行されるプログラム・モジュールの一般的なコンテキストで説明するが、諸態様を他のプログラム・モジュールと組み合わせて実装することもできることは当業者には理解されよう。
【００１１】
一般に、プログラム・モジュールは、特定のタスクを実施するかまたは特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、および他種の構造を含む。さらに、諸実施形態を他のコンピュータ・システム構成で実施することができることは当業者には理解されよう。当該コンピュータ・システム構成には、ハンドヘルド装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレーム・コンピュータ、およびこれらに類するコンピューティング装置を含む。諸実施形態を、通信ネットワークを介して接続されたリモート処理装置によりタスクが実施される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラム・モジュールをローカルのメモリ記憶装置およびリモートのメモリ記憶装置の両方に配置することができる。
【００１２】
諸実施形態を、コンピュータ実行型のプロセス（方法）、コンピューティング・システム、または、コンピュータ・プログラム製品もしくはコンピュータ可読媒体のような製品として実装することができる。コンピュータ・プログラム製品は、コンピュータ・システムにより可読で、かつ、コンピュータまたはコンピューティング・システムに例示的なプロセス（複数可）を実行させるための命令を含むコンピュータ・プログラムをエンコードする、コンピュータ記憶媒体とすることができる。コンピュータ可読記憶媒体を、例えば、揮発性のコンピュータ・メモリ、不揮発性のメモリ、ハード・ドライブ、フラッシュ・ドライブ、フロッピ・ディスク（登録商標）、またはコンパクト・ディスク、およびこれらに類する媒体のうちの１つまたは複数を介して実装することができる。
【００１３】
本明細書にわたって、「プラットフォーム」という用語は、コンピュータおよびネットワークの動作を管理するソフトウェア・コンポーネントおよびハードウェア・コンポーネントの組合せとすることができる。かかる動作には、検索を含めることができる。プラットフォームの例には、複数のサーバで実行されるホストされたサービス、単一のサーバで実行されるアプリケーション、およびこれらに類するシステムが含まれるがこれらに限らない。「サーバ」という用語は一般に、１つまたは複数のソフトウェア・プログラムを一般にはネットワーク環境で実行するコンピューティング装置を指す。しかし、サーバを、ネットワーク上のサーバとみなされる１つまたは複数のコンピューティング装置で実行される仮想的なサーバ（ソフトウェア・プログラム）として実装することもできる。これらの技術および例示的な動作を以下でさらに詳細に説明する。
【００１４】
図１を参照すると、概念図１００により、ネットワーク検索環境における、仮想ドキュメント・ベースの検索動作を示す。検索エンジンの品質の１つの評価基準は、システム・リソースを過度に消費することなく関連するドキュメントを出来るだけ迅速に見つけることである。
【００１５】
ユーザがクエリを検索エンジンに（例えば、キーワードを用いて）送信すると、検索エンジンは所定の基準に従ってそのインデックスを調べて、マッチする結果のリストを提供することができる。当該インデックスを、データとともに格納された情報、および当該情報にインデックスを付与する方法から構築することができる。当該クエリが、ブール演算子（例えば、ＡＮＤ、ＯＲ、ＮＯＴ、等）のようなパラメータを含むことができる。当該パラメータにより、ユーザは検索語を改良し拡張することができる。しかし、従来式の検索エンジンは一般に、ドキュメント内のテキスト・データを検索するが、他のドキュメントへのリンク、埋め込まれたドキュメント、または発見されたドキュメントに関連付けられた共有データ・ソースは検出しない。
【００１６】
諸実施形態に従う検索エンジンが、後で要求しているユーザへ表示するために、リンクされたドキュメント、埋め込まれたドキュメント、または外部ドキュメントの間の関係を捉え、それに従って、当該関係を、リンクされたドキュメント、埋め込まれたドキュメント、ならびに外部データ・ソースを表す仮想ドキュメントを用いてドキュメントを順位付けする際に考慮することができる。
【００１７】
検索動作を、デスクトップ上またはネットワーク環境内のような様々な環境で実施することができ、そのうちの１つをダイアグラム１００に示す。ダイアグラム１００に示すネットワーク検索環境は例示を目的とするものである。諸実施形態を、企業ベースのネットワーク、クラウド・ベースのネットワーク、およびこれらの組合せのような様々なネットワーク環境で実装することができる。ユーザ１０２は幾つかのアプリケーションを自分のコンピューティング装置１０４で実行することができる。当該アプリケーションのうち幾つかをローカルで実行することができ、それ以外が、他のコンピューティング装置で実行されコンピューティング装置１０４によりアクセスされる、分散アプリケーションとすることができる。
【００１８】
典型的なシステムでは、コンピューティング装置１０４がクライアントとして１つまたは複数のサーバ（例えば、サーバ１１２）と通信することができる。サーバ１１２は、サーバ１１２自体、他のクライアント１０６、データ・ストア１０８、他のネットワーク・サーバ１１４、またはネットワーク１１０外のリソースにあるドキュメントをユーザ１０２が検索するための検索動作を実行することができる。
【００１９】
例示的なシナリオでは、ネットワーク１１０が企業ネットワークを表することができ、この場合、ユーザ１０２が検索要求を送信することができる。提供された検索語に基づいて、サーバ１１２上の検索アプリケーションが、リンクされたドキュメント、埋め込まれたドキュメント、または外部ドキュメントの間の関係を捉える検索をクロール時に実行することができる。当該関係を、ユーザ１０２に表示するために保存し、検索結果の順位付けのために考慮することができる。当該検索は、サーバ１１６のようなネットワーク１１０外のリソース、または、サーバ１２２およびデータ・ストア１２０を含むこともでき、これらに少なくとも１つの他のネットワーク１１８を介してアクセスすることができる。
【００２０】
上述のように、検索を、コンピューティング装置１０４に存在するアプリケーションで実行することもでき、ユーザ１０２がコンピューティング装置１０４およびネットワーク１１０を介してアクセスする分散サービスで実行することができる。検索結果を、検索を実施するアプリケーション（例えば、閲覧アプリケーション）によって表示することができ、検索エンジンにより様々なアプリケーションに提供して表示することができる。
【００２１】
図２は、仮想ドキュメントを用いてリンクされたドキュメント、埋め込まれたドキュメント、または外部ドキュメントの間の関係を捉える検索動作を示す概念図２００を含む。上で論じたように、検索されたドキュメントの内容が、他のドキュメント（例えば、スプレッド・シートのファイル内部に埋め込まれたワープロのファイル）を含む、別のドキュメントとのリンクされたデータ関係を有する（例えば、スプレッド・シートのセルが別のスプレッド・シートのファイル内の別のセルを参照する）、または外部データ・ソースからデータを受信することができ、当該外部データ・ソースがデータを他のドキュメントに提供することができる。一般に、フラットなテキスト検索の最中に、ドキュメントとその埋め込まれたドキュメント、依存ドキュメント、または外部データ・ソースとの間の関係は失われる。結果として、ユーザは、どの（いくつの）ドキュメントが特定のデータ・ソースを使用しているかを判定することができず、ドキュメント間のデータ依存性を見つけることができず、任意の関係のあるドキュメントまたはデータ・ソースの検索を繰り返してシステム・リソースを過度に消費しなければならないおそれがある。
【００２２】
諸実施形態に従うシステムでは、検索エンジン２２６が検索をデータ・ソース２２４に対して実施することができ、データ・ソース２２４はデータベース、分析サービス、ポータル（例えば、ウェブ共有サービス）、様々な形態のデータ、およびこれらに類するものを備えることができる。当該検索が、上述の関係の何れも有さない通常のドキュメントを生成することができる。当該検索が、他のドキュメントへのリンク、埋め込まれたドキュメント、および外部データ・ソースからのデータを含むドキュメントを返することができる。区別するために、上述の関係の何れも有さないドキュメント、または、別のドキュメントへのリンクを含むドキュメント、埋め込まれたドキュメント、もしくは外部ソースからのデータを、本明細書では「実ドキュメント」と称する。
【００２３】
ある実施形態によれば、リンクされたドキュメントまたは埋め込まれたドキュメントの間の関係、およびドキュメントと外部データ・ソースとの間の関係を連鎖式にリンクすることができる。これは、複数レベルの関係が複数のドキュメントの間に存在しうることを意味する。検索エンジン２２６は、リンクされたドキュメント、埋め込まれたドキュメント、または外部データ・ソースの各々に対して仮想ドキュメント２３０を生成することができる。検索エンジン２２６がさらに、発見された実ドキュメント２２８と、所定のアルゴリズムに従って順位付けられた仮想ドキュメント２３０とのインデックス２３２を生成することができる。ある実施形態によれば、順位付けアルゴリズムに従って、実ドキュメントと仮想ドキュメントとの間の関係２３４を考慮することができる。
【００２４】
他の実施形態によれば、グラフィック方式、テキスト方式、またはこれらに類する方式を用いて、リスト化した検索結果に加えて当該関係に関する情報をユーザに提示できるように、関係２３４を保存して、表示アプリケーション（複数可）２３６に提供することができる。以下でより詳細に説明するように、関係２３４をメタデータとしてまたは仮想ドキュメントの各々の識別子の一部として、表示アプリケーション（複数可）２３６に提供することができる。
【００２５】
図１および図２の例示的なシステムを、具体的なサーバ、クライアント装置、ソフトウェア・モジュール、および対話に関して説明した。諸実施形態は、これらの例示的な構成に従うシステムには限定されない。仮想ドキュメントを用いたインデックス付与および検索を、より少ないまたはより多いコンポーネントを利用し他のタスクを実施する構成で実装することができる。さらに、具体的なプロトコルおよび／またはインタフェースを、本明細書で説明した原理を用いて同様な方法で実装することができる。
【００２６】
図３は、ある実施形態に従うシステムにおいて、リンクされたドキュメントの間の関係を、仮想ドキュメントを介して捉えることを示す。ダイアグラム３００は、例示的なドキュメント３４０を示す。例示的なドキュメント３４０は、ドキュメント３４２へのリンクを含み、ドキュメント３４２はドキュメント３４４へのリンクを含む。ドキュメント３４２および３４４を従来式の検索によっては発見することができない。諸実施形態に従う検索エンジンは、ドキュメント３４０を検索実ドキュメント３５０として返し、ドキュメント３４２および３４４を仮想ドキュメント３５２および３６４として返すことができる。
【００２７】
一実施形態によれば、ドキュメント間のデータ依存性関係をドキュメントの識別子に保存することができる。例えば、仮想ドキュメント３５２を特定するＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）は、２つのドキュメント間のデータ依存性を示すドキュメント３４０と３４２の組合せとすることができる。同様に、仮想ドキュメント３６４のＵＲＬは、３つのドキュメント間の連鎖関係を示す３つのドキュメント３４０、３４２、および３４４全ての組合せとすることができる。
【００２８】
図４は、他の実施形態に従うシステムにおいて、データ・ソースを共有するドキュメントの間の関係を、仮想ドキュメントを介して捉えることを示す。ダイアグラム４００に示すように、ドキュメント４６２および４６４がデータ・ソース４６０から動的に提供されるデータを含むことができる。例えば、ドキュメント４６２および４６４はスプレッド・シートであり、データ・ソース４６０で保持されるデータを含むことができ、ドキュメント４６２および４６４を定期的に更新することができる。
【００２９】
諸実施形態に従う検索エンジンが、ドキュメント４６２、４６４とデータ・ソース４６０との間の関係を判定し、データ・ソース４６０を表す仮想ドキュメント４６５を生成することができる。一実施形態によれば、検索結果の実ドキュメント４６６、４６８と仮想ドキュメント４６５との間の関係を、メタデータに保存するか、または、実ドキュメント４６６および４６８の識別子に保存することができる。例えば、ドキュメントＵＲＬを、サーバ名、および、ドキュメントとデータ・ソースとの間の関係を示すデータ・ソース４６０のデータ・ソース識別子で補完することができる。表示アプリケーションが、ドキュメント４６２および４６４の両方が同じドキュメントをこのように共有するという事実を判定することができる。諸実施形態は、２つのドキュメントに限定されず、単一のデータ・ソースの共有に限定されない。任意数のデータ・ソースを共有する任意数のドキュメントにインデックスを付与し、仮想ドキュメントを用いて結果を表示してデータ依存性を捉えることができる。
【００３０】
図５は、別の実施形態に従うシステムにおいて、埋め込まれたドキュメントの間の関係を、仮想ドキュメントを介して捉えることを示す。ダイアグラム５００内のドキュメント５７０は、埋め込まれたドキュメント５７２を含む。当該埋め込まれたドキュメント５７２を、フラットなテキスト・ベースの検索エンジンにより発見することはできない。
【００３１】
諸実施形態に従う検索エンジンが、検索結果において、ドキュメント５７０を表す実ドキュメント５８０に加えて、埋め込まれたドキュメント５７２を表す仮想ドキュメント５８２を生成することができる。上で論じた例と同様に、ドキュメント間の関係をメタデータまたはドキュメントの識別子に保存することができる。例えば、仮想ドキュメント５８２のＵＲＬは、親ドキュメント（５７０）のＵＲＬおよび埋め込まれたドキュメント（５７２）の名前を含むことができる。さらに、埋め込まれたドキュメント５７２の種類（例えば、ワープロ、スプレッド・シート、画像、プレゼンテーション、閲覧ドキュメント、等）を仮想ドキュメントのプロパティとして保存することができる。
【００３２】
図３、図４、および図５における例示的なドキュメント表現を具体的なドキュメント、関係、および表示の例に関して説明した。諸実施形態はこれらの例示的な構成に従うシステムには限定されない。仮想ドキュメントを用いたインデックス付与および検索を、本明細書で説明した原理を用いた他種のドキュメント、関係、および構成で実装することができる。
【００３３】
図６は、諸実施形態を実装できる例示的なネットワーク環境の図である。ドキュメント間の関係を捉えるための仮想ドキュメント・ベースの検索を提供するプラットフォームを、ホストされたサービスのような、１つまたは複数のサーバ６１４で実行されるソフトウェアを介して実装することができる。当該プラットフォームは、ネットワーク（複数可）６１０を介してスマートフォン６１３、ラップトップ・コンピュータ６１２、またはデスクトップ・コンピュータ６１１のような個々のコンピューティング装置（「クライアント装置」）のクライアント・アプリケーションと通信することができる。
【００３４】
上で論じたように、クライアント装置６１１〜６１３のうち任意のもので実行されるクライアント・アプリケーションは、クライアント装置６１１〜６１３、サーバ６１４、または個々のサーバ６１６の検索エンジンに検索要求を送信することができる。前に論じたように、当該検索エンジンは、リンクされたドキュメント、埋め込まれたドキュメントのような関係のあるドキュメント、またはそれらを共有するデータ・ソースを判定し、当該関係を保存して、仮想ドキュメントをクロール時に生成することができる。検索結果を、捉えた関係を考慮して順位付けることができる。当該サービスが、関連データをデータ・ストア（複数可）６１９から直接にまたはデータベース・サーバ６１８を介して取り出し、順位付けた検索結果をクライアント装置６１１〜６１３を介してユーザ（複数可）に提供することができる。
【００３５】
ネットワーク（複数可）６１０は、サーバ、クライアント、インターネット・サービス・プロバイダ、および通信媒体からなる任意のトポロジを含むことができる。諸実施形態に従うシステムは静的または動的なトポロジを有することができる。ネットワーク（複数可）６１０が、企業ネットワークのような安全なネットワーク、無線のオープン・ネットワーク、またはインターネットのような安全でないネットワークを含むことができる。ネットワーク（複数可）６１０は、ＰＳＴＮ（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋ）またはセルラ・ネットワークのような他のネットワーク上の通信を調整することができる。さらに、ネットワーク（複数可）６１０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）またはそれに類するもののような短距離無線ネットワークを含むことができる。ネットワーク（複数可）６１０は、本明細書で説明したノード間の通信を提供する。限定ではなく例として、ネットワーク（複数可）６１０は、音響、ＲＦ、赤外線および他の無線媒体のような無線媒体を含むことができる。
【００３６】
コンピューティング装置、アプリケーション、データ・ソース、およびデータ分散システムの多数の他の構成を使用して、仮想ドキュメントを用いたインデックス付与および検索のためのフレームワークを実装することができる。さらに、図６で論じたネットワーク環境は例示を目的とするためのものにすぎない。諸実施形態は、これらの例示的なアプリケーション、モジュール、またはプロセスに限定されない。
【００３７】
図７およびその関連する議論は、諸実施形態を実装できる適切なコンピューティング環境の簡潔で一般的な説明を提供することを目的としている。図７を参照すると、コンピューティング装置７００のような、諸実施形態に従うアプリケーション向けの例示的なコンピューティング動作環境のブロック図を示す。基本的な構成では、コンピューティング装置７００は、検索を実施できるクライアント・アプリケーションを実行するクライアント装置、または、諸実施形感に従って検索を実施できるサービスを実行するサーバとすることができ、少なくとも１つの処理ユニット７０２およびシステム・メモリ７０４を備えることができる。コンピューティング装置７００が、プログラムの実行において協調する複数の処理ユニットを備えることができる。コンピューティング装置の厳密な構成および種類に応じて、システム・メモリ７０４が（ＲＡＭのように）揮発性、（ＲＯＭ、フラッシュ・メモリ、等のように）不揮発性、またはこれら２つの何らかの組合せとすることができる。システム・メモリ７０４は一般に、ワシントン州レドモンドのマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）オペレーティング・システムのような、プラットフォームの動作を制御するのに適したオペレーティング・システム７０５を備える。システム・メモリ７０４はまた、１つまたは複数のソフトウェア・アプリケーション、例えば、プログラム・モジュール７０６、検索可能アプリケーション７２２、検索エンジン７２４、および場合によっては他のアプリケーション／データ７２６を備えることができる。
【００３８】
アプリケーション７２２は、コンピューティング装置７００内の他のアプリケーション／データ７２６に対して、および／または、企業ベースもしくはクラウド・ベースのネットワーク環境で利用できる様々な種類のデータに対して、検索エンジン７２４を介して検索を実施できる任意のアプリケーションとすることができる。検索エンジン７２４は、前に論じたように、リンクされたドキュメント、埋め込まれたドキュメント、または発見されたドキュメントに関連付けられたドキュメントを共有するデータ・ソースを表す仮想ドキュメントを生成することができる。アプリケーション７２２および検索エンジン７２４が、別個のアプリケーションであるか、または、ホストされたサービスを統合したコンポーネントとすることができる。この基本的な構成を、図７において点線７０８内のコンポーネントにより示す。
【００３９】
コンピューティング装置７００が追加の特徴または機能を有することができる。例えば、コンピューティング装置７００が、例えば磁気ディスク、光ディスク、またはテープのような（取外し可能なおよび／または取外し不能な）追加のデータ記憶装置を備えることができる。かかる追加の記憶装置を図７において取外し可能記憶装置７０９および取外し不能記憶装置７１０により示す。コンピュータ可読記憶媒体が、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータのような情報を記憶するための任意の方法または技術で実装した揮発性および不揮発性の媒体、取外し可能および取外し不能な媒体を備えることができる。システム・メモリ７０４、取外し可能記憶装置７０９、および取外し不能記憶装置７１０は全て、コンピュータ可読記憶媒体の例である。コンピュータ可読記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）もしくは他の光記憶装置、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報の記憶に使用できコンピューティング装置７００がアクセス可能な他の任意の媒体が含まれるがこれらに限らない。かかる任意のコンピュータ可読記憶媒体がコンピューティング装置７００の一部とすることができる。コンピューティング装置７００がまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、およびこれらに類する入力装置のような入力装置（複数可）７１２を備えることができる。ディスプレイ、スピーカ、プリンタ、および他種の出力装置のような出力装置（複数可）７１４を備えることができる。これらの装置は当業界で公知であり、ここではこれ以上論ずることを要しない。
【００４０】
コンピューティング装置７００がまた、分散コンピューティング環境における有線または無線のネットワーク、衛星リンク、セルラ・リンク、短距離ネットワーク、およびこれらに類する機構のような、当該装置が他の装置７１８と通信できるようにする通信接続７１６を含むことができる。他の装置７１８には、通信アプリケーション、他のウェブ・サーバ、およびこれらに類する装置を実行するコンピュータ装置（複数可）を含むことができる。通信接続（複数可）７１６は通信媒体の一例である。通信媒体は、内部にコンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータを含むことができる。限定ではなく例として、通信媒体には、有線ネットワークまたは直接配線接続のような有線媒体、および、音響、ＲＦ、赤外線、および他の無線媒体のような無線媒体を含む。
【００４１】
例示的な諸実施形態には方法を含む。これらの方法を、本明細書で説明した構造を含めて、任意の数の手段で実装することができる。かかる手段の１つは、本明細書で説明した種類の装置のマシン動作によるものである。
【００４２】
別の任意的な手段は、方法の個々の動作のうちの１つまたは複数を、一部を実施する１人または複数の人間の操作者と協力して実施することである。これらの人間の操作者は互いに協調する必要はなく、各々はプログラムの一部を実施するマシンとのみ協調することができる。
【００４３】
図８は、諸実施形態に従う、仮想ドキュメントを用いてリンクされたドキュメント、埋め込まれたドキュメント、または外部ドキュメントの間の関係を捉える検索を行うプロセス８００に関する論理流れ図を示す。プロセス８００を、サーバまたはクライアント装置で実行されるアプリケーションの一部として実装することができる。
【００４４】
プロセス８００は動作８１０で開始し、ドキュメントをクロールする。後の検索で検索結果を高速に表示するために、クロールした結果にインデックスを付与することができる。動作８２０で、クロールが実行されているときに、リンクされたドキュメント、埋め込まれたドキュメント、または外部ドキュメントの間の関係を判定することができる。当該関係が、前に論じたように複数のドキュメントを連結することができる。仮想ドキュメントのクローリングおよびインデックス付与が複数サイクルでなく一度で実施できるように、各仮想ドキュメントを一意に特定することができる。
【００４５】
動作８３０で、仮想ドキュメントを作成して、連結されたドキュメントまたはデータ・ソースを表現し、関係を後で表示するために保存できるようにすることができる。さらに、当該関係を使用して実ドキュメントおよび仮想ドキュメントを順位付けることができる。動作８４０で、検索要求をユーザから受け取ってもよい。動作８５０で、検索結果を表示アプリケーションに提供することができる。順位付けしたドキュメントとともに、当該関係に関する情報を、例えば、メタデータとして、または、仮想ドキュメントの識別子の一部として提供することができる。このように、諸実施形態に従うシステムにおいて、仮想ドキュメントを独立にクロールしインデックス付与する。ドキュメントと、関連付けられた仮想ドキュメントとの間の関係を、実ドキュメントおよび関連付けられたドキュメントの両方のプロパティとして格納して、これらを検索可能かつナビゲート可能とすることができる。任意的な動作８６０で、当該関係を様々なフォーマットのドキュメント・マッピングとして表示することができる。
【００４６】
プロセス８００に含まれる動作は、例示を目的とするものである。リンクされたドキュメント、埋め込まれたドキュメント、およびドキュメントを共有するデータ・ソースの間の関係を捉えるための、仮想ドキュメントを用いたインデックス付与と検索を、より少ないステップまたはより多くのステップを有する同様のプロセスにより実装することができ、本明細書で説明した原理を用いた別順序の動作で実装することができる。
【００４７】
以上の明細、例およびデータは、諸実施形態の構成の製造および使用について完全に説明したものである。本発明を構造的特徴および／または方法論的動作に固有な言葉で説明したが、添付の特許請求の範囲で定義した発明は必ずしも上述の具体的な特徴または動作に限定されないことは理解されよう。寧ろ、上述した当該具体的な特徴および動作を、特許請求の範囲および諸実施形態を実装する例示的な形態として開示する。
【図１】
0005856139.tif 000002
【図２】
0005856139.tif 000003
【図３】
0005856139.tif 000004
【図４】
0005856139.tif 000005
【図５】
0005856139.tif 000006
【図６】
0005856139.tif 000007
【図７】
0005856139.tif 000008
【図８】
0005856139.tif 000009