(57)【要約】  アーティクルから情報を識別し、抽出するシステム及び方法について説明する。一実施例において、検索エンジンは、クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付ることが可能なアーティクルとユーザの対話から成るイベントの発生時に該イベントをリアルタイムで取り込み、前記イベントをインデックス化するべきか否か決定し、前記イベントをインデックス化するべきである場合、前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶する方法を実施する。
2007534057.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルとユーザの対話から成るイベントの発生時に該イベントをリアルタイムで取り込むステップと、
前記イベントをインデックス化するべきか否か決定するステップと、
前記イベントをインデックス化するべきである場合、前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶するステップと、
を備える方法。
【請求項２】
更に、前記イベントに少なくともある程度基づいて現在のユーザの状態を更新するステップを備える請求項１に記載の方法。
【請求項３】
前記イベントはイベントデータから成る請求項１に記載の方法。
【請求項４】
前記イベントは予め定義されたイベント・スキーマ形式で取り込まれ、表される請求項１に記載の方法。
【請求項５】
前記アーティクルとユーザの対話は、アーティクルをロードするステップを含む請求項１に記載の方法。
【請求項６】
前記アーティクルとユーザの対話は、アーティクルを保存するステップを含む請求項１に記載の方法。
【請求項７】
前記アーティクルとユーザの対話は、アーティクルを表示するステップを含む請求項１に記載の方法。
【請求項８】
前記アーティクルとのユーザの対話は、アーティクルのメタデータを更新するステップを含む請求項１に記載の方法。
【請求項９】
前記アーティクルの前記メタデータを更新するステップは、アーティクルをブックマークするステップを含む請求項８に記載の方法。
【請求項１０】
アーティクルの前記メタデータを更新するステップは、アーティクルを印刷するステップを含む請求項８に記載の方法。
【請求項１１】
アーティクルの前記メタデータを更新する際には、アーティクルを削除するステップを含む請求項８に記載の方法。
【請求項１２】
アーティクルの前記メタデータを更新する際には、アーティクルを移動させるステップを含む請求項８に記載の方法。
【請求項１３】
クライアント装置上で発生する複数のイベントであって各々が複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けられるイベントを取り込むステップであって、該イベントのうち少なくともいくつかは該イベントの発生時にリアルタイムで取り込まれるものと、
前記イベントのうち少なくともいくつかをインデックス化して記憶するステップであって、該インデックス化して記憶されたイベントは関連するアーティクルを有するものと、
検索クエリを受け取るステップと、
前記検索クエリに関連するイベントから関連アーティクルを検索するステップと、
を具備する方法。
【請求項１４】
更に、前記関連アーティクルから一組の検索結果を生成するステップを具備する請求項１３に記載の方法。
【請求項１５】
前記検索クエリはユーザによって入力されるものである請求項１３に記載の方法。
【請求項１６】
前記検索クエリは現在のユーザ状態に基づき自動的に生成される請求項１３に記載の方法。
【請求項１７】
前記現在のユーザ状態は、少なくともある程度は少なくとも１のリアルタイムイベントによって決定される請求項１３に記載の方法。
【請求項１８】
更に、前記検索クエリに関連するネットワーク・アーティクルを検索するステップを具備する請求項１３に記載の方法。
【請求項１９】
更に、前記関連アーティクル及びネットワーク・アーティクルから一組の検索結果を検索するステップを具備する請求項１８に記載の方法。
【請求項２０】
クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルとユーザの対話からそれぞれ成る複数のリアルタイムイベントの発生時に該リアルタイムイベントをリアルタイムで取り込むステップと、
過去に発生した複数の過去イベントであって、各々がクライアント装置のアーティクルとユーザの対話から成る過去イベントを取り込むステップであって、前記アーティクルは複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルであり、リアルタイムイベント及び過去イベントはイベントであるものと、
各イベントに対して、該イベントをインデックス化するべきか否か決定するステップと、
前記イベントをインデックス化するべきである場合、前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶するステップと、
を具備する方法。
【請求項２１】
クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルとユーザの対話から成るイベントの発生時に該イベントをリアルタイムで取り込むステップと、
前記イベントに少なくともある程度基づいて現在のユーザ状態を更新するステップと、
前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶するステップと、
を具備する方法。
【請求項２２】
前記イベントはリアルタイムイベントである請求項２１に記載の方法。
【請求項２３】
前記イベントは過去イベントである請求項２１に記載の方法。
【請求項２４】
クライアント装置上で発生する複数のイベントであって各々が複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けられるイベントを取り込むステップと、
前記イベントのうち少なくともいくつかをインデックス化して記憶するステップであって、該インデックス化して記憶されたイベントは関連するアーティクルを有するものと、
複数のネットワーク・アーティクルをインデックス化するステップと、
検索クエリを受け取るステップと、
前記検索クエリに少なくともある程度基づいて関連するクライアント・アーティクル及びネットワーク・アーティクルを検索するステップと、
具備する方法。
【請求項２５】
前記イベントの少なくともいくつかはリアルタイムイベントであり、リアルタイムで取り込まれステップを具備する請求項２４に記載の方法。
【請求項２６】
前記検索クエリは、少なくとも１のリアルタイムイベントに少なくともある程度基づいて暗黙的に生成される請求項２５に記載の方法。
【請求項２７】
プログラムコードを含むコンピュータ読み取り可能な媒体であって、
クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルとユーザの対話から成るイベントの発生時に該イベントをリアルタイムで取り込むためのプログラムコードと、
前記イベントをインデックス化するべきか否か決定するプログラムコードと、
前記イベントをインデックス化するべきである場合、前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶するためのプログラムコードと、
を含む媒体。
【請求項２８】
更に、前記イベントに少なくともある程度基づいて現在のユーザの状態を更新するためのプログラムコードを含む請求項２７に記載の媒体。
【請求項２９】
前記イベントはイベントデータから成る請求項２７に記載の媒体。
【請求項３０】
前記イベントは予め定義されたイベント・スキーマ形式で取り込まれ、表される請求項２７に記載の媒体。
【請求項３１】
アーティクルとユーザの対話はアーティクルをロードすることから成る請求項２７に記載の媒体。
【請求項３２】
アーティクルとユーザの対話はアーティクルを保存することから成る請求項２７に記載の媒体。
【請求項３３】
アーティクルとユーザの対話はアーティクルを表示することから成る請求項２７に記載の媒体。
【請求項３４】
アーティクルとのユーザの対話はアーティクルのメタデータを更新することから成る請求項２７に記載の媒体。
【請求項３５】
アーティクルの前記メタデータを更新する際には、アーティクルをブックマークする請求項３４に記載の媒体。
【請求項３６】
アーティクルの前記メタデータを更新する際には、アーティクルを印刷する請求項３４に記載の媒体。
【請求項３７】
アーティクルの前記メタデータを更新する際には、アーティクルを削除する請求項３４に記載の媒体。
【請求項３８】
アーティクルの前記メタデータを更新する際には、アーティクルを移動させる請求項３４に記載の媒体。
【請求項３９】
プログラムコードを含むコンピュータ読み取り可能な媒体であって、
クライアント装置上で発生する複数のイベントであり各々が複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けられるイベントを取り込み、該イベントのうち少なくともいくつかは該イベントの発生時にリアルタイムで取り込むためのプログラムコードと、
前記イベントのうち少なくともいくつかをインデックス化して記憶するためのプログラムコードであって、該インデックス化して記憶されたイベントは関連するアーティクルを有するプログラムコードと、
検索クエリを受け取るためのプログラムコードと、
前記検索クエリに関連するイベントから関連アーティクルを検索するためのプログラムコードと、
を含む媒体。
【請求項４０】
更に、前記関連アーティクルから一組の検索結果を生成するためのプログラムコードを含む請求項３９に記載媒体。
【請求項４１】
前記検索クエリはユーザによって入力される請求項３９に記載の媒体。
【請求項４２】
前記検索クエリは現在のユーザ状態に基づき自動的に生成される請求項３９に記載の媒体。
【請求項４３】
前記現在のユーザ状態は、少なくともある程度は少なくとも１のリアルタイムイベントによって決定される請求項４２に記載の媒体。
【請求項４４】
更に、前記検索クエリに関連するネットワーク・アーティクルを検索するためのプログラムコードを含む請求項３９に記載の媒体。
【請求項４５】
更に、前記関連アーティクル及びネットワーク・アーティクルから一組の検索結果を検索するためのプログラムコードを含む請求項４４に記載の媒体。
【請求項４６】
プログラムコードを含むコンピュータ読み取り可能な媒体であって、
クライアント装置上のアーティクルであり複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルとユーザの対話からそれぞれ成る複数のリアルタイムイベントの発生時に該リアルタイムイベントをリアルタイムで取り込むためのプログラムコードと、
過去に発生した複数の過去イベントであって、各々がクライアント装置のアーティクルとユーザの対話から成る過去イベントを取り込むためのプログラムコードであって、前記アーティクルは複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルであり、リアルタイムイベント及び過去イベントはイベントであるプログラムコードと、
各イベントに対して、該イベントをインデックス化するべきか否か決定するためのプログラムコードと、
前記イベントをインデックス化するべきである場合、前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶するためのプログラムコードを含む媒体。
【請求項４７】
プログラムコードを含むコンピュータ読み取り可能な媒体であって、
クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルとユーザの対話から成るイベントの発生時に該イベントをリアルタイムで取り込むためのプログラムコードと、
前記イベントに少なくともある程度基づいて現在のユーザ状態を更新するためのプログラムコードと、
前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶するためのプログラムコードを含む媒体。
【請求項４８】
前記イベントはリアルタイムイベントである請求項４７に記載の媒体。
【請求項４９】
前記イベントは過去イベントである請求項４７に記載の媒体。
【請求項５０】
プログラムコードを含むコンピュータ読み取り可能な媒体であって、
クライアント装置上で発生する複数のイベントであり各々が複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けられるイベントを取り込むためのプログラムコードと、
前記イベントのうち少なくともいくつかをインデックス化して記憶するためのプログラムコードであって、該インデックス化して記憶されたイベントは関連するアーティクルを有するプログラムコードと、
複数のネットワーク・アーティクルをインデックス化するためのプログラムコードと、
検索クエリを受け取るためのプログラムコードと、
前記検索クエリに少なくともある程度基づいて関連するクライアント・アーティクル及びネットワーク・アーティクルを検索するためのプログラムコードを含む媒体。
【請求項５１】
前記イベントの少なくともいくつかはリアルタイムイベントであり、リアルタイムで取り込まれる請求項５０に記載の媒体。
【請求項５２】
前記検索クエリは少なくとも１のリアルタイムイベントに少なくともある程度基づいて暗黙的に生成される請求項５１に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、この参照により開示に含まれる「情報取り込み方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，７７３号、「ユーザ識別方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１５，１５８号、「アーティクル変換方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，４１４号、「重複イベントを削除する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，３１７号、「インスタント・メッセンジャのメッセージを処理する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，７６６号、「情報を取り込む方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，４１８号、「検索及び抽出用データベースにおいてリアルタイムでインデックス化する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，７７０号、「様々なバージョンのアーティクルをインデックス化して記憶する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，７７２号、「アーティクルの記憶を管理する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，４１７号、「複数の暗黙的検索クエリを生成するシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１４，９０８号、「イベントからキーワードを抽出する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，８７１号、「検索クエリ結果を重み付けするシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１５，０７４号、「内容表示をリフレッシュする方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，０５６号、「ユーザ・プロファイルを構築して利用するシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１４，３６８号、「名前付き要素を識別するシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１４，３６５号、「ボイラープレートを解析するシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１５，１５０号、「ユーザインターフェースを生成するシステム及び方法」という名称の２００３年１２月３１日付米国特許出願第１０／７５０，１２７号、「ユーザインターフェースの属性を決定するシステム及び方法」という名称の２００３年１２月３１日付米国特許出願第１０／７５０，１０５号、「一組のクエリ結果を構築するシステム及び方法」という名称の２００３年１２月３１日付米国特許出願第１０／７５０，１０９号、「アプリケーションを検索エンジンに接続する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，３８７号、「検索結果を一元化するシステム及び方法」という名称の２００３年１２月３１日付米国特許出願第１０／７４９，９９８号、「リソースの使用を規制するシステム及び方法」という名称の２００３年１２月３１日付米国特許出願第１０／７５０，１２８号、「インデックスを同期化するシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１４，９５２号、「アーティクル情報を利用して検索の順位付けを向上させる方法及びシステム」という名称の２００３年１２月３１日付米国特許出願第１０／７４９，４３４号、「クライアント側の動作データに基づく順位付けスコアを伝搬することにより検索の順位付けを向上させる方法及びシステム」という名称の２００３年１２月３１日付米国特許出願第１０／７４９，６２０号、「アーティクルの代表的画像としての画像を識別する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１３，８１８号、「ソフトウェアを提供しインストールするシステム及び方法」という名称の２００３年１２月３１日付米国特許出願第１０／７４９，４３９号、「ソフトウェアの更新を提供するシステム及び方法」という名称の２００３年１２月３１日付米国特許出願第１０／７４９，４４１号、「アーティクル情報を利用して検索の順位付けを向上させる方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，３５７号、「テキスト情報を処理する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，４８６号、「テキスト情報を生成する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，４８７号、「キーワードをユーザインターフェース領域に対応付けるシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１４，０５３号、「暗黙的検索結果を順位付けするシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１３，８７５号、「ユーザインターフェースを生成するシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１４，０５２号、「オフライン検索を行う方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，０６９号、「データ・ストアの全体あるいは一部を複製するシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１３，８８８号、「巡回により情報を収集して更新する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１５，０６０号、「電子メールメッセージを処理する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，９９９号、「コンタクト情報を処理する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１３，８３８号、「イベントデータを選択的に記憶する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，０５４号、「アーティクルを検索し抽出するシステム及び方法」という名称の２００４年３月３１日付米国特許出願第１０／８１４，０５５号、「メディアファイルを処理する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１３，８９５号、「位置情報に基づきイベントをインデックス化し抽出する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，７７１号、「検索結果を提供する方法及びシステム」という名称の２００４年３月３１日付米国特許出願第１０／８１４，９２４号、「アーティクル関連付けの基準を決定するシステム及び方法」という名称の２００４年６月３０日付米国特許出願代理人事件番号５３０５１／２９４５４５、「関連情報の抽出システム及び方法」という名称の２００４年６月３０日付米国特許出願代理人事件番号５３０５１／２９４５４６、「カテゴリに基づく検索システム及び方法」という名称の２００４年６月３０日付米国特許出願代理人事件番号５３０５１／２９７２７１、「自然言語検索システム及び方法」という名称の２００４年６月３０日付米国特許出願代理人事件番号５３０５１／２９７２７２、「ディレクトリ検索を行うシステム及び方法」という名称の２００４年６月３０日付米国特許出願代理人事件番号５３０５１／２９７２８６、「インスタント・メッセンジャのイベントを関連付ける方法及びシステム」という名称の２００４年６月３０日付米国特許出願代理人事件番号５３０５１／２９８７８１に基づく優先権を主張する。
【０００２】
本発明は検索エンジンに関連する。本発明は、特に、情報を取り込み抽出する方法及びシステムに関連する。
【背景技術】
【０００３】
ユーザは、パーソナルコンピュータ、携帯情報端末、あるいは携帯電話等のクライアント装置により、電子メール、ウェブページ、ワープロ文書、スプレッドシート文書、インスタント・メッセンジャのメッセージ、及びプレゼンテーション文書等、多数のアーティクルを生成し、アクセスする。クライアント装置に連結され、クライアント装置によりアクセス可能であり、あるいは関連付けられている一以上の記憶装置上に記憶されているアーティクルもある。ユーザは、アーティクルを探して記憶装置上を検索したい場合がある。
【０００４】
従来のクライアント装置の検索アプリケーションは、クライアント装置のパフォーマンスを著しく低下させる場合がある。例えば、ある従来のクライアント装置検索アプリケーションは、一般的に、バッチ処理により全アーティクルをインデックス化するが、これにより、バッチ処理が行われている間、クライアント装置のパフォーマンスが著しく遅くなるおそれがある。更に、バッチ処理は周期的にのみ行われる。したがって、ユーザが検索を行うと、最も新しいアーティクルが結果に含まれない場合がある。更に、クライアント装置が動作していない時にスケジュール設定されていないためにバッチ処理が長期間行われない場合、クライアント装置に関連するアーティクルのインデックスは古くんってしまうことがある。また、従来のクライアント装置検索アプリケーションは、バッチ処理毎にインデックスを再構築したり、部分的なインデックスを新しく構築してクライアント装置のリソースを使用し得るマージ作業を行ったりしなければならない場合がある。また、従来のクライアント装置検索アプリケーションは、動作中に多大なシステムリソースを使用する場合があり、この結果、クライアント装置のパフォーマンスが遅くなる。
【０００５】
更に、従来のクライアント装置検索アプリケーションは、結果を生成するためにユーザからの明示的な検索クエリを必要とする場合があり、特定のアプリケーションファイルのファイル名や内容の調査に限定されてしまう場合がある。
【発明の開示】
【０００６】
本発明の実施例は、情報を取り込み、抽出する方法及びシステムから成る。一実施例において、検索エンジンは、クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルとユーザの対話から成るイベントの発生時に該イベントをリアルタイムで取り込み、前記イベントをインデックス化するべきか否か決定し、前記イベントをインデックス化するべきである場合、前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶する方法を実施する。別の実施例において、検索エンジンは、クライアント装置上で発生する複数のイベントであって各々が複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けられるイベントを取り込み、該イベントのうち少なくともいくつかは該イベントの発生時にリアルタイムで取り込まれ、前記イベントのうち少なくともいくつかをインデックス化して記憶し、該インデックス化して記憶されたイベントは関連するアーティクルを有し、検索クエリを受け取り、前記検索クエリに関連するイベントから関連アーティクルを検索する方法を実施する。
【０００７】
これらの実施例は発明を限定あるいは定義するために言及するのではなく、発明の理解を助けるために提供されるものである。実施例は詳細な説明において説明し、そこで発明について更に説明する。本発明の様々な実施例により提供される利点は、本明細書を吟味することにより更に理解できるだろう。
【０００８】
これらの、及びその他の本発明の特徴、側面、及び利点は、添付図面を参照しながら以下の詳細な説明を読むことで、より良く理解できる。
【０００９】
【００１０】
【００１１】
【発明を実施するための最良の形態】
【００１２】
いくつかの図面にわたって同様の要素が同一の番号により示される図面を参照すると、図１は本発明の一実施例を実施する環境の一例を示すブロック図である。図示されている環境は、クライアント側の検索エンジン構造の環境を表しているが、その他の実施例も可能である。図１のシステム１００は、ネットワーク１０６上でサーバ装置１５０と通信を行うことが可能な複数のクライアント装置１０２ａ−ｎを有する。図示されているネットワーク１０６はインターネットから成る。その他の実施例では、イントラネット等、他のネットワークを代わりに用いることができる。更に、本発明の方法は、サーバ装置やネットワークと通信を行わない単一のクライアント装置内で実施することもできる。
【００１３】
図１に示される各クライアント装置１０２ａ−ｎはコンピュータ可読の媒体１０８を有する。図1に示す実施例は、プロセッサ１１０に連結されたランダムアクセスメモリ（ＲＡＭ）１０８を有する。プロセッサ１１０は、メモリ１０８に格納されているコンピュータにより実行可能なプログラム指令を実行する。このようなプロセッサは、マイクロプロセッサ、ＡＳＩＣ、状態機械、あるいはその他のプロセッサにより構成することができ、カリフォルニア州サンタクララのインテル社やイリノイ州シャンバーグのモトローラ社のプロセッサ等、多数の好適なコンピュータプロセッサから任意に選択することができる。このようなプロセッサは、プロセッサにより実行されると該プロセッサにステップを実行させる指令を記憶するコンピュータ可読の媒体等の媒体を含めることができ、あるいはそのような媒体と通信状態にすることができる。コンピュータにより読み取り可能な媒体の例としては、クライアント１０２ａのプロセッサ１１０等のプロセッサにコンピュータ可読の指示を供給することが可能な電子、光、磁気、その他の記憶あるいは伝送装置が挙げられるが、これらに限定されない。その他の好適な媒体の例としては、フレキシブル磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、磁気ディスク、メモリチップ、ＲＯＭ、ＲＡＭ、ＡＳＩＣ、コンフィギュアド・プロセッサ、あらゆる光学メディア、あらゆる磁気テープあるいはその他の磁気メディア、またはコンピュータのプロセッサが指示を読み取ることが可能なその他の媒体が挙げられるが、これらに限定されない。また、そのほか、様々な形態のコンピュータにより読み取り可能な媒体、例えばルータ、プライベートあるいは公共ネットワーク、あるいはその他の伝送装置あるいは経路も、有線か無線かに関わらず、コンピュータに指示を送信あるいは搬送することができる。例えば、Ｃ、Ｃ＋＋、Ｃ＃、ヴィジュアルベーシック、ジャバ、パイソン、パール、ジャバスクリプト等、任意の好適なコンピュータプログラム言語のコードにより指示を構成することができる。
【００１４】
クライアント装置１０２ａ−ｎはネットワーク１０６に連結することができるが、独立型の装置とすることもできる。また、クライアント装置１０２ａ−ｎには、マウス、ＣＤ−ＲＯＭ、ＤＶＤ、キーボード、表示装置、その他の入力あるいは出力装置等、多数の外部あるいは内部装置を設けることができる。クライアント装置１０２ａ−ｎとしては、例えば、パーソナルコンピュータ、デジタル・アシスタント、携帯情報端末、携帯電話、セルラー式電話、高度自動機能電話、ポケットベル、デジタル・タブレット、ラップトップコンピュータ、インターネット機器、及びその他のプロセッサをベースにした装置が挙げられる。一般に、クライアント装置１０２ａ−ｎは、一以上のクライアント・アプリケーション・プログラムをサポートできるマイクロソフト（登録商標）・ウィンドウズ（登録商標）あるいはリナックス等、任意の好適なオペレーティングシステム上で動作するプロセッサをベースにした任意の種類のプラットフォームとすることができる。例えば、クライアント装置１０２ａ−ｎは、クライアント・アプリケーション１２０としても知られるクライアント・アプリケーション・プログラムを実行するパーソナルコンピュータにより構成することができる。クライアント・アプリケーション１２０はメモリ１０８に格納することができ、例えば、クライアント装置によって実行可能なワードプロセシング・アプリケーション、スプレッドシート・アプリケーション、電子メールアプリケーション、インスタント・メッセンジャ・アプリケーション、プレゼンテーション・アプリケーション、インターネット・ブラウザ・アプリケーション、カレンダ／スケジュール管理アプリケーション、ビデオ再生アプリケーション、音声再生アプリケーション、画像表示アプリケーション、ファイル管理プログラム、オペレーティングシステム・シェル、及びその他のアプリケーションから構成することができる。また、クライアント・アプリケーションは、他のアプリケーションと対話したり他のアプリケーションにアクセスしたりするクライアント側アプリケーション（例えば、メールにアクセスするためにリモート電子メールサーバと対話するクライアント装置１０２ａ上で実行されるウェブブラウザ等）から構成することができる。
【００１５】
ユーザ１１２ａは、クライアント装置１０２ａの各種入力及び出力装置を介して、各種クライアント・アプリケーション１２０及びクライアント・アプリケーション１２０に関連するアーティクルと対話を行う。アーティクルとしては、例えば、ワープロ文書、スプレッドシート文書、プレゼンテーション文書、電子メール、インスタント・メッセンジャのメッセージ、データベースの項目、カレンダの項目、アポイントメントの項目、タスクマネージャの項目、ソースコード・ファイル、及びその他のクライアント・アプリケーション・内容・ファイル、メッセージ、項目、ＨＴＭＬ、ＸＭＬ、ＸＨＴＭＬ等の各種フォーマットのウェブページ、ポータブル・ドキュメント・フォーマット（ＰＤＦ）ファイル、及び、画像ファイル、音声ファイル、ビデオファイル等のメディアファイルや、その他の文書あるいは項目や、任意の好適な種類の文書、項目、情報のグループが挙げられる。
【００１６】
ユーザ１１２ａがアーティクル、クライアント・アプリケーション１２０、及びクライアント装置１０２ａと対話を行うことにより、観察、記録、解析、あるいはその他の用途に使用できるイベントデータが作成される。イベントは、アーティクル、クライアント・アプリケーション１２０、あるいはクライアント装置１０２ａに関連して発生し得る出来事、例えば、アーティクルにテキストを入力する、表示装置上にアーティクルを表示する、アーティクルを送信する、アーティクルを受信する、アーティクルを閉じる、クライアント・アプリケーション・プログラムを開く、アイドルタイム、プロセッサのロード、ディスク・アクセス、メモリ使用、クライアント・アプリケーション・プログラムをフォアグラウンドに持っていく、アプリケーションの画像表示の詳細を変更する（例えば、サイズの変更や最小化）、及びその他のアーティクル、クライアント・アプリケーションあるいはクライアント装置に関連する任意の出来事とすることができる。更に、電子メールを受信する、あるいはスケジュール設定されたタスクを実行する等、クライアント装置１０２ａがユーザ１１２ａと独立したアーティクルと対話する際にイベントデータを生成することができる。
【００１７】
また、クライアント装置１０２ａのメモリ１０８は、キャプチャ・プロセッサ１２４、キュー１２６、及び検索エンジン１２２を含む。また、クライアント装置１０２ａにデータ・ストア１４０を含めることもでき、またはデータ・ストア１４０と通信状態にすることもできる。キャプチャ・プロセッサ１２４はイベントを取り込み、該イベントをキュー１２６に渡すことができる。キュー１２６は取り込まれたイベントを検索エンジン１２２に渡すことができ、または検索エンジン１２２は新しいイベントをキュー１２６から検索することができる。一実施例において、キュー１２６に新しいイベントが到着すると、キュー１２６は検索エンジン１２２にその旨を通知し、検索エンジン１２２が該イベントを処理する準備ができると、検索エンジン１２２が該イベントをキュー１２６から抽出する。検索エンジンはイベントを受け取ると、該イベントを処理してデータ・ストア１４０に記憶することができる。検索エンジン１２２は、ユーザ１１２ａから明示的なクエリを受け取るか、または暗黙なクエリを生成し、該クエリに応じてデータ・ストア１４０から情報を抽出することができる。別の実施例では、キューが検索エンジン１２２内に設けられる。また別の実施例においては、クライアント装置１０２ａにキューを設けず、キャプチャ・プロセッサ１４から検索エンジン１２２にイベントが直接渡される。その他の実施例によれば、イベントデータは情報交換プロトコルによって転送される。該情報交換プロトコルは、例えば、データ交換を容易にする任意の規則あるいは方法により構成することができ、例えば、拡張可能なマークアップ言語―遠隔手続き呼び出し（ＸＭＬ／ＲＰＣ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）、共有メモリ、ソケット、ローカルあるいはリモート手続き呼び出し、またはその他の任意の情報交換メカニズムのうちのいずれかにより構成することができる。
【００１８】
キャプチャ・プロセッサ１２４は、イベントに関連するイベントデータを識別し、コンパイルすることにより、イベントを取り込むことができる。イベントとしては、例えば、電子メールメッセージを送信あるいは受信すること、ユーザがウェブページを表示すること、ワープロ文書を保存すること、スプレッドシート文書を印刷すること、テキストを入力して電子メールを作成あるいは編集すること、プレゼンテーション・アプリケーションを開くこと、インスタント・メッセンジャー・アプリケーションを閉じること、キーを打つこと、マウスを動かすこと、テキストをクリップボードにコピーすること、ハイパーリンク上でマウスの動作を止めることが挙げられる。ユーザによるウェブページの表示というイベントに対応してキャプチャ・プロセッサ１２４により取り込まれるイベントデータは、例えば、該ウェブページのＵＲＬ、ユーザがウェブページを表示した日時、元の形式あるいは処理後の形式のウェブページの内容、ユーザに表示されるウェブページのスナップショット、スクリーンショットのサムネイルバージョン、ウェブページあるいはウェブサイトに関連するアイコン等である。
【００１９】
図１に示す実施例において、キャプチャ・プロセッサ１２４は複数のキャプチャ要素から成る。例えば、図１のキャプチャ・プロセッサ１２４は、各アプリケーションに関連するイベントを取り込むために、各クライアント・アプリケーションに対して個々のキャプチャ要素を備える。また、キャプチャ・プロセッサ１２４は、ネットワークの動作、例えば、インスタント・メッセンジャのメッセージの受信や送信に関連するイベントデータを取り込むために、ネットワークの動作全体を監視する独立したキャプチャ要素を有する。また、図１のキャプチャ・プロセッサ１２４は、プロセッサの負荷、アイドルタイム、ディスクアクセス、使用中のクライアント・アプリケーション、使用可能なメモリ容量等、クライアント装置のパフォーマンスを監視する独立したライアント装置キャプチャ要素を有する。また、図１のキャプチャ・プロセッサ１２４は、ユーザによるキーの押下を監視して取り込む独立したキャプチャ要素、及びテキスト等、クライアント装置１０２ａに対応する表示装置上に表示される項目を監視して取り込む独立したキャプチャ要素を有する。各キャプチャ要素は複数のクライアント・アプリケーションを監視することができ、複数のキャプチャ要素が単一のクライアント・アプリケーションの様々な側面を監視することができる。
【００２０】
一実施例において、キャプチャ・プロセッサ１２４は、各キャプチャ要素を介して、クライアント装置上の動作を監視することができ、また、イベント・スキーマ等、汎用イベント定義・登録メカニズムによりイベントを取り込むことができる。各キャプチャ要素は、自身のイベント・スキーマを定義することができ、あるいは予め定義されたものを用いることができる。イベント・スキーマは、キャプチャ要素が監視しているクライアント・アプリケーションや動作によって異なる。一般に、イベント・スキーマは、例えば、イベントに関連するイベントデータ（イベントの時間等）のフィールド、任意の関連アーティクル（タイトル等）や、任意の関連アーティクルの内容（文書の本文等）に関連するフィールドを提供することによりイベントのフォーマットを記述する。イベント・スキーマは、イベントに関連する任意のイベントデータのフォーマットを記述することができる。例えば、ユーザ１１２ａによって受信される電子メールメッセージ・イベントのイベント・スキーマには、送信者、受信者あるいは受信者リスト、送信時間、送信データ、及びメッセージの内容を含めることができる。ユーザが見ているウェブページに対するイベント・スキーマには、ウェブページのＵＲＬ、ウェブページが表示された時間、ユーザがウェブページを表示した時間の長さ、及びウェブページの内容を含めることができる。ユーザによって保存されているワープロ文書に対するイベント・スキーマには、文書のタイトル、保存した時間、文書のフォーマット、文書のテキスト、及び文書の場所を含めることができる。より一般的に、イベント・スキーマにはイベントの時間前後のシステムの状態を記述することができる。例えば、イベント・スキーマには、以前にユーザが見ていたウェブページに関連するウェブページ・イベントのＵＲＬを含めることができる。更に、イベント・スキーマには、複数の受信者を一覧表示するフィールドを含めることができる。また、イベント・スキーマには、必要であればアプリケーションにイベントデータを追加できるように付加フィールドを含めることができる。関連するイベント・スキーマに記述されているフィールドにイベントデータをコンパイルすることにより、イベントを取り込むことができる。
【００２１】
キャプチャ・プロセッサ１２４は、現在発生しているイベント（すなわち「リアルタイムイベント」）を取り込むことができるとともに、過去に発生したイベント（すなわち「過去イベント」）を取り込むことができる。リアルタイムイベントには、インデックス化できるものとインデックス化できないものがある。一実施例において、検索エンジン１２２はインデックス化できるリアルタイムイベントをインデックス化するが、インデックス化できないリアルタイムイベントはインデックス化しない。検索エンジン１２２は、イベントの重要度に基づき、イベントをインデックス化するか否か判断することができる。インデックス化できるリアルタイムイベントは、ウェブページを表示したり、ファイルをロードあるいは保存したり、インスタント・メッセージや電子メールを受信あるいは送信したりするような、アーティクルに関連するイベントであって、より重要度の高いイベントとすることができる。インデックス化できないイベントは、マウスを動かしたり、アーティクル中のテキストの一部分を選択したりするような、インデックス化して記憶するほど重要度が高くないと検索エンジン１２２によって判断され得るイベントである。あるいは、キャプチャ・プロセッサ１２４が、イベントの重要度が十分に高くないと判断して、キュー１２６に送らないようにしてもよい。この実施例では、キュー１２６の負担が減り、システムの速度が向上する。検索エンジン１２２は、インデックス化できないイベント及び／あるいはインデックス化できるイベントによって現在のユーザ状態を更新する。全てのリアルタイムイベントは、ユーザが現在行っていること（すなわち現在のユーザ状態）に関連し得る一方、インデックス化できるリアルタイムイベントはインデックス化してデータ・ストア１４０に記憶することができる。あるいは、検索エンジン１２２が全てのリアルタイムイベントをインデックス化することができる。リアルタイムイベントとしては、例えば、インスタント・メッセンジャのメッセージ等のアーティクルを送信あるいは受信すること、テキストの一部を選択したりウェブページの一部上でマウスを動かしたりしてアーティクルの一部を確認すること、電子メールに単語を入力たりワープロ文書中に文章を貼り付けたりしてアーティクルを変更すること、インスタント・メッセンジャのウィンドウを閉じたり現在表示されている電子メールメッセージを変更したりしてアーティクルを閉じること、ワープロ文書、ウェブページあるいは電子メール等のアーティクルをロードしたり、保存したり、開いたり、表示したりすること、ＭＰ３ファイルやその他の音声／ビデオファイルを聴いたり保存したりすること、ウェブページのブックマーク、プレゼンテーション文書の印刷、ワープロ文書の削除、スプレッドシート文書の移動等によりアーティクルのメタデータを更新することが挙げられる。
【００２２】
検索エンジン１２２のインストール前に発生したか、または、例えばクライアント装置１０２ａの動作中は検索エンジン１２２が動作していなかったため、あるいはイベントが起きた時には特定の種類の過去イベントに対するキャプチャ要素が存在していなかったために取り込まれなかったイベントであるという点を除けば、過去イベントはインデックス化できるリアルタイムイベントと同様である。過去イベントは、例えば、ユーザが保存したワープロ文書、メディアファイル、プレゼンテーション文書、カレンダの項目、及びスプレッドシート文書や、ユーザの受信箱内の電子メール、ユーザのキャッシュ内のウェブページ、過去のインスタント・メッセンジャの会話、及びユーザがブックマークしたウェブページ等である。キャプチャ・プロセッサ１２４はメモリ１０８及びいずれかの関連データ記憶装置を定期的に巡回してキャプチャ・プロセッサ１２４によって取り込まれていないイベントを探すことにより、過去イベントを取り込むことができる。また、キャプチャ・プロセッサ１２４は、何らかのクライアント・アプリケーション、例えばウェブブラウザや電子メールアプリケーションにアーティクルやその他の関連情報の抽出を要求することにより、過去イベントを取り込むことができる。例えば、キャプチャ・プロセッサ１２４は、ウェブブラウザ・アプリケーションに、ユーザに関連する全ての電子メールメッセージを取得するように要求する。上記アーティクルは、メモリ１０８内やクライアント装置１０２ａの記憶装置上に存在していない場合がある。例えば、電子メールアプリケーションがサーバ装置から電子メールを検索しなければならない場合がある。一実施例において、検索エンジン１２２は過去イベントをインデックス化する。
【００２３】
一実施例において、検索エンジン１２２は過去イベントを選択的に取り込み、インデックス化することができる。例えば、イベントに対するアーティクルに関連するアーティクル・データを、イベントを取り込みインデックス化するか否か判断する際に用いることができる。アーティクル・データは、例えば、アーティクルの場所、アーティクルのファイル種類、及びアーティクルに対するアクセスデータで構成することができる。一実施例においては、アーティクル・データを用いて取り込みスコアを決定することができ、該取り込みスコアが閾値と比較される。ある特定のイベントに対する取り込みスコアが閾値よりも大きい場合は、該イベントが取り込まれてインデックス化される。ある特定のイベントに対する取り込みスコアが閾値よりも小さい場合は、該イベントは取り込まれず、インデックス化もされない。同様に、検索エンジン１２２はリアルタイムイベントを選択的に取り込み、インデックス化することができる。
【００２４】
図１に示す実施例において、キャプチャ・プロセッサ１２４に取り込まれたイベントは、イベント・スキーマに記述された形式でキュー１２６に送られる。また、キャプチャ・プロセッサ１２４はパフォーマンスデータをキュー１２６に送る。パフォーマンスデータは、例えば、現在のプロセッサ負荷、所定の時間における平均プロセッサ負荷、アイドル時間、ディスクアクセス、使用中のクライアント・アプリケーション、及び使用可能なメモリ容量等である。また、パフォーマンスデータは専用のパフォーマンス監視要素によって供給することができ、該パフォーマンス監視要素のうち幾つかを例えば検索エンジンの一部とすることができる。キュー１２６内のパフォーマンスデータは、検索エンジン１２２及びキャプチャ・プロセッサ１２４のキャプチャ要素によって抽出することができる。例えば、キャプチャ要素はパフォーマンスデータを抽出して、キュー１２６に送るイベントの数、あるいは送られるイベントをどの程度詳細なものにするか（システムがビジー状態の時は、より少ない数のイベントや小さいサイズのイベントを送る）、あるいはイベントを送る頻度（システムがビジー状態の時や処理を待機しているイベントの数が多過ぎる場合は、より少ない頻度でイベントを送る）について、変更することができる。検索エンジン１２２は、パフォーマンスデータを用いて、いつ各種イベントをインデックス化するか、及びどのくらいの頻度で暗黙のクエリを発行するか決定することができる。
【００２５】
一実施例では、検索エンジン１２２がイベントを処理する準備ができるまで、キュー１２６がイベントを保持する。あるいは、キュー１２６は、イベントを検索エンジン１２２に供給する速度を決定する際に、パフォーマンスデータを用いる。キュー１２６は、ユーザ状態キュー及びインデックス・キューを含む１以上の独立したキューから構成することができる。インデックス・キューは、例えばインデックス化できるイベントを待ち行列に入れる。また、キュー１２６に１以上のキューを追加して設けてもよく、または単一のキューから構成することもできる。キュー１２６は、メモリマップファイルを用いた循環優先待ち行列として構成することができる。キューを、より優先度が高いイベントがより優先度が低いイベントより前に供給される複数優先待ち行列とすることもでき、他の要素が関心のあるイベントの種類を特定することもできる。一般に、リアルタイムイベントは過去イベントより優先度が高く、インデックス化できるイベントはインデックス化できないリアルタイムイベントよりも優先度が高い。キュー１２６については、その他の実施例も可能である。別の実施例において、クライアント装置１０２ａはキュー１２６を持たない。この実施例では、キャプチャ・プロセッサから検索エンジン１２２にイベントが直接渡される。その他の実施例では、拡張可能なマークアップ言語―遠隔手続き呼び出し（ＸＭＬ／ＲＰＣ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）、共有メモリ、ソケット、ローカルあるいはリモート手続き呼び出し、またはその他の任意の情報交換メカニズムにより、キャプチャ要素と検索エンジンの間でイベントを搬送することができる。
【００２６】
検索エンジン１２２には、インデクサ１３０、クエリ・システム１３２及びフォーマッタ１３４を設けることができる。クエリ・システム１３２は、リアルタイムイベント及びパフォーマンスデータをキュー１２６から検索する。クエリ・システム１３２は、パフォーマンスデータ及びリアルタイムイベントを用いて現在のユーザ状態を更新し、暗黙のクエリを生成する。暗黙のクエリは、現在のユーザ状態に基づいて自動的に生成されるクエリとすることができる。また、クエリ・システム１３２は、ユーザ１１２ａから明示的なクエリを受け取り、処理することができる。また、パフォーマンスデータは、検索エンジン１２２により可能な作業の量を決定する際に用いるため、検索エンジン１２２によってキュー１２６から抽出することができる。
【００２７】
図１の実施例において、インデックス化できるリアルタイムイベント及び過去イベント（インデックス化可能なイベント）は、インデクサ１３０によってキュー１２６から抽出される。あるいは、キュー１２６が、インデックス化可能なイベントをインデクサ１３０に送ってもよい。インデクサ１３０はインデックス化可能なイベントをインデックス化し、インデックス化したイベントをデータ・ストア１４０に送り、データ・ストア１４０に記憶することができる。データ・ストア１４０はいかなる種類のコンピュータ可読の媒体であってもよく、ハードドライブ等ようにクライアント装置１０２ａと一体化して構成してもよいし、外部ハードドライブやその他のネットワーク１０６を介してアクセスされるデータ記憶装置のようにクライアント装置１０２ａの外部に構成してもよい。データ・ストアは１以上の論理的あるいは物理的記憶領域とすることができる。一実施例では、データ・ストア１４０をメモリ１０８内に設けることができる。データ・ストア１４０は、データを記憶するために１つあるいは複数の方法を組み合わせて用いることができ、その方法としては例えばアレイ、ハッシュ・テーブル、リスト、ペア等が挙げられるが、これらに限定されるものではなく、また圧縮及び暗号化を用いることもできる。図１に示す実施例において、データ・ストアはインデックス１４２、データベース１４４及びリポジトリ１４６から成る。
【００２８】
一実施例において、インデクサ１３０がイベントを受け取ると、インデクサ１３０は、イベントに関連する単語（もし、あれば）、イベントの時間（もし、分かれば）、イベントに関連する画像（もし、あれば）、及び／あるいはイベントを定義する情報をイベントから判断する。インデクサ１３０は、イベントが以前に受け取ったイベントの重複であるか否か判断する。また、インデクサ１３０は、イベントが他のイベントに関連するか否か判断し、関連イベントにイベントを関連付ける。例えば、受け取った電子メールイベントに対して、インデクサ１３０は、同じ対話による他のメッセージイベントに該電子メールを関連付けることができる。その他の例として、インデクサ１３０はイベントを他のイベントに含まれるテキストあるいは他のイベントの時間に基づき該他のイベントに関連付けるこができる。同じ対話による電子メールは相互に関連付けて関連イベントオブジェクトとし、データ・ストア１４０に記憶することができる。
【００２９】
インデクサ１３０は、イベントに関連する単語及び位置情報を送り、データ・ストア１４０のインデックス１４２に加えることができる。イベントはデータベース１４４に送って記憶することができ、関連アーティクルの内容及び関連画像をリポジトリ１４６に記憶することができる。電子メールメッセージに関連する対話オブジェクトはデータベース１４４に記憶することができる。
【００３０】
図１に示す実施例において、ユーザ１１２ａは明示的なクエリをクライアント装置１０２ａに表示される検索エンジン・インターフェイスに入力することができ、検索エンジン１２２が該クエリを受け取る。また、検索エンジン１２２は、クエリ・システム１３２がリアルタイムイベントから判断することが可能な現在のユーザ状態に基づき暗黙のクエリを生成することができる。該クエリに基づき、クエリ・システム１３２はデータ・ストア１４０における関連情報を検索することができ、一組の結果を提供することができる。一実施例において、該一組の結果は、クライアント・アプリケーション１２０あるいはクライアント・アーティクルに関連するアーティクルのアーティクル識別子から成る。クライアント・アーティクルは、ユーザの電子メール、ワープロ文書、インスタント・メッセンジャのメッセージ、過去に表示されたウェブページ、その他のアーティクルや、クライアント装置１０２ａあるいはユーザ１１２ａに関連するアーティクルの一部等、ユーザ１１２ａあるいはクライアント装置１０２ａに関連するアーティクルである。アーティクルの識別子は、例えば、ＵＲＬ、ファイル名、リンク、アイコン、ローカルファイルへのパス、あるいはその他のアーティクルを識別できる任意の情報とすることができる。別の実施例において、一組の結果は、ネットワーク１０６上にあるアーティクルや、サーバ装置上の検索エンジンによって検索されるネットワーク・アーティクルのアーティクル識別子から成る。ネットワーク・アーティクルは、ユーザ１１２ａにより過去に表示されたことがないウェブページ等、ユーザ１１２ａによって過去に表示されたことがない、あるいは参照されたことがないネットワーク１０６上のアーティクルを含む。
【００３１】
フォーマッタ１３４は、検索エンジン１２２のクエリ・システム１３２から一組の検索結果を受け取り、表示プロセッサ１２８への出力用に該結果をフォーマットすることができる。一実施例において、フォーマッタ１３４は結果をＸＭＬ、ＨＴＭＬ、あるいはタブで境界が明示されたテキストをフォーマットすることができる。表示プロセッサ１２８はメモリ１０８内に設けることができ、クライアント装置１０２ａに対応する表示装置上における一組の結果の表示を制御することができる。表示プロセッサ１２８は様々な要素から構成することができる。例えば、一実施例では、情報の要求を受け取り、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）ページを構築し送信することにより応答するハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバから表示プロセッサ１２８が構成される。このような実施例において、ＨＴＴＰサーバはアパッチ・ウェブサーバの縮小版から成る。表示プロセッサ１２８は、一組のＡＰＩに関連付けられ、各種アプリケーションが結果を受け取って各種フォーマットで表示できるようにすることができる。表示ＡＰＩは、例えば  ウィンドウズ・メッセージング、ＤＬＬエクスポート、ＣＯＭインターフェース、ＶＢ、ＪＡＶＡ、．ＮＥＴライブラリ、あるいはウェブサービス等、各種方法で実現される。
【００３２】
クライアント装置１０２ａ−ｎを介して、ユーザ１１２ａ−ｎはネットワーク上で相互に通信を行うとともに、ネットワーク１０６に連結された他のシステムや装置と通信を行うことができる。図１に示すように、サーバ装置１５０をネットワーク１６０に連結することができる。図１に示す実施例において、検索エンジン１２２は、明示的なクエリあるいは暗黙のクエリあるいはその両方から成る検索クエリをサーバ装置１５０に送信することができる。また、ユーザ１１２ａは、検索エンジン・インターフェイスに検索クエリを入力することができ、該クエリはクライアント装置１０２ａによりネットワーク１０６を介してサーバ装置１５０に送信することができる。別の実施例において、上記クエリをプロキシサーバ（図示せず）に送ることができ、該プロキシサーバはクエリ信号をサーバ装置１５０に送信する。また、他の構成も可能である。
【００３３】
サーバ装置１５０には、Ｇｏｏｇｌｅ（登録商標）検索エンジン等、検索エンジン・アプリケーションプログラムを実行するサーバを設けることができる。その他の実施例において、サーバ装置１５０は関連情報サーバあるいは広告サーバから構成することができる。クライアント装置１０２ａ−ｎと同様に、サーバ装置１５０にコンピュータ可読のプロセッサ１６２を設けることができる。単一のコンピュータシステムとして表されるサーバ装置１５０は、コンピュータプロセッサ網として構成することができる。サーバ装置１５０の例としては、サーバ、メインフレームコンピュータ、ネットワークコンピュータ、プロセッサをベースにしている装置、及び同様のシステムや装置が挙げられる。サーバ・プロセッサ１６０は、カリフォルニア州サンタクララのインテル社のプロセッサやイリノイ州シャンバーグのモトローラ社のプロセッサ等、多数のコンピュータプロセッサの中から任意に選択することができる。別の実施例では、サーバ装置１５０をクライアント装置上に設けることができる。また、別の実施例では、複数のサーバ装置１５０を設けることができる。
【００３４】
メモリ１６２は、ネットワーク検索エンジン１７０としても知られる検索アプリケーションプログラムを含む。検索エンジン１７０は、クライアント装置１０２ａからの検索クエリに応じて、ネットワーク１０６から関連情報を検索することができる。そして、検索エンジン１７０は、ネットワーク１０６を介して一組の結果をクライアント装置１０２ａに供給することができる。該一組の結果は、１以上のアーティクル識別子から構成することができる。アーティクル識別子としては、例えば、ＵＲＬ、ファイル名、リンク、アイコン、ローカルファイルのパス、あるいはその他のアーティクルを識別できる任意のものを用いることができる。一実施例では、アーティクルに関連するＵＲＬからアーティクル識別子を構成することができる。
【００３５】
一実施例では、サーバ装置１５０、あるいは関連する装置がネットワーク１０６を巡回して、ネットワーク１０６に接続されている他の装置あるいはシステムに記憶されているウェブページ等のアーティクルを検索し、該アーティクルをメモリ１６２内で、あるいは別のデータ記憶装置上でインデックス化している。なお、巡回の代わりに、または巡回と組み合わせて、アーティクルをインデックス化するその他の方法を用いることもできる。
【００３６】
なお、本発明の他の実施例は、図１に示すものとは異なる構造を有するシステムから成る。例えば、本発明のいくつかの他の実施例において、クライアント装置１０２ａはネットワークに恒久的に連結されていない独立した装置である。図１に示すシステム１００は単なる例示であり、図２及び図３に例示する方法を説明する際に用いられる。
【００３７】
本発明の実施例に従い様々な方法を実行することができる。例えば、一実施例では、クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１つに関連付けることができるアーティクルとのユーザの対話から成るイベントの発生時に、検索エンジンが該イベントをリアルタイムで取り込み、前記イベントに少なくともある程度基づいて現在のユーザ状態を更新し、前記イベントをインデックス化するべきか否かを判断し、前記イベントをインデックス化するべきである場合は、前記イベント及び前記アーティクルに関連する内容の一部をインデックス化して記憶する。
【００３８】
別の実施例では、クライアント装置上で発生する複数のイベントであって各々が複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連するイベントを取り込み、該イベントのうち少なくともいくつかは該イベントの発生時にリアルタイムで取り込み、前記イベントのうち少なくともいくつかをインデックス化して記憶し、該インデックス化して記憶されたイベントは関連するアーティクルを有し、検索クエリを受け取り、前記検索クエリに関連するイベントから関連アーティクルを検索する。また、検索エンジンは、関連するアーティクルから一組の検索結果を生成することができる。一実施例において、前記検索クエリはユーザによって入力される。別の実施例において、リアルタイムイベントから決定される現在のユーザ状態に基づき、前記検索エンジンによって前記検索クエリが生成される。
【００３９】
別の実施例では、クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルとユーザの対話からそれぞれ成る複数のリアルタイムイベントの発生時に該リアルタイムイベントをリアルタイムで取り込み、過去に発生した複数の過去イベントであって各々がクライアント装置のアーティクルとユーザの対話から成る過去イベントを取り込み、前記アーティクルは複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルであり、各イベントに対して、該イベントをインデックス化するべきか否か決定し、前記イベントをインデックス化するべきである場合、前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶する。
【００４０】
別の実施例では、クライアント装置上のアーティクルであって複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けることが可能なアーティクルとユーザの対話から成るイベントの発生時に該イベントをリアルタイムで取り込み、前記イベントに少なくともある程度基づいて現在のユーザ状態を更新し、前記イベントをインデックス化し、前記イベント及び前記アーティクルに関連する内容の少なくとも一部を記憶する。この実施例において、イベントはリアルタイムイベントでもよいし、過去イベントでもよい。
【００４１】
別の実施例では、クライアント装置上で発生する複数のイベントであって各々が複数のクライアント・アプリケーションのうち少なくとも１のアプリケーションに関連付けられるイベントを取り込み、前記イベントのうち少なくともいくつかをインデックス化して記憶し、該インデックス化して記憶されたイベントは関連するアーティクルを有し、複数のネットワーク・アーティクルをインデックス化し、検索クエリを受け取り、前記検索クエリに少なくともある程度基づいて、関連するクライアント・アーティクル及びネットワーク・アーティクルを検索する。この実施例において、検索クエリは少なくとも１のリアルタイムイベントに少なくともある程度基づいて暗黙的に生成することができる。
【００４２】
図２は、本発明の実施例に従い、イベントを取り込んで処理する方法の一例である方法２００を示す。上述の実施例の説明から本発明の他の実施例における方法を実施する様々な方法があることが分かるように、上記方法は一例として示すものである。図２に示す方法は各種システムのうち任意のものによって実行あるい実施することができる。方法２００は、以下の説明では図１に例示されるシステム１００によって実行されるものであり、図２の方法例を説明する際にシステム１００の各種要素を参照する。
【００４３】
キャプチャ・プロセッサ１２４は２０２でイベントを取り込む。該イベントはリアルタイムイベントでも、過去イベントでもよい。キャプチャ・プロセッサ１２４は、イベントの発生時に該イベントに関連するイベントデータを識別してコンパイルすることによりリアルタイムイベントを取り込むことができる。キャプチャ・プロセッサ１２４は、例えば、メモリ１０８あるいはクライアント装置１１２ａの対応データ記憶装置を定期的に巡回して、以前に取り込まれたことがないアーティクルを探すか、クライアント・アプリケーションからアーティクルやデータを受け取りイベントに関連するイベントデータを識別してコンパイルすることにより、過去イベントを取り込むことができる。キャプチャ・プロセッサ１２４には、各クライアント・アプリケーション、ネットワーク・モニタリング、パフォーマンスデータの取り込み、キーストロークの取り込み、表示の取り込みに対して、それぞれキャプチャ要素を設けることができる。一実施例において、キャプチャ要素は、過去に定義してクライアント装置１０２ａに登録したイベント・スキーマ等、汎用イベント定義メカニズムによりイベントを取り込み、あるいは表すことができる。
【００４４】
２０４で、キャプチャ・プロセッサ１２４は取り込まれたイベントがインデックス化できるイベントであるか否か判断する。上述のように、リアルタイムイベントの中にはインデックス化できないものがある（インデックスできないリアルタイムイベント）。一実施例では、インデックス化できないリアルタイムイベントを用いて現在のユーザ状態を更新するが、該リアルタイムイベントは、例えば、アーティクルの一部を調べること、アーティクルを変更すること、あるいはアーティクルを閉じることである。この実施例において、インデックスできないイベントはインデクサ１３０によってインデックスされず、送られて記憶されることもない。インデックス化できるイベントは、インデックス化できるリアルタイムイベント、あるいは過去イベントとすることができる。インデックス化できるイベントとしては、例えば、電子メールメッセージの受信、ウェブページの表示、ワープロ文書の保存、インスタント・メッセンジャ・メッセージの送信が挙げられる。
【００４５】
インデックス化できるイベントであると判断されると、２０６で、該イベントがインデックス化できるイベントである旨の通知とともに、該イベントをキャプチャ・プロセッサ１２４によってキュー１２６に送ることができる。図２に示す実施例において、インデックス化できるリアルタイムイベントはキュー１２６内のユーザ状態キュー及びインデックス・キューの両方に送られ、過去イベントがキュー１２６内のインデックス・キューに送られる。あるいは、演算時間を節約するために、インデックス化できるリアルタイムイベントをユーザ状態キューに送らなくてもよい。キャプチャ・プロセッサ１２４は、イベント・スキーマに記述されたフォーマットでイベントをキュー１２６に送ることができる。イベントがインデックス化できないイベントであると判断されると、２０６で、該イベントをインデックス化しない旨の通知とともに、該インデックス化できないイベントをキャプチャ・プロセッサ１２４によってキュー１２６のユーザ状態キューに送ることができる。別の実施例では、ブロック２０６の前後または前か後に、ブロック２０４を実行する。例えば、キャプチャ・プロセッサ１２４によってインデックス化できるイベントであるか否か判断することができるイベントもあれば、インデクサ１３０によってインデックス化できるイベントであるか否か判断することができるイベントもある。
【００４６】
一実施例では、検索エンジンがイベントを受け取る準備ができるまで、キュー１２６が該イベントを保持する。イベントデータに基づき、キュー１２６上でイベントを処理について優先順に配置することができる。例えば、キュー１２６は、リアルタイムイベントよりも低い処理の優先順位を過去イベントに付与する。一実施例において、インデクサ１３０は、別のイベントを処理する準備ができると、キュー１２６内のインデックス・キューからイベントを抽出することができる。クエリ・システム１３２は、ユーザ状態を更新する準備ができると、キュー１２６のユーザ状態キューからイベントを抽出することができる。取り込まれたイベントから得られる位置情報を用いてユーザ状態を更新することができる。別の実施例では、キューを使用せず、キャプチャ・プロセッサ１２４から検索エンジン１２２にイベントが直接送られる。
【００４７】
２０８で、インデクサ１３０はイベントをインデックス化し、記憶する。インデクサ１３０は、イベントを処理する準備ができると、キュー１２６からイベントを抽出する。一実施例において、インデクサ１３０はイベントが重複イベントか否か判断し、重複イベントでない場合は、イベントＩＤをイベントに付与する。また、インデクサ１３０は、イベントを関連イベントに関連付けることができる。図２に示す実施例において、インデクサ１３０はイベントに関連するインデックス化可能な単語、イベントに関連する日時、イベントに関連する他のデータをイベント・スキーマから決定することができる。インデクサ１３０は、インデックス１４２に含まれるインデックス化可能な単語にイベントＩＤを関連付けるこができる。イベントはデータベース１４４に記憶することができ、イベントの内容はリポジトリ１４６に記憶することができる。検索エンジンによってインデックス化されて記憶されるイベントを取り込むことにより、ユーザ１２２ａはクライアント装置１０２ａ上のアーティクルを検索することができ、検索エンジンがクライアントし１０２ａ上のアーティクルを自動的に検索することができる。
【００４８】
図３は、本発明の実施例に従い、クライアント装置上のアーティクルの場所を特定して抽出する方法の一例である方法３００を示す。上述の実施例の説明から本発明の他の実施例の方法を実行する様々な方法があることが分かるように、上記方法は一例として示すものである。図３に示す方法は各種システムのうち任意のものによって実行あるいは実施することができる。方法３００は、以下の説明では図１に例示されるシステム１００によって実行されるものであり、システム１００の各種要素は図３の方法例を説明する際に参照される。
【００４９】
３０２で、クエリ・システム１３２は検索クエリを受け取る。該クエリは明示的なクエリでもよいし、暗黙のクエリでもよい。明示的なクエリは、ユーザがクライアント装置１０２ａ上に表示された検索エンジン・インターフェイスにクエリの語を入力することにより生成することができる。暗黙のクエリは、現在のユーザ状態に基づき、クエリ・システム１３２によって生成することができる。例えば、ユーザ１１２ａは、「月例予算会議の議題」という語を検索エンジン・インターフェイスに入力することができる。あるいは、ユーザ１１２ａは、「月例予算会議の議題」という語を、ユーザ１１２ａが作成中である電子メールに入力することができる。キャプチャ・プロセッサ１２４がこのコンテクスト・イベントを取り込むことができ、クエリ・システム１３２が該イベントを受け取ることができる。クエリ・システム１３２は、このコンテクスト・イベントで取り込まれた語に基づき、検索クエリを生成することができる。
【００５０】
３０４で、クエリ・システム１３２は検索クエリに関するアーティクルを検索する。クエリ・システム１３２は、検索クエリの単語をインデックス１４２内にある単語と一致検索することにより、関連アーティクルを検索することができる。例えば、クエリ・システム１３２は、クエリの単語をインデックス１４２内の単語と一致検索することができる。一致した単語から、クエリ・システム１３２は一致した単語に関連するイベントＩＤに基づき、単語に関連するイベントであってデータベース１４４に記憶されているイベントを決定することができる。該イベントから、クエリ・システム１３２は、イベントに関連するアーティクルを決定することができる。該アーティクルはリポジトリ１４６に記憶することができる。例えば「月例予算会議の議題」という検索クエリに対して、クエリ・システム１３２は、該クエリの単語を含む各種クライアン・アプリケーションから各種アーティクル、電子メール、プレゼンテーション文書、ワープロ文書、スプレッドシート文書、及びクエリの単語一致するその他のアーティクルを検索することができる。また、クエリは時間を指定することもでき、クエリ・システム１３２はクエリの時間に関連するアーティクルを検索することができる。また、クエリはイベントの種類を指定することもでき、クエリ・システム１３２は特定の種類のアーティクル、例えばワープロ文書ファイルや電子メールメッセージを検索することができる。また、クエリ・システム１３２は、検索エンジン１７０からクエリに関連するネットワーク・アーティクルを抽出することもできる。
【００５１】
３０６で、クエリ・システム１３２は、検索したアーティクルに基づき一組の検索結果を生成する。一実施例において、クエリ・システム１３２は、アーティクルに対するユーザの好みを示す各種信号に基づき、検索したアーティクルを並べ替え、順位付けする。一組の検索結果には、様々なクライアント・アプリケーション１２０に関連するアーティクルのアーティクル識別子及びネットワーク・アーティクルの識別子を順位付けしたリストを含めることができる。また、各リンクにはアーティクルの概要及びアーティクルに関連する画像を含めることもできる。
【００５２】
３０８で、一組の検索結果はフォーマッタ１３４によりフォーマットされる。一実施例において、フォーマッタ１３４は一組の検索結果をＸＭＬあるいはＨＴＭＬでフォーマットすることができる。３１０で、一組の検索結果は表示プロセッサ１２８によりクライアント装置１０２ａ上に表示される。例えば、一組の検索結果を、クライアント装置１０２ａに関連する表示装置上に表示することができる。一組の検索結果が暗黙のクエリに応じて生成されている場合、表示プロセッサ１２８は一組の暗黙の検索結果を表示する適当な時間を決定する。そして、ユーザ１１２ａはアーティクルに対するアーティクル識別子を選択し、関連アーティクルを表示装置上に表示させることができる。
【００５３】
図示されている環境はクライアント側の検索エンジン構造の実施例を表している。独立型のクライアント装置やネットワーク検索エンジン等、その他の実施例も可能である。
【００５４】
上述の説明において多数の具体例を示したが、これらの具体例は本発明の範囲を限定するものではなく、開示した実施例を単に例示するものである。例えば、アーティクル及びイベントの例は説明のために示したものであり、限定的なものではない。当業者であれば本発明の範囲内で可能な多数の変形例を想定するであろう。
【図面の簡単な説明】
【００５５】
【図１】本発明の一実施例が動作可能な環境の一例を示す図である。
【図２】本発明の一実施例において、クライアント装置に対応するイベントデータを取り込み、処理する方法の一例を示すフローチャートである。
【図３】本発明の一実施例において、イベントに関連するアーティクルを検索する方法の一例を示すフロー図である。
【図１】
2007534057.tif 000003
【図２】
2007534057.tif 000004
【図３】
2007534057.tif 000005