(57)【要約】      （修正有）【課題】ウェブベースのタスクを記録及び再生するための方法及び装置を提供する。【解決手段】記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録することであって、ユーザ関与無しにセッションの開始を自動的に見つけることを含むこと、記録されたウェブベースのタスクを再生する要求を受信すること、及び、記録されたウェブベースのタスクを再生することを含む。【選択図】図３
2011159281.tif 000002
【特許請求の範囲】
【請求項１】
記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われた前記セッション中に実施されたウェブベースのタスクを記録するステップであって、ユーザ関与無しに前記セッションの前記開始を自動的に見つけることを含む、ステップと、
前記記録されたウェブベースのタスクを再生する要求を受信するステップと、
前記記録されたウェブベースのタスクを再生するステップと、
を含む方法。
【請求項２】
前記ウェブベースのタスクを記録するステップが、
ユーザの対話状態及び対話コンテキストを監視するサブステップであって、前記対話コンテキストが一番最近の対話状態シーケンスである、サブステップと、
ブラウザ内から対話イベントを傍受するサブステップと、を含み、
各対話イベントが、ある対話状態から別の対話状態への遷移に対応する、請求項１に記載の方法。
【請求項３】
前記対話状態の少なくとも１つが、前記ブラウザ中で現在開いているページと、前記ブラウザによって現在表示されているページ上の強調表示されたテキストと、クリップボードの内容と、前記ブラウザによって現在表示されているページに対して行われるフォーム入力と、入力バー中のリソース識別子の現在の値とからなるグループから選択される対話状態を含み、
更に、前記対話状態の少なくとも１つが、ページロードイベントと、リソース識別子入力イベントと、テキスト強調表示イベントと、テキストコピーイベントと、フォーム入力イベントと、貼付け入力イベントと、リソース識別子コピーイベントとからなるグループから選択される対話イベントを含む、請求項２に記載の方法。
【請求項４】
前記ウェブベースのタスクを記録するステップが、
イベントストリームをセグメント化するサブステップと、
前記タスクに対して影響を有さないイベントを前記イベントストリームから除去して雑音除去済みイベントストリームを生み出すサブステップと、
前記セグメント化された雑音除去済みイベントストリーム中のイベント間の依存関係を決定するサブステップと、
イベントの最後のセグメントから遡って依存連鎖を横断して、イベントを再生可能セッションの一部として前記雑音除去済みイベントストリームから識別するサブステップと、
を含む、請求項１に記載の方法。
【請求項５】
前記イベントストリームをセグメント化するサブステップが、前記イベントストリーム中のイベント間の時間レイテンシに基づいて実施される、請求項４に記載の方法。
【請求項６】
前記イベントストリームをセグメント化するサブステップが、明示的なユーザ入力アクションに基づいて実施される、請求項４に記載の方法。
【請求項７】
イベントを前記イベントストリームから除去するサブステップが、ユーザ関与無しに行われる、請求項４に記載の方法。
【請求項８】
イベントを前記ストリームから除去するサブステップが、前記タスクにとって重要でないユーザナビゲーションから生じるイベントを除去することを含む、請求項４に記載の方法。
【請求項９】
前記依存連鎖を横断するサブステップが、強調表示及びコピー操作と、コピー及び貼付け操作と、入力及びサブミット操作と、からなるグループから選択されるアクションの１つ又は複数の対を識別することを含む、請求項４に記載の方法。
【請求項１０】
前記タスクを表すセッションを一般化して、前記セッションを、前記セッションが記録されたときに使用されたコンテキストとは異なるコンテキストに適用可能にするステップを更に含む、請求項１に記載の方法。
【請求項１１】
前記セッションを一般化するステップが、前記セッションを抽象化するサブステップを含む、請求項１０に記載の方法。
【請求項１２】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクを表す記録済みセッションのコンテキストを、前記セッションが記録されたときのユーザに関連する第１の対話コンテキストから、ユーザの現在の対話コンテキストに適応させて、前記ユーザの現在の対話コンテキストを用いた記録済みセッションを再生するサブステップを含む、請求項１に記載の方法。
【請求項１３】
前記コンテキストを適応させるサブステップが、前記記録済みセッション内のどの状態が、前記タスクの再生要求が行われた時点のユーザのコンテキストに合致するかを決定することを含む、請求項１２に記載の方法。
【請求項１４】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクの一部である少なくとも１つのウェブページの変化に適応することによって、前記記録されたウェブベースのタスクを表す記録済みセッションを適応させるサブステップを含む、請求項１に記載の方法。
【請求項１５】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生するサブステップを含む、請求項１に記載の方法。
【請求項１６】
前記記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生するサブステップが、
前記記録済みセッションをユーザの最新の対話状態と共に前記プロキシサーバに送信すること、
１つ又は複数のサーバに１つ又は複数の要求を送信して前記１つ又は複数のサーバから応答を受信することを含めて、前記ユーザの対話状態からの状態を用いてイベントを前記プロキシサーバによって再生すること、
前記プロキシサーバ上の現在の対話状態と共に、前記セッション中の最後のページロードイベントに対応する最後のページを前記プロキシサーバによって送信すること、及び、
前記最後のページによって指定されるリソースをロードして、前記セッションを終了する１つ又は複数のイベントの再生を完了することを含む、請求項１５に記載の方法。
【請求項１７】
命令が記憶された１つ又は複数の非一時的コンピュータ可読記憶媒体を有する製造品であって、前記命令が、システムによって実行される時に、
記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われた前記セッション中に実施されたウェブベースのタスクを記録するステップであって、ユーザ関与無しに前記セッションの前記開始を自動的に見つけることを含む、ステップと、
前記記録されたウェブベースのタスクを再生する要求を受信するステップと、
前記記録されたウェブベースのタスクを再生するステップと、
を含む方法を前記システムに実施させる、製造品。
【請求項１８】
前記ウェブベースのタスクを記録するステップが、
ユーザの対話状態及び対話コンテキストを監視するサブステップであって、前記対話コンテキストが一番最近の対話状態シーケンスである、サブステップと、
ブラウザ内から対話イベントを傍受するサブステップと、
を含み、各対話イベントが、ある対話状態から別の対話状態への遷移に対応する、請求項１７に記載の製造品。
【請求項１９】
前記ウェブベースのタスクを記録するステップが、
イベントストリームをセグメント化するサブステップと、
前記タスクに対して影響を有さないイベントを前記イベントストリームから除去して雑音除去済みイベントストリームを生み出すサブステップと、
前記セグメント化された雑音除去済みイベントストリーム中のイベント間の依存関係を決定するサブステップと、
イベントの最後のセグメントから遡って依存連鎖を横断して、イベントを再生可能セッションの一部として前記雑音除去済みイベントストリームから識別するサブステップと、
を含む、請求項１７に記載の製造品。
【請求項２０】
前記記録されたウェブベースのタスクを再生するステップが、前記記録されたウェブベースのタスクを表す記録済みセッションのコンテキストを、前記セッションが記録されたときのユーザに関連する第１の対話コンテキストから、ユーザの現在の対話コンテキストに適応させて、前記ユーザの現在の対話コンテキストを用いた記録済みセッションを再生するサブステップを含む、請求項１７に記載の製造品。
【発明の詳細な説明】
【技術分野】
【０００１】
（優先権）
[0001]本特許出願は、２００９年１２月１５日に出願された「Ｓｙｓｔｅｍ  ａｎｄ  ｍｅｔｈｏｄｓ  ｆｏｒ  ｒｅｃｏｒｄ  ＆  ｒｅｐｌａｙ  ｏｆ  ｗｅｂ−ｂａｓｅｄ  ｍｏｂｉｌｅ  ｔａｓｋｓ」と題する、対応する仮特許出願第６１／２８６，７２４号に対する優先権を主張し、この仮特許出願を参照により組み込む。
【０００２】
（発明の分野）
[0002]本発明の実施形態は、ユーザによってデバイス上で実施されるタスクの記録及び再生の分野に関する。より詳細には、本発明の実施形態は、モバイルハンドセットユーザのためのウェブベースのタスクの記録及び再生に関する。
【背景技術】
【０００３】
（発明の背景）
[0003]モバイルブロードバンド及びアドバンストモバイルプラットフォーム（カリフォルニア州クパティーノのアップル（登録商標）コンピュータからのｉＰｈｏｎｅ（登録商標）、カリフォルニア州マウンテンビューのグーグル（登録商標）からのＡｎｄｒｏｉｄ（登録商標）、及びＷｅｂＯＳプラットフォームなど）の集まりは、ウェブ関連の日常タスクのためのモバイルデバイス使用の普及を大きく加速した。消費者はますます、自分のスマートフォンを使用して、オンラインで買い物をし、ブログやコメントを書きたいときに書き、動的に変化する特定のオンライン情報（好きなチームが出ている試合の実況情報や、収集している物の最も早く期限切れとなるオークション商品など）の現況をチェックする。
【０００４】
[0004]それでもやはり、固定回線の高速接続を有するパーソナルコンピュータ（ＰＣ）と比較すると、モバイルデバイスからウェブ関連タスクを行うことは、使い勝手に関するいくつかの懸念を依然として有し、これらの懸念は、このようなモバイルデバイスに内在する二つの特性、即ち、１）より弱く安定性の劣る接続、及び２）小さいフォームファクタを根源とする。
【０００５】
[0005]最近の技術進歩にも関わらず、セルラーネットワーク接続は、デバイスがセルのエッジに近いとき及び／又は厳しい干渉があるときは特に、それらに対応する固定回線の接続よりもまだ相対的に遅く安定性が劣る。この結果、ユーザアクション及びインターネット要求／応答のシーケンスを含むウェブセッションの場合は特に、ネットワークレイテンシ及びユーザ待ち時間はより長くより予測可能性が低く、従って、ユーザ体験はより劣る。モバイルデバイスのフォームファクタが小さいこともまた、モバイルデバイスとの対話をずっと困難にする。小さい画面では、表示されたものが読みづらく、或いは正しい位置をクリック／タップするのが難しい。フルサイズのキーボード及び安定したアームサポートがないため、テキストが入力しづらく、或いはデータをあるアプリケーションから別のアプリケーションに移すのが難しい。
【０００６】
[0006]このことを念頭に置いて、技術関連ニュースを閲覧しているユーザがｇｉｚｍｏｄｏ．ｃｏｍで興味深い記事を見つけ（図１ａ参照）、自分のブログ上でこの記事を引用してコメントを書きたいと想像してみる。こうするためにユーザは、記事の興味深い段落を強調表示してコピーし、次いでｂｌｏｇｇｅｒ．ｃｏｍに行き、ユーザ名及びパスワードをタイプ入力することによってログインする（図１ｂ参照）。ユーザは次に「新規投稿」をクリックして、新しいブログエントリを作成し（図１ｃ参照）、そこで、ｇｉｚｍｏｄｏ．ｃｏｍ記事からの事前にコピーした段落（場合によっては記事のＵＲＬを含む）を貼り付ける（図１ｄ参照）。この一見単純なタスクは、モバイルデバイス上では単純さがずっと低い。その理由は、ユーザがタイプ入力及びコピー／貼付けするのが難しいからだけでなく、デバイスの接続性が変わりやすく時として悪い場合があり、複数のページがゆっくりロードするのをユーザが待機する必要があるからでもある。
【０００７】
[0007]これらの問題に対する従来技術の解決法がいくつかある。ＷｅｂＶＣＲは、ユーザが閲覧ステップを記録及び再生することのできるＶＣＲ式のユーザインタフェースを提供する。ＷｅｂＶＣＲは、複数のナビゲーションステップを必要とするウェブデータにアクセスするためのショートカットを作成するのに使用されるよう意図されており、また、オンラインチュートリアルや電子商取引などのウェブアプリケーション用の土台として使用することもできる。ＷｅｂＶＣＲには、いくつかの制限がある。まず、ＷｅｂＶＣＲは、モバイルのウェブベースのタスクを特に対象とはしない。ＷｅｂＶＣＲは、ユーザがセッション生成を制御していると想定する。即ち、ユーザはＷｅｂＶＣＲ中でセッションの記録を明示的に開始及び終了する。この結果、ＷｅｂＶＣＲは、事後の自動セッションタグ付けの必要性、又は効率的なセッション再生の必要性には対処しない。
【０００８】
[0008]Ｓｍａｒｔ  Ｂｏｏｋｍａｒｋｓは、ウェブナビゲーションに対する遡及的な記録の概念を導入する。ユーザは、現在のページをブックマークするようシステムに依頼することができ、システムは、ブックマーク可能なスタートページ、並びに、スタートページから現在ページに行くための一連のコマンドを、過去に遡って検索することになる。Ｓｍａｒｔ  Ｂｏｏｋｍａｒｋｓにも、制限がある。例えば、遡及的な記録はＳｍａｒｔ  Ｂｏｏｋｍａｒｋｓの一部だが、Ｓｍａｒｔ  Ｂｏｏｋｍａｒｋｓにおける自動記録はブックマーク可能なスタートページで停止し、これにより、複数のウェブサイトに関係するセッションを自動的に識別することは不可能となる。加えて、ＷｅｂＶＣＲと同様に、Ｓｍａｒｔ  Ｂｏｏｋｍａｒｋｓもまた、効率的なセッション再生に対処しない。
【０００９】
[0009]ＣｏＳｃｒｉｐｔｅｒもまた、ウェブブラウザベースのタスクに関するユーザ対話ステップを記録及び自動再生することのできるシステムである。ユーザは、ブラウザとの自分の対話を記録するよう明示的に要求し、記録された情報をスクリプトとして保存することができる。このようなスクリプトは、他のユーザと共有することができ、後で自動再生することができる。しかし、ＣｏＳｃｒｉｐｔｅｒは、先を見越した記録を必要とするという点でＷｅｂＶＣＲに類似する。上の２つのシステムのように、ＣｏＳｃｒｉｐｔｅｒは、再生時にユーザの対話コンテキストに適応する問題には特に対処せず、そのような再生における効率を重要視しない。
【００１０】
[0010]Ｈｉｇｈｌｉｇｈｔは、もともとデスクトップユーザ向けに設計されたウェブベースのアプリケーションをモバイルユーザが手動でカスタマイズできるようにするリオーサリング環境を構築する。Ｈｉｇｈｌｉｇｈｔは、ＣｏＳｃｒｉｐｔｅｒと同様の、例示プログラミング（ｐｒｏｇｒａｍｍｉｎｇ−ｂｙ−ｄｅｍｏｎｓｔｒａｔｉｏｎ）ベースの手法を用い、モバイルページ上に含まれるべき内容をユーザが直接指定できるようにする。モバイルウェブを対象とした別の例示プログラミングベースのシステムは、ＰａｇｅＴａｉｌｏｒであり、これは、ウェブページに対するユーザのカスタマイズを記録し、そのような記録されたカスタマイズを類似のウェブページに自動的に適用する。ＨｉｇｈｌｉｇｈｔもＰａｇｅＴａｉｌｏｒも両方とも、対話シーケンスではなく個々のウェブページを対象とすることに留意されたい。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
[0011]このように、既存の解決法は、上記の問題に十分に対処できていなかった。ウェブベースのユーザ対話のシーケンスを記録及び再生することに関する従来の研究はあるが、そのような既存の研究は、モバイルウェブを特に対象としておらず、以下の面の１つ又は複数において様々な程度で依然として制限される。
【００１２】
１）準備無しの自動化されたタスク記録。記録するセッションの開始を手動で合図することがユーザに求められるのではなく、今しがた完了した退屈なセッションを記録するようユーザがシステムに依頼できるべきである。加えて、システムは、記録すべきセッションを構成する対話イベントを自動的に解明できるべきである。
【００１３】
２）記録されたセッションの適応的な再生。記録されたセッションは、類似するがわずかに異なるタスクにも使用できるべきであり、ウェブコンテンツの変化に適切に対応できるべきである。
【００１４】
３）記録されたセッションの効率的な再生。モバイルユーザにとって、長い待ち時間は、退屈な対話と同じくらい厄介である。記録されたセッションの再生は、ユーザが前にそのセッションを記録したときよりも遥かによい体験をユーザに提供すべきであり、このよりよい体験は、遥かに短いタスク完了時間を伴うべきである。
【課題を解決するための手段】
【００１５】
（発明の概要）
[0012]ウェブベースのタスクを記録及び再生するための方法及び装置を、本明細書に開示する。一実施形態では、この方法は、記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録することであって、ユーザ関与無くセッションの開始を自動的に見つけることを含むこと、記録されたウェブベースのタスクを再生する要求を受信すること、及び、記録されたウェブベースのタスクを再生することを含む。
【発明の効果】
【００１６】
本発明の実施形態は、ユーザによってデバイス上で実施されるタスクの記録及び再生の分野に関する。より詳細には、本発明の実施形態は、モバイルハンドセットユーザのためのウェブベースのタスクの記録及び再生に関する。
【図面の簡単な説明】
【００１７】
【図１】ａ〜ｄ：ブログ／メッセージボードのコメント記入例に関する、ブラウザのスクリーンショットを示す図である。
【図２】ａ及びｂ：セッションにタグ付けする、及びセッションを再生するためのユーザインタフェースを示す図である。
【図３】セッション生成に関するイベントシーケンスの図解を示す図であり、イベントは発生時順に並んでいる。
【図４】コンテキスト認識アルゴリズムの一実施形態に関する擬似コードを示す図である。
【図５】セッション再生におけるコンテキスト認識を示す図である。
【図６】優先順位の高い順に並んだ一般化プランの例のリストを示す図である。
【図７】「スマートな」イベント再生の一実施形態に関する擬似コードを示す図である。
【図８】タグ付けされたセッションのリモート実行を示す図である。
【図９】ａ〜ｄ：「期限切れｅＢａｙオークション」例に関する、ブラウザスクリーンショットを示す図である。
【図１０】記録されたセッションの例を示す図である。
【図１１】ａ〜ｄ：「エクスプレスチェックアウト」例に関する、ブラウザのスクリーンショットを示す図である。
【図１２】コンピュータシステムの一実施形態のブロック図である。
【発明を実施するための形態】
【００１８】
[0013]本発明は、以下に提供する詳細な記述、及び本発明の様々な実施形態に関する添付の図面から、より完全に理解されるであろう。しかし、図面は、本発明を特定の実施形態に限定するものと考えるべきではなく、説明及び理解のためのものに過ぎない。
【００１９】
[0014]タスクの記録（又はタグ付け）及び再生のためのシステム及び関連する方法について述べる。一実施形態では、このタスクは、モバイルのウェブベースの作業である。一実施形態では、タスクを記録及び再生する技法は、３つの際立った特徴を有する。第１に、これらの技法は事後の自動セッションタグ付けを含むが、これは、記録の開始を最初に合図することなく、今しがた完了したセッションをユーザがタグ付けできるようにし、どんなユーザ介入も無くセッションの開始を自動的に見つけて対話雑音を除去する。第２に、これらの技法は「スマートな」セッション再生を含み、記録されたセッションは、ユーザがセッションをタグ付けしたときからユーザがセッションを再生するときまでの間のコンテキスト上の差に適応し、タグ付けされたセッションのパラメータ化を本質的に可能にする。一実施形態では、「スマートな」セッション再生技法はまた、ウェブページの変化にも適応して、ウェブのダイナミクスに耐えると共にユーザタスクの変化に対応する。第３に、これらの技法はリモートセッション実行を含み、イベントをモバイルデバイスから再実行する代わりに、タグ付けされたセッションの多くの部分がプロキシサーバにおいて再生される。プロキシサーバは、固定回線の高速接続を有する場合がある。このようなリモート実行及び他の最適化により、セッションを再生するための時間は、セッション内の最後のページをロードするのに必要とされる時間程度に短縮される。
【００２０】
[0015]一実施形態では、セッション記録及び再生技法は、フロントエンド及びバックエンドコンポーネントを使用して実現され、バックエンドコンポーネントは、前述の（且つ以下の各章で詳細に論じる）際立った特徴を実現し、フロントエンドコンポーネントはユーザとの対話を扱う。
【００２１】
[0016]具体的には、フロントエンドコンポーネントはユーザの対話状態及び対話コンテキストを監視するが、対話状態は、本明細書ではいくつかのメンバ変数によって定義され、メンバ変数は、ブラウザ中で現在開いているページと、ブラウザ中で現在開いているページ上の強調表示されたテキストと、クリップボードの内容と、ブラウザ中で現在開いているページに対して行われるフォーム入力と、リソース識別子（例えばＵＲＬ）入力バー（もしあれば）の現在の値と、のうちの１つ又は複数を含む。
【００２２】
[0017]対話コンテキストは、本明細書ではユーザの一番最近の対話状態シーケンスとして定義される。ある対話状態から別の対話状態への遷移は、対話イベントに対応する。フロントエンドコンポーネントは、ブラウザ内から対話イベントを傍受（インターセプト）して、ユーザ対話の状態を綿密に監視する。一実施形態では、以下のタイプの対話イベントがある。すなわち、ページロードイベント（これは、ハイパーリンクをクリックすること、ＵＲＬバー中でエンターキーを押すこと、若しくはＵＲＬバーの内容に基づいてブラウザによって提示されたドロップダウンリストから選択すること、フォームサブミットボタンをクリックすること、又は特定のブラウザツールバーボタンをクリックすること、若しくは何らかのブラウザメニュー項目（例えば「ホーム」や「戻る／進む」ボタン、及びブックマークメニュー）を選択すること、などのユーザアクションの結果として生じるページロードに対応する）、ＵＲＬ入力イベント（これは、ユーザがＵＲＬバー中でタイプ入力することに対応する）、テキスト強調表示イベント（これは、ユーザが現在のページ上のテキスト文字列を強調表示することに対応する）、テキストコピーイベント（これは、ユーザが強調表示されたテキストをクリップボードにコピーすることに対応する）、フォーム入力イベント（これは、ユーザが現在のページ上のフォームの入力フィールドに入力することに対応する（フォーム入力イベントは、ユーザが入力フィールドにテキストをタイプ入力することによって、又は入力フィールドにテキストを貼り付けることによって引き起こされる可能性がある））、貼付け入力イベント（これは、フォーム入力イベントの特殊形であり、ユーザが現在のページ上のフォームの入力フィールドにクリップボード内容をコピーすることに対応する）、並びにＵＲＬコピーイベント（これは、現在のページのＵＲＬをクリップボードにコピーすることに対応する）である。
【００２３】
[0018]一実施形態では、全てのタイプのイベントは、それ自体の固有の属性の他に、その開始時と終了時を示す共通の属性も有する。
【００２４】
[0019]ページを見た後で当該ページをブックマークするのに似て、ユーザは、今しがた完了した、実施容易ではないと思われるが将来繰り返される可能性が高いであろうタスクを、記録又は「タグ付け」するよう依頼することができる。一実施形態では、ユーザは、この今しがた記録されたセッションに名前を割り当てることもできる（例えば図２（ａ）参照）。この方式のセッション記録を、本明細書では「事後セッションタグ付け」と呼ぶ。その理由は、「記録」は、ユーザがバックエンドコンポーネントにセッションの記録を開始するよう合図することなく実施され、セッションが完了した後で実施されるからである。
【００２５】
[0020]バックグラウンドでは、バックエンドコンポーネントが、ユーザの現在の対話コンテキストを得て、この対話コンテキストから、ユーザが記録及びタグ付けしようと思うセッションをどのイベント及び状態が表すかを決定し、そのようなイベント及び状態を、割り当てられた名前と共に記憶する。
【００２６】
[0021]その後、ユーザがフロントエンドユーザインタフェース（例えば図２（ｂ）参照）を介してタグ付けされたセッションを再生しようとするとき、バックエンドコンポーネントは、タグ付けされたセッションに対応する対話状態及びイベントを得て、次いでセッションの記録されたイベントの再生を試みる。しかし、一実施形態では、このような再生は通常、元のイベントの正確な「カーボンコピー」の再実行ではない。これは、現時点でのユーザの対話コンテキスト（従って、ユーザの意図するタスク）が、ユーザがセッションタグを作成したときとは異なる可能性があるからである。もう１つの理由は、セッションがタグ付けされたときにユーザが訪れたウェブページが、それ以来、いくつかのイベントの一語一句違わぬ再生がもはや意味を成さない（例えば存在しない句を強調表示するなど）までに変化した可能性があることである。一実施形態では、バックエンドコンポーネントは従って、ユーザコンテキスト及びウェブ内容の変化に適応するために、イベント再生における「スマートさ」を必要とする。
【００２７】
[0022]一実施形態では、バックエンドコンポーネントは、セッション再生において手動ユーザ対話の忠実な模倣を目標としない。そうではなく、タグ付けされたセッションのより効率的な（従って、より使い勝手のよい）再生のために、セッションのほとんどをリモート実行することを含めた様々なアプローチを活用する。
【００２８】
[0023]以下の記述では、本発明のより完全な説明を提供するために多くの詳細を示す。しかし、これらの具体的詳細がなくても本発明を実施できることは、当業者には明らかであろう。他の場合では、本発明を曖昧にするのを避けるために、周知の構造及びデバイスについては詳細に示すのではなくブロック図の形で示す。
【００２９】
[0024]後続の詳細な記述のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作の、アルゴリズム及び象徴表現によって提示する。これらのアルゴリズム的記述及び表現は、データ処理技術の当業者が他の当業者に自身のタスクの実質を最も効果的に伝えるために使用される手段である。アルゴリズムは、ここでは、また一般的には、所望の結果につながる首尾一貫した一連のステップであると考えられる。これらのステップは、物理量の物理的操作を必要とするステップである。必ずしもそうとは限らないが通常は、これらの量は、記憶、転送、結合、比較、及び他の方法で操作することのできる電気的又は磁気的信号の形をとる。主に一般的な慣例の理由で、これらの信号をビット、値、要素、記号、文字、用語、数字などとして言及するのが時として好都合であることが証明されている。
【００３０】
[0025]しかし、これら及び類似の用語は全て、適切な物理量に関連付けられるべきであって、単にこれらの量に適用される好都合なラベルに過ぎないことを念頭に置くべきである。以下の考察から明らかなように特に別段の指定がない限り、この記述全体を通して、「処理する」、「計算する」、「算出する」、「決定する」、又は「表示する」などの用語を利用した考察は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）量として表されるデータを操作して、コンピュータシステムメモリ若しくはレジスタ内、又は他のそのような情報記憶、伝送、若しくは表示デバイス内で同様に物理量として表される他のデータに変換するコンピュータシステム又は類似の電子計算デバイスの、アクション及びプロセスを指すことを理解されたい。
【００３１】
[0026]本発明はまた、本明細書の動作を実施するための装置に関する。この装置は、必要とされる目的のために特に構築されたものであってもよく、或いは、コンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化又は再構成される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、コンピュータ可読記憶媒体に記憶することができ、コンピュータ可読記憶媒体は、以下のものに限定されないが、フロッピー（登録商標）ディスクや光ディスクやＣＤ−ＲＯＭや光磁気ディスクを含めた任意のタイプのディスク、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光学カード、又は、電子的命令を記憶するのに適した任意のタイプの媒体などであり、これらはそれぞれコンピュータシステムバスに結合される。
【００３２】
[0027]本明細書に提示するアルゴリズム及び表示は、どんな特定のコンピュータ又は他の装置にも本質的に関係しない。本明細書の教示に従ったプログラムと共に様々な汎用システムを使用することもでき、或いは、必要とされる方法ステップを実施するためのより特殊化された装置を構築するのが好都合であることが判明する場合もある。これらの様々なシステムに必要とされる構造は、以下の記述から明らかになるであろう。加えて、本発明は、特定のプログラミング言語に関して述べるものでもない。様々なプログラミング言語を使用して、本明細書に述べる本発明の教示を実施することができることは、理解されるであろう。
【００３３】
[0028]機械可読媒体は、機械（例えばコンピュータ）によって読取り可能な形で情報を記憶又は伝送するための任意の機構を含む。例えば、機械可読媒体は、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなどを含む。
【００３４】
（概観）
[0029]タスクの記録（又はタグ付け）及び再生のためのシステム及び関連する方法について述べる。一実施形態では、この方法は、記録するセッションの開始を明示的に合図することなくユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録することであって、ユーザ関与無しにセッションの開始を自動的に見つけることを含むこと、記録されたウェブベースのタスクを再生する要求を受信すること、及び、記録されたウェブベースのタスクを再生することを含む。
【００３５】
[0030]一実施形態では、ウェブベースのタスクを記録することは、ユーザの対話状態及び対話コンテキストを監視することであって、対話コンテキストが一番最近の対話状態シーケンスであること、並びに、ブラウザ内から対話イベントを傍受することを含み、各対話イベントは、ある対話状態から別の対話状態への遷移に対応する。一実施形態では、ウェブベースのタスクを記録することは、イベントストリームをセグメント化すること、タスクに対して影響を有さないイベントをイベントストリームから除去して、雑音除去されたイベントストリームを生み出すこと、セグメント化された雑音除去済みイベントストリーム中のイベント間の依存関係を決定すること、及び、イベントの最後のセグメントから遡って依存連鎖を横断して、イベントを再生可能セッションの一部として雑音除去されたイベントストリームから識別することを含む。
【００３６】
[0031]一実施形態では、イベントストリームをセグメント化することは、イベントストリーム中のイベント間の時間レイテンシに基づいて実施される。一実施形態では、イベントストリームをセグメント化することは、明示的なユーザ入力アクションに基づいて実施される。
【００３７】
[0032]一実施形態では、イベントをイベントストリームから除去することは、ユーザ関与無しに行われる。一実施形態では、イベントをストリームから除去することは、タスクにとって重要でないユーザナビゲーションの結果として生じるイベントを除去することを含む。
【００３８】
[0033]一実施形態では、依存連鎖を横断することは、強調表示及びコピー操作と、コピー及び貼付け操作と、入力及びサブミット操作とからなるグループから選択されるアクションの１つ又は複数の対を識別することを含む。
【００３９】
[0034]一実施形態では、この方法は、タスクを表すセッションを一般化して、このセッションを、セッションが記録されたときに使用されたコンテキストとは異なるコンテキストに適用可能にすることを更に含む。一実施形態では、セッションを一般化することは、セッションを抽象化することを含む。
【００４０】
[0035]一実施形態では、記録されたウェブベースのタスクを再生することは、記録されたウェブベースのタスクを表す記録済みセッションのコンテキストを、セッションが記録されたときのユーザに関連する第１の対話コンテキストから、ユーザの現在の対話コンテキストに適応させて、ユーザの現在の対話コンテキストを用いた記録済みセッションを再生することを含む。一実施形態では、コンテキストを適応させることは、記録されたセッション内のどの状態が、タスクの再生要求が行われた時点のユーザのコンテキストに合致するかを決定することを含む。一実施形態では、記録されたウェブベースのタスクを再生することは、記録されたウェブベースのタスクの一部である少なくとも１つのウェブページの変化に適応することによって、記録されたウェブベースのタスクを表す記録済みセッションを適応させることを含む。
【００４１】
[0036]一実施形態では、記録されたウェブベースのタスクを再生することは、記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生することを含む。一実施形態では、記録されたウェブベースのタスクを表す記録済みセッションを、プロキシサーバを使用してリモートに再生することは、記録されたセッションをユーザの最新の対話状態と共にプロキシサーバに送信すること、１つ又は複数のサーバに１つ又は複数の要求を送信して１つ又は複数のサーバから応答を受信することを含めて、ユーザの対話状態からの状態を用いてイベントをプロキシサーバによって再生すること、プロキシサーバ上の現在の対話状態と共に、セッション中の最後のページロードイベントに対応する最後のページをプロキシサーバによって送信すること、及び、最後のページによって指定されるリソースをロードして、セッションを終了する１つ又は複数のイベントの再生を完了することを含む。
【００４２】
（セッション生成）
[0037]一実施形態では、セッションの生成は、事後方式で行われる。すなわち、ユーザは、対話のシーケンスを行う前に、記録を開始するようシステムに合図する必要はない。そうではなく、ユーザは、セッションを終了した後すぐに、ユーザが行ったセッションをマーク付けするようシステムに依頼することができる。これは少なくとも２つの利益を有する。第１に、ユーザは、退屈なウェブセッションが開始する直前よりも、そのようなセッションを行った直後の方が、セッションタグを作成しようという気になると考えられている。これは、セッションの開始時には、ユーザはまだ、セッションの退屈さ又は再使用可能性を認識していなかったか、タスクを中断せずに完了させることに集中していなかった場合があるからである。第２に、このようなセッションの多くは、事前に準備されるようにして記録されるのには適さないので、事後セッション生成は重要である。これは、このようなセッションを繰り返すことは、望まれない副作用（オンラインストアから小物を購入したり、公開フォーラムにコメントを残したりするなど）をもたらす可能性があるか、或いはユーザにとって退屈過ぎる（何らかのタイプ入力を必要とする、及び／又はウェブページの遅いロードを待機する必要があるなど）からである。
【００４３】
ユーザが今しがた実施したセッションをタグ付けするようシステムに要求すると、システムは、どのユーザアクションが、今しがた終了したユーザのタスクの構成要素であるかを識別する必要がある。これは２つのサブ目標を含む。第１のサブ目標は、本明細書では「開始状態認識」と呼ぶが、これは、監視された対話イベントのシーケンスから、意図されたタスクの開始に対応する状態を識別することである。第２のサブ目標は、意図されたタスクの開始状態と、意図されたタスクの終了状態との間の雑音イベントを除去することであり、終了状態は、ユーザがセッションタグの作成を要求するときの現在対話状態である。
【００４４】
[0038]図３に、セッション生成に関するイベントシーケンスを示す。図３を参照すると、意図されたタスクの終了状態の後で、セッションタグ作成要求３０１が発生する。また、雑音イベントを含めてイベントが発生時順に並んだ、いくつかの状態も示す。
【００４５】
[0039]一実施形態では、以下の高レベルの順序付けられたステップを含むアルゴリズムを使用して、開始状態認識及び雑音イベント除去が実施される。
【００４６】
１）イベントシーケンスを複数のセグメントに分割する（分割）。
【００４７】
２）各メンバ変数を直接に決定するイベントを、関連ありとしてマークする（マーク）。
【００４８】
３）タスクに関連のないイベントを各セグメントから除去する（除去）。
【００４９】
４）関連セグメントから非関連セグメントに関連性を拡張する（拡張）。
【００５０】
５）結果として得られたイベントを、些細なナビゲーションシーケンスを除去することによって最適化する（最適化）。
【００５１】
[0040]アルゴリズムが完了した後には、全ての関連セグメント（それぞれ、雑音イベント除去済み）がタグ付けされたセッションの状態及びイベントを形成し、最も早い関連セグメントの第１の状態がセッションの開始状態である。
【００５２】
（分割）
[0041]分割操作は、ユーザの対話イベントを小さいグループ又はセグメントに分ける。同じセグメント内のイベントは相互に密接に関係し、通常、隣接する任意の２つのイベント間には因果関係がある。例えば、あるセグメントは、ｂｌｏｇｇｅｒ．ｃｏｍホームページに対するページロードイベントと、それに続く、このページのユーザ名フィールド中でのフォーム入力イベントとからなる場合がある。
【００５３】
[0042]一実施形態では、分割操作は、分割イベントを識別することによって実施される。一実施形態では、各分割イベントは、その前後（それ自体を含む）のイベントを異なるセグメントに分離する。一実施形態では、２つのタイプの分割イベントがある。第１のタイプの分割イベントはＵＲＬサブミットイベントであり、これは、ユーザがＵＲＬアドレスを明示的にタイプ入力することによって、又はユーザがブックマーク項目を選択するか「ホーム」ボタンをクリックすることによって引き起こされる。第２のタイプの分割イベントは、その開始時と、前のイベントの終了時との間の時間的隔たりが異常に大きいイベントである。一実施形態では、通常生じる時間的隔たりよりもいくらか大きい（例えば２倍、３倍など）時間的隔たりは異常に高いとしてマークされるように、時間的隔たりが異常に大きいかどうかの判定は、イベント間で通常生じる相対的な時間長に基づくことができる。この２つのタイプのイベントにおいて分割することの根拠は、これらのイベントが、ユーザがあるタスクから別のタスクに切り替えたかもしれないことを示す可能性が高いからである。
【００５４】
（マーク）
[0043]マーク操作は、各メンバ変数を直接に決定するイベントを、関連ありとしてマークする。例えば、最終状態のドキュメントをロードするページロードイベントは、関連ありとしてマークされる。他のマークされるイベントは、最後のイベントセッションの最終状態のクリップボード内容を設定するテキストコピーイベント、及び、セッションの最後のイベントの最終状態のＵＲＬバー内容を設定するＵＲＬ入力イベントである。
【００５５】
（除去）
[0044]除去操作は、前述の分割操作から導出された各セグメントから、現在のタスクに関係のないイベントが除外されるようにする。このような非関連イベントは主に、ユーザ対話における雑音又は間違いの結果であると想定される。除去操作は、分割操作の後で実施される。さもなければ、セグメント化に悪影響を及ぼすことがある。
【００５６】
[0045]一実施形態では、セッション生成アルゴリズムは、雑音イベント及び重要でないナビゲーションという、２つのタイプの非関連イベントを対象とする。一実施形態では、除去操作は、まず全ての雑音イベントを除去し、次いで、重要でないナビゲーションがあればそれに関係する全てのイベントを除去する。一実施形態では、イベントは、関連ありとしてまだマークされておらず、以下の条件のうちの１つを満たす場合に、雑音イベントとして定義される。
【００５７】
イベントは、対応するページロードイベントがどのセグメント中にもない、フォーム入力イベント又は貼付け入力イベントである。本明細書における「対応するページロードイベント」とは、入力イベントのターゲット入力フィールドを含むフォームのサブミットによって引き起こされるページロードを意味する。このような雑音イベントは、フォームへのユーザ入力が途中で中止されることによって引き起こされる場合がある。
【００５８】
イベントは、テキストコピーイベント又はＵＲＬコピーイベントであり、このイベントと次のコピーイベントとの間に、（雑音でない）貼付け入力イベントがない。このようなイベントは、クリップボードにコピーしたテキスト値が貼付けに全く使用されないうちに置き換えられるので、雑音と考えられる。
【００５９】
イベントは、テキスト強調表示イベントであり、このイベントと、同じページ上の次のテキスト強調表示イベントとの間に、（雑音でない）テキストコピーイベントがない。
【００６０】
イベントは、ＵＲＬ入力イベントであり、このイベントと次のＵＲＬ入力イベントとの間に、対応するページロードイベント又は（雑音でない）ＵＲＬコピーイベントがない。このような雑音イベントは、ブラウザのＵＲＬ入力バー中でのユーザ入力が途中で中止されることによって引き起こされる。
【００６１】
[0046]一実施形態では、雑音イベントの除去は、上記の条件のうちの１つにそれぞれが対応する、４つの順序付けられた経路中で実施されることに留意されたい。
【００６２】
（拡張）
[0047]拡張操作は、マーク操作中に関連ありとしてマークされたイベントから、他のイベントに関連性を拡張する。まず、所与の関連イベントについて、拡張操作は、同じセグメント中の他の全てのイベントもまた関連ありとしてマークし、次いで、すでに関連ありとしてマークされたセグメントから他のセグメントに関連性を反復的に拡張する。新しい関連セグメントが見つからなくなったとき、反復は停止する。一実施形態では、関連性は、以下のイベントの対のうちの少なくとも１対が２つのセグメントにまたがって存在する場合に（セグメント中で発生する対のイベントのうちのいずれかが、すでに関連ありとしてマークされている）、あるセグメントから別のセグメントに拡張することができる。すなわち、テキスト強調表示とテキストコピーのイベント対、テキストコピーと貼付け入力のイベント対、ＵＲＬコピーと貼付け入力のイベント対、ＵＲＬ入力とページロードのイベント対、及びＵＲＬ入力とＵＲＬコピーのイベント対である。これは本質的に、セグメントにまたがって前方と後方の両方にデータ依存性を拡張する。
【００６３】
（最適化）
[0048]最適化操作は、関連のあるイベントのうち、些細なナビゲーションシーケンスを除去する。些細なナビゲーションシーケンスは、本明細書では、１）すぐ後に続くイベントの発火に、又はその特定のイベントをトリガした後の状態に影響を及ぼすことなく除去できるイベントシーケンスであって、２）同じイベントシーケンスが、フォームのサブミットに対応するどんなページロードイベントも含まないものとして定義される。
【００６４】
[0049]些細なナビゲーションシーケンスの一例は、単純なナビゲーション循環である。ユーザは、ページ上のハイパーリンクをクリックし、次いでブラウザの「戻る」ボタンを押す。別の例は、ブックマークされた項目を例えば選択することによって他の場所にナビゲートする直前の、些細なページロードである。
【００６５】
[0050]セッション生成（タグ付け）アルゴリズムの結果は、ユーザがタグ付けしようと思うタスクに関連があると考えられる対話イベント（及び対応する結果状態）のシーケンスである。タグ付けアルゴリズムは相対的に単純であり実行中に適用することができるが、一実施形態では、他の後処理がかなりの量の時間を要する場合があり、このような後処理は、オフラインでモバイルデバイスの外において実施される。このような後処理の一部を、本明細書では、タグ付けされたセッションの一般化と呼ぶ。簡単に言えば、一般化は、タグ付けされたセッションを、ユーザがセッションタグを作成したコンテキストとはわずかに異なるコンテキストの、他の類似するタスクに適用可能にするために使用される技法である。
【００６６】
[0051]一般化は、タグ付けされたセッションを後で再生することを理解する鍵なので、セッション再生について論じる前に、一般化について以下に詳細に論じる。
【００６７】
（一般化）
[0052]前にタグ付けしたセッションを再生する要求をユーザが生成するとき、多くのことがその後変化している可能性があり、それにより、タグ付けされたセッション中の各イベントを１００％忠実に再生することが不可能であるか又は無意味となる。例えば、ｅＢａｙ．ｃｏｍのホームページの内容は頻繁に変わる。ましてや、特定のオークションカテゴリの最も早く期限切れになる商品を含むページの内容、並びにＵＲＬは、変わってしまっている場合がある。
【００６８】
[0053]一般化は、タグ付けされたセッションの状態を抽象化するプロセスである。結果として得られる抽象状態を、本明細書では一般化状態と呼び、元の状態を、本明細書では具体的状態と呼ぶ。従って、具体的イベントと一般化イベントとがある。
【００６９】
[0054]一実施形態では、状態は５つのメンバ変数（ドキュメント、ＵＲＬ入力、フォーム入力、強調表示テキスト、及びクリップボード内容）からなるので、状態の一般化は、最終的には各状態のメンバ変数の一般化である。各メンバ変数はそれ自体の一般化メソッドによって一般化され、対話状態の５つの一般化メソッドが、その状態の一般化プランを構成する。
【００７０】
[0055]一般化メソッドの関数の１つは、具体的イベント、及び具体的イベントのコンテキストをとって、具体的イベントを一般化イベントに変換することである。各一般化メソッドは逆関数も有し、この逆関数は、コンテキスト（具体的状態及びイベントからなる）及び一般化イベントをとって、一般化イベントを具体的イベントに変換する。この逆関数を、本明細書ではインスタンス化と呼ぶ。
【００７１】
[0056]一般化メソッドは、状態を入力として抽象状態を生み出す。状態は、その一部としてウェブドキュメントを含むことができる。
【００７２】
[0057]以下は、一般化メソッドの例のリストである。
【００７３】
ＮＯＧＥＮ：これは、全ての状態メンバ変数に適用可能な特別な一般化メソッドである。このメソッドは、どんな一般化も行わない。すなわち、具体的イベントを一般化するとき又は一般化イベントをインスタンス化するときに、何も変更しない。
【００７４】
ＡＮＹ：これもまた、全ての状態メンバ変数に適用可能な特別な一般化メソッドである。このメソッドは、メンバ変数のどんな値も（値が設定されていないときでさえ）相互に等価であると考える。
【００７５】
ＢＩＮ：これもまた、全ての状態メンバ変数に適用可能な特別な一般化メソッドである。このメソッドは、状態メンバ変数の値が設定されているか否かの２値状態を区別するだけである。従って、この関数は、状態に適用されたときに真又は偽を返す。
【００７６】
ＣＬＫ＿Ａ：これは、ページ内のハイパーリンク、フォームボタン、又はリスト項目をその後クリックすることに基づく、ドキュメント変数に対する一般化メソッドである。ハイパーリンク又はリスト項目ｘの場合は、ドキュメントは「ＵＲＬｘへのリンクを含む」に抽象化され、フォームサブミットボタンの場合は、ドキュメントは「アクションｘ及び入力項目名ｙを有するフォームを含む」に抽象化される。
【００７７】
ＣＬＫ＿Ｔ：これは上と同様だが、例外として、ハイパーリンクの場合は、ドキュメントは「アンカーテキストｘを有するハイパーリンクを含む」に抽象化される。フォームボタンの場合は、ドキュメントは「アクションｘ及びサブミットボタン値ｙ（又は画像ＵＲＩｚ）を有するフォームを含む」に抽象化される。リストアイテムの場合は、ドキュメントは、「ＵＲＬが埋め込まれテキストラベルｘを有する、リスト項目を含む」に抽象化される。
【００７８】
ＣＬＫ＿Ｐ：これは上と同様だが、例外として、ハイパーリンク、フォームボタン、及びリスト項目は、ドキュメント中のそれらのｘｐａｔｈによって表され、ｘｐａｔｈはＨＴＭＬドキュメント技術で周知である。
【００７９】
ＨＬ＿ＰＡＴＨ：これは、強調表示テキストを含むテキストノードのｘｐａｔｈ、並びにテキストノード内における強調表示テキストのオフセットに基づく、強調表示変数に対する一般化メソッドである。
【００８０】
ＨＬ＿ＴＲＥＥ：これは上と同様だが、例外として、ｘｐａｔｈは、ドキュメント自体のルートではなくドキュメントのサブツリーのルートから開始される。
【００８１】
ＦＩ＿１：これは、フォーム入力変数に対する一般化メソッドである。フォーム入力先が、「アクションｘ及び入力フィールド名ｙを有するフォーム」に抽象化される。
【００８２】
ＵＲＬ＿１：これは、ＵＲＬ入力変数に対する一般化メソッドである。「ｈｔｔｐ：／／ｗｗｗ２．ｘｙｚ．ｃｏｍ／ｐａｔｈ１／ｐａｔｈ２／．．．」の形の完全なＵＲＬが、「ｘｙｚ．ｃｏｍ／ｐａｔｈ１」に抽象化される。
【００８３】
[0058]他の一般化メソッド、特に、ドキュメントの内容に基づく一般化メソッドを使用することもできる。例えば、一実施形態では、ある一般化メソッドは、同じマップアドレスを含むか又は多数の画像を共に含む２つのドキュメントを、同じ一般化ドキュメントに一般化する。
【００８４】
[0059]図６に、前述の一般化メソッドを使用したサンプル一般化プランのリストを示す。各状態メンバ変数につきいくつかの異なるメソッドがあってもよいが、多数のメソッド組合せは実行不可能であるか又は冗長なので、実際的な一般化プランの数は指数関数的に大きくはないことに留意されたい。図６を参照すると、表中の一般化プランは、それらが生み出す一般化状態の「忠実度」（元の具体的状態に対する）の順に並んでいる。
【００８５】
[0060]セッションがタグ付けされると、同様の一般化プランリストを使用してその状態が一般化される（例えば図５参照）。元の各具体的状態につき、結果は、元の状態に対する忠実度の高い順の一般化状態のリストである。一般化プランは、１つ又は複数の状態を一般化するのに失敗する場合があることに留意されたい（図５のチャート中の「ｘ」）。
【００８６】
（セッション再生）
[0061]上に論じたように、タグ付けされたセッションの再生をユーザが要求するとき、ユーザは通常、タグ付けされたセッションの最初から全く同じ対話シーケンスを繰り返すよう求めているのではない。実際、ユーザが自分のセッションの開始と考えていたものは、システムがタグ付けアルゴリズムを通して推論したものとは異なる可能性がある。従って、セッション再生ロジックが、ユーザが再生を要求した時点でのユーザのコンテキストを自動的に決定し、タグ付けされたセッション内のどの状態がそのコンテキストに合致するかを決定することが重要である。合致する状態が、タグ付けされたセッション中の後続イベントを１つずつ再生するための開始点となる。
【００８７】
[0062]記録されたセッションの範囲内で、コンテキストは、ユーザによるブラウザとの最新の対話を表す対話状態（並びに対応するイベント）のシーケンスとして定義される。シーケンスの長さはカスタマイズ可能だが、通常は短い（例えば１回の実施において８つ）。コンテキスト中で最も重要な情報は、シーケンス中で最後の（すなわち最新の）対話状態である。
【００８８】
[0063]コンテキストＣの最新状態をＳｌとし、Ｃのｉ番目の状態をＳｉとし、優先順位の高い順に並んだ一般化プランのリストをＧＰＬとし、一般化プランｇｐを状態Ｓｉに適用することから導出される一般化状態をＳｉｇｐとする。
【００８９】
[0064]図４の擬似コードは、コンテキスト認識のためのアルゴリズムの一実施形態を記述するものである。本質的に、このアルゴリズムは、最も好ましいものから最も好ましくないものまで、サポートされる各一般化プランをとり、コンテキストの最新状態に適用して一般化状態を生み出す。そのような一般化状態（Ｓｌｇｐ）が存在する場合は、そのような一般化状態が、同じプランをタグ付けされたセッションの状態のうちの１つに適用することから導出される一般化状態と等しいかどうかチェックする。少なくとも１つのそのような状態が存在する場合は、そのような状態のうちの第１の（最も早い）状態が、合致状態として返される。どの一般化プランも一般化状態の合致を生み出すことができない場合は、アルゴリズムは、タグ付けされたセッションの第１の状態を合致状態として返す。これは、タグ付けされたセッションを最初から再生する必要があることを示す。
【００９０】
[0065]一実施形態では、状態Ｓｌの一般化は、状態自体とコンテキストＣとの両方を入力とすることに留意されたい。これは、いくつかの一般化メソッドが、状態のメンバ変数を一般化する際に追加の情報を使用する必要があるからである。同じことは、タグ付けされたセッション中の状態が一般化されるときにも当てはまる。
【００９１】
[0066]図５は、コンテキスト認識プロセスのより説明的な描写である。セッションがタグ付けされると、その状態が一般化プランによって抽象化される。いくつかのプランから導出された一般化状態は、元の具体的状態に対して高い忠実度を維持するが、他の一般化状態は、ずっと抽象化され、具体的状態の多くの際立った特色を失う。ユーザがセッションの再生を要求すると、ユーザの最終状態が取り出され、最終状態に対して最も高い忠実度を維持する一般化状態の合致を見つける努力がなされる。
【００９２】
[0067]セッション再生の開始点を決定する他、コンテキスト認識はまた、ユーザが自分の再生したいタグ付けされたセッションを識別するのを補助するのに用いることもできる。これは、ユーザが全てのタグ付けされたセッションのリストを開いたときに、バックエンドシステムは、ユーザのコンテキストとの高忠実度の合致をそれぞれが有するタグ付けされたセッションのセットを識別することができるからである。このタグ付けされたセッションのセットは、次いで、より目立つように表示して（例えば強調表示するか又はリストの先頭に昇格させて）、ユーザがそれらの位置を突き止めるのを補助することができる。これにより、作成されたタグ付け済みセッションが数十個又はそれ以上あるときにシステムの使い勝手がよりよくなる可能性がある。
【００９３】
[0068]タグ付けされたセッション内の合致状態が識別されると、残りのセッション再生プロセスは、ユーザの対話コンテキストから開始し、タグ付けされたセッション中の合致状態の後に続く各イベントを再生する。
【００９４】
[0069]図７は、「スマートな」イベント再生のためのアルゴリズムの擬似コードの一例である。図７を参照すると、アルゴリズムの２つのｗｈｉｌｅループのうち、外側のループは、タグ付けされたセッションのイベントを通して（合致状態から始まって）反復し、各イベント（Ｅｔ）につき、そのイベントを再生することを試みる。イベントの再生が失敗した場合は、プロセス全体がアボートし、例外が投げられる。
【００９５】
[0070]複雑さの多くは、またセッション再生アルゴリズムの「スマートさ」の源は、内側のｗｈｉｌｅループ中にある。内側のループは、タグ付けされたセッション中の次の状態（Ｓｕ）を首尾よく一般化した各一般化プラン（ｇｐ）を、優先順位の高い順にチェックする。ｇｐから、タグ付けされたセッション中の元のイベントＥｔのタイプに基づいて、一般化メソッド（ｇｍ）並びに一般化イベント（Ｅｇ）を得る。次いで、現在の具体的状態Ｓｃを用いてＥｇをインスタンス化するようｇｍに依頼する。このようなインスタンス化が成功した場合は、得られた具体的イベント（Ｅｃ）を使用して、更新された現在の具体的状態を導出する。
【００９６】
[0071]タグ付けされたセッション中のイベントは、モバイルデバイスから１つずつ再生することができるが、そのような再生は、インターネットへの固定回線の高速接続を有し計算容量がより大きいプロキシサーバにおいて実行する方がよい場合がある。このようなプロキシサーバにおいてタグ付けされたセッションをリモート再生することで、より遅くレイテンシの長いワイヤレスアクセスネットワークの中を通る要求の数及びデータの量が低減され、場合によっては最小限に抑えられる。また、各イベントの「スマートな」再生に関係する処理も高速化される。この結果、このようなリモート実行によってタグ付けされたセッションを再生することは、遥かに短時間で済み、ユーザ体験を改善する。
【００９７】
[0072]図８に、タグ付けされたセッションのリモート実行に関係する操作を示す。図８を参照すると、まず、タグ付けされたセッションは、ユーザの最新の対話状態と共に、モバイルハンドセット８０１からプロキシサーバ８０２に送られる（１）。次に、プロキシサーバ８０２は、前述の手順を使用して、合致する状態の後に続くイベントを再生する。このプロセスの間、プロキシサーバ８０２は、１つ又は複数のウェブサーバ８０３に要求を送り、そのような（１つ又は複数の）サーバから応答を受信する（２）。最後のページロードイベントで、プロキシサーバ８０２は、ウェブサーバ８０３のうちの１つからページを得て、次いで、プロキシサーバ８０２上の現在の対話状態と共に、ページをモバイルハンドセット８０１に渡す（３）。次いでモバイルハンドセット８０１は、最後のページのリソースをロードし、残りのイベントの再生を完了する。ステップ（２）では、ページロードイベントのために、プロキシサーバ８０２はページのＨＴＭＬテキストをダウンロードするだけで済み、画像やスクリプトなどのリソースをダウンロードする必要はないことに留意されたい。
【００９８】
[0073]ユーザがタグ付けされたセッションを手動で実施することと比較して、リモート実行によるセッション再生は、以下の理由でより効率的である。すなわち、ページのレンダリングがより少なく、モバイルデバイス上では最後のページをレンダリングするだけで済むことと、ウェブサーバからダウンロードされるデータがより少なく、最後のページを除いては、ページに埋め込まれたダウンロードすべきリソースがないことと、より遅くよりレイテンシの長いワイヤレスアクセスネットワークの中を通る要求の数及びデータの総量が、より少ないことである。最後のページ、それに加えてシステムの少量のオーバヘッド（タグ付けされたセッション及び対話状態）が、モバイルデバイスとプロキシサーバとの間で送信される。
【００９９】
[0074]以下の図１０に、テキスト形式で記憶された記録済みセッション（後述する期限切れｅＢａｙオークションの例についての）を示す。図１０を参照すると、セッションは、１０個の状態（初期状態（この場合では、デフォルト開始状態である状態０）を含む）及び９個のイベントを有する。
【０１００】
（サンプル使用ケース）
（自発的ブログ記入）
[0075]自発的ブログ記入については上に述べた。この使用ケースでは、ユーザがセッションのタグ付けを要求すると、システムは、ユーザがｇｉｚｍｏｄｏ．ｃｏｍホームページを開いたときからセッションが開始されたと見なすことになる可能性が高い。しかしその後、ユーザが別のウェブサイトに行き、記事内の何らかのテキストを強調表示し、自発的ブログ記入セッションの再生をシステムに要求すると、システムは、「Ｇｅｎ  Ｐｌａｎ  ６（図６参照）」が、ユーザの現在状態と、Ｇｉｚｍｏｄｏ記事を強調表示した後のユーザの状態とを同じ一般化状態に抽象化する一般化プランであると認識する。この場合、システムは、ここから開始して残りのイベントを再生する。
【０１０１】
（期限切れｅＢａｙオークション）
[0076]この例では、ユーザが特定の収集品（例えばアンティーク印章）に関心があり、１〜２分の自由時間があるときはいつでも、現在何がｅＢａｙでオークションにかけられているかチェックしたいと思っていると考えてみる。ユーザは、ｅＢａｙのホームページに行き、「アンティーク印章」とタイプ入力し、ｅＢａｙで検索することができる（図９（ａ））。検索結果が新規ページにロードされた後（図９（ｂ））、ユーザは、オークション商品を期限切れ時刻でソートし（図９（ｃ））、最後に、最も早く期限切れになる商品に関するページをクリックして開く（図９（ｄ））。
【０１０２】
[0077]この使用ケースでは、システムは、セッションの開始を、ユーザがｅｂａｙ．ｃｏｍホームページに行くときとして正しく見なす。ユーザが現在ランダムなウェブサイトにいるときにセッションの再生を要求すると、システムは、タグ付けされたセッションの第１の状態から開始する。その理由は、どの一般化プランも、他のいずれかの状態及びユーザの現在状態を全く同様に抽象化することができないからである。
【０１０３】
（エクスプレスチェックアウト）
[0078]この例では、ユーザが時々オンラインショッピングサイトを使用して小物を購入すると考えてみる（図１１（ａ））。ユーザは、ショッピングカートに行き、欲しい商品を見つけ（図１１（ｂ））、精算ボタンをクリックする。これにより、ユーザは配送及び支払情報を入力するためのフォームに導かれ（図１１（ｃ））、最後に自分の注文の最終見直しのためのページに行く（図１１（ｄ））。画面上では（図１１（ｃ））、顧客名や配送情報などいくらかの情報はすでに自動的に記入されているが、ユーザはなお支払関連情報を記入する必要があることに留意されたい。システムは、ａｍａｚｏｎ．ｃｏｍなどのサイトにおける「エクスプレスチェックアウト」に類似するものを様々な理由でサポートしないサイトの場合には、それを自分で生み出すオプションをユーザに提供する。
【０１０４】
（コンピュータシステムの一例）
図１２は、本明細書において説明される１つ又は複数の操作を実行することができる例示的なコンピュータシステムを示すブロック図である。図１２を参照すると、コンピュータシステム１２００は、例示的なクライアント又はサーバコンピュータシステムを備えることができる。コンピュータシステム１２００は、情報を通信するための通信機構又はバス１２１１と、情報を処理するためにバス１２１１に結合されたプロセッサ１２１２とを備える。プロセッサ１２１２は、マイクロプロセッサを含むが、例えばＰｅｎｔｉｕｍ（登録商標）、ＰｏｗｅｒＰＣ（登録商標）、Ａｌｐｈａ（登録商標）などのようなマイクロプロセッサに限定されることはない。
【０１０５】
システム１２００は、プロセッサ１２１２によって実行されるべき情報及び命令を記憶するためにバス１２１１に結合された、ランダムアクセスメモリ（ＲＡＭ）又はその他の動的記憶デバイス１２０４（メインメモリとして示される）を更に備える。メインメモリ１２０４はまた、プロセッサ１２１２による命令の実行中に、一時変数又は他の中間情報を記憶するために使用されてもよい。
【０１０６】
コンピュータシステム１２００はまた、プロセッサ１２１２のための静的情報及び命令を記憶するためにバス１２１１に結合された、読取専用メモリ（ＲＯＭ）及び／又は他の静的記憶デバイス１２０６と、磁気ディスク又は光ディスク及びそれに対応するディスクドライブなどのデータ記憶デバイス１２０７とを備える。データ記憶デバイス１２０７は、情報及び命令を記憶するためにバス１２１１に結合される。
【０１０７】
コンピュータシステム１２００は、コンピュータユーザに情報を表示するためにバス１２１１に結合された、陰極線管（ＣＲＴ）や液晶表示装置（ＬＣＤ）などの表示デバイス１２２１に更に結合されてもよい。情報及びコマンド選択をプロセッサ１２１２に通信するために、文字数字キー及び他のキーを備える文字数字入力デバイス１２２２をバス１２１１に結合させることもできる。追加のユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ１２１２に通信するため、及び表示装置１２２１上のカーソル移動を制御するためにバス１２１１に結合された、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーなどのカーソルコントロール１２２３である。
【０１０８】
バス１２１１に結合することができる別のデバイスは、ハードコピーデバイス１２２４であるが、これは紙、フィルム、又は類似のタイプの媒体上に情報を記憶するために使用されてもよい。バス１２１１に結合することができる別のデバイスは、電話機又は手持ち式パームデバイスと通信するための、有線／ワイヤレス通信機能１２２５である。
【０１０９】
本発明では、システム１２００のいずれか又は全てのコンポーネント、及び関連するハードウェアを使用することができることに留意されたい。しかし、コンピュータシステムの他の構成がこれらのデバイスのいくつか又は全てを含んでもよいことを理解することができる。また、これらのコンポーネントのいくつか又は全てを、本明細書に述べた機能を実施するモバイルデバイス（例えばハンドセット）に含めることもできることに留意されたい。
【０１１０】
前述の説明を読んだ後、当業者にはおそらく、本発明の多くの改変及び修正が明らかとなるであろうが、例示として図示及び記述されたどんな特定の実施形態も、限定的なものと見なされることは決して意図されていないことを理解されたい。従って、様々な実施形態の詳細への参照は、それ自体が本発明に必須であると見なされる特徴のみを列挙する特許請求の範囲を限定することを意図されていない。
【産業上の利用可能性】
【０１１１】
本発明の実施形態は、ユーザによってデバイス上で実施されるタスクの記録及び再生の分野に関する。より詳細には、本発明の実施形態は、モバイルハンドセットユーザのためのウェブベースのタスクの記録及び再生に関する。
【図１】
2011159281.tif 000003
【図２】
2011159281.tif 000004
【図３】
2011159281.tif 000005
【図４】
2011159281.tif 000006
【図５】
2011159281.tif 000007
【図６】
2011159281.tif 000008
【図７】
2011159281.tif 000009
【図８】
2011159281.tif 000010
【図９】
2011159281.tif 000011
【図１０】
2011159281.tif 000012
【図１１】
2011159281.tif 000013
【図１２】
2011159281.tif 000014
【外国語明細書】
2011159281000001.pdf