(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスのタッチスクリーン上に表示されたグラフィカルユーザインターフェース（ＧＵＩ）内でスクロールするための第１のユーザ入力であって、前記タッチスクリーン上での第１の開始点と１つまたは複数の第１の軌跡点とを含む第１の軌跡を含む前記タッチスクリーン上での第１のタッチジェスチャを含む前記第１のユーザ入力を前記コンピューティングデバイスが受信し、
前記第１の開始点に対して画定される前記タッチスクリーンの複数の領域であって、前記複数の領域のうちの第１の領域が第１のスクロール軸に対応し、前記複数の領域のうちの第２の領域が前記第１のスクロール軸に対して直角をなす第２のスクロール軸に対応している前記複数の領域を前記コンピューティングデバイスが判定し、
前記第１の軌跡のすべてまたは一部が前記第１の領域に収容された場合に前記コンピューティングデバイスは前記第１の軌跡が前記第１の領域に対応すると判定し、
前記第１の軌跡が前記第１の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第１のユーザ入力に従って前記第１のスクロール軸と平行かつ直線的に前記ＧＵＩ内でスクロールし、
前記ＧＵＩ内でスクロールするための第２のユーザ入力を前記コンピューティングデバイスが受信し、前記第２のユーザ入力は、前記タッチスクリーン上での第２の開始点と１つまたは複数の第２の軌跡点とを含む第２の軌跡を含む第２のタッチジェスチャを含み、
前記第１のユーザ入力から所定の時間量以内に前記第２のユーザ入力が生じた場合に、前記コンピューティングデバイスが、前記第２のユーザ入力の前記第１のスクロール軸に沿う第１の成分に従って前記第１のスクロール軸と平行かつ直線的に前記ＧＵＩ内でスクロールし、
前記第１のユーザ入力から所定の時間量後に前記第２のユーザ入力が生じた場合に、前記第２のユーザ入力の前記第２の軌跡が前記複数の領域のうちの前記第２の領域に対応する場合、前記コンピューティングデバイスが、前記第２のユーザ入力の前記第２のスクロール軸に沿う第２の成分に従って前記第２のスクロール軸と平行かつ直線的に前記ＧＵＩ内でスクロールすることを備える方法。
【請求項２】
前記複数の領域のうちの第３の領域も前記第１のスクロール軸に対応し、
前記複数の領域のうちの第４の領域も前記第２のスクロール軸に対応し、
前記第１の軌跡のすべてまたは一部が前記第３の領域に収容された場合に前記コンピューティングデバイスは前記第１の軌跡が前記第３の領域に対応すると判定し、
前記第１の軌跡が前記第３の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第１のユーザ入力に従って前記第１のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールし、
前記第１の軌跡のすべてまたは一部が前記第４の領域に収容された場合に前記コンピューティングデバイスは前記第１の軌跡が前記第４の領域に対応すると判定し、
前記第１の軌跡が前記第４の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第１のユーザ入力に従って、前記第２のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールすることをさらに備える請求項１に記載の方法。
【請求項３】
前記複数の領域のうちの第３の領域は前記第１のスクロール軸または前記第２のスクロール軸に対応しておらず、
前記第１の軌跡のすべてまたは一部が前記第３の領域に収容された場合に前記コンピューティングデバイスは前記第１の軌跡が前記第３の領域に対応すると判定し、
前記第１の軌跡が前記第３の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第１のユーザ入力に従って前記第１のスクロール軸及び前記第２のスクロール軸から独立して前記ＧＵＩ内でスクロールすることをさらに備える請求項１に記載の方法。
【請求項４】
各領域は、前記第１の開始点を中心とした所定の長さの半径を有する円の扇形である、請求項１に記載の方法。
【請求項５】
各扇形は前記円の円周の８分の１である円弧を含む、請求項４に記載の方法。
【請求項６】
前記第１のスクロール軸は水平であり、前記第２のスクロール軸は垂直である、請求項１に記載の方法。
【請求項７】
前記第１の軌跡のすべてまたは一部が前記第１の領域または前記第２の領域に収容された場合に前記コンピューティングデバイスは前記第１の軌跡が前記第１の領域または前記第２の領域に対応すると判定し、
前記第１の軌跡が前記第１の領域または前記第２の領域に対応するとの判定に基づき、前記コンピューティングデバイスが、前記第１のタッチジェスチャ後の所定の時間量の間、前記第１のスクロール軸または前記第２のスクロール軸の対応するものにもっぱら平行かつ直線的に前記ＧＵＩ内でスクロールすることをさらに備える請求項１に記載の方法。
【請求項８】
隣接するコンテンツオブジェクトの境界によって画定される前記隣接するコンテンツオブジェクトの所定量が、前記ＧＵＩのビューポートにまたは前記ＧＵＩに移動すると、前記隣接するコンテンツオブジェクトが、自動的に所定の場所にはめ込まれて、前記ビューポートまたは前記ＧＵＩに表示される唯一のコンテンツオブジェクトとなる、請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
タッチスクリーンと、
１つまたは複数のプロセッサと、
前記プロセッサに結合されるとともに前記プロセッサによって実行可能な命令を含むメモリとを備えるシステムであって、前記プロセッサは、前記命令を実行すると請求項１乃至８のいずれか一項に記載の方法を行うように動作可能である、システム。
【請求項１０】
実行されると請求項１乃至８のいずれか一項に記載の方法を行うように動作可能なソフトウェアを具現化する、１つまたは複数のコンピュータ可読非一時的記録媒体。
【請求項１１】
タッチスクリーンと、
１つまたは複数のプロセッサと、
前記プロセッサに結合されるとともに前記プロセッサによって実行可能な命令を含むメモリとを備えるシステムであって、
前記プロセッサは、前記命令を実行すると、
前記タッチスクリーン上に表示されたグラフィカルユーザインターフェース（ＧＵＩ）内でスクロールするための第１のユーザ入力であって、前記タッチスクリーン上での第１の開始点と１つまたは複数の第１の軌跡点とを含む第１の軌跡を含む前記タッチスクリーン上での第１のタッチジェスチャを含む前記第１のユーザ入力を受信し、
前記第１の開始点に対して画定される前記タッチスクリーンの複数の領域であって、前記複数の領域のうちの第１の領域が第１のスクロール軸に対応し、前記複数の領域のうちの第２の領域が前記第１のスクロール軸に対して直角をなす第２のスクロール軸に対応している前記複数の領域を判定し、
前記第１の軌跡のすべてまたは一部が前記第１の領域に収容された場合に前記第１の軌跡が前記第１の領域に対応すると判定し、
前記第１の軌跡が前記第１の領域に対応するとの判定に基づき、前記第１のユーザ入力に従って前記第１のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールし、
前記ＧＵＩ内でスクロールするための第２のユーザ入力を受信し、前記第２のユーザ入力は、前記タッチスクリーン上での第２の開始点と１つまたは複数の第２の軌跡点とを含む第２の軌跡を含む第２のタッチジェスチャを含み、
前記第１のユーザ入力から所定の時間量以内に前記第２のユーザ入力が生じた場合に、前記第２のユーザ入力の前記第１のスクロール軸に沿う第１の成分に従って前記第１のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールし、
前記第１のユーザ入力から所定の時間量後に前記第２のユーザ入力が生じた場合に、前記第２のユーザ入力の前記第２の軌跡が前記複数の領域のうちの前記第２の領域に対応する場合、前記第２のユーザ入力の前記第２のスクロール軸に沿う第２の成分に従って前記第２のスクロール軸と平行かつ直線的に前記ＧＵＩ内でスクロールするように動作可能である、システム。
【請求項１２】
前記複数の領域のうちの第３の領域も前記第１のスクロール軸に対応し、
前記複数の領域のうちの第４の領域も前記第２のスクロール軸に対応し、
前記プロセッサは、前記命令を実行すると、
前記第１の軌跡のすべてまたは一部が前記第３の領域に収容された場合に前記第１の軌跡が前記第３の領域に対応すると判定し、
前記第１の軌跡が前記第３の領域に対応するとの判定に基づき、前記第１のユーザ入力に従って前記第１のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールし、
前記第１の軌跡のすべてまたは一部が前記第４の領域に収容された場合に前記第１の軌跡が前記第４の領域に対応すると判定し、
前記第１の軌跡が前記第４の領域に対応するとの判定に基づき、前記第１のユーザ入力に従って前記第２のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールするようにさらに動作可能である、請求項１１に記載のシステム。
【請求項１３】
前記複数の領域のうちの第３の領域が、前記第１のスクロール軸または前記第２のスクロール軸に対応しておらず、
前記プロセッサは、前記命令を実行すると、
前記第１の軌跡のすべてまたは一部が前記第３の領域に収容された場合に前記第１の軌跡が前記第３の領域に対応すると判定し、
前記第１の軌跡が前記第３の領域に対応するとの判定に基づき、前記第１のユーザ入力に従って前記第１のスクロール軸および前記第２のスクロール軸から独立して前記ＧＵＩ内でスクロールするようにさらに動作可能である、請求項１１に記載のシステム。
【請求項１４】
各領域は、前記第１の開始点を中心とした所定の長さの半径を有する円の扇形である、請求項１１に記載のシステム。
【請求項１５】
各扇形は前記円の円周の８分の１である円弧を含む、請求項１４に記載のシステム。
【請求項１６】
前記第１のスクロール軸は水平であり、前記第２のスクロール軸は垂直である、請求項１１に記載のシステム。
【請求項１７】
前記プロセッサは、前記命令を実行すると、
前記第１の軌跡のすべてまたは一部が前記第１の領域または前記第２の領域に収容された場合に前記第１の軌跡が前記第１の領域または前記第２の領域に対応すると判定し、
前記第１の軌跡が前記第１の領域または前記第２の領域に対応するとの判定に基づき、前記第１のタッチジェスチャ後の所定の時間量の間、前記第１のスクロール軸または前記第２のスクロール軸の対応するものにもっぱら平行かつ直線的に前記ＧＵＩ内でスクロールするようにさらに動作可能である、請求項１１に記載のシステム。
【請求項１８】
１つまたは複数のコンピュータ可読非一時的記録媒体であって、実行されると、
タッチスクリーン上に表示されたグラフィカルユーザインターフェース（ＧＵＩ）内でスクロールするための第１のユーザ入力であって、前記タッチスクリーン上での第１の開始点と１つまたは複数の第１の軌跡点とを含む第１の軌跡を含む前記タッチスクリーン上での第１のタッチジェスチャを含む前記第１のユーザ入力を受信し、
前記第１の開始点に対して画定される前記タッチスクリーンの複数の領域であって、前記複数の領域のうちの第１の領域が第１のスクロール軸に対応し、前記複数の領域のうちの第２の領域が前記第１のスクロール軸に対して直角をなす第２のスクロール軸に対応している前記複数の領域を判定し、
前記第１の軌跡のすべてまたは一部が前記第１の領域に収容された場合に前記第１の軌跡が前記第１の領域に対応すると判定し、
前記第１の軌跡が前記第１の領域に対応するとの判定に基づき、前記第１のユーザ入力に従って前記第１のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールし、
前記ＧＵＩ内でスクロールするための第２のユーザ入力を受信し、前記第２のユーザ入力は、前記タッチスクリーン上での第２の開始点と１つまたは複数の第２の軌跡点とを含む第２の軌跡を含む第２のタッチジェスチャを含み、
前記第１のユーザ入力から所定の時間量以内に前記第２のユーザ入力が生じた場合に、前記第２のユーザ入力の前記第１のスクロール軸に沿う第１の成分に従って前記第１のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールし、
前記第１のユーザ入力から所定の時間量後に前記第２のユーザ入力が生じた場合に、前記第２のユーザ入力の前記第２の軌跡が前記複数の領域のうちの前記第２の領域に対応する場合、前記第２のユーザ入力の前記第２のスクロール軸に沿う第２の成分に従って前記第２のスクロール軸と平行かつ直線的に前記ＧＵＩ内でスクロールするように動作可能なソフトウェアを具現化する、１つまたは複数のコンピュータ可読非一時的記録媒体。
【請求項１９】
前記複数の領域のうちの第３の領域も前記第１のスクロール軸に対応し、
前記複数の領域のうちの第４の領域も前記第２のスクロール軸に対応し、
前記ソフトウェアは、実行されると、
前記第１の軌跡のすべてまたは一部が前記第３の領域に収容された場合に前記第１の軌跡が前記第３の領域に対応すると判定し、
前記第１の軌跡が前記第３の領域に対応するとの判定に基づき、前記第１のユーザ入力に従って前記第１のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールし、
前記第１の軌跡のすべてまたは一部が前記第４の領域に収容された場合に前記第１の軌跡が前記第４の領域に対応すると判定し、
前記第１の軌跡が前記第４の領域に対応するとの判定に基づき、前記第１のユーザ入力に従って前記第２のスクロール軸に平行かつ直線的に前記ＧＵＩ内でスクロールするようにさらに動作可能である、請求項１８に記載の記録媒体。
【請求項２０】
前記複数の領域のうちの第３の領域が、前記第１のスクロール軸または前記第２のスクロール軸に対応しておらず、
前記ソフトウェアは、実行されると、
前記第１の軌跡のすべてまたは一部が前記第３の領域に収容された場合に前記第１の軌跡が前記第３の領域に対応すると判定し、
前記第１の軌跡が前記第３の領域に対応するとの判定に基づき、前記第１のユーザ入力に従って前記第１のスクロール軸および前記第２のスクロール軸から独立して前記ＧＵＩ内でスクロールするようにさらに動作可能である、請求項１８に記載の記録媒体。
【請求項２１】
各領域は、前記第１の開始点を中心とした所定の長さの半径を有する円の扇形であり、各扇形は、前記円の円周の８分の１である円弧を含む、請求項１８に記載の記録媒体。
【請求項２２】
前記第１のスクロール軸が水平であり、前記第２のスクロール軸が垂直である、請求項１８に記載の記録媒体。
【請求項２３】
前記ソフトウェアは、実行されると、
前記第１の軌跡のすべてまたは一部が前記第１の領域または前記第２の領域に収容された場合に前記第１の軌跡が前記第１の領域または前記第２の領域に対応すると判定し、
前記第１の軌跡が前記第１の領域または前記第２の領域に対応するとの判定に基づき、前記第１のタッチジェスチャ後の所定の時間量の間、前記第１のスクロール軸または前記第２のスクロール軸の対応するものにもっぱら平行かつ直線的に前記ＧＵＩ内でスクロールするようにさらに動作可能である、請求項１８に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、モバイルコンピューティングデバイスに関する。
【背景技術】
【０００２】
スマートフォン、タブレットコンピュータ、またはラップトップコンピュータなどのモバイルコンピューティングデバイスは、その位置、方向、または向きを判定するための機能、たとえば、ＧＰＳ受信機、コンパス、またはジャイロスコープを含むことがある。そのようなデバイスはまた、ＢＬＵＥＴＯＯＴＨ通信、近距離無線通信（ＮＦＣ）、もしくは赤外線（ＩＲ）通信、または、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）もしくはセルラー電話ネットワークとの通信などのワイヤレス通信のための機能を含むことがある。そのようなデバイスは、１つまたは複数のカメラ、スキャナ、タッチスクリーン、マイクロフォン、またはスピーカも含むことがある。モバイルコンピューティングデバイスはまた、ゲーム、ウェブブラウザ、またはソーシャルネットワーキングアプリケーションなどのソフトウェアアプリケーションを実行することがある。ソーシャルネットワーキングアプリケーションを用いて、ユーザは、自分のソーシャルネットワークにおける他のユーザと、接続し、通信し、情報を共有することができる。
【発明の概要】
【０００３】
特定の実施形態において、（モバイルコンピューティングデバイスでありえる）コンピューティングデバイスは、コンピューティングデバイスのタッチスクリーン上に表示されたグラフィカルユーザインターフェース（ＧＵＩ）内でスクロールするためのユーザ入力を受信することがある。ユーザ入力は、タッチスクリーン上でのタッチジェスチャを含むことができ、タッチジェスチャは、タッチスクリーン上での開始点と１つまたは複数の他の点（たとえば、終止点）とを有する軌跡を含むことがある。コンピューティングデバイスは、開始点に対して画定されるタッチスクリーンの複数の領域を判定することがある。それらの領域のうちの第１の領域は、第１のスクロール軸（たとえば、水平軸）に対応し、第２の領域は、第１のスクロール軸に対して直角をなしていてよい第２のスクロール軸（たとえば、垂直軸）に対応することがある。軌跡が第１の領域に対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第１のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールすることがある。軌跡が第２の領域に対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第２のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールすることがある。タッチスクリーンの一部の他の領域も第１の軸または第２の軸に対応することがある。加えて、タッチスクリーンのさらに他の領域は、どちらの軸にも対応していないことがあり、軌跡がこれらの領域のうちの１つに対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第１のスクロール軸および第２のスクロール軸から独立してＧＵＩ内でスクロールすることがある。
【０００４】
本発明による実施形態は、とりわけ、方法、記録媒体、およびシステムを対象とする添付の請求項に開示されており、１つの請求項カテゴリ、たとえば方法において述べた任意の特徴が、別の請求項カテゴリ、たとえば、媒体またはシステムにおいて特許請求されることがある。
【０００５】
一実施形態の方法は、コンピューティングデバイスのタッチスクリーン上に表示されたグラフィカルユーザインターフェース（ＧＵＩ）内でスクロールするためのユーザ入力であって、前記タッチスクリーン上での開始点と１つまたは複数の他の点とを含む軌跡を含む前記タッチスクリーン上でのタッチジェスチャを含む前記ユーザ入力をコンピューティングデバイスが受信し、前記開始点に対して画定されるタッチスクリーンの複数の領域であって、前記複数の領域のうちの第１の領域が第１のスクロール軸に対応し、前記複数の領域のうちの第２の領域が前記第１のスクロール軸に対して直角をなす第２のスクロール軸に対応している前記複数の領域をコンピューティングデバイスが判定し、前記軌跡が前記第１の領域に対応するならば、前記ユーザ入力に従って、コンピューティングデバイスが前記第１のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールし、前記軌跡が前記第２の領域に対応するならば、前記ユーザ入力に従って、コンピューティングデバイスが第２のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールすることを備える。
【０００６】
一実施形態では、前記複数の領域のうちの第３の領域も第１のスクロール軸に対応し、前記複数の領域のうちの第４の領域も第２のスクロール軸に対応しており、方法は、軌跡が第３の領域に対応するならば、前記ユーザ入力に従って、コンピューティングデバイスが第１のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールし、軌跡が第４の領域に対応するならば、前記ユーザ入力に従ってコンピューティングデバイスが第２のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールすることをさらに含む。
【０００７】
さらなる実施形態では、前記複数の領域のうちの第３の領域が第１のスクロール軸または第２のスクロール軸に対応しておらず、方法は、軌跡が第３の領域に対応するならば、前記ユーザ入力に従って第１のスクロール軸および第２のスクロール軸から独立してコンピューティングデバイスがＧＵＩ内でスクロールすることをさらに含む。
【０００８】
とりわけ、各領域は、開始点における中心と、所定の長さの半径とを有する円の扇形であり、好ましくは各扇形が、円の円周の８分の１である円弧を含む。
有利な実施形態において、第１のスクロール軸は水平であり、第２のスクロール軸は垂直である。
【０００９】
好ましくは、方法は、軌跡が第１の領域または第２の領域に対応するならば、タッチジェスチャ後の所定の時間量の間、第１のスクロール軸または第２のスクロール軸の対応するものにもっぱら平行かつ直線的に、コンピューティングデバイスがＧＵＩ内でスクロールすることをさらに含む。
【００１０】
その上、隣接するコンテンツオブジェクトの境界によって画定される隣接するコンテンツオブジェクトの所定量、たとえば５０％が、ＧＵＩのビューポートにまたはＧＵＩに移動すると、隣接するコンテンツオブジェクトが、自動的に所定の場所にはめ込まれて、ビューポートまたはＧＵＩに表示される唯一のコンテンツオブジェクトとなることができる。
【００１１】
さらなる実施形態において、システムは、タッチスクリーンと、１つまたは複数のプロセッサと、プロセッサに結合されるとともにプロセッサによって実行可能な命令を含むメモリとを含み、プロセッサは命令を実行すると本発明による方法を行うように動作可能である。
【００１２】
さらなる実施形態において、実行されると本発明による方法を行うように動作可能なソフトウェアを具現化する、１つまたは複数のコンピュータ可読非一時的記録媒体が提供されてよい。
【００１３】
特許請求され得るさらなる実施形態において、システムが、タッチスクリーンと、１つまたは複数のプロセッサと、プロセッサに結合されるとともにプロセッサによって実行可能な命令を含むメモリとを含み、プロセッサは命令を実行すると、タッチスクリーン上に表示されたグラフィカルユーザインターフェース（ＧＵＩ）内でスクロールするためのユーザ入力であって、タッチスクリーン上での開始点と１つまたは複数の他の点とを含む軌跡を含むタッチスクリーン上でのタッチジェスチャを含む前記ユーザ入力を受信し、開始点に対して画定されるタッチスクリーンの複数の領域であって、前記複数の領域のうちの第１の領域が第１のスクロール軸に対応し、前記複数の領域のうちの第２の領域が前記第１のスクロール軸に対して直角をなす第２のスクロール軸に対応している前記複数の領域を判定し、軌跡が第１の領域に対応するならば、前記ユーザ入力に従って第１のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールし、軌跡が第２の領域に対応するならば、前記ユーザ入力に従って第２のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールするように動作可能である。
【００１４】
一実施形態のシステムでは、複数の領域のうちの第３の領域も第１のスクロール軸に対応し、複数の領域のうちの第４の領域も第２のスクロール軸に対応し、プロセッサは、命令を実行すると、軌跡が第３の領域に対応するならば、前記ユーザ入力に従って第１のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールし、軌跡が第４の領域に対応するならば、前記ユーザ入力に従って第２のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールするようにさらに動作可能である。
【００１５】
さらなる実施形態のシステムでは、複数の領域のうちの第３の領域が第１のスクロール軸または第２のスクロール軸に対応しておらず、プロセッサは、命令を実行すると、軌跡が第３の領域に対応するならば、前記ユーザ入力に従って第１のスクロール軸および第２のスクロール軸から独立してＧＵＩ内でスクロールするように、さらに動作可能である。
【００１６】
さらなる実施形態のシステムでは、各領域は、開始点を中心とした所定の長さの半径を有する円の扇形であり、各扇形がその円の円周の８分の１である円弧を含むことができる。
【００１７】
一実施形態のシステムでは、第１のスクロール軸は水平で、第２のスクロール軸は垂直である。
さらなる実施形態のシステムでは、プロセッサは、命令を実行すると、軌跡が第１の領域または第２の領域に対応するならば、タッチジェスチャ後の所定の時間量の間、第１のスクロール軸または第２のスクロール軸の対応するものにもっぱら平行かつ直線的にＧＵＩ内でスクロールするように、さらに動作可能である。
【００１８】
特許請求され得る別の実施形態が提供する１つまたは複数のコンピュータ可読非一時的記録媒体は、実行されると、タッチスクリーン上に表示されたグラフィカルユーザインターフェース（ＧＵＩ）内でスクロールするためのユーザ入力であって、タッチスクリーン上での開始点と１つまたは複数の他の点とを含む軌跡を含むタッチスクリーン上でのタッチジェスチャを含むユーザ入力を受信し、開始点に対して画定されるタッチスクリーンの複数の領域であって、前記複数の領域のうちの第１の領域が第１のスクロール軸に対応し、複数の領域のうちの第２の領域が第１のスクロール軸に対して直角をなす第２のスクロール軸に対応している前記複数の領域を判定し、軌跡が第１の領域に対応するならば、前記ユーザ入力に従って第１のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールし、軌跡が第２の領域に対応するならば、前記ユーザ入力に従って第２のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールするように動作可能なソフトウェアを具現化するものである。
【００１９】
一実施形態の媒体では、複数の領域のうちの第３の領域も第１のスクロール軸に対応し、複数の領域のうちの第４の領域も第２のスクロール軸に対応し、ソフトウェアは、実行されるとき、軌跡が第３の領域に対応するならば、前記ユーザ入力に従って第１のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールし、軌跡が第４の領域に対応するならば、前記ユーザ入力に従って第２のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールするようにさらに動作可能である。
【００２０】
一実施形態の媒体では、複数の領域のうちの第３の領域が第１のスクロール軸または第２のスクロール軸に対応しておらず、ソフトウェアは、実行されると、軌跡が第３の領域に対応するならば、前記ユーザ入力に従って第１のスクロール軸および第２のスクロール軸から独立してＧＵＩ内でスクロールするように、さらに動作可能である。
【００２１】
一実施形態の媒体では、各領域は、開始点を中心とした所定の長さの半径を有する円の扇形であり、各扇形が、好ましくはその円の円周の８分の１である円弧を含む。
さらに別の実施形態の媒体では、第１のスクロール軸は水平であり、第２のスクロール軸は垂直である。
【００２２】
ソフトウェアは、好ましくは、実行されると、軌跡が第１の領域または第２の領域に対応するならば、タッチジェスチャ後の所定の時間量の間、第１のスクロール軸または第２のスクロール軸の対応するものにもっぱら平行かつ直線的にＧＵＩ内でスクロールするように、さらに動作可能である。
【図面の簡単な説明】
【００２３】
【図１】例示的なモバイルデバイスを示す図。
【図２】モバイルデバイスの例示的なコンピューティングプラットフォームを示す図。
【図３Ａ】例示的なユーザタッチジェスチャを示す図。
【図３Ｂ】コンピューティングデバイスの例示的なビューポートを示す図。
【図３Ｃ】コンピューティングデバイスの表示の例示的な領域を示す図。
【図４Ａ】スクロール挙動をクランプするための例示的な方法を示す図。
【図４Ｂ】コンテンツオブジェクトの境界から独立してスクロールするための例示的な方法を示す図。
【図５】例示的なコンピュータシステムを示す図。
【発明を実施するための形態】
【００２４】
図１は、例示的なモバイルデバイス１００を示す。本開示は、任意の好適な物理的形態を取るモバイルデバイス１００を企図している。限定としてではなく例として、モバイルデバイス１００は、シングルボードコンピュータシステム（ＳＢＣ）（たとえば、コンピュータオンモジュール（ＣＯＭ）もしくはシステムオンモジュール（ＳＯＭ）など）、ラップトップもしくはノートブックコンピュータシステム、モバイル電話機、スマートフォン、携帯情報端末（ＰＤＡ）、タブレットコンピュータシステム、またはこれらのうちの２つ以上の組合せであってよい。特定の実施形態において、モバイルデバイス１００は、入力コンポーネントとしてのタッチスクリーン１１２を有することができる。図１の例において、タッチスクリーン１１２は、モバイルデバイス１００の前面に組み込まれている。静電容量式タッチセンサのケースでは、送信および受信の、２つのタイプの電極があってよい。これらの電極は、電気パルスで送信電極を駆動し、タッチ入力または近接入力によって引き起こされた受信電極からの静電容量の変化を測定するように設計されたコントローラに接続されてよい。図１の例において、１つまたは複数のアンテナ１１４Ａ〜Ｃが、モバイルデバイス１００の１つまたは複数の側面に組み込まれていてよい。アンテナ１１４Ａ〜Ｃは、電流を電波に変換する、およびその逆を行うコンポーネントである。信号の送信の間、送信機は、発振無線周波数（ＲＦ）電流をアンテナ１１４Ａ〜Ｃの端子に印加し、アンテナ１１４Ａ〜Ｃは、印加された電流のエネルギーを電磁（ＥＭ）波として放射する。信号の受信の間、アンテナ１１４Ａ〜Ｃは、入って来るＥＭ波の電力を、アンテナ１１４Ａ〜Ｃの端子において電圧に変換する。電圧は、増幅のために受信機に送信されてよい。
【００２５】
モバイルデバイス１００は、さまざまに異なるハードウェアおよびコンピューティングシステムにおいて実装され得るが、図２は、さまざまな特定の実施形態による、モバイルデバイスの例示的なコンピューティングプラットフォームの主要なコンポーネントの概略描写を示している。特定の実施形態において、コンピューティングプラットフォーム２０２は、コントローラ２０４と、メモリ２０６と、入力出力サブシステム２１０とを含むことができる。特定の実施形態において、１つまたは複数のプロセッサおよび／または１つまたは複数のマイクロコントローラを含むことができるコントローラ２０４は、コンピューティングプラットフォームに関連付けられた、命令を実行し、動作を遂行するように構成されている。さまざまな実施形態において、コントローラ２０４は、シングルチップ、マルチプルチップ、および／または、１つまたは複数の集積回路およびプリント回路基板を含む他の電気コンポーネントとして、実装されてよい。コントローラ２０４は、オプションで、命令、データ、またはコンピュータアドレスの一時的なローカルストレージのためのキャッシュメモリユニットを収容することができる。例として、メモリから取り出された命令を使用して、コントローラ２０４は、コンピューティングプラットフォーム２０２のコンポーネント間で、入力データおよび出力データの受信および操作を制御することができる。例として、コントローラ２０４は、コンピューティングプラットフォーム２０２の一定の処理タスクに専用の、たとえば、２Ｄ／３Ｄグラフィック処理、画像処理、またはビデオ処理のための、１つもしくは複数のプロセッサ、または１つまたは複数のコントローラを含むことができる。
【００２６】
コントローラ２０４は、好適なオペレーティングシステムと共に、コンピュータコードの形態での命令を実行し、データを生成し、使用するように動作することができる。限定としてではなく例として、オペレーティングシステムは、好適なオペレーティングシステムの中でも特に、Ｗｉｎｄｏｗｓベース、Ｍａｃベース、またはＵｎｉｘもしくはＬｉｎｕｘベース、またはＳｙｍｂｉａｎベースであってよい。オペレーティングシステム、他のコンピュータコードおよび／またはデータは、コントローラ２０４に動作可能に結合されたメモリ２０６内に物理的に記憶されてよい。
【００２７】
メモリ２０６は、１つまたは複数の記録媒体を包含し、一般に、コンピューティングプラットフォーム２０２によって使用される、コンピュータコード（たとえば、ソフトウェアおよび／またはファームウェア）およびデータを記憶するための場所を提供することができる。例として、メモリ２０６は、読み出し専用メモリ（ＲＯＭ）および／またはランダムアクセスメモリ（ＲＡＭ）を含む、さまざまな有形のコンピュータ可読記録媒体を含むことができる。本技術分野でよく知られるように、ＲＯＭは、データおよび命令をコントローラ２０４に一方向に転送するように働き、ＲＡＭは、通常、双方向のやり方で、データおよび命令を転送するために使用される。メモリ２０６はまた、コントローラ２０４に双方向に結合されるメモリの好適な形態の中でも特に、例として、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、フラッシュメモリカード（たとえば、セキュアなデジタル、すなわちＳＤカード）の形態での、１つまたは複数の固定式ストレージデバイスを含むことができる。情報はまた、必要なときに、コンピューティングプラットフォーム２０２にロードされる、またはインストールされる、１つまたは複数のリムーバブル記録媒体に常駐していてもよい。例として、任意の数の好適なメモリカード（たとえば、ＳＤカード）を、一次的なまたは永続的なベースで、コンピューティングプラットフォーム２０２にロードすることができる。
【００２８】
入力出力サブシステム２１０は、コントローラ２０４に動作可能に接続された、１つまたは複数の入力デバイスおよび出力デバイスを含むことができる。たとえば、入力出力サブシステムは、キーボード、マウス、１つまたは複数のボタン、および／または表示装置（たとえば、液晶表示装置（ＬＣＤ）、もしくは任意の他の好適な表示技術）を含むことができる。一般に、入力デバイスは、外界からのデータ、コマンド、および応答を、コンピューティングプラットフォーム２０２に転送するように構成されている。表示装置は、一般に、グラフィカルユーザインターフェース（ＧＵＩ）を表示するように構成されており、グラフィカルユーザインターフェース（ＧＵＩ）は、コンピューティングプラットフォーム２０２のユーザと、モバイルデバイス上で稼働するオペレーティングシステムまたはアプリケーションとの間に、使用しやすいビジュアルインターフェースを提供する。一般に、ＧＵＩは、プログラム、ファイル、および動作上のオプションを、グラフィカルな画像で提示する。動作中、ユーザは、グラフィカルな画像に関連付けられた機能およびタスクを開始するために、表示装置に表示されたさまざまなグラフィカルな画像を選択し、作動させることができる。入力出力サブシステム２１０はまた、タッチパッドおよびタッチスクリーンなどの、タッチ式デバイスを含むことができる。タッチパッドは、ユーザのタッチ式入力を検出する表面を含む入力デバイスである。同様に、タッチスクリーンは、ユーザのタッチ入力の存在および位置を検出する表示装置である。入力出力システム２１０はまた、２本または３本指のタッチなどの２つ以上のタッチ入力の存在、位置、および動きを識別することができる、デュアルタッチもしくはマルチタッチの表示装置またはタッチパッドを含むことができる。
【００２９】
特定の実施形態において、コンピューティングプラットフォーム２０２は、コンピューティングプラットフォーム２０２のさまざまな機能を促進にするためにコントローラ２０４に動作可能に接続された、オーディオサブシステム２１２、カメラサブシステム２１２、ワイヤレス通信サブシステム２１６、センササブシステム２１８、および／またはワイヤード通信サブシステム２２０を追加的に含むことができる。たとえば、スピーカ、マイクロフォン、およびオーディオ信号を処理するように構成されたコーデックモジュールを含むオーディオサブシステム２１２を利用して、音声認識、音声複製、デジタル記録、およびテレフォニー機能などの音声対応機能を促進することができる。たとえば、光学センサ（たとえば、電荷結合デバイス（ＣＣＤ）、画像センサ）を含むカメラサブシステム２１２を利用して、写真およびビデオクリップを記録するなどのカメラ機能を促進することができる。たとえば、ワイヤード通信サブシステム２２０は、ファイル転送するためのユニバーサルシリアルバス（ＵＳＢ）ポート、またはローカルエリアネットワーク（ＬＡＮ）に接続するためのイーサネットポートを含むことができる。加えて、コンピューティングプラットフォーム２０２は、電源２３２によって電力供給されてよい。
【００３０】
ワイヤレス通信サブシステム２１６は、たとえば、ワイヤレスＰＡＮ（ＷＰＡＮ）（たとえば、ＢＬＵＥＴＯＯＴＨ）、ＷＩ−ＦＩネットワーク（たとえば、８０２．１１ａ／ｂ／ｇ／ｎネットワーク）、ＷＩ−ＭＡＸネットワーク、セルラネットワーク（たとえば、モバイル通信用グローバルシステム（ＧＳＭ）ネットワーク、ロングタームエボリューション（ＬＴＥ）ネットワークなど）の、１つまたは複数のワイヤレスネットワーク上で動作するように設計されてよい。加えて、ワイヤレス通信サブシステム２１６は、コンピューティングプラットフォーム２０２が他のワイヤレスデバイスのための基地局として構成され得るように、ホスティングプロトコルを含むことができる。他の入力／出力デバイスは、デバイスの向きを検出するために使用され得る加速度計を含むことができる。
【００３１】
センササブシステム２１８は、追加的な入力を提供し、コンピューティングプラットフォーム２０２の機能を増進するための、１つまたは複数のセンサデバイスを含むことができる。たとえば、センササブシステム２１８は、位置測位のためのＧＰＳセンサ、高度測位のための高度計、モバイルデバイスの向きを判定するための動きセンサ、カメラサブシステム２１４による撮影機能のための光センサ、大気温度を測定するための温度センサ、および／または、セキュリティアプリケーションのためのバイオメトリックセンサ（たとえば、指紋読み取り機）を含むことができる。
【００３２】
特定の実施形態において、コンピューティングプラットフォーム２０２のさまざまなコンポーネントは、１つまたは複数のバス（ハードウェアおよび／またはソフトウェアを含む）によって、互いにかつ動作可能に接続されてよい。限定としてではなく例として、１つまたは複数のバスは、アクセラレーテッドグラフィックポート（ＡＧＰ）もしくは他のグラフィックバス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＴ）相互接続、業界標準アーキテクチャ（ＩＳＡ）バス、ＩＮＦＩＮＩＢＡＮＤ相互接続、ローピンカウント（ＬＰＣ）バス、メモリバス、周辺コンポーネント相互接続エクスプレスＰＣＩ−エクスプレスバス、シリアル高度技術アタッチメント（ＳＡＴＡ）バス、集積回路間（Ｉ２Ｃ）バス、セキュアデジタル（ＳＤ）メモリインターフェース、セキュアデジタル入力出力（ＳＤＩＯ）インターフェース、ユニバーサルシリアルバス（ＵＳＢ）バス、汎用入力／出力（ＧＰＩＯ）バス、高度マイクロコントローラバスアーキテクチャ（ＡＭＢＡ）バス、または別の好適なバス、あるいはこれらの２つ以上の組合せを含むことができる。
【００３３】
特定の実施形態において、モバイルデバイス１００は、入力デバイスとしてのタッチパッドまたはタッチスクリーン１１２を含むことができる。タッチパッドは、ユーザのタッチ式入力を検出する表面を含む入力デバイスである。同様に、タッチスクリーンは、ユーザのタッチ入力の存在および位置を検出することができる電子的なビジュアル表示面である。タッチスクリーン１１２は、シングルタッチスクリーン、デュアルタッチスクリーン、またはマルチタッチスクリーンであってよい。いわゆるデュアルタッチまたはマルチタッチ入力デバイスは、２本または３本指のタッチなどの、２つ以上のタッチ入力の存在、位置、および動きを識別することができるデバイスを指す。１つまたは複数のタッチ式入力デバイスを組み込むシステムは、ユーザからのタッチ入力またはニアタッチ入力について、１つまたは複数のタッチ感応表面をモニタすることができる。１つまたは複数のそのようなユーザ入力が生じるとき、システムは、接触の別個のエリアを判定し、たとえば、幾何学的な特徴および配置（たとえば、位置または動き）を介して、タッチ入力またはニアタッチ入力の性質を識別することができる。
【００３４】
システムはまた、入力が、さまざまなタッチイベントまたはタッチジェスチャ（たとえば、タップ、ドラッグ、スワイプ、ピンチ、またはフリック）に対応するかどうかを判定することができる。これらのタッチイベントは、モバイルデバイス１００によって取られることになる一定のアクションに各々対応してよい。たとえば、上へのフリックは、タッチスクリーン１１２を介して表示されるアプリケーション内で上向きにスクロールするアクションに対応することができ、下へのフリックは、タッチスクリーン１１２を介して表示されるアプリケーション内で下向きにスクロールするアクションに対応することができる。ユーザはまた、ユーザのタッチジェスチャを介して伝達される意図を有することがある。たとえば、ユーザは、フリックのジェスチャが、タッチスクリーン１１２を介して表示されるアプリケーション内でスクロールすることになるのを知っていることがある。ユーザのジェスチャの速度は、たとえば、タッチスクリーン１１２によって表示されるアプリケーションのグラフィカルユーザインターフェース内のアニメーションに関連付けられた速度に対する、ユーザの意図を指し示すことができる。ユーザは、素早くフリックして、モバイルデバイス１００による対応するアクションが、アプリケーション内で素早くスクロールするように意図することができる。ユーザはまた、ゆっくりフリックして、モバイルデバイス１００による対応するアクションが、アプリケーション内でゆっくりスクロールするように意図することができる。
【００３５】
１つまたは複数のタッチ式入力デバイスを有するシステムによるタッチイベントの認識、たとえば、ユーザによる１つまたは複数のタッチ入力を識別し、対応するタッチイベントを判定することは、ハードウェア、ソフトウェア、またはファームウェア（もしくはデバイスドライバ）の組合せによって実装されてよい。１つまたは複数のライブラリが、モバイルデバイス１００上で稼働する１つまたは複数のアプリケーションによって使用されて、タッチイベントを認識することができる。たとえば、モバイルデバイス１００は、タッチ入力を検出するために、１つまたは複数のタッチ式入力デバイスと通信する１つまたは複数のデバイスドライバを（たとえば、コンピューティングプラットフォーム２０２の一部として）含むことができる。モバイルデバイス１００は、タッチイベントまたはタッチジェスチャ（たとえば、タップ、ドラッグ、スワイプ、ピンチ、またはフリック）としてデバイスドライバによって検出されたタッチ入力を認識するためのタッチイベントモジュール（たとえば、コンピュータコード）または論理を収容する、タッチジェスチャライブラリを含むことができる。モバイルデバイス１００上で稼働する１つまたは複数のアプリケーションは、タッチジェスチャライブラリにおけるタッチイベントモジュールにリスナーとしてサブスクライブすることによって、タッチイベントまたはタッチジェスチャを検出し、処理する、またはタッチイベントまたはタッチジェスチャに応答することができる。
【００３６】
ユーザは、タッチスクリーン１１２の表面上でタッチジェスチャ（たとえば、上にフリックする）を行うことができる。デバイスドライバおよびタッチジェスチャライブラリと組み合わされたタッチスクリーン１１２は、モバイルデバイス１００（たとえば、コントローラ２０４）が、タッチスクリーン１１２の表面上でのユーザのタッチジェスチャ入力のタッチ軌道（たとえば、一連のデータ点）に基づいて、タッチジェスチャを判定するのを可能にすることができる。図３Ａは、モバイルデバイス１００のタッチスクリーン１１２の表面上でユーザによって行われた例示的なタッチジェスチャの跡を図示する。図３Ａの例において、ユーザは、タッチスクリーン１１２の表面上で上向きのフリックを行う。ユーザによって（たとえば、指を用いて）行われたフリックジェスチャは、タッチスクリーン１１２上の点３０５で始まり、タッチスクリーン１１２上の点３１５で終わる。その開始点と終止点とを含むフリックジェスチャを、図３Ａの破線ｘ軸およびｙ軸によって指し示された、タッチスクリーン１１２の表面上の点の２次元座標系内に位置付けることができる。
【００３７】
特定の実施形態において、モバイルデバイス１００のユーザは、タッチスクリーン１１２によって表示されたアプリケーションのグラフィカルユーザインターフェースにおいて構造化ドキュメントを見ることができる。ウェブページなどの構造化ドキュメントは、たとえば、ページレイアウト情報（たとえば、フレーム）、スクリプト、テキストなどのページコンテンツ（たとえば、ＡＳＣＩＩまたはＨＴＭＬ）、メディアデータ（たとえば、画像、ビデオクリップ、またはアニメーション）、および実行可能なコードオブジェクト（たとえばブラウザウィンドウまたはフレーム内で実行可能なゲーム）を含む、多数のコンテンツオブジェクトを含むことができる。構造化ドキュメントは、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張可能なマークアップ言語（ＸＭＬ）、拡張可能なハイパーテキストマークアップ言語（ＸＨＴＭＬ）、ＪａｖａＳｃｒｉｐｔ、ＷｅｂＧＬ、ＣＳＳアニメーションおよびトランジションを含むカスケーディングスタイルシート（ＣＳＳ）、Ｊａｖａ、またはグラフィカルユーザインターフェースを有するアプリケーションを稼働するモバイルデバイス１００のプロセッサにネイティブなコードなどの、言語および技術を用いて実装されてよい。構造化ドキュメントは、それ自体が、多数の構造化ドキュメントおよびコンテンツへの参照を含むことができる。たとえば、ウェブページは、ユニフォームリソースロケーション（ＵＲＬ）またはスクリプトコード（たとえば、ＪａｖａＳｃｒｉｐｔ、ＰＨＰ、またはＡＪＡＸ）を組み込むことによって、１つまたは複数のインライン参照を含むことができ、それにより、ユーザイベント（たとえば、マウスクリックまたはタッチイベント）に応答して、グラフィカルユーザインターフェースにおいてウェブページを表示しているアプリケーションに、ＵＲＬおよびスクリプトコードによって指定されたコンテンツを動的に取り出させる。レイアウトエンジン（またはウェブブラウザエンジン）は、グラフィカルユーザインターフェースにおいて構造化ドキュメントをレンダリングし、表示するためのソフトウェアコンポーネントまたはライブラリである。たとえば、Ｇｏｏｇｌｅ社のＣｈｒｏｍｅウェブブラウザ、およびＡｐｐｌｅ社のＳａｆａｒｉウェブブラウザは、ＷｅｂＫｉｔソフトウェアを使用して、表示のためにウェブページをレンダリングする。ＷｅｂＫｉｔは、レイアウトエンジンＷｅｂＣｏｒｅ、および（ＪａｖａＳｃｒｉｐｔコードを解釈し、実行するための）ＪａｖａＳｃｒｉｐｔエンジンＪａｖａＳｃｒｉｐｔＣｏｒｅを含む。コンピューティングデバイス（たとえば、モバイルデバイス１００）によってホストされるアプリケーションは、レイアウトエンジンへのアプリケーションプログラミングインターフェース（ＡＰＩ）を介して、モジュールをレイアウトエンジンに組み込むことによって、表示のために構造化ドキュメントをレンダリングするために、レイアウトエンジンを利用することができる。
【００３８】
特定の実施形態において、ユーザが現在、グラフィカルユーザインターフェース内で見ている構造化ドキュメントの１つまたは複数の領域は、「ビューポート」として知られている。一実施形態において、レンダリングまたは表示することが、スクローリングフレームレート、利用可能な処理リソース、または利用可能なメモリリソースに基づいて、ビューポートのサイズを判定することができる。ユーザがアプリケーション（たとえば、ウェブブラウザ）のグラフィカルユーザインターフェースにおいて、大量のコンテンツ（たとえば、テキストデータまたはメディアデータなどのコンテンツオブジェクト）による構造化ドキュメントを見るとき、アプリケーションは、グラフィカルユーザインターフェースのビューポート内のコンテンツのみをレンダリングし、表示することができる。ユーザがグラフィカルユーザインターフェースにおいて構造化ドキュメントを上にスクロールする、または下にスクロールするにつれ、アプリケーションは、ビューポート内の構造化ドキュメントの追加的なコンテンツを取り出し、レンダリングし、表示することができる。（たとえば、構造化ドキュメントにおける）コンテンツオブジェクトの集合は、一連のものとして配置されてよい。この一連のものは、コンテンツオブジェクトの有限の集合、またはコンテンツオブジェクトの潜在的に無限の集合であってよく（たとえば、潜在的には無限の数のコンテンツオブジェクトがサーバから取り出され得る）、この一連のものは、任意の好適なやり方で順序付けされてよい。特定の実施形態において、この一連のコンテンツオブジェクトを（たとえば、サーバから）取り出す、またはタッチスクリーン上に表示されたグラフィカルユーザインターフェースのビューポートに、オンデマンド式に表示することができる。特定の実施形態において、たとえば、ページの高さに関係なく、構造化ドキュメント内の任意の方向に（たとえば、垂直に、水平に、対角線状に、など）スクロールすることが（潜在的には無限に）可能であってよい。たとえば、ビューポートは、構造化ドキュメント内のどこにでも（たとえば、コンテンツオブジェクトの潜在的には無限の集合またはリスト内のどこにでも）結び付けられてよく、スクローリングは、構造化ドキュメントにおける任意の２点の間で行われてよい。例として、構造化ドキュメントは、発生順により順序付けられ、一連のものとして配置されたコンテンツオブジェクトを含むことができる。ユーザが構造化ドキュメント内で垂直に上にスクロールする場合、ビューポートは、より古いコンテンツオブジェクトを連続的に表示することができ、ユーザが構造化ドキュメント内で垂直に下にスクロールする場合、ビューポートは、より新しいコンテンツオブジェクトを連続的に表示することができる。加えて、ユーザが構造化ドキュメント内で上にスクロールする、または下にスクロールするにつれ、アプリケーションは、サーバからコンテンツオブジェクトを取り出す（かつ、ビューポート内に表示する）ことができる。アプリケーションは、たとえば、新しく取り出されたコンテンツオブジェクトを、スクロールポジションによって示された一定のポジションで、構造化ドキュメントにおける一連のコンテンツオブジェクトの中に挿入することができる。例として、新しく取り出されたコンテンツオブジェクトは、スクロールポジション０で、構造化ドキュメントの中に置かれてよい。この例において、この一連のコンテンツオブジェクトにおける他のコンテンツオブジェクトは、（たとえば、新しく取り出されたコンテンツオブジェクトの数だけインクリメントされて）新しいスクロールポジションを与えられてよく、構造化ドキュメントのスクロール範囲を、一連のコンテンツオブジェクトでのすべてのコンテンツオブジェクトのスクロールポジション（たとえば、０から５０）を含むように調整することができる。ビューポートのスクロールポジションもまた、同じ組のコンテンツオブジェクトを表示し続けるために、（たとえば、新しく取り出されたコンテンツオブジェクトの数だけインクリメントされて）調整され得る。別の例として、新しく取り出されたコンテンツオブジェクトは、一連のコンテンツオブジェクトにおける最後のコンテンツオブジェクト（たとえば、スクロールポジション０）を超えた負のスクロールポジションの中（たとえば、−１で始まり、たとえば、−２、−３、などと続く）に置かれてもよく、構造化ドキュメントのスクロール範囲は、新しく取り出されたコンテンツオブジェクトおよび一連のコンテンツオブジェクトにおける他のコンテンツオブジェクト（たとえば、−５０から５０まで）を含むように調整されてもよい。一連のコンテンツオブジェクトにおける他のコンテンツオブジェクトのポジションは、この例では調整される必要はなく、したがって、ビューポートのポジションもまた調整される必要がない。特定の実施形態において、ユーザは、一連のコンテンツオブジェクトのコンテンツオブジェクトをスクロールすることができる。例として、ユーザは、一連のコンテンツオブジェクトに沿って前方または後方に動かすように、タッチスクリーンにわたって自分の指をスワイプすることができる。たとえば、一連のコンテンツオブジェクトに沿って前方にスクロールするために、ユーザは、タッチスクリーン上で、左に向けて、または上向きの動きで、自分の指をスワイプすることができる。逆に、一連のコンテンツオブジェクトに沿って後方にスクロールするために、ユーザは、タッチスクリーン上で、右に向けて、または下向きの動きで、自分の指をスワイプすることができる。
【００３９】
上で議論したように、特定の実施形態において、任意の所与の時間に、コンテンツオブジェクトの集合（たとえば、一連のコンテンツオブジェクト）の一部のみを、スクリーン（たとえば、タッチスクリーン１１２）上のグラフィカルユーザインターフェースのビューポートに表示することができ、スクリーン上に現在表示されていないコンテンツオブジェクトを見るために、ユーザは、一連のコンテンツオブジェクトをスクロールすることができる。たとえば、ユーザは、マウスまたはポインティングデバイスを使用して、グラフィカルユーザインターフェースのスクロールバーを、上にドラッグする、または下にドラッグすることができる。別の例として、ユーザは、グラフィカルユーザインターフェースを表示するタッチスクリーン上でスワイプするジェスチャを使用することができる。一連のコンテンツオブジェクトの１例である電子書籍は、一連のページを含むことができ、ユーザは、これらのページをスクロールすることができる。特定の時間には、書籍のいくつかのページのみが、スクリーン上でユーザに表示されてよい。一連のコンテンツオブジェクトの別の例として、アルバムが一連の画像を含むことができ、ユーザは、これらの画像をスクロールすることができる。特定の時間には、アルバムのいくつかの画像のみが、スクリーン上でユーザに表示されてよい。（たとえば、一連のコンテンツオブジェクトにおける）これらのコンテンツオブジェクトの各々は、コンテンツオブジェクトのエリアを画定する境界を有することができる。この境界は、たとえば、コンテンツオブジェクトを収容する構造化ドキュメントを実装する言語（たとえば、Ｊａｖａｓｃｒｉｐｔ）によって指定されてよい。例として、書籍のページ、またはアルバムの画像は、（たとえば、タッチスクリーン１１２上に表示されたアプリケーションのグラフィカルユーザインターフェース内で）２次元のエリアを画定する境界を有することができる。図３Ｂは、ウェブページなどの例示的な構造化ドキュメント３２５を示す。構造化ドキュメント３２５は、複数のコンテンツオブジェクト３３５を含むことができるが、図３Ｂの例では、コンテンツオブジェクトの一部のみが、コンピューティングデバイス、たとえば、モバイルデバイス１００によってホストされるアプリケーションのグラフィカルユーザインターフェースのビューポート３４５内に表示されている。図３Ｂの例はまた、コンテンツオブジェクト３３５がビューポート３４５のサイズよりも小さくてもよいことを示している。図３Ｂの例には示されていないが、本開示では、構造化ドキュメント３２５が、ビューポート３４５よりも大きい、小さい、またはビューポート３４５と同じサイズであってよいことを企図している。加えて、図３Ｂの例は、垂直に配置された一連のコンテンツオブジェクトを有する構造化ドキュメントを示しているが、本開示は、コンテンツオブジェクトの水平配置またはタイル状配置を含む、コンテンツオブジェクトの任意の好適な配置を企図している。
【００４０】
特定の実施形態において、構造化ドキュメント（またはグラフィカルユーザインターフェースによって表示された他のアイテム）は、表示を基準としてスクロール軸によって画定された２次元のエリアまたは領域内で、スクロール可能であってよい。たとえば、図３Ａに示すように、スクロール軸は、タッチスクリーン１１２の表示に対して画定される、（「Ｘ」とラベル付けされた）水平軸、および（「Ｙ」とラベル付けされた）垂直軸であってよく、ユーザは、水平スクロール軸および垂直スクロール軸によって画定された２次元のエリアまたは領域内の任意の方向（たとえば、対角線状に、または非直線的に）スクロールすることができる。たとえば、タッチスクリーン１１２の表示が、回転可能または、別のやり方で変化可能な場合、表示に対して画定されるスクロール軸もまた変化することができる。図３Ｂに示すように、１つまたは複数のコンテンツオブジェクト３３５の全部または一部分が、ビューポート３４５内で見えてよい。（たとえば、上向きに、下向きに、左もしくは右に、またはタッチスクリーン１１２の表面上で任意の他の方向にスワイプするなどのタッチジェスチャを使用することにより）スクロールすることによって、ビューポートの中の１つまたは複数のコンテンツオブジェクトがビューから外れ、隣接するコンテンツオブジェクト（たとえば、全体のコンテンツオブジェクトまたはコンテンツオブジェクトの部分）を、同時かつシームレスに、ビューの中へとスクロールすることができる。特定の実施形態において、ビューポートは、一度に１つのみのコンテンツオブジェクト３３５を表示することができ、ユーザがスクロールすると、ユーザは、コンテンツオブジェクトを別個にページ付けし、これは、しばしばページ付けスクローリングと呼ばれる。たとえば、ユーザがスクロールすると、ビューポートの中の１つのコンテンツオブジェクトがビューから外れてよく、（たとえば、水平に、垂直に、または対角線状に隣接する）隣接するコンテンツオブジェクトを、同時にビューの中へとスクロールすることができる。隣接するコンテンツオブジェクト３３５の所定量（たとえば、隣接するコンテンツオブジェクトの境界によって画定される５０％）がビューポートに移動すると、隣接するコンテンツオブジェクト３３５は、自動的に所定の場所に「はめ込まれ」てビューポートに表示される唯一のコンテンツオブジェクトとなることができる。図３Ｂに示した実施形態を含むさらに他の実施形態において、ユーザは、コンテンツオブジェクトを自由にスクロールさせることができる。たとえば、ビューポートは、多数のコンテンツオブジェクトまたはコンテンツオブジェクト３３５の部分を表示することがあり、ユーザがスクロールすると、スクローリングは、１つまたは複数のコンテンツオブジェクト３３５の境界を連続的にまたいでもよい（たとえば、コンテンツオブジェクトの境界の有無に関係なく、境界におけるスクロール挙動を変化させずに、または一旦境界を超えると所定の場所に「はめ込んで」、スクロールしてもよい）。たとえば、ビューポート３４５が１つまたは複数のコンテンツオブジェクト３３５またはコンテンツオブジェクト３３５の部分を収容できるようなやり方で、スクローリングを停止点まで動かすことができる。さらに他の実施形態において、ページ付けスクローリングと自由スクローリングとの組合せが使用されてもよい。例として、ビューポート３４５が単一のコンテンツオブジェクト３３５を表示する場合、ユーザは、コンテンツオブジェクト３３５内で自由にスクロールさせることができ、一旦ユーザがコンテンツオブジェクトの境界に達すると、別のコンテンツオブジェクト（たとえば、隣接するコンテンツオブジェクト）が今度はビューポートに入るように、スクローリングが、ページ付けスクローリングに切り替わることができる。この時点で、スクローリングは再度、現在表示されているコンテンツオブジェクトの境界内で自由スクローリングになっていてよい。
【００４１】
特定の実施形態において、ユーザのタッチジェスチャの速度が、アプリケーションのグラフィカルユーザインターフェースを介して表示された構造化ドキュメント（または他のコンテンツ）内でのスクロール挙動に影響することがある。たとえば、ユーザのタッチジェスチャ入力のベクトルまたは軌跡（またはそのスピード）を使用して、ユーザが望むのは、隣接するコンテンツオブジェクトをブラウズすることか、または構造化ドキュメント内のさらに離れたコンテンツオブジェクトをブラウズすることかを突き止めることができる。たとえば、ユーザがアルバムの一連の写真をスクロールするためにスワイプしている場合、ユーザのタッチジェスチャの速度が、スクローリングを隣接する写真まで進めるか（たとえば、速度が比較的低い場合）、またはスクローリングを多数の写真進めるか（たとえば、速度が比較的高い場合）どうかを判定することができる。例として、ユーザが比較的短い時間量で、比較的大きい距離をスワイプした場合、タッチジェスチャの速度が比較的高く、スクロールすることによって多数のコンテンツオブジェクトを進めると判定されてよい。加えて、ユーザのジェスチャの速度を使用して、スクローリングが、ページ付けスクローリング（たとえば、速度が比較的低い場合）か、または連続したスクローリングもしくは自由スクローリング（たとえば、速度が比較的高い場合）かを、判定することもまたできる。さらに他の実施形態において、ユーザが所与の時間期間内に一定の数を超えるタッチジェスチャ（たとえば、２秒以内に２度を超えるスワイプ）を行った場合、構造化ドキュメント内のスクローリングのスピードは、たとえば、倍数因子によって、その時間期間内の各追加的なスワイプと共に増加してよい。たとえば、２秒以内の３度目のスワイプは、２度目のスワイプのスクロールスピードよりも１．２倍速い（たとえば、レイアウトエンジンによって動かされるとき）スクロールスピードを有することができる。加えて、２秒以内の４度目のスワイプは、２度目のスワイプのスクロールスピードよりも１．４倍速いスクロールスピードを有することができる。特定の実施形態において、スクローリングは、構造化ドキュメント内でのナビゲーションの間に、任意の点で、休止または一時停止されてもよい。たとえば、タッチスクリーン１１２にわたって指をスワイプすることによってページ間でスクロールするユーザは、スワイプする動きを中断し、自分の指を所定の場所に保持することによって、スクローリングを中断し、所定の場所に表示を「フリーズ」させることができる。加えて、ユーザは、進行中のスクロールの間に、スクローリングを中断し、反対の方向にスワイプすることによって、スクロール方向を切り替えることができる。
【００４２】
特定の実施形態において、スクロールするためのユーザのタッチジェスチャを使用して、スクローリングにおいてクランプ挙動を関与させるどうかを判定することができる。たとえば、ユーザが、ドキュメント内で上にスクロールしようとしたものの、完全に垂直ではなく、クランプなしでスクロールジェスチャ（たとえば、スワイプ）を行った場合、ドキュメントは、垂直型ではなく、対角線型にスクロールされることがある。特定の実施形態において、ユーザの意図とよりよく一致させるために、もっぱら垂直であるように（または同様に、もっぱら水平であるように）、スクロール挙動を「クランプする」ことが望ましいことがある。図３Ａの例では、タッチスクリーン１１２上で垂直にスクロールするためのユーザのタッチジェスチャ軌跡が示されている。図３Ｃは、同じタッチジェスチャ軌跡を示す。図３Ｃにおける中心の星形は、タッチジェスチャ軌跡の開始点３０５を示し、軌跡の終止点は、終止点３１５によって示されている。上で論じたように、ユーザがもっぱら垂直にスクロールするように望むことがあったとしても、ユーザのタッチジェスチャ軌跡は、純粋に垂直ではない。スクロール挙動をクランプすることは、ユーザのタッチジェスチャ軌跡に基づいて行われてよい。タッチスクリーン１１２を、任意の好適な数の領域（たとえば、図３Ｃの８つの領域３１０〜３８０）に分割することができる。加えて、領域は、サイズまたは角度スパンにおいて均等であってもよく、あるいは、サイズまたは角度スパンにおいて均等でなくてもよい。これらの領域は、タッチジェスチャの開始点および表示のスクロール軸に対して画定されてよい。たとえば、領域は、タッチスクリーン１１２の表示を基準として、垂直（たとえば、「Ｙ」）または水平（たとえば、「Ｘ」）のスクロール軸から測定された、１つまたは複数の角度によって各々画定されてよい。図３Ｃにおいて、タッチスクリーン表示の領域３３０は、水平スクロール軸より上２２．５度と、開始点３０５を通過して水平スクロール軸より下２２．５度との間にある、タッチスクリーン上のすべての点を含むように画定されてよい。加えて、タッチスクリーン表示の領域３１０は、水平スクロール軸より上６７．５度と、水平スクロール軸より上１１２．５度との間にある、タッチスクリーン上のすべての点を含むように画定されてよい。図３Ｃの例において、領域３１０および３５０は、垂直スクロール軸に対応し、領域３３０および３７０は、水平スクロール軸に対応する。領域３２０、３４０、３６０、および３８０は、どちらのスクロール軸にも対応しない。図３Ｃの円３００は、開始点３０５からの所定の長さを示す。特定の実施形態において、対象となる領域は、（上で説明したように）角度によって画定されるだけでなく、円３００内にも入らなければならない。したがって、この例では、対象となる領域は円３００の扇形となる。図３Ｃの例は、均等なサイズにされた角度スパンによって画定された８つの領域を示しているが、領域は、開始点３０５に対して任意の好適なやり方で画定され得ることに留意されたい。特定の実施形態において、ユーザのタッチジェスチャの軌跡の少なくとも一部に対応する（またはそれを収容する）タッチスクリーン１１２の領域（または複数の領域）が判定される。図３Ｃの例において、領域３１０が、スクロールするためのユーザのタッチジェスチャの軌跡を完全に収容している。領域３１０は垂直スクロール軸に対応するので、スクロール挙動は、垂直に上にスクロールするようにのみ（たとえば、垂直「Ｙ」スクロール軸に直線的かつ平行に）「クランプされて」よい。同様に、領域３５０が、スクロールするためのユーザのタッチジェスチャの軌跡のすべてまたは一部を収容した場合、スクロール挙動は、垂直に下にスクロールするようにのみクランプされてよい。特定の実施形態において、ユーザのタッチジェスチャ軌跡の垂直成分のみが、垂直にクランプされるスクロール挙動の作成において使用される。領域３３０または３７０が、スクロールするためのユーザのタッチジェスチャの軌跡のすべてまたは一部を収容した場合、スクロール挙動は、水平に（右または左へのどちらかにそれぞれ）スクロールするようにのみクランプされてよい。特定の実施形態において、ユーザのタッチジェスチャ軌跡の水平成分のみが、水平にクランプされるスクロール挙動の作成において使用される。最後に、ユーザのタッチジェスチャの軌跡が、領域３２０、３４０、３６０、または３８０内に入る場合、スクロール挙動は、どちらのスクロール軸にもクランプされなくてよく、たとえば、構造化ドキュメント内で自由なスクロールであってよい。
【００４３】
特定の実施形態において、（たとえば、垂直に下向きにスクロールするための第１のタッチジェスチャに基づいて）一旦クランピングが始まると、スクローリングにおけるクランプ挙動は、所定の時間量（たとえば、１秒）の間持続してよい。したがって、たとえば、ユーザが、クランプタイマーが終わる前（たとえば、１秒間が終了する前）に下向きにスクロールするための第２のタッチジェスチャを行い、しかしこの第２のジェスチャ軌跡が（第２の開始点に対して判定された）領域３４０に入る場合、スクローリングは、クランプタイマーの期限まで垂直に下向きにクランプされ続けてよい。この例において、（領域３４０に入る）第２のジェスチャ軌跡の垂直成分を使用して、垂直にクランプされるスクロール挙動を作成することができる。別の例として、（たとえば、垂直に下向きにスクロールするための第１のタッチジェスチャに基づいて）垂直クランピングが始まった後で、ユーザが、クランプタイマーが終わる前に水平にスクロールするための第２のタッチジェスチャを行い、かつこの第２のジェスチャ軌跡が（第２の開始点に対して判定された）領域３３０に入る場合、スクローリングは、クランプタイマーの期限まで垂直に下向きにクランプされ続けてよい。この例において、（領域３３０に入る）第２のジェスチャ軌跡の垂直成分を使用して、垂直にクランプされるスクロール挙動を作成することができる。さらに別の例として、（たとえば、垂直に下向きにスクロールするための第１のタッチジェスチャに基づいて）垂直クランピングが始まった後で、ユーザが、クランプタイマーが終わる前に垂直にスクロールするための第２のタッチジェスチャを行い、かつこの第２のジェスチャ軌跡が（第２の開始点に対して判定された）領域３１０に入る場合、スクローリングは、垂直にクランプされ続けてよいが、代わりに、クランプタイマーの期限まで垂直に上向きにクランプされ得る。この例において、（領域３１０に入る）第２のジェスチャ軌跡の垂直成分を使用して、垂直に上向きにクランプされるスクロール挙動を作成することができる。これらの例において、クランピングは、領域ごとではなく、軸ごとに行われる。上の例は、（下向きまたは上向きのいずれかの）垂直クランピングを示しているが、（たとえば、左または右へのいずれかの）水平クランプ挙動もまた、一旦始まると、所定の時間量の間持続することができることが理解されるだろう。クランプタイマーの期限後に、クランプ挙動を再度始めるかどうかを判定するために、スクロールするための任意の新しいタッチジェスチャを評価することができる。クランプタイマーの期限に加えて、ユーザが新しいジェスチャを開始せずに、所定の時間量の間、タッチスクリーン１１２をおさえる（たとえば、指またはスタイラスをその上に維持する）場合、クランプ挙動は終わってよい。それまでのユーザジェスチャからのアクションまたは挙動全部が終結した（たとえば、それまでのジェスチャについての動きが完全に止んでいる）場合にもまた、クランプ挙動は終わってよい。
【００４４】
特定の実施形態において、（たとえば、Ｊａｖａｓｃｒｉｐｔの）スクロールライブラリのユーザは、スクロール挙動が、たとえば、グラフィカルユーザインターフェース内でどのようにユーザ体験にマップするかを指定することができる。例として、ビューポート３４５の中の要素が回転または並進するが、スクローリングは生じないように、典型的なスクロールアクション（たとえば、上向きのスワイプ、またはスクロールバーの上へのボタンを押すこと）を再構成することができる。同様に、スクロールバーを使用して、たとえば、画像彩度または画像色調を含む、グラフィカルユーザインターフェースを介して見られる、いくつかの異なるプロパティのうちのいずれかを制御することができる。
【００４５】
図４Ａは、スクロール挙動をクランプするための例示的な方法を示す。ステップ４１０で、コンピューティングデバイス（たとえば、モバイルデバイス１００）が、コンピューティングデバイスのタッチスクリーン（たとえば、タッチスクリーン１１２）上に表示されたグラフィカルユーザインターフェース（ＧＵＩ）内でスクロールするためのユーザ入力を受信する。ユーザ入力は、タッチスクリーン上でのタッチジェスチャを含み、タッチジェスチャは、タッチスクリーン上での開始点と１つまたは複数の他の点（たとえば、終止点およびその中間にある点）とを有する軌跡を含む。ステップ４２０で、コンピューティングデバイスは、開始点に対して画定されるタッチスクリーンの複数の領域を判定する。複数の領域のうちの第１の領域は、第１のスクロール軸（たとえば、水平軸）に対応し、複数の領域のうちの第２の領域は、第１のスクロール軸に対して直角をなす第２のスクロール軸（たとえば、垂直軸）に対応する。ステップ４３０で、軌跡が第１の領域に対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第１のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールする。ステップ４４０で、軌跡が第２の領域に対応するならば、コンピューティングデバイスは、前記ユーザ入力に従って第２のスクロール軸に平行かつ直線的にＧＵＩ内でスクロールする。特定の実施形態は、適切な場合、図４Ａの方法の１つまたは複数のステップを繰り返すことができる。本開示は、特定の順序で生じるように図４Ａの方法の特定のステップを説明し、示しているが、本開示は、任意の好適な順序で生じる図４Ａの方法の任意の好適なステップを企図している。さらに、本開示は、図４Ａの方法の特定のステップを遂行する特定のコンポーネント、デバイス、またはシステムを説明し、示しているが、本開示は、図４Ａの方法の任意の好適なステップを遂行する任意の好適なコンポーネント、デバイス、またはシステムの任意の好適な組合せを企図している。
【００４６】
図４Ｂは、コンテンツオブジェクトの境界から独立してスクロールするための例示的な方法を示す。ステップ４１５で、コンピューティングデバイス（たとえば、モバイルデバイス１００）は、ユーザに表示するためにコンテンツを提供し、コンテンツ（たとえば、構造化ドキュメント）は、各々が２次元のエリアを画定する境界を有する複数のコンテンツオブジェクトを含む。ステップ４２５で、コンピューティングデバイスは、コンテンツ内でユーザがスクロールするための、（たとえば、タッチスクリーン１１２を基準としてスクロール軸に対して画定される）２次元のスクロール領域を判定する。２次元のスクロール領域は、コンテンツオブジェクトの２次元のエリアから独立している。ステップ４３５で、コンピューティングデバイスは、境界のうちの１つまたは複数にまたがる２次元の１つまたは両方においてコンテンツ内でスクロールするためのユーザ入力を受信する。ステップ４４５で、コンピューティングデバイスは、前記ユーザ入力に従ってコンテンツ内でスクロールする。このスクローリングは、複数コンテンツオブジェクト境界にまたがる連続的なものである。特定の実施形態は、適切な場合、図４Ｂの方法の１つまたは複数のステップを繰り返すことができる。本開示は、特定の順序で生じるように図４Ｂの方法の特定のステップを説明し、示しているが、本開示は、任意の好適な順序で生じる図４Ｂの方法の任意の好適なステップを企図している。さらに、本開示は、図４Ｂの方法の特定のステップを遂行する特定のコンポーネント、デバイス、またはシステムを説明し、示しているが、本開示は、図４Ｂの方法の任意の好適なステップを遂行する任意の好適なコンポーネント、デバイス、またはシステムの任意の好適な組合せを企図している。
【００４７】
図５は、例示的なコンピュータシステム５００を示す。特定の実施形態において、１つまたは複数のコンピュータシステム５００が、本明細書で説明された、または示された１つまたは複数の方法の１つまたは複数のステップを行う。特定の実施形態において、１つまたは複数のコンピュータシステム５００は、本明細書で説明された、または示された機能性を提供する。特定の実施形態において、１つまたは複数のコンピュータシステム５００上で稼働するソフトウェアが、本明細書で説明された、または示された１つまたは複数の方法の１つまたは複数のステップを行う、あるいは、本明細書で説明された、または示された機能性を提供する。特定の実施形態は、１つまたは複数のコンピュータシステム５００の１つまたは複数の部分を含む。本明細書において、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含することができる。さらに、コンピュータシステムへの言及は、適切な場合、１つまたは複数のコンピュータシステムを包含することができる。
【００４８】
本開示は、任意の好適な数のコンピュータシステム５００を企図している。本開示は、任意の好適な物理的形態を取るコンピュータシステム５００を企図している。限定としてではなく例として、コンピュータシステム５００は、埋め込み型コンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（たとえば、コンピュータオンモジュール（ＣＯＭ）またはシステムオンモジュール（ＳＯＭ）など）、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、モバイル電話機、携帯情報端末（ＰＤＡ）、サーバ、タブレットコンピュータシステム、またはこれらのうちの２つ以上の組合せであってよい。適切な場合、コンピュータシステム５００は、ユニットである、もしくは分散した、多数の位置にわたる、多数のマシンにわたる、多数のデータセンタにわたる、または、１つもしくは複数のネットワークにおいて１つもしくは複数のクラウドコンポーネントを含むことができるクラウドに常駐する、１つまたは複数のコンピュータシステム５００を含むことができる。適切な場合、１つまたは複数のコンピュータシステム５００は、実質的な空間的または時間的限定なしに、本明細書で説明された、または示された１つまたは複数の方法の１つまたは複数のステップを行うことができる。限定としてではなく例として、１つまたは複数のコンピュータシステム５００は、リアルタイムで、またはバッチモードで、本明細書で説明された、または示された１つまたは複数の方法の１つまたは複数のステップを行うことができる。１つまたは複数のコンピュータシステム５００は、適切な場合、異なる時間に、または異なる位置で、本明細書で説明された、または示された１つまたは複数の方法の１つまたは複数のステップを行うことができる。
【００４９】
特定の実施形態において、コンピュータシステム５００は、プロセッサ５０２と、メモリ５０４と、ストレージ５０６と、入力／出力（Ｉ／Ｏ）インターフェース５０８と、通信インターフェース５１０と、バス５１２とを含む。本開示は、特定の配置において特定の数の特定のコンポーネントを有する特定のコンピュータシステムを説明し、示しているが、本開示は、任意の好適な配置において任意の好適な数の任意の好適なコンポーネントを有する任意の好適なコンピュータシステムを企図している。
【００５０】
特定の実施形態において、プロセッサ５０２は、コンピュータプログラムを構成する命令などの、命令を実行するためのハードウェアを含む。限定としてではなく例として、命令を実行するために、プロセッサ５０２は、内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６から命令を取り出し（またはフェッチし）、命令を復号し、実行し、次いで、１つまたは複数の結果を、内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６に書き込むことができる。特定の実施形態において、プロセッサ５０２は、データ、命令、またはアドレスのための、１つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ５０２を企図している。限定としてではなく例として、プロセッサ５０２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータキャッシュ、および１つまたは複数のトランスレーションルックアサイドバッファ（ＴＬＢ）を含むことができる。命令キャッシュにおける命令は、メモリ５０４またはストレージ５０６における命令の複製であってよく、命令キャッシュは、プロセッサ５０２によるそれらの命令の取り出しをスピードアップすることができる。データキャッシュにおけるデータは、それに演算するためにプロセッサ５０２で実行する命令のための、メモリ５０４もしくはストレージ５０６におけるデータの複製、プロセッサ５０２で実行する後続の命令によるアクセスのための、またはメモリ５０４もしくはストレージ５０６に書き込むための、プロセッサ５０２で実行されたそれまでの命令の結果、または他の好適なデータであってよい。データキャッシュは、プロセッサ５０２による読み込み動作または書き込み動作をスピードアップすることができる。ＴＬＢは、プロセッサ５０２のための仮想アドレス変換をスピードアップすることができる。特定の実施形態において、プロセッサ５０２は、データ、命令、またはアドレスのための、１つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ５０２を企図している。適切な場合、プロセッサ５０２は、１つまたは複数の算術論理演算ユニット（ＡＬＵ）を含むか、マルチコアプロセッサであるか、あるいは、１つまたは複数のプロセッサ５０２を含むことができる。本開示は、特定のプロセッサを説明し、示しているが、本開示は、任意の好適なプロセッサを企図している。
【００５１】
特定の実施形態において、メモリ５０４は、プロセッサ５０２が実行するための命令、またはプロセッサ５０２が演算するためのデータを記憶するためのメインメモリを含む。限定としてではなく例として、コンピュータシステム５００は、ストレージ５０６または別のソース（たとえば、別のコンピュータシステム５００など）からの命令を、メモリ５０４にロードすることができる。プロセッサ５０２が次いで、メモリ５０４からの命令を、内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ５０２は、内部レジスタ、または内部キャッシュから命令を取り出し、それを復号することができる。命令の実行の間、または命令の実行後、プロセッサ５０２は、（中間結果または最終結果であってよい）１つまたは複数の結果を、内部レジスタまたは内部キャッシュに書き込むことができる。プロセッサ５０２は次いで、それらの結果の１つまたは複数を、メモリ５０４に書き込むことができる。特定の実施形態において、プロセッサ５０２は、（ストレージ５０６または他の場合とは対照的に）１つもしくは複数の内部レジスタ、または内部キャッシュ、またはメモリ５０４における命令のみを実行し、（ストレージ５０６または他の場合とは対照的に）１つもしくは複数の内部レジスタ、または内部キャッシュ、またはメモリ５０４におけるデータのみに演算する。１つまたは複数のメモリバス（各々がアドレスバスおよびデータバスを含んでよい）が、プロセッサ５０２をメモリ５０４に結合することができる。バス５１２は、以下で論じるように、１つまたは複数のメモリバスを含むことができる。特定の実施形態において、１つまたは複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ５０２とメモリ５０４との間に常駐し、プロセッサ５０２によって要求されるメモリ５０４へのアクセスを促進する。特定の実施形態において、メモリ５０４は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合、揮発性メモリであってよい。適切な場合、このＲＡＭは、動的ＲＡＭ（ＤＲＡＭ）または静的ＲＡＭ（ＳＲＡＭ）であってよい。さらに、適切な場合、このＲＡＭは、シングルポートＲＡＭまたはマルチポートＲＡＭであってよい。本開示は、任意の好適なＲＡＭを企図している。メモリ５０４は、適切な場合、１つまたは複数のメモリ５０４を含むことができる。本開示は、特定のメモリを説明し、示しているが、本開示は、任意の好適なメモリを企図している。
【００５２】
特定の実施形態において、ストレージ５０６は、データまたは命令のためのマスストレージを含む。限定としてではなく例として、ストレージ５０６は、ハードディスクドライブ（ＨＤＤ）、フロッピーディスクドライブ、フラッシュメモリ、光学ディスク、磁気光学ディスク、磁気テープ、またはユニバーサルシリアルバス（ＵＳＢ）ドライブ、あるいはこれらの２つ以上の組合せを含むことができる。ストレージ５０６は、適切な場合、リムーバブル、または非リムーバブル（すなわち固定式）媒体を含むことができる。ストレージ５０６は、適切な場合、コンピュータシステム５００の内部にあっても、外部にあってもよい。特定の実施形態において、ストレージ５０６は、不揮発性のソリッドステートメモリであってよい。特定の実施形態において、ストレージ５０６は、読み出し専用メモリ（ＲＯＭ）を含む。適切な場合、このＲＯＭは、マスクプログラムされたＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能なＰＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なＰＲＯＭ（ＥＥＰＲＯＭ）、電気的に変更可能なＲＯＭ（ＥＡＲＯＭ）、またはフラッシュメモリ、あるいはこれらの２つ以上の組合せであってよい。本開示は、任意の好適な物理的形態を取るマスストレージ５０６を企図している。ストレージ５０６は、適切な場合、プロセッサ５０２とストレージ５０６との間の通信を促進する、１つまたは複数のストレージ制御ユニットを含むことができる。適切な場合、ストレージ５０６は、１つまたは複数のストレージ５０６を含むことができる。本開示は、特定のストレージを説明し、示しているが、本開示は、任意の好適なストレージを企図している。
【００５３】
特定の実施形態において、Ｉ／Ｏインターフェース５０８は、コンピュータシステム５００と１つまたは複数のＩ／Ｏデバイスとの間で通信するための１つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム５００は、適切な場合、これらのＩ／Ｏデバイスのうちの１つまたは複数を含むことができる。これらのＩ／Ｏデバイスのうちの１つまたは複数は、人とコンピュータシステム５００との間の通信を可能にすることができる。限定としてではなく例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、静止カメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なＩ／Ｏデバイス、またはこれらのうちの２つ以上の組合せを含むことができる。Ｉ／Ｏデバイスは、１つまたは複数のセンサを含むことができる。本開示は、任意の好適なＩ／Ｏデバイス、およびＩ／Ｏデバイスのための任意の好適なＩ／Ｏインターフェース５０８を企図している。適切な場合、Ｉ／Ｏインターフェース５０８は、プロセッサ５０２がこれらのＩ／Ｏデバイスのうちの１つまたは複数を駆動するのを可能にする、１つまたは複数のデバイスまたはソフトウェアドライバを含むことができる。Ｉ／Ｏインターフェース５０８は、適切な場合、１つまたは複数のＩ／Ｏインターフェース５０８を含むことができる。本開示は、特定のＩ／Ｏインターフェースを説明し、示しているが、本開示は、任意の好適なＩ／Ｏインターフェースを企図している。
【００５４】
特定の実施形態において、通信インターフェース５１０は、コンピュータシステム５００と、１つもしくは複数の他のコンピュータシステム５００または１つもしくは複数のネットワークとの間で通信する（たとえば、パケットベースの通信など）ために１つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく例として、通信インターフェース５１０は、イーサネットもしくは他のワイヤベースのネットワークと通信するためのネットワークインターフェースコントローラ（ＮＩＣ）もしくはネットワークアダプタ、または、ＷＩ−ＦＩネットワークなどのワイヤレスネットワークと通信するためのワイヤレスＮＩＣ（ＷＮＩＣ）もしくはワイヤレスアダプタを含むことができる。本開示は、任意の好適なネットワーク、およびそのネットワークのための任意の好適な通信インターフェース５１０を企図している。限定としてではなく例として、コンピュータシステム５００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはインターネットの１つまたは複数の部分、あるいはこれらのうちの２つ以上の組合せと通信することができる。これらのネットワークのうちの１つまたは複数の、１つまたは複数の部分は、ワイヤードであっても、ワイヤレスであってもよい。例として、コンピュータシステム５００は、ワイヤレスＰＡＮ（ＷＰＡＮ）（たとえば、ＢＬＵＥＴＯＯＴＨ  ＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー電話ネットワーク（たとえば、モバイル通信用グローバルシステム（ＧＳＭ）ネットワークなど）、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの２つ以上の組合せと通信することができる。コンピュータシステム５００は、適切な場合、これらのネットワークのうちのいずれかのための任意の好適な通信インターフェース５１０を含むことができる。通信インターフェース５１０は、適切な場合、１つまたは複数の通信インターフェース５１０を含むことができる。本開示は、特定の通信インターフェースを説明し、示しているが、本開示は、任意の好適な通信インターフェースを企図している。
【００５５】
特定の実施形態において、バス５１２は、コンピュータシステム５００のコンポーネント同士を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく例として、バス５１２は、アクセラレーテッドグラフィックポート（ＡＧＰ）もしくは他のグラフィックバス、拡張業界標準アーキテクチャ（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＴ）相互接続、業界標準アーキテクチャ（ＩＳＡ）バス、ＩＮＦＩＮＩＢＡＮＤ相互接続、ローピンカウント（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、周辺コンポーネント相互接続（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアル高度技術アタッチメント（ＳＡＴＡ）バス、ビデオ電子標準協会ローカル（ＶＬＢ）バス、または別の好適なバス、あるいはこれらのうちの２つ以上の組合せを含むことができる。バス５１２は、適切な場合、１つまたは複数のバス５１２を含むことができる。本開示は、特定のバスを説明し、示しているが、本開示は、任意の好適なバスまたは相互接続を企図している。
【００５６】
本明細書において、１つまたは複数のコンピュータ可読非一時的記録媒体は、適切な場合、１つまたは複数の半導体ベースの集積回路もしくは他の集積回路（ＩＣ）（たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは特定用途向けＩＣ（ＡＳＩＣ）など）、ハードディスクドライブ（ＨＤＤ）、ハイブリッドハードドライブ（ＨＨＤ）、光学ディスク、光学ディスクドライブ（ＯＤＤ）、磁気光学ディスク、磁気光学ドライブ、フロッピーディスケット、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタルカードもしくはドライブ、任意の他の好適なコンピュータ可読非一時的記録媒体、またはこれらのうちの２つ以上の任意の好適な組合せを含むことができる。コンピュータ可読非一時的記録媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであってよい。
【００５７】
本明細書において、「または（ｏｒ）」は、そうでないと明確に指し示されない、または文脈によってそうでないと指し示されない限り、包括的であって、排他的ではない。したがって、本明細書において、「ＡまたはＢ」は、そうでないと明確に指し示されない、または文脈によってそうでないと指し示されない限り、「Ａ、Ｂ、またはその両方」を意味する。さらに、「および（ａｎｄ）」は、そうでないと明確に指し示されない、または文脈によってそうでないと指し示されない限り、共同および個別の両方である。したがって、本明細書において、「ＡおよびＢ」は、そうでないと明確に指し示されない、または文脈によってそうでないと指し示されない限り、「共同的に、または個別的に、ＡおよびＢ」を意味する。
【００５８】
本開示の範囲は、当業者が把握するであろう、本明細書で説明または示された例示的な実施形態に対するすべての変更形態、置換形態、変形形態、改変形態、および修正形態を包含する。本開示の範囲は、本明細書で説明または示された例示的な実施形態に限定されない。さらに、本開示は、特定のコンポーネント、要素、機能、動作、またはステップを含むように、本明細書においてそれぞれの実施形態を説明し、示しているが、これらの実施形態のうちのいずれかが、当業者が把握するであろう、本明細書のどこかで説明された、または示されたコンポーネント、要素、機能、動作、またはステップのうちのいずれかの任意の組合せ、または並べ換えを含めばよい。その上、添付の特許請求の範囲において、特定の機能を行うように適応され、配置され、可能であり、構成され、可能にされ、動作可能であり、または動作する、装置、またはシステム、または装置もしくはシステムのコンポーネントへの言及は、それもしくはその特定の機能が作動していてもいなくても、オンにされていてもいなくても、またはロック解除されていてもいなくても、その装置、システム、またはコンポーネントがそのように適応され、配置され、可能であり、構成され、可能にされ、動作可能であり、動作する限り、その装置、システム、コンポーネントを包含する。
【図１】
0006584954.tif 000002
【図２】
0006584954.tif 000003
【図３Ａ】
0006584954.tif 000004
【図３Ｂ】
0006584954.tif 000005
【図３Ｃ】
0006584954.tif 000006
【図４Ａ】
0006584954.tif 000007
【図４Ｂ】
0006584954.tif 000008
【図５】
0006584954.tif 000009