(57)【要約】  クライアント側検索を改良するシステムおよび方法を記載する。一態様では、検索クエリを受信し、検索クエリに関係付けられる関連記事を決定し、前記関連記事に関係付けられるクライアント側行動データに少なくとも一部基づいて、前記関連記事に対するランク付け点数を決定するためのシステムおよび方法を記載する。
2007517308.tif 000002
【特許請求の範囲】
【請求項１】
検索クエリを受信または作成するステップと、
前記検索クエリに関係付けられる関連記事を決定するステップと、
前記関連記事に関係付けられるクライアント側行動データに少なくとも一部基づいて前記関連記事に対するランク付け点数を決定するステップと、
を具備する方法。
【請求項２】
ランク付けプロセッサが、前記記事に対する前記クライアント側行動データを受信し、前記ランク付けプロセッサが、前記記事に関係付けられるクライアント側行動データに少なくとも一部基づいて前記関連記事に対する前記ランク付け点数を決定する請求項１の方法。
【請求項３】
前記ランク付け点数に基づいて前記記事を配置するステップを更に具備する請求項１の方法。
【請求項４】
前記検索クエリが明示的検索クエリである請求項１の方法。
【請求項５】
前記検索クエリが暗示的検索クエリである請求項１の方法。
【請求項６】
前記関連記事に関係付けられる前記クライアント側行動データが、スクロール活動データを含む請求項１の方法。
【請求項７】
前記関連記事に関係付けられる前記クライアント側行動データが印刷データを含む請求項１の方法。
【請求項８】
前記関連記事に関係付けられる前記クライアント側行動データがブックマークデータを含む請求項１の方法。
【請求項９】
前記関連記事に関係付けられる前記クライアント側行動データが、コンピュータープログラムアプリケーション使用データを含む請求項１の方法。
【請求項１０】
前記コンピュータープログラムアプリケーション使用データを、追加のクライアント側行動データと関連させて用いる請求項９の方法。
【請求項１１】
前記追加のクライアント側行動データが、アイドルデータを含む請求項１０の方法。
【請求項１２】
前記追加のクライアント側行動データが、コンピュータープログラムアプリケーション使用データを含む請求項１０の方法。
【請求項１３】
前記関連記事に関係付けられる前記クライアント側行動データが、記事アクセス頻度データを含む請求項１の方法。
【請求項１４】
前記関連記事に関係付けられる前記クライアント側行動データが、アクセス時間データを含む請求項１の方法。
【請求項１５】
前記関連記事に関係付けられる前記クライアント側行動データが、他の関係付けられる記事のアクセスデータに関連するアクセス時間を含む請求項１の方法。
【請求項１６】
前記関連記事に関係付けられる前記クライアント側行動データが転送データを含む請求項１の方法。
【請求項１７】
前記関連記事に関係付けられる前記クライアント側行動データが、コピーデータを含む請求項１の方法。
【請求項１８】
前記関連記事に関係付けられる前記クライアント側行動データが、返答データを含む請求項１の方法。
【請求項１９】
前記関連記事に関係付けられる前記クライアント側行動データが、マウスの動きデータを含む請求項１の方法。
【請求項２０】
前記関連記事に関係付けられる前記クライアント側行動データが、別の記事とのユーザ相互作用データを含む請求項１の方法。
【請求項２１】
前記関連記事に関係付けられる前記クライアント側行動データが、場所データを含む請求項１の方法。
【請求項２２】
多数ユーザに対するクライアント側行動データに少なくとも一部基づいて、組み合わせ点数を決定するステップを更に含む請求項１の方法。
【請求項２３】
複数の種類のクライアント側行動データにより組み合わせ点数を決定するステップを更に具備する請求項１の方法。
【請求項２４】
複数の種類のクライアント側行動データにより組み合わせ点数を作成するステップが、異なる種類の行動データに対して、または異なるアプリケーションに関係付けられるクライアント側行動データに対して、異なる重みを用いるステップを含む請求項２３の方法。
【請求項２５】
記事に関係付けられるクライアント側行動データを決定するステップと、
前記記事に関係付けられる前記クライアント側行動データをランク付けプロセッサに提供するステップと、
前記記事に関係付けられる前記クライアント行動データに少なくとも一部基づいて、所定のクライアント行動点数を決定するステップと、
前記記事に関係付けられる前記所定のクライアント行動点数をデータ格納部に格納するステップであって、前記所定のクライアント行動点数は、前記データ格納部の前記記事に関係付けられるステップと、
を具備する方法。
【請求項２６】
検索クエリを受信するステップと、
前記検索クエリに関係付けられる関連記事を決定するステップと、
前記関連記事に関係付けられる所定のクライアント行動点数をデータ格納部から受信するステップと、
前記関連記事に関係付けられる前記所定のクライアント行動点数に少なくとも一部基づいて、前記関連記事を編成するステップと、
を更に具備する請求項２５の方法。
【請求項２７】
前記記事に関係付けられるクライアント側行動データに少なくとも一部基づいて、記事に対するクエリに依存しない点数を決定するステップと、
検索クエリを受信するステップと、
前記クエリに関係付けられる関連記事を決定するステップと、
前記クエリに依存しない点数に少なくとも一部基づいて、ランク付け点数を決定するステップと、
を具備する方法。
【請求項２８】
前記クエリに依存しない点数により決定された順位で、前記記事を処理するステップを更に具備する請求項２７の方法。
【請求項２９】
記事を識別するステップと、
前記記事に対するクライアント側行動データを決定するステップと、
前記記事に関係付けられるクライアント側行動データに少なくとも一部基づいて、前記記事に対する点数を決定するステップと、
前記点数を表示するステップと、
を具備する方法。
【請求項３０】
プログラムコードを含むコンピュータ読み取り可能な媒体であって、
検索クエリを受信または作成するためのプログラムコードと、
前記検索クエリに関係付けられる関連記事を決定するためのプログラムコードと、
前記関連記事に関係付けられるクライアント側行動データに少なくとも一部基づいて、前記関連記事に対するランク付け点数を決定するためのプログラムコードと、
を具備するコンピュータ読み取り可能な媒体。
【請求項３１】
ランク付けプロセッサが、前記記事に対する前記クライアント側行動データを受信し、前記ランク付けプロセッサが、前記記事に関係付けられるクライアント側行動データに少なくとも一部基づいて、前記関連記事に対する前記ランク付け点数を決定する請求項３０のコンピュータ読み取り可能な媒体。
【請求項３２】
前記ランク付け点数に基づいて前記記事を配置するステップを更に含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項３３】
前記検索クエリが、明示的な検索クエリである請求項３０のコンピュータ読み取り可能な媒体。
【請求項３４】
前記検索クエリが、暗示的な検索クエリである請求項３０のコンピュータ読み取り可能な媒体。
【請求項３５】
前記関連記事に関係付けられる前記クライアント側行動データが、スクロール活動データを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項３６】
前記関連記事に関係付けられる前記クライアント側行動データが、印刷データを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項３７】
前記関連記事に関係付けられる前記クライアント側行動データが、ブックマークデータを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項３８】
前記関連記事に関係付けられる前記クライアント側行動データが、コンピュータープログラムアプリケーション使用データを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項３９】
前記コンピュータープログラムアプリケーション使用データを、追加のクライアント側行動データに関連させて用いる請求項３８のコンピュータ読み取り可能な媒体。
【請求項４０】
前記追加のクライアント側行動データが、アイドルデータを含む請求項３９のコンピュータ読み取り可能な媒体。
【請求項４１】
前記追加のクライアント側行動データが、コンピュータープログラムアプリケーション使用データを含む請求項３９のコンピュータ読み取り可能な媒体。
【請求項４２】
前記関連記事に関係付けられる前記クライアント側行動データが、記事アクセス頻度データを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項４３】
前記関連記事に関係付けられる前記クライアント側行動データが、アクセス時間データを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項４４】
前記関連記事に関係付けられる前記クライアント側行動データが、他の関係付けられる記事のアクセスデータと関連するアクセス時間を含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項４５】
前記関連記事に関係付けられる前記クライアント側行動データが、転送データを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項４６】
前記関連記事に関係付けられる前記クライアント側行動データが、コピーデータを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項４７】
前記関連記事に関係付けられる前記クライアント側行動データが、返答データを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項４８】
前記関連記事に関係付けられる前記クライアント側行動データが、マウスの動きデータを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項４９】
前記関連記事に関係付けられる前記クライアント側行動データが、別の記事とのユーザ相互作用データを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項５０】
前記関連記事に関係付けられる前記クライアント側行動データが、場所データを含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項５１】
多数ユーザに対するクライアント側行動データに少なくとも一部基づいて、組み合わせ点数を決定するためのプログラムコードを更に含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項５２】
複数の種類のクライアント側行動データにより組み合わせ点数を決定するためのプログラムコードを更に含む請求項３０のコンピュータ読み取り可能な媒体。
【請求項５３】
複数の種類のクライアント側行動データにより組み合わせ点数を作成するステップが、異なる種類の行動データに対して、または異なるアプリケーションに関係付けられるクライアント側行動データに対して、異なる重みを用いるステップを含む請求項５２のコンピュータ読み取り可能な媒体。
【請求項５４】
プログラムコードを含むコンピュータ読み取り可能な媒体であって、
記事に関係付けられるクライアント側行動データを決定するためのプログラムコードと、
前記記事に関係付けられる前記クライアント側行動データをランク付けプロセッサに提供するためのプログラムコードと、
前記記事に関係付けられる前記クライアント行動データに少なくとも一部基づいて、所定のクライアント行動点数を決定するためのプログラムコードと、
前記記事に関係付けられる前記所定のクライアント行動点数をデータ格納部に格納するためのプログラムコードであって、前記所定のクライアント行動点数が前記データ格納部の前記記事に関係付けられる、プログラムコードと、
を具備するコンピュータ読み取り可能な媒体。
【請求項５５】
検索クエリを受信するためのプログラムコードと、
前記検索クエリに関係付けられる関連記事を決定するためのプログラムコードと、
前記関連記事に関係付けられる所定のクライアント行動点数をデータ格納部から受信するためのプログラムコードと、および、
前記関連記事に関係付けられる前記所定のクライアント行動点数に少なくとも一部基づいて、前記関連記事を配置するためのプログラムコードと、
を更に具備する請求項５４のコンピュータ読み取り可能な媒体。
【請求項５６】
プログラムコードを含むコンピュータ読み取り可能な媒体であって、
前記記事に関係付けられるクライアント側行動データに少なくとも一部基づいて、記事に対するクエリに依存しない点数を決定するためのプログラムコードと、
検索クエリを受信するためのプログラムコードと、
前記クエリに関係付けられる関連記事を決定するためのプログラムコードと、
前記クエリに依存しない点数に少なくとも一部基づいて、ランク付け点数を決定するためのプログラムコードと、
を具備するコンピュータ読み取り可能な媒体。
【請求項５７】
前記クエリに依存しない点数により決定された順位で、前記記事を処理するためのプログラムコードを更に含む請求項５６のコンピュータ読み取り可能な媒体。
【請求項５８】
プログラムコードを含むコンピュータ読み取り可能な媒体であって、
記事を識別するためのプログラムコードと、
前記記事に対するクライアント側行動データを決定するためのプログラムコードと、
前記記事に関係付けられるクライアント側行動データに少なくとも一部基づいて、前記記事に対する点数を決定ためのプログラムコードと、
前記点数を表示させるためのプログラムコードと、
を具備するコンピュータ読み取り可能な媒体。
【請求項５９】
ａ）記事情報を用いて検索ランク付けを改良できるコンピュータ読み取り可能なプログラム命令を実行するためのプロセッサと、
ｂ）記事情報を用いて検索ランク付けを改良できる前記コンピュータ読み取り可能なプログラム命令を格納するためのメモリと、
ｃ）クライアント行動活動を可能にするためのクライアントアプリケーションと、
ｄ）前記クライアント行動活動を受け入れることができるクライアント記事と、
ｅ）検索クエリを受信するためのクエリプロセッサと、
ｆ）前記記事が受け入れるクライアント行動活動に関係付けられるクライアント行動データを決定するためのモニターエンジンと、
ｇ）前記クライアント行動データに少なくとも一部基づいて、前記検索クエリに関係付けられる記事をランク付け順位で返すための検索エンジンと、
ｈ）前記クライアント記事に関係付けられるクライアント行動データを格納するためのデータ格納部と、
を具備するシステム。
【請求項６０】
前記検索エンジンが、
ａ）前記検索クエリに関係付けられる記事を決定するための記事ロケータと、
ｂ）前記検索クエリに関係付けられる前記記事に関係付けられるクライアント行動データを決定するためのクライアント行動データプロセッサと、および、
ｃ）前記検索クエリに関係付けられる前記記事に関係付けられる前記クライアント行動データに少なくとも一部基づいて、ランク付け点数を提供するためのランク付けプロセッサと、
を備える請求項５９のシステム。
【請求項６１】
ａ）クライアント行動データのデータベースを提供するステップと、
ｂ）検索クエリを受信するステップと、
ｃ）前記検索クエリと関連する記事の集合を決定するステップと、
ｄ）前記検索クエリと関連する前記記事集合内の第１記事を決定するステップと、
ｅ）前記第１記事に関係付けられるクライアント行動データを決定するステップと、
ｆ）前記第１記事に関係付けられるクライアント行動データをランク付けプロセッサに提供するステップと、
ｇ）前記第１記事に関係付けられる前記クライアント行動データに少なくとも一部基づいて、前記第１記事に対するランク付け点数を決定するステップと、
ｈ）前記ランク付け点数に基づいて、前記第１記事を配置するステップと、
ｉ）関連記事を表示するステップと、
を具備する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、検索エンジンに関する。より詳細には、本発明は、クライアント側情報等の記事情報を用いて、検索ランク付けを改良するための方法およびシステムに関する。
【背景技術】
【０００２】
検索エンジンは、大規模な収集記事から、所望する、または関連する特定記事を探し出すために有用である。従来の検索エンジンは、採点またはランク付けシステムに基づいた結果を返すことが多い。例えば、従来の検索エンジンは、各記事中でのキーワード、または特定のワードもしくはフレーズの出現回数等、記事内容に基づいて検索結果の記事を分類する。
【０００３】
従来のクライアント側アプリケーションは、例えば、特定記事の属性または履歴データに基づいた結果を返す。例えば、既存のクライアント側検索アプリケーションは、記事が最後に保存された日付および時間、記事の種類、または記事のサイズによりランク付けされた検索結果を提供する。ユーザは、最後に編集した時間、記事中の他のワードもしくはフレーズ、または記事の種類等の、他のパラメータを入力することにより検索を制限することができる。探し出された記事をランク付けする従来のクライアント側検索アプリケーションが用いる記事の属性および履歴データには限界がある。
【０００４】
このような従来システムの分類付けおよびランク付けの態様は不十分である。効率的ランク付け能力の欠如は圧倒的な数の検索結果を生じることが多く、有用な検索クエリを巧妙に作る（または作り直す）には、ユーザに代わって多大な認知努力の類、および更なる時間の投下が要求される。既存のクライアント側検索アプリケーションは、所望記事に向けて検索を、より絞り込むのに役立つはずの多くの関連要因に基づく効率的な記事のランク付けを行わず、評価もしない。従って、既存のクライアント側検索アプリケーションは、時間と労力に集約的であり、使用するのが厄介で、遅く、そして概ね非効率的である。
【０００５】
そこで、クライアント側情報等の記事情報を用いて、検索ランク付けを改良するための方法およびシステムに対するニーズがある。例えば、最も関連が深い記事をユーザへ迅速かつ容易に返すことができるように、十分な要因に基づいて、クライアントコンピュータのファイル構造中にあるか、またはユーザが以前アクセスしたことがある記事をランク付けするクライアント側検索アプリケーションに対するニーズがある。
【発明の開示】
【０００６】
本発明の実施の形態は、検索を改良するシステムおよび方法を含む。本発明の一実施の形態の一態様は、ランク付けした記事に関係付けられるクライアント側行動データに少なくとも部分的に基づく検索結果を分類して、ランク付けすることを含む。これにより、例えば、潜在的検索結果のどれがユーザにとって最も興味があるかを、クライアント側検索エンジンは、より良く評価できるようになる。更に本発明の特徴および利点を以下に述べる。
【発明を実施するための最良の形態】
【０００７】
本発明は、記事情報を用いて検索ランク付けを改良するための方法およびシステムを含む。本発明によるシステムは各種構築できる。図１は、本発明の例示の実施の形態が動作する例示のシステムを示す図である。本発明は他のシステムを動作させることもでき、他のシステムで具体化することもできる。
【０００８】
図１に示すシステム１００は、多数のクライアント装置１０２ａ〜ｎ、ユーザ１１２ａ〜ｎ、ネットワーク１０６およびサーバ１９０を備える。図示のネットワーク１０６はインターネットを含む。その他の実施の形態で、イントラネット、ＬＡＮまたはＷＡＮ等の他のネットワークを用いることができる。図示のクライアント装置１０２ａ〜ｎはそれぞれ、プロセッサ１１０と結合したランダムアクセスメモリ（ＲＡＭ）１０８等のコンピュータ可読媒体を備える。プロセッサ１１０は、メモリ１０８に格納されたコンピュータで実行可能なプログラム命令を実行する。かかるプロセッサは、マイクロプロセッサ、ＡＳＩＣおよび状態マシンを備えてもよい。かかるプロセッサは、例えばコンピュータ可読媒体等の媒体を備えるか、媒体との間で通信を行う。この媒体は命令を格納しており、命令は、プロセッサにより実行されるときに、ここで記載する方法をプロセッサに遂行させる。
【０００９】
コンピュータ可読媒体の実施の形態には、限定はしないが、コンピュータ可読命令をプロセッサに提供できる電子式、光式、磁気式の各装置、または他の格納もしくは送信装置が含まれる。好適な媒体の他の例は、限定はしないが、フロッピーディスク、ＣＤ−ＲＯＭ、磁気ディスク、メモリーチップ、ＲＯＭ、ＲＡＭ、ＡＳＩＣ、構成プロセッサ、全ての光媒体、全ての磁気テープもしくは他の磁気媒体、または、コンピュータープロセッサが命令を読み取れる任意の他の媒体が含まれる。また、他の各種形式のコンピュータ可読媒体が、ルータ、個人もしくは公衆のネットワーク、または他の送信装置もしくは送信チャネルを、有線であれ、無線であれ、含むコンピュータへ命令を送信または搬送してもよい。命令は、例えば、Ｃ、Ｃ＋＋、Ｃ＃、ビジュアルベーシック、ＨＴＭＬ、Ｊａｖａ、およびＪａｖａＳｃｒｉｐｔを含む任意のコンピュータープログラム言語のコードを含んでもよい。
【００１０】
クライアント装置１０２ａ〜ｎは、マウス、ＣＤ−ＲＯＭ、キーボード、音声認識ハードウエア、表示、または他の入力もしくは出力装置等、幾つかの外部または内部装置を備えてもよい。クライアント装置１０２ａ〜ｎの例は、パーソナルコンピュータ、デジタルアシスタント、携帯情報端末、携帯電話、移動電話、スマートフォン、ページャ、デジタルタブレット、ラップトップコンピュータ、装着型コンピュータ、プロセッサ型装置、ならびに類似種類のシステムおよび装置である。一般に、クライアント装置１０２ａ〜ｎは、一つ以上のアプリケーションプログラムと相互作用する任意の種類のプロセッサ型プラットフォームでよい。図１に示す１０２ａ〜ｎのクライアント装置は、パーソナルコンピュータを備える。
【００１１】
メモリ１０８は、モニターエンジン１４０、クライアントアプリケーション１７０、クライアント記事１７１およびクエリプロセッサ１８０を備える。記事には、例えば、ＨＴＭＬ、ＸＭＬ、ＸＨＴＭＬ、ポータブルドキュメントフォーマット（ＰＤＦ）ファイル等の各種形式のウェブページ文書およびワードプロセッサ、データベースおよびアプリケーションプログラムドキュメントファイル、チャットメッセージ、電子メール、オーディオ、ビデオ、または（インターネット等の）ネットワーク、パーソナルコンピュータ、または他の計算手段もしくは格納手段上で利用可能などのような種類の他の任意情報が含まれてもよい。クライアント記事１７１には、ユーザまたはクライアントの装置と関係付けられる任意の記事が含まれる。図示の実施の形態では、クライアントアプリケーション１７０には、ワードプロセッサーアプリケーションが含まれ、クライアント記事１７１には、ワードプロセッサーアプリケーションとともに利用可能なフォーマットの文書が含まれる。
【００１２】
図示のモニターエンジン１４０は、クライアントアプリケーション１７０に関係付けられるクライアント側行動データを決定する。クライアント側行動データには、例えば、入力データ、通信データ、記事履歴データおよび参照データ、ならびに他の形式のクライアント側行動データを含めてもよい。これらのデータ種類それぞれについては、より詳細に以下説明する。モニターエンジン１４０は、クライアントコンピュータ上の記事との、ユーザの相互作用（インタラクション）およびクライアントコンピュータの相互作用をモニタする。他の実施の形態では、モニターエンジン１４０は、クライアントコンピュータまたは関係するネットワーク等の記事との、ユーザの多数の相互作用をモニタする。一実施例として、モニターエンジン１４０は、クライアント記事１７１をモニタし、ユーザ１１２ａが、クライアントアプリケーション１７０を用いてクライアント記事１７１にデータを打ち込んでいることを検出する。モニターエンジン１４０は、ユーザ１１２ａが記事にデータを打ち込むのに費やす時間をモニタして、これを記録する。モニターエンジン１４０は、クライアント１０２ａ上の多数の記事（ここでは不図示）との相互作用をモニタして、これを記録する。クライアント側行動データの収集および使途については、詳細に以下説明する。
【００１３】
図示の実施の形態によるモニターエンジン１４０は、収集したクライアント側行動データをデータ格納部１６０に格納する。図示の実施の形態におけるデータ格納部１６０は、クライアント行動データのデータベース１６４を含む。本発明の他の態様または実施の形態によれば、データ格納部１６０は既存のデータベースを含んでもよい。データ格納部１６０のデータ格納要素は、限定はしないが、アレイ、ハッシュテーブル、リストおよびペアを含むデータを格納するための、任意の一つまたは幾つかを組み合わせた方法を含んでもよい。クライアント装置１０２は、他の類似する種類の格納装置にアクセスできる。クライアント行動データのデータベース１６４は、クライアントアプリケーション１７０に関係付けられるデータと、印刷、ビュー、スクロール、マウスの動き、電子メールまたは他の形式のクライアント側行動データ等の、クライアント側行動データとを格納する。クライアント側行動データを、単一のデータベース中の他データと組み合わせてもよく、または多数のデータベースに格納してもよい。
【００１４】
クエリプロセッサ１８０は、ユーザ１１２ａにより入力される明示的な検索クエリ１１４を受信するか、またはクライアント側行動データに基づく暗示的なクエリを生成することを可能にするソフトウエアおよびハードウエアを備える。次いで、クエリプロセッサ１８０は、暗示的または明示的クエリを、検索エンジン１２０が受信できるクエリ信号１８２へとフォーマット変換する。
【００１５】
メモリ１０８は検索エンジン１２０を更に備える。検索エンジン１２０は、クエリプロセッサ１８０からのクエリ信号１８２に応答して関連情報を探し出す。クエリ信号１８２は、例えば、ユーザ１１２ａが入力した検索クエリに基づいて生成した明示的クエリ信号、またはモニターエンジン１４０からのイベント信号に基づいて生成した暗示的クエリ信号に対応してもよい。検索エンジン１２０は、一セットの関連情報または検索結果１５０をユーザ１１２ａへ返すことにより、クエリ信号１８２に応答する。
【００１６】
図示の検索エンジン１２０は、記事ロケータ１３４、ランク付けプロセッサ１３８、およびクライアント行動データプロセッサ１３６を備える。図示の実施の形態では、それぞれが、メモリ１０８にあるコンピューターコードを含む。記事ロケータ１３４は、クエリプロセッサ１８０からのクエリ信号１８２に対応する一セットの関連記事を識別する。クライアント行動データプロセッサ１３６は、記事ロケータ１３４が返した一セットの関連情報中の記事に関係付けられるクライアント側行動データを、データ格納部１６０から取り出すか、さもなければ決定する。ランク付けプロセッサ１３８は、クライアント行動データプロセッサ１３６が決定したクライアント側行動データを考慮し、クエリ信号１８２との関連性に基づいて、記事ロケータ１３４が識別した関連記事の集合内のそれぞれの記事にランク付けするか、または採点する。記事ロケータ１３４、ランク付けプロセッサ１３８、およびユーザデータプロセッサ１３８の他の機能および特性については、以下に更に詳細に説明するので注意のこと。
【００１７】
図２は、図１に示すモニターエンジン１４０の詳細図である。クライアント１０２ａまたはユーザ１１２ａがクライアント記事１７１ａ〜ｃと相互作用する時、モニターエンジン１４０は、このようなクライアント行動活動をモニタし、このクライアント行動活動から、クライアント記事１７１ａ〜ｃに関係付けられるクライアント側行動データを作成する。図示の実施の形態による、クライアント記事１７１ａ〜ｃに関係付けられるクライアント行動活動には、一つ以上の入力アクション１７２ａ〜ｃ、通信アクション１７４ａ〜ｃ、記事履歴アクション１７６ａ〜ｃ、および参照アクション１７８ａ〜ｃが含まれる。クライアント記事に関係付けられるユーザ１１２ａおよび／またはクライアント１０２ａのこれら４つの一般的なアクション分類は、説明のために提示したにすぎない。図示しない他の一般的なアクション分類があり、例えば、以下で更に説明する関係アクションが含まれる。図２では、クライアント記事１７１ａ〜ｃを図示して、モニターエンジン１４０が、一つ以上のアプリケーションに関係付けられる複数の記事をモニタし、各記事に個々に関係付けられるクライアント側行動データを作成することを説明する。図２で説明するデータ種類は、クライアントアプリケーション１７０ａ〜ｃに関係付けられるクライアント記事１７１ａ〜ｃに関係付けられるクライアント側行動データの種類の実施例として提示したにすぎない。クライアント記事１７１ａ〜ｃに関係付けられる他の種類のクライアント側行動データを、本発明の範囲内で利用できる。例えば、クライアント側行動データには、ユーザ１１２ａが過去に特定種類の記事へどのように応答したか、またはクライアント側活動が特定種類の記事に、通常はどの程度関係付けられるか等の、クライアントの嗜好に関するデータを含めることができる。例えば、ユーザ１１２ａは、ウェブページおよびワードプロセッサ文書の両方を含む検索結果リストからウェブページを選択することにより、またはほとんどのユーザ行動を特定種類の記事の範囲内で行うことにより、ウェブページに対する嗜好を明示できる。本発明は、ユーザ１１２ａの嗜好を反映するデータを、単独または他の要因と組み合わせて用いて、関係付けられる記事に対するランク付け点数を決定できる。
【００１８】
モニターエンジン１４０は、ユーザ１１２ａおよび／またはクライアント１０２ａのアクションをモニタし、対応するクライアント側行動データを決定する。対応するこのクライアント側行動データは、例えば、入力アクションデータ１７２ａ〜ｃ、通信アクションデータ１７４ａ〜ｃ、記事履歴アクションデータ１７６ａ〜ｃ、または参照アクションデータ１７８ａ〜ｃを含んでもよい。より一般的には、クライアント側行動データは、所与のアプリケーションに生じることもある任意の種類のクライアント活動を含んでもよい。所与のアプリケーションは、一つ以上の入力アクション方法を有してもよく、それぞれはクライアント側行動データに関係付けることができ、使用中の記事へ、関係付けたランク付け重みを与えることができる。図２に示した４つの一般的なクライアント側行動データの分類は、説明だけを目的とするものである。しかしながら、本発明は、図２に示したクライアント側行動のこれら４つの一般的分類には限定されない。例えば、コンピュータープログラミングアプリケーションは、コンパイルするデータの入力アクションを伴うことがある。コンピュータープログラミングアプリケーションでのユーザ作業は、定期的にデータをコンパイルすることである。このアクションは、コンパイルされる記事に高い重要性を示すことになり、本発明が作成し、使用するクライアント側行動データの別の実施例である。本発明は、特定アプリケーションに関係付けられる、異なる種類のアクションへ、異なる重み付け要因を割り当てることもできる。
【００１９】
図２に示される入力アクションデータ１７２ａ〜ｃには、例えば、打ち込みデータ、マウスの動きのデータ、スクロールデータ、音声認識入力データ、コピーアンドペーストデータまたは任意の他形式の入力データを含めることができる。例えば、通信アクションデータ１７４ａ〜ｃには、印刷データ、返答データ、電子メールデータ、転送データ、または任意の形式の通信データを含めることができる。記事履歴アクション１７６ａ〜ｃには、例えば、最後に保存した日時のデータ、ファイルサイズデータ、作成者データまたは任意の他の種類の記事履歴データを含めることができる。参照アクション１７８ａ〜ｃには、例えば、ブックマークデータ、ハイパーリンクデータ、脚注データ、相互参照データまたは任意の他種類の参照データを含めることができる。図２には示していないが、関係アクションデータには、例えば、電子メールがワードプロセッサ文書に関係付けられること（添付により）、または２つの文書がワードプロセッサ文書およびプレゼンテーションのように、並行して取り組まれていること、を含めることができる。クライアント記事１７１ａ〜ｃに対応するクライアント側行動データを含む一つ以上のデータが、ヌル集合である可能性もある。
【００２０】
クライアント記事１７１ａ〜ｃに対応するクライアント側行動データを決定した後、モニターエンジン１４０は、データ格納部１６０内に配置したクライアント行動データのデータベース１６４がいつでも受信できるように、クライアント記事１７１ａ〜ｃに関係付けられるクライアント側行動データを処理する。次いで、モニターエンジン１４０は、データを格納するためにデータ格納部１６０へ送信する。クライアント側行動データは、データに関係付けられる記事のための識別情報とともに送信され、データは識別情報に関係付けたまま格納する。
【００２１】
モニターエンジン１４０は、多数のユーザ記事に対するクライアント側行動データを決定し、記事に関係付けられるクライアント側行動データが、その特定記事により識別されることを確実にする。モニターエンジン１４０は、クライアント側行動データを、記事とクライアント行動との間の関係を維持するようにして、データを関連特定記事に関係付ける識別情報とともに、データ格納部１６０へ送信する。
【００２２】
モニターエンジン１４０の機能の実施例として、ワードプロセッサーアプリケーションに関係付けられる記事を扱う作業をするユーザ１１２ａを考えてみる。本実施例では、記事は、図２のクライアント記事１７１ａにより表され、ワードプロセッサーアプリケーションは、クライアント記事１７１ａにより表される。ユーザ１１２ａが、クライアント記事１７１ａと相互作用する時（本実施例ではワードプロセッサーアプリケーションによる記事）、モニターエンジン１４０は、クライアント行動データをモニタし、これを受信する。
【００２３】
本実施例では、ユーザ１１２ａが、クライアント記事１７１ａにテキストを打ち込んだ場合、モニターエンジン１４０はこの活動を検出し、例えば、ユーザ１１２ａが打ち込んだこと、およびユーザ１１２ａが打ち込んだ時間の長さを示すデータを含む入力アクションデータ１７３ａを受信する。次いで、ユーザ１１２ａが記事を保存し、それを友人に電子メールした場合、モニターエンジン１４０は、この活動を検出し、例えば、記事を保存した時間およびデータ、ならびに記事のデータの全バイト数を含む、例えば記事履歴アクションデータ１７６ａを含む追加のユーザ行動データを受信する。モニターエンジン１４０は、例えば、その記事が電子メールされたことと、記事が送られた受取人と、記事に付帯する説明と、を含む通信アクションデータ１７５ａも作成している。
【００２４】
次いで、モニターエンジン１４０は、ワードプロセッサーアプリケーションに関係付けられるクライアント側行動データを、それが関連する記事に関係付けられるままとなるような方法で、データ格納部１６０内に配置したクライアント行動データのデータベース１６４が受信するよう構成する。
【００２５】
従って、本実施例では、モニターエンジン１４０は、ユーザ１１２ａの打ち込み、保存、および電子メールの各作業に応答して、クライアント側行動データを作成する。このクライアント側行動データは、クライアント側行動データを生成するイベントが発生した場合、ユーザ１１２ａが用いていたワードプロセッサ文書に関係付けられる。この関係付けは、ワードプロセッサ文書が、記事ロケータ１３４によりクエリ信号１８２に関連していると決定された場合、クライアント行動データプロセッサ１３６が、ワードプロセッサ文書に関係付けられるクライアント側行動データを取り出せるように、データ格納部１６０に保存される。
【００２６】
次いで、モニターエンジン１４０により作成されたクライアント側行動データを用いて、検索エンジン１２０が記事を採点またはランク付けする。例えば、多くの印刷、編集、ビューおよびスクロール活動に関係付けられる記事は、関係付けられる印刷、編集、ビューおよびスクロール活動がほとんどないか、または全くない記事より高くランク付けされる可能性がある。なぜなら、これら活動に関係付けられる記事へのユーザ１１２ａの高い関心度を、これらの活動が示していると考えられるからである。例えば、開きはしたが、印刷または編集が一度もされなかたテキスト文書は、それに関係付けられる広範囲に及ぶ編集および印刷活動をしたテキスト文書に比べて、ユーザはあまり読んでいないと考えられる。
【００２７】
同様に、関係付けられる打ち込み活動が何もないテキスト文書は、多くの打ち込み活動を伴うものより、ユーザはあまり編集していないと考えられる。ユーザがあまり編集しなかったり、読まなかったりした記事は、そのユーザにとって重要性が低いと考えられる。従って、ランク付けプロセッサ１３８は、関係付けられるユーザ活動が少ない記事に低いランク付け点数を割り当てることになる。
【００２８】
注意すべきは、本発明は、図１および図２に示すものと異なるアーキテクチャをもつシステムを備えてもよい、ということである。図１に示すシステム１００および図２に示すモニタシステムの詳細図は単なる例示であるが、これらを用いて図３〜図５に示す例示の方法を説明する。
【００２９】
本発明に基づいて各種の方法が実行できる。本発明による例示の一方法は、検索クエリを受信するステップ、検索クエリに関係付けられる関連記事を決定するステップ、および関連記事に関係付けられるクライアント側行動データに少なくとも一部基づいて、関係付けられる記事に対するランク付け点数を決定するステップを含む。
【００３０】
例えば、ユーザ１１２ａが、本人が最近参加した販売会議に関連する記事を検索したい場合、ユーザ１１２ａは、検索クエリ１１４として用語「販売会議」を入力する。本発明は、この検索クエリ１１４「販売会議」を受け取って、この検索と関連する文書を探し出す。これには、例えば、主題欄にこれらのワードを含む電子メール、文書本文にこれらのワードを含むテキスト文書、および名称にこれらのワードを含むスプレッドシート、が含まれる。検索クエリ１１４に関連しているとして探し出した記事のすべてが、ユーザ１１２ａにとって関心が高いとは限らない。本発明は、記事を扱う仕事をする場合、ユーザ１１２ａの様々なアクションに従って、関連記事をランク付けすることにより、この問題に取り組む。例えば、ユーザ１１２ａがスプレッドシートをスクロールし、マウスでそれをクリックし、それにテキストを打ち込み、それを印刷し、そしてそれを頻繁に見た場合、ユーザ１１２ａは、そのスプレッドシートを編集または作製したか、さもなければユーザ１１２ａに大きな関心があったと考えられる。他方、ユーザ１１２ａが、テキスト文書にほとんど活動を行わなかった場合、ユーザ１１２ａに大きな関心がなかったと、考えられる。従って、本発明は、より高いランク付け点数でそれをランク付けすることにより、テキスト文書を越えるスプレッドシートの相対的重要性を反映させることができる。従って、検索クエリ１１４の結果をユーザ１１２ａに返す時、テキスト文書より強調するようにスプレッドシートを表示できる。スプレッドシートを強調することは、ユーザ１１２ａにとって関心が薄いテキスト文書等の検索結果から、それを選択するユーザ１１２ａの助けとなろう。
【００３１】
図３〜図５は、本発明による例示の方法の各種態様を示す。図３は、本発明による例示の方法２００を示す。この例示の方法は、本発明による方法を実行するには様々なやり方があるので、例示を目的とするものである。図３に示す方法２００は、各種システムのいずれかにより実行、すなわち遂行できる。方法２００は、図１および図２に示すシステム１００で実行するものとして、例示のために以下説明し、システム１００の各種の要素を、図３〜図５の例示の方法を説明する際に参照する。図示の方法２００は、クライアント行動データに基づく検索結果ランク付けを規定することにより、クライアント側検索の改良方法を提供する。本発明による方法は、ネットワーク検索、サーバ側検索、組み合わせ検索、および他のシステムを含む、別の方法でも実施できる。
【００３２】
図３〜図５に示す各ブロックは、例示の方法２００で実行される一つ以上の処理、方法、またはサブルーチンを表す。図３を参照すると、ブロック２０２で、例示の方法２００が始まる。ブロック２０２で、カウンタ変数ｎが１に設定される。カウンタ変数ｎを用いて、所与の検索に対して方法２００の繰り返しが完了する回数を調整する。ブロック２０２に続いてブロック２０４では、クライアント行動データのデータベースが提供される。これは、例えば、モニターエンジン１４０の支援を受けてこのようなデータベースを構築するか、またはこのようなデータベースとの通信を確立することにより達成してもよい。
【００３３】
ここで図４を参照する。図４は、図３のブロック２０４の詳細図であり、クライアント行動データのデータベースを提供するための例示の方法を説明する。図４に示す方法はブロック２０８で始まり、説明した実施例に基づいて、記事に関係付けられるクライアント側行動データがモニターエンジン１４０により決定される。図２で説明するように、クライアント側行動データには、例えば、入力アクション１７２ａ〜ｃ、通信アクション１７４ａ〜ｃ、記事履歴アクション１７６ａ〜ｃ、または参照アクション１７８ａ〜ｃを含む任意数の別々の種類のデータを含んでもよい。他種類のクライアント側行動データも図４のブロック２０８で受信できる。代替として、クライアント側行動データは、既存のデータベースから受信してもよい。
【００３４】
ブロック２０８に続いて、ブロック２２４では、ブロック２０８で集められたクライアント側行動データが格納される。図４に示すシステムによれば、クライアント記事１７１ａ〜ｃから受信したモニターエンジン１４０からのクライアント行動データは、データ格納部１６０内のクライアント行動データのデータベース１６４へ送信され、そこに格納される。これについては、図２に関連させて、より詳細に説明する。
【００３５】
ここで図５を参照する。図５は、図４のブロック２０８に示す処理の例示の実施の形態である。図４のブロック２０８では、クライアント行動データは、クライアント記事１７１ａ〜ｃから受信される。図５に示す方法は、ブロック２１０で始まる。注意すべきは、図５のブロックは、図４のブロック２０８の間に、記録されるユーザ活動データの種類の実施例として役立てることを意図している、という点である。図５は、クライアントアプリケーションから受信するか、さもなければ本発明に関係付けられる全体のランク付け処理の一部として受信する、全ての可能性のあるユーザ行動活動の包括的リストを与えるものではない。
【００３６】
図５はブロック２１０で始まり、このブロックでは、記事に関係付けられるスクロール活動データを決定する。スクロール活動データには、例えば、ウェブページ上またはテキスト記事内のスクロール量に関するデータ、スクロール活動が発生する記事内の場所に関するデータ、スクロールに費やした時間に関するデータ（例えば、記事のアクティブ時間と比較したときの）またはスクロール活動に関する他のデータが含まれてもよい。
【００３７】
ブロック２１０に続いてブロック２１１では、記事に関係付けられる印刷データを決定する。印刷データには、例えば、記事を印刷した場合に関連するデータ、記事を印刷した頻度、記事のどの部分を印刷したか、または記事の印刷に関連する任意の他の情報が含まれてもよい。
【００３８】
ブロック２１１に続いてブロック２１２では、記事に関係付けられるブックマークデータを決定する。ブックマーク情報には、例えば、インターネットＵＲＬのブックマークについての情報、テキスト記事内の同一記事、または別の記事の他部分へのブックマーク、特定記事と結びつけられるブックマークの数、記事に関係付けられるブックマークの文脈内容、または記事に関係付けられるブックマークに関連する任意の他の情報が含まれてもよい。
【００３９】
ブロック２１２に続くブロック２１３では、記事に関係付けられるアイドルデータを決定する。アイドルデータ情報には、例えば、特定記事へのユーザ活動が終了してからの経過時間数に関連するデータ、特定記事がアクティブ、つまりユーザに見えるかどうか、特定記事がユーザまたは別のプログラムからの入力を受信しているかどうか、他のプログラムがユーザ入力または活動を受信しているかどうか、または特定記事のアイドルと関連する任意の他のデータが含まれてもよい。
【００４０】
ブロック２１３に続くブロック２１４では、記事に関係付けられるコンピュータープログラムアプリケーション使用データを決定する。コンピュータープログラムアプリケーション使用データには、例えば、どのプログラムがアクティブであるかに関連するデータ、どのプログラムがユーザに見えるか、特定アプリケーションのハンドルまたはプロセスの入力の種類、またはコンピュータープログラムアプリケーションデータと関連する他のデータが含まれてもよい。これには、アプリケーションを用いた時間数、ユーザがセッション中に費やした平均時間も含まれる。この情報は、アプリケーションが生成した記事にランクの重みを転送できる。
【００４１】
ブロック２１４に続くブロック２１５では、記事に関係付けられる記事アクセス頻度データを決定する。記事アクセス頻度データには、例えば、特定記事アクセスの頻度、特定ユーザによる特定記事アクセスの頻度、他のアプリケーション使用の頻度と比較した特定記事アクセスの頻度、記事へのアクセス期間の時間数、日時、または使用アクセス頻度と関連する任意の他データ等の、他の変数の関数としてのアクセス頻度、が含まれる。
【００４２】
ブロック２１５に続くブロック２１６では、記事に関係付けられるアクセス時間データを決定する。アクセス時間データには、例えば、記事の特定記事にアクセスした日時、特定記事に関係付けられるアクセス時間の所要時間、記事への前回アクセス以降の経過時間、他のアプリケーションにアクセスした時間、または使用した時間、に関連する記事にアクセスした時間、アクセス時間データと関連するアプリケーションまたは任意の他の情報、を使用した時間が含まれてもよい。
【００４３】
ブロック２１６に続くブロック２１７では、クライアントの第２記事との相互作用法のデータを決定する。クライアントの第２記事との相互作用法のデータには、例えば、ユーザ１１２ａが第２記事に送信する入力方法、ユーザが第２記事に送信する入力の種類、第２記事がユーザのために生成する出力の種類、または第２記事が生成する出力の量が含まれてもよい。
【００４４】
ブロック２１７に続くブロック２１８では、クライアントの第２記事との相互作用の量のデータを決定する。クライアントの第２記事との相互作用法のデータには、例えば、ユーザ１１２ａが第２記事に送信する入力の量、ユーザが第２記事に送信する入力の種類、第２記事がユーザのために生成する出力の種類、または第２記事が生成する出力の量が含まれてもよい。
【００４５】
ブロック２１８に続くブロック２１９では、マウスの動きのデータを決定する。マウスの動きのデータには、例えば、特定記事内でのマウスの動きの量、記事内でのマウスの動きの様子、特定記事に関係付けられるマウスの動きが意図的かどうか、または記事に関係付けられるマウスの動きの情報に関する任意の他のデータが含まれてもよい。マウスの位置は重要である。マウスが特定の領域に移動してから長時間そこをさまよう場合、関心がある領域であることを示す。
【００４６】
ブロック２１９に続くブロック２２０では、記事に関係付けられる返答データを決定する。返答データには、例えば、返答が電子メール、インスタントメッセージ、または記事に応じた他の通信媒体を経由したか、記事が返答を要求しているか、または記事に関係付けられる任意の他の返答データが含まれてもよい。
【００４７】
ブロック２２０に続くブロック２２１では、記事に関係付けられるデータのコピーを決定する。データコピーには、例えば、記事内のテキスト、グラフィック、または他の素材をコピーしたかどうか、コピーした記事内の素材の量、記事が別のアプリケーションからコピーされた素材を含むかどうか、または記事に関係付けられる任意の他のコピーデータが含まれてもよい。
【００４８】
ブロック２２１に続くブロック２２２では、記事に関係付けられる転送データを決定する。転送データには、例えば、記事を転送したか、特定記事を転送メッセージとして受信したか、または記事に関係付けられる任意の他の転送情報が含まれてもよい。
【００４９】
ブロック２２２に続くブロック２２３では、記事に関係付けられる場所データを決定する。場所データには、例えば、記事が格納された場所を指すフルパス名、文書が以前格納されていた場所の履歴が含まれてもよい。例えば、記事が「c:\documents\budgets\proposal\December Forecast.txt」に格納されている場合、これらの各用語は、記事自体に明示的に出現しない場合でも、記事に関係付けることができる。更に、記事が、旧の場所から新規の場所に移される場合、記事に関係付けられる場所データは、旧の場所に関係付けられるパス名と、新規場所に関係付けられるパス名の両方に関する情報を含めることができる。
【００５０】
図５に示す方法２０８はブロック２２３で終了する。ブロック２１０から２２３については、各ブロックがオプションであり、含まなくてもよいし、または特定記事のデータを持っていなくてもよい。注意すべきは、図５では説明のために、このようなモニタを一回のループだけで示しているが、クライアント側行動データの決定はし続けるのが好ましい、ということである。図５の方法は、図４のブロック２０８で実行するサブルーチンである。
【００５１】
図４に戻ると、これは図３のサブルーチンである。図４のブロック２０８に続くブロック２２４では、クライアント側行動データが格納される。クライアント側行動データは、メモリ１０８の、例えば、データ格納部１６０またはクライアント１０２に関係付けられる任意の他の格納媒体に格納できる。ブロック２２４は図４のサブルーチンで説明する最後のブロックである。
【００５２】
再度図３を参照すると、ブロック２０４に続くブロック２２８では、クエリ信号１８２は、検索エンジン１２０により受信される。検索信号１８２は、ユーザ１１２ａが明示的に入力する検索クエリ１１４に応答して、またはモニターエンジン１４０が文脈を手掛かりにして生成する暗示的な検索クエリにより生成される。例えば、ユーザ１１２ａがワードプロセッサーアプリケーションで作業をして、記事に「予算会議の議題」というフレーズを打ち込んだ場合、クエリプロセッサ１８０は、モニターエンジン１４０から入力テキストに関する情報を受信し、用語「議題」、「予算」、または「会議」の何れかを含む記事を検索するよう暗示的なクエリを生成できる。次いで、クエリプロセッサ１８０は、この暗示的な検索クエリを反映したクエリ信号１８２を検索エンジン１２０に送信できる。
【００５３】
ブロック２２８に続くブロック２３０では、クエリ信号１８２に関連する一組の関連記事が、記事ロケータ１３４により決定される。このブロックでは、検索エンジン１２０内に配置される記事ロケータ１３４は、データ格納部１６０、またはメモリ１０８に配置された記事データから一関連記事または複数の関連記事を決定する。例えば、ユーザが入力した検索クエリ１１４が「予算会議提案」である場合、記事ロケータ１３４は、データ格納部１６０またはメモリ１０８内のどの記事が検索用語と関連しているかを決定する。この集合には、例えば、ワード「予算」、「会議」、および／または「提案」を含む電子メール、ワードプロセッサ文書、チャットセッション、およびスプレッドシートが含まれる。このブロックで決定された関連記事は、関連記事のランク付け、分類、および表示を受けてユーザ１１２ａに最終的に返される検索結果１５０と比較すると、おびただしい数になる可能性がある。このブロックで決定する関連記事は、クライアント側行動情報がない従来方法を用いた関連性により分類するか、または日付で分類する。
【００５４】
ブロック２３０に続くブロック２３２では、記事ロケータ１３４が返す関連記事の集合内の関連記事Ｔの合計件数が決定される。関連記事Ｔの合計件数は、他の実施の形態では異なる数（例えば、最大１００件）を用いることもあるが、検索に対して関連があると決定した全ての記事を反映させることが好ましい。カウンタｎと関連する変数Ｔ用いて、図示の方法２００の一部が完了するまでに何回繰り返されたかを決定する。
【００５５】
ブロック２３２に続くブロック２３４で、検索エンジン１２０は、クエリ信号１８２に関係付けられる関連記事Ｔの合計件数の「ｎ番目」の関連記事を決定する。方法２００の第１回の繰り返し中、カウンタｎは１なので、検索エンジン１２０は、クエリ信号１８２に関係付けられる第１の関連記事を決定する。続く繰り返しで、検索エンジン１２０は、関連記事Ｔの合計件数内の後続関連文書を決定する。代替の実施の形態では、クエリ信号１８２に関係付けられる関連記事は、既に分類されている。例えば、記事は、クライアント行動データを含まない関連性尺度で分類してもよく、または記事を日付で分類してもよい。
【００５６】
ブロック２３４に続くブロック２３６では、ｎ番目の記事に関係付けられるクライアント側行動データを決定する。このブロック２３６では、図示の実施の形態では、検索エンジン１２０内に配置されたクライアント行動データプロセッサ１３６は、記事ロケータ１３４から、クエリに関係付けられるｎ番目の記事を指す情報を受信する。次いで、クライアント行動データプロセッサ１３６は、記事ロケータ１３４がクエリ信号１８２に関連していると決定したｎ番目の記事に関係付けられるデータ格納部１６０からのクライアント側行動データを決定する。
【００５７】
例えば、クエリ信号１８２が、「予算会議提案」に対する検索クエリ１１４に関連する場合、記事ロケータ１３４は、例えば、テキスト、名称、主題欄等にワード「予算会議提案」がある全ての記事を含むこのクエリに関連する全ての記事を探し出す。次いで、特定のｎ番目の記事が、このクエリに関連すると決定された全ての関連記事から選択される。本実施例のｎ番目の記事は、例えば、「予算会議のための提案」という名称のスプレッドシートであるかもしれない。ここで説明する実施の形態によれば、次いで、クライアント行動データプロセッサ１３６は、データ格納部１６０から、スプレッドシートに関係付けられる全てのクライアント側行動データを取り出すことができる。これには、例えば、スプレッドシート内のスクロール量、スプレッドシートが電子メールを経由して送信されたかどうか、いつ保存したのか、何回印刷したか、が含まれる。次いで、このクライアント側行動データをブロック２３８で用いて、記事に対するランク付け点数を作成する。
【００５８】
ブロック２３６に続くブロック２３８では、ｎ番目の記事に関係付けられるクライアント側行動データがランク付けプロセッサ１３８に提供される。このブロック２３８では、クエリ信号１８２に関連するｎ番目の記事に関係付けるとクライアント行動データプロセッサ１３６が決定したクライアント側行動データを、データ格納部１６０内のクライアント行動データのデータベース１６４から取り出す。次いで、クライアント行動データのデータベース１６４から取り出したクライアント側行動データが、ランク付けプロセッサ１３８に送信される。従って、このブロックでは、クエリ信号１８２に関連していると決定された記事に関係付けられるクライアント側行動データが取り出され、ブロック２４０で説明したランク付け点数を生成するために使用できるランク付けプロセッサ１３８へ送信される。
【００５９】
他の実施の形態では、ユーザ１１２ａおよび／またはクライアント１０２ａによる、記事または記事の種類、例えば、特定サイトからの一ウェブページまたは複数のウェブページ、との相互作用の相対頻度および種類を反映する「クライアント行動点数」が予め決定され、データ格納部１６０に格納される。クライアント行動点数を含む実施の形態の態様によれば、検索エンジン１２０がクエリ信号１８２を受信する場合、記事に関係付けられるクライアント側行動データに代えて、または追加して、クライアント行動点数をランク付けプロセッサ１３８に送信する。クライアント行動点数を決定してもよい。
【００６０】
ブロック２３８に続くのはブロック２４０であり、ｎ番目の記事に対するランク付け点数を決定する。図示の実施の形態のこのブロック２４０では、ランク付けプロセッサ１３８が、クライアント行動データプロセッサ１３６からクライアント側行動データを受信する。ランク付けプロセッサ１３８はクエリ信号１８２も受信する。ランク付けプロセッサ１３８は、ｎ番目記事に関係付けられるクライアント行動データプロセッサ１３６から取り出したクライアント側行動データに少なくとも部分的に基づいて、ランク付け点数を決定する。これは、例えば、各種のクライアント行動データおよびクエリ信号１８２に関係付けられる他のランク付け要因に重み付けして、ランク付け点数を生成するランク付けアルゴリズムにより達成できる。異なる種類のクライアント行動データは異なる重みを有してもよく、これらの重みは異なるアプリケーションで異なってもよい。クライアント行動データに加えて、ランク付けプロセッサ１３８は、記事に含まれる用語に従って記事をランク付けする従来方法を利用してもよい。それはネットワーク上のサーバから得られる情報を更に用いることができ、ウェブページの場合の例では、ランク付けプロセッサ１３８は、サーバからのウェブページに対するページランク値を要求して、その値を追加して用いてランク付け点数を計算してもよい。ランク付け点数を記事の種類に依存させることもできる。ランク付け点数は更に、日時または週日等の、時間に依存させることもできる。例えば、ユーザは典型的には、昼間に、ある種の記事に取り組み、かつ関心を持ち、夕方または週末に、別の種類の記事に関心を抱くかもしれない。
【００６１】
ユーザ１１２ａが最近出席した販売会議に関連する記事を検索したいと望む場合の実施例を再度考える。ユーザ１１２ａは、検索クエリ１１４として用語「販売会議」を入力する。検索クエリ１１４に対応するクエリ信号１８２「販売会議」が生成され、記事ロケータ１３４は、この検索と関連する記事を探し出すことになる。これには、主題欄にワード「販売会議」を含む電子メール、テキスト文書の本文にワード「販売会議」を含むテキスト文書、およびこれらのワードを名称に含むスプレッドシートが含まれる。関連記事を探し出すと、クライアント行動データプロセッサ１３６は、どのクライアント側行動データがその記事に関係付けられるかを決定する。
【００６２】
ユーザ１１２ａは、記事の印刷、スプレッドシートのスクロール、記事のマウスクリック、記事の閲覧、および記事へのテキスト打ち込み、を含む記事と関連する特定アクションを実行した。この活動により、ユーザ１１２ａが、スプレッドシートを編集または作成していたと考えられ、でなければ、ユーザ１１２ａが大きな関心を抱いたということになる。ランク付けプロセッサ１３８は、他の関連記事より高いランク付け点数を割り当てることにより、同じ量および種類のクライアント側行動データと関係付けられなかった検索に関連していると決定した他の記事を越えるスプレッドシートの相対的な重要性を反映する。検索クエリ１１４の結果をユーザ１１２ａに返した時、検索結果の上位にスプレッドシートを挙げることができ、さもなければテキスト文書を越えるように強調して表示できる。これにより、クエリに関係付けるものの、ユーザ１１２ａにとって関心が低い他の記事を越えると、ユーザ１１２ａが認識するのが容易になる。
【００６３】
ブロック２４０に続くブロック２４２では、現在の記事番号ｎが検索結果Ｔの合計件数と等しいかどうかを判定する。ｎがＴと等しい場合、この方法はブロック２４４に進む。ｎがＴと等しくない場合、この方法はブロック２４３に進む。ブロック２４３で、ｎは次の整数に増分され、この方法はブロック２３４に戻ってブロック２３４〜２４２を繰り返す。処理する記事の番号、または処理時間に閾値を用いて、Ｔ未満の記事が処理されるようにしてもよい。例えば、１０００件以下の記事を処理するか、または最長でも５００ｍｓを越えない処理だけを許容する。
【００６４】
例えば、方法２００による第１回の実行では、ｎは１となるので、第１回の関連記事は関連記事の集合から選択する。関連記事の集合に１０文書がある場合、Ｔは１０となる。ブロック２４２で、１は１０と等しくないので、本方法は、ｎがｎ＋１を受け取るブロック２４３に進み、ｎは２となる。この処理をｎが１０になるまで繰り返す。ｎが１０になると、１０番目の（かつ最後の）記事が、関連記事の集合から選択される。次いで、ブロック２４２では、ｎがＴと等しいので、方法２００はブロック２４４に進む。
【００６５】
ブロック２４４で、ブロック２３４から２４０に進んだ関連記事は、ブロック２４０からの各関連記事に関係付けられるランク付け点数に従ってランク付け順位で編成される。
【００６６】
ブロック２４４に続くブロック２４６では、ブロック２４４でランク付け順位で編成された関連記事がユーザ１１２ａに対して表示される。ブロック２４４によるランク付け順位を反映する結果を、ユーザ１１２ａに対して表示できる方法は数多く存在する。一つの可能性のある方法は、上位３記事をハイパーリンクさせてリストに挙げ、他の全ての記事には、ユーザの所望記事が３つのハイパーリンク内に配置されていない場合に、ユーザが選択できる単一のハイパーリンクをリストに挙げることである。
【００６７】
ブロック２４６に続くブロック２４８で、方法２００は終了する。方法２００の代替バージョンでは、ユーザ行動データを用いて、クエリに依存しないで文書を採点することができる。例えば、ここでは利用していないが、ページランクは、クエリに依存しない点数を計算できる方法の例である。クエリを受信した後で、方法２００は、クエリに依存しないユーザ行動点数を、従来の一致法と組み合わせることができる。一バージョンでは、記事は、クエリに依存しないユーザ行動点数で規定された順序で処理される。これにより、全ての記事を処理する必要がなくなるので、システムは処理時間を節約できる。更に、第１段階が、クエリに依存しないユーザ行動点数、および従来の方法に基づいて最初の点数を生成し、第２段階が、第１段階により最高位にランク付けされた記事に、より高級な処理を行う、という２段階に処理を分割できる。
【００６８】
検索クエリを参照せずに、クライアント側行動データの少なくとも一部に基づく一つ以上の点数をユーザに示すこともできる。例えば、ユーザがサイトを閲覧する場合、ウェブページの点数をツールバーに示すことができる。
【００６９】
本発明は、クライアント側記事だけに基づいて結果を返す、またはクライアント側記事だけを検索するのに限定されない。例示のためだが、本発明の追加の実施の形態には、インターネットまたはローカルイントラネット等の、ネットワークからの検索結果を、方法２００により得られた検索結果と組み合わせることが含まれる。加えて、本発明は、一部はクライアント側行動データに基づいて、一部はインターネットランク付け点数に基づいて、記事に対するランク付け点数を決定できる。更に本発明は、クライアント側行動データを、単独または他の要因と組み合わせて用いて、インターネットまたはローカルイントラネット等のネットワーク上に配置された記事に対するランク付け点数を決定することができる。本発明は、クライアント側行動データを、単独または他の要因と組み合わせて用いて、クライアント１０２ａ上に配置された記事、インターネットまたはローカルイントラネット等のネットワーク１０６上に配置された記事、または任意の媒体上に格納されるか、または検索エンジン１２０がローカルまたはリモート接続でアクセス可能な任意場所の任意の他記事、に対するランク付け点数を決定することができる。
【００７０】
上記説明は多くの詳細を含むが、これら詳細が、本発明の範囲を限定するものと解釈してはならず、開示した実施の形態の例示にすぎないと解釈すべきである。当該技術に精通する者は、本発明の範囲内にある多くの他の可能性がある改変を想到することができよう。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施の形態によるシステムのブロック図を示す。
【図２】本発明の一実施の形態による図１に示すシステムの一部の詳細図を示す。
【図３】本発明の一実施の形態による方法のフロー図を示す。
【図４】図３に示す方法のサブルーチンの一実施の形態のフロー図を示す。
【図５】図４に示すサブルーチンのサブルーチンの一実施の形態のフロー図を示す。
【図１】
2007517308.tif 000003
【図２】
2007517308.tif 000004
【図３】
2007517308.tif 000005
【図４】
2007517308.tif 000006
【図５】
2007517308.tif 000007
【国際調査報告】
2007517308.tif 000008
2007517308.tif 000009
2007517308.tif 000010