(57)【特許請求の範囲】
【請求項１】
検索問い合わせをサーバに送信し、
第１の数からなるページに対応する複数の検索結果を前記サーバから受信し、
前記第１の数よりも少ない第２の数を示すデータを前記サーバから受信し、
前記第２の数からなるページのうちの１つのページをユーザが選択するためのページインジケータと共に、前記複数の検索結果を表示する、
ように構成された１以上のモジュールを含み、
前記第２の数は、前記検索問い合わせと同様な他の検索問い合わせ後の検索結果と前記ユーザとの間の過去の相互やりとりに基づいて決定される、システム。
【請求項２】
検索問い合わせをサーバに送信し、
第１の数からなるページに対応する複数の検索結果を前記サーバから受信し、
前記第１の数よりも少ない第２の数を示すデータを前記サーバから受信し、
前記第２の数からなるページのうちの１つのページをユーザが選択するためのページインジケータと共に、前記複数の検索結果を表示する、
ように構成された１以上のモジュールを含み、
前記第２の数は、他の検索問い合わせからの検索結果と前記ユーザとの間の過去の相互やりとりに基づいて決定される、システム。
【請求項３】
検索問い合わせをサーバに送信し、
第１の数からなるページに対応する複数の検索結果を前記サーバから受信し、
前記第１の数よりも少ない第２の数を示すデータを前記サーバから受信し、
前記第２の数からなるページのうちの１つのページをユーザが選択するためのページインジケータと共に、前記複数の検索結果を表示する、
ように構成された１以上のモジュールを含み、
前記第２の数は、前記ユーザの場所に基づいて決定される、システム。
【請求項４】
検索問い合わせをサーバに送信し、
第１の数からなるページに対応する複数の検索結果を前記サーバから受信し、
前記第１の数よりも少ない第２の数を示すデータを前記サーバから受信し、
前記第２の数からなるページのうちの１つのページをユーザが選択するためのページインジケータと共に、前記複数の検索結果を表示する、
ように構成された１以上のモジュールを含み、
前記複数の検索結果は、スクロール可能なインタフェースに表示され、
前記１以上のモジュールは、更に、前記スクロール可能なインタフェースのスクロール量が閾値を超えたことに応答して、スクロール不可なエレメントに改善データを表示するように構成され、前記改善データは、前記検索結果の精度を向上させるための１以上の示唆された改善を示し、前記スクロール不可なエレメントの表示は、前記複数の検索結果の表示と共に行われる、システム。
【請求項５】
前記複数の検索結果を前記スクロール可能なインタフェースに表示することは、最初の改善データを表示することを含む、請求項４に記載のシステム。
【請求項６】
前記閾値は、１以上の前記改善データのうちの第１の改善データがディスプレイから消えるまで前記スクロール可能なインタフェースがスクロールされた時のスクロール量に基づいて決定される、請求項４に記載のシステム。
【請求項７】
前記改善データは、前記検索結果に対する具体的な改善内容を示唆する改善オプションであり、前記スクロール不可なエレメントは、前記改善オプションを選択するように動作可能である、請求項６に記載のシステム。
【請求項８】
前記１以上のモジュールは、更に、前記スクロール可能なインタフェースの追加のスクロール量が追加の閾値を超えたことに応答して、前記スクロール不可なエレメントを移動させるように構成される、請求項４に記載のシステム。
【請求項９】
前記スクロール不可なエレメントは、前記検索結果に対する具体的な改善内容を示唆する１つ以上の改善オプションに関連付けられた改善カテゴリであり、前記スクロール不可なエレメントは、前記改善カテゴリに対応する改善オプションを表示させるように動作可能であり、
前記１以上のモジュールは、更に、前記スクロール可能なインタフェースの追加のスクロール量が追加の閾値を超えたことに応答して、前記スクロール不可なエレメントに前記改善オプションを表示するように構成されている、請求項４に記載のシステム。
【請求項１０】
クライアントマシンによって、検索問い合わせをサーバに送信することと、
前記クライアントマシンによって、第１の数からなるページに対応する複数の検索結果を前記サーバから受信することと、
前記クライアントマシンによって、前記第１の数よりも少ない第２の数を示すデータを、前記サーバから受信することと、
前記クライアントマシンによって、前記第２の数からなるページのうちの１つのページをユーザが選択するためのページインジケータと共に、前記複数の検索結果を表示することと、
を含み、
前記第２の数は、前記検索問い合わせと同様な他の検索問い合わせ後の検索結果と前記ユーザとの間の過去の相互やりとりに基づき、前記サーバによって決定される、方法。
【請求項１１】
クライアントマシンによって、検索問い合わせをサーバに送信することと、
前記クライアントマシンによって、第１の数からなるページに対応する複数の検索結果を前記サーバから受信することと、
前記クライアントマシンによって、前記第１の数よりも少ない第２の数を示すデータを、前記サーバから受信することと、
前記クライアントマシンによって、前記第２の数からなるページのうちの１つのページをユーザが選択するためのページインジケータと共に、前記複数の検索結果を表示することと、
を含み、
前記第２の数は、他の検索問い合わせ後の検索結果と前記ユーザとの間の過去の相互やりとりに基づき、前記サーバによって決定される、方法。
【請求項１２】
クライアントマシンによって、検索問い合わせをサーバに送信することと、
前記クライアントマシンによって、第１の数からなるページに対応する複数の検索結果を前記サーバから受信することと、
前記クライアントマシンによって、前記第１の数よりも少ない第２の数を示すデータを、前記サーバから受信することと、
前記クライアントマシンによって、前記第２の数からなるページのうちの１つのページをユーザが選択するためのページインジケータと共に、前記複数の検索結果を表示することと、
を含み、
前記第２の数は、前記ユーザの場所に基づき、前記サーバによって決定される、方法。
【請求項１３】
クライアントマシンによって、検索問い合わせをサーバに送信することと、
前記クライアントマシンによって、第１の数からなるページに対応する複数の検索結果を前記サーバから受信することと、
前記クライアントマシンによって、前記第１の数よりも少ない第２の数を示すデータを、前記サーバから受信することと、
前記クライアントマシンによって、前記第２の数からなるページのうちの１つのページをユーザが選択するためのページインジケータと共に、前記複数の検索結果を表示することと、
を含む方法であって、
前記複数の検索結果は、前記クライアントマシンによって、スクロール可能なインタフェースに表示され、
前記方法は、更に、前記スクロール可能なインタフェースのスクロール量が閾値を超えたことに応答して、スクロール不可なエレメントに改善データを、前記クライアントマシンによって表示することを含み、前記改善データは、前記検索結果の精度を向上させるための１以上の示唆された改善を示し、前記スクロール不可なエレメントの表示は、前記複数の検索結果の表示と共に行われる、方法。
【請求項１４】
前記複数の検索結果を前記スクロール可能なインタフェースに表示することは、最初の改善データを表示することを含む、請求項１３に記載の方法。
【請求項１５】
前記閾値は、１以上の前記改善データのうちの第１の改善データがディスプレイから消えるまで前記スクロール可能なインタフェースがスクロールされた時のスクロール量に基づいて、前記クライアントマシンによって決定される、請求項１３に記載の方法。
【請求項１６】
前記改善データは、前記検索結果に対する具体的な改善内容を示唆する改善オプションであり、前記スクロール不可なエレメントは、前記改善オプションを選択するように動作可能である、請求項１５に記載の方法。
【請求項１７】
前記方法は、更に、前記スクロール可能なインタフェースの追加のスクロール量が追加の閾値を超えたことに応答して、前記スクロール不可なエレメントを前記クライアントマシンによって移動させることを含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
このＰＣＴ出願は、「Seamless Pagination」という名称の２０１３年９月５日出願の米国仮出願第６１／８７４，２８６号と、「Contextual Refinement During Seamless Pagination」という名称の２０１３年１２月１３日出願の米国仮出願第６１／９１５，６３４号の出願日の利益を主張する、「Seamless Pagination」という名称の２０１４年３月７日出願の米国特許出願第１４／２０１，０００号の出願日の利益を主張する。
【０００２】
この特許文書の開示の一部は、著作権保護を受ける著作物を含む。著作権者は、特許商標庁のファイルあるいは記録にあるとおりの、特許文書あるいは特許開示の何れかの人によるファクシミリ複製には異論は無いが、さもなければ、すべての著作権は、保持される。以下に記述され、この文書の一部を形成する図面にある、ソフトウェア及びデータに、以下の注意書きが適用される：Copyright eBay, Inc. 2013-2014, All Rights Reserved。
【０００３】
ここに開示される主題は、一般に、ページ付け制御を伴ったデータを提示することに関する。特に、本開示は、提示されたデータのシームレスなページ付けのシステム及び方法を扱う。
【図面の簡単な説明】
【０００４】
幾つかの実施形態が、添付の図において、例示によって、限定ではなく図示される。
【０００５】
【図１】シームレスページ付けに適した、例示的実施形態による、ネットワーク環境を図示するネットワーク図である。
【図２】シームレスページ付けに適した、例示的実施形態による、アプリケーションサーバのコンポーネントを図示するブロック図である。
【図３】シームレスページ付けに適した、例示的実施形態による、クライアントマシンのコンポーネントを図示するブロック図である。
【図４】シームレスページ付けに適した、例示的実施形態による、ユーザインタフェース（ＵＩ）のスクリーン図である。
【図５】シームレスページ付けに適した、例示的実施形態による、ＵＩのスクリーン図である。
【図６】シームレスページ付けに適した、例示的実施形態による、ＵＩのスクリーン図である。
【図７】シームレスページ付けに適した、例示的実施形態による、ＵＩのスクリーン図である。
【図８】シームレスページ付けの間の文脈的改善に適した、例示的実施形態による、ＵＩのスクリーン図である。
【図９】シームレスページ付けの間の文脈的改善に適した、例示的実施形態による、ＵＩのスクリーン図である。
【図１０】シームレスページ付けの間の文脈的改善に適した、例示的実施形態による、ＵＩのスクリーン図である。
【図１１】シームレスページ付けの間の文脈的改善に適した、例示的実施形態による、ＵＩのスクリーン図である。
【図１２】シームレスページ付けの間の文脈的改善に適した、例示的実施形態による、ＵＩのスクリーン図である。
【図１３】シームレスページ付けの間の文脈的改善に適した、例示的実施形態による、ＵＩのスクリーン図である。
【図１４】シームレスページ付けに適した、例示的実施形態による、アプリケーションサーバの動作を図示するフローチャートである。
【図１５】シームレスページ付けに適した、例示的実施形態による、クライアントマシンの動作を図示するフローチャートである。
【図１６】シームレスページ付けに適した、例示的実施形態による、アプリケーションサーバの動作を図示するフローチャートである。
【図１７】シームレスページ付けに適した、例示的実施形態による、クライアントマシンの動作を図示するフローチャートである。
【図１８】シームレスページ付けに適した、例示的実施形態による、クライアントマシンの動作を図示するフローチャートである。
【図１９】シームレスページ付けに適した、例示的実施形態による、クライアントマシンの動作を図示するフローチャートである。
【図２０】シームレスページ付けに適した、例示的実施形態による、クライアントマシンの動作を図示するフローチャートである。
【図２１】シームレスページ付けに適した、例示的実施形態による、問い合わせデータフィーチャの使用を図示するブロック図である。
【図２２】シームレスページ付けに適した、例示的実施形態による、ユーザデータフィーチャの使用を図示するブロック図である。
【図２３】シームレスページ付けを有効にするか否かを決定するときの、例示的実施形態による、考えられる要因を図示するブロック図である。
【図２４】マシン読取り可能な媒体から命令を読み、ここに記述する方法の任意の１以上を実行可能な、幾つかの例示的実施形態による、マシンのコンポーネントを図示するブロック図である。
【発明を実施するための形態】
【０００６】
例示的方法及びシステムは、シームレスページ付け及び、シームレスページ付けの間の検索の文脈的改善に向けられる。例は、単に、可能な変形例を代表するのみである。明示的にそうでないと述べない限り、コンポーネントと機能はオプションであり、組み合わせられたり、分割されたりすることができ、動作は、シーケンスが異なったり、組み合わせられたり、あるいは、分割されたりすることが出来る。以下の記述においては、説明のために、数々の特定の詳細が述べられ、例示的実施形態の完全な理解のために提供される。しかし、当業者には、本主題は、これらの特定の詳細なしでも実施することが出来ることは明らかであろう。
【０００７】
ユーザは、（例えば、クライアントマシンからの）検索問い合わせを、検索エンジン（例えば、アプリケーションサーバ上で走っている検索アプリケーション）へ提示することが出来る。検索エンジンは、検索問い合わせを処理し、結果の集合を生成することが出来る。検索エンジンは、検索結果の数（あるいは、検索結果のページの数（ページ番号））を決定して、様々な要因の１以上に基づいて、ユーザに提示することが出来る。例示的要因は、その問い合わせを以前に用いた他のユーザによって、購入を行うなどの、アクションが実行される前に、閲覧された検索結果の数；以前の問い合わせを提出した後に、このユーザによって、購入を行うなどのアクションが実行される前に閲覧された検索結果の数などを含む。検索エンジンは、クライアントマシンに、検索結果と共に、検索結果の数あるいはページの数を送信することが出来る。クライアントマシンは、ページ付け制御と共に、結果の部分集合を提示することが出来る。ページ付け制御におけるページの数は、検索エンジンによって決定される、検索結果（あるいは、検索結果のページ）の数に基づくことが出来る。ユーザは、もともと提示されたページ数を超えて、追加の検索結果を閲覧することが許されることが出来る。
【０００８】
検索問い合わせから得られる結果は、スクロール可能なインタフェースにおいて提示されることが出来る。改善の示唆は、また、スクロール可能なインタフェースにおいて提示されることが出来る。改善の示唆は、検索への示唆された変更である。幾つかの例示的実施形態においては、示唆された変更は、追加の検索語句あるいはフィルタを追加すること、検索問い合わせに合致する結果の数を削減することによって、検索を改善する。例えば、初期検索は、「靴」についてのものであることが出来る。改善の示唆は、特定のブランドの、特定の価格帯の、あるいは、特定の方法（例えば、固定価格あるいはオークション）で販売されている靴に、検索を制限することが出来る。
【０００９】
例えば、ユーザが、ページダウンキーあるいは、スクロールバーの下向き矢印を押すたびに、ＵＩに提示される情報はスクロールし、新しい情報が提示されるようにすることが出来る。ユーザは、ページアップキーあるいは、スクロールバーの上向き矢印を押すことにより、反対方向にスクロールすることが出来る。ユーザがスクロールダウンするたびに、新しい情報が、すべての情報が提示されるまで、提示される。情報は、改善の示唆、検索結果を含む、様々なタイプのデータを含むことが出来る。複数のタイプのデータが一緒に提示される場合、あるタイプのすべての情報は、他のタイプのすべての情報が表示される前に、表示されることが出来る。例えば、改善の示唆の価値がある１つあるいは２つのスクリーンは、結果の多くのスクリーンが提示される間に、提示されることが出来る。結果として、ユーザが、改善の示唆の終わりを越えてスクロールダウンすると、検索の結果のみが提示される。スクロール不可なＵＩエレメントは、改善の示唆を提示するために用いられることが出来る。例えば、改善の示唆は、スクリーン上の位置が固定され、ユーザがスクロールしても動かないようにすることが出来る。同時に、ユーザがスクロールするとき、改善の示唆が有効なまま、新しい結果を表示するように、結果は、スクロール可能ＵＩに提示されることが出来る。
【００１０】
改善の示唆は、スクロール可能インタフェースに最初に提示され、実行されたスクロール量が検出されることができる。スクロール量が閾値を超えると、スクロール不可ＵＩエレメントが表示されることが出来る。ユーザは、反対方向にスクロールすることが出来る。スクロール量が閾値より少ない場合、スクロール不可ＵＩエレメントは、取除かれることが出来る。ユーザがスクロールを続けるに従い、追加のスクロール不可ＵＩエレメントが追加されるように、追加的な閾値が存在してもよい。スクロール不可ＵＩエレメントは、スクロール可能ＵＩエレメントと同様な機能を提供することが出来る。スクロール不可ＵＩエレメントは、動作可能とされることが出来、その結果、スクロール可能ＵＩエレメントで利用可能なオプションを提示する。例えば、スクロール可能エレメントは、２つのスクリーンをカバーすることが出来る。２つのスクリーンは、閾値として設定されることが出来る。ユーザは、第２のスクリーンを超えてスクロールすることが出来る。ユーザが閾値を超えてスクロールすることに基づいて、２つのＵＩエレメントは、超えてスクロールされた各スクリーンに対応して１つ、提示されることが出来る。ＵＩエレメントのそれぞれは、動作可能とすることが出来、その結果、対応するスクリーンに表示されたオプションを表示する（例えば、マウスクリックに応答するボタンとすることが出来る）。更に、閾値は、提示されたスクロール不可ＵＩエレメントが変更されるように設定されることが出来る。例えば、オプションを表示するように動作可能なボタンは、ユーザが１つの画面をスクロールダウンした後、左側に表示されることが出来る。ボタンは、除去されることができ、オプション自身は、ユーザが第２の画面をスクロールダウンした後に提示されることが出来る。オプションは、ユーザが第３の画面をスクロールダウンした後、画面の左から画面の中央へ移動されることが出来る。
【００１１】
図１は、一例示的実施形態が展開できるクライアント−サーバシステム１００を図示するネットワーク図である。ネットワークベースのマーケットプレイスあるいは公開システムの例示的形態における、ネットワーク化されたシステム１０２は、１以上のクライアントに、ネットワーク１０４（例えば、インターネットあるいはワイドエリアネットワーク（ＷＡＮ））を介して、サーバ側機能を提供する。図１は、例えば、各クライアントマシン１１０及び１１２上で実行するウェブクライアント１０６（例えば、ブラウザ）及び、プログラマチッククライアント１０８を図示する。
【００１２】
アプリケーションプログラムインタフェース（ＡＰＩ）サーバ１１４及び、ウェブサーバ１１６は、プログラマチックインタフェース及びウェブインタフェースをそれぞれ提供し、１以上のアプリケーションサーバ１１８に結合される。アプリケーションサーバ１１８は、１以上のマーケットプレイスアプリケーション１２０、検索アプリケーション１２１、及び、支払いアプリケーション１２２のホストとなる。アプリケーションサーバ１１８は、また、１以上のデータベース１２６へのアクセスを促進する１以上のデータベースサーバ１２４へ結合されていることが示されている。
【００１３】
マーケットプレイスアプリケーション１２０は、ネットワーク化されたシステム１０２へアクセスするユーザに、多くのマーケットプレイス機能及びサービスを提示することが出来る。検索アプリケーション１２１は、ネットワーク化されたシステム１０２にアクセスするユーザに、複数の検索機能及びサービスを提供することが出来る。検索アプリケーション１２１は、ユーザが、問い合わせを提出可能とし、問い合わせに応答して結果を受信することが出来るようにすることが出来る。検索アプリケーション１２１は、マーケットプレイスアプリケーション１２０にリンクされることが出来、その一部となることが出来る。従って、検索は、マーケットプレイスアプリケーション１２０を介して、販売アイテムを見つけるために、検索アプリケーション１２１によって実行されることが出来る。
【００１４】
支払いアプリケーション１２２は、同様に、複数の支払いサービス及び機能を、ユーザに提供することが出来る。支払いアプリケーション１２２は、ユーザが、アカウントに値（例えば、ＵＳドルのような商業通貨あるいは、「ポイント」などの私設通貨）を蓄積し、後に、マーケットプレイスアプリケーション１２０を介して利用可能な、製品（例えば、商品あるいはサービス）のために、蓄積された値を償還することを可能とすることが出来る。マーケットプレイス、検索、及び支払いアプリケーション１２０、１２１、及び１２２は、それぞれがネットワーク化されたシステム１０２の一部をなすよう、図１に示されているが、別の実施形態においては、検索アプリケーション１２１は、ネットワーク化されたシステム１０２とは分離された、別の検索サービスの一部を形成することが出来ることは理解されるだろう。同様に、支払いアプリケーション１２２は、ネットワーク化されたシステム１０２とは分離された、別の支払いサービスの一部を形成することが出来る。
【００１５】
更に、図１に図示されたシステム１００は、クライアント−サーバアーキテクチャを用いているが、本発明は、もちろん、そのようなアーキテクチャには限定されず、例えば、分散、あるいは、ピアツーピア、アーキテクチャシステムにも同様に良く応用することが出来る。様々なマーケットプレイス、検索及び支払いアプリケーション１２０、１２１、及び１２２は、また、必ずしもネットワーク機能を有していないスタンドアロンのソフトウェアプログラムとして実装されることも出来る。
【００１６】
ウェブクライアント１０６は、ウェブサーバ１１６によってサポートされるウェブインタフェースを介して、様々なマーケットプレイス、検索及び支払いアプリケーション１２０、１２１及び１２２にアクセスする。同様に、プログラマチッククライアント１０８は、ＡＰＩサーバ１１４によって提供される、プログラマチックインタフェースを介して、マーケットプレイス、検索、及び支払いアプリケーション１２０、１２１、及び１２２によって提供される様々なサービス及び機能にアクセスする。プログラマチッククライアント１０８は、例えば、販売者が、オフラインで、ネットワーク化されたシステム１０２上のリスティングを、生成し、管理することができるように、そして、プログラマチッククライアント１０８とネットワーク化されたシステム１０２の間のバッチモードの通信を実行することが出来るように、販売者アプリケーション（例えば、カリフォルニア州、サンホセのeBay Inc.,によって開発されたTurboListerアプリケーション）とすることが出来る。
【００１７】
クライアントマシン１１０あるいは１１２は、ユーザに情報を提示することが出来る。例えば、クライアントマシン１１０は、ウェブページを提示するウェブブラウザを実行することが出来る。ユーザは、クライアントマシン１１０に検索問い合わせを示すことが出来る。例えば、ユーザは、テキストフィールドに検索問い合わせをタイピングし、同様な、あるいは、関連するアイテムを検索するために、アイテムを選択し、同様な、あるいは、関連するアイテムを検索するために、画像をアップロードし、あるいは、これらの任意の適切な組み合わせをすることが出来る。１つのアイテムは、相互の差し替えである場合、他のものと同様である。例えば、１つのテレビジョンは、他のテレビジョンと同様であることが出来る。１つのアイテムは、それらが共に動作する、あるいは、しばしば一緒に購入されるのであれば、他のものに関連する。例えば、ピーナッツバターは、ゼリーに関連し、一般的なリモコン（ユニバーサルリモートコントロール）は、テレビジョンに関連することが出来る。
【００１８】
クライアントマシン１１０あるいは１１２は、検索アプリケーション１２１を実行するアプリケーションサーバ１１８に、検索問い合わせを提出することが出来る。アプリケーションサーバ１１８は、アイテムデータベース（例えば、データベース１２６）に、検索問い合わせを提出することが出来る。アプリケーションサーバ１１８は、クライアントマシン１１０あるいは１１２に、検索問い合わせの結果を送信し返すことが出来る。幾つかの例示的実施形態においては、検索問い合わせの結果の部分集合は、クライアントマシン１１０あるいは１１２に送信される。部分集合内のアイテムの数は、クライアントマシン１１０あるいは１１２の表示にフィットするアイテム数、クライアントマシン１１０あるいは１１２上の利用可能なメモリ、検索問い合わせを提出した後の、平均的ユーザによって閲覧されるアイテム数、他の検索問い合わせを提出した後にこのユーザによって閲覧されるアイテム数、あるいは、これらの任意の適切な組み合わせに基づくことが出来る。クライアントマシン１１０あるいは１１２は、結果の追加的なページを選択するように動作可能なページ付け制御と共に、結果の最初のページを提示することが出来る。結果の追加のページの１以上は、クライアントマシン１１０あるいは１１２によって、アプリケーションサーバ１１８から予めロードされていることが出来る。予めロードされた追加的結果のページ数は、クライアントマシン１１０あるいは１１２上の利用可能なメモリ、検索問い合わせを提出後に平均的ユーザによって閲覧されるアイテム数、他の検索問い合わせを提出後に、このユーザによって閲覧されるアイテム数、あるいは、これらの任意の適切な組み合わせに基づくことが出来る。検索問い合わせを提出後に平均的ユーザによって閲覧されるアイテム数は、ユーザによって実行された以前の検索と、その後のユーザの行動を解析することにより、検索アプリケーション１２１を実行するアプリケーションサーバ１１８によって決定されることが出来る。平均的ユーザによって閲覧されるアイテム数の計算は、図２を参照して、より詳細に以下に説明される。
【００１９】
図１は、また、ＡＰＩサーバ１１４によって提供されるプログラマチックインタフェースを介して、ネットワーク化されたシステム１０２にプログラマチックアクセスを有するとして、第三者サーバマシン１３０上で実行される第三者アプリケーション１２８を図示する。例えば、第三者アプリケーション１２８は、ネットワーク化されたシステム１０２から取得される情報を利用して、第三者によってホストされるウェブサイト上の１以上のフィーチャあるいは機能をサポートすることが出来る。第三者ウェブサイトは、例えば、ネットワーク化されたシステム１０２の関連するアプリケーションによってサポートされる１以上のプロモーション、マーケットプレイス、検索、あるいは、支払いの機能を提供することが出来る。
【００２０】
図２は、幾つかの例示的実施形態による、検索アプリケーション１２１を実行するアプリケーションサーバ１１８のコンポーネントを図示するブロック図２００である。アプリケーションサーバ１１８は、（例えば、バス、共有メモリ、スイッチ、あるいは、ＡＰＩを介して）相互に通信するように構成された、通信モジュール２１０、ページ付けモジュール２２０、改善モジュール２３０、履歴モジュール２４０及び、問い合わせモジュール２５０を含むとして、示されている。ここに記述される任意の１以上のモジュールは、ハードウェア（例えば、マシンのプロセッサ）あるいは、ハードウェア及びソフトウェアの組み合わせを用いて、実装されることが出来る。例えば、ここに記述される任意のモジュールは、そのモジュール用にここに記述される動作を実行するようにプロセッサを構成することが出来る。更に、これらのモジュールの任意の２以上は、単一のモジュールに組み合わせられることができ、単一のモジュール用のここに記述される機能は、複数のモジュール間で分割されることが出来る。更に、様々な例示的実施形態によると、ここに記述するモジュールは、単一のマシンデータベース内に実装されるとして、あるいは、デバイスは、複数のマシン、データベース、あるいは、デバイスに渡って分配されることが出来る。
【００２１】
通信モジュール２１０は、クライアントマシン１１０あるいは１１２及びデータベース１２６との通信を制御することが出来る。通信モジュール２１０は、また、アプリケーションサーバ１１８あるいはデータベース１２６に格納するために、データを送信することも出来る。
【００２２】
ユーザデバイス（例えば、クライアントマシン１１０あるいはクライアントマシン１１２）からの検索問い合わせを受信すると、通信モジュール２１０は、同様な検索問い合わせが過去に提出された場合、ユーザの過去の振る舞いを特定するために、検索問い合わせを履歴モジュール２４０に送信することが出来る。例えば、アイテムと相互作用（相互やりとり、インタラクト）する前に閲覧されるアイテムの平均数は、検索列に基づいて変化することが出来る。例示すると、ユーザは、iPhone（登録商標）5を買うために探しており、「iPhone（登録商標）5」を検索することが出来る。問い合わせによって生成される結果は、正確に、ユーザが探しているものであるかもしれず、その場合、ユーザは、結果の最初のページの結果と相互作用することを選択することが出来る。この振る舞いが多くのユーザに渡って蓄積されると、「iPhone（登録商標）5」の検索の後であって且つアイテムが相互作用される前に閲覧されるアイテムの平均数は、小さいかもしれない。これとは違って、ユーザは、一足の靴を買うために探していることができ、しかし、どのスタイルがよいか良く分からないかも知れず、あるいは、単に閲覧したいので、「靴」を検索するかもしれない。ユーザは、興味のある一足の靴を見つける前に、結果の数ページを閲覧することが出来る。この振る舞いが、多くのユーザに渡って蓄積されると、「靴」の検索の後であって且つアイテムが相互作用される前に閲覧されるアイテムの平均数は、大きいかもしれない。
【００２３】
この詳細な説明は、アイテムがいつ相互作用を受けるのかを決定することを議論するが、当業者によれば、相互作用の特定の形態が用いられることが出来ることは理解されるであろう。例えば、アイテムとの相互作用（相互やりとり、インタラクション）は、アイテムを閲覧すること、アイテムに入札すること、アイテムを購入すること、アイテムに加入すること、及び、ソーシャルネットワーク上でアイテムを共有すること、を含むことが出来る。幾つかの例示的実施形態においては、相互作用の部分集合のみが考慮される。例えば、アイテムを購入するだけが、アイテムとの相互作用と考えられることが出来る。更に、相互作用の異なるタイプが、単一の実施形態において考慮されることが出来る。例示すると、例示的実施形態は、現在のユーザによる任意の形態の相互作用を、相互作用と考えることが出来るが、他のユーザによる購入のみを相互作用と考えることが出来る。従って、以下の記述は、しばしば相互作用について言及するが、相互作用のタイプの様々な可能な組み合わせは、本発明の範囲内であると認識されるべきである。
【００２４】
他の例示的実施形態においては、相互作用は、関連性のカテゴリにグループ化され、カテゴリは、表示されるべきページあるいは結果の数の根拠として利用される。カテゴリの例は、ショッピングセッションの終了を示す相互作用とすることが出来る。そのようなカテゴリに含まれることができる相互作用は、例えば、アイテムの購入、異なるアイテムカテゴリについて新規に検索を行なう、ブラウジングセッションを終了する、全く異なるウェブサイトにナビゲートする、などを含むことが出来る。
【００２５】
ページ付けモジュール２２０は、アイテムが相互作用される前に閲覧された結果の平均数を、結果のページの平均数（結果の平均ページ数）に変換することが出来る。結果のページ数を決定するために用いられるページごとのアイテム数は、すべてのクライアントマシン用の予測平均値などの所定の値とすることができ、あるいは、クライアントマシン１１０あるいは１１２からアプリケーションサーバ１１８へ送信される情報に基づいて決定されることが出来る。例えば、クライアントマシン１１０あるいは１１２は、表示デバイスのピクセル高さあるいは、一度に表示されることが出来るアイテム数を送信することが出来る。追加的要因は、図２１−２３について以下に議論するように、ページごとの結果の数、あるいは、ページ付け制御におけるページ数を決定するために、ページ付けモジュール２２０によって用いられることが出来る。
【００２６】
改善モジュール２３０は、どの改善を提示するか、どこに改善オプションを提示するか、いつ改善オプションを提示するか、を決定することができる。例えば、一般改善オプション、文脈ベース改善オプション、及び、ユーザベース改善オプションが提示されることが出来る。文脈ベース改善オプションは、元の問い合わせの文脈に基づいて提示される。例えば、オプションは、問い合わせを生成するために用いられるデバイスの位置の半径１０マイル以内で利用可能なアイテムに対する検索結果に限定するために提示されることが出来る。他の例として、オプションは、問い合わせを生成するために用いられるデバイスのオペレーティングシステム上で走るソフトウェアに結果を限定するように、ソフトウェアの検索を改善するために提示されることが出来る。ユーザベース改善オプションは、問い合わせを行うユーザについての知識に基づいて提示される。例えば、オークションベースの販売に嗜好を示すユーザによる以前の検索に基づいて、改善は、現在の結果をオークションベースの販売に限定するために提示されることが出来る。一般改善オプションは、文脈及びユーザ特有のデータとは別の要因に基づいて提示される。改善オプションは、結果と共に、スクローク可能なインタフェースに提示されることが出来る。あるいは、結果の初期提示は、改善オプションを含まないことが出来る。アイテムが相互作用される前に閲覧された結果の平均数、あるいは、アイテムが相互作用される前に閲覧される結果のページの平均数に基づいて、閾値は設定されることが出来る。ユーザが閾値を超えてスクロールすると、スクロール不可改善オプションが提示されることが出来る。追加の閾値は、どの点で、追加の改善オプションが提示されえるか、既に提示された改善オプションは除去されえるか、あるいは、提示された改善オプションの位置は変更されえるか、などが設定されることができる。
【００２７】
スクロール不可な改善オプションを可能にする決定は、同一問い合わせに対する他のユーザのスクロールデータ、異なる問い合わせに対するこのユーザのスクロールデータ、クライアントマシン１１０のブラウザタイプ、クライアント１１０あるいは１１２のデバイスタイプ、クライアントマシン１１０あるいは１１２のスクリーン解像度、結果集合、クライアントマシン１１０あるいは１１２の位置、セッションの文脈、及び、他の信号に基づくことが出来る。従って、スクロール不可な改善オプションは、問い合わせを提出した他のユーザの以前の振る舞いに基づいて、ある問い合わせを無効とすることが出来る。同様に、スクロール不可な改善オプションは、以前の問い合わせを提出した後のユーザの以前の振る舞いに基づいて、あるユーザについて無効にされることが出来る。
【００２８】
問い合わせモジュール２５０からの結果は、ページ付けモジュール２２０によって決定された結果数に制限されることが出来る。通信モジュール２１０は、ユーザに表示するために、クライアントデバイスに、結果のすべてあるいは部分集合を送ることが出来る。例えば、通信モジュール２１０は、クライアントデバイスに結果の価値がある２ページを送信することができ、残りの結果は、リクエストがあったときに利用可能とされる。幾つかの例示的実施形態においては、結果は、結果をＨＴＭＬ（HyperText Markup Language ）形式で送信するAjaxコマンドによって、クライアントマシン１１０あるいは１１２へ送信される。結果は、標準ページ付けモードあるいはシームレスページ付けモードで送信されることが出来る。標準ページ付けモードは、一度に結果の１ページを示し、結果の新しいページが表示されるとき、結果の以前のページはもう示されない。これに対し、シームレスページ付けモードは、ユーザが「シームレスに」あるページから他のページにスクロールするときに、同時にスクリーンに示される、あるページと次のページからの結果を提供する。これは、また、「無限スクロール」としても知られ、連続的にスクロールダウンすることは、表示に新しいアイテムを追加し、従って、ユーザが明示的にアイテムの追加のページをリクエストする必要性を消去する。
【００２９】
アプリケーションサーバ１１８は、シームレスページ付けを有効とするか否かを決定することが出来る。アプリケーションサーバ１１８は、通信モジュール２１０を介して、クライアントマシン１１０あるいは１１２の機能を受信することが出来る。この機能は、結果のアイテムの表示あるいは格納に関連することが出来る。例えば、ピクセルあるいはテキストの行で、ディスプレイデバイスの高さ、幅、あるいは面積が提供されることが出来る。これらの値は、ページに表示されることが出来る、アイテムの数を決定するために有効であろう。これらの値は、また、スクロール不可な改善オプションを表示すべきか否か、スクロール不可な改善オプションが提示される前の、スクロールの閾値は何であるべきか、および、どのスクロール不可な改善オプションが提示されるか、を決定するのに有効であろう。
【００３０】
クライアントマシン上で利用可能なメモリの容量は、アプリケーションサーバ１１８に提供されることが出来る。メモリ値は、プリフェッチされることが出来るアイテム数を決定するのに有用であるだろう。アイテムをプリフェッチすることは、ユーザがそれらを表示する前に、それらを取得することである。プリフェッチされるべきアイテム数は、また、ページ付けモードに基づくことが出来る。通常のページ付けモードにおいては、新規の結果のページ全体が、一度に表示され、結果のページあるいは、複数のページを一度にプリフェッチすることが望ましいだろう。シームレスなページ付けモードにおいては、新規の結果の部分的なページが表示され、部分的なページの結果をプリフェッチすることが望ましいだろう。他の基準は、また、プリフェッチすべき結果の数、結果がプリフェッチされる頻度、あるいは、その両方を決定するために用いられることが出来る。例えば、特定のユーザが、結果をスクロールする速度が用いられることが出来る。結果をより迅速にスクロールする傾向のあるユーザに対しては、一度により多くの結果をプリフェッチし（あるいは、より頻繁に結果をプリフェッチし）、ユーザが、結果がロードされるのを待つ必要がある可能性を減少することは利益のあることであろう。同様に、以前のユーザが同様な問い合わせの結果をスクロールした速度を使うことが出来る。より速いスクロールをしばしば促進する問い合わせに対しては、一度により多くの結果をプリフェッチし（あるいは、より頻繁に結果をプリフェッチし）、ユーザが、ロードすべき結果を待つ必要がある可能性を減少することは利益のあることであろう。幾つかの例示的実施形態においては、結果は、デフォルトで、一度に１ページプリフェッチするが、より迅速にスクロールするユーザに対して、あるいは、より速いスクロールとなる問い合わせに対して、一度に２あるいは３ページプリフェッチする。
【００３１】
図３は、幾つかの例示的実施形態による、シームレスなページ付けを実行するクライアントマシン１１０あるいは１１２のコンポーネントを図示するブロック図である。クライアントマシン１１０あるいは１１２は、（例えば、バス、共有メモリ、スイッチ、あるいは、ＡＰＩを介して）相互に通信するように構成された、通信モジュール３１０、ページ付けモジュール３２０、改善モジュール３３０、機能モジュール３４０、ＵＩモジュール３５０、を含むとして示されている。ここに記述される任意の１以上のモジュールは、ハードウェア（例えば、マシンのプロセッサ）あるいは、ハードウェアとソフトウェアの組み合わせを用いて、実装されることが出来る。例えば、ここに記述される任意のモジュールは、そのモジュールについてここに記述される動作を実行するプロセッサを構成することが出来る。更に、これらのモジュールの任意の２以上は、単一のモジュールに組み合わされることができ、単一のモジュールに対する、ここに記述される機能は、複数のモジュール間で分割されることが出来る。更に、様々な例示的実施形態によると、単一のマシン、データベース、あるいはデバイス内に実装されるとして、ここに記述されるモジュールは、複数のマシン、データベースあるいはデバイスに渡って分散されることが出来る。
【００３２】
通信モジュール３１０は、アプリケーションサーバ１１８からの結果を受信することが出来る。通信モジュール３１０は、また、ページ付け制御において、表示されるべきページ数を受信することが出来る。幾つかの例示的実施形態において、通信モジュール３１０は、ページ付け制御において、表示すべきアイテム数を受信し、アイテムをページに変換することは、クライアントマシン１１０あるいは１１２上で実行される。
【００３３】
通信モジュール３１０は、また、スクロール不可な改善オプションを表示する前に、スクロール可能なインタフェースにおいて表示すべきページあるいはアイテムの数を受信することが出来る。幾つかの例示的実施形態においては、通信モジュール３１０は、スクロール不可な改善オプションを表示する前に表示すべきアイテムの数を受信し、アイテムをページに変換することは、クライアントマシン１１０あるいは１１２上で実行される。
【００３４】
通信モジュール３１０は、結果の表示が始まる前に、ページ付けモジュールにおいて示されるすべてのページの結果を受信することができ、結果をユーザがスクロールするに従い、新しい結果を受信することができ、あるいは、その両方が可能である。例えば、結果の２ページ分は、最初、アプリケーションサーバ１１８から送信されることが出来る。ユーザが結果の第２のページを閲覧し始めると、通信モジュール３１０は、追加の結果に対するリクエストをアプリケーションサーバ１１８に送信することができ、追加の結果を受信することが出来る。例えば、通信モジュール３１０は、結果の次のページを受信することが出来る。結果をプリフェッチすることは、追加の結果を見る決定と、それらの結果の提示との間にユーザが待たなくてはならない時間を減少することにより、より良いユーザ経験を提供することが出来る。
【００３５】
通信モジュール３１０は、結果の表示が始まる前に、すべての閾値と対応するスクロール不可な改善オプションを受信することができ、ユーザが結果をスクロールするに従い、新しい閾値と対応するスクロール不可な改善オプションを受信することができ、あるいは、その両方が可能である。例えば、ある閾値と対応するスクロール不可な改善オプションは、最初、アプリケーションサーバ１１８から送信されることが出来る。ユーザが第１の閾値を超えてスクロールすると、通信モジュール３１０は、追加の閾値と対応する改善オプションのリクエストをアプリケーションサーバ１１８に送信することが出来、追加の閾値と対応する改善オプションを受信することが出来る。例えば、通信モジュール３１０は、次の閾値と対応する改善オプションとを受信することが出来る。
【００３６】
ページ付けモジュール３２０が、ユーザが、現在のページ付け範囲を超えて（例えば、アプリケーションサーバ１１８によって表示用に示されたアイテムの最後を越えて）、スクロールしようとしていることを検出すると、ページ付けモジュール３２０は、ユーザが、更なる結果を閲覧することを防止する、あるいは、ユーザが追加の結果を見続けることを可能とすることが出来る。ユーザが、追加の結果を閲覧することを防止するか否かによらず、通知が提示され得、ユーザに、最も関連した結果が既に提示されていることを示唆することが出来る。この通知は、ユーザが更なる結果を見たいことの確認をリクエストすることが出来る。幾つかの例示的実施形態においては、ページ付けモジュール３２０は、ＵＩモジュール３５０に、現在のページ数を、同一サイズの数の次の集合に置き換えさせる。例えば、現在のページリストが１、２、３であり、ユーザが追加の結果を見たい場合、ページリストは、４、５、６に更新されることが出来る。別の実施形態においては、ページ付けモジュール３２０は、ＵＩモジュール３５０に、現在のページリストを同一サイズとしつつ、現在のページリストをインクリメントあるいはデクリメントさせる。例えば、現在のページリストが１、２、３で、ユーザが、追加の結果を見たい場合、ページリストは、２、３、４に更新されることが出来る。更に他の実施形態においては、ページ付けモジュール３２０は、ＵＩモジュール３５０に、現在のエレメントをそのままにしつつ、ページリストに新規のページを追加させる。例えば、現在のページリストが１、２、３であり、ユーザが追加の結果を見たい場合、ページリストが、１、２、３，４に更新されることが出来る。新しいページの結果は、上記したようにプリフェッチされることができ、あるいは、ユーザが、現在のページ付け範囲の一部でないページをリクエストするのに応答して、フェッチされることが出来る。
【００３７】
改善モジュール３３０が、ユーザが、最終閾値を超えて（例えば、アプリケーションサーバ１１８によって示された閾値の最後を越えて）、スクロールしようとしていることを検出した場合、改善モジュール３３０は、通知を提示し、ユーザに、改善オプションの選択が有用であることを示唆することが出来る。この通知は、ユーザが、改善オプションを適用することなく、更なる結果を見たいことの確認をリクエストすることが出来る。
【００３８】
機能モジュール３４０は、また、結果の集合を閲覧するために用いられるウェブブラウザを特定することが出来る。アプリケーションサーバ１１８は、あるオプションを有効にする、あるウェブブラウザがあるオプションにアクセスするのを防止する、あるいは、その両方を可能とするために、あるウェブブラウザを要求することが出来る。例えば、機能モジュール３４０は、シームレスページ付けをサポートしないブラウザを特定することが出来る。この場合には、サーバは、検索問い合わせに、デフォルトページ付け形式で提示されるべきデータで応答することが出来る。機能モジュール３４０は、また、リスト画面あるいは、ギャラリー画面などの結果の画面タイプを特定することが出来る。リスト画面においては、アイテムのリストが示される。ギャラリー画面においては、アイテムの２次元アレイが示される。アプリケーションサーバ１１８は、リスト画面、ギャラリー画面、その両方、あるいは、どっちでもない、シームレスページ付けをサポートすることが出来る。機能モジュール３４０は、ページごと（ページあたり）のアイテムの数を特定することが出来る。アプリケーションサーバ１１８は、ページごとのアイテムが、閾値（例えば、５０）より小さい、閾値（例えば、５）より大きい、あるいは、指定の範囲内（例えば、５−５０）であるとき、シームレスページ付けをサポートすることが出来る。機能モジュール３４０は、アイテムが表示されるべきソートタイプを特定することが出来る。例えば、アイテムは、関連性、日付、価格、ユーザへの近さ、あるいは、これらの任意の適切な組み合わせによってソートされることが出来る。アプリケーションサーバ１１８は、あるソートタイプ用であって、他のものではないシームレスページ付けをサポートすることが出来る。幾つかの例示的実施形態においては、機能モジュール３４０は、ページ上に表示されることが出来るアイテム数を決定し、アプリケーションサーバ１１８に伝送するために、通信モジュール３１０にそのデータを提供する。
【００３９】
機能モジュール３４０は、スクロール不可なエレメントをサポートしないブラウザを特定することが出来る。この場合、サーバは、スクロール不可な改善オプションを使用することなく、提示されるべきデータで、検索問い合わせに応答することが出来る。アプリケーションサーバ１１８は、リスト画面、ギャラリー画面、その両方、あるいは、いずれでもない、スクロール不可な改善オプションをサポートすることが出来る。アプリケーションサーバ１１８は、ページごとのアイテムが、閾値（例えば、５０）より少ない、閾値（例えば、５）より多い、あるいは、指定の範囲（例えば、５−５０）内であるとき、スクロール不可な改善オプションの提示をサポートすることが出来る。アプリケーションサーバ１１８は、あるソートタイプ用であって、他のものではない、スクロール不可な改善オプションをサポートすることが出来る。
【００４０】
ＵＩモジュール３５０は、検索問い合わせを提出するように動作可能なＵＩをユーザに提示することが出来る。通信モジュール３１０は、検索問い合わせを、検索アプリケーション１２１を実行するアプリケーションサーバ１１８に提出することが出来る。機能モジュール３４０は、通信モジュール３１０によって、アプリケーションサーバ１１８へ伝送するために、クライアントマシン１１０あるいは１１２の機能を特定することが出来る。機能は、結果アイテムの表示あるいは格納に関連することが出来る。例えば、ピクセルあるいはテキストの行での、ディスプレイデバイスの高さ、幅、あるいは、面積が提供されることが出来る。他の例として、以下の任意の組み合わせが提供されることが出来る：利用可能なメモリの容量、結果の集合を閲覧するために用いられるウェブブラウザ、結果の画面タイプ（例えば、リスト画面あるいはギャラリー画面）、ページごとのアイテム数、及び、アイテムが表示されるべきソートタイプ。
【００４１】
ＵＩモジュール３５０は、ページ付けモジュール３２０によって生成されるページ付け制御と共に、結果の最初のページを表示することが出来る。ユーザは、結果をスクロールすることが出来る。ページ付けモジュール３２０は、スクリーンが新規ページを示し始めたとき、スクリーンが古いページより多くの新規のページを示しているとき、あるいは、スクリーンが、もはや古いページを示していないとき、を検出することが出来る。これらのイベントの任意のものに基づいて、ページ付けモジュール３２０は、古いページはもはや現在のページではないこと、及び、新規のページが、今は現在のページであること、を判断することが出来る。ＵＩモジュール３５０は、新規の現在のページを示すために、ページ付け制御を更新することが出来る。
【００４２】
ＵＩモジュール３５０は、ページ付けモジュール３２０によって生成されるページ付け制御と共に、結果の最初のページを表示することが出来る。ユーザは、結果をスクロールすることが出来る。改善モジュール３３０は、ユーザが閾値を超えてスクロールしたときを検出することが出来る。このイベントに基づいて、改善モジュール３３０は、スクロール不可な改善オプションを提示することを決定することが出来る。ＵＩモジュール３５０は、スクロール不可な改善オプションを表示するために、ＵＩを更新することが出来る。
【００４３】
幾つかの例示的実施形態においては、一意の識別子（ＵＩＤ）が、各ページに用いられる。表示される各アイテムの高さは、既知であることが出来る（例えば、高さは、１１２ピクセルとすることが出来る）。各ページの高さは、各アイテムの高さと、各ページのアイテム数から計算されることが出来る。例えば、４８個のアイテムが、各ページにあり、各アイテムの高さが１１２ピクセルである場合、ページの高さは、５３７６ピクセルとすることが出来る。（例えば、以下に説明する、図４の次のページ矢印４４０を押すことによって）ユーザが次のページへ移動したいとき、空のHTML DIV は、ページの高さで生成されることが出来る。Ajax を呼び出すことは、新規のページのデータをリクエストするために、アプリケーションサーバ１１８になされる。アプリケーションサーバ１１８によって送信されるデータは、ＨＴＭＬセッションストレージに格納されることが出来る。他のページからのデータは、同様に、セッションストレージから消去されることが出来る。例えば、現在、以前、及び、次のページのデータが格納されることができ、任意の他のページのデータは、セッションストレージから取除かれることが出来る。幾つかの例示的実施形態において、ユーザが、データがまだロードされていないページに向かってスクロールするとき、そのページのデータは、ユーザが、新規のページから閾値距離内に入ったときにロードされる。例えば、ページは、スクリーンより大きく、ユーザは、最初、最初のページの一部のみを見るようにされることが出来る。ユーザは、ある距離をスクロールダウンし、依然、最初のページの中ほどまでしか来ていないことがある。ユーザは、それから、最初のページの終わり近くまでスクロールし、２番目のページのロードを開始することができる。閾値距離は、ピクセル（例えば、１０００ピクセル）、アイテム（例えば、１０アイテム）、あるいは、これらの任意の適切な組み合わせによって、測定されることが出来る。
【００４４】
図４は、幾つかの例示的実施形態による、シームレスなページ付け用のＵＩのスクリーン図４００を示す。テキスト入力フィールド４１０は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力できるようにする。アイテム４２０は、検索問い合わせに応答したアイテムである。ページインジケータ４３０は、現在のページを指し示し、現在のページ範囲内に他のページを表示する。矢印４４０は、ユーザが、ページごとの結果の集合を一度に前後に移動することを可能とする。ページ付けツールは、ページインジケータ４３０と矢印４４０を含む。スクロールツール４５０は、ユーザが、一度に結果の集合を行ごとに前後に移動することを可能とする。スクリーン図４００は、ページインジケータ４３０によって示される最初のページに、最初の１６個のアイテム４２０が表示されていることを示す。
【００４５】
図５は、幾つかの例示的実施形態による、シームレスページ付け用のＵＩのスクリーン図５００を示す。テキスト入力フィールド５１０は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。（９−２４とラベル付けされる）アイテム５２０は、ユーザが、スクリーン図４００に対し、２行スクロールダウンした後、表示される。ページインジケータ５３０は、これが、依然ページ１であると考えられることを示す。ページインジケータ５３０、矢印５４０、及びスクロールツール５５０は、スクリーン図４００の対応するエレメントに関して、実質的に上述したようである。
【００４６】
図６は、幾つかの例示的実施形態による、シームレスページ付け用のＵＩのスクリーン図６００を示す。テキスト入力フィールド６１０は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。（１３−２８とラベル付けされる）アイテム６２０は、ユーザが、スクリーン図５００に対し、追加の行スクロールダウンした後、表示される。ページインジケータ６３０は、今、現在のページがページ２であることを指し示す。ユーザが、ページ１にスクロールバックすることを選択した場合、ページ１のアイテムは、セッションストレージから取得されることが出来る。ユーザは、ページインジケータ６３０に示されるページ番号を選択することが出来る。そのような選択に応答して、ページ付けツールは、選択ページにジャンプしてアイテムを表示させることが出来る。空のスペースは、スキップされたページを表すために生成されることが出来る。例えば、ユーザは、現在ページ２を見ており、ページ６を選択し、スキップされたページ３、４、及び５に対応して空のスペースを生成されることができ、現在の位置は、ページ６の先頭に更新されることが出来る。いくつかの例示的実施形態においては、ページ３−６の１以上が、予めロードされているだろう。これらの実施形態においては、空のスペースは、予めロードされていないページについてのみ生成されることが出来る。ページのピクセル位置は、ピクセルでの各ページの高さに、ページ数を乗算することによって計算されることが出来る。現在のページと、訪れた全ページ数は、セッションストレージに格納されることが出来る。ユーザが、新規のページにスクロールする、あるいは、次のページ矢印を押すとき、現在のページ数と全ページ数は、インクリメントされることが出来る。ユーザが、前のページにスクロールする、あるいは、前のページ矢印を押すとき、現在のページ数は、デクリメントされる。
【００４７】
幾つかの例示的実施形態において、テキスト入力フィールド６１０は、「スティッキー」あるいは、スクロール不可とし、ユーザがスクロールする、あるいは、結果に渡ってページ付けするに従い、スクリーン上の位置を維持することが出来る。同様に、ページ付けツールは、スティッキーとすることが出来る。ページ付けツールは、また、検索結果の最初のページに戻るように動作可能なエレメント（不図示）を含むことが出来る。ページインジケータ６３０、矢印６４０、及びスクロールツール６５０は、スクリーン図４００の対応するエレメントに関して、実質的に上述のようである。
【００４８】
図７は、幾つかの例示的実施形態による、シームレスページ付けに適したＵＩのスクリーン図７００を示す。テキスト入力フィールド７１０は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。（９７−１１２とラベル付けされる）アイテム７２０は、例えば、ユーザが、最初の６ページの終わりに届いた後、更なるアイテムを見ることを選択した後、表示される。ページインジケータ７３０は、現在のページがページ７であることを示し、７−１２のページ範囲を提示する。ページインジケータ７３０、矢印７４０、及びスクロールツール７５０は、スクリーン図４００の対応するエレメントに関して、実質的に上述したようである。
【００４９】
ユーザは、表示アイテムのうちの１つのアイテムを選択し、アイテムのページを表示させる。アイテムのページを閲覧した後、ユーザは、結果リストに戻るために、あるいは、ブラウザに結果リストに戻らせるために、ウェブブラウザのバックボタンをクリックすることが出来る。デフォルトで、ウェブブラウザは、ページをリロードし、結果リストの先頭を表示することが出来る。ユーザは、ごく最近閲覧したページに戻ることを嗜好することが出来る。幾つかの例示的実施形態においては、ごく最近閲覧されたページは、（例えば、ウェブブラウザのセッションストレージ内、専用アプリケーションのデータ構造内、などに）格納され、ユーザが結果リストに戻った後、ユーザは、結果の先頭ではなく、以前の位置に戻るようにする。以前に閲覧されたページの表示を促進するために、ユーザによって最も最近閲覧されたページのピクセル位置が、現在のページと、セッションストレージからの訪問した全ての数のページにアクセスすることによって決定されることが出来る。空のページは、document.ready() functionにおいて固定の高さを有する空のＤＩＶを生成することによって、ＤＯＭ（document object model ）を用いて生成されることが出来る。現在のページ及び前のページにおけるアイテムのデータは、セッションストレージからアクセスされることが出来る。あるいは、表示されるべきアイテムのデータは、（例えば、Ajax呼び出しを介して）アプリケーションサーバ１１８から取得されることが出来る。アプリケーションサーバ１１８からデータを取得するという決定は、セッションストレージからデータが得られないことに基づくことが出来る。ユーザは、結果のページをブックマークするためにウェブブラウザを用いることが出来る。後にブックマークを使用することで、ユーザは、結果の最初のページに戻ることが出来る。
【００５０】
ユーザが、アイテムを閲覧することから結果リストへ戻った後、ユーザによって既に閲覧された結果リスト内のアイテムは、スクリーン上に示されることが出来る。例えば、ユーザが以前に通り過ぎてスクロールしたアイテムは、特定の色の背景、特定の色の枠線、アイコン、チェックボックス、あるいは、それらの任意の適切な組み合わせによって示されることが出来る。ユーザが、詳細を見るために以前に選択したアイテムは、異なる色の背景、異なる色の枠線、異なるアイコン、異なる位置のチェックボックス、あるいは、それらの任意の適切な組み合わせによって示されることが出来る。これらの視覚的インジケータは、ユーザが、同一の場所を閲覧し続け、閲覧された結果が新規の結果あるいは既に見られた結果であるかを認識することを助け、ユーザがより早く、興味のアイテムを見つけるのを助けることが出来る。
【００５１】
図８は、幾つかの例示的実施形態による、シームレスページ付けの間の文脈的改善用のＵＩのスクリーン図８００を示す。テキスト入力フィールド８１０は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力可能とする。スクロール可能な改善カテゴリ（例えば、スクロール可能な改善カテゴリ８６０）とスクロール可能な改善オプション（例えば、スクロール可能な改善オプション８７０）は、改善オプションを有効とするように動作可能とすることが出来る。スクリーン図８００は、ページインジケータ８３０によって示される最初のページに、最初の１２個のアイテム８２０が表示されていることを示している。ページインジケータ８３０は、現在のページを指し示し、現在のページ範囲内に他のページを表示する。矢印８４０は、ユーザが、結果の集合を（例えば、一度に１ページ）前後に移動することを可能とする。ページ付けツールは、ページインジケータ８３０と矢印８４０を含む。スクロールツール８５０は、ユーザが、結果の集合を（例えば、一度に１行、あるいは、一度に１ページ）前後に移動可能とする。幾つかの例示的実施形態において、テキスト入力フィールド８１０は、スクロール不可とし、ユーザが、結果をスクロールする、あるいは、ページ付けするに従い、スクリーン上での位置を維持することが出来る。同様に、ページ付けツールは、スクロール不可とすることが出来る。ページ付けツールは、また、検索結果の最初のページに戻るように動作可能なエレメント（不図示）を含むことが出来る。
【００５２】
図９は、幾つかの例示的実施形態による、シームレスページ付けの間の文脈改善用のＵＩのスクリーン図９００を示す。スクリーン図９００は、スクリーン図８００のユーザが、３行スクロールダウンした後に提示されることが出来る。テキスト入力フィールド９１０は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。スクロール可能な改善カテゴリ（例えば、スクロール可能な改善カテゴリ８６０）とスクロール可能な改善オプション（例えば、スクロール可能な改善オプション８７０）は、スクリーンから消えることが出来る。他のスクロール可能な改善カテゴリとスクロール可能な改善オプション（例えば、スクロール可能な改善オプション９６０）は、改善オプションを有効とするように動作可能とされることが出来る。スクリーン図９００は、ページインジケータ９３０によって示される最初のページ上に、（アイテム１０−２１としてラベル付けされる）アイテム９２０が表示されていることを示す。ページインジケータ９３０は、現在のページを指し示し、現在のページ範囲内に他のページを表示する。矢印９４０は、ユーザが、一度に１ページ、結果の集合を前後に移動可能とする。ページ付けツールは、ページインジケータ９３０と矢印９４０を含む。スクロールツール９５０は、ユーザが、結果の集合を（例えば、一度に１行、あるいは、一度に１ページ）前後に移動することを可能とする。
【００５３】
図１０は、幾つかの例示的実施形態による、シームレスなページ付けの間の文脈的改善用のＵＩのスクリーン図１０００を示す。スクリーン図１０００は、ユーザが、スクリーン図９００に対し、追加的な行をスクロールダウンした後に、（アイテム１３−２３とラベル付けされる）アイテム１０２０が表示されることを示す。テキスト入力フィールド１０１０は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。スクロール不可な改善カテゴリ（例えば、スクロール不可な改善カテゴリ１０６０）は、ユーザが閾値を超えてスクロールするのに応答して、ＵＩエレメントとして追加されていることが出来る。ページインジケータ１０３０は、現在のページを示し、現在のページ範囲内において、他のページを示す。矢印１０４０は、ユーザが、結果の集合を、一度に１ページ前後に移動することを可能とする。ページ付けツールは、ページインジケータ１０３０と矢印１０４０を含む。スクロールツール１０５０は、ユーザが、結果の集合を（例えば、一度に１行、あるいは、一度に１ページ）前後に移動することを可能とする。
【００５４】
改善オプションではなく、改善カテゴリを提示することの決定は、利用可能な画面サイズに基づくことが出来る。例えば、改善オプションの完全な集合は、スクリーンにフィットしないことがありうる。スクリーンが、すべての改善オプションを保持するのには小さすぎるという決定に基づいて、改善オプションの表示を起こさせるように動作可能な、改善カテゴリが提示されることが出来る。
【００５５】
改善カテゴリを提示する決定は、過去のユーザの振る舞いに基づくことが出来る。例えば、多くの改善オプションを提示されたユーザが、その選択肢の数に圧倒され、むしろ、検索を放棄する場合、より少ない数のカテゴリを提示することは、ユーザにとってより恐ろしくないことがある。過去のユーザの振る舞いは、改善オプションではなく、改善カテゴリを提示されるユーザに対し、より高い相互作用率を示すことによって、これを命令することが出来る。
【００５６】
幾つかの例示的実施形態において、改善カテゴリと改善オプションの両方が提示される。例えば、改善カテゴリは、改善オプションに対し、カテゴリヘッダとして提示されることができ、動作不可能とされることが出来る。他の例として、しばしば用いられるカテゴリは、改善オプションを表示するために拡大されることができ、稀にしか用いられないカテゴリは、カテゴリとして提示されるのみである。過去のユーザ振る舞いは、ある改善カテゴリにおけるオプションで、ユーザに対し、より高い相互作用率を示すことによって、これを命令することが出来る。
【００５７】
図１１は、幾つかの例示的実施形態による、シームレスなページ付けの間の文脈的改善用のＵＩのスクリーン図１１０を示す。スクリーン図１１００は、ユーザが、スクロール不可な改善カテゴリ１１６０を有効化した（例えば、クリックした）後に、表示されることが出来る。テキスト入力フィールド１１１０は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力可能とする。ＵＩエレメント１１７０は、スクロール不可な改善カテゴリ１１６０の有効化に応答して、表示されることが出来る。ＵＩエレメント１１７０は、３つの改善オプション（例えば、「改善１Ａ」、「改善１Ｂ」、及び「改善１Ｃ」）と共に、カテゴリ（例えば、「改善カテゴリ１」）の指示を含む。改善オプションは、指示された改善を検索結果に適用するように動作可能とされることが出来る。例えば、ブランド改善は、検索結果をアイテムの特定のブランドに制限することが出来る。従って、ブランド改善を選択することは、改善された問い合わせについての検索結果を有するスクリーン図４００あるいは８００が、ユーザに提示されるようにすることが出来る。スクリーン図１１００は、（アイテム１３−２３とラベル付けされる）アイテム１１２０（スクリーン図１０００に示されるものと同一のアイテム）が表示されていることを示す。スクリーン図１０００に示されるスクロール不可な改善カテゴリ（例えば、スクロール不可な改善カテゴリ１１６０）も依然表示されている。幾つかの例示的実施形態において、スクロール不可な改善カテゴリは、隠され、一方、ＵＩエレメント１１７０は表示される。ページインジケータ１１３０は、現在のページを示し、現在のページ範囲内に他のページを示す。矢印１１４０は、ユーザが、結果の集合を、一度に１ページ前後に移動することを可能とする。ページ付けツールは、ページインジケータ１１３０と矢印１１４０を含む。スクロールツール１１５０は、ユーザが、結果の集合を（例えば、一度に１行、あるいは、一度に１ページ）前後に移動することを可能とする。
【００５８】
図１２は、幾つかの例示的実施形態による、シームレスなページ付けの間の文脈的改善用のＵＩのスクリーン図１２００を示す。スクリーン図１２００は、図９のスクリーン図９００を閲覧した後、ユーザが、追加の行だけスクロールダウンした後に、（アイテム１３−２３とラベル付けされる）アイテム１２２０が表示されていることを示す。テキスト入力フィールド１２１０は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力可能とする。スクロール不可な改善カテゴリ（例えば、スクロール不可な改善カテゴリ１２６０）は、ユーザが閾値を超えてスクロールすることに応じて、ＵＩエレメントとして追加されていることが出来る。図１２によって図示されるように、スクロール不可な改善カテゴリ１２６０は、ページから消えたスクロール可能な改善カテゴリとは異なる位置に配置されることが出来る。図１２によって更に図示されるように、「改善カテゴリ３」とラベル付けされる、スクロール不可な改善カテゴリ１２６０は、ページから消えたスクロール可能な改善カテゴリとは異なるカテゴリとすることが出来る。例えば、スクロール可能な改善カテゴリは、一般的なカテゴリとすることができ、スクロール不可な改善カテゴリ１２６０は、ユーザあるいは文脈特有であることが出来る。例えば、一般的なカテゴリは、検索結果に基づくことが出来る（例えば、結果の最大の数が属するカテゴリ、あるいは、良く購入される結果の最大の数が属するカテゴリ）。一方、ユーザ特有な改善カテゴリは、ユーザによって適用された以前の改善に基づくことが出来る。例えば、ユーザは、しばしば、値段によって結果をフィルタリングし、＄１００より少ないコストのアイテムのみを見ることを好むことが出来る。結果として、ユーザベースの改善カテゴリは、価格フィルタのカテゴリからのものとすることができ、これから、ユーザは、価格についての個々の改善を選択することが出来る。同様に、分脈特有な改善カテゴリは、問い合わせの文脈に基づくことが出来る。例えば、問い合わせは、ある場所のモバイルデバイスから発行されることが出来る。結果として、文脈ベースの改善カテゴリは、場所フィルタのカテゴリとすることができ、これから、ユーザは、モバイルデバイスの場所のある距離内の結果についての個々の改善を選択することが出来る。
【００５９】
ページインジケータ１２３０は、現在のページを指し示し、現在のページ範囲内に他のページを表示する。矢印１２４０は、ユーザが、結果の集合を一度に１ページ前後に移動することを可能とする。ページ付けツールは、ページインジケータ１２３０と矢印１２４０を含む。スクロールツール１２５０は、ユーザが、結果の集合を（例えば、一度に１行、あるいは、一度に１ページ）前後に移動することを可能とする。
【００６０】
図１３のスクリーン図１３００は、最初の６ページの最後に達した後、ユーザが更なるアイテムを見ることを選択した後に、（９７−１１１とラベル付けされている）アイテム１３２０が表示されていることを示す。テキスト入力フィールド１３１０は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力することを可能とする。ページインジケータ１３３０は、現在のページがページ７であることを示し、７−１２のページ範囲を提示する。
【００６１】
スクロール不可な改善オプション１３６０は、ユーザが閾値を超えてスクロールしたことに基づいて、スクロール不可な改善カテゴリ１２６０から生成されていることが出来る。例えば、スクロール不可な改善カテゴリ１２６０は、ユーザが、第１の閾値を超えてスクロールしたことに基づいて、提示されていることが出来る。スクロール不可な改善カテゴリオプションは、ユーザが、第２の閾値を超えてスクロールしたことに基づいて、より中心の位置まで、上方に移動されていることが出来る。スクロール不可な改善カテゴリオプションは、ユーザが、第３の閾値を超えてスクロールしたことに基づいて、改善３Ａ、３Ｂ、及び３Ｃを含むように、拡大されていることが出来る。ＵＩエレメント１３６０は、３個の改善オプション（例えば、「改善３Ａ」、「改善３Ｂ」、及び「改善３Ｃ」）と共に、カテゴリ（例えば、「改善カテゴリ３」）の指示を含む。改善オプションは、検索結果に、指示された改善を適用するように動作可能とされることが出来る。例えば、ブランド改善は、検索結果を、アイテムの特定のブランドに制限することが出来る。従って、ブランド改善を選択することは、ユーザに、改善された問い合わせに対する検索結果を有する、スクリーン図４００あるいは８００を提示することが出来る。
【００６２】
ページインジケータ１３３０は、現在のページを指し示し、現在のページ範囲内において他のページを表示する。矢印１３４０は、ユーザが、結果の集合を（例えば、一度に１ページ）前後に移動することを可能とする。ページ付けツールは、ページインジケータ１３３０と矢印１２４０を含む。スクロールツール１３５０は、ユーザが、結果の集合を（例えば、一度に１行、あるいは、一度に１ページ）前後に移動することを可能とする。
【００６３】
図１４は、幾つかの例示的実施形態による、シームレスなページ付けの方法１４００を実行する場合のアプリケーションサーバ１１８の動作を図示するフローチャートである。方法１４００の動作は、図２について上述したモジュールを用いて、アプリケーションサーバ１１８上で実行される検索アプリケーション１２１によって実行されることが出来る。
【００６４】
検索アプリケーション１２１は、例えば、販売アイテムを検索するクライアントマシン１１０あるいは１１２からの検索問い合わせ（動作１４１０）を受信することが出来る。検索アプリケーション１２１は、問い合わせを実行し、応答のアイテムを特定することが出来る（動作１４２０）。検索問い合わせに応答して、検索アプリケーション１２１は、応答のアイテムの部分集合をクライアントマシン１１０あるいは１１２に伝送することが出来る（動作１４３０）。応答のアイテムの部分集合は、複数ページの画面面積をカバーするのに十分であるだろう。伝送されるアイテムの数は、クライアントマシン１１０あるいは１１２から受信される機能データ、アプリケーションサーバ１１８によってアクセス可能な履歴データ、あるいは、その両方に基づくことが出来る。アプリケーションサーバ１１８は、追加の応答アイテムへのリクエストを受信し（動作１４４０）、リクエストに応答して追加の結果を伝送することが出来る（動作１４５０）。
【００６５】
図１５は、幾つかの例示的実施形態による、シームレスなページ付けの方法１５００を実行する場合のクライアントマシン１１０あるいは１１２の動作を図示するフローチャートである。方法１５００における動作は、図３について上述したモジュールを用いて、クライアントマシン１１０あるいは１１２によって実行されることが出来る。
【００６６】
クライアントマシン１１０あるいは１１２は、検索問い合わせを伝送することが出来る（動作１５１０）。例えば、検索問い合わせは、ＵＩモジュール３５０によって受信され、あるいは、テキスト入力フィールド４１０に入力されることが出来る。検索問い合わせは、上述の、方法１４００を実行するアプリケーションサーバ１１８に伝送されることが出来る。検索問い合わせに応答して、クライアントマシン１１０あるいは１１２は、応答のアイテムの第１と第２のページを受信することが出来る（動作１５２０及び１５３０）。クライアントマシン１１０あるいは１１２は、ページ付け制御と共に、応答のアイテムの第１のページを表示することが出来る（動作１５４０及び１５５０）。クライアントマシン１１０あるいは１１２は、ページ付けコマンドを受信することが出来る（動作１５６０）。例えば、ページ付けコマンドは、ＵＩモジュール３５０によって受信される、あるいは、ページ付け制御によって生成されることが出来る。ページ付けコマンドに応答して、クライアントマシン１１０あるいは１１２は、応答のアイテムの第２のページが提示され（動作１５７０）、及び、アプリケーションサーバ１１８からの応答のアイテムの第３のページをリクエストする（動作１５８０）ことが出来る。
【００６７】
図１６は、幾つかの例示的実施形態による、シームレスなページ付けの方法１６００を実行する場合のアプリケーションサーバ１１８の動作を図示するフローチャートである。方法１６００における動作は、図２について上述したモジュールを用いて、アプリケーションサーバ１１８上で実行される検索アプリケーション１２１によって実行されることが出来る。
【００６８】
検索アプリケーション１２１は、例えば、販売アイテムを検索するクライアントマシン１１０あるいは１１２からの検索問い合わせ（動作１６１０）を受信することが出来る。検索アプリケーション１２１は、図２について、上述された基準の任意の組み合わせを用いて、ユーザに提示された結果のアイテムの数あるいは結果のページの数を決定することが出来る（動作１６２０）。検索問い合わせに応答して、検索アプリケーション１２１は、クライアントマシン１１０あるいは１１２に提示するためにページ数を伝送することが出来る（動作１６３０）。
【００６９】
図１７は、幾つかの例示的実施形態による、シームレスなページ付けの方法１７００を実行するクライアントマシン１１０あるいは１１２の動作を図示するフローチャートである。方法１７００の動作は、図３について上述したモジュールを用いて、クライアントマシン１１０あるいは１１２によって実行されることが出来る。
【００７０】
クライアントマシン１１０あるいは１１２は、検索問い合わせを伝送することが出来る（動作１７１０）。例えば、検索問い合わせは、ＵＩモジュール３５０によって受信され、あるいは、テキスト入力フィールド４１０に入力されることが出来る。検索問い合わせは、上述の方法１６００を実行するアプリケーションサーバ１１８に伝送されることが出来る。検索問い合わせに応答して、クライアントマシン１１０あるいは１１２は、提示すべきアイテムのページ数を受信することが出来る（動作１７２０）。クライアントマシン１１０あるいは１１２は、結果のページの最初のページ数の中から選択するように動作可能なページ付け制御を表示することが出来る（動作１７３０）。例えば、ページ数が３の場合、ページ付け制御は、ユーザが、最初の３ページの任意のものを選択することを可能とするように動作可能とすることが出来る。
【００７１】
図１８は、幾つかの例示的実施形態による、シームレスなページ付けを有する文脈的改善の方法１８００を実行する場合のクライアントマシン１１０あるいは１１２の動作を図示するフローチャートである。方法１８００における動作は、図２について上述したモジュールを用いて、アプリケーションサーバ１１８上で実行される検索アプリケーション１２１と共に、図３について上述したモジュールを用いて実行されることが出来る。
【００７２】
動作１８１０において、クライアントマシン１１０あるいは１１２は、ＵＩを介して、ユーザから検索問い合わせを受信することが出来る。例えば、テキストフィールド及び提出ボタン（送信ボタン）が、ユーザに提示されることが出来る。ユーザはテキストフィールドに検索列を入力し、提出ボタンを押すことが出来る。
【００７３】
動作１８２０において、クライアントマシン１１０あるいは１１２は、検索問い合わせに対する応答のアイテムを受信することが出来る。例えば、クライアントマシン１１０あるいは１１２は、検索プリケーション１２１に検索問い合わせを送信することが出来る。検索アプリケーション１２１は、問い合わせを実行し、応答のアイテムを特定することが出来る。検索問い合わせに応答して、検索アプリケーション１２１は、クライアントマシン１１０あるいは１１２に、応答のアイテムのすべてあるいは部分集合を伝送することが出来る。
【００７４】
動作１８３０において、クライアントマシン１１０あるいは１１２は、スクロール可能なインタフェースにおいて、応答のアイテムを表示することが出来る。応答のアイテムは、複数ページの画面面積をカバーするのに十分とすることが出来る。
【００７５】
動作１８４０において、クライアントマシン１１０あるいは１１２は、スクロール可能なインタフェースが、閾値を超えてスクロールしたことを検出することが出来る。例えば、ＵＩは、ＵＩを上下にスクロールするように動作可能な、スクロールバーを含むことが出来る。閾値は、応答のアイテムの数、スクロールされたページの数、スクロールされたピクセルの数、あるいは、スクロールの他の測定値に基づいて、設定されていることが出来る。閾値は、ユーザのデバイスに基づいて、ユーザの以前の検索相互作用に基づいて、あるいは、他のユーザの検索相互作用に基づいて、設定されることが出来る。
【００７６】
動作１８５０において、クライアントマシン１１０あるいは１１２は、ＵＩにスクロール不可なエレメントを追加する。例えば、スクロール不可な改善オプションが提示されることができ、ユーザの検索を改善するように動作することが出来る。他の例として、改善オプションを提示するように動作可能なスクロール不可なエレメントが提示されることが出来る。
【００７７】
図１９は、幾つかの例示的実施形態による、シームレスなページ付けを有する文脈的な改善の方法１９００を実行する場合のクライアントマシン１１０あるいは１１２の動作を図示するフローチャートである。方法１９００における動作は、図２について上述したモジュールを用いた、アプリケーションサーバ１１８上で実行される検索アプリケーション１２１と共に、図３について上述したモジュールを用いて実行されることが出来る。
【００７８】
動作１９１０において、クライアントマシン１１０あるいは１１２は、ＵＩを介して、ユーザから検索問い合わせを受信することが出来る。例えば、テキストフィールドと提出ボタンがユーザに提示されることが出来る。ユーザは、テキストフィールドに検索列を入力し、提出ボタンを押すことが出来る。
【００７９】
動作１９２０において、クライアントマシン１１０あるいは１１２は、検索問い合わせに対する応答アイテムを受信することが出来る。例えば、クライアントマシン１１０あるいは１１２は、検索問い合わせを検索アプリケーション１２１に送信することが出来る。検索アプリケーション１２１は、問い合わせを実行し、応答アイテムを特定することが出来る。検索問い合わせに応答して、検索アプリケーション１２１は、クライアントマシン１１０あるいは１１２に、応答アイテムのすべてあるいは部分集合を伝送することが出来る。
【００８０】
動作１９３０において、クライアントマシン１１０あるいは１１２は、スクロール可能なインタフェースに、応答アイテムを表示することが出来る。応答アイテムは、複数ページの画面面積をカバーするのに十分とすることが出来る。
【００８１】
動作１９４０において、クライアントマシン１１０あるいは１１２は、スクロール可能なインタフェースが、第１の閾値を超えてスクロールされたことを検出することが出来る。例えば、ＵＩは、ＵＩを上下にスクロールするように動作可能な、スクロールバーを含むことが出来る。第１の閾値は、応答アイテムの数、スクロールされたページの数、スクロールされたピクセルの数、あるいは、他のスクロールの測定値に基づいて、設定されていることが出来る。第１の閾値は、ユーザのデバイスに基づいて、ユーザの以前の検索相互作用に基づいて、あるいは、他のユーザの検索相互作用に基づいて設定されることが出来る。
【００８２】
動作１９５０において、クライアントマシン１１０あるいは１１２は、ＵＩに対し、スクロール不可なエレメントを追加することが出来る。スクロール不可なエレメントの追加は、スクロール可能なインタフェースが、第１の閾値を超えてスクロールされたことの検出に基づくことが出来る。例えば、スクロール不可な改善オプションは、ユーザの検索を改善するように動作可能なものが、提示されることが出来る。他の例として、改善オプションを提示するように動作可能なスクロール不可なエレメントが提示されることが出来る。
【００８３】
動作１９６０において、クライアントマシン１１０あるいは１１２は、スクロール可能なインタフェースが、第２の閾値を超えてスクロールしたことを検出することが出来る。例えば、ＵＩは、ＵＩを上下にスクロールするように動作可能な、スクロールバーを含むことが出来る。第２の閾値は、応答アイテムの数、スクロールされたページの数、スクロールされたピクセルの数、あるいは、他のスクロールの測定値に基づいて、設定されていることが出来る。第２の閾値は、ユーザのデバイスに基づいて、ユーザの以前の検索相互作用に基づいて、あるいは、他のユーザの検索相互作用に基づいて、設定されることが出来る。第２の閾値は、絶対位置（例えば、結果リストの先頭から５スクリーン）あるいは、相対位置（例えば、第１の閾値から４スクリーン）として規定されることが出来る。
【００８４】
動作１９７０において、クライアントマシン１１０あるいは１１２は、動作１９５０において、ＵＩに追加された、スクロール不可なエレメントを改変する。スクロール不可なエレメントを改変することは、スクロール可能なインタフェースが、第２の閾値を超えてスクロールしたことの検出に基づくことが出来る。例えば、改善オプションを提示するように動作可能なスクロール不可なエレメントは、スクロール可能なインタフェースが第１の閾値を超えてスクロールされたとき、提示されることができ、スクロール可能なインタフェースが、第２の閾値を超えてスクロールされたとき、ユーザからの更なる相互作用なしに、改善オプションを実際に提示するように、エレメントは改変されることが出来る。
【００８５】
図２０は、幾つかの例示的実施形態による、シームレスなページ付けを有する文脈的な改善の方法２０００を実行する場合の、クライアントマシン１１０あるいは１１２の動作を図示するフローチャートである。方法２０００の動作は、図２について上述したモジュールを用いた、アプリケーションサーバ１１８上で実行される検索アプリケーション１２１と共に、図３について上述されたモジュールを用いて実行されることが出来る。動作２０１０−２０６０は、図１９について上述された、動作１９１０−１９６０に対応する。
【００８６】
動作２０７０において、クライアントマシン１１０あるいは１１２は、第２のスクロール不可なエレメントを、動作２０５０においてＵＩに追加されたスクロール不可なエレメントに追加する。例えば、第１のスクロール不可なエレメントは、アイテムのブランドに関する改善オプションを提示するように動作可能とすることができ、第２のスクロール不可なエレメントは、アイテムの価格に関連した改善オプションを提示するように動作可能とすることが出来る。
【００８７】
様々な例示的実施形態によると、ここに記述された１以上の方法は、シームレスなページ付けの間、文脈的な改善を促進することが出来る。従って、ここに記述された１以上の方法は、ユーザによってリクエストされた情報の取得と提示を促進する一方、ユーザの検索の精度を増加するために、１以上の示唆された改善を示すことが出来る。
【００８８】
図２１は、シームレスなページ付けに適した、例示的実施形態による、問い合わせデータフィーチャの使用を図示するブロック図２１００である。データベース２１１０は、システムの幾人かのユーザの振る舞いに関するデータを伴った、ユーザの振る舞いの履歴のデータを格納することが出来る。一実施形態においては、すべてのユーザのアクションに関するデータは、データベース２１１０に格納される。データベース２１１０は、問い合わせ２１３０に対する不成功なセッションにおいて見られたページとアイテムの数と共に、問い合わせ２１２０に対する成功したセッションにおいて見られたページとアイテムの数を決定するために、利用されることが出来る。成功したセッションは、任意の方法でアイテムとユーザが相互作用するセッション（例えば、アイテムを見る、アイテムに入札する、アイテムを購入する、アイテムに加入する、など）あるいは、特定の相互作用が実行されるセッション（例えば、アイテムに入札する、アイテムを購入する、あるいは、その両方）とすることが出来る。不成功なセッションは、成功しなかった任意のセッションとすることが出来る。他の基準は、また、成功した、及び、不成功なセッションを特定するために用いられることが出来る。問い合わせ２１２０についての成功したセッションで見られたページ及びアイテムの数、問い合わせ２１３０についての不成功なセッションで見られたページとアイテムの数、あるいは、その両方に基づいて、問い合わせページ付けデータのデータベース２１４０は、生成され、あるいは、更新されることが出来る。データベース２１４０における情報に基づいて、問い合わせを行うユーザに表示するためのページ数が決定されることが出来る。追加的に、あるいは、別のものとして、データベース２１４０の情報に基づいて、スクロール不可なＵＩエレメントを提示する、あるいは、変更する前に、問い合わせを行ったユーザに表示するためのページ及びアイテムの数を決定することが出来る。
【００８９】
図２２は、シームレスなページ付けに適した、例示的実施形態による、ユーザデータフィーチャの使用を図示するブロック図２２００である。ブロック図２２００において、ユーザの振る舞いの履歴のデータを含むデータベース２２１０は、ユーザ２２３０の不成功なセッションにおいて見られたページとアイテムの数と共に、ユーザ２２２０の成功したセッションにおいて見られたページとアイテムの数を決定するために利用されることが出来る。ユーザ２２２０の成功したセッションにおいて見られたページとアイテムの数、ユーザ２２３０の不成功なセッションにおいて見られたページとアイテムの数、あるいは、その両方に基づいて、ユーザページ付けデータのデータベース２２４０は、生成され、あるいは、更新されることが出来る。データベース２２４０における情報に基づいて、問い合わせを行うユーザへの表示のためのページ数が、決定されることが出来る。ユーザと問い合わせについてのユーザの振る舞いの履歴のデータは、組み合わせられ、あるいは、独立に、用いられることが出来る。例えば、ユーザデータのみに基づいて、提示されるべきページ数は、５であり、問い合わせデータのみに基づいて、提示されるべきページ数は７である場合、幾つかの例示的実施形態は、５ページを提示する一方、他方では、７を提示し、更に他方では、値を平均し、６を提示することが出来る。
【００９０】
図２３は、シームレスなページ付けを有効にするかを決定する際に考慮されることが出来る幾つかの要因を図示する。シームレスなページ付けを有効にする決定は、同一の問い合わせ２３０５に対する他のユーザのページ付けデータ、異なる問い合わせ２３１０についてのこのユーザのページ付けデータ、クライアントマシン１１０のブラウザタイプ２３２０、クライアントマシン１１０あるいは１１２のデバイスタイプ２３１５、クライアントマシン１１０あるいは１１２のスクリーン解像度、結果の集合２３３０、クライアントマシン１１０あるいは１１２の位置２３３５、セッション文脈２３４０及び、他の信号２３４５に基づくことが出来る。決定２３５０において、決定は、１以上の入力要因に基づいて、シームレスなページ付けを有効あるいは無効とするためになされる。従って、シームレスなページ付けを有効とする結果２３５５に到達するか、デフォルトのページ付けを用いる結果２３６０に到達するかのいずれかである。例えば、シームレスなページ付けは、ある問い合わせを提出した他のユーザの以前の振る舞いに基づいて、その問い合わせについて無効とすることが出来る。同様に、シームレスなページ付けは、以前の問い合わせを提出（送信）した後のユーザの以前の振る舞いに基づいて、あるユーザについて、無効にすることが出来る。
【００９１】
デバイスタイプ２３１５は、考慮されることが出来る。例えば、フルスクリーンデバイス（例えば、デスクトップコンピュータ）を用いるユーザは、小さなスクリーンデバイス（例えば、モバイルデバイス）を用いる人よりも多くのページをスクロールする傾向を有することができ、提示すべきページ数は、フルスクリーンデバイスのユーザについてより多いことが出来る。デバイス要因は、また、他のユーザの以前の検索にアクセスするとき、適用されることが出来る。例えば、同一の問い合わせに対する他のユーザのすべての検索を考慮に入れるよりむしろ、同様なデバイスからの検索のみを考慮に入れることが出来る。類似性は、任意の適切な組み合わせでの、デバイス（例えば、アップルデバイス、ＨＰデバイスなど）の製造者、デバイスのクラス（例えば、電話、タブレット、ラップトップ、デスクトップなど）、デバイスの機能（例えば、スクリーンサイズ、スクリーン解像度、タッチスクリーン、メモリ、プロセッサ速度など）、ネットワークの機能（例えば、アプリケーションサーバとクライアントマシンとの間の帯域、アプリケーションサーバとクライアントマシンとの間のレイテンシなど）、あるいは、他のデバイス要因に基づくことが出来る。
【００９２】
関連要因は、デバイスの速度あるいは、他の環境状況とすることが出来る。例えば、良く乗り物酔いするユーザは、静かにしているときと電車で移動しているときでは閲覧の仕方が異なるかも知れず、システムは、デバイスの速度に少なくとも部分的に基づいて、ページ付けを改変する程度に十分知的であることが出来る。これは、乗り物の運転者が、乗り物のヘッドユニットを介すなどして、検索結果と相互作用している実施形態に拡張することが出来る。そのような例において、ユーザの注意散漫は重要な要因であり、運転者の注意散漫を減少するために、そのような環境において、より簡単化された（おそらく、より少ないページの）インタフェースを提供するが過ぎることは望ましいだろう。
【００９３】
現在の問い合わせが提出される直前にユーザによって走らされる問い合わせあるいは複数の問い合わせのような、セッション文脈データ２３４０は考慮されることが出来る。例えば、ユーザが「iPhone 5」を検索するときに提示されるページ数は８とすることが出来るが、「電話（Phone）」の検索のすぐ後に検索するときは、提示されるページ数は、５とすることが出来る。他の文脈的な要因は、ユーザが検索問い合わせを実行した頻度とすることが出来る。例えば、収集アイテムを周期的に検索するユーザは、検索結果に高いレベルの興味を示しており、従って、結果の追加のページが提示されることが出来る。
【００９４】
ユーザあるいはデバイスの位置などの、位置特定（Geolocation ）データ２３３５が考慮されることが出来る。例えば、市街地でのユーザは、郊外のユーザより多くのページをスクロールする傾向を有することができ、提示されるページ数は、市街地のユーザのほうが多いことが出来る。位置特定要因は、また、他のユーザの以前の検索にアクセスするとき、適用されることが出来る。例えば、同一の問い合わせについての他のユーザのすべての検索を考慮するのではなく、ユーザの領域からの検索のみを考慮に入れることが出来る。ユーザの領域は、市、国、州などの行政区、あるいは、ユーザのある半径内（例えば、５マイル、５０マイル、あるいは、２００マイル）のすべての他のユーザを含む地理学的領域として規定されることが出来る。他の例示的実施形態においては、領域は、以前のユーザの振る舞いに基づいて分類されることが出来る。例えば、ユーザは、家から閲覧している場合と、職場から閲覧している場合で異なる行動をすることが出来る。ユーザの家と職場の位置の位置特定は、追跡されることができ、この情報は、ユーザに基づいてのみではなく、ユーザが家にいるか、職場にいるかに基づいても、ページ付けをカスタム化する際に利用されることが出来る。
【００９５】
時間的要因も適用されることが出来る。例えば、ユーザあるいは問い合わせのすべての履歴データを見るのではなく、特定の時間からの振る舞いデータのみを用いることが出来る。異なる時間的要因は、ユーザについての履歴データ及び問い合わせについての履歴データ用に用いられることができ、時間的要因は、一方について用いられ、他方については用いられないことができ、あるいは、同一の時間的要因が、両方用に用いられることが出来る。例えば、過去２週間にわたるユーザの振る舞いが考慮されることができ、過去２週間のその問い合わせの他のユーザの振る舞いが考慮されることが出来る。
【００９６】
社会的要因も考慮することが出来る。例えば、結果のより多いページをしばしば閲覧するユーザの友人であるソーシャルネットワークのユーザは、結果のより少ないページをしばしば閲覧するユーザの友人であるユーザよりも、結果のより多くのページを見ることを好むかもしれない。社会的要因は、また、他のユーザの以前の検索にアクセスするとき、適用されることが出来る。例えば、同一の問い合わせの他のユーザのすべての検索を考慮するのではなく、友人からの検索のみを考慮することが出来る。他の人間関係は、また、友人の友人、特定のグループのメンバー、特定のフィードへの加入などが、考慮されることが出来る。
【００９７】
広告要因も考慮されることが出来る。例えば、広告は、アイテムと共に表示されることが出来る。広告主は、提示される各広告について、クリックあたり（per-click ）、印象あたり（per-impression ）、あるいは、販売あたり（per-sale ）のレートで支払いを行うことが出来る。従って、相互作用するアイテムを選択する前に、アイテムのより多くのページを閲覧することをユーザに進めることは利益のあることであろうし、より多くの広告に関連した問い合わせ、あるいは、高いレートで売られる広告は、より少ない、あるいは、より利益の少ない広告の問い合わせよりも、提示される結果のページがより多いだろう。
【００９８】
ダイレクトマネタイゼーションも考慮されることが出来る。例えば、検索結果の後のページに現れるアイテムの所有者は、そのアイテムを含めるために、検索結果の十分なページが提示されることを薦めるために、手数料を支払うことに関心があるかもしれない。同様に、検索結果の始めのほうのページに現れるアイテムの所有者は、ユーザにアイテムと相互作用することを薦めるため、提示されるページ数を減らすために、手数料を支払うことに興味があるかもしれない。幾つかの例示的実施形態においては、これにより、検索結果の順番は、マネタイゼーションによって影響を受けず、依然、検索結果のマネタイゼーションを可能にすることが出来る。
【００９９】
幾つかの例示的実施形態においては、ユーザがアイテムと相互作用する前に表示されるアイテムの平均数は、上述したように、表示される結果のページ数を決定するために用いられる。他の例示的実施形態においては、ユーザがアイテムと相互作用する前に表示されるアイテムの中位数が用いられる。中位数を用いることは、ユーザの５０％がより多くのアイテムを見ることを好むが、５０％は、より少ないことを好む、ことを意味するだろう。他の割合も用いられることができる。例えば、表示されるべきページ数は、ユーザの９５％によって見られたページの最大数に基づくことが出来る。各場合において、アイテムあるいはページの特定された数は、アイテムに相互作用する前に、平均のユーザによって見られたアイテム数であると考えられることが出来る。
【０１００】
相互作用の割合の例示的表が以下に示される。
0006397028.tif 000002
【０１０１】
この例示的表に見られるように、１３，６２０，３６２回の同様な検索が、現在の問い合わせの前に、ユーザによって実行された。それらの検索のうち、５５．９４％（あるいは、７，６１９，２１９回の検索）は、最初のページでのアイテムの相互作用となり、１０．２６％（あるいは、１，３９８，０２９回の検索）は、２番目のページでのアイテムの相互作用となった、などである。従って、５０％の閾値が選択されたなら、特定されたページ数は、１で、８５％の閾値が選択されたなら、特定されたページ数は、８である。
【０１０２】
様々な例示的実施形態によると、ここに記述した方法の１以上は、シームレスなページ付けを促進することが出来る。従って、ここに記述された１以上の方法は、考慮すべきアイテムの示唆された数を示しつつ、ユーザによってリクエストされた情報の取得と提示を促進することが出来る。ページ付け制御において、制限された数のページのみを提示することは、アイテムの決定された数よりも多いものを見ることなく、ユーザにアイテムと相互作用することを薦めることができ、検索エンジンあるいはユーザによる結果の集合とより大きく関係し、ユーザによる時間を節約し、検索エンジンによってユーザに提供されるアイテムを多く販売するという、ユーザにとってのより良い経験となることが出来る。ページ付け制御を提供することは、また、結果の集合内で、ユーザが現在の位置を追跡し続けることを助け、ユーザが、ユーザによって心に引っ掛けられた、興味のあるアイテムにより迅速に戻ってくることを可能とすることが出来る。
【０１０３】
様々な例示的実施形態によると、ここに記述した方法の１以上は、シームレスなページ付けの間、文脈的な改善を促進することが出来る。従って、ここに記述した１以上の方法は、ユーザの検索の精度を増加するために、１以上の示唆された改善を示しつつ、ユーザによってリクエストされた情報の取得と提示を促進することが出来る。
【０１０４】
これらの効果が集合的に考慮される場合、ここに説明した１以上の方法は、さもなければ、検索に含まれていたであろうある努力あるいは資源の必要性を不要にすることが出来る。興味のあるアイテムを特定するにおいてユーザによって行われる努力は、ここに説明した１以上の方法によって削減されることが出来る。１以上のマシン、データベースあるいはデバイス（例えば、クライアント−サーバシステム１００内の）によって用いられる計算資源は、同様に削減されることが出来る。そのような計算資源の例は、プロセッササイクル、ネットワークトラフィック、メモリ使用率、データストレージ容量、消費電力及び、冷却能力を含む。
【０１０５】
モジュール、コンポーネント、及び、ロジック
ある実施形態は、ロジック、あるいは、幾つかのコンポーネント、モジュール、あるいは、機構を含むとしてここに記述されている。モジュールは、ソフトウェアモジュール（例えば、非一時的マシン読取り可能な媒体に実装されたコード）あるいは、ハードウェア実装モジュールのいずれかを構成することが出来る。ハードウェア実装モジュールは、ある動作を実行することが出来る、実体的ユニットであり、ある方法で、構成され、あるいは、配列されることが出来る。例示的実施形態においては、１以上のコンピュータシステム（例えば、スタンドアロン、クライアントあるいはサーバコンピュータシステム）あるいは、１以上のプロセッサは、ここに説明したように、ある動作を実行するように動作するハードウェア実装モジュールとして、ソフトウェア（例えば、アプリケーションあるいはアプリケーションの一部）によって構成されることが出来る。
【０１０６】
様々な実施形態においては、ハードウェア実装モジュールは、機械的あるいは電子的に実装されることが出来る。例えば、ハードウェア実装モジュールは、ある動作を実行するために固定的に構成される専用回路あるいは、ロジック（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいは、アプリケーション特有集積回路（ＡＳＩＣ）などの特殊目的プロセッサとして）を含むことが出来る。ハードウェア実装モジュールは、また、ある動作を実行するために、ソフトウェアによって一時的に構成されるプログラマブルロジックあるいは回路（例えば、汎用プロセッサあるいは他のプログラマブルプロセッサ内に含まれるとして）を含むことが出来る。専用及び固定的に構成される回路において、あるいは、一時的に構成される回路（例えば、ソフトウェアによって構成される）において、機械的にハードウェア実装モジュールを実装することの決定は、コストと時間を考慮に入れてなされることが出来ることは理解されるだろう。
【０１０７】
従って、語句「ハードウェエア実装モジュール」は、実体性のあるエンティティを含むことは理解されるべきであり、エンティティは、ある方法で、及び／あるいは、ここに説明したある動作を実行するために、物理的に構成され、固定的に構成され（例えば、ハードワイヤード）あるいは、一時的あるいは遷移的に構成され（例えば、プログラムされ）る。ハードウェア実装モジュールが、一時的に構成される（例えば、プログラムされる）実施形態を考慮すると、ハードウェア実装モジュールのそれぞれは、任意の一時点で、構成される、あるいは、具体化される必要はない。例えば、ハードウェア実装モジュールが、ソフトウェアを用いて構成される汎用プロセッサを含む場合、汎用プロセッサは、異なる時点において、それぞれの異なるハードウェア実装モジュールとして構成されることが出来る。従って、ソフトウェアは、例えば、ある一時点においては、特定のハードウェア実装モジュールを構成し、異なる一時点においては、異なるハードウェア実装モジュールを構成するように、プロセッサを構成することが出来る。
【０１０８】
ハードウェア実装モジュールは、他のハードウェア実装モジュールに情報を提供したり、これから情報を受信したりすることが出来る。従って、記述されたハードウェア実装モジュールは、通信可能なように結合されているとみなすことが出来る。複数のそのようなハードウェア実装モジュールは同時に存在する場合、通信は、ハードウェア実装モジュールを接続する信号伝送（例えば、適切な回路及びバスを介して）によって達成されることが出来る。複数のハードウェア実装モジュールが異なる時点で構成され、あるいは、具体化される実施形態においては、そのようなハードウェア実装モジュール間の通信は、例えば、複数のハードウェア実装モジュールがアクセスを有するメモリ構造における情報の格納及び取得を介して達成されることが出来る。例えば、一つのハードウェア実装モジュールは、動作を実行し、通信可能なように結合されるメモリデバイスにおけるその動作の出力を格納することが出来る。更なるハードウェア実装モジュールは、そして、後の時点で、格納された出力を取得し、処理するために、メモリデバイスにアクセスすることが出来る。ハードウェア実装モジュールは、また、入力あるいは出力デバイスと通信を開始することができ、資源（例えば、情報の集合）に操作することが出来る。
【０１０９】
ここに記述された例示的方法の様々な動作は、関連する動作を実行するように、一時的に構成される（例えば、ソフトウェアによって）あるいは、固定的に構成される１以上のプロセッサによって、少なくとも部分的に、実行されることが出来る。一時的に、あるいは、固定的に構成されるかには関係なく、そのようなプロセッサは、１以上の動作あるいは機能を実行するように動作可能なプロセッサ実装モジュールを構成することが出来る。ここに述べられるモジュールは、幾つかの例示的実施形態においては、プロセッサ実装モジュールを含むことが出来る。
【０１１０】
同様に、ここに記述された方法は、少なくとも部分的にプロセッサ実装されることが出来る。例えば、方法の動作の少なくとも幾つかは、１つあるいは複数のプロセッサあるいはプロセッサ実装モジュールによって実行されることが出来る。動作のあるものの実行は、１以上のプロセッサ間で分散されることが出来、単一のマシン内に留まるのみではなく、複数のマシンに渡って展開されることが出来る。幾つかの例示的実施形態においては、プロセッサあるいは複数のプロセッサは、単一の場所（例えば、ホーム環境内、オフィス環境内、あるいは、サーバファームとして）に位置することが出来るが、他の実施形態においては、プロセッサは、複数の場所に渡って分散されることが出来る。
【０１１１】
１以上のプロセッサは、また、「クラウドコンピューティング」環境において、あるいは、「ソフトウェアアズサービス」（ＳａａＳ）として、関連の動作の実行をサポートするために動作することが出来る。例えば、動作の少なくとも幾つかは、コンピュータのグループ（例えば、複数のプロセッサを含むマシンの例として）によって実行されることができ、これらの動作は、ネットワーク（例えば、インターネット）を介して、及び、１以上の適切なインタフェース（例えば、ＡＰＩ）を介して、アクセスすることが出来る。
【０１１２】
[電子装置及びシステム]
例示的実施形態は、デジタル電子回路、あるいは、コンピュータハードウェア、ファームウェア、ソフトウェア、あるいは、これらの組み合わせによって実装されることが出来る。例示的実施形態は、例えば、情報担体、例えば、プログラマブルプロセッサ、コンピュータ、あるいは、複数のコンピュータなどのデータ処理装置による実行のための、あるいは、この動作を制御するためのマシン読取り可能な媒体において、実体的に実装されたコンピュータプログラムなどのコンピュータプログラム製品を用いて、実装されることが出来る。
【０１１３】
コンピュータプログラムは、コンパイルされた、あるいは、インタプリタの言語を含む、プログラム言語の任意の形態に書くことが出来、スタンドアロンのプログラムとして、あるいは、モジュール、サブルーチン、あるいは、コンピューティング環境に用いられるのに適した他のユニットを含む任意の形態で展開されることが出来る。コンピュータプログラムは、１つのコンピュータ上で、あるいは、１つの場所にある、あるいは、複数の場所に渡って分散されて、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるために、展開されることが出来る。
【０１１４】
例示的実施形態においては、動作は、入力データに操作をし、出力を生成することによって、機能を実行するために、コンピュータプログラムを実行する１以上のプログラマブルプロセッサによって実行されることが出来る。方法動作は、また、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいは、特定用途向け集積回路（ＡＳＩＣ）などの専用ロジック回路によって実行されることができ、例示的実施形態の装置は、これらとして、実装されることが出来る。
【０１１５】
コンピューティングシステムは、クライアントとサーバを含むことが出来る。クライアントとサーバは、一般には、相互に離れており、典型的には、通信ネットワークを介して相互作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアント−サーバ関係を有するコンピュータプログラムによって生じる。プログラマブルコンピューティングシステムを展開する実施形態においては、ハードウェアとソフトウェアの両方のアーキテクチャを考慮に入れる必要があることは理解されるだろう。特に、ある機能を、固定的に構成されたハードウェア（例えば、ＡＳＩＣ）、一時的に構成されるハードウェア（例えば、ソフトウェアとプログラマブルプロセッサの組み合わせ）、あるいは、固定的に構成されるハードウェアと一時的に構成されるハードウェアの組み合わせの、いずれで実装するかの選択は、設計選択であることが出来ることは理解されるだろう。以下は、様々な例示的実施形態において展開されることが出来るハードウェア（例えば、マシン）及びソフトウェアアーキテクチャを記述する。
【０１１６】
[例示的マシンアーキテクチャ及びマシン読取り可能な媒体]
図２４は、マシンに、ここに議論した任意の１以上の方法を実行させる命令が実行されるコンピュータシステム２４００の例示的形態のマシンのブロック図である。別の実施形態においては、マシンは、スタンドアロンデバイスとして動作し、他のマシンに接続（例えば、ネットワーク化）されることが出来る。ネットワーク化された展開においては、マシンは、サーバ−クライアントネットワーク環境においては、サーバあるいはクライアントマシンの機能で動作し、ピアツーピア（あるいは、分散）ネットワーク環境においては、ピアマシンとして動作することが出来る。マシンは、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話、タブレット、ウェアラブルデバイス（例えば、スマートウォッチ、あるいは、スマート眼鏡）、ウェブ装置、ネットワークルータ、スイッチあるいはブリッジ、あるいは、そのマシンによって取られるべきアクションを指定する命令（シーケンシャルあるいは他のもの）を実行する能力のある任意のマシンとすることが出来る。更に、単一のマシンのみが図示されているが、語句「マシン」は、ここに議論した任意の１以上の方法を実行するための命令のセット（あるいは複数のセット）を、個別に、あるいは、協働して実行するマシンの任意の集合を含むようにも取られるべきである。
【０１１７】
例示的コンピュータシステム２４００は、バス２４０８を介して相互に通信する、プロセッサ２４０２（例えば、中央演算装置（ＣＰＵ）、グラフィック処理ユニット（ＧＰＵ）あるいはその両方）、メインメモリ２４０４、及び、静的メモリ２４０６を含む。コンピュータシステム２４００は、更に、ビデオディスプレイユニット２４１０（例えば、液晶ディスプレイ（ＬＣＤ）、あるいは、陰極線管（ＣＲＴ））を含むことが出来る。コンピュータシステム２４００は、また、英数字入力デバイス２４１２（例えば、キーボードあるいはタッチ感応ディスプレイスクリーン）、カーソル制御デバイス２４１４（例えば、マウス）、ディスクドライブユニット２４１６、信号生成デバイス２４１８（例えば、スピーカ）及び、ネットワークインタフェースデバイス２４２０を含む。
【０１１８】
[マシン読取り可能な媒体]
ディスクドライブユニット２４１６は、ここに記述した任意の１以上の方法あるいは機能を実装し、あるいは、これによって利用される命令及びデータ構造の１以上のセット（例えば、ソフトウェア）２４２４が格納されるマシン読取り可能な媒体２４２２を含む。命令２４２４は、また、コンピュータシステム２４００によって実行される間、メインメモリ２４０４内及び／あるいはプロセッサ２４０２内に、完全に、あるいは、少なくとも部分的に存在することができ、メインメモリ２４０４とプロセッサ２４０２は、また、マシン読取り可能な媒体を構成することが出来る。
【０１１９】
マシン読取り可能な媒体２４２２は、例示的実施形態においては、単一の媒体であるとして示されているが、語句「マシン読取り可能な媒体」は、１以上の命令あるいはデータ構造を格納する単一の媒体あるいは複数の媒体（例えば、集中型あるいは分散型データベース、及び／あるいは関連するキャッシュ及びサーバ）を含むことが出来る。語句「マシン読取り可能な媒体」は、また、マシンによる実行のための命令を格納し、符号化し、あるいは、担持することが出来、マシンに、本発明の任意の１以上の方法を実行させ、あるいは、そのような命令によって利用される、あるいは、それに関連するデータ構造を格納し、符号化し、あるいは、担持することができる任意の実体性のある媒体を含むと取られるべきである。語句「マシン読取り可能な媒体」は、従って、これらには限定されないが、固体メモリ、及び、光及び磁気媒体を含むと取られるべきである。マシン読取り可能な媒体の特定の例は、例として、例えば、ＥＰＲＯＭ（Erasable Programmable Read-Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、フラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスク及び着脱可能なディスク、磁気光ディスクなどの磁気ディスク、ＣＤ−ＲＯＭ、及び、ＤＶＤ−ＲＯＭディスクを含む不揮発性メモリを含む。
【０１２０】
[伝送媒体]
命令２４２４は、更に、伝送媒体を用いた通信ネットワーク２４２６を介して送信あるいは受信されることが出来る。命令２４２４は、ネットワークインタフェースデバイス２４２０及び、複数の既知の伝送プロトコルの任意の１つ（例えば、ＨＴＴＰ）を用いて送信されることが出来る。通信ネットワーックの例は、ＬＡＮ（local area network ）、ＷＡＮ、インターネット、携帯電話ネットワーク、通常の旧式電話（ＰＯＴＳ）ネットワーク（Plain Old Telephone (POTS) network）及び、無線データネットワーク（例えば、ＷｉＦｉ及びＷｉＭａｘネットワーク）を含む。語句「伝送媒体」は、マシンによる実行のために命令を格納し、符号化し、あるいは、担持出来、デジタルあるいはアナログ通信信号あるいは、そのようなソフトウェアの通信を促進する他の非実体的媒体を含む、任意の非実体的媒体を含むように取られるべきである。
【０１２１】
実施形態が、特定の例示的実施形態を参照して記述されたが、様々な改変及び変更が、本発明のより広い精神と範囲から外れることなく、これらの実施形態になされ得ることは明確であろう。従って、明細書及び図は、限定的な意味ではなく、例示的であるとみなされるべきである。その一部を形成する添付の図面は、主題が実施されることが出来る特定の実施形態を、例示の方法で、限定ではなく、示す。図示された実施形態は、当業者が、ここに開示される教示を実施することが出来るように、十分に詳細に記述される。他の実施形態は、構造的あるいは論理的代替及び変更が、この開示の範囲を外れることなくなされ得るように、利用され、それらから導き出されることが出来る。従って、この詳細な説明は、限定的な意味に取られるべきではなく、様々な実施形態の範囲は、請求項が許される均等物の全範囲と共に、添付の請求項によってのみ規定される。
【０１２２】
本発明の主題のそのような実施形態は、便宜のため、及び、１より多く実際に開示される場合、任意の単一の発明あるいは発明の概念にこの出願の範囲を、自主的に限定することを意図することなしに、単に語句「発明」によって、個別に、及び／あるいは集合的に、ここに参照されることが出来る。従って、特定の実施形態が、図示され、ここに記述されたが、同一の目的を達成するように意図された任意の配置は、示された特定の実施形態の代替とすることが出来ることは理解されるべきである。この開示は、様々な実施形態の任意の、及びすべての適応あるいは変形をカバーすることを意図されている。上記実施形態と、ここに特には記述されていない他の実施形態の組み合わせは、上記記述を吟味した当業者には明確であろう。
【図１】
0006397028.tif 000003
【図２】
0006397028.tif 000004
【図３】
0006397028.tif 000005
【図４】
0006397028.tif 000006
【図５】
0006397028.tif 000007
【図６】
0006397028.tif 000008
【図７】
0006397028.tif 000009
【図８】
0006397028.tif 000010
【図９】
0006397028.tif 000011
【図１０】
0006397028.tif 000012
【図１１】
0006397028.tif 000013
【図１２】
0006397028.tif 000014
【図１３】
0006397028.tif 000015
【図１４】
0006397028.tif 000016
【図１５】
0006397028.tif 000017
【図１６】
0006397028.tif 000018
【図１７】
0006397028.tif 000019
【図１８】
0006397028.tif 000020
【図１９】
0006397028.tif 000021
【図２０】
0006397028.tif 000022
【図２１】
0006397028.tif 000023
【図２２】
0006397028.tif 000024
【図２３】
0006397028.tif 000025
【図２４】
0006397028.tif 000026