(57)【要約】マシンで実施されるユーザインタフェース方法。当該方法は、１組の１人以上のユーザのマシンの複数の状態のためのショートカットの複数の組の識別子を含む、１組の１人以上のユーザについてのショートカットデータを記憶するステップであって、ショートカットについて各々記憶される識別子は、対応する記憶されたマシンコマンドを有する、ステップと；ユーザについてマシンの現在の状態を決定するステップと；ユーザから入力を受け取るステップと；入力がショートカットデータ内のショートカットについて記憶された識別子と一致するかどうかを判断するステップと；一致に応じて、記憶された識別子に対応する記憶されたデバイスコマンドを実行するステップと；１組の１人以上のユーザについて記憶されている履歴データを更新するステップと；更新された履歴データを用いてショートカットデータを更新するステップを含む。
2019508822.tif 000002
【特許請求の範囲】
【請求項１】
マシンで実施されるユーザインタフェース方法において：
１組の１人以上のユーザの前記マシンの複数の状態のためのショートカットの複数の組の識別子を含む、前記１組の１人以上のユーザについてのショートカットデータを記憶するステップであって、ショートカットについて各々記憶される識別子は、対応する記憶されたマシンコマンドを有する、ステップと；
ユーザについて前記マシンの現在の状態を決定するステップと；
前記ユーザから入力を受け取るステップと；
前記入力が前記ショートカットデータ内のショートカットについて記憶された識別子と一致するかどうかを判断するステップと；
前記の一致に応じて、前記記憶された識別子に対応する記憶されたデバイスコマンドを実行するステップと；
前記１組の１人以上のユーザについて記憶されている履歴データを更新するステップと；
前記更新された履歴データを用いて前記ショートカットデータを更新するステップと；
を具備する、方法。
【請求項２】
前記ユーザからの前記入力が記憶された識別子と一致しない場合、前記入力がコマンドであるかどうかを判断し、前記コマンドを実行し、前記１組の１人以上のユーザについて前記記憶されている履歴データを更新し、前記更新された履歴データを用いて前記ショートカットデータを更新するステップ、
含む、請求項１に記載の方法。
【請求項３】
前記マシンの前記現在の状態について、前記ショートカットの識別子を前記ユーザに出力するステップを含む、
請求項１又は２に記載の方法。
【請求項４】
前記ショートカットの識別子は、前記履歴データに依存する順序で出力される、
請求項３に記載の方法。
【請求項５】
前記記憶されたマシンコマンドは、前記マシンによって順次実行される複数のシーケンシャルコマンドを含む、
請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
前記１組の１人以上のユーザについての前記記憶されたショートカットデータ及び前記記憶されている履歴データを、前記１組の１人以上のユーザを含む複数の組の１人以上のユーザについてのショートカットデータ及び履歴データのリモートデータベースと同期するステップを含む、
請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
前記の同期において前記リモートデータベースから受け取られる履歴データは、前記１組の１人以上のユーザの嗜好を示すユーザ嗜好データを含み、前記ショートカットデータは前記ユーザ嗜好データを使用して更新される、
請求項６に記載の方法。
【請求項８】
前記マシンは、複数の組の１人以上のユーザによって使用されるマルチユーザマシンであり、前記ショートカットデータは、前記マシンの複数の組の１人以上のユーザについて記憶される、
請求項１乃至５のいずれか一項に記載の方法。
【請求項９】
前記１組のユーザについての前記記憶されたショートカットデータ及び前記記憶されている履歴データを、前記マシンの前記１組のユーザを含む複数の組のユーザについてのショートカットデータ及び履歴データのリモートデータベースと同期するステップを含む、
請求項８に記載の方法。
【請求項１０】
前記の同期において前記リモートデータベースから受け取られる履歴データは、前記複数の組のユーザの嗜好を示すユーザ嗜好データを含み、前記ショートカットデータは前記ユーザ嗜好データを使用して更新される、
請求項９に記載の方法。
【請求項１１】
前記ユーザからの前記入力は、表示されたテキスト入力フィールド内の１つ以上のテキスト文字を含み、前記ショートカットについて前記記憶された識別子は、複数のテキスト文字を含み、対応するコマンドは、前記複数のテキスト文字を含み、前記入力が前記ショートカットデータ内のショートカットについて記憶された識別子と一致するかどうかを判断するステップは、前記入力された１つ以上のテキスト文字を、前記記憶された識別子の前記複数のテキスト文字のうちの１つ以上と一致させることを含む、
請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
ユーザインタフェースを提供するためのマシンにおいて：
プログラムコードを格納するプログラムメモリと；
前記プログラムメモリに格納された前記プログラムコードを実行するためのプロセッサと；
を備え、前記プログラムコードは、
１組の１人以上のユーザの前記マシンの複数の状態のためのショートカットの複数の組の識別子を含む、前記１組の１人以上のユーザについてのショートカットデータを記憶するよう、前記プロセッサを制御するためのコードであって、ショートカットについて各々記憶される識別子は、対応する記憶されたマシンコマンドを有する、前記のコードと；
ユーザについて前記マシンの現在の状態を決定するよう、前記プロセッサを制御するためのコードと；
前記ユーザから入力を受け取るよう、前記プロセッサを制御するためのコードと；
前記入力が前記ショートカットデータ内のショートカットについて記憶された識別子と一致するかどうかを判断するよう、前記プロセッサを制御するためのコードと；
前記の一致に応じて、前記記憶された識別子に対応する記憶されたデバイスコマンドを実行するよう、前記プロセッサを制御するためのコードと；
前記１組の１人以上のユーザについて記憶されている履歴データを更新するよう、前記プロセッサを制御するためのコードと；
前記更新された履歴データを用いて前記ショートカットデータを更新するよう、前記プロセッサを制御するためのコードと；
を具備する、マシン。
【請求項１３】
前記プロセッサを制御するためのコードは、前記ユーザからの前記入力が記憶された識別子と一致しない場合、前記入力がコマンドであるかどうかを判断し、前記コマンドを実行し、前記１組の１人以上のユーザについて前記記憶されている履歴データを更新し、前記更新された履歴データを用いて前記ショートカットデータを更新するよう、前記プロセッサを制御するためのコードを含む、
請求項１２に記載のマシン。
【請求項１４】
前記プロセッサを制御するためのコードは、前記マシンの前記現在の状態について、前記ショートカットの識別子を前記ユーザに出力するよう、前記プロセッサを制御するためのコードを含む、
請求項１２又は１３に記載のマシン。
【請求項１５】
前記プロセッサを制御するためのコードは、前記ショートカットの識別子を、前記履歴データに依存する順序で出力するよう、前記プロセッサを制御するためのコードを含む、
請求項１４に記載のマシン。
【請求項１６】
前記記憶されたマシンコマンドは、前記マシンによって順次実行される複数のシーケンシャルコマンドを含む、
請求項１２乃至１５のいずれか一項に記載のマシン。
【請求項１７】
前記プロセッサを制御するためのコードは、前記１組の１人以上のユーザについての前記記憶されたショートカットデータ及び前記記憶されている履歴データを、前記１組の１人以上のユーザを含む複数の組の１人以上のユーザについてのショートカットデータ及び履歴データのリモートデータベースと同期するよう、前記プロセッサを制御するためのコードを含む、
請求項１２乃至１６のいずれか一項に記載のマシン。
【請求項１８】
前記の同期において前記リモートデータベースから受け取られる履歴データは、前記１組の１人以上のユーザの嗜好を示すユーザ嗜好データを含み、前記プロセッサを制御するためのコードは、前記ユーザ嗜好データを使用して前記ショートカットデータを更新するよう、前記プロセッサを制御するためのコードを含む、
請求項１７に記載のマシン。
【請求項１９】
前記マシンは、複数の組の１人以上のユーザによって使用されるマルチユーザマシンであり、前記プロセッサを制御するためのコードは、前記マシンの複数の組の１人以上のユーザについて前記ショートカットデータを記憶するよう、前記プロセッサを制御するためのコードを含む、
請求項１２乃至１６のいずれか一項に記載のマシン。
【請求項２０】
前記プロセッサを制御するためのコードは、前記１組のユーザについての前記記憶されたショートカットデータ及び前記記憶されている履歴データを、前記マシンの前記１組のユーザを含む複数の組のユーザについてのショートカットデータ及び履歴データのリモートデータベースと同期するよう、前記プロセッサを制御するためのコードを含む、
請求項１９に記載のマシン。
【請求項２１】
前記の同期において前記リモートデータベースから受け取られる履歴データは、前記複数の組のユーザの嗜好を示すユーザ嗜好データを含み、前記プロセッサを制御するためのコードは、前記ユーザ嗜好データを使用して前記ショートカットデータを更新するよう、前記プロセッサを制御するためのコードを含む、
請求項２０に記載のマシン。
【請求項２２】
前記ユーザからの前記入力は、表示されたテキスト入力フィールド内の１つ以上のテキスト文字を含み、前記ショートカットについて前記記憶された識別子は、複数のテキスト文字を含み、対応するコマンドは、前記複数のテキスト文字を含み、前記入力が前記ショートカットデータ内のショートカットについて記憶された識別子と一致するかどうかを判断するよう前記プロセッサを制御するためのコードは、前記入力された１つ以上のテキスト文字を、前記記憶された識別子の前記複数のテキスト文字のうちの１つ以上と一致させるよう、前記プロセッサを制御するためのコードを含む、
請求項１２乃至２１のいずれかに記載のマシン。
【請求項２３】
請求項１乃至１１のいずれか一項に記載の方法を実行するよう、プロセッサによる実行のためのプロセッサ実行可能コードを担持するキャリア媒体。
【請求項２４】
請求項１乃至１１のいずれか一項に記載の方法を実行するよう、プロセッサによる実行のためのプロセッサ実行可能コードを記憶する非一時記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインタフェース方法及び装置に関し、一態様では、コマンドを実行して、ある状態から別の状態へマシンを遷移させるために少なくとも１人のユーザが入力を行うことを可能にする、ユーザインタフェース方法及びマシンに関する。
【背景技術】
【０００２】
コンピュータ、メディアデバイス及びモバイルデバイスを含む電子処理デバイスは、人々の生活のほとんど全ての側面において一般的に使用されている。ユーザがこれらのデバイスとやり取りすることができる容易性は、かなりの研究と商業的努力の対象である。電子マシンのユーザインタフェースをユーザにとってより容易にすることは非常に重要なことであり、ユーザの目では無用なものでも、非常に強力で有用な装置の使用を難しくする可能性がある。
【０００３】
例えばウェブブラウジングの分野では、ウェブページにアクセスするために、ユーザが、HTTPリクエストを含むテキスト文字をタイプする必要があることがある。HTTPの構文は、多くのユーザにとって直感的ではない。テキストの入力はエラーの対象となる可能性があり、したがって、ユーザは、正しいウェブページに正確にアクセスすることができないという不満を経験する可能性がある。この問題は、予測テキスト提案の使用により、例えばユーザによって入力される文字に対応する潜在的なHTTPアドレスをBing（Microsoft  Corporationの登録商標）が検索することを可能にすること等により、部分的に対処されている。しかしながら、この機能は、可能性の高い結果を検索するために文字をサーバに送信する必要がある。検索は、入力された文字を使用することを除いて、ユーザが見つけたいと思うコンテキストでは実行されない。
【発明の概要】
【０００４】
一態様は、マシンで実施されるユーザインタフェース方法を提供する。当該方法は、少なくとも１人のユーザのマシンの複数の状態のためのショートカットの複数の組の識別子を含む、少なくとも１人のユーザのショートカットデータを記憶するステップであって、ショートカットについて各々記憶される識別子が、対応する記憶されたマシンコマンドを有するステップと；ユーザのマシンの現在の状態を決定するステップと；ユーザから入力を受け取るステップと；入力がショートカットデータ内のショートカットについて記憶された識別子と一致するかどうかを判断するステップと；一致に応じて、記憶された識別子に対応する記憶されたデバイスコマンドを実行するステップと；少なくとも１人のユーザについて記憶されている履歴データを更新するステップと；更新された履歴データを用いてショートカットデータを更新するステップとを含む。
【０００５】
本発明の別の態様は、ユーザインタフェースを提供するためのマシンを提供する。当該マシンは、プログラムコードを格納するプログラムメモリと、プログラムメモリに格納されたプログラムコードを実行するためのプロセッサとを備え、プログラムコードは：少なくとも１人のユーザのマシンの複数の状態のためのショートカットの複数の組の識別子を含む、少なくとも１人のユーザのショートカットデータを記憶し、ショートカットについて各々記憶される識別子が、対応する記憶されたマシンコマンドを有するよう、プロセッサを制御するためのコードと；ユーザのマシンの現在の状態を決定するよう、プロセッサを制御するためのコードと；ユーザから入力を受け取るよう、プロセッサを制御するためのコードと；入力がショートカットデータ内のショートカットについて記憶された識別子と一致するかどうかを判断するよう、プロセッサを制御するためのコードと；一致に応じて、記憶された識別子に対応する記憶されたデバイスコマンドを実行するよう、プロセッサを制御するためのコードと；少なくとも１人のユーザについて記憶されている履歴データを更新するよう、プロセッサを制御するためのコードと；更新された履歴データを用いてショートカットデータを更新するよう、プロセッサを制御するためのコードを含む。
【図面の簡単な説明】
【０００６】
【図１】一実施形態によるマシンとしてのユーザデバイスを示す概略図である。
【０００７】
【図２】一実施形態によるプロセスを示すフロー図である。
【０００８】
【図３】一実施形態による、履歴データ及びショートカットデータをリモートサーバと同期するマシンとしてのユーザデバイスを示す概略図である。
【０００９】
【図４】一実施形態によるマルチユーザマシンとしてのサーバを示す概略図である。
【００１０】
【図５ａ】一実施形態によるユーザインタフェース出力の図である。
【図５ｂ】一実施形態によるユーザインタフェース出力の図である。
【００１１】
【図６】一実施形態による、履歴データ及びショートカットデータをリモートサーバと同期するマルチユーザマシンとしてのサーバを示す概略図である。
【００１２】
【図７】一実施形態で使用するための基本的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【００１３】
以下の詳細な説明では、本明細書の一部を形成し、本発明の主題が実施され得る特定の実施形態を例示として示す添付図面を参照する。これらの実施形態は、当業者がこれらの実施形態を実施することができるように十分に詳細に記載されており、本主題の範囲から逸脱することなく、他の実施形態を利用してもよく、構造的、論理的及び電気的変更を行ってもよいことが理解されよう。本主題のそのような実施形態は、単に便宜性のために、「発明」という用語によって個々に及び／又は集合的に称されることがあり、実際に１つより多くのものが開示されている場合に、本出願の範囲をいずれかの単一の発明又は発明的概念に自発的に限定するようには意図していない。
【００１４】
したがって、以下の説明は、限定的な意味で解釈されるべきではなく、本発明に係る主題の範囲は、添付の特許請求の範囲によって規定される。
【００１５】
以下の実施形態では、同様の構成要素は同様の参照番号でラベル付けされる。
【００１６】
以下の実施形態では、データは、少なくとも１つのデータベースに格納されているものとして説明される。データベースという用語は、これらに限定されないが、リレーショナルデータベース（例えばOracleデータベース、mySQLデータベース等）、非リレーショナルデータベース（例えばNoSQLデータベース等）、インメモリデータベース、CSV（comma  separated  values）ファイル、拡張マークアップ言語（XML）ファイル、TeXT（TXT）ファイル、フラットファイル、スプレッドシートファイル及び／又はデータストレージのために広く使用されるか専用のフォーマットのようなスプレッドシートを含め、データを格納及び／又は編成するための任意のデータ構造（及び／又は複数のデータ構造の組合せ）を包含するように意図される。データベースは、典型的に１つ以上のデータストア内に格納される。したがって、本明細書（例えば本出願の説明及び／又は図面）で参照される各データベースは、１つ以上のデータストア内に格納されているものとして理解されよう。「ファイルシステム」は、データをどのように格納し、かつ／又は取り出すかを制御することができる（例えばFAT、NTFS、光ディスク等のようなディスクファイルシステム、フラッシュファイルシステム、テープファイルシステム、データベースファイルシステム、トランザクションファイルシステム、ネットワークファイルシステム等）。簡潔性のために、本開示は、本明細書ではデータベースに関して説明される。しかしながら、本明細書で開示されるシステム及び技術は、ファイルシステム又はデータベースとファイルシステムの組合せで実装されてもよい。
【００１７】
以下の実施形態では、データストアという用語は、任意のコンピュータ読取可能記憶媒体及び／又はデバイス（あるいはデータ記憶媒体及び／又はデバイスの集合）を包含するように意図される。データストアの例には、光ディスク（例えばCD-ROM、DVD-ROM等）、磁気ディスク（例えばハードディスク、フロッピーディスク等）、メモリ回路（例えば半導体ドライブ、ランダムアクセスメモリ（RAM）等）及び／又は同等物が含まれるが、これらに限定されない。データストアの別の例は、リモートからアクセス可能であり、必要に応じて迅速にプロビジョニングされ得る物理データストレージデバイスの集合（一般的に「クラウド」ストレージと呼ばれる）を含むホスト型ストレージ環境である。
【００１８】
本明細書で説明される機能又はアルゴリズムは、一実施形態では、ハードウェア、ソフトウェア又はソフトウェアとハードウェアの組合せで実装される。ソフトウェアは、メモリ又は他のタイプのストレージデバイスのようなコンピュータ読取可能媒体に格納されるコンピュータ実行可能命令を備える。さらに、説明される機能は、ソフトウェア、ハードウェア、ファームウェア又はそれらの任意の組合せであり得るモジュールに対応することもある。複数の機能が、必要に応じて１つ以上のモジュールで実施され、説明される実施形態は単なる例に過ぎない。ソフトウェアは、パーソナルコンピュータ、サーバ、ルータ又はネットワーク相互接続デバイスを含めデータ処理能力を有する他のデバイスのようなシステム上で動作する、デジタル信号プロセッサ、ASIC、マイクロプロセッサ又は他のタイプのプロセッサにおいて実行される。
【００１９】
一部の実施形態は、モジュールの間を通して通信される関連する制御信号及びデータ信号を伴う、２つ以上の特定の相互接続されたハードウェアモジュール又はデバイスにおいて、あるいは特定用途向け集積回路の一部として機能を実装する。したがって、例示的なプロセスフローは、ソフトウェア、ファームウェア及びハードウェア実装に適用可能である。
【００２０】
一般化した実施形態は、少なくとも１人のユーザ、言い換えると、１組の１以上のユーザについて、記憶されたショートカットデータを使用してユーザインタフェースを提供するためのマシン及び方法を提供する。ショートカットデータは、１組の１以上のユーザのマシンの対応する複数の状態について、あるいは１組の１以上のユーザの複数の組の状態について、ショートカットの複数の組の識別子を含む。ショートカットについて各々記憶される識別子は、対応する記憶されたマシンコマンドを有する。ユーザによって使用されるマシンの現在の状態を決定し、ユーザから入力を受け取ると、入力が、ショートカットデータ内のショートカットについて記憶された識別子と一致するかどうかを判断する。一致する場合、記憶された識別子に対応する記憶されたデバイスコマンドを実行し、１組の１以上のユーザについて記憶されている履歴データを更新し、更新された履歴データを用いてショートカットデータを更新する。
【００２１】
したがって、マシンは、履歴データを記憶し、更新されたショートカットデータの決定に使用するために固有のマシン状態に関するユーザ入力について学習し、１組の１以上のユーザが次のマシン状態に遷移させるために現在のマシン状態で入力したいと思う可能性があるコマンドのための適切なショートカットを記憶することができる。したがって、ショートカットは、ユーザ及びコンテキスト固有である。
【００２２】
ユーザインタフェース方法を用いて、同じマシン状態を使用する１組のユーザ、例えば同じアプリケーション、プログラム又はプロセスを使用する１組のユーザについて入力を学習することができる。１組のユーザは、単一のユーザを含め、任意の数とすることができる。ユーザインタフェース方法を、オフィスや会社等の１群のユーザによって使用することができる。
【００２３】
本発明は、マシンにコマンドを入力するユーザ入力を受け取る必要がある任意の電子マシンに適用可能である。コンピュータのようなプログラマブルマシンでは、ユーザインタフェースは、キーボード、ポインタデバイス、タッチスクリーン入力、オーディオ又はスピーチ入力、あるいはジェスチャ入力等からの任意の形式のユーザ入力をモニタすることができる。入力は、物体を走査又は撮影することによって、あるいは画像ソースからネットワークを介して画像をダウンロードすることによって取得される画像を含むこともできる。入力が画像である場合、識別子に対する入力の照合（matching）は、入力画像を、コマンド又はコマンドシーケンスに関連付けられる記憶された画像と照合することを含むことができる。その照合（match）は、厳密なものとすることも、類似性のレベルに基づくものとすることもできる。
【００２４】
ユーザインタフェースは、オペレーティングシステムによって操作される任意のアプリケーションへの入力、あるいはオペレーティングシステム自体への入力さえもモニタすることができるという点で、ソフトウェア非依存（software  agnostic）とすることができる。したがって、マシンは、１又は複数ユーザにマルチモーダルインタフェースを提供することができる。
【００２５】
あるマシンがユーザ入力から又は他のユーザ挙動からユーザの挙動について学習する場合、そのマシンは、ユーザが、次のマシン状態に遷移させるために現在のマシン状態で入力したいと思う可能性がある、適切なコマンドを記憶するショートカットデータを決定することができる。この記憶されたショートカットデータを、同じユーザによって使用される同じマシン状態を有する別のマシンに転送することができ、これにより、ショートカットデータは、そのマシンをより使いやすくするために利用可能である。
【００２６】
一実施形態では、ユーザからの入力が記憶された識別子と一致しない場合、入力がコマンドであるかどうかを判断し、入力がコマンドである場合、コマンドが実行され、ユーザについて記憶された履歴データが更新され、更新された履歴データを用いてショートカットデータが更新される。このようにして、１組のユーザの以前の入力から学習された履歴データが存在しない初期状態では、ユーザの入力はいずれのショートカット識別子とも一致することができず、したがって、マシンは履歴データを更新して学習プロセスを開始することができる。履歴データを更新するこの学習プロセスは、ユーザがショートカット識別子ではない入力を入力するたびに継続することができる。履歴データを更新し、更新された履歴データを用いて、１組のユーザのためにより良好な提案ショートカットを作成することができる。
【００２７】
ショートカット識別子は、マシンの現在の状態について１組のユーザに出力されてもよいし、出力されなくてもよい。ショートカット識別子を、例えばディスプレイ上に視覚的に、オーディオ出力によって可聴的に又は振動出力として出力することができる。ショートカット識別子の出力は、１組のユーザがコマンドを入力するためにショートカットの選択を行うことを手伝う。これは、ユーザがショートカットを思い出す必要性を回避する。しかしながら、ユーザは、ショートカット識別子の出力が、現在の状態のマシンからの出力からの妨害や気を散らすことになると感じる可能性がある。例えばボタン又はアイコンとしての選択可能なショートカット識別子の表示は、ユーザにより、マシンの現在の状態について表示を見ている間に視覚的に気を散らしているとみなされる可能性がある。
【００２８】
ショートカット識別子は、履歴データに依存する順序で出力されてもよい。これは、ユーザが、より頻繁に使用するショートカットをより容易に選択することを可能にする。例えば一実施形態では、ショートカット識別子が表示されるかどうかにかかわらず、履歴データは、１組のユーザによって他よりもより頻繁に又はより最近入力されたコマンドの決定、したがって、ショートカットの決定を可能にし、その結果、これらを、より目立つように、あるいはリスト又は順序付けられたシーケンスの最も高い位置に表示することができる。オーディオ出力の実施形態では、より頻繁に使用される又はより最近使用されたコマンドのショートカット識別子を最初に可聴出力して、ユーザのセットがショートカット識別子のオーディオ選択／入力をより迅速に行うことを手伝うことができる。
【００２９】
記憶されたマシンコマンドは、単一のコマンド又はマシンによって順次実行される複数のシーケンシャルコマンドを含むことができる。シーケンシャルのコマンドの記憶を、履歴データからのユーザによるユーザ入力の繰返しパターンを学習することによって、ショートカットとして決定することができる。その後、このパターンを、単一のショートカット内のコマンドシーケンスとして記憶することができる。
【００３０】
一実施形態では、１組のユーザの記憶されたショートカットデータ及び記憶された履歴データを、その１組のユーザを含む複数のユーザについてのショートカットデータ及び履歴データのリモートデータベースと同期することができる。したがって、この実施形態では、リモートデータベースが、複数のユーザについてのショートカットデータ及び履歴データを記憶することができ、このため、リモートに処理することができる。例えば一実施形態では、同期においてリモートデータベースから受け取られた履歴データは、１組のユーザの嗜好を示すユーザ嗜好データを含み、ショートカットデータは、ユーザ嗜好データを使用して更新される。ユーザ嗜好データを、ユーザから収集されるデータ、あるいは販売者ロイヤリティプログラムや販売者取引データのような多くのソースからユーザに関して収集されるデータから、集めることができる。ユーザの取引挙動に関するデータを処理して、ユーザの嗜好を決定することができる。
【００３１】
マシンは、単一のユーザマシン、スタンドアロンのマシン、あるいはサーバ等のマルチユーザマシンとすることができ、ショートカットデータを、マシンの単一の組のユーザの又は複数の組のユーザについて記憶することができる。複数の組のユーザの場合、複数の組の履歴データ及びショートカットデータを記憶する必要がある：すなわちユーザの組ごとに、１つの組を記憶する必要がある。一実施形態において、ユーザについての記憶されたショートカットデータ及び記憶された履歴データを、マシンのユーザを含む複数の組のユーザについてのショートカットデータ及び履歴データのリモートデータベースと同期することができる。したがって、この実施形態では、マルチユーザマシンが、ベンダ又は販売者の複数の顧客や複数の会社のように、多数の組のユーザについてのデータを記憶することができ、リモートデータベースは、複数の組のユーザについて（例えば複数のベンダ又は事業者について）履歴データ及びショートカットデータを記憶することができ、これにより、これらをリモートで処理することができる。例えば一実施形態では、同期化においてリモートデータベースから受け取られる履歴データは、ユーザの嗜好を示すユーザ嗜好データを含み、ショートカットデータは、ユーザ嗜好データを使用して更新される。ユーザ嗜好データを、１組のユーザから収集されるデータから、あるいは販売者ロイヤリティプログラムや販売者取引データのような多くのソースから１組のユーザに関して収集されるデータから、集めることができる。ユーザの取引挙動に関するデータを処理して、ユーザの嗜好を決定することができる。実施形態は、金銭や通貨等の金融商品の管理も含む。ユーザの支払い又は支出の嗜好又は習慣を学習して、ユーザが支払いを行うことを許可することのように、次のコンピュータ状態へのコンピュータ状態のショートカットを提供することができる。
【００３２】
一実施形態では、ユーザからの入力は、表示されたテキスト入力フィールド内の１つ以上のテキスト文字を含むことができ、ショートカットについて記憶される識別子は複数のテキスト文字を含むことができ、対応するコマンドは、その複数のテキスト文字を含むことができる。入力が、ショートカットデータ内のショートカットについて記憶された識別子と一致するかどうかを判断するために、入力された１つ以上のテキスト文字を、記憶された識別子の複数のテキスト文字のうちの１以上と照合する。
【００３３】
本発明のこの実施形態は、本発明をユーザインタフェース内のテキストフィールドに適用することを可能にする。ユーザがテキストフィールドに文字を入力すると、文字は、マシンの現在の状態及びユーザの個人入力履歴に基づいてコマンドに対して提案されるショートカットを出力するために、コマンドのテキスト形式のショートカット識別子と比較される。例えばユーザインタフェースがウェブページを表示するとき、ユーザの履歴は、以前にそのウェブページにあるときにユーザが特定の入力を行ったことを示し、したがって、ショートカットデータは、ユーザが行う可能性がより高い入力のために、ショートカット識別子でこれらの入力を反映する。
【００３４】
一実施形態では、本出願と同日に出願された、同一出願人及び発明者による「AN  ELECTRONIC  TRANSACTION  METHOD  AND  APPARATUS（電子取引方法及び装置）」という名称の同時係属中の出願（代理人整理番号11043PUSA）に開示される電子取引方法でユーザインタフェースを使用することができる。その出願の内容はこれによりその全体が本明細書に組み込まれる。
【００３５】
以下、図面を参照して具体的な実施形態について説明する。
【００３６】
第１実施形態を図１及び図２に関連して説明する。図１は、いずれのネットワークにも接続されていない１組の１以上のユーザにより使用するためのデバイス１００（スタンドアロンマシン）を図示している。ユーザのセットは、単一のユーザを含め、任意の数とすることができる。ユーザインタフェース方法は、１組のユーザのうちの１人が、１組のユーザのうちのいずれかの他のメンバと同じ方法でマシン状態のコマンドを入力したいと思うような、同じマシン状態を使用する、例えば同じアプリケーション、プログラム又はプロセスを使用するオフィスや会社等の１組のユーザによって使用されることが可能である。
【００３７】
デバイス１００は、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、パーソナルオーガナイザ、モバイルデバイス、スマートフォン、携帯電話、ビデオプレーヤ、テレビジョン、オーディオプレイヤ、マルチメディアデバイス、パーソナルデジタルアシスタント等のような任意のタイプのコンピューティング又は処理マシンを備えることができる。
【００３８】
プログラムコードストア７０からプログラムコード２１をロードし、ワーキング揮発性メモリ３０を使用してプログラムコード２１を実行するためにプロセッサ２０が提供される。プログラムコード２１は、本発明の一実施形態の機能を実行する。他のプログラムコードを、オペレーティングシステム及びアプリケーションの形でロードすることができ、ユーザが直接入力するか、あるいは一実施形態に係るコマンド用のショートカットを入力することにより入力するコマンドを受け取ることができる。
【００３９】
ユーザインタフェース５は、入力デバイス１０及び出力デバイス４０を含む。入力デバイスは、キーボード、タッチスクリーン、ポインタデバイス（マウス、トラックボール、トラックパッド又はペンデバイス等）、ユーザからの音声又はスピーチを認識する音声認識ハードウェア及び／又はソフトウェア、ジェスチャ認識入力ハードウェア及び／又はソフトウェア等のように、ユーザ入力を受け取る任意のハードウェア、ソフトウェア又はハードウェアとソフトウェアの組合せを備えることができる。出力デバイスは、ディスプレイ画面又はオーディオスピーカのように、ショートカット識別子を含む情報をユーザに出力する任意のハードウェア、ソフトウェア又はハードウェアとソフトウェアの組合せを備えることができる。したがって、ユーザインタフェース５は、プロセッサ２０からのユーザへの出力と、ユーザからプロセッサ２０への入力とを提供する。
【００４０】
デバイス１００には、データストア６０も提供され、ショートカットデータをショートカットデータベース６１に記憶し、履歴データを履歴データベース６２に記憶する。この実施形態では、ショートカットデータ及び履歴データはデータベースに記憶されるものとして説明されるが、データを任意の便利な形式又はデータ構造で記憶することができる。
【００４１】
１組の１以上のユーザの履歴データは、１組の１以上のユーザによって使用されるマシンの１組の状態の各々について、１組の１以上のユーザについての１組のデータを含む。マシンの各状態について、１組の１以上のユーザ入力コマンドを記憶して、直接入力又はユーザ選択（例えばインタフェース内のハイパーリンクのような表示された選択可能オプションをクリックすること）の結果として入力されるコマンドを記録する。このようにして、履歴データは、１以上のユーザの組ごとに、その組の１以上のユーザによって使用されるマシン状態ごとに、１組の入力コマンドを記録することができる。
【００４２】
一実施形態において、履歴データは、ユーザの嗜好を示すユーザ嗜好データも含むことができる。ユーザ入力を分析し、ユーザによって入力された、ユーザの嗜好を示し得る他のユーザデータを処理することから、ユーザ嗜好データを取得することができる。嗜好データを、記録されたユーザ入力履歴データとともに使用して、ショートカットデータに対する更新を決定することができる。
【００４３】
ショートカットデータは、各マシン状態について、ショートカット識別子と、マシンによって実行される１つ以上のコマンドを記憶する。２つ以上のコマンドが存在する場合、コマンドは順次実行されることになる。ショートカット識別子は、ユーザが簡単にショートカットを選択するために使用することができるタグ、例えば１、２、３、４．．．又はＡ、Ｂ、Ｃ．．．を備えることができる。このタグをショートカットに自動的に割り当てることができ、あるいはユーザがタグを選択することもできる。タグは、ユーザが何らかの形のテキスト文字列をタイプするのではなく、例えば２やＤといったタグを入力することによって簡単に入力を行うことを可能にする。ショートカットデータは、ショートカット識別子が、例えばアイコンや画像、ボタン等として選択用に表示されるときに、ユーザに表示するための情報を含むこともできる。この情報は、ユーザが、ショートカットとして選択に利用可能なコマンドを識別することを助けることができる。
【００４４】
あるいは、ショートカット識別子は、例えばウェブページをブラウザにロードするためのhttp入力コマンド、アプリケーションにロードされるかファイルシステム内で検索されるファイルの名前、あるいはオペレーティングシステムで実行されるアプリケーションの名前のように、ユーザによって入力として入力されるテキストコマンド文字列に対応するテキスト文字列を含むことができる。この例では、ユーザの入力の照合は、テキスト文字がユーザによってタイプされるにつれてテキスト文字を照合し、以前にタイプされたコマンドに基づいて、ユーザがタイプしようとしている潜在的なコマンドを提案することによって達成され得る。ユーザ入力テキストを、記憶されているショートカット識別子テキストとの部分一致ベースで照合することができるので、最初に、ユーザが選択を行うことができる多数の可能性のある一致を識別し、そして、ユーザが更なる文字を入力し、その結果、何らかの初期のショートカット識別子のテキストの一致がもはや一致しなくなり、ユーザ用のオプションとして削除されるにつれて、それらの可能性のある一致の数は減少する。これは予測テキストの一形態であるが、例えばユーザによって使用されるブラウザにより表示されるウェブページ、ユーザによって開かれたドキュメント、オペレーティングシステム内のドキュメント用に開かれた検索ウィンドウ、検索エンジン等のように、ユーザ及びマシンの現在の状態に固有であるという点で、ユーザ及びコンテキスト固有である。
【００４５】
本発明の実施形態では、マシン状態は、マシンのユーザによって現在インスタンス化（instantiate）されている任意のオペレーティング状態を含むことができる。プログラムされたデバイスでは、状態は、ウェブブラウザアプリケーションのウェブページ、ワードプロセッサアプリケーションのドキュメント、スプレッドシートアプリケーションのワークシート、電子メールの電子メール、オペレーティングシステムナビゲーション及び検索機能、あるいは任意の検索及び取り出しアプリケーションのような、コンピュータプログラムの動作における状態を含むことができる。
【００４６】
一実施形態の動作を、図２のフロー図を参照して説明する。
【００４７】
ステップＳ１０において、現在のマシン状態を決定する。例えばブラウザにおける現在のウェブページのオープン、ワードプロセッサにおける現在のドキュメントのオープン、電子メールアプリケーションにおける電子メールのオープン等を決定される。現在のマシン状態に基づいて、処理はステップＳ１１において、いずれかの記憶されている利用可能なショートカットがあるかどうかを判断する。一実施形態では、利用可能なショートカットは、最近作成又は使用されたショートカットのみを含むことができる。長期間使用されていないショートカットは、ユーザに関連しない可能性があり、したがって、時代遅れの古いショートカットをユーザに提示することを避けるために削除することができる。ステップＳ１１で利用可能と判断された利用可能なショートカットが存在する場合、ステップＳ１６において、これらのショートカットを、選択のためにユーザに対して出力すべきかどうかを判断する。（例えばユーザが利用可能なショートカットに慣れており、ユーザはそのようなショートカットを出力する、例えば表示する必要がないか、あるいは出力されることを望まないために）ユーザによってショートカットの出力が有効にされていないか無効にされている場合、処理はステップＳ１７に進み、ユーザからの入力を待つ。ステップＳ１６でショートカットが出力されるべきであると判断された場合、処理はステップＳ１５に進み、ユーザにショートカットオプションを出力する。例えばショートカットアイコン、ボタン又は画像をショートカット識別子及び任意選択で何らかのショートカット情報とともに表示して、ユーザがショートカット選択を行うことを助ける。次いで、処理はステップＳ１７に進み、ユーザからの入力を待つ。
【００４８】
ステップＳ１１で利用可能な最新のショートカットがないと判断された場合、ショートカット決定処理Ｓ３０が実行される。ショートカット決定処理Ｓ３０は、ステップＳ１２においてユーザの履歴データをルックアップし、ステップＳ１３において履歴データを使用して、現在のマシン状態についてユーザのショートカットを決定し、ステップＳ１４においてショートカットデータを記憶することを含む。記憶されたショートカットを、その後ステップＳ１５でユーザに出力する。例えばショートカットアイコン、ボタン又は画像を、ショートカット識別子及び任意選択で何らかのショートカット情報とともに表示して、ユーザがショートカット選択を行うことを助ける。次いで処理はステップＳ１７に進み、ユーザからの入力を待つ。
【００４９】
ステップＳ１７においてユーザからの入力を受け取ると、ステップＳ１８において、ユーザからの入力を使用して現在の状態についてショートカットをルックアップし、マシンによって実行すべき１つ以上のコマンドを決定する。ユーザからの入力は、例えばテキスト入力又は音声入力による、ショートカットオプションの選択についてのショートカット識別子の入力とすることができ、これにより選択は、現在のマシン状態についてのショートカット識別子との比較のためにユーザ入力に変換される。
【００５０】
ステップＳ１９において、ユーザからの入力がショートカットと一致するかどうかを判断する。１組の１以上のユーザが、前に現在のマシン状態で入力を行っていない場合、履歴データにはショートカットの形成に使用するための入力がなく、ステップＳ２３において、処理は、入力がコマンド入力であるか、あるいは単に、ドキュメントへのテキストの入力のように、マシンに別の状態への遷移を引き起こさない他の入力フィールドへの何らかの他の形式の入力であるかを判断する。例えばウェブフォームでは、サーバに送信されずにデータを入力することができるので、入力されたテキストデータはコマンドではない。サーバに送信されるとき、ウェブページが通常更新されることになるため、これはコマンドである。ステップＳ２３でユーザ入力がコマンドでないと判断された場合、処理はステップＳ１７に戻り、ユーザの入力を待つ。
【００５１】
ステップＳ２３において、コマンドが入力されたと判断された場合、処理はステップＳ２４に移り、コマンドを実行してマシンを次の状態に遷移させる。次いで、ステップＳ２１において、以前のマシン状態の履歴データが、次の状態に遷移するためのコマンドで更新される。ステップＳ２２において、更新された履歴データを使用して、更新されたショートカットを生成し、処理はステップＳ１０に戻り、現在のマシン状態を決定する。
【００５２】
ステップＳ１９で入力がショートカットと一致すると判断された場合、ステップＳ２０において、ショートカットのコマンドが実行されて、マシンを次の状態にする。次いで、ステップＳ２１において、次の状態に遷移するためのショートカットの選択により以前のマシン状態の履歴データが更新される。ステップＳ２２において、更新された履歴データを使用して、更新されたショートカットを生成し、処理はステップＳ１０に戻り、現在のマシン状態を決定する。
【００５３】
履歴データの更新において、ユーザによって新しいコマンドが入力されると、新しいショートカットを作成することができる。以前に作成されたショートカットをユーザが選択すると、ショートカットのユーザ選択をデータに記録して、ショートカットの関連性を高めることができ、ショートカットは、古いものではなく最近のものとして示される。以前に作成されたショートカットの選択を使用して１組の１以上のユーザへの出力のためにショートカットをランク付け又は順序付けることができ、これにより、最も関連性するショートカットが出力され、関連性に応じて、すなわち、どのくらい頻繁に選択され、どのくらい最近であるかに応じて順序付けされる。
【００５４】
ショートカット決定処理Ｓ３０は、図２では、利用可能な最新のショートカットが存在しないたびに実行されるものとして示されているが、一実施形態では、ショートカット決定処理Ｓ３０のステップを、１組の１以上のユーザのマシン状態ごとに、各マシン状態の履歴データを処理することにより個別又は「オフライン」プロセスで実行することができる。履歴データがユーザ嗜好データを含む場合、１組のユーザのうちのいずれのユーザもマシン状態から遷移するための入力を行わなかった場合であっても、一実施形態では、１以上のショートカットを、例えばマシンを使用するユーザの挙動又はユーザ入力パラメータから得られる、ユーザ嗜好データのみに基づいて決定することができる。
【００５５】
図３は、複数の組の１以上のユーザについてショートカット及び履歴データのリモートデータベースが提供される本発明の別の実施形態を示す。
【００５６】
この実施形態において、ユーザのデバイス１は、図１を参照して図示及び説明したコンポーネントを備える。ユーザのデバイス１は、図２のフロー図を参照して説明したのと同じ方法で動作する。加えて、ユーザのデバイス１は、インターネット８０のようなネットワークを介してユーザのデバイス１をリモートサーバシステム９０に接続するためのネットワークインタフェース５０を含む。サーバシステム９０は、グローバルショートカットデータベース９６及びグローバル履歴データベース９７が記憶されるデータストア９５に接続されるか、データストア９５を提供される。
【００５７】
グローバルショートカットデータベース９６は、ユーザのデバイス１の１組の１以上のユーザと、他のユーザのデバイスの他の複数の組のユーザとについてのショートカットを記憶する。同様に、グローバル履歴データベース９７は、ユーザのデバイス１の１組のユーザと、他のユーザのデバイスの複数の組のユーザとについての履歴を記憶する。データストア９５に記憶されたデータを、ユーザのデバイス内のデータストア６０に記憶されたデータと同期することができる。このように、一実施形態では、ユーザ嗜好データが履歴データに含まれる場合、データストア９５に記憶されたショートカット及び履歴は、ユーザの嗜好を反映することができ、ユーザのデバイス１上のデータストア６０に送信することができる。
【００５８】
図４は、一実施形態によるマルチユーザマシンとしてのサーバを備える別の実施形態を示す。
【００５９】
この実施形態において、サーバシステム９０は、インターネット８０のようなネットワークを介して、それぞれのウェブブラウザ２を操作するユーザのデバイス１へのアクセスを提供するウェブサーバ９２を含む。サーバシステム９０はまた、アプリケーションサーバ９１を実行し、グローバルショートカットデータベース９６及びグローバル履歴データベース９７を記憶しているデータストア９５にアクセスする。
【００６０】
この実施形態において、サーバシステム９０は、グローバルショートカットデータベース９６内のサーバシステム９０の状態を含むマシン状態についてのユーザ固有のデータセットにアクセスすることによって、ウェブサーバ９２にアクセスしている複数のユーザの各ユーザについて、図２のフロー図に従って動作する。
【００６１】
図５ａ及び図５ｂは、一実施形態による図４のサーバシステムのためのユーザインタフェース出力を示す図である。この実施形態では、ウェブサーバ９２は、各ユーザのデバイス１のブラウザ２にレンダリングされるウェブページを提供する。したがって、ユーザインタフェースは、ヘッダ領域４０１内にユニバーサルリソースロケータ（URL）テキスト入力フィールド４０２を含む、表示されたウェブページ４００を含む。図５ａに表示されるウェブページは、「Super  web  searcher」と呼ばれる検索エンジンウェブページを含み、ユーザがテキスト文字列を検索文字列として入力して、ウェブ検索を引き受けるコマンドの一部として送信することを可能にするよう、テキスト検索入力フィールド４０４が提供される。この実施形態では、ユーザは、テキスト文字列「http://spee」を、URLテキスト入力フィールド４０２又はテキスト検索入力フィールド４０４のいずれかに入力している（図５Ａでは双方とも表示されているが、実際にはユーザはフィールド４０２と４０４の一方のみにテキストを入力するであろう）。ユーザ入力テキストの結果として、ユーザ入力はショートカットのショートカット識別子に一致し、ショートカットアイコン、ウィンドウ、ドロップダウンリスト、ボタン又は画像４０３が表示される。表示されるショートカット４０３は下記を含む：
ショートカット識別子 コマンド
１                    Speedy  ShopウェブページのURL
２                    Speedway  trackウェブページのURL
３                    Speed  SaversウェブページのURL
【００６２】
この実施形態では、このウェブページ（マシン状態）において、ユーザはテキスト入力を含むユーザ入力のみを行っており、したがって、以前に入力されて履歴に記憶されているテキスト文字列の最初の文字を入力することによってショートカットを選択することができる。
【００６３】
ショートカット４０３は、該ショートカット４０３が選択された場合に入力されることになるコマンドに関する画像又は情報を表示し、ショートカットを使用して、ユーザが利用可能なコマンド入力オプションを識別することを助けることができる。この実施形態において、識別子は、短いラベル又はタグを備え、ショートカットの選択を、ポインタデバイス、ジェスチャ又はタッチスクリーンを使用してショートカット４０３の表示された位置を選択すること、キーボードを使用して１、２又は３を入力すること、あるいは音声認識を使用して１、２又は３を入力として発話すること、のいずれか１つによって行うことができる。
【００６４】
図５ｂは、図５ａのショートカットタグ１の使用選択の結果として表示されるウェブページ４００ａを図示している。
【００６５】
この実施形態において、ウェブページ４００ａは、電気製品のベンダ又は販売者である「Speedy  Shop」について表示されている。ウェブページは、カメラ、ラップトップ、テレビ、ラウドスピーカのような様々な製品タイプについてのウェブページを開くための従来のハイパーリンクを表示する。ヘッダ４０１には、URLテキストフィールド４０２及びショートカット４０３ａが提供される。この実施形態では、表示エリアの残りの部分を空けておき、ショートカットがウェブページ情報に重なることを防ぐために、ショートカット４０３ａはヘッダ領域４０１に表示される。
【００６６】
表示されるショートカット４０３ａは、下記を含む：
ショートカット識別子 コマンド
１                    ラップトップのウェブページへのURLリンク
２                    ユーザのバスケット内に特定のカメラがある場合
ユーザをベンダのチェックアウトに直接連れて行く
URL及びシーケンシャルコマンド
３                    スピーカーのウェブページへのURLリンク
【００６７】
この実施形態では、ユーザによる任意の入力テキストとは別に、ショートカットはタグによって識別されるとみることができる。このマシン状態において、ユーザは、ショートカットに記憶されたコマンドの選択を以前に行っており、したがって、タグを選択することによってショートカットを簡単に選択することができる。
【００６８】
図６は、一実施形態による、履歴データ及びショートカットデータをリモートサーバと同期させるマルチユーザマシンとしてのサーバを示す。この実施形態では、各ベンダシステム９０Ａ及び９０Ｂは、図４を参照して説明したサーバシステム９０を備えることができる。各ベンダサーバ９０Ａ及び９０Ｂは、図２のフロー図に実質的に説明されるように、各ユーザが、インターネット８０のようなネットワークを介して、それぞれのユーザのデバイス１のウェブブラウザ２を使用して、それぞれのベンダサーバ９０Ａ及び９０Ｂのウェブサーバ９２Ａ又は９２Ｂにアクセスするために動作する。各ベンダサーバシステム９０Ａ及び９０Ｂは、アプリケーションサーバ９１Ａ及び９１Ｂと、それぞれのベンダショートカットデータベース９６Ａ及び９６Ｂ並びにそれぞれのベンダ履歴データベース９７Ａ及び９７Ｂを記憶するデータストア９５Ａ及び９５Ｂとを含む。この実施形態では、データベース９６Ａ、９６Ｂ、９７Ａ及び９７Ｂは、ベンダのウェブサイトの複数のユーザについてのデータを記憶する。
【００６９】
第三者プロバイダサーバシステム１９０は、インターネット８０を介してベンダサーバシステム９０Ａ及び９０Ｂに接続される。第三者プロバイダサーバシステム１９０は、グローバルショートカットデータベース１９６及びグローバル履歴データベース１９７にアクセスするアプリケーションサーバ１９１を含む。グローバルデータベース１９６及び１９７は、複数のベンダサーバシステム９０Ａ及び９０Ｂの複数のユーザについてのデータを記憶する。したがって、図１の複数のユーザのデバイス１のデータを保持している図３の実施形態のデータストア９５と同様に、この実施形態では、データベース１９６及び１９７は、複数のベンダサーバシステム９０Ａ及び９０Ｂの複数の組のユーザについてのデータを保持する。
【００７０】
グローバルショートカットデータベース１９６は、ベンダサーバシステム９０Ａ及び９０Ｂを使用するユーザのデバイス１のユーザと、他のベンダサーバシステムを利用する他のユーザデバイスの複数の他のユーザとについてのショートカットを記憶する。同様に、グローバル履歴データベース１９７は、ベンダサーバシステム９０Ａ及び９０Ｂを使用するユーザのデバイス１のユーザと、他のベンダサーバシステムを使用する他のユーザデバイスの複数の他のユーザとについての履歴を記憶する。データベース１９６及び１９７に記憶されたデータを、ベンダサーバシステム９０Ａ及び９０Ｂ内のデータストア９５Ａ及び９５Ｂに記憶されたデータと同期することができる。このようにして、ユーザ嗜好データが履歴データに含まれる実施形態では、データベース１９６及び１９７に記憶されたショートカット及び履歴は、複数のベンダ及び他のソースから決定されるユーザ嗜好を反映することができ、ベンダサーバシステム９０Ａ及び９０Ｂのデータストア９５Ａ及び９５Ｂに送信することができる。これは、ベンダが、ベンダサーバシステムを使用するユーザによるマシン状態遷移について記録された履歴データを含むことができる、複数のベンダデータから決定することができるユーザ嗜好データを共有することを可能にする。
【００７１】
実施形態は、ウェブサーバによって提供されるウェブページを含むマシン状態に関連して説明されているが、マシン状態は、ユーザが入力を行って次のマシン状態への遷移を引き起こすことができる処理マシンで実装される、任意の処理ステップを含むことができる。例えばマシン状態を、ドキュメント、スプレッドシート、電子メール、オペレーティングシステムのナビゲーション又は入力、並びに検索及び取り出しソフトウェアのような任意のソフトウェアアプリケーションにおける処理の段階によって表すことができる。
【００７２】
実施形態は、予測ユーザ入力を提供するために、グラフィック選択又はオーディオ選択／入力としてユーザ選択オプションの入力のためのコンテキストベースのオプションを提供する。
【００７３】
一実施形態において、現在のマシン状態は、共通パラメータを有するウェブページ又は他のインタフェースディスプレイのような１組のマシン状態とすることができる。例えばウェブページをスクロール又はズームすることができ、フレームは、ユーザによって入力される名前及び連絡先の詳細等のデータを保持することができる。しかしながら、そのようなデータはウェブブラウザによって処理され、ウェブサーバに送信されないので、クライアントデバイスのマシン状態は、単にウェブサーバのための単一のウェブページ提供ステップである共通のパラメータを有する複数の状態で動作することができる。
【００７４】
基本的なコンピューティングデバイス
図７は、本発明の例示的な実施形態を具体化することができる基本的なコンピューティングデバイス６００を示すブロック図である。コンピューティングデバイス６００及びその構成要素は、それらの接続、関係及び機能を含め、単に例示的なものであるように意図されており、例示の実施形態の実装を限定するように意図されていない。例示的な実施形態を実装するのに適した他のコンピューティングデバイスは、異なる接続、関係及び機能を有する構成要素を含め、異なる構成要素を有してよい。
【００７５】
コンピューティングデバイス６００は、メインメモリ６０６をアドレス指定し、デバイス６００の様々なコンポーネントの間でデータを転送するためにバス６０２又は他の通信機構を含んでよい。
【００７６】
コンピューティングデバイス６００は、情報を処理するためにバス６０２に結合される１つ以上のハードウェアプロセッサ６０４も含んでよい。ハードウェアプロセッサ６０４は、汎用マイクロプロセッサ、システムオンチップ（SoC）又は他のプロセッサとすることができる。
【００７７】
情報及びプロセッサ６０４によって実行されるソフトウェア命令を格納するために、ランダムアクセスメモリ（RAM）又は他の動的ストレージデバイスのようなメインメモリ６０６もバス６０２に結合されてよい。メインメモリ６０６は、プロセッサ６０４によって実行されるソフトウェア命令の実行中に一時変数又は他の中間情報を格納するために使用されてもよい。
【００７８】
ソフトウェア命令は、プロセッサ６０４にアクセス可能な記憶媒体に格納されるとき、コンピューティングデバイス６００を、ソフトウェア命令で指定された動作を実行するようにカスタマイズされる専用コンピューティングデバイスにする。「ソフトウェア」、「ソフトウェア命令」、「コンピュータプログラム」、「コンピュータ実行可能命令」及び「プロセッサ実行可能命令」という用語は、人間が読取可能であるか否かに関わらず、特定の動作を実行するようコンピューティングデバイスに命令するための全てのマシン読取可能な情報を包含するよう広く解釈されるべきであり、これらに限定されないが、アプリケーションソフトウェア、デスクトップアプリケーション、スクリプト、バイナリ、オペレーティングシステム、デバイスドライバ、ブートローダ、シェル、ユーティリティ、システムソフトウェア、JAVASCRIPT（登録商標）、ウェブページ、ウェブアプリケーション、プラグイン、組込みソフトウェア、マイクロコード、コンパイラ、デバッガ、インタプリタ、仮想マシン、リンカ及びテキストエディタを含む。
【００７９】
コンピューティングデバイス６００は、プロセッサ６０４のための静的情報及びソフトウェア命令を格納するためにバス６０２に結合される読出専用メモリ（ROM）６０８又は他の静的ストレージデバイスも含んでよい。
【００８０】
１つ以上の大容量ストレージデバイス６１０は、情報及びソフトウェア命令を、磁気、光、半導体、磁気光、フラッシュメモリ又は任意の他の利用可能な大容量記憶技術のような固定又は取外し可能媒体に永続的に記憶するためにバス６０２に結合されてもよい。大容量ストレージは、ネットワーク上で共有されてもよく、専用の大容量ストレージであってもよい。典型的には、大容量ストレージデバイス６１０のうちの少なくとも１つ（例えばデバイスの主ハードディスク）が、オペレーティングシステム、ユーザアプリケーションプログラム、ドライバ及び他のサポートファイル、並びに全ての種類の他のデータファイルを含め、コンピューティングデバイスの動作を指示するためのプログラムの本体及びデータを格納する。
【００８１】
コンピューティングデバイス６００は、コンピュータユーザに情報を表示するために、液晶ディスプレイ（LCD）又は他の電子ビジュアルディスプレイ等のディスプレイ６１２にバス６０２を介して結合されてもよい。一部の構成では、タッチ検出技術（例えば抵抗式、容量式等）を組み込んだタッチ感知面をディスプレイ６１２の上に重ねて、プロセッサ６０４へタッチジェスチャ（例えば指又はスタイラス）入力を伝えるためのタッチ感知ディスプレイを形成してもよい。
【００８２】
英数字キー及び他のキーを含む入力デバイス６１４が、情報及びコマンド選択をプロセッサ６０４に伝えるためにバス６０２に結合されてもよい。英数字及び他のキーに加えて又はこれに代えて、入力デバイス６１４は、例えば電源（オン／オフ）ボタン、「ホーム」ボタン、音量制御ボタン等のような１つ以上の物理的ボタン又はスイッチを含んでよい。
【００８３】
別のタイプのユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ６０４に伝達し、ディスプレイ６１２上のカーソル移動を制御するためのマウス、トラックボール、カーソル又はタッチスクリーン方向キー等のようなカーソルコントロール６１６であってもよい。この入力デバイスは、典型的に、デバイスが平面内の位置を指定することを可能にする２つの軸、すなわち第１軸（例えばx）と第２軸（例えばy）で２つの自由度を有する。他の入力デバイスの実施形態は、スピーチのようなオーディオ入力を認識するためのオーディオ又はスピーチ認識入力モジュール、ユーザによるジェスチャを認識することができる視覚入力デバイス及びキーボードを含む。
【００８４】
図７に図示される構成のようないくつかの構成では、ディスプレイ６１２、入力デバイス６１４及びカーソルコントロール６１６のうちの１つ以上が、コンピューティングデバイス６００の外部構成要素（すなわち、周辺デバイス）であるが、他の構成では、ディスプレイ６１２、入力デバイス６１４及びカーソルコントロール６１６の一部又は全てが、コンピューティングデバイス６００のフォームファクタの一部として一体化される。
【００８５】
ディスプレイ６１２に加えて又はその代わりに、オーディオ出力デバイス又は触覚（振動）出力デバイスのような任意の他の形式のユーザ出力デバイスを使用することができる。
【００８６】
開示されるシステム、方法及びモジュールの機能は、プロセッサ６０４がメインメモリ６０６に含まれるソフトウェア命令の１つ以上のプログラムを実行することに応答して、コンピューティングデバイス６００によって実行され得る。そのようなソフトウェア命令は、ストレージデバイス６１０のような別の記憶媒体又は伝送媒体からメインメモリ６０６へ読み出されてよい。メインメモリ６０６に含まれるソフトウェア命令の実行は、プロセッサ６０４に例示的な実施形態の機能を実行させる。
【００８７】
例示的な実施形態の機能及び動作は、ソフトウェア命令で全体的に実装されてもよいが、他の実施形態では、手元にある特定の実装の要件に従って、その機能を実行するソフトウェア命令に代えて又はこれと組み合せて、コンピューティングデバイス６００のハードワイヤード又はプログラマブル回路（例えばASIC、FPGA等）が使用されてもよい。
【００８８】
本明細書で使用されるとき、「記憶媒体」という用語は、コンピューティングデバイスを特定の方法で動作させるデータ及び／又はソフトウェア命令を格納する任意の非一時的媒体を指す。そのような記憶媒体は、不揮発性媒体及び／又は揮発性媒体を含んでよい。不揮発性媒体は、例えばストレージデバイス６１０のような不揮発性ランダムアクセスメモリ（NVRAM）、フラッシュメモリ、光ディスク、磁気ディスク又は半導体ドライブを含む。揮発性媒体は、メインメモリ６０６のような動的メモリを含む。一般的な形式の記憶媒体は、例えばフロッピーディスク、フレキシブルディスク、ハードディスク、半導体ドライブ、磁気テープ、あるいは任意の他の磁気データ記憶媒体、CD-ROM、任意の他の光データ記憶媒体、ホールパターンのある任意の物理媒体、RAM、PROM及びEPROM、フラッシュEPROM、NVRAM、フラッシュメモリ、任意の他のメモリチップ又はカートリッジを含む。
【００８９】
記憶媒体は、伝送媒体とは異なるが、伝送媒体とともに使用されてよい。伝送媒体は、記憶媒体の間で情報を転送することに関与する。例えば伝送媒体は、バス６０２を備えるワイヤを含め、同軸ケーブル、銅線及び光ファイバを含む。伝送媒体は、電波及び赤外線データ通信の間に生成されるもののように音響波又は光波の形式をとることもできる。コードの形式で命令を担持するマシン読取可能媒体は、非一時的記憶媒体及び伝送媒体を含む可能性がある。
【００９０】
様々な形式の媒体が、実行のために１つ以上のソフトウェア命令の１つ以上のシーケンスをプロセッサ６０４に伝搬することに関与する可能性がある。例えばソフトウェア命令は、最初に、リモートコンピュータの磁気ディスク又は半導体ドライブ上に伝搬されることがある。リモートコンピュータが、そのソフトウェア命令を自身の動的メモリにロードし、モデムを使用して電話回線経由でそのソフトウェア命令を送信することができる。コンピューティングデバイス６００にローカルなモデムは、電話回線においてそのデータを受信し、赤外線送信機を使用してそのデータを赤外線信号に変換することができる。赤外線検出器が、赤外線信号で伝搬されるデータを受信することができ、適切な回路がそのデータをバス６０２上に置くことができる。バス６０２は、このデータをメインメモリ６０６に伝搬し、メインメモリ６０６からプロセッサ６０４がソフトウェア命令を取り出して実行する。メインメモリ６０６によって受け取られたソフトウェア命令は、任意選択で、プロセッサ６０４による実行の前又は後のいずれかに、ストレージデバイス６１０に格納されてもよい。
【００９１】
コンピューティングデバイス６００は、バス６０２に結合される１つ以上の通信インタフェース６１８も含んでよい。通信インタフェース６１８は、ローカルネットワーク６２２（例えばイーサネット（登録商標）ネットワーク、無線ローカルエリアネットワーク、携帯電話ネットワーク、Bluetooth（登録商標）無線ネットワーク等）に接続される有線又は無線ネットワークリンク６２０への双方向データ通信結合を提供する。通信インタフェース６１８は、様々なタイプの情報を表すデジタルデータストリームを伝搬する電気、電磁気又は光信号を送受信する。例えば通信インタフェース６１８は、有線ネットワークインタフェースカード、統合無線アンテナを有する無線ネットワークインタフェースカード、あるいはモデム（例えばISDN、DSL、又はケーブルモデム）とすることができる。
【００９２】
ネットワークリンク６２０は典型的に、１つ以上のネットワークを通して他のデータデバイスへのデータ通信を提供する。例えばネットワークリンク６２０は、ローカルネットワーク６２２を通して、ホストコンピュータへの又はインターネットサービスプロバイダ（ISP）によって操作されるデータ機器への接続を提供することができる。ISP６２６は、現在一般に「インターネット」と呼ばれるワールドワイドパケットデータ通信ネットワークを通してデータ通信サービスを提供する。ローカルネットワーク６２２及びインターネットは、デジタルデータストリームを伝搬する電気、電磁気又は光信号を使用する。様々なネットワークを通る信号、及び、ネットワークリンク６２０上にあり、かつコンピューティングデバイス６００との間でデジタルデータを伝搬する通信インタフェース６１８を通る信号は、伝送媒体の例示の形態である。
【００９３】
コンピューティングデバイス６００は、ネットワーク、ネットワークリンク６２０及び通信インタフェース６１８を介して、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバは、インターネット、ISP、ローカルネットワーク６２２及び通信インタフェース６１８を介してアプリケーションプログラムのために要求されたコードを送信することができる。
【００９４】
受け取られたコードは、このコードが受け取られると、かつ／あるいはストレージデバイス６１０又は後の実行のために他の不揮発性ストレージに格納されると、プロセッサ６０４によって実行され得る。
【００９５】
１つの態様は、方法を実行するマシンのプロセッサによる実行のためにコードを格納する非一時記憶媒体、あるいは方法を実行するマシンのプロセッサによる実行のためにプロセッサ実行可能コードを担持する一時媒体のような搬送媒体を提供する。実施形態は、コンピュータコードを実装するプログラマブルデジタルロジックで実装される可能性がある。コードを、搬送媒体上のプロセッサ又はマイクロプロセッサのようなプログラマブルロジックに供給することができる。このような搬送媒体の１つの実施形態は、一時媒体、すなわち、電気、電磁気、音響、磁気又は光信号のような信号である。別の形式の搬送媒体は、半導体メモリ、磁気媒体（ハードディスクドライブ）又は光媒体（コンパクトディスク（CD）又はデジタル多用途ディスク（DVD））のようにコードを格納する非一時的記憶媒体である。
【００９６】
当業者には、本発明の主題の性質を説明するために説明及び図示されている部品及び方法の段階の詳細、材料及び配置において、添付の特許請求の範囲で表される本発明の主題の原理及び範囲から逸脱することなく、様々な他の変更を行ってもよいことが当業者には容易に理解されよう。
【図１】
2019508822.tif 000003
【図２】
2019508822.tif 000004
【図３】
2019508822.tif 000005
【図４】
2019508822.tif 000006
【図５ａ】
2019508822.tif 000007
【図５ｂ】
2019508822.tif 000008
【図６】
2019508822.tif 000009
【図７】
2019508822.tif 000010
【国際調査報告】
2019508822.tif 000011
2019508822.tif 000012