(57)【要約】  検索クエリを受信するステップと、当該クエリに基づいて第１のオリジナル・クエリ・タームを特定するステップと、当該第１のオリジナル・クエリ・タームに関連する第１の拡張クエリ・タームを特定するステップと、当該第１のオリジナル・クエリ・タームと当該第１の拡張クエリ・タームの間の第１の語彙距離を決定するステップと、当該決定された第１の語彙距離に基づいて当該第１の拡張クエリ・タームに対する第１の重みを決定するステップと、それぞれが当該検索クエリに関連する複数のドキュメントをドキュメントのコーパスから特定するステップであって、当該複数のドキュメントは当該第１の拡張クエリ・タームを含むことに基づいて特定された第１のドキュメントを含む、ステップと、当該計算された第１の重みに基づく当該第１のドキュメントの順位を用いて当該複数のドキュメントを順位付けするステップと、当該順位に従って順位付けられた、当該複数のドキュメントのうち２つ以上を特定する当該検索クエリに対する応答を生成するステップとを含む技術である。【特許請求の範囲】
【請求項１】
検索クエリを受信するステップと、
前記クエリに基づいて第１のオリジナル・クエリ・タームを特定するステップと、
前記第１のオリジナル・クエリ・タームに関連する第１の拡張クエリ・タームを特定するステップと、
前記第１のオリジナル・クエリ・タームと前記第１の拡張クエリ・タームの間の第１の語彙距離を決定するステップと、
前記第１の拡張クエリ・タームに対する第１の重みを、前記決定された第１の語彙距離に基づいて決定するステップと、
それぞれが前記検索クエリと関連する複数のドキュメントをドキュメントのコーパスから特定するステップであって、前記複数のドキュメントは、前記第１の拡張クエリ・タームを含むことに基づいて特定された第１のドキュメントを含む、ステップと、
計算された第１の重みに基づく前記第１のドキュメントの順位を用いて、前記複数のドキュメントを順位付けするステップと、
前記順位に従って順位付けられた前記複数のドキュメントのうち２つ以上を特定する、前記検索クエリに対する応答を生成するステップと、
を含む、コンピュータ実行型の方法。
【請求項２】
前記第１のオリジナル・クエリ・タームに関連する第２の拡張クエリ・タームを特定するステップと、
前記第１のオリジナル・クエリ・タームと前記第２の拡張クエリ・タームの間の第２の語彙距離を決定するステップと、
前記決定された第２の語彙距離に基づいて、前記第２の拡張クエリ・タームに対する第２の重みを決定するステップと、
前記第２の拡張クエリ・タームを含むことに基づいて、ドキュメントの前記コーパスから第２のドキュメントを特定するステップであって、前記第２のドキュメントは前記複数のドキュメントに含まれる、ステップと
をさらに含み、
前記第２のドキュメントの前記順位は計算された第２の重みに基づく、
請求項１に記載の方法。
【請求項３】
前記第１の語彙距離を決定するステップは、前記第１のオリジナル・クエリ・タームと前記第１の拡張クエリ・タームの間の編集距離を決定するステップを含む、請求項１に記載の方法。
【請求項４】
前記編集距離を決定するステップは、前記第１のオリジナル・クエリ・タームと前記第１の拡張クエリ・タームの間のレーベンシュタイン距離を決定するステップを含む、請求項３に記載の方法。
【請求項５】
前記第１の重みはｅｘｐ（−ｄ）に近似的に等しい関数に従って決定され、ｄは前記語彙距離に対応する、請求項１に記載の方法。
【請求項６】
前記第１の拡張クエリ・タームを特定するステップは、単語が前記第１のオリジナル・クエリ・タームと語幹を共有することに基づいて前記単語を特定するステップを含む、請求項１に記載の方法。
【請求項７】
前記単語を特定するステップは、
前記第１のオリジナル・クエリ・タームに対する語幹を決定するステップと、
前記決定された語幹をキーとして利用することによって、インデックスまたはテーブルから前記単語を取り出すステップと、
を含む、請求項６に記載の方法。
【請求項８】
前記第１のオリジナル・クエリ・タームに関連する第２の拡張クエリ・タームを特定するステップと、
前記第１のオリジナル・クエリ・タームと前記第２の拡張クエリ・タームの間の第２の語彙距離を決定するステップと、
計算された第２の語彙距離に基づいて、前記第２の拡張クエリ・タームに対する第２の重みを決定するステップであって、前記第２の重みは、語彙距離の第１の狭義単調減少関数に従って決定される、ステップと、
前記第２の重みが閾値以下であることの結果として、前記複数のドキュメントを特定するために前記第２の拡張クエリ・タームを利用しないと判定するステップと、
をさらに含む、請求項１に記載の方法。
【請求項９】
前記第１のオリジナル・クエリ・タームに関連する第２の拡張クエリ・タームを特定するステップと、
前記第１のオリジナル・クエリ・タームと前記第２の拡張クエリ・タームの間の第２の語彙距離を決定するステップと、
前記第２の語彙距離が閾値以上であることの結果として、前記複数のドキュメントを特定するために前記第２の拡張クエリ・タームを利用しない判定するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記複数のドキュメントは、顧客サポート・システムのためのサポート・チケットである、請求項１に記載の方法。
【請求項１１】
前記第１のオリジナル・クエリ・タームに関連する第２の拡張クエリ・タームを特定するステップと、
第３の拡張クエリ・タームを、当該第３の拡張クエリ・タームが前記第２の拡張クエリ・タームと語幹を共有することに基づいて、特定するステップと、
前記第２の拡張クエリ・タームと前記第３の拡張クエリ・タームの間の第２の語彙距離を決定するステップと、
前記決定された第２の語彙距離に基づいて、前記第３の拡張クエリ・タームに対する第２の重みを決定するステップと、
前記第３の拡張クエリ・タームを含むことに基づいて、ドキュメントの前記コーパスから第２のドキュメントを特定するステップであって、前記第２のドキュメントは、前記複数のドキュメントに含まれる、ステップと、
をさらに含み、
前記第２のドキュメントの前記順位は計算された第２の重みに基づく、
請求項１に記載の方法。
【請求項１２】
前記第２の拡張クエリ・タームを特定するステップは、前記第１のオリジナル・クエリ・タームに関連する前記第２の拡張クエリ・タームを特定する類語から、前記第２の拡張クエリ・タームを選択するステップを含む、請求項１１に記載の方法。
【請求項１３】
検索クエリを受信し、
前記クエリに基づいて第１のオリジナル・クエリ・タームを特定し、
前記第１のオリジナル・クエリ・タームに関連する第１の拡張クエリ・タームを特定し、
前記第１のオリジナル・クエリ・タームと前記第１の拡張クエリ・タームの間の第１の語彙距離を決定し、
前記決定された第１の語彙距離に基づいて、前記第１の拡張クエリ・タームに対する第１の重みを決定する、
ようにプログラムされたクエリ拡張エンジンと、
それぞれが前記検索クエリに関連する複数のドキュメントを、ドキュメントのコーパスから特定するようにプログラムされた検索システムであって、前記複数のドキュメントは、前記第１の拡張クエリ・タームを含むことに基づいて特定された第１のドキュメントを含む、検索システムと、
計算された第１の重みに基づく前記第１のドキュメントの順位を用いて、前記複数のドキュメントを順位付けするようにプログラムされた順位付けエンジンと、
を備えた検索システムであって、
前記検索システムはさらに、前記順位に従って順位付けられた前記複数のドキュメントのうち２つ以上を特定する、前記検索クエリに対する応答を生成するようにプログラムされる、検索システム。
【請求項１４】
前記クエリ拡張エンジンはさらに、
前記第１のオリジナル・クエリ・タームに関連する第２の拡張クエリ・タームを特定し、
前記第１のオリジナル・クエリ・タームと前記第２の拡張クエリ・タームの間の第２の語彙距離を決定し、
前記決定された第２の語彙距離に基づいて、前記第２の拡張クエリ・タームに対する第２の重みを決定する
ようにプログラムされ、
前記検索システムはさらに、前記第２の拡張クエリ・タームを含むことに基づいて、ドキュメントの前記コーパスから第２のドキュメントを特定するようにプログラムされ、前記第２のドキュメントは前記複数のドキュメントに含まれ、
前記第２のドキュメントの前記順位は計算された第２の重みに基づく、
請求項１３に記載の検索システム。
【請求項１５】
前記第１の語彙距離を決定するように前記クエリ拡張エンジンをプログラムすることは、前記第１のオリジナル・クエリ・タームと前記第１の拡張クエリ・タームの間の編集距離を決定する命令を含む、請求項１３に記載の検索システム。
【請求項１６】
前記編集距離を決定するように前記クエリ拡張エンジンをプログラムすることは、前記第１のオリジナル・クエリ・タームと前記第１の拡張クエリ・タームの間のレーベンシュタイン距離を決定する命令を含む、請求項１５に記載の検索システム。
【請求項１７】
前記第１の重みはｅｘｐ（−ｄ）に近似的に等しい関数に従って決定され、ｄは前記語彙距離に対応する、請求項１３に記載の検索システム。
【請求項１８】
前記第１の拡張クエリ・タームを特定するように前記クエリ拡張エンジンをプログラムすることは、単語が前記第１のオリジナル・クエリ・タームと語幹を共有することに基づいて前記単語を特定する命令を含む、請求項１３に記載の検索システム。
【請求項１９】
前記単語を特定する命令は、前記第１のオリジナル・クエリ・タームに対する語幹を決定するための命令と、前記決定された語幹をキーとして利用することによってインデックスまたはテーブルから前記単語を取り出すための命令を含む、請求項１８に記載の検索システム。
【請求項２０】
前記クエリエンジンはさらに
前記第１のオリジナル・クエリ・タームに関連する第２の拡張クエリ・タームを特定し、
前記第１のオリジナル・クエリ・タームと前記第２の拡張クエリ・タームの間の第２の語彙距離を決定し、
計算された第２の語彙距離に基づいて、前記第２の拡張クエリ・タームに対する第２の重みを決定することであって、前記第２の重みは、語彙距離の第１の狭義単調減少関数に従って決定される、
ようにプログラムされ、
前記第２の拡張クエリ・タームは、前記第２の重みが閾値以下であることの結果として前記複数のドキュメントを特定するために使用されない、
請求項１３に記載の検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に電子情報の検索および抽出に関する。より具体的には、検索品質を改善するためのシステムおよび方法を開示する。
【背景技術】
【０００２】
単純な情報検索システムでは、ユーザは一般に、１つまたは複数のクエリ・タームを含むクエリを入力し、当該クエリ・タームを含むドキュメントのリストを受信する。当該クエリ・タームを含まないドキュメントは無視される。しかし、「再現率」または検索に成功したクエリに関連するドキュメントの割合はこの単純な情報検索システムでは低い。結果として、ユーザが関心のないドキュメントを、当該クエリに応じて特定することはできず、したがってユーザには決して提供されない。
【０００３】
再現率を高めるために使用される１つの技術は、単語のプレフィックスまたはポストフィックスを除去する「ステミング」として知られている。かかるプレフィックスおよびポストフィックスは英語では一般的であり、他の言語でも見られるものである。従来、ステミングは一般にドキュメントのボディをインデックス付けするときに適用される。例えば、ドキュメント中の単語「ｔｉｃｋｅｔｓ」の出現は「ｔｉｃｋｅｔ」としてインデックス付けされる。クエリが検索エンジンに提供されると、（「語減縮（ｔｅｒｍｒｅｄｕｃｔｉｏｎ）」としても知られる）クエリ・タームのステミングが実施され、同種の変換がインデックス付けの間に実施され、インデックスがステミングされたクエリ・タームを用いてアクセスされる。１例として、ステミングを使用する検索エンジンで「ｔｉｃｋｅｔｉｎｇ」を検索すると、当該単語「ｔｉｃｋｅｔ」を含むドキュメント（「ｔｉｃｋｅｔｉｎｇ」の語幹）と（「ｔｉｃｋｅｔｉｎｇ」と同じ語幹「ｔｉｃｋｅｔ」を有する）単語「ｔｉｃｋｅｔｓ」を含むドキュメントが返される。
【０００４】
再現率を高めるために使用される別の技術は、１つまたは複数のクエリ・タームが追加の関連するクエリ・タームで補完された「クエリ拡張」として知られる。関連するタームを特定するための１つの公知技術は、タームの共起、または、インデックス付け中にドキュメント内で見つかった類語および（一般にクエリのログを処理することで得られる）過去の検索クエリで送信されたクエリ・タームとの共起を分析して、意味的に関連するタームの類語を生成することである。かかる技術では、例えば、「ｐｌａｎｅ（飛行機）」と「ａｉｒｃｒａｆｔ（航空機）」が関連し、「ｈｏｓｐｉｔａｌ（病院）」と「ｍｅｄｉｃａｌ（診察、医療行為）」が関連すると判定してもよい。かかる例では、「ｈｏｓｐｉｔａｌ」というタームを含む検索クエリを、「ｍｅｄｉｃａｌ」というタームを含むように拡張してもよい。幾つかのケースでは、元のタームと拡張タームの間の観測された共起度合に基づいて、追加されたタームに重み付けを適用してもよい。かかる重み付けは、低い共起度合を有する拡張タームに基づいてドキュメントが検索される結果の順位付けプロセスに影響する。当該拡張タームは、検索されたドキュメントの中で低く順位付けされるべきである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ステミングやクエリ拡張はそれぞれ一般に再現率を高めるが、これらは一般に「精度」またはクエリに関連するドキュメントが検索される割合を低下させる。結果として、検索の結果、クエリに応じてユーザに関心のない多数のドキュメントが生じることとなりうる。この精度損失を回避しかつ／または検索結果の順位を高めつつ、再現率を高めることによって検索結果を改善する必要がある。
【課題を解決するための手段】
【０００６】
精度を高める上述の必要性は、顧客サポート・システムの状況で特に感じられている。当該システムでは、様々なサポート問題を記述し追跡するためにサポート・チケットがユーザやサポート・スタッフにより生成される。しかし、かかるサポート・チケットに格納された情報の性質は一般に、従来のステミングまたはクエリ拡張技術を使用することで再現率を高めるのを求めるときに、精度を急激に低下させる。多数の顧客サポート・システムでは、大量のサポート・チケットがあり、これらのサポート・チケットは通常、タームが滅多に変更されないのが通常である特定の知識部分にフォーカスしている。この適用事例では、一般に顧客サポート・チケットの状況で観られる精度損失に対抗する技術を示している。しかし、これらの技術はまた、他種のドキュメントに対して実施される検索にもより一般的に適用可能であり、当該検索の精度を高める可能性がある。さらに、幾つかの実施形態では、結果のインデックスを後処理せずに現存のインデックス付けエンジンを使用してもよい。
【０００７】
開示した主題の１態様は、検索クエリを受信するステップと、当該クエリに基づいて第１のオリジナル・クエリ・タームを特定するステップと、当該第１のオリジナル・クエリ・タームに関連する第１の拡張クエリ・タームを特定するステップと、当該第１のオリジナル・クエリ・タームと当該第１の拡張クエリ・タームの間の第１の語彙距離を決定するステップと、当該第１の拡張クエリ・タームに対する第１の重みを当該決定された第１の語彙距離に基づいて決定するステップと、当該検索クエリ、当該第１の拡張クエリ・タームを含むことに基づいて特定された第１のドキュメントに含む当該複数のドキュメントと関連する複数のドキュメントをドキュメントのコーパスから特定するステップ、当該計算された第１の重みに基づく当該第１のドキュメントの順位で当該複数のドキュメントを順位付けするステップと、当該順位に従って順位付けられた、当該複数のドキュメントのうち２つ以上を特定する当該検索クエリに対する応答を生成するステップと含むコンピュータ実行型の方法を含む。
【０００８】
別の態様は、検索クエリを受信し、第１のオリジナル・クエリ・タームを当該クエリに基づいて特定し、当該第１のオリジナル・クエリ・タームに関連する第１の拡張クエリ・タームを特定し、当該第１のオリジナル・クエリ・タームと当該第１の拡張クエリ・タームの間の第１の語彙距離を決定し、当該第１の拡張クエリ・タームに対する第１の重みを当該決定された第１の語彙距離に基づいて決定するようにプログラムされたクエリ拡張エンジンと、それぞれが当該検索クエリに関連する、当該第１の拡張クエリ・タームを含むことに基づいて特定された第１のドキュメントに含む複数のドキュメントをドキュメントのコーパスから特定するようにプログラムされた検索システムと、当該計算された第１の重みに基づく当該第１のドキュメントの順位で当該複数のドキュメントを順位付けするようにプログラムされた順位付けエンジンとを備えた検索システムであって、当該検索システムはさらに、当該順位に従って順位付けられた当該複数のドキュメントのうち２つ以上を特定する当該検索クエリに対する応答を生成するようにプログラムされた検索システムを含む。
【図面の簡単な説明】
【０００９】
【図１】検索システムの例を示すブロック図である。
【図２】本発明の諸態様を実施できるコンピュータ・システムを示すブロック図である。
【図３】検索クエリを実施するための方法を示す図である。
【図４】受信した検索クエリを処理する検索システムのための方法を示す図である。
【発明を実施するための形態】
【００１０】
図１は、インターネット、イントラネット、または別のクライアントおよびサーバ環境で実装できる送信クエリに関連する検索結果を提供するために使用できる例示的な検索システム１６０のブロック図であり、図３および４は検索システム１６０のための方法を示す。検索システム１６０は、後述するシステム、コンポーネント、および技術を実装できる情報検索システムの例である。しかし、開示されたシステムに対する多数の変形は本発明の革新的な態様を実装するためにも有効であることは当業者には理解される。
【００１１】
ユーザ１１０は、クライアント装置１２０を介して検索システム１６０と対話することができる。例えば、クライアント１２０は、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）、例えば、インターネットを通じて検索システム１６０に接続されたコンピュータであってもよい。かかるコンピュータの例には、デスクトップコンピュータ、ラップトップまたはノートブック・コンピュータ、タブレットコンピュータ、およびスマートフォンまたは他のモバイル通信装置が含まれるがこれらに限られない。幾つかの実装形態では、検索システム１６０およびクライアント装置１２０が１つのマシンであってもよい。例えば、ユーザは、デスクトップ検索アプリケーションをクライアント装置１２０にインストールすることができる。クライアント装置１２０は一般にランダム・アクセス・メモリ（ＲＡＭ）１２１とプロセッサ１２２を備える。
【００１２】
ステップ３１０では、ユーザ１１０は、フロントエンド・サーバ１５０の背後の検索システム１６０にクエリ１３１ａを送信することができる。例えば、ユーザ１１０は、クライアント装置１２０で実行されているウェブ・ブラウザ・アプリケーションを使用してＨＴＴＰでフォーマットしたクエリ１３１ａを生成してもよい。ユーザ１１０がクエリ１３１ａを送信すると、クエリ１３１ａがネットワーク１４０を介してフロントエンド・サーバ１５０に送信される。クエリ１３１ａを受信したことに応答して、フロントエンド・サーバ１５０がクエリ１３１ｂを検索システム１６０に発行する。幾つかの実施形態では、クエリ１３１ａの内容を実質的に修正することなく、クエリ１３１ａは単にクエリ１３１ｂとして中継または反復される。幾つかの実施形態では、ステップ３２０では、フロントエンド・サーバ１５０は、クエリ１３１ａに応答して追加の処理を行ってクエリ１３１ｂを生成する。例えば、クエリ・タームをクエリ１３１ｂに追加して、クエリ１３１ａを介したユーザ１１０により要求された検索を狭めてもよい。したがって、ステップ３３０では、フロントエンド・サーバ１５０は、クエリ１３１ｂを検索システム１６０に送信する。クエリ１３１ａの処理に加えて、他の情報サービスを提供するようにフロントエンド・サーバ１５０を構成してもよい。例えば、コンテンツ・サーバ１７０により格納され利用可能とされたドキュメントまたは他の情報へのアクセスの提供を含めて、ウェブサーバまたはウェブアプリケーションエンジンを実行してネットワーク１４０を介してネットワークベースのサービスを提供するようにフロントエンド・サーバ１５０を構成してもよい。１つの具体的なネットワークベースのサービスには、クライアント装置１２０で実行されるウェブ・ブラウザ・アプリケーションを介してユーザ１１０にアクセス可能なネットワークベースの顧客サポート・システムが含まれる。１実施形態では、図３の上の点線で示すように、中間フロントエンド・サーバ１５０なしに、クエリ１３１ａを、クライアント装置１２０から検索システム１６０に直接送信してもよい。かかる１実施形態では、検索システム１６０は、図３の下の点線で示すようにクライアント装置１２０に対して直接応答する。
【００１３】
検索システム１６０を、例えば、ネットワークを介して互いと接続される１つまたは複数の位置において１つまたは複数のコンピュータで実行されている１つまたは複数のコンピュータとして実装することができる。検索システム１６０は、インデックス・データベース１６１と検索エンジン１６５を備える。検索システム１６０は、検索結果１３２ｂを生成することでクエリ１３１ｂに応答する。検索結果１３２ｂはステップ３５０でフロントエンド・サーバ１５０に送信される。クエリ１３１ａとともに、フロントエンド・サーバ１５０は単純に結果１３２ｂを結果１３２ａとして渡すこともできるし、または、結果１３２ｂを受信したことに応答して、ステップ３６０において、フロントエンド・サーバ１５０が追加の処理を実施して結果１３２ａを生成してもよい。ステップ３７０では、結果１３２ａは、ネットワーク１４０を介してクライアント装置１２０に送信される。１実施形態では、結果１３２ａは、クライアント装置１２０で実行されているウェブ・ブラウザ・セッションにおいてステップ３８０で表示されるＨＴＭＬでフォーマットされた検索結果のウェブ・ページのような、ユーザ１１０に提供できる形態である。
【００１４】
ステップ３４０では、クエリ１３１ｂが検索システム１６０により受信されると、検索エンジン１６５がクエリ１３１ｂを処理し、クエリ１３１ｂにマッチするかまたは応答するドキュメントを特定する。ここでは「ドキュメント」とは、インデックス付け可能な任意の形のコンテンツであると理解される。当該コンテンツには、任意のテキスト形式またはグラフィック形式のテキスト情報、画像、ビデオ、オーディオ、マルチメディア、プレゼンテーション、および（組込みのハイパーリンクおよび他のメタデータ、ならびに／またはプログラム、例えばＪａｖａｓｃｒｉｐｔを含む）ウェブ・ページが含まれるがこれらに限られない。検索エンジン１６５は一般に、ドキュメントのコーパスをインデックス付けしインデックス付け情報をインデックス・データベース１６１に格納するインデックス付けエンジン１６６を備えるかまたはインデックス付けエンジン１６６にアクセスする。検索エンジン１６５は、インデックス・データベース１６１を利用してクエリ１３ｌａに応答してドキュメントを特定する。インデックス付けエンジン１６６によりインデックス付けされたドキュメントのコーパスは、コンテンツ・サーバ１７０を介してアクセス可能であってもよく、または、ネットワーク１４０を介してインデックス付けエンジン１６６およびクライアント装置１２０にアクセス可能な１つまたは複数のコンテンツ・サーバ１７５を介してアクセス可能であってもよい。コンテンツ・サーバ１７０もフロントエンド・サーバ１５０の背後にある（言い換えれば、ネットワーク１４０からは直接アクセス可能ではない）。インデックス付けを種々の特徴に基づいて実施してもよい。当該特徴には、ドキュメントの内容、ドキュメントから自動的に生成された情報（例えば、画像またはビデオに適用される光文字認識または機械視覚技術で生成された情報があるがこれに限られない）、ドキュメント、およびドキュメントのメタデータを記述または特徴付けるためにユーザまたは管理者により割り当てられた「タグ」が含まれるがこれらに限られない。
【００１５】
一般に、検索エンジン１６５は、クエリ１３１ａに応答して複数のドキュメントを特定するので、最終の結果１３２ｂは複数のドキュメントを特定することになる。一般に、結果１３２ｂで特定される複数のドキュメントがある場合、当該ドキュメントは、一般に当該ドキュメントに関連する関連レベルに従って明示的な順序または「順位付け」で結果１３２ｂにおいて提供される。これを行うために、検索エンジン１６５は一般に、例えば、結果１３２ｂが最も関連するドキュメントを最初に提示できるように、検索エンジン１６５によりクエリ１３１ｂに応答すると判定されたドキュメントを順位付けする順位付けエンジン１６８を備える。順位付けのための多数の技術が当業界で知られている。検索システム１６０は、ユーザ１１０に提示するためのフロントエンド・サーバ１５０とネットワーク１４０を介して結果１３２ｂをクライアント装置１２０に送信することができる。幾つかの実施形態では、フロントエンド・サーバ１５０は、検索システム１６０から受信した結果１３２ｂを操作して、フロントエンド・サーバ１５０により提供された他の情報サービスと一貫する形式でそれらをユーザ１１０に提供してもよい。例えば、結果１３２ｂが、コンテンツ・サーバ１７０を介して利用可能な情報に対するドキュメント識別子の単純なＸＭＬベースのリストであってもよく、フロントエンド・サーバ１５０は、これらのドキュメント識別子を、結果１３２ｂで特定されたドキュメントにアクセスするためにクライアント装置１２０が使用できる結果１３２ａに含まれるＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）に変換するように構成される。
【００１６】
ステップ４１０では、検索システム１６０がクエリ１３１ｂを受信する。ステップ４２０では、検索エンジン１６５が、１つまたは複数のオリジナル・クエリ・タームをクエリ１３ｌｂに基づいて特定する。クエリ・タームは、文字の１つまたは複数のシーケンス（通常は単語）を規定する。当該シーケンスはまた、パターンまたは正規表現を規定してもよい（例えば、当該クエリ・ターム「ｃａｔ＊」は「ｃａｔ」および「ｃａｔｃｈ」と前方一致する）。例えば、クエリ１３１ｂが、ＵＲＩ「ｈｔｔｐ：／／ｓｅｒｖｅｒ／ｓｅａｒｃｈ？ｑ＝ｃｏｎｃｅｒｔ＋ｔｉｃｋｅｔ」を含むＨＴＴＰ  ＧＥＴメッセージであってもよく、そこから、検索エンジン１６５が２つのオリジナル・クエリ・ターム、即ち「ｃｏｎｃｅｒｔ」と「ｔｉｃｋｅｔ」の組を特定する。幾つかの実施形態では、クエリ１３１ｂが、クエリ・タームと組み合わせてまたはクエリ・タームに加えて使用される様々な演算子、修正子、および／またはパラメータを特定してもよい。例えば、クエリ１３１ｂが、ＵＲＩ「ｈｔｔｐ：／／ｓｅｒｖｅｒ／ｓｅａｒｃｈ？ｑ＝ｃｏｎｃｅｒｔ＋ｔｉｃｋｅｔ＆ｍａｘ＿ｃｒｅａｔｅ＿ｄａｙｓ＝７」を含むＨＴＴＰ  ＧＥＴメッセージであってもよく、そこから、検索エンジン１６５が上述の２つのオリジナル・クエリ・ターム、即ち「ｃｏｎｃｅｒｔ」と「ｔｉｃｋｅｔ」の組を特定し、さらに、それに応じたドキュメントを直近の７日間に生成されたものに制限する（換言すれば、７日より前に生成された他の関連ドキュメントを除外する）。上のＨＴＴＰＧＥＴメッセージは例にすぎず、他のメッセージ形式を使用してもよい。
【００１７】
検索エンジン１６５はクエリ拡張エンジン１６７を備える。クエリ拡張エンジン１６７は、ステップ４２０で、オリジナル・クエリ・タームに関連するゼロまたは１個以上の拡張クエリ・タームを特定するように構成される。例えば、クエリ拡張エンジン１６７を、オリジナル・クエリ・タームごとに、ゼロまたは１個以上の関連拡張クエリ・タームを特定するように構成してもよい。幾つかのオリジナル・クエリ・タームに対して、クエリ拡張エンジン１６７がどの拡張されたクエリ・タームも特定しなくともよい。一般に、拡張クエリ・タームは、オリジナル・クエリ・タームに加えて使用される。しかし、幾つかの実施形態では、クエリ拡張エンジン１６７により特定される拡張クエリ・タームを優先して、１つまたは複数のオリジナル・クエリ・タームが置き換えられる状況もありうる。
【００１８】
オリジナル・クエリ・タームに関連する拡張クエリ・タームを特定するための１つの技術には、オリジナル・クエリ・タームと語幹を共有する単語を特定することがある。例えば、語幹「ｔｉｃｋｅｔ」を有するオリジナル・クエリ・ターム「ｔｉｃｋｅｔｓ」と関連して、クエリ拡張エンジン１６７は「ｔｉｃｋｅｔ」「ｔｉｃｋｅｔｅｄ」および「ｔｉｃｋｅｔｉｎｇ」を拡張タームとして特定するであろう。なぜならば、それぞれがオリジナル・タームと同じ語幹「ｔｉｃｋｅｔ」を有するからである。英語では所与の単語が通常１つの語幹のみを有するが、英語以外の言語を含めて、タームが複数の語幹を有する状況があることに留意されたい。クエリ拡張エンジン１６７を、１つのタームに対して特定される全ての語幹に対応する拡張タームを特定するように構成してもよい。１実施形態では、このように語幹に従って関連する単語を特定するのを、その語幹（複数可）に従ってインデックス付けした単語の辞書によって実装する。例えば、「ｔｉｃｋｅｔ」「ｔｉｃｋｅｔｅｄ」「ｔｉｃｋｅｔｉｎｇ」および「ｔｉｃｋｅｔｓ」に関する辞書のエントリをそれぞれ、語幹「ｔｉｃｋｅｔ」のもとでインデックス付けする。当該実施形態では、クエリ拡張エンジン１６７は、「ｔｉｃｋｅｔｓ」の語幹を決定し（これを辞書検索によって実施してもよい）、当該語幹をインデックスとして用いて辞書の検索を実施する。別の実施形態では、辞書内の単語を、共通の語幹を有する辞書内の他の単語と関連付ける。例えば、「ｔｉｃｋｅｔｓ」に関する辞書のエントリを、単語「ｔｉｃｋｅｔ」「ｔｉｃｋｅｔｅｄ」「ｔｉｃｋｅｔｉｎｇ」および「ｔｉｃｋｅｔｓ」に直接リンクする。当該実施形態では、クエリ拡張エンジン１６７が、辞書にアクセスする前にオリジナル・クエリ・ターム「ｔｉｃｋｅｔｓ」に対する語幹を決定する必要はない。幾つかの実施形態では、かかる辞書を、部分的にまたは全体として、インデックス付けエンジン１６６によるドキュメント処理に基づいて自動的に生成することができる。オリジナル・クエリ・タームと語幹を共有する単語を特定するための他の多くの技術は当業界の技術常識である。英語に有用なステミング技術には、雪だるま式ステマ（Ｓｎｏｗｂａｌｌ−ｂａｓｅｄ  ｓｔｅｍｍｅｒ）やＰｏｒｔｅｒステミング・アルゴリズムがあるがこれらに限られない。
【００１９】
１実施形態では、Ｌｕｃｅｎｅ検索エンジンで提供されるような標準的なインデックス付けエンジンを使用して、インデックスやインデックス付けされたタームの対応する辞書を生成する。当該辞書はアルファベット順に整列される。この辞書を使用して、最初の３文字のように、オリジナル・クエリ・タームと同じｎ個の文字で始まる辞書内のタームを特定することにより、拡張候補を特定することができる。例えば、オリジナル・クエリ・ターム「ｔｉｃｋｅｔｓ」からは、「ｔｉｃ」「ｔｉｃｋ」「ｔｉｃｋｅｔ」「ｔｉｃｋｅｔｅｄ」「ｔｉｃｋｅｔｉｎｇ」「ｔｉｃｋｌｅｄ」「ｔｉｃｋｌｉｓｈ」「ｔｉｃｋｔａｃｋ」「ｔｉｃｋｔｏｃｋ」「ｔｉｃｓ」および「ｔｉｃｔａｃ」がかかる拡張候補に含まれうる。次に、ステミングを拡張候補の各々に実施して、オリジナル・クエリ・タームと語幹を共有する拡張を特定する。
【００２０】
前述のように、ステミングと関連する従来技術がある。当該従来技術では、ドキュメントのインデックス付けには、ドキュメントに含まれる単語に対する語幹を特定し、特定された語幹によりドキュメント・インデックスでドキュメントをインデックス付けすることが含まれ、クエリ・タームはステミングされ（換言すれば、クエリ・タームがその語幹に減縮される）、ドキュメントが、ステミングされたクエリ・タームに基づいてドキュメント・インデックスから特定される。１例として前述したように、この従来技術を使用する検索エンジンで「ｔｉｃｋｅｔｉｎｇ」を検索すると、単語「ｔｉｃｋｅｔ」（「ｔｉｃｋｅｔｉｎｇ」の語幹）を含むドキュメントと、（それぞれが「ｔｉｃｋｅｔｉｎｇ」と同じ語幹「ｔｉｃｋｅｔ」を有する）単語「ｔｉｃｋｅｔｓ」および／または「ｔｉｃｋｅｔｌｅｓｓ」を含むドキュメントが返される。しかし、前述のように、このインデックス付けおよび検索の技術では精度が低下する。なぜならば、全てが同じ語幹を有し結果として同じ語幹のもとで纏めてインデックス付けされる多数の単語が存在する可能性があり、それらは多くの場合は互いに殆ど関係しないからである。結果として、ドキュメントのインデックスはあまり正確でない。対照的に、上の段落で論じた技術は、本発明の他の態様と組み合わせると、この従来技術と比べて改善された結果を得ることができる。なぜならば、当該技術は、ドキュメント内で見つかった単語に従ってインデックス付けすることでより正確なインデックス・データベースを利用することができ、従来技術と同じ広さでドキュメントを特定することができ、特定されたドキュメントの改善された順位付けを容易にすることができるからである。
【００２１】
オリジナル・クエリ・タームと関連する拡張タームを特定するための別の技術は類語を利用することである。この場合、所与のタームに対する拡張タームが互いに関連付けられる。例えば、「ｃａｔ（猫）」や「ｆｅｌｉｎｅ（猫科の動物）」のような共通の語幹を有さない類語を当該類語において関連付けて、オリジナル・クエリ・ターム「ｃａｔ」を含むクエリが「ｆｅｌｉｎｅ」も含むように拡張されるようにしてもよい。例えば、特定のタームは一般により効果的に纏めて検索されるという領域経験に基づいて、類語関連付けをユーザまたは管理者により手動で指定してもよい。１実施形態では、類語関連付けを、インデックス付けエンジン１６６によるドキュメント処理に基づいて自動的に生成してもよい。例えば、ドキュメント内の２つのタームの頻繁な共起を使用して、これらのタームが類語で関連付けられるほど十分に関連すると判定してもよい。１実施形態では、当該類語関連付けを、検索システム１６０に送信されたクエリの自動分析に基づいて生成してもよい。例えば、単一の検索または詳細検索におけるタームの共起を使用して、当該タームが類語で関連付けられるほど十分に関連すると判定してもよい。
【００２２】
ステップ４４０では、特定した拡張クエリ・タームごとに、クエリ拡張エンジン１６７は、検索結果の順位付けでの使用を目的とした重みを決定するように構成される。この重み付けは、拡張クエリ・タームが特定されたオリジナル・クエリ・タームと当該拡張クエリ・タームの間の語彙距離に基づいて決定される。語彙距離は、特定の技術に従う２つの単語間の距離を示す。値が小さいことは、２つの単語間の類似度が高いことを示す。１つの単純な例は、単語ごとに文字数の絶対差を計算することである。この例によれば、「ｃａｒｒｙ」と「ｃａｒｒｉｅｒ」の語彙距離は２である。他の技術には、Ｊａｒｏ技術またはＪａｒｏ−Ｗｉｎｋｌｅｒ距離技術に基づく語彙距離の決定が含まれるがこれらに限られない（正規スコアを考慮して、これらの技術では非マッチの０から完璧なマッチの１までの範囲を生成する）。
【００２３】
１実施形態では、当該語彙距離は、オリジナル・クエリ・タームと対応する拡張クエリ・タームの間の「編集距離」を決定することで決定される。編集距離は、第１の単語を第２の単語に変換する編集操作実施の最小コストを計算することで決定される。当該操作は一般に、単一の文字編集を実施するものである。編集操作には、文字または文字列の置換、挿入、削除、転置が含まれるがこれらに限られない。幾つかのケースでは、編集操作が、挿入と削除が同じコストを有し、置換えが挿入の２倍のコストを有するといったように、様々なコストを有してもよい。幾つかのケースでは、編集操作を、個々の文字ではなく、１つまたは複数の文字の音声単位に実施してもよい。１実施形態では、より広く使用されている編集距離の１つであるレーベンシュタイン距離を使用して、オリジナル・クエリ・タームと対応する拡張クエリ・タームの間の語彙距離を決定する。ＨｉｒｓｃｈｂｅｒｇのアルゴリズムやＷａｇｎｅｒ−Ｆｉｓｃｈｅｒアルゴリズムを含む、レーベンシュタイン距離を計算するためのアルゴリズムが当業界で公知である。他の編集距離も当業界で公知であり、それにはＤａｍｅｒａｕ−Ｌｅｖｅｎｓｈｔｅｉｎ距離、Ｍｏｎｇｅ−Ｅｌｋａｎ距離、およびＳｍｉｔｈ−Ｗａｔｅｒｍａｎ距離がある。
【００２４】
同じ拡張クエリ・タームが２つのオリジナル・クエリ・タームに対して特定された場合には、２つの各重み付けのうち大きい方のみが、拡張クエリ・タームに対して適用される重み付けであると判定するようにクエリ拡張エンジン１６７を構成してもよい。
【００２５】
ステップ４４０では、拡張クエリ・タームのクエリに対する関連性の期待度合いを反映する重みを、決定された語彙距離に基づいて決定する。１実施形態では、当該重みは、（語彙距離が増大すると２つのターム間の類似度が減少するという仮定のもと）語彙距離の狭義単調減少関数に従って決定される。１実施形態では、当該重みを、一般にｅｘｐ（ｘ）またはｅｘと書かれる指数関数に基づいて決定する。この場合、対応するオリジナル・クエリ・タームから語彙距離ｄを有する拡張クエリ・タームの重みｗは、ｗ＝ｅｘｐ（−ｄ）またはその近似により決定される。例えば、語幹ベースの拡張が実施され、レーベンシュタイン距離が使用され、ｗ＝ｅｘｐ（−ｄ）の近似が使用される場合、オリジナル・クエリ・ターム「ｔｉｃｋｅｔｓ」に対して、以下の拡張クエリ・タームと対応する重み、即ち、ｔｉｃｋｅｔ／０．３７およびｔｉｃｋｅｔｉｎｇ／０．０５を決定してもよい（さらに、１．００の重みをオリジナル・クエリ・ターム「ｔｉｃｋｅｔｓ」に関連付けてもよい）。当該重みは、語彙距離に基づくものであるが、追加の因子に基づいてもよい。
【００２６】
１実施形態では、距離と重みの決定を畳み込み（ｃｏｌｌａｐｓｅ）、それにより語彙距離に基づいて重みを取得する。例えば、非マッチの０から２つの単語間の完璧なマッチの１までのスコアを生成するＪａｒｏ  Ｗｉｎｋｌｅｒ距離を直接、拡張クエリ・タームの重み付けに使用してもよい。
【００２７】
１実施形態では、語彙距離を拡張クエリ・タームに対して決定した後、クエリ拡張エンジン１６７は、決定された距離が閾値以上かどうかを判定する。閾値以上である場合には、拡張クエリ・タームはオリジナル・タームから非常に遠くに離れているとみなされ、それに応じて、拡張クエリ・タームは当該クエリに関連するドキュメントの後の特定の一部としては含まれない。１実施形態では、拡張クエリ・タームに対して重みを決定した後、クエリ拡張エンジン１６７は、決定された距離が閾値以下であるかどうかを判定する。そうである場合には、拡張クエリ・タームはオリジナル・タームに十分に関連していないとみなされ、それに応じて、拡張クエリ・タームは当該クエリに関連するドキュメントの後の特定の一部としては含まれない。
【００２８】
ステップ４５０では、クエリ拡張エンジン１６７により特定されたオリジナル・クエリ・タームと拡張クエリ・タームを検索エンジン１６５により使用して、当該オリジナル・クエリ・タームが特定されたクエリに関連するインデックス・データベース１６１内のドキュメントを特定する。例えば、検索エンジン１６５を、１つまたは複数のオリジナル・タームまたは拡張クエリ・タームを含む各ドキュメントを特定するように構成してもよい。結果として、複数のドキュメントは当該クエリに関連するとして特定される。しかし、これは当該クエリに対する関連度を反映する順序では必ずしも特定されない。
【００２９】
拡張クエリ・タームに対して生成された重みが順位付けエンジン１６８に提供される。これらの重みをステップ４６０で順位付けエンジン１６８により使用して、特定されたドキュメントを順位付けする。１実施形態では、ドキュメントが拡張クエリ・タームを含むことに基づいて特定される場合に、当該拡張クエリ・タームに対応する重みが当該ドキュメントの順位付けに使用される。非限定的な例では、検索クエリ文字列におけるカラット記号（ｃａｒａｔ  ｓｙｍｂｏｌ）を用いてクエリ・タームに関するＬｕｃｅｎｅ検索エンジンに対する重みまたは「ブースト因子（ｂｏｏｓｔ  ｆａｃｔｏｒ）」を指定してもよい。ドキュメントの検索クエリに対する関連度の決定において、Ｌｕｃｅｎｅ検索エンジンは、ドキュメントのインデックス付けされたコーパス全体にわたってクエリ・タームが出現する頻度のような、重み付けを他の順位付け因子に加えて適用する。
【００３０】
ステップ４７０でこの順位付けを検索システム１６５により使用して当該順位に従って順序付けられた特定されたドキュメントを識別する応答１３２ｂを生成する。１実施形態では、特定の度合または順位以下のドキュメントをクエリ１３１ｂに十分に関連しておらず、結果として応答１３２ｂで特定されないと判定してもよい。１実施形態では、クエリ１３１ａに関連するドキュメントとその順位の特定を、連続するステップではなく、組み合わせてもよい。
【００３１】
幾つかの実施形態では、順位付けエンジン１６８は、語彙距離に基づく上述の重み付けに加えて他の因子を利用する。例えば、語彙距離に基づく重み付けは夫々のクエリ・タームに関連付けられるけれども、他の重み付けがよりドキュメントに固有の事項に基づいてもよい。当該事項には例えば、引用またはアクセスの頻度、または、所与のドキュメントの作成者もしくは提供者に割り当てられたスコアがあるがこれらに限られない。顧客サポート・チケットシステムの順位付け因子として使用できる他のドキュメント特徴には、チケットの期間、作成日、最終アクセス日、チケットのステータス（例えば、公開または解決済み）、コメント数が含まれるがこれらに限られない。１実施形態では、クエリ１３１ｂが、ドキュメントの順位を決定する際の因子を順位付けエンジン１６８に包含、除外、および／または調節させる情報を含んでもよい。例えば、クエリ１３１ｂが、ユーザが生成したドキュメントより高い順位を管理者が生成したドキュメントに与えるように検索システムに指示してもよい。
【００３２】
１実施形態では、重みは計算されず、順位付けエンジン１６８による順位付けは拡張クエリ・タームに関する語彙距離に依存する。
【００３３】
上の例では、クエリに関連するドキュメントを特定する前に拡張クエリ・タームの距離と重みを決定することを説明したが、１実施形態では、これらの決定を、検索エンジン１６５が当該クエリに関連するドキュメントを特定した後に行うことができる。
【００３４】
１実施形態では、再帰的な拡張を、対応する重み付けを用いてまたは対応する重み付けなしに実施してもよい。例えば、クエリ拡張エンジン１６７が、類語を用いて第１の拡張タームを特定し、オリジナル・クエリ・タームに関連付けられた単語を見つけてもよい。類語から特定された拡張は、オリジナル・タームに対する関連性に対応しない長い語彙距離を有する可能性が高いので、オリジナル・クエリ・タームからの語彙距離に基づく重み付けを第１の拡張タームに関連付けないようにクエリ拡張エンジン１６７を構成してもよい（しかし、別の重み付けを当該第１の拡張タームに適用して、例えば、オリジナル・タームに関連する拡張タームの重みを削減してもよい）。次に、クエリ拡張エンジン１６７が、第１の拡張タームからの語彙距離に従う第２の拡張タームへの重みに従って、第１の拡張タームと語幹を共有する単語を特定することによって、第２の拡張タームを生成してもよい。第２の拡張タームの重みを、第２の拡張タームが再帰的な拡張でない場合に決定される重みに対して減らしてもよい。
【００３５】
別の実施形態では、第１の拡張タームを、オリジナル・クエリ・タームと語幹を共有する単語を特定することによって生成してもよく、第２の拡張タームを、オリジナル・クエリ・タームと関連付けられた単語を発見するための類語を用いて特定してもよい。第１の重みを、オリジナル・クエリ・タームと第１のクエリ・タームの間の語彙距離に基づいて第１の拡張タームに対して決定してもよく、第２の重みを、当該第１の重みに基づいて第２の拡張タームに対して決定してもよい。例えば、重み付けＸが第２の拡張タームに対する何等かの方法にしたがって決定された場合には、重み付けＸに第１の重みを乗じて、再帰的な拡張である第２の拡張タームと、オリジナル・クエリ・タームから拡張された第１の拡張クエリ・タームの関連性を反映してもよい。
【００３６】
１実施形態では、クエリ１３１ｂが、クエリ１３１ｂに含まれるクエリ・タームの一部または全部に対してクエリ拡張を実施しないように検索システム１６０に指示する情報を含んでもよい。例えば、ユーザ１１０が、クエリ・タームを引用記号で囲むかクエリ・タームの前にプラス記号を先行させて検索フレーズを入力してもよい。これは、当該クエリ・タームが拡張されないという結果を有する。１実施形態では、クエリ拡張エンジン１６７を、例えば、「拡張不可」リストにより、拡張を特定しようとしないというタームを特定するように構成してもよい。１実施形態では、インデックス付けエンジン１６６が、ドキュメント・タイプ、タイトル、作成者、または日付のような様々なフィールドで特定のドキュメント・データをインデックス付けして、クエリ１３１ｂが特定のフィールドと関連して使用されるクエリ・タームを指定できるようにしてもよい。１例では、１組の固定された所定のタグまたはラベルを、例えば顧客サポート・チケットが新規、公開、未決、解決、または終了であるかどうかを示すステータス・フィールドに対して、定義してもよい。この例では、当該ステータス・フィールドに対するクエリ・タームは拡張されない。
【００３７】
様々な値の計算を要する種々の例を開示したが、開示した計算を、様々な技術を利用したより直接的な値の計算で置き換えうることは当業者には理解される。当該技術にはテーブル検索技術が含まれるがこれに限られない。しかし、かかる技術は計算的により効率的であってもよく、本発明の範囲内に留まる代替的な計算にすぎない。
【００３８】
図２は、本発明の諸態様を実装できるコンピュータ・システム２００を示すブロック図である。コンピュータ・システム２００は、情報を通信するためのバス２０２または他の通信機構、および情報を処理するためのバス２０２に接続されたプロセッサ２０４を備える。コンピュータ・システム２００はまた、ランダム・アクセス・メモリ（ＲＡＭ）または他の動的記憶装置のような、情報とプロセッサ２０４により実行される命令とを格納するための、バス２０２に接続されたメイン・メモリ２０６を備える。メイン・メモリ２０６を、プロセッサ２０４により実行される命令の実行中に一時変数または他の中間情報を格納するために使用してもよい。コンピュータ・システム２００はさらに、プロセッサ２０４に対して静的情報や命令を格納するための、バス２０２に接続された読取専用メモリ（ＲＯＭ）２０８または他の静的記憶装置を備える。情報や命令を格納するための磁気ディスクまたは光ディスクのような記憶装置２１０が提供され、バス２０２に接続される。
【００３９】
コンピュータ・システム２００を、カソード・レイ・チューブ（ＣＲＴ）のような、情報をコンピュータのユーザに対して表示するためのディスプレイにバス２０２を介して接続してもよい。情報やコマンド選択をプロセッサ２０４に送信するための英数字キーと他のキーを含む入力装置２１４がバス２０２に接続される。別の種類のユーザ入力装置は、方向情報やコマンド選択をプロセッサ２０４に通信しディスプレイ２１２上のカーソルの移動を制御するための、マウス、トラックボール、またはカーソル方向キーのようなカーソル・コントロール２１６である。この入力装置は一般に、装置が平面内の位置を指定できるようにする２つの軸、即ち、第１の軸（例えば、ｘ）および第２の軸（例えば、ｙ）において２つの自由度を有する。
【００４０】
本発明は、本明細書で説明した技術を実装するためのコンピュータ・システム２００の利用に関する。本発明の１実施形態によれば、これらの技術は、メイン・メモリ２０６に含まれる１つまたは複数の命令の１つまたは複数のシーケンスをプロセッサ２０４が実行したことに応答してコンピュータ・システム２００により実施される。かかる命令を記憶装置２１０のような別の機械読取可能媒体からメイン・メモリ２０６に読み出してもよい。メイン・メモリ２０６に含まれるこれらの命令シーケンスを実行することで、プロセッサ２０４に本明細書に記載の処理ステップを実施させる。代替的な実施形態では、ハードワイヤードの回路をソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて使用して本発明を実施してもよい。したがって、本発明の諸実施形態はハードウェア回路とソフトウェアのどの特定の組合せにも限定されない。
【００４１】
本明細書で使用する「機械読取可能媒体」という用語は、機械を特定の形式で動作させるデータの提供に参加する任意の媒体を指す。コンピュータ・システム２００を用いて実装した１実施形態では、例えば、命令をプロセッサ２０４に提供して実行する際に、様々な機械読取可能媒体が関与する。かかる媒体は様々な形態をとり、かかる形態には、不揮発性媒体、揮発性媒体、および送信媒体が含まれるがこれらに限られない。不揮発性媒体には例えば、記憶装置２１０のような光ディスクまたは磁気ディスクが含まれる。揮発性媒体には、メイン・メモリ２０６のような動的メモリが含まれる。送信媒体には、バス２０２を含む配線のような、同軸ケーブル、銅線、および光ファイバが含まれる。送信媒体は、電波および赤外線データ通信中に生成されるもののような、音波または光波の形をとってもよい。かかる媒体の全ては、当該媒体により運搬される命令を、命令を機械に読み込む物理機構により検出できるようにするために、具体的なものでなければならない。
【００４２】
一般的な形態の機械読取可能媒体には、例えば、フロッピ・ディスク、フレキシブル・ディスク、ハード・ディスク、磁気テープ、または他の任意の磁気媒体、ＣＤ−ＲＯＭ、他の任意の光媒体、パンチカード、紙テープ、穴のパターンを有する他の任意の物理媒体、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、他の任意のメモリチップもしくはカートリッジ、後述する搬送波、またはコンピュータが読み出せる他の任意の媒体が含まれる。
【００４３】
様々な形態の機械読取可能媒体が、１つまたは複数の命令の１つまたは複数のシーケンスをプロセッサ２０４に運搬して実行する際に必要であってもよい。例えば、当該命令を最初にリモート・コンピュータの磁気ディスクで運搬してもよい。当該リモート・コンピュータは当該命令をその動的メモリにロードして、モデムを用いて当該命令を電話線で送信することができる。コンピュータ・システム２００にローカルなモデムが、電話線でデータを受信し、赤外線送信器を使用して当該データを赤外線信号に変換することができる。赤外線検出器は赤外線信号で運搬されるデータを受信することができ、適切な回路が当該データをバス２０２に置くことができる。バス２０２は当該データをメイン・メモリ２０６に運搬する。プロセッサ２０４は命令をメイン・メモリ２０６から取り出して実行する。場合によっては、メイン・メモリ２０６により受信した命令を、プロセッサ２０４による実行の前または後に記憶装置２１０に格納してもよい。
【００４４】
コンピュータ・システム２００はまた、バス２０２に接続された通信インタフェース２１８を備える。通信インタフェース２１８は、ローカル・ネットワーク２２２に接続されたネットワーク接続２２０に接続する双方向データ通信を提供する。例えば、通信インタフェース２１８が、対応する種類の電話線へのデータ通信接続を提供するためのインテグレーテッド・サービス・デジタル・ネットワーク（ＩＳＤＮ）カードまたはモデムであってもよい。別の例として、通信インタフェース２１８が、互換ＬＡＮへのデータ通信接続を提供するためのローカル・エリア・ネットワーク（ＬＡＮ）であってもよい。無線接続を実装してもよい。任意のかかる実装では、通信インタフェース２１８が、様々な種類の情報を表現するデジタル・データ・ストリームを運搬する電気信号、電磁気信号、または光信号を送受信する。
【００４５】
ネットワーク接続２２０は一般に、１つまたは複数のネットワークを介した他のデータ装置へのデータ通信を提供する。例えば、ネットワーク接続２２０は、ローカル・ネットワーク２２２を介した接続をホストコンピュータ２２４またはインターネット・サービス・プロバイダ（ＩＳＰ）２２６により動作されるデータ装置に提供してもよい。ＩＳＰ２２６は、現在「インターネット」２２８と一般的に呼ばれている世界規模のパケット・データ通信ネットワークを介してデータ通信サービスを提供する。ローカル・ネットワーク２２２とインターネット２２８は両方とも、デジタル・データ・ストリームを運搬する電気信号、電磁気信号、または光信号を使用する。デジタル・データをコンピュータ・システム２００に対して運搬する、様々なネットワークを介した信号、ネットワーク接続２２０および通信インタフェース２１８を介した信号は、情報を伝送する搬送波の例示的な形態である。
【００４６】
コンピュータ・システム２００は、ネットワーク（複数可）、ネットワーク接続２２０および通信インタフェース２１８を介して、プログラム・コードを含む、メッセージを送信しデータを受信することができる。インターネットの例では、サーバ２３０は、インターネット２２８、ＩＳＰ２２６、ローカル・ネットワーク２２２および通信インタフェース２１８を介して、アプリケーション・プログラムのために必要なコードを送信してもよい。
【００４７】
受信したコードを、受信したときにプロセッサ２０４により実行し、かつ／または後の実行のために記憶装置２１０、もしくは他の不揮発性記憶に格納してもよい。このように、コンピュータ・システム２００がアプリケーション・コードを搬送波の形で取得してもよい。
【００４８】
以上の説明では、多数の具体的な詳細を参照して本発明の諸実施形態を説明した。当該詳細は、実装ごとに異なってもよい。したがって、本願の出願人が意図した本発明を示す唯一かつ包括的な指標は、任意の後の修正を含む、本願に添付した具体的な形の諸請求項である。かかる諸請求項に含まれる用語に関して本明細書で明示的に説明した任意の定義は、諸請求項で用いるかかる用語の意味を支配するものとする。したがって、請求項に明示的に記載されていない限定、要素、性質、機能、利点または属性はかかる請求項の範囲を何ら限定するものではない。したがって、本明細書と添付図面は限定的な意味ではなく例示的なものとして理解されるべきである。
【図１】
2015525929.tif 000002
【図２】
2015525929.tif 000003
【図３】
2015525929.tif 000004
【図４】
2015525929.tif 000005
【国際調査報告】
2015525929.tif 000006
2015525929.tif 000007
2015525929.tif 000008