(57)【要約】  ウェブ・ソケット接続を介してコンピューティング・デバイス上の参加者にとってアクセス可能な共同ワークスペースの表現を送信することと、テキスト、ユーザ・アクセス可能な制御、及びコンテンツ・ファイルを含み、テキスト及びユーザ・アクセス可能な制御を表示し、表示制御の選択に応答してコンテンツ・ファイルを開くように構成された、拡充ノート・データ・オブジェクトを生成することと、拡充ノート・データ・オブジェクトを共同ワークスペースの表現内の選択された位置に関連付けるユーザ入力を検出することと、ウェブ・ソケット接続を介して、拡充ノート・データ・オブジェクト、選択された位置、及びコマンドをサーバに送信することであって、コマンドが、サーバに、拡充ノート・データ・オブジェクト及び選択された位置をコンピューティング・デバイスに伝えることを行わせるように構成される、送信することとを含む、ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を介して拡充ノート・データ・オブジェクトを伝えるためのシステム、方法及びコンピュータ可読媒体。
2021533456.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を介して拡充ノート・データ・オブジェクトを伝えるための方法であって、
ローカル・コンピューティング・デバイスのユーザ・インターフェース上で、サーバ上にホストされ、ウェブ・ソケット接続を介して複数のコンピューティング・デバイス上の複数の参加者にとってアクセス可能な、共同ワークスペースの表現を送信するステップと、
前記ローカル・コンピューティング・デバイスによって、テキスト、１つ又は複数のユーザ・アクセス可能な制御、及び少なくとも１つのコンテンツ・ファイルを含む、拡充ノート・データ・オブジェクトを生成するステップであって、前記拡充ノート・データ・オブジェクトが、前記テキスト及び前記１つ又は複数のユーザ・アクセス可能な制御を表示するように構成され、前記１つ又は複数のユーザ・アクセス可能な制御での表示制御の選択に応答して、前記少なくとも１つのコンテンツ・ファイルを開くようにさらに構成される、生成するステップと、
前記ローカル・コンピューティング・デバイスによって、前記拡充ノート・データ・オブジェクトを前記共同ワークスペースの前記表現内の選択された位置に関連付けるユーザ入力を検出するステップと、
前記ローカル・コンピューティング・デバイスによって、前記ウェブ・ソケット接続を介して、前記拡充ノート・データ・オブジェクト、前記選択された位置、及び前記１つ又は複数のコマンドを前記サーバに送信するステップであって、前記１つ又は複数のコマンドが、前記サーバに、前記拡充ノート・データ・オブジェクト及び前記選択された位置を前記複数のコンピューティング・デバイスに伝えることを行わせるように構成される、送信するステップと
を含む方法。
【請求項２】
前記拡充ノート・データ・オブジェクトが、前記少なくとも１つのコンテンツ・ファイルに関連付けられたアプリケーションを検出するようにさらに構成される、請求項１に記載の方法。
【請求項３】
前記拡充ノート・データ・オブジェクトが、
前記表示制御の選択を検出すること、
コンテンツ表示エリア内の前記少なくとも１つのコンテンツ・ファイルに関連付けられた前記アプリケーションを初期化すること、及び
前記初期化されたアプリケーションに前記少なくとも１つのコンテンツ・ファイルをロードすること
によって、前記１つ又は複数のユーザ・アクセス可能な制御での前記表示制御の選択に応答して、前記少なくとも１つのコンテンツ・ファイルを開くように構成される、請求項２に記載の方法。
【請求項４】
前記拡充ノート・データ・オブジェクトが、前記テキスト及び前記１つ又は複数のユーザ・アクセス可能な制御を１次表示エリアに表示するようにさらに構成され、コンテンツ表示エリアが前記１次表示エリアに隣接している、請求項３に記載の方法。
【請求項５】
前記１つ又は複数のユーザ・アクセス可能な制御がプライバシー制御を備え、前記拡充ノート・データ・オブジェクトが、
前記表示制御又は前記プライバシー制御のいずれかの選択に応答して、前記拡充ノート・データ・オブジェクトに関連付けられたアクセス制御メカニズムがあるかどうかを判定し、
前記少なくとも１つのコンテンツ・ファイルを開く前に、前記プライバシー制御がアクティブ化されているという判断に少なくとも部分的に基づいて認証チェックを実行する
ようにさらに構成される、請求項１に記載の方法。
【請求項６】
前記拡充ノート・データ・オブジェクトが、前記認証チェックが失敗した場合、前記少なくとも１つのコンテンツ・ファイルへのアクセスを拒否するようにさらに構成される、請求項５に記載の方法。
【請求項７】
前記１つ又は複数のユーザ・アクセス可能な制御がアラート制御を備え、前記拡充ノート・データ・オブジェクトが、
前記拡充ノート・データ・オブジェクトの作成者から前記アラート制御を介して、アラート日時及びアラート通知の選択を受信し、
前記拡充ノート・データ・オブジェクトを記憶している任意のコンピューティング・デバイス上の前記アラート通知を前記アラート日時に送信する
ようにさらに構成される、請求項１に記載の方法。
【請求項８】
前記サーバが、前記複数のコンピューティング・デバイス中の前記ローカル・コンピューティング・デバイス又はコンピューティング・デバイスのいずれかを備える、請求項１に記載の方法。
【請求項９】
前記複数のコンピューティング・デバイス中の各コンピューティング・デバイスが、前記拡充ノート・データ・オブジェクトを前記共同ワークスペースのローカル表現内の前記選択された位置に挿入するように構成される、請求項１に記載の方法。
【請求項１０】
前記拡充ノート・データ・オブジェクトが、前記テキスト及び前記１つ又は複数のユーザ・アクセス可能な制御を、前記拡充ノート・データ・オブジェクトによって定義される拡充ノート・ユーザ・インターフェース要素内に表示するように構成される、請求項１に記載の方法。
【請求項１１】
ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を介して拡充ノート・データ・オブジェクトを伝えるためのローカル・コンピューティング・デバイスであって、
１つ又は複数のプロセッサと、
前記１つ又は複数のプロセッサのうちの少なくとも１つに動作可能に結合され、前記１つ又は複数のプロセッサのうちの少なくとも１つによって実行されたとき、前記１つ又は複数のプロセッサのうちの少なくとも１つに、
前記ローカル・コンピューティング・デバイスのユーザ・インターフェース上で、サーバ上にホストされ、ウェブ・ソケット接続を介して複数のコンピューティング・デバイス上の複数の参加者にとってアクセス可能な、共同ワークスペースの表現を送信することと、
テキスト、１つ又は複数のユーザ・アクセス可能な制御、及び少なくとも１つのコンテンツ・ファイルを含む、拡充ノート・データ・オブジェクトを生成することであって、前記拡充ノート・データ・オブジェクトが、前記テキスト及び前記１つ又は複数のユーザ・アクセス可能な制御を表示するように構成され、前記１つ又は複数のユーザ・アクセス可能な制御での表示制御の選択に応答して、前記少なくとも１つのコンテンツ・ファイルを開くようにさらに構成される、生成することと、
前記拡充ノート・データ・オブジェクトを前記共同ワークスペースの前記表現内の選択された位置に関連付けるユーザ入力を検出することと、
前記ウェブ・ソケット接続を介して、前記拡充ノート・データ・オブジェクト、前記選択された位置、及び前記１つ又は複数のコマンドを前記サーバに送信することであって、前記１つ又は複数のコマンドが、前記サーバに、前記拡充ノート・データ・オブジェクト及び前記選択された位置を前記複数のコンピューティング・デバイスに伝えることを行わせるように構成される、送信することと
を行わせる命令を記憶した、１つ又は複数のメモリと
を備える、ローカル・コンピューティング・デバイス。
【請求項１２】
前記拡充ノート・データ・オブジェクトが、前記少なくとも１つのコンテンツ・ファイルに関連付けられたアプリケーションを検出するようにさらに構成される、請求項１１に記載のローカル・コンピューティング・デバイス。
【請求項１３】
前記拡充ノート・データ・オブジェクトが、
前記表示制御の選択を検出すること、
コンテンツ表示エリア内の前記少なくとも１つのコンテンツ・ファイルに関連付けられた前記アプリケーションを初期化すること、及び
前記初期化されたアプリケーションに前記少なくとも１つのコンテンツ・ファイルをロードすること
によって、前記１つ又は複数のユーザ・アクセス可能な制御での前記表示制御の選択に応答して、前記少なくとも１つのコンテンツ・ファイルを開くように構成される、請求項１２に記載のローカル・コンピューティング・デバイス。
【請求項１４】
前記拡充ノート・データ・オブジェクトが、前記テキスト及び前記１つ又は複数のユーザ・アクセス可能な制御を１次表示エリアに表示するようにさらに構成され、コンテンツ表示エリアが前記１次表示エリアに隣接している、請求項１３に記載のローカル・コンピューティング・デバイス。
【請求項１５】
前記１つ又は複数のユーザ・アクセス可能な制御がプライバシー制御を備え、前記拡充ノート・データ・オブジェクトが、
前記表示制御又は前記プライバシー制御のいずれかの選択に応答して、前記拡充ノート・データ・オブジェクトに関連付けられたアクセス制御メカニズムがあるかどうかを判定し、
前記少なくとも１つのコンテンツ・ファイルを開く前に、前記プライバシー制御がアクティブ化されているという判断に少なくとも部分的に基づいて認証チェックを実行する
ようにさらに構成される、請求項１１に記載のローカル・コンピューティング・デバイス。
【請求項１６】
前記拡充ノート・データ・オブジェクトが、前記認証チェックが失敗した場合、前記少なくとも１つのコンテンツ・ファイルへのアクセスを拒否するようにさらに構成される、請求項１５に記載のローカル・コンピューティング・デバイス。
【請求項１７】
前記１つ又は複数のユーザ・アクセス可能な制御がアラート制御を備え、前記拡充ノート・データ・オブジェクトが、
前記拡充ノート・データ・オブジェクトの作成者から前記アラート制御を介して、アラート日時及びアラート通知の選択を受信し、
前記拡充ノート・データ・オブジェクトを記憶している任意のコンピューティング・デバイス上の前記アラート通知を前記アラート日時に送信する
ようにさらに構成される、請求項１１に記載のローカル・コンピューティング・デバイス。
【請求項１８】
前記サーバが、前記複数のコンピューティング・デバイス中の前記ローカル・コンピューティング・デバイス又はコンピューティング・デバイスのいずれかを備える、請求項１１に記載のローカル・コンピューティング・デバイス。
【請求項１９】
前記複数のコンピューティング・デバイス中の各コンピューティング・デバイスが、前記拡充ノート・データ・オブジェクトを前記共同ワークスペースのローカル表現内の前記選択された位置に挿入するように構成される、請求項１１に記載のローカル・コンピューティング・デバイス。
【請求項２０】
前記拡充ノート・データ・オブジェクトが、前記テキスト及び前記１つ又は複数のユーザ・アクセス可能な制御を、前記拡充ノート・データ・オブジェクトによって定義される拡充ノート・ユーザ・インターフェース要素内に表示するように構成される、請求項１１に記載のローカル・コンピューティング・デバイス。
【請求項２１】
ローカル・コンピューティング・デバイスによって実行されたとき、前記ローカル・コンピューティング・デバイスに、
前記ローカル・コンピューティング・デバイスのユーザ・インターフェース上で、サーバ上にホストされ、ウェブ・ソケット接続を介して複数のコンピューティング・デバイス上の複数の参加者にとってアクセス可能な、共同ワークスペースの表現を送信することと、
テキスト、１つ又は複数のユーザ・アクセス可能な制御、及び少なくとも１つのコンテンツ・ファイルを含む、拡充ノート・データ・オブジェクトを生成することであって、前記拡充ノート・データ・オブジェクトが、前記テキスト及び前記１つ又は複数のユーザ・アクセス可能な制御を表示するように構成され、前記１つ又は複数のユーザ・アクセス可能な制御での表示制御の選択に応答して、前記少なくとも１つのコンテンツ・ファイルを開くようにさらに構成される、生成することと、
前記拡充ノート・データ・オブジェクトを前記共同ワークスペースの前記表現内の選択された位置に関連付けるユーザ入力を検出することと、
前記ウェブ・ソケット接続を介して、前記拡充ノート・データ・オブジェクト、前記選択された位置、及び前記１つ又は複数のコマンドを前記サーバに送信することであって、前記１つ又は複数のコマンドが、前記サーバに、前記拡充ノート・データ・オブジェクト及び前記選択された位置を前記複数のコンピューティング・デバイスに伝えることを行わせるように構成される、送信することと
を行わせるコンピュータ可読命令を記憶する、少なくとも１つの非一時的コンピュータ可読媒体。
【請求項２２】
前記拡充ノート・データ・オブジェクトが、前記少なくとも１つのコンテンツ・ファイルに関連付けられたアプリケーションを検出するようにさらに構成される、請求項２１に記載の少なくとも１つの非一時的コンピュータ可読媒体。
【請求項２３】
前記拡充ノート・データ・オブジェクトが、
前記表示制御の選択を検出すること、
コンテンツ表示エリア内の前記少なくとも１つのコンテンツ・ファイルに関連付けられた前記アプリケーションを初期化すること、及び
前記初期化されたアプリケーションに前記少なくとも１つのコンテンツ・ファイルをロードすること
によって、前記１つ又は複数のユーザ・アクセス可能な制御での前記表示制御の選択に応答して、前記少なくとも１つのコンテンツ・ファイルを開くように構成される、請求項２２に記載の少なくとも１つの非一時的コンピュータ可読媒体。
【請求項２４】
前記拡充ノート・データ・オブジェクトが、前記テキスト及び前記１つ又は複数のユーザ・アクセス可能な制御を１次表示エリアに表示するようにさらに構成され、コンテンツ表示エリアが前記１次表示エリアに隣接している、請求項２３に記載の少なくとも１つの非一時的コンピュータ可読媒体。
【請求項２５】
前記１つ又は複数のユーザ・アクセス可能な制御がプライバシー制御を備え、前記拡充ノート・データ・オブジェクトが、
前記表示制御又は前記プライバシー制御のいずれかの選択に応答して、前記拡充ノート・データ・オブジェクトに関連付けられたアクセス制御メカニズムがあるかどうかを判定し、
前記少なくとも１つのコンテンツ・ファイルを開く前に、前記プライバシー制御がアクティブ化されているという判断に少なくとも部分的に基づいて認証チェックを実行する
ようにさらに構成される、請求項２１に記載の少なくとも１つの非一時的コンピュータ可読媒体。
【請求項２６】
前記拡充ノート・データ・オブジェクトが、前記認証チェックが失敗した場合、前記少なくとも１つのコンテンツ・ファイルへのアクセスを拒否するようにさらに構成される、請求項２５に記載の少なくとも１つの非一時的コンピュータ可読媒体。
【請求項２７】
前記１つ又は複数のユーザ・アクセス可能な制御がアラート制御を備え、前記拡充ノート・データ・オブジェクトが、
前記拡充ノート・データ・オブジェクトの作成者から前記アラート制御を介して、アラート日時及びアラート通知の選択を受信し、
前記拡充ノート・データ・オブジェクトを記憶している任意のコンピューティング・デバイス上の前記アラート通知を前記アラート日時に送信する
ようにさらに構成される、請求項２１に記載の少なくとも１つの非一時的コンピュータ可読媒体。
【請求項２８】
前記サーバが、前記複数のコンピューティング・デバイス中の前記ローカル・コンピューティング・デバイス又はコンピューティング・デバイスのいずれかを備える、請求項２１に記載の少なくとも１つの非一時的コンピュータ可読媒体。
【請求項２９】
前記複数のコンピューティング・デバイス中の各コンピューティング・デバイスが、前記拡充ノート・データ・オブジェクトを前記共同ワークスペースのローカル表現内の前記選択された位置に挿入するように構成される、請求項２１に記載の少なくとも１つの非一時的コンピュータ可読媒体。
【請求項３０】
前記拡充ノート・データ・オブジェクトが、前記テキスト及び前記１つ又は複数のユーザ・アクセス可能な制御を、前記拡充ノート・データ・オブジェクトによって定義される拡充ノート・ユーザ・インターフェース要素内に表示するように構成される、請求項２１に記載の少なくとも１つの非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
オペレーティング・システム、及びオペレーティング・システム内で実行するアプリケーションは、ユーザがプログラムに入力を与えることと、ユーザに出力を与えることとを可能にするために、外部ハードウェア・デバイスを頻繁に利用する。外部ハードウェア・デバイスの一般的な実例は、キーボード、コンピュータ・マウス、マイクロフォン、及び外部スピーカーを含む。これらの外部ハードウェア・デバイスは、ドライバの使用によってオペレーティング・システムとインターフェースし、ドライバは、特定のハードウェア・デバイスによって使用されるハードウェア・コマンドとオペレーティング・システムとの間をインターフェースするように構成された専用ソフトウェア・プログラムである。
【０００２】
アプリケーションは、いくつかのハードウェア・デバイスとインターフェースするように設計されることがある。たとえば、音声−テキスト・ワード・プロセッシング・アプリケーションが、マイクロフォンを含むオーディオ・ヘッドセットとインターフェースするように設計され得る。この場合、アプリケーションは、特に、音声コマンドを受信し、音声認識を実施し、認識されたワードをテキスト・コンテンツに変換し、テキスト・コンテンツを文書に出力するように構成されなければならない。この機能性は、一般に、様々なソフトウェア構成要素間の通信の定義された方法のセットである、アプリケーションのアプリケーション・プログラミング・インターフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）において実施されることになる。音声認識アプリケーションの実例では、ＡＰＩは、アプリケーション・プログラムとドライバ上のソフトウェアとの間のインターフェースを含むことができ、これは、ハードウェア・デバイス（マイクロフォン）自体とインターフェースすることを担当する。
【０００３】
専用ハードウェア・デバイスを利用する既存のソフトウェアの１つの問題は、アプリケーション又はオペレーティング・システム・ソフトウェア自体が、ハードウェア・デバイスを利用するために、カスタマイズされ、特別に設計されなければならないことである。このカスタマイゼーションは、ハードウェア・デバイスが、アプリケーションによって、そのために定義された範囲を超えることができず、それが使用されるように設計された特定のアプリケーション以外のコンテキストのために利用され得ないことを意味する。たとえば、音声テキスト・ワード・プロセッシング・アプリケーションのユーザは、オペレーティング・システム内の他のアプリケーション・プログラム又は他の構成要素を、それらの他のアプリケーション・プログラム又はオペレーティング・システムが、マイクロフォンを介して受信される音声コマンドを利用するように特別に設計されない限り、音声コマンドを使用して操作することができない。
【０００４】
図１は、ユーザ入力のために、結合されたハードウェア・デバイスを利用するシステムの既存のアーキテクチャの一実例を示す。図１のオペレーティング・システム１００Ａは、実行アプリケーション１０１Ａ及び１０２Ａを含み、それらの各々は、それぞれ、それら自体のＡＰＩ１０１Ｂ及び１０２Ｂを有する。オペレーティング・システム１００Ａはまた、それ自体のＡＰＩ１００Ｂ、並びにハードウェア・デバイス１００Ｄ、１０１Ｄ、及び１０２Ｄとインターフェースするように構成された専用ドライバ１００Ｃ、１０１Ｃ、及び１０２Ｃを有する。
【０００５】
図１に示されているように、アプリケーションＡＰＩ１０１Ｂは、ドライバ１０１Ｃとインターフェースするように構成され、ドライバ１０１Ｃ自体は、ハードウェア・デバイス１０１Ｄとインターフェースする。同様に、アプリケーションＡＰＩ１０２Ｂは、ドライバ１０２Ｃとインターフェースするように構成され、ドライバ１０２Ｃ自体は、ハードウェア・デバイス１０２Ｄとインターフェースする。オペレーティング・システム・レベルにおいて、オペレーティング・システムＡＰＩ１００Ｂは、ドライバ１００Ｃとインターフェースするように構成され、ドライバ１００Ｃ自体は、ハードウェア・デバイス１００Ｄとインターフェースする。
【０００６】
図１に示されているシステムのアーキテクチャは、いくつかのアプリケーション又はオペレーティング・システム・コンテキスト外でハードウェア・デバイスを利用するユーザの能力を限定する。たとえば、ユーザは、アプリケーション１０２Ａに入力を与えるためにハードウェア・デバイス１０１Ｄを利用することができず、アプリケーション１０１Ａに又はオペレーティング・システム１００Ａに入力を与えるためにハードウェア・デバイス１０２Ｄを利用することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、複数のソフトウェア・コンテキストにおけるハードウェア・デバイスの利用を可能にする、ハードウェア・ソフトウェア・インターフェースの改善が必要とされる。
【図面の簡単な説明】
【０００８】
【図１】ユーザ入力のために、結合されたハードウェア・デバイスを利用するシステムの既存のアーキテクチャの一実例を示す図である。
【図２】例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースを利用するシステムのアーキテクチャを示す図である。
【図３】例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のためのフローチャートである。
【図４】例示的な実施例による、システムに通信可能に結合された１つ又は複数のハードウェア・デバイスによってキャプチャされた情報が１つ又は複数の画像を含むときの、１つ又は複数のハードウェア・デバイスによってキャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートである。
【図５Ａ】例示的な実施例による、オブジェクト認識の一実例を示す図である。
【図５Ｂ】例示的な実施例による、入力ロケーション座標を決定することの一実例を示す図である。
【図６】例示的な実施例による、システムに通信可能に結合された１つ又は複数のハードウェア・デバイスによってキャプチャされた情報が音情報であるときの、キャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートである。
【図７】例示的な実施例による、透明層の一部であり得るツール・インターフェースを示す図である。
【図８】例示的な実施例による、システムの一部であり得るスタイラスの一実例を示す図である。
【図９】例示的な実施例による、ユーザ入力に対応するコンテキストを識別するためのフローチャートである。
【図１０】例示的な実施例による、コンテキストを決定するために入力座標を使用することの一実例を示す図である。
【図１１】例示的な実施例による、ユーザ入力を透明層コマンドに変換するためのフローチャートである。
【図１２Ａ】例示的な実施例による、選択モードがトグルされるときの、入力座標を受信することの一実例を示す図である。
【図１２Ｂ】例示的な実施例による、ポインティング・モードがトグルされるときの、入力座標を受信することの一実例を示す図である。
【図１２Ｃ】例示的な実施例による、描画モード（ｄｒａｗｉｎｇ  ｍｏｄｅ）がトグルされるときの、入力座標を受信することの一実例を示す図である。
【図１３】例示的な実施例による、入力音声データ中で識別された１つ又は複数のワードに基づいて決定される透明層コマンドの一実例を示す図である。
【図１４】例示的な実施例による、入力音声データ中で識別された１つ又は複数のワードに基づいて決定される透明層コマンドの別の実例を示す図である。
【図１５】例示的な実施例による、透明層上で１つ又は複数の透明層コマンドを実行するためのフローチャートである。
【図１６】例示的な実施例による、ユーザ入力に対応する新しいコマンドを追加するための例示的なインターフェースを示す図である。
【図１７】例示的な実施例による、描画インターフェース及び描画モード（ｄｒａｗ  ｍｏｄｅ）の様々な構成要素及びオプションを示す図である。
【図１８】例示的な実施例による、オブジェクトを認識するために使用され、ユーザがタッチ及びジェスチャーを使用して入力を与えることを可能にする、ビデオ・カメラ・ハードウェア・デバイスのための較正及び設定インターフェースを示す図である。
【図１９】例示的な実施例による、ユーザが、インターフェースの様々な態様をカスタマイズし、入力モードをトグルし、他の交換を行うことを可能にする、一般的な設定インターフェースを示す図である。
【図２０】例示的な実施例による、ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を介して拡充ノート（ｅｎｒｉｃｈｅｄ  ｎｏｔｅ）・データ・オブジェクトを伝えるためのフローチャートである。
【図２１Ａ】例示的な実施例による、共同ワークスペースをホストし、送信するために使用されるネットワーク・アーキテクチャを示す図である。
【図２１Ｂ】例示的な実施例による、ネットワーク内で共同ワークスペースに対する編集を伝えるためのプロセスを示す図である。
【図２２】例示的な実施例による、共同ワークスペースの複数の表現を示す図である。
【図２３Ａ】例示的な実施例による、ネットワーク化された共同ワークスペース内で拡充ノート・データ・オブジェクトを生成するために使用されるプロセスを示す図である。
【図２３Ｂ】例示的な実施例による、ネットワーク化された共同ワークスペース内で拡充ノート・データ・オブジェクトを生成するために使用されるプロセスを示す図である。
【図２４】例示的な実施例による、生成された拡充ノート２４００を示す図である。
【図２５Ａ】例示的な実施例による、拡充ノート・データ・オブジェクトを共同ワークスペースの表現内の選択された位置に関連付けるユーザ入力を検出することの一実例を示す図である。
【図２５Ｂ】例示的な実施例による、拡充ノート・データ・オブジェクトを共同ワークスペースの表現内の選択された位置に関連付けるユーザ入力を検出することの一実例を示す図である。
【図２６】例示的な実施例による、拡充ノート・データ・オブジェクトを伝えるためのプロセスを示す図である。
【図２７】例示的な実施例による、共同ワークスペースの複数のインスタンスに関する拡充ノートを示す図である。
【図２８】例示的な実施例による、拡充ノートとのユーザ対話の実例を示す図である。
【図２９】例示的な実施例による、拡充ノートとのユーザ対話の実例を示す図である。
【図３０】例示的な実施例による、拡充ノートとのユーザ対話の実例を示す図である。
【図３１】例示的な実施例による、拡充ノートとのユーザ対話の実例を示す図である。
【図３２】例示的な実施例による、拡充ノートとのユーザ対話の実例を示す図である。
【図３３】開示される方法を行うように構成された例示的なコンピューティング環境を示す図である。
【発明を実施するための形態】
【０００９】
方法、装置、及びコンピュータ可読媒体は、実例及び実施例として本明細書で説明されるが、当業者は、ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のための方法、装置、及びコンピュータ可読媒体が、説明される実施例又は図面に限定されないことを認識する。図面及び説明は、開示される特定の形式に限定されるものではないことを理解されたい。むしろ、意図は、添付の特許請求の範囲の趣旨及び範囲内に入るすべての修正、等価物及び代替をカバーすることである。本明細書で使用されるいかなる見出しも編成のためのものであるにすぎず、本明細書の範囲又は特許請求の範囲を限定するものではない。本明細書で使用される「することができる（ｃａｎ）」という単語は、強制的な意味（すなわち、しなければならない（ｍｕｓｔ）という意味）ではなく許容的な意味（すなわち、可能性を有するという意味）において使用される。同様に、「含む（ｉｎｃｌｕｄｅ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、及び「含む（ｉｎｃｌｕｄｅｓ）」という単語は、含むことを意味するが、それに限定されない。
【００１０】
出願人は、ハードウェア・デバイスのために使用される、以前のハードウェア・ソフトウェア・インターフェースに関連する問題を解決する方法、装置、及びコンピュータ可読媒体を発見した。特に、出願人は、ユーザが、様々なソフトウェア・コンテキストにおいて通信可能に結合されたハードウェア・デバイスを利用することを可能にするユニバーサル・ハードウェア・ソフトウェア・インターフェースを開発した。開示される実装形態は、以下でより詳細に説明されるように、専用仮想ドライバ及び対応する透明層の使用によって、アプリケーション又はオペレーティング・システムが特定のハードウェア・デバイスとインターフェースするように特注設計される必要を取り除く。
【００１１】
図２は、例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースを利用するシステムのアーキテクチャを示す。図２に示されているように、オペレーティング・システム２００Ａは、仮想ドライバ２０４と通信する透明層２０３を含む。以下でより詳細に説明されるように、透明層２０３は、仮想ドライバとオペレーティング・システム及び／又はオペレーティング・システム上で実行する（１つ又は複数の）アプリケーションとの間をインターフェースするように構成されたＡＰＩである。この例では、透明層２０３は、仮想ドライバ２０４と、アプリケーション２０１ＡのＡＰＩ２０１Ｂ、アプリケーション２０２ＡのＡＰＩ２０２Ｂ、及びオペレーティング・システム２００Ａのオペレーティング・システムＡＰＩ２００Ｂとの間をインターフェースする。
【００１２】
透明層２０３は、オペレーティング・システム上で動作するソフトウェア・プロセスの一部であり得、下位（ｕｎｄｅｒｌｙｉｎｇ）ユーザ・インターフェースの上に重ね合わせられた透明ユーザ・インターフェース（ＵＩ：ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）及び／又はユーザが対話することが可能である可視ＵＩ要素を含む、透明層２０３自体のＵＩ要素を有することができる。
【００１３】
仮想ドライバ２０４は、ドライバ２０５Ａ及び２０５Ｂをエミュレートするように構成され、ドライバ２０５Ａ及び２０５Ｂは、それぞれ、ハードウェア・デバイス２０６Ａ及び２０６Ｂとインターフェースする。仮想ドライバは、どの仮想ドライバをエミュレートすべきかについて仮想ドライバに命令する、たとえば、音声コマンド、ユーザ・インターフェース上で行われる選択、及び／又は結合されたウェブ・カメラの前でユーザによって行われるジェスチャーの形式の、ユーザ入力を受信することができる。たとえば、接続されたハードウェア・デバイスの各々は、「リスニング」モードにおいて動作することができ、仮想ドライバ２０４におけるエミュレートされるドライバの各々は、特定のエミュレーション・モードに切り替えるための仮想ドライバに対する信号として働く初期化信号を検出するように構成され得る。たとえば、ユーザが「音声コマンド開始」と述べることは、新しい音声コマンドを受信するためのマイクロフォンに対応するドライバをアクティブにすることができる。同様に、ユーザがあるジェスチャーを与えることは、ジェスチャー入力又はタッチ入力を受信するためのウェブ・カメラに対応するドライバをアクティブにすることができる。
【００１４】
仮想ドライバは、ネイティブ・ドライバ２０５Ｃなど、ネイティブ・ドライバとインターフェースするようにも構成され得、ネイティブ・ドライバ２０５Ｃ自体は、ハードウェア・デバイス２０６Ｃと通信する。一実例では、ハードウェア・デバイス２０６Ｃは、キーボード又はマウスなど、標準入力デバイスであり得、標準入力デバイスは、オペレーティング・システムによってネイティブにサポートされる。
【００１５】
図２に示されているシステムは、ユーザが、特定のアプリケーション又はオペレーティング・システムなどの様々なコンテキストにおいて任意の結合されたハードウェア・デバイスを、そのアプリケーション又はオペレーティング・システムがハードウェア・デバイスとインターフェースするようにカスタマイズされることを必要とすることなしに、利用することができるユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装を可能にする。
【００１６】
たとえば、ハードウェア・デバイス２０６Ａは、情報をキャプチャすることができ、その情報は、次いで、ドライバ２０５Ａをエミュレートする仮想ドライバ２０４によって受信される。仮想ドライバ２０４は、キャプチャされた情報に基づいて、ユーザ入力を決定することができる。たとえば、その情報が、ユーザがユーザの手を動かす一連の画像である場合、仮想ドライバは、ユーザがジェスチャーを実施したと決定することができる。
【００１７】
（特定のアプリケーション又はオペレーティング・システムなどの）識別されたコンテキストに基づいて、ユーザ入力は、実行のために透明層コマンドに変換され、透明層２０３に送信され得る。透明層コマンドは、識別されたコンテキストにおけるネイティブ・コマンドを含むことができる。たとえば、識別されたコンテキストがアプリケーション２０１Ａである場合、ネイティブ・コマンドは、アプリケーション２０１ＡのアプリケーションＡＰＩ２０１Ｂに適合するフォーマットのものであろう。次いで、透明層コマンドの実行が、識別されたコンテキストにおける１つ又は複数のネイティブ・コマンドの実行を引き起こすように構成され得る。これは、透明層２０３が、オペレーティング・システム２００Ａ並びにオペレーティング・システムＡＰＩ２００Ｂ上で実行するアプリケーションのＡＰＩの各々とインターフェースすることによって、達成される。たとえば、ネイティブ・コマンドが、新しいプログラムを起動するためのコマンドなど、オペレーティング・システム・コマンドである場合、透明層２０３は、実行のためにオペレーティング・システムＡＰＩ２００Ｂにそのネイティブ・コマンドを与えることができる。
【００１８】
図２に示されているように、示されている構成要素のすべての間で双方向通信がある。これは、たとえば、透明層２０３における透明層コマンドの実行が、仮想ドライバ２０４への情報の送信及び接続されたハードウェア・デバイスのうちの１つ上への情報の送信を生じることがあることを意味する。たとえば、音声コマンドが入力として認識され、ネイティブ・コマンドを含む透明層コマンドに変換され、透明層によって実行された（識別されたコンテキストにおけるネイティブ・コマンドの実行を生じた）後に、音出力「コマンドが受信されました」を送信するために、信号が（仮想ドライバを介して）透明層からスピーカーに送られ得る。
【００１９】
もちろん、図２に示されているアーキテクチャは、説明のためのものにすぎず、実行するアプリケーションの数、接続されたハードウェア・デバイスの数及びタイプ、ドライバ及びエミュレートされたドライバの数は変動することがあることを理解されたい。
【００２０】
図３は、例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のためのフローチャートである。
【００２１】
ステップ３０１において、システムに通信可能に結合された１つ又は複数のハードウェア・デバイスによってキャプチャされた情報に少なくとも部分的に基づいて、ユーザ入力が決定される。本明細書で使用されるシステムは、方法のステップを実行する１つ又は複数のコンピューティング・デバイス、方法のステップを実行する１つ又は複数のプロセッサと１つ又は複数のメモリとを備える装置、又は任意の他のコンピューティング・システムを指すことがある。
【００２２】
ユーザ入力は、システム上で実行する仮想ドライバによって決定され得る。前に説明されたように、仮想ドライバは、エミュレーション・モードにおいて動作していることがあり、エミュレーション・モードにおいて、仮想ドライバは、他のハードウェア・ドライバをエミュレートしており、それにより、ハードウェア・デバイスから、キャプチャされた情報を受信するか、又は随意に、特定のハードウェア・デバイスとインターフェースするように構成された１つ又は複数の他のハードウェア・ドライバから、キャプチャされた情報を受信することができる。
【００２３】
カメラ、ビデオ・カメラ、マイクロフォン、双方向通信を有するヘッドセット、マウス、タッチパッド、トラックパッド、コントローラ、ゲーム・パッド、ジョイスティック、タッチ・スクリーン、加速度計及び／又はチルト・センサーを含む動きキャプチャ・デバイス、遠隔制御装置、スタイラス、或いはこれらのデバイスの任意の組合せなど、様々なハードウェア・デバイスが利用され得る。もちろん、ハードウェア・デバイスのこのリストは、単に実例として与えられ、音声、画像、ビデオ、又はタッチ情報を検出するために利用され得る任意のハードウェア・デバイスが利用され得る。
【００２４】
ハードウェア・デバイスとシステムとの間の通信結合は、様々な形式をとることができる。たとえば、ハードウェア・デバイスは、ワイヤレス・ネットワーク、Ｂｌｕｅｔｏｏｔｈプロトコル、無線周波数、赤外線信号を介して、及び／又はユニバーサルシリアルバス（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）接続などの物理接続によってシステムと通信することができる。通信は、ワイヤレス通信とワイヤード通信の両方をも含むことができる。たとえば、ハードウェア・デバイスは、２つの構成要素を含むことができ、そのうちの１つが、第２の構成要素に（Ｂｌｕｅｔｏｏｔｈを介してなど）ワイヤレスに信号を送信し、第２の構成要素自体は、（ＵＳＢなどの）ワイヤード接続を介してシステムに接続する。様々な通信技法が本明細書で説明されるシステムに従って利用され得、これらの実例は、限定するものではない。
【００２５】
１つ又は複数のハードウェア・デバイスによってキャプチャされる情報は、１つ又は複数の画像を含む画像情報、ビデオのフレーム、音情報、及び／又はタッチ情報など、任意のタイプの情報であり得る。キャプチャされた情報は、音情報のための．ｗａｖ又は．ｍｐ３ファイル、画像のための．ｊｐｅｇファイル、タッチ情報のための数値座標など、任意の好適なフォーマットのものであり得る。
【００２６】
本明細書で説明される技法は、任意のディスプレイ・デバイスが、そのディスプレイ・デバイスが、タッチ信号又はタッチ・ベースのジェスチャーを検出するためのハードウェアを含まない場合でも、任意のコンテキストにおいて「タッチ」スクリーンデバイスとして事実上機能することを可能にすることができる。これは、以下でより詳細に説明され、カメラ又はビデオ・カメラによってキャプチャされた画像の分析を通して達成され得る。
【００２７】
図４は、システムに通信可能に結合された１つ又は複数のハードウェア・デバイスによってキャプチャされた情報が１つ又は複数の画像を含むときの、１つ又は複数のハードウェア・デバイスによってキャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートを示す。
【００２８】
ステップ４０１において、１つ又は複数の画像が受信される。これらの画像は、前に説明されたように、カメラ又はビデオ・カメラなど、ハードウェア・デバイスによってキャプチャされ得、仮想ドライバによって受信され得る。
【００２９】
ステップ４０２において、１つ又は複数の画像中のオブジェクトが認識される。オブジェクトは、たとえば、ユーザの手、指、又は他の身体部位であり得る。オブジェクトはまた、スタイラス又はペンなどの専用デバイス、或いはシステムに通信可能に結合され、加速度計及び／又はチルト・センサーを含んでいる動き追跡スタイラス／遠隔制御装置などの専用ハードウェア・デバイスであり得る。オブジェクト認識は、仮想ドライバによって実施され得、オブジェクトを使用して動作される較正ルーチンを通してなど、以前のトレーニングに基づき得る。
【００３０】
図５Ａは、例示的な実施例による、オブジェクト認識の一実例を示す。図５Ａに示されているように、画像５０１は、オブジェクト５０２として認識されたユーザの手を含む。認識アルゴリズムは、もちろん、指など、異なるオブジェクトを認識するように構成され得る。
【００３１】
図４に戻ると、ステップ４０３において、認識されたオブジェクトの１つ又は複数の配向と１つ又は複数の位置とが決定される。これは、様々なやリ方で達成され得る。オブジェクトがハードウェア・デバイスではなく、代わりに、手又は指など、身体部位である場合、オブジェクトは、オブジェクトの３次元座標と、Ｘ軸、Ｙ軸、及びＺ軸に対する様々な角度とを決定するために、カメラの既知のロケーションを基準点として使用する３次元座標系においてマッピングされ得る。オブジェクトがハードウェア・デバイスであり、加速度計及び／又はチルト・センサーなど、動き追跡ハードウェアを含む場合、画像情報は、オブジェクトの位置及び配向を決定するための加速度計及び／又はチルト・センサーによって示された情報とともに使用され得る。
【００３２】
ステップ４０４において、ユーザ入力は、認識されたオブジェクトの１つ又は複数の配向と１つ又は複数の位置とに少なくとも部分的に基づいて決定される。これは、１つ又は複数の配向と１つ又は複数の位置とに少なくとも部分的に基づいて、透明層の透明ユーザ・インターフェース（ＵＩ）上のロケーション座標を決定することを含むことができる。透明ＵＩは、透明層の一部であり、オペレーティング・システム及び／又はオペレーティング・システム上で実行する任意のアプリケーションに対応する下位ＵＩの上に重ね合わせられる。
【００３３】
図５Ｂは、オブジェクトがユーザの指であるときの、このステップの一実例を示す。図５Ｂに示されているように、ディスプレイ・デバイス５０３は、下位ＵＩ５０６と、下位ＵＩ５０６上に重ね合わせられた透明ＵＩ５０７とを含む。明快のために、透明ＵＩ５０７は、ドット・シェーディングで示されているが、実際には、透明ＵＩは、ユーザにとって可視でない透明層であることを理解されたい。さらに、透明ＵＩ５０７は、下位ＵＩ５０６よりもわずかに小さいものとして示されているが、実際には、透明ＵＩは、下位ＵＩと同じスクリーン・エリアをカバーすることになることを理解されたい。
【００３４】
図５Ｂに示されているように、オブジェクト（ユーザの指）の位置及び配向情報は、ディスプレイ・デバイス５０３の平面上にラインを投影し、交差点５０５を決定するために使用される。カメラ５０４によってキャプチャされた画像情報及びカメラの下のディスプレイ・デバイス５０３の既知の位置が、この投影を助けるために使用され得る。図５Ｂに示されているように、ユーザ入力は、交差点５０５における入力座標であると決定される。
【００３５】
以下でさらに説明されるように、この入力に基づいて生成される実際の透明層コマンドは、ユーザ設定及び／又は識別されたコンテキストに基づき得る。たとえば、コマンドは、点５０５の座標におけるオブジェクトが選択され、及び／又は開かれるべきであることを示すタッチ・コマンドであり得る。コマンドは、（マウス・ポインタなどの）ポインタが点５０５の座標に移動されるべきであることを示すポインティング・コマンドでもあり得る。さらに、コマンドは、（インターフェースにアノテーションを付けるか又は要素を描画するためになど）ロケーションにおけるグラフィカル出力を修正する編集コマンドであり得る。
【００３６】
図５Ｂは、ディスプレイ・デバイス５０３からある距離にあるものとして、認識されたオブジェクト５０２を示しているが、距離にかかわらずタッチ入力が検出され得る。たとえば、ユーザがディスプレイ・デバイス５０３に物理的にタッチする場合、上記で説明された技法は、依然として入力座標を決定することになる。その場合、オブジェクト５０２と交差点との間の投影ラインは、より短くなるにすぎないであろう。
【００３７】
もちろん、タッチ入力は、キャプチャされた画像から決定され得るユーザ入力の唯一のタイプではない。認識されたオブジェクトの１つ又は複数の配向と１つ又は複数の位置とに少なくとも部分的に基づいてユーザ入力を決定するステップは、ジェスチャー入力を決定することを含むことができる。特に、複数の画像にわたる認識されたオブジェクトの位置及び配向が、スワイプ・ジェスチャー、ピンチ・ジェスチャー、及び／或いは任意の既知の又はカスタマイズされたジェスチャーなど、対応するジェスチャーを決定するために分析され得る。ユーザは、特定のコンテキスト及びそれらのコンテキスト内のコマンドにマッピングされるカスタム・ジェスチャーを認識するように仮想ドライバを較正することができる。たとえば、ユーザは、オペレーティング・システム・コンテキストにマッピングされ、特定のアプリケーションを起動するネイティブ・オペレーティング・システム・コマンドの実行を生じる、カスタム・ジェスチャーを作成することができる。
【００３８】
前に説明されたように、図３のステップ３０１において１つ又は複数のハードウェア・デバイスによってキャプチャされた情報は、マイクロフォンによってキャプチャされた音情報をも含むことができる。図６は、システムに通信可能に結合された１つ又は複数のハードウェア・デバイスによってキャプチャされた情報が音情報であるときの、キャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートを示す。以下で説明されるように、ユーザ入力に対応する１つ又は複数のワードを識別するために、音情報に対して音声認識が実施される。
【００３９】
ステップ６０１において、音データが受信される。音データは、上記で説明されたように、マイクロフォンなど、ハードウェア・デバイスによってキャプチャされ、仮想ドライバによって受信され得る。ステップ６０２において、受信された音データは、音辞書と比較され得る。音辞書は、コマンド・ワード又はコマンド・モディファイアなど、１つ又は複数の認識されたワードの音シグネチャを含むことができる。ステップ６０３において、音データ中の１つ又は複数のワードが、比較に基づいて、ユーザ入力として識別される。次いで、識別された１つ又は複数のワードは、透明層コマンドに変換され、透明層に渡され得る。
【００４０】
前に説明されたように、仮想ドライバによってエミュレートされるドライバ、ユーザ入力の予想されるタイプ、及びユーザ入力に基づいて生成されるコマンドは、すべて、１つ又は複数の設定又は前のユーザ入力に少なくとも部分的に基づいて決定され得る。
【００４１】
図７は、透明層の一部でもあり得るツール・インターフェース７０１を示す。透明ＵＩとは異なり、ツール・インターフェース７０１は、ユーザにとって可視であり、仮想ドライバのエミュレーション・モード、ユーザ入力に基づいて生成されるネイティブ・コマンドを変更する異なるオプション間で選択するか、又は追加の機能を実施するために、使用され得る。
【００４２】
ボタン７０１Ａは、ユーザ入力が入力座標（ユーザがユーザの手又はスタイラス／遠隔制御装置を用いてスクリーンにタッチすることに基づく座標など）であるとき、ユーザが、ユーザ・インターフェースをグラフィカルに修正するために使用される描画ツールのタイプを選択することを可能にする。様々な描画ツールは、異なるブラシ、色、ペン、ハイライターなどを含むことができる。これらのツールは、変動するスタイル、厚さ、色などのグラフィカルな変更を生じることがある。
【００４３】
ボタン７０１Ｂは、入力座標がユーザ入力として受信されるとき、ユーザが、選択モード、ポインティング・モード、又は描画モードの間で切り替えることを可能にする。選択モードでは、入力座標は、「タッチ」として処理され、入力座標におけるオブジェクトの選択又はオブジェクトを開くことを生じ得る。ポインティング・モードでは、座標は、（マウス・ポインタなどの）ポインタ位置として処理され得、ユーザがマウスをエミュレートすることを効果的に可能にする。描画モードでは、座標は、ユーザ・インターフェース上に描画又は書込みの外観（ａｐｐｅａｒａｎｃｅ）を提示するために、ユーザ・インターフェースのグラフィカル出力を変更するためのロケーションとして処理され得る。変更の性質は、ボタン７０１Ａに関して説明されるように、選択された描画ツールに依存することがある。ボタン７０１Ｂはまた、（動き追跡デバイスが使用される場合）画像入力及び／又は動き入力を予想し、それに応じて適切なドライバをエミュレートするように仮想ドライバにアラートすることができる。
【００４４】
ボタン７０１Ｃは、音声コマンドを予想するように仮想ドライバにアラートする。これは、図６に関して説明されるように、仮想ドライバが、音声入力を受信し、音声入力をパースするための結合されたマイクロフォンに対応するドライバをエミュレートすることを引き起こすことができる。
【００４５】
ボタン７０１Ｄは、透明層の一部であり得、オペレーティング・システム内のアプリケーションを起動するために又はアプリケーション内の特定のコマンドを起動するために使用され得る、ランチャー・アプリケーションを開く。ランチャーは、ユーザ入力に関連付けられたアプリケーションのためのカスタム音声コマンド、カスタム・ジェスチャー、カスタム・ネイティブ・コマンドなど、透明層におけるオプションをカスタマイズするために、及び／又は（音声較正、動きキャプチャ・デバイス較正、及び／又はオブジェクト認識較正など）ハードウェア・デバイス及びユーザ入力を較正するためにも使用され得る。
【００４６】
ボタン７０１Ｅは、ユーザ・インターフェースのスクリーンショットをキャプチャするために、及び画像としてスクリーンショットをエクスポートするために使用され得る。これは、ボタン７０１Ｂの描画モード及び７０１Ａの描画ツールとともに使用され得る。ユーザが特定のユーザ・インターフェースをマーク・アップした後に、マーク・アップされたバージョンが画像としてエクスポートされ得る。
【００４７】
また、ボタン７０１Ｆは、グラフィカルな編集を可能にし、ユーザがユーザ・インターフェース上に作成している描画の色又は描画の態様を交換するために使用され得る。ボタン７０１Ｂの描画モードと同様に、このボタンは、入力座標におけるグラフィカルな変更の性質を変更する。
【００４８】
ボタン７０１Ｇは、ユーザ・インターフェース上の描画を消去する。このボタンの選択は、ユーザ・インターフェース上のすべてのグラフィカル・マーキングを除去し、下位ＵＩを、ユーザが描画を作成するより前にそうであった状態にリセットすることができる。
【００４９】
ボタン７０１Ｈは、ユーザが仮想ホワイトボード上に描画モードを使用して描画又は書込みを作成することを可能にする、ホワイトボード・アプリケーションを起動するために使用され得る。
【００５０】
ボタン７０１Ｉは、オペレーティング・システムＵＩ又はアプリケーションＵＩにおいて示されるオブジェクトなど、オブジェクトにテキスト・ノートを追加するために使用され得る。テキスト・ノートは、音声信号から解釈されるか、又はキーボードを使用してユーザによってタイピングされ得る。
【００５１】
ボタン７０１Ｊは、ツール・インターフェース７０１を開くか又は閉じるために使用され得る。閉じられたとき、ツール・インターフェースは、最小化されるか又は下位ユーザ・インターフェースから完全に除去され得る。
【００５２】
前に説明されたように、スタイラス又はリモート・ハードウェア・デバイスが、カメラ又はビデオ・カメラなど、他のハードウェア・デバイスとともに、本システムとともに使用され得る。図８は、本システムとともに使用され得るスタイラス８０１の一実例を示す。スタイラス８０１は、Ｂｌｕｅｔｏｏｔｈなどを介して、ハードウェア受信機８０２と通信することができる。ハードウェア受信機は、ＵＳＢ８０２Ｂなどを介して、コンピュータ・システムに接続することができ、ハードウェア受信機を介してコンピュータ・システムに渡されたスタイラスからの信号は、図７に示されているツール・インターフェースと同様であるメニュー８０３を制御し、それと対話するために使用され得る。
【００５３】
図８に示されているように、スタイラス８０１は、物理ボタン８０１Ａを含むことができる。これらの物理ボタン８０１は、スタイラスを電源投入し、メニュー８０３をナビゲートし、選択を行うために使用され得る。さらに、スタイラス８０１は、カメラによる画像においてキャプチャされ、仮想ドライバによって認識される、特徴的な先端８０１Ｂを含むことができる。これは、スタイラス８０１が、描画モードにあるとき、描画及び編集のために使用されることを可能にすることができる。スタイラス８０１は、スタイラスが入力座標又はジェスチャーを与えるために使用されるとき、位置検出を助けるための加速度計及び／又はチルト・センサーなど、動き追跡ハードウェアをも含むことができる。さらに、ハードウェア受信機８０２は、較正ボタン８０２Ａを含むことができ、較正ボタン８０２Ａは、押下されたとき、ユーザ・インターフェースにおいて較正ユーティリティを起動することができる。これは、スタイラスの較正を可能にする。
【００５４】
図３に戻ると、ステップ３０２において、ユーザ入力に対応するコンテキストが識別される。識別されたコンテキストは、オペレーティング・システム又はオペレーティング・システム上で実行するアプリケーションのうちの１つを備える。
【００５５】
図９は、例示的な実施例による、ユーザ入力に対応するコンテキストを識別するためのフローチャートを示す。図９に示されているように、オペレーティング・システム・データ９０１、アプリケーション・データ９０２、及びユーザ入力データ９０３が、すべて、コンテキスト９０４を決定するために使用され得る。
【００５６】
オペレーティング・システム・データ９０１は、たとえば、オペレーティング・システムにおけるアクティブ・ウィンドウに関する情報を含むことができる。たとえば、アクティブ・ウィンドウが計算器ウィンドウである場合、コンテキストが計算器アプリケーションであると決定され得る。同様に、アクティブ・ウィンドウがＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄウィンドウである場合、コンテキストがＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄアプリケーションであると決定され得る。一方、アクティブ・ウィンドウがファイル・フォルダである場合、アクティブ・コンテキストがオペレーティング・システムであると決定され得る。オペレーティング・システム・データは、どのアプリケーションが現在実行中であるか、最後に起動されたアプリケーション、及びコンテキストを決定するために使用され得る任意の他のオペレーティング・システム情報など、追加情報をも含むことができる。
【００５７】
アプリケーション・データ９０２は、たとえば、実行している１つ又は複数のアプリケーションに関する情報及び／又は特定のアプリケーションをいくつかのタイプのユーザ入力にマッピングする情報を含むことができる。たとえば、音声コマンドが受信されるときはいつでも、コンテキストが第１のアプリケーションであると自動的に決定されるように、第１のアプリケーションが音声入力にマッピングされ得る。別の例では、特定のジェスチャーが入力として受信されたとき、第２のアプリケーションが、起動されるか又は閉じられるか、或いは第２のアプリケーション内のあるアクションが実施されるように、そのジェスチャーが第２のアプリケーションに関連付けられ得る。
【００５８】
ユーザ入力９０３は、様々なやり方でコンテキストを決定するためにも使用され得る。上記で説明されたように、いくつかのタイプのユーザ入力が、いくつかのアプリケーションにマッピングされ得る。上記の実例では、音声入力が第１のアプリケーションのコンテキストに関連付けられる。さらに、ユーザ入力の属性も、コンテキストを決定するために使用され得る。ジェスチャー又は動きが、アプリケーションに又はオペレーティング・システムにマッピングされ得る。音声コマンド中の特定のワードも、アプリケーションに又はオペレーティング・システムにマッピングされ得る。入力座標も、コンテキストを決定するために使用され得る。たとえば、入力座標の位置にあるユーザ・インターフェースにおけるウィンドウが決定され得、そのウィンドウに対応するアプリケーションがコンテキストとして決定され得る。
【００５９】
図１０は、コンテキストを決定するために入力座標を使用することの一実例を示す。図１０に示されているように、ディスプレイ・デバイス１００１がユーザ・インターフェース１００２を表示している。また、カメラ１００４と、下位ユーザ・インターフェース１００３上に重ね合わされた透明層１００３とが示されている。ユーザは、ユーザ・インターフェース１００２におけるロケーション１００５を指すためにスタイラス１０００を利用する。ロケーション１００５は、アプリケーション１に対応するアプリケーション・ウィンドウ内にあるので、次いで、アプリケーション１は、アプリケーション２、アプリケーション３、又はオペレーティング・システムとは対照的に、ユーザ入力のためのコンテキストであると決定され得る。
【００６０】
図３に戻ると、ステップ３０３において、ユーザ入力は、識別されたコンテキストに少なくとも部分的に基づいて、１つ又は複数の透明層コマンドに変換される。前に説明されたように、透明層は、仮想ドライバとオペレーティング・システム及び／又はオペレーティング・システム上で実行するアプリケーションとの間をインターフェースするように構成されたアプリケーション・プログラミング・インターフェース（ＡＰＩ）を備える。
【００６１】
図１１は、ユーザ入力を透明層コマンドに変換するためのフローチャートを示す。図１１のステップ１１０４に示されているように、透明層コマンドは、識別されたコンテキスト１１０２及びユーザ入力１１０３に少なくとも部分的に基づいて決定され得る。透明層コマンドは、１つ又は複数の対応するコンテキストにおいて実行するように構成された１つ又は複数のネイティブ・コマンドを含むことができる。透明層コマンドは、仮想ドライバに及び（１つ又は複数の）ハードウェア・デバイス上に送信されるべき応答出力をも含むことができる。
【００６２】
識別されたコンテキスト１１０２は、どの透明層コマンドがユーザ入力にマッピングされるべきであるかを決定するために使用され得る。たとえば、識別されたコンテキストが「オペレーティング・システム」である場合、スワイプ・ジェスチャー入力が、ユーザ・インターフェースが（ある開いているウィンドウを最小化し、次の開いているウィンドウを最大化することによって）オペレーティング・システム内の現在開いているウィンドウをスクロールすることを生じる透明層コマンドにマッピングされ得る。代替的に、識別されたコンテキストが「ウェブ・ブラウザ・アプリケーション」である場合、同じスワイプ・ジェスチャー入力が、ウェブ・ページがスクロールされることを生じる透明層コマンドにマッピングされ得る。
【００６３】
ユーザ入力１１０３は、ユーザ入力が１つ又は複数のコンテキスト内のいくつかのネイティブ・コマンドに明確にマッピングされ、これらのネイティブ・コマンドが透明層コマンドの一部であるので、透明層コマンドをも決定する。たとえば、音声コマンド「電子メールを開いて」が、電子メール・アプリケーションＯｕｔｌｏｏｋを起動するための特定のオペレーティング・システム・ネイティブ・コマンドにマッピングされ得る。認識されたワード「電子メールを開いて」を含む音声入力が受信されたとき、これは、Ｏｕｔｌｏｏｋを起動するためのネイティブ・コマンドを含む透明層コマンドが決定されることを生じる。
【００６４】
図１１に示されているように、透明層コマンドはまた、１つ又は複数のユーザ設定１１０１及びＡＰＩライブラリ１１０４に基づいて決定され得る。ＡＰＩライブラリ１１０４は、識別されたコンテキスト及び特定のユーザ入力に対応するネイティブ・コマンドをルックアップするために使用され得る。スワイプ・ジェスチャー及びウェブ・ブラウザ・アプリケーション・コンテキストの実例では、ウェブ・ブラウザ・アプリケーションに対応するＡＰＩライブラリは、ウェブ・ページのスクロールを引き起こすために、適切なＡＰＩ呼出しについて問い合わせられ得る。代替的に、ＡＰＩライブラリ１１０４は、省略され得、ネイティブ・コマンドが、特定のユーザ入力及び識別されたコンテキストに向けてマッピングされ得る。
【００６５】
ユーザ入力が入力座標であると決定される状況では、透明層コマンドは、入力ロケーション座標及び識別されたコンテキストに少なくとも部分的に基づいて決定される。この場合、透明層コマンドは、識別されたコンテキストにおける少なくとも１つのネイティブ・コマンドを含むことができ、少なくとも１つのネイティブ・コマンドは、下位ＵＩにおける対応するロケーション座標におけるアクションを実施するように構成される。
【００６６】
特定のコンテキスト及びユーザ入力にマッピングされる２つ以上の可能なアクションがあるとき、設定１１０１は、対応する透明層コマンドを決定するために使用され得る。たとえば、図７のボタン７０１Ｂは、入力座標がユーザ入力として受信されるとき、ユーザが、選択モード、ポインティング・モード、又は描画モードの間で選択することを可能にする。この設定は、透明層コマンドを決定するために、並びにひいては、どのネイティブ・コマンドが実施されるか及びどのアクションが実施されるかを決定するために使用され得る。この場合、可能なネイティブ・コマンドは、下位ＵＩにおける対応するロケーション座標に関連するオブジェクトを選択するように構成された選択コマンド、ポインタを下位ＵＩにおける対応するロケーション座標に移動するように構成されたポインタ・コマンド、及び下位ＵＩにおける対応するロケーション座標におけるディスプレイ出力を変更するように構成されたグラフィカル・コマンドを含むことができる。
【００６７】
図１２Ａは、選択モードがトグルされるときの、入力座標を受信することの一実例を示す。図１２Ａに示されているように、ユーザは、ディスプレイ・デバイス１２０１上の（重ね合わせられた透明ＵＩ１２０３を有する）オペレーティング・システムＵＩ１２０２においてスタイラス１２００をポイントした。前の実例と同様に、カメラ１２０４は、スタイラス１２００についての位置及び配向情報並びに入力座標を決定するために使用され得る。選択モードがトグルされ、スタイラス１２００がオペレーティング・システムＵＩ１２０２内のフォルダ１２０５においてポイントされるので、決定された透明層コマンドは、入力座標に関連するオブジェクト（この場合、フォルダ１２０５である）を選択するためのネイティブ・オペレーティング・システム・コマンドを含むことができる。別の実例では、ウィンドウが入力座標に位置する場合、これは、ウィンドウ全体の選択を生じるであろう。
【００６８】
図１２Ｂは、ポインティング・モードがトグルされるときの、入力座標を受信することの一実例を示す。この場合、決定された透明層コマンドは、マウス・ポインタ１２０６を入力座標のロケーションに移動するためのネイティブ・オペレーティング・システム・コマンドを含むことができる。
【００６９】
図１２Ｃは、描画モードがトグルされ、ユーザが複数の入力座標にわたってスタイラス１２００をスイープしたときの、入力座標を受信することの一実例を示す。この場合、決定された透明層コマンドは、入力座標の各々のロケーションにおけるディスプレイ出力を変更するためのネイティブ・オペレーティング・システム・コマンドを含むことができ、ユーザ・インターフェース１２０２上のユーザの描画ライン１２０７を生じる。描画モードにおいてもたらされた修正されたグラフィカル出力は、透明層１２０３の一部として、たとえば、入力座標の経路に関係するメタデータとして記憶され得る。ユーザは、次いで、変更されたディスプレイ出力を画像としてエクスポートするためのオプションを選択することができる。
【００７０】
ユーザ入力がジェスチャーとして識別される状況では、識別されたコンテキストに少なくとも部分的に基づいてユーザ入力を１つ又は複数の透明層コマンドに変換することは、識別されたジェスチャー及び識別されたコンテキストに少なくとも部分的に基づいて透明層コマンドを決定することを含むことができる。透明層コマンドは、識別されたコンテキストにおける少なくとも１つのネイティブ・コマンドを含むことができ、少なくとも１つのネイティブ・コマンドは、識別されたコンテキストにおける識別されたジェスチャーに関連するアクションを実施するように構成される。これの一実例は、ウェブ・ブラウザにおけるスクロール・アクションを実施するように構成されたネイティブ・コマンドを生じる、スワイプ・ジェスチャー及びウェブ・ブラウザ・アプリケーション・コンテキストに関して上記で説明された。
【００７１】
（音声認識を使用することによってなど）ユーザ入力が１つ又は複数のワードとして識別される状況では、識別されたものに少なくとも部分的に基づいてユーザ入力を１つ又は複数の透明層コマンドに変換することは、識別された１つ又は複数のワード及び識別されたコンテキストに少なくとも部分的に基づいて透明層コマンドを決定することを含むことができる。透明層コマンドは、識別されたコンテキストにおける少なくとも１つのネイティブ・コマンドを含むことができ、少なくとも１つのネイティブ・コマンドは、識別されたコンテキストにおける識別された１つ又は複数のワードに関連するアクションを実施するように構成される。
【００７２】
図１３は、入力音声データ中で識別された１つ又は複数のワードに基づいて決定される透明層コマンド１３００の一実例を示す。識別されたワード１３０１は、「ホワイトボード」という句又は「ブランク・ページ」という句のうちの１つを含む。透明層コマンド１３００は、コマンドの説明１３０２と、透明層コマンドの実行時に透明層によって仮想ドライバに及びハードウェア出力デバイスに送られた出力命令である応答命令１３０３とをも含む。さらに、透明層コマンド１３００は、ホワイトボード機能を呼び出すために使用される実際のネイティブ・コマンド１３０４を含む。
【００７３】
図１４は、例示的な実施例による、入力音声データ中で識別された１つ又は複数のワードに基づいて決定される透明層コマンド１４００の別の実例を示す。この実例では、１つ又は複数のワードは、「電子メールを開いて」である。図１４に示されているように、透明層コマンド１４００は、ネイティブ・コマンド「ｏｕｔｌｏｏｋ．ｅｘｅ」を含み、これは、ｏｕｔｌｏｏｋアプリケーションを起動する特定の実行ファイルを動作させるようにとの命令である。透明層コマンド１４００は、音声コマンドを受信したことに応答して出力される「電子メールを開きました」という音声応答をも含む。
【００７４】
図３に戻ると、ステップ３０４において、１つ又は複数の透明層コマンドが透明層上で実行される。１つ又は複数の透明層コマンドの実行が、識別されたコンテキストにおける１つ又は複数のネイティブ・コマンドの実行を引き起こすように構成される。
【００７５】
図１５は、例示的な実施例による、透明層上で１つ又は複数の透明層コマンドを実行するためのフローチャートを示す。ステップ１５０１において、透明層コマンドにおける少なくとも１つのネイティブ・コマンドが識別される。ネイティブ・コマンドは、たとえば、透明層コマンドの構造内のネイティブ・コマンドとして指定され得、識別を可能にする。
【００７６】
ステップ１５０２において、少なくとも１つのネイティブ・コマンドが、識別されたコンテキストにおいて実行される。このステップは、そのコンテキストについての識別されたＡＰＩを介して、識別されたコンテキストに少なくとも１つのネイティブ・コマンドを渡すことと、識別されたコンテキスト内でネイティブ・コマンドを実行することとを含むことができる。たとえば、識別されたコンテキストがオペレーティング・システムである場合、ネイティブ・コマンドは、オペレーティング・システムＡＰＩを介して実行のためにオペレーティング・システムに渡され得る。さらに、識別されたコンテキストがアプリケーションである場合、ネイティブ・コマンドは、アプリケーションＡＰＩを介して実行のためにアプリケーションに渡され得る。
【００７７】
随意に、ステップ１５０３において、応答が（１つ又は複数の）ハードウェア・デバイスに送信され得る。前に説明されたように、この応答は、透明層から仮想ドライバに及びハードウェア・デバイス上にルーティングされ得る。
【００７８】
図１６〜図１９は、本明細書で開示されるシステムの追加の特徴を示す。図１６は、例示的な実施例による、ユーザ入力に対応する新しいコマンドを追加するための例示的なインターフェースを示す。インターフェース１６００におけるダッシュボードが、すでに追加され、所定のユーザ入力及びハードウェア・デバイス（たとえば、音声コマンド）を使用して起動され得る、アプリケーション１６０１のアイコンを含む。ダッシュボードは、アプリケーション固有であり、いくつかのユーザ入力にマッピングされる、他のコマンドをも示すことができる。追加ボタン１６０２の選択は、追加コマンド・メニュー１６０３を開く。このメニューは、ユーザが以下のオプション間で選択することを可能にする：アイテム・タイプ：下部バー・メニュー上に追加するための固定アイテム／ドラッグ・メニュー中に追加するための通常アイテム、アイコン：画像アイコンを選択する、背景：背景アイコン色を選択する、色：アイコン色を選択する、名前：新しいアイテム名を設定する、音声コマンド：新しいアプリケーションを開くための音声アクティベーション・コマンドを設定する、フィードバック応答：アプリケーション音声応答フィードバックを設定する、コマンド：起動すべきアプリケーション・タイプ又はカスタム・コマンド・タイプを選択する（たとえば、アプリケーション・コマンドを起動する、アプリケーション・コマンド内のアクションを実施する、アプリケーション・コマンドを閉じるなど）、プロセス開始：新しいプロセス又はアプリケーションを起動する場合、プロセス又はアプリケーションの名前、及びパラメータ：新しいプロセス又はアプリケーションに渡すべき任意のパラメータ。
【００７９】
図１７は、例示的な実施例による、描画インターフェース１７００及び描画モードの様々な構成要素及びオプションを示す。図１８は、オブジェクトを認識するために使用され、ユーザがタッチ及びジェスチャーを使用して入力を与えることを可能にする、ビデオ・カメラ・ハードウェア・デバイスのための較正及び設定インターフェース１８００を示す。図１９は、ユーザが、インターフェースの様々な態様をカスタマイズし、入力モードをトグルし、他の交換を行うことを可能にする、一般的な設定インターフェース１９００を示す。インターフェース１９００に示されているように、ユーザは、（「マジック・スタイラス」と呼ばれる）ハードウェア・スタイラスのための設定を較正及び調整するための設定ページにもアクセスすることができる。
【００８０】
本明細書で開示されるシステムは、複数のネットワーク化されたコンピューティング・デバイス上で実装され、ネットワーク化された共同セッションを行うことを助けるために使用され得る。たとえば、前に説明されたホワイトボード機能性は、複数のコンピューティング・デバイス上の複数のユーザ間の共有ホワイトボードであり得る。
【００８１】
ネットワーク化された共同スペースは、チーム・メンバー間のアクティビティを調整し、タスクを整理して優先順位を付け、新しいアイデアをブレーンストーミングするために、プロジェクト管理及びソフトウェア開発に頻繁に使用される。たとえば、スクラムは、開発者及び他の参加者がチームで共同して、情報及びアイデアをリアルタイムで（対面又はオンラインで）交換することで特定の問題を解決する、作業及びプロジェクトを管理するためのアジャイル・フレームワークである。スクラム・フレームワークは、頻繁にスクラム・ボードを使用して実装され、スクラム・ボードにおいて、ユーザは、アイデア、トピック、又は他の投稿を含む物理的又はデジタルの付箋ノートを、ブレーンストーミング・セッション全体を通じて継続的に書き込む。
【００８２】
ネットワーク化されたスクラム・ボードなどの既存のホワイトボード及び他の共有共同スペースの問題のうちの１つは、デジタルの付箋ノートを介して伝達される情報がテキスト・コンテンツに限定され、参加者からの（アイデア、タスクなどの）投稿に関するコンテキスト情報も、特に時間が貴重なリソースである場合にネットワーク化されたスペースでアイデアをより容易且つ効率的に共有できるようにするサポート情報もないことである。さらに、スクラム・セッションには異なる責務を有する様々なチームが関与することがあるので、デジタル付箋ノートに含まれているアイデアへのアクセスを選択的に制限できないことにより、機密情報又は機微情報が異なるチームの共同作業者又は異なるセキュリティ権限を有する共同作業者に公開されるという形でさらなる脆弱性が生じる可能性がある。
【００８３】
現在、共同作業者からの共同投稿データを、関連するコンテンツ・データ及びアクセス制御データとともに、共同セッション内の複数のネットワーク化されたコンピューティング・デバイスにネットワークを介して効率的に転送可能な形式で、且つスクラム・セッションなどのネットワーク化されたプロジェクト管理セッションでの埋め込み又は使用の機能を同時に含む形式でパッケージ化する効率的な方法がない。
【００８４】
ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のための前に説明された方法及びシステムに加えて、出願人は、ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を介して拡充ノート・データ・オブジェクトを伝えることを可能にし、上述の問題を解決する、方法、装置及びコンピュータ可読媒体をさらに発見した。
【００８５】
図２０は、例示的な実施例による、ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を介して拡充ノート・データ・オブジェクトを伝えるためのフローチャートを示す。図２０に示されているステップのすべてが、サーバに接続されたクライアント・デバイスなど、ローカル・コンピューティング・デバイス上で実施され得、複数のコンピューティング・デバイスを必要としない。開示されるプロセスは、サーバに接続された複数のデバイスによって、又はローカル・コンピューティング・デバイスと１つ又は複数の他のコンピューティング・デバイスのためのネットワーク化された共同セッションをホストするサーバとの両方として機能するコンピューティング・デバイスによっても実装され得る。
【００８６】
ステップ２００１において、サーバ上にホストされた共同ワークスペースの表現が、ローカル・コンピューティング・デバイスのユーザ・インターフェース上で送信される。共同ワークスペースは、ウェブ・ソケット接続を介して、ローカル・コンピューティング・デバイスでのローカル参加者及びリモート・コンピューティング・デバイスでの１人又は複数のリモート参加者を含む、複数のコンピューティング・デバイス上の複数の参加者にとってアクセス可能である。本明細書で使用されるリモート・コンピューティング・デバイス及びリモート参加者は、ローカル参加者及びローカル・コンピューティング・デバイス以外のコンピューティング・デバイス及び参加者を指す。リモート・コンピューティング・デバイスは、ワイド・エリア・ネットワーク（ＷＡＮ）などのネットワークによってローカル・デバイスから分離される。
【００８７】
図２１Ａは、例示的な実施例による、共同ワークスペースをホストし、送信するために使用されるネットワーク・アーキテクチャを示す。図２１Ａに示されているように、サーバ２１００は、コンピューティング・デバイス２１０１Ａ〜２１０１Ｆに接続される。サーバ２１００とコンピューティング・デバイス２１０１Ａ〜２１０１Ｆとは、コンピューティング・デバイス２１０１Ａ〜２１０１Ｆ（クライアント）とサーバ２１００との間の双方向通信を可能にする、ウェブ・ソケット接続など、ネットワーク接続を介して接続され得る。図２１Ａに示されているように、コンピューティング・デバイスは、ラップトップ、デスクトップ、スマートフォン、又は他のモバイル・デバイスなど、任意のタイプのコンピューティング・デバイスであり得る。さらに、サーバ２１００は別個のエンティティとして示されているが、コンピューティング・デバイス２１０１Ａ〜２１０１Ｆのうちのいずれか１つが、その他のコンピューティング・デバイスのサーバとしても機能できること、すなわちコンピューティング・デバイス自体が共同セッションの参加者である場合でも共同セッションをホストするサーバの機能を実行することを理解されたい。
【００８８】
共同ワークスペースは、たとえば、ウェブ・ソケット接続を介して複数の参加者中の任意の参加者からの編集を他の参加者に伝えるように構成されたデジタル・ホワイトボードであり得る。図２１Ｂは、例示的な実施例による、ネットワーク内で共同ワークスペースに対する編集を伝えるためのプロセスを示す。図２１Ｂに示されているように、コンピューティング・デバイス２１０１Ｂにおけるユーザが共同ワークスペースに対する編集又は変更を行う場合、この編集又は変更２１０２Ｂは、サーバ２１００に送られ、ワークスペースのホストされたバージョンを更新するために使用される。編集又は変更は、次いで、サーバ２１００によって更新２１０２Ａ、２１０２Ｃ、２１０２Ｄ、２１０２Ｅ、及び２１０２Ｆとして、他の接続されたコンピューティング・デバイス２１０１Ａ、２１０１Ｃ、２１０１Ｄ、２１０１Ｅ、及び２１０１Ｆに伝えられる。
【００８９】
共同ワークスペースの各表現は、ローカル参加者に対してカスタマイズされた共同ワークスペースのバージョンであり得る。たとえば、上記で説明されたように、共同ワークスペースの各表現は、サーバに接続された１つ又は複数のリモート・コンピューティング・デバイスに対応する１つ又は複数のリモート参加者オブジェクトを含むことができる。
【００９０】
図２２は、例示的な実施例による、共同ワークスペースの複数の表現を示す。図２２に示されているように、サーバ２２００は、共同ワークスペース２２０１をホストする。サーバ上にホストされた共同ワークスペースのバージョンが、前に説明されたように、接続されたデバイスに伝えられる。図２２は、３つの接続されたユーザ、ユーザ１、ユーザ２、及びユーザ３のための共同ワークスペースの表現をも示す。各表現は、随意に、ローカル参加者に対して（各ロケーションにおけるローカル・コンピューティング・デバイスに対して）カスタマイズされ得る。
【００９１】
図２０に戻ると、ステップ２００２において、ローカル・コンピューティング・デバイスによって、拡充ノート・データ・オブジェクトが生成される。拡充ノート・データ・オブジェクトは、（ユーザ・インターフェースなどを介した）ユーザからの入力に応答して作成され、また、ユーザによって選択又は入力され、表示されるように構成されたテキストと、表示されるように構成された１つ又は複数のユーザ・アクセス可能な制御と、ユーザによって選択された少なくとも１つのコンテンツ・ファイルとを含む。拡充ノート・データ・オブジェクトは、テキスト及び１つ又は複数のユーザ・アクセス可能な制御を、拡充ノート・データ・オブジェクトによって定義される拡充ノート・ユーザ・インターフェース要素内に表示するように構成され、１つ又は複数のユーザ・アクセス可能な制御での表示制御の選択に応答して、少なくとも１つのコンテンツ・ファイルを開くようにさらに構成される。たとえば、拡充ノート・データ・オブジェクトは、ノート・ユーザ・インターフェース要素及びユーザ・アクセス可能な制御を表示するように構成された埋め込みスクリプト又はソフトウェアを含むことができる。拡充ノート・データ・オブジェクトは、たとえば、拡充ノート・データ・オブジェクトの一部である表示制御スクリプトに関連して又はその一部として、コンテンツ・ファイルのアドレスへのリンク又はポインタを記憶し、実際のコンテンツ・アイテムを、拡充ノート・データ・オブジェクトの別個の部分に記憶する。この場合、リンク又はポインタは、拡充ノート・データ・オブジェクトの別個の部分内のコンテンツ・アイテムのアドレスを参照することができる。コンテンツ・アイテムは、ビデオ・ファイル、画像ファイル、オーディオ・ファイル、文書、スプレッドシート、ウェブ・ページのような、任意のタイプのコンテンツ・アイテムであり得る。
【００９２】
拡充ノートは、拡充ノート・データ・オブジェクトの視覚的コンポーネントである特殊化されたユーザ・インターフェース要素である。拡充ノートは、基礎となるデータ構造（拡充ノート・データ・オブジェクト）が、表示テキスト（ノート）を、ユーザによって選択された拡充ノート・データ・オブジェクト内の対応するコンテンツ・アイテムとリンクさせるという点で、コンテンツ結合された又はコンテンツ・リンクされたノートである。その場合、拡充ノート・データ・オブジェクトに記憶されているこのリンクされたコンテンツは、拡充ノートのユーザ・アクセス可能な制御を経由して拡充ノートからアクセス可能である。したがって、拡充ノート（及び拡充ノート・データ・オブジェクトの対応する基礎となるデータ構造）は、コンピューティング・デバイスのメモリ内で、特定の表示テキストを、多くの参加者を有するネットワーク化された共同セッションを介してアクセス、移動、及び共有できる方法で基礎となるコンテンツ・アイテムとリンクさせるという点において、動的にデジタル化されたＰｏｓｔ−Ｉｔ（登録商標）ノートとして機能する。拡充ノート（及び基礎となる拡充ノート・データ・オブジェクト）は、（文書だけでなく）任意のタイプのコンテンツに「ピン止め」されることが可能であり、動的アクセス制御及び他の機能を統合するという点において、さらに優れた機能を提供する。以下でより詳細に説明されるように、拡充ノート・データ・オブジェクトは、参加者からの投稿を特定の仮想ロケーションに「添付」されたノートにリンクすると同時に、各参加者が拡充ノートと独立して対話すること、及び関連するリンクされたコンテンツにアクセスすることを可能にするという機能を提供するので、ネットワーク化された共同セッションにおける既存の問題を解決する。
【００９３】
図２３Ａ〜図２３Ｂは、例示的な実施例による、ネットワーク化された共同ワークスペース内で拡充ノート・データ・オブジェクトを生成するために使用されるプロセスを示す。
【００９４】
図２３Ａは、拡充ノート・データ・オブジェクトを生成するための要求を受信する前の、ローカル・コンピューティング・デバイスのユーザ・インターフェース（デスクトップ）の一実例を示す。図２３Ａに示されているように、ユーザ・インターフェース２３０１は、サーバ上にホストされた共同ワークスペース２３０３の表現をローカルに表示する共同アプリケーション２３０２を含む。
【００９５】
共同アプリケーション２３０２は、ローカル参加者及び任意の他の参加者によるすべての編集及び投稿（ｃｏｎｔｒｉｂｕｔｉｏｎ）を含む共同ワークスペース２３０３の表現、並びにツールバー２３０４を含むことができる。ツールバー２３０４は、共同ワークスペースの表現と対話するため又は共同ワークスペースの表現を構成するための、様々な編集ツール、設定、コマンド及びオプションを含むことができる。たとえば、ツールバー２３０４は、共同ワークスペース２３０３の表現上で描画するための編集ツールを含むことができ、編集は、ウェブ・ソケット接続を介してサーバ及び他の接続されたコンピュータ化されたデバイスに伝えられる。
【００９６】
ツールバー２３０４は、選択されると、ローカル・コンピューティング・デバイスに、選択するユーザが拡充ノートを生成して拡充ノートの属性及び特性を指定することを可能にするプロンプト又はインターフェースを表示させる、拡充ノート・ボタン２３０５をさらに含む。したがって、ユーザは、スクリーン共有ボタン２３０５を選択することによって、拡充ノートを生成するプロセスを開始することができる。なお、本明細書で使用される「拡充ノート」は、「拡充ノート・データ・オブジェクト」に対応するユーザ・インターフェース要素を指す。以下でより詳細に説明されるように、「拡充ノート・データ・オブジェクト」は、自動化スクリプト、コンテンツ・ファイル又はコンテンツ・ファイルへのリンク、プライバシー設定、及び「拡充ノート」の一部として常に表示されるとは限らない他の構成パラメータなどのデータを含む。
【００９７】
図２３Ｂは、ユーザがツールバー２３０４の拡充ノート・ボタン２３０５を選択した後の、ローカル・コンピューティング・デバイスのユーザ・インターフェース（デスクトップ）２３０１の一実例を示す。図２３Ｂに示されているように、拡充ノート・ボタン２３０５の選択は、ローカル・コンピューティング・デバイスに、拡充ノート作成インターフェース２３０６を表示させる。
【００９８】
拡充ノート作成インターフェース２３０６は、ユーザが拡充ノートの正面に表示するメッセージをタイプ入力することができるテキスト入力エリア２３０６Ａを含む、複数の入力エリアを含む。代替的に、ユーザは、いくつかの事前定義されたメッセージから１つを選択することができる。たとえば、ユーザがテキスト入力エリア２３０６を選択したことに応答して、所定のメッセージのリストが表示され得、次いで、ユーザは、所定のメッセージのうちの１つを選択することができる。
【００９９】
拡充ノート作成インターフェース２３０６は、コンテンツ添付ボタン２６０３Ｂをさらに含む。コンテンツ添付ボタン２３０６Ｂを選択すると、ユーザが、拡充ノート・データ・オブジェクトに含めて拡充ノートからアクセス可能すべきコンテンツ・ファイルを、ローカル・フォルダ又はネットワーク・フォルダから選択することを可能にするインターフェースが表示され得る。さらに、コンテンツ添付ボタン２３０６Ｂを選択した結果として、ユーザがコンテンツを直接作成することを可能にするスケッチ・ツール又は他の入力インターフェースなどのコンテンツ入力インターフェースを表示することもできる。この場合、作成されたコンテンツは自動的にファイルとしてフォルダに保存され得、作成されたファイルは拡充ノートと関連付けられ得る。前に説明されたように、コンテンツ・アイテムは、ビデオ・ファイル、画像ファイル、オーディオ・ファイル、文書、スプレッドシート、及び／又はウェブ・ページなど、任意のタイプのコンテンツ・アイテムであり得る。ユーザは、ウェブ・ページ・リンクなどのリンクを含めることによってコンテンツを指定することもでき、この場合、関連するコンテンツは、ウェブ・ページからダウンロードされ、（ｈｔｍｌファイルなどの）ウェブ・ページ・ドキュメントとして添付され得る。代替的に、ウェブ・ブラウザの普及を考慮する場合、ウェブ・ページ・リンク自体が、添付コンテンツとして分類され得、この場合、拡充ノートを受信したユーザは、リンクをクリックするだけで、そのローカル・ブラウザ内の関連するウェブ・ソースからコンテンツにアクセスすることになる。
【０１００】
拡充ノート作成インターフェース２３０６は、重要ボタン２６０３Ｃをさらに含む。重要ボタン２３０６Ｃを選択すると、拡充ノートに関連付けられた重要フラグが、真として設定され得る。この結果として、拡充ノートが緊急又は重要であると見なされていることを閲覧者に警告する重要インジケータ（グラフィック又はメッセージなど）とともに、拡充ノートが表示される。
【０１０１】
拡充ノート作成インターフェース２３０６は、プライバシー・ボタン２６０３Ｄをさらに含む。プライバシー・ボタン２３０６Ｄを選択すると、ユーザがプライバシー設定を入力することを可能にするインターフェースが表示され得る。プライバシー設定により、ユーザは、パスワード、認証チェック、及び／又は承認された参加者のリストなど、拡充ノートのコンテンツ部分のアクセス制御を設定できるようになる。承認された参加者のリストが利用される場合、承認された各参加者に関連付けられたＩＰアドレスが、ウェブ・ソケット接続を介してサーバから取得されて、アクセス制御にリンクされ得、その結果、拡充ノートのコンテンツ部分は、承認されたユーザに関連付けられたＩＰアドレスからのみアクセスされ得る。代替的に、拡充ノートの作成者は、承認された各参加者の何らかの識別子を指定することができ、その参加者は適切な識別子を入力してコンテンツへのアクセスを得ることができる。プライバシー制御には多くのバリエーションが考えられ、これらの実例は、限定するものではない。
【０１０２】
拡充ノート作成インターフェース２３０６は、アラート・ボタン２６０３Ｅをさらに含む。アラート・ボタン２３０６Ｅを選択すると、ユーザが拡充ノートに関連付けられた１つ又は複数のアラートを構成することを可能にするインターフェースが表示され得る。アラートは、ポップアップ・ウィンドウなどの通知、電子メールなどの通信、又はカレンダ・リマインダなどの他の通知であり得る。ユーザは、各アラートに関連付けられた日時、及びアラート・メッセージを選択することができる。したがって、ポップアップ・ウィンドウ又はカレンダ通知などのローカル・アラートの場合、拡充ノートの受信者は、その受信者のローカル・コンピューティング・デバイス上で、拡充ノートに関連付けられたアラートが適切な日時にアクティブ化されることになる。通信アラートの場合、拡充ノートの作成者から拡充ノートの受信者への通信は、選択された日時にトリガされ得る。たとえば、リマインダ・アラートは、受信者に拡充ノートを特定の期限までに見直するように再確認させることができる。
【０１０３】
拡充ノート作成インターフェース２３０６は、音声ノート・ボタン２６０３Ｆをさらに含む。音声ノート・ボタン２６０３Ｆを選択した結果として、拡充ノート・データ・オブジェクトに含めて拡充ノートからアクセス可能にすべき音声を録音するように作成者に求めるプロンプト又はインターフェースが生じる。随意に、ユーザが、音声ノートを録音し、コンテンツ添付ボタン２６０３を選択することによって他のタイプのコンテンツを添付できるように、音声ノート・ボタン２６０３Ｆをコンテンツ添付ボタン２６０３に統合することができる。
【０１０４】
ボタン２３０６Ｂ〜２３０６Ｆは、単に実例として与えられており、拡充ノート作成インターフェース２３０６は、他のユーザ構成可能なオプションを含むことができる。たとえば、拡充ノート作成インターフェース２３０６は、ユーザが拡充ノートのサイズ、形状、色、又はパターンを構成することを可能にするオプションを含むことができる。
【０１０５】
作成者は、拡充ノートの構成、任意のフラグの設定、プライバシー制御の設定、コンテンツの添付、及び／又は音声ノートの録音を完了すると、作成ボタン２３０６Ｇを選択することによって、拡充ノート・データ・オブジェクトを作成することができる。拡充ノート・データ・オブジェクトの作成は、作成者によって指定されたすべての設定及びコンテンツの統合を含み、様々な方法で実行され得る。たとえば、拡充ノート・データ・オブジェクトは、選択された設定に対応する自動化スクリプト、及びコンテンツ・ファイル自体を伴う指定されたコンテンツへのリンクを含む、データコンテナとして構成され得る。拡充ノート・データ・オブジェクトは、作成者の選択に基づいて設定された多数のフラグを有し、選択されたコンテンツ・ファイルのアドレスが入力された事前定義されたリンクを含む、事前定義されたテンプレート・データ・オブジェクトでもあり得る。
【０１０６】
図２４は、例示的な実施例による、生成された拡充ノート２４００を示す。図２４に示されているように、拡充ノート２４００は、「データ・テスト機能を実装するためのアイデア」というテキストを表示し、ユーザ・アクセス可能な制御２４０１〜２４０５を含む。ユーザ・アクセス可能な各制御は、拡充ノート・データ・オブジェクトによって定義されるように、拡充ノートの機能又は設定にリンクされる。
【０１０７】
拡充ノート２４００は、拡充ノートに関連する追加のコンテンツがあることを示す表示制御２４０１を含む。表示制御２４０１の選択は、拡充ノート２４００に、拡充ノート２４００に関連するコンテンツ・アイテムを表示させるように構成される。拡充ノート・データ・オブジェクトは、表示制御２４０１の選択に応答して、少なくとも１つのコンテンツ・ファイルに関連付けられたアプリケーションを検出し、拡充ノートのコンテンツ表示エリア内の少なくとも１つのコンテンツ・ファイルに関連付けられたアプリケーションを初期化すること、及び初期化されたアプリケーションに少なくとも１つのコンテンツ・ファイルをロードすることによって、少なくとも１つのコンテンツ・ファイルを開くように構成される。コンテンツ表示エリアは、テキスト及び１つ又は複数のユーザ・アクセス可能な制御２４０１〜２４０５を表示するように構成された１次表示エリアに隣接することができる。その後、ユーザは、開いたコンテンツをブラウズ、スクロールすること、又は、開いたコンテンツと他の方法で対話することが可能になる。
【０１０８】
表示制御２４０１に使用されるアイコン自体は、拡充ノートに関連付けられているか又はリンクされているコンテンツ・ファイルのタイプに基づいて決定され得る。図２４に示されているように、表示制御２４０１アイコンは、画像ファイルに対応し、リンクされたコンテンツが画像であることを示している。作成者によってリンクされたコンテンツ・ファイルのタイプの分析に基づいて、ユーザ・アクセス可能な制御の代わりに、他のタイプのアイコンが自動的に決定されて利用され得る。たとえば、ドキュメント・ファイル、ポータブル・ドキュメント・フォーマット（ＰＤＦ）ファイル、ビデオ・ファイル、又はウェブ・ブラウザ・リンク用に様々なアイコンが使用され得る。作成者がコンテンツ・アイテムを拡充ノートに関連付けていない場合、拡充ノート・データ・オブジェクトは、拡充ノート２４００から表示制御２４０１アイコンを省略するように構成され得る。
【０１０９】
図２４には、重要度インジケータ２４０２アイコンも示されている。拡充ノート・データ・オブジェクトは、拡充ノートの作成者がノートに重要としてフラグを立てたとき、（星のアイコンとして示されている）重要度インジケータ・アイコンを表示するように構成される。拡充ノートの重要度は、フラグ（重要である、又は重要ではない）として設定されることも可能であり、複数の異なる重要度値（たとえば、低、中、高）からの重要度値として設定されることも可能である。重要度インジケータ２４０２アイコンは、拡充ノートに関連付けられた重要度値を示すことができる。重要度インジケータ２４０２アイコンは、画像を表示するか、又は重要度レベルを示す視覚的属性を有することができる。たとえば、重要度インジケータ２４０２アイコンは、最も重要な拡充ノートが赤色の重要度インジケータ２４０２アイコンを有するのに対して、最も重要度が低い拡充ノートが緑色の重要度インジケータ２４０２アイコンを有するように色分けされ得る。作成者が拡充ノートに重要としてフラグを立てていない場合、重要度インジケータ２４０２アイコンは随意に省略され得る。
【０１１０】
アラート制御２４０２の選択は、拡充ノート２４００に関連付けられたアラート又は通知を表示することができる。たとえば、アラート制御の選択は、特定の通知に関連付けられた日時を示すことができる。拡充ノートがアラートを含む場合、拡充ノートを受信するデバイスのオペレーティング・システムによって、アラートがトリガされ得る。たとえば、アラートは、クライアントに送信されるプッシュ通知として、又はクライアントのカレンダに追加されるカレンダ・イベントとしてトリガされ得る。カレンダ・イベントは、通知アラートとして送信され、次いで、ユーザによって選択されてカレンダに追加され得る。代替的に、ユーザが、ユーザのデバイス上のカレンダ・アプリケーションへのアクセス許可を与えている場合、カレンダ・イベントは自動的に追加され得る。
【０１１１】
図２４はさらに、（鍵として示されている）プライバシー制御２４０３アイコンを示す。拡充ノート・データ・オブジェクトは、拡充ノートに関連付けられたプライバシー又はアクセス制御がある場合にプライバシー制御２４０３を表示するように構成される。拡充コンテンツ・ノート・データ・オブジェクトは、表示制御２４０１又はプライバシー制御２４０３のいずれかの選択に応答して、拡充ノート・データ・オブジェクトに関連付けられたプライバシー又はアクセス制御メカニズムがあるかどうかを判定するように構成される。拡充ノート・データ・オブジェクトに関連付けられた何らかの種類のプライバシー又はアクセス制御メカニズムがある場合、拡充コンテンツ・ノート・データ・オブジェクトは、関連するコンテンツ・ファイルを開く前、又は関連するコンテンツ・ファイルへのアクセスを提供する前に、（プライバシー又はアクセス制御メカニズムに従って）認証チェックを実行させるように構成される。
【０１１２】
認証チェックは、たとえば、パスワードを要求すること、ユーザ資格情報を要求及び検証すること、ユーザに関連付けられたインターネット・プロトコル（ＩＰ）アドレスが承認済みリストにあることを検証すること、ユーザに特定の条件への同意の要求することなどであり得る。たとえば、拡充ノートに関連付けられたプライバシー制御があり、ユーザが表示制御２４０１アイコンを選択した場合、関連付けられたコンテンツがユーザに表示される前に認証チェックが実行され得る。随意に、ユーザは、関連するコンテンツを開くことを試みる前に、プライバシー制御２４０３アイコンを選択するだけで認証チェックをトリガすることができる。拡充ノート・データ・オブジェクトは、認証チェックが失敗した場合、関連付けられたコンテンツ・ファイルへのアクセスを拒否するように構成される。
【０１１３】
図２４には、アラート制御２４０４も示されている。拡充ノート・データ・オブジェクトは、拡充ノートに関連付けられたアラートがある場合に（時計アイコンとして示されている）アラート制御を表示するように構成される。アラート制御２４０４の選択は、アラートに関連付けられた日時に、拡充ノート２４００に関連付けられたアラート又は通知を表示することができる。たとえば、アラート制御の選択は、特定の通知に関連付けられた日時を示すことができる。拡充ノートがアラートを含む場合、拡充ノートを受信するデバイスのオペレーティング・システムによって、アラートがトリガされ得る。たとえば、アラートは、クライアントに送信されるプッシュ通知として、又はクライアントのカレンダに追加されるカレンダ・イベントとしてトリガされ得る。カレンダ・イベントは、通知アラートとして送信され、次いで、ユーザによって選択されてカレンダに追加され得る。代替的に、ユーザが、ユーザのデバイス上のカレンダ・アプリケーションへのアクセス許可を与えている場合、カレンダ・イベントは自動的に追加され得る。
【０１１４】
拡充ノート２４００は、音声ノート・インジケータ２４０５アイコンも含むことができる。拡充ノートは、作成者が拡充ノート・データ・オブジェクトに音声ノートを含めたとき、音声ノート・インジケータ２４０５アイコンを表示するように構成される。音声ノート・インジケータ２４０５アイコンが表示されているとき、音声ノート・インジケータ２４０５アイコンを選択した結果として、隣接するウィンドウ又はインターフェース内でオーディオ再生アプリケーションが開き、対応する音声ノートがオーディオ再生アプリケーションにロードされる。その後、ユーザは、音声ノートを聞くこと、又は音声ノートを検索することができる。
【０１１５】
図２０に戻ると、ステップ２００３において、拡充ノート・データ・オブジェクトを共同ワークスペースの表現内の選択された位置に関連付けるユーザ入力が、ローカル・コンピューティング・デバイスによって検出される。たとえば、（図２４に示されているような）拡充ノートが作成されると、ユーザは、拡充ノートを共同ワークスペース内の位置に「ピン止め」するために、拡充ノートを共同ワークスペース内でドラッグ・アンド・ドロップ又は他の方法で配置することができる。
【０１１６】
図２５Ａ〜２５Ｂは、例示的な実施例による、拡充ノート・データ・オブジェクトを共同ワークスペースの表現内の選択された位置に関連付けるユーザ入力を検出することの一実例を示す。
【０１１７】
図２５Ａに示されているように、作成者は、拡充ノートを作成するためのプロセスを完了しており、結果として得られた拡充ノート２５０１は、最初に、ユーザ・インターフェース２５００の共同アプリケーション２５０３の共同ワークスペース２５０２内に表示される。この時点では、拡充ノート２５０１の位置は、まだ選択されていない。
【０１１８】
図２５Ｂは、拡充ノート２５０１の位置を選択するプロセスを示す。図２５Ｂに示されているように、ユーザは、拡充ノート２５０１を共同ワークスペース２５０２内の所望の位置にドラッグすることができる。ユーザが位置に満足すると、ユーザが拡充ノート２５０１を「ドロップ」することによって（ポインティング・デバイスを押すことなどによって）、及び／又は、ユーザが位置に満足していることを示す何らかのユーザ・インターフェース要素（拡充ノート・アイコン２５０４など）を選択することによって、位置が検出される。次いで、共同ワークスペース２５０２内の位置が検出され、拡充ノートに関連するメモリに記憶される。位置は、共同アプリケーション２５０３自体、オペレーティング・システムによって、又は本出願において前に説明されたように透明層によって検出され得る。
【０１１９】
拡充ノートの作成後に拡充ノート・データ・オブジェクトを選択された位置に関連付けるユーザ入力を検出することの代替として、拡充ノート・データ・オブジェクトの作成前に、ユーザが最初に共同ワークスペース内の位置を指定するユーザ入力が検出され得る。たとえば、図２５Ａを参照すると、図２３Ａ〜図２３Ｂに関して説明されたように、ユーザは、拡充ノート作成プロセスを開始するために、拡充ノートアイコン２５０４を共同ワークスペース２５０２内の所望の位置にドラッグすることができる。拡充ノートが生成されると、拡充ノートは、ユーザが拡充ノートアイコン２５０４をドラッグすることによって指定した以前に検出された位置に自動的に「ピン止め」され得る。
【０１２０】
図２０に戻ると、ステップ２００４において、拡充ノート・データ・オブジェクト、選択された位置、及び１つ又は複数のコマンドが、ローカル・コンピューティング・デバイスによって、ウェブ・ソケット接続を介してサーバに送信される。１つ又は複数のコマンドは、サーバに、拡充ノート・データ・オブジェクト及び選択された位置を、共同セッション用にサーバに接続されているすべてのコンピューティング・デバイスに伝えることを行わせるように構成される。１つ又は複数のコマンドは、サーバに、接続されたコンピューティング・デバイスのそれぞれ（すなわち、各コンピューティング・デバイス上の共同アプリケーションのローカル・バージョン及び／又は各コンピューティング・デバイス上の透過層）に（関連するすべてのコンテンツ及び設定を含む）拡充ノート・データ・オブジェクトに対応する拡充ノートを選択された位置に挿入するように命令することを行わせるように構成される。たとえば、ローカル・コンピューティング・デバイスからサーバに送られるコマンドは、サーバに、接続されたコンピューティング・デバイスに共同ワークスペースのそれらのローカル表現内の拡充ノートのコピーを選択された位置に挿入又はインスタンス化するように命令する追加のコマンドを、接続された各デバイスに送ることを行わせる。共同セッションに接続された各コンピューティング・デバイスは、拡充ノート・データ・オブジェクト及び選択された位置を受信すると、拡充ノート・データ・オブジェクトを共同ワークスペースのローカル表現内の選択された位置に挿入するように構成され得る。接続された各コンピューティング・デバイス上の拡充ノートの各コピーは、元の拡充ノートとしての設定（プライバシー制御、アラートなど）及びコンテンツ（関連するコンテンツ・アイテム、音声録音など）へのリンクを含み、これらはすべて、接続された各コンピューティング・デバイスによって受信される拡充ノート・データ・オブジェクト内に含まれる。
【０１２１】
図２６は、例示的な実施例による、拡充ノート・データ・オブジェクトを伝えるためのプロセスを示す。図２６に示されているように、コンピューティング・デバイス２６０１のユーザ１が拡充ノート・データ・オブジェクトを作成し、拡充ノート・データ・オブジェクトに関連する位置を選択した後、拡充ノート・データ・オブジェクトが共同ワークスペース内のどこに挿入されるべきかを示す（図２０のステップ１０３で検出される）位置情報、及び、拡充ノート・データ・オブジェクトと選択された位置情報の両方を共同セッションに接続されたすべてのコンピューティング・デバイス２６０１〜２６０３に伝えるようにサーバ２６００に命令するコマンドと共に、拡充ノート・データ・オブジェクトがサーバ２６００に送られる。
【０１２２】
ローカル・コンピューティング・デバイス２６０１からサーバ２６００に送信され、次いでサーバ２６００からすべてのコンピューティング・デバイス２６０１〜２６０３に送信される拡充ノート・データ・オブジェクトは、拡充ノート内に表示するテキストだけでなく、ユーザ設定及び構成（プライバシー制御、アラート、重要度レベルなど）、及び拡充ノートに関連付けられた任意のコンテンツ（コンテンツ・ファイル又は音声録音など）を含む。最終的に（すべてのコンテンツ及び設定を含む）拡充データ・オブジェクトのローカル・コピーを記憶することによって、各ユーザは、ユーザ対話に応答して情報を提供するサーバに依存することなく、拡充データ・オブジェクトと独立して対話することができ、それにより、対話応答時間及びサーバ上の負荷を改善すると同時に、（各拡充ノートは共同ワークスペースの表現全体で同じ位置に現れるので）なおも統一されたプロジェクト計画共同ワークスペースを維持することができる。
【０１２３】
随意に、サーバは、拡充ノート・データ・オブジェクトのコピー及び位置情報をサーバ・ファイル・リポジトリ又はストレージ２６０４に格納することができる。クライアント（コンピューティング・デバイス２６０１〜２６０３）のうちの１つが共同セッションから切断された場合、サーバ２６００は、再接続時に関連する拡充ノート・データ・オブジェクト及び位置情報をクライアントに再供給することができる。
【０１２４】
図２７は、例示的な実施例による、共同ワークスペースの複数のインスタンスに関する拡充ノートを示す。図２７に示されているように、表現２７０１、２７０２、及び２７０３を含む共同ワークスペースの各表現は、拡充ノートのコピーを、（拡充ノート・データ・オブジェクトの作成者によって指定された）選択された同じ位置に表示する。上記で説明されたように、拡充ノートに対応する拡充ノート・データ・オブジェクトは、サーバ２７００を介して、接続されたすべてのコンピューティング・デバイスに送られる。各表現は同じ拡充ノートを表示するが、ユーザ１、ユーザ２、及びユーザ３は、それぞれの拡充ノートと互いに独立して自由に対話する。
【０１２５】
図２８〜図３２は、例示的な実施例による、拡充ノートとのユーザ対話の実例を示す。図２８は、「プレゼンテーション用のスカイラインの写真」という表示テキストを有する拡充ノート２８００を示しており、ここでユーザは、表示制御２８０１アイコンを選択している。この選択の結果として、関連するコンテンツ・ファイル（写真）が隣接するコンテンツ表示エリア２８０２に表示される。
【０１２６】
前に説明されたように、拡充ノート２８００をレンダリングする前に、関連するコンテンツ・ファイルのタイプが検出され得、表示制御２８０１に使用するアイコンのタイプを決定するために使用され得る。さらに、関連するコンテンツ・ファイルのタイプは、隣接するコンテンツ表示エリア２８０２内で初期化するための適切なアプリケーションを決定するために使用され得る。たとえば、関連する文書は、隣接する表示エリア２８０２内のワード・プロセッシング・プログラムの初期化をもたらし、一方、関連するビデオは、隣接する表示エリア内のメディア・プレーヤの初期化をもたらす。
【０１２７】
ユーザは、隣接するコンテンツ・ブラウジング制御２８０３のうちの１つを使用して、関連するコンテンツ・ファイルと対話することができる。コンテンツ・ブラウジング制御２８０３は、ユーザが、コンテンツ・ウィンドウを最大化すること、コンテンツをスクロールすること、コンテンツをナビゲートすること、又は他の方法でコンテンツと対話することを可能にし、コンテンツに関する情報（メタデータなど）を提供する。たとえば、添付されたコンテンツがビデオである場合、ユーザはビデオ内の異なるセグメントまで早送り、巻き戻し、又はスキップすることができる。
【０１２８】
制御２８０１の選択を解除するか、関連するコンテンツを最小化する何らかの他のユーザ・インターフェース要素を選択すると、拡充ノートは、（たとえば、図２４に示されているような）元の形式に戻る。
【０１２９】
図２９は、作成者がプライバシー制御を設定し、その結果、プライバシー制御アイコン２９０２が表示されている拡充ノート２９００を示す。図２９に示されているように、表示制御２９０１を選択すると、画像を表示するためにユーザにパスワードを入力するように要求するプロンプト２９０３が表示される。随意に、ユーザは、プライバシー制御アイコン２９０２も選択することによって、このプロンプト２９０３を初期化することができる。ユーザが正しいパスワードを入力してプライバシー制御テストに正常に応答すると、ユーザは、関連するコンテンツを図２８に示される形式と同様の形式で閲覧することができる。
【０１３０】
図３０は、作成者が重要度レベルを高く設定した拡充ノート３０００を示す。図３０に示されているように、ユーザが対応する重要度インジケータ・アイコン３００１を選択すると、拡充ノート３０００の重要度レベルをユーザに知らせるプロンプト３００２が表示される。
【０１３１】
図３１は、作成者が重要度レベルを高く設定し、アクセス制御、及びアラートを含めた、拡充ノート３１００を示す。図３１に示されているように、ユーザがアラート制御アイコン３１０１を選択すると、関連するアラート通知をユーザに知らせるプロンプト３１０２が表示される。この場合、アラート通知は、ＥＳＴ午後２時までに拡充ノートを見直すことをユーザに再確認させるように、ＥＳＴ午後１時に表示されるように構成されたメッセージである。
【０１３２】
図３２は、作成者が音声ノートを含めた拡充ノート３２００を示す。図３２に示されているように、ユーザが音声ノート・インジケータ・アイコン３２０１を選択すると、コンテンツ表示エリア３２０２が再生可能な音声ノートとともに出力される。ユーザは、図に示されているように、コンテンツ・ブラウジング制御３２０４を介して、又はポインティング・デバイス、若しくは手のジェスチャ若しくはタッチ・ジェスチャ３２０３を使用することなどによって直接、音声ノートをブラウズし、音声ノートと対話することができる。たとえば、ユーザは、音声ノートの特定の部分にスキップすることができる。
【０１３３】
ネットワーク化された共同ワークスペースのウェブ・ソケット接続を介して拡充ノート・データ・オブジェクトを伝えるための方法の一部としてユーザから受信される入力は、マウス、タッチスクリーン、スタイラスなど、任意のタイプのポインティング・デバイスを介して受信され得る。入力を検出するために、仮想ドライバ及び／又は透明層を含む、前に説明された技法が使用され得る。たとえば、入力は、ユーザによるポインティング・ジェスチャーであり得る。さらに、ドラッグ・アンド・ドロップ・アクション、選択、選択解除、若しくは他の入力、又は入力のシーケンスなどの上記で説明されたアクションはまた、仮想ドライバ及び／又は透明層を含む、前に説明された技法を使用して入力され得る。
【０１３４】
上記で説明された技法のうちの１つ又は複数が、１つ又は複数のコンピュータ・システムにおいて実装されるか、又は１つ又は複数のコンピュータ・システムを伴い得る。図３３は、専用コンピューティング環境３３００の一実例を示す。コンピューティング環境３３００は、説明される（１つ又は複数の）実施例の使用又は機能性の範囲に関するいかなる限定をも示唆するものではない。
【０１３５】
図３３を参照すると、コンピューティング環境３３００は、少なくとも１つの処理ユニット３３１０と、メモリ３３２０とを含む。処理ユニット３３１０は、コンピュータ実行可能命令を実行し、現実プロセッサ又は仮想プロセッサであり得る。多重処理システムでは、処理能力を増加させるために、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ３３２０は、揮発性メモリ（たとえば、レジスタ、キャッシュ、ＲＡＭ）、不揮発性メモリ（たとえば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリなど）、又はその２つの何らかの組合せであり得る。メモリ３３２０は、説明される技法を実装するソフトウェア３３８０を記憶することができる。
【０１３６】
コンピューティング環境は、追加の特徴を有することができる。たとえば、コンピューティング環境３３００は、ストレージ３３４０と、１つ又は複数の入力デバイス３３５０と、１つ又は複数の出力デバイス３３６０と、１つ又は複数の通信接続３３９０とを含む。バス、コントローラ、又はネットワークなど、相互接続機構３３７０が、コンピューティング環境３３００の構成要素を相互接続する。一般に、オペレーティング・システム・ソフトウェア又はファームウェア（図示せず）が、コンピューティング環境３３００において実行する他のソフトウェアのための動作環境を提供し、コンピューティング環境３３００の構成要素のアクティビティを協調させる。
【０１３７】
ストレージ３３４０は、リムーバブル又は非リムーバブルであり得、磁気ディスク、磁気テープ又はカセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、或いは情報を記憶するために使用され得、コンピューティング環境３３００内でアクセスされ得る任意の他の媒体を含む。ストレージ３３４０は、ソフトウェア３３８０のための命令を記憶することができる。
【０１３８】
（１つ又は複数の）入力デバイス３３５０は、キーボード、マウス、ペン、トラックボール、タッチ・スクリーン、又はゲーム・コントローラなどのタッチ入力デバイス、音声入力デバイス、走査デバイス、デジタル・カメラ、遠隔制御、或いはコンピューティング環境３３００への入力を提供する別のデバイスであり得る。（１つ又は複数の）出力デバイス３３６０は、ディスプレイ、テレビジョン、モニタ、プリンタ、スピーカー、又はコンピューティング環境３３００からの出力を提供する別のデバイスであり得る。
【０１３９】
（１つ又は複数の）通信接続３３９０は、通信媒体を介した別のコンピューティング・エンティティへの通信を可能にする。通信媒体は、変調されたデータ信号中で、コンピュータ実行可能命令、オーディオ又はビデオ情報、或いは他のデータなど、情報を伝達する。変調されたデータ信号は、信号の特性のうちの１つ又は複数が、信号中の情報を符号化するような様式で設定又は交換された信号である。限定ではなく実例として、通信媒体は、電気、光、ＲＦ、赤外線、音響、又は他のキャリアを用いて実装されるワイヤード又はワイヤレス技法を含む。
【０１４０】
実装形態が、コンピュータ可読媒体のコンテキストにおいて説明され得る。コンピュータ可読媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な媒体である。限定ではなく実例として、コンピューティング環境３３００内で、コンピュータ可読媒体は、メモリ３３２０、ストレージ３３４０、通信媒体、及び上記のいずれかの組合せを含む。
【０１４１】
もちろん、図３３は、単に識別しやすいように、別個のデバイスとして、コンピューティング環境３３００、ディスプレイ・デバイス３３６０、及び入力デバイス３３５０を示す。コンピューティング環境３３００、ディスプレイ・デバイス３３６０、及び入力デバイス３３５０は、別個のデバイス（たとえば、ワイヤによってモニタ及びマウスに接続されたパーソナル・コンピュータ）であり得、単一のデバイス（たとえば、スマートフォン又はタブレットなど、タッチ・ディスプレイをもつモバイル・デバイス）、又はデバイスの任意の組合せ（たとえば、タッチスクリーン・ディスプレイ・デバイスに動作可能に結合されたコンピューティング・デバイス、単一のディスプレイ・デバイス及び入力デバイスに取り付けられた複数のコンピューティング・デバイスなど）に統合され得る。コンピューティング環境３３００は、セットトップ・ボックス、パーソナル・コンピュータ、或いは１つ又は複数のサーバ、たとえば、ネットワーク化されたサーバのファーム、クラスタリングされたサーバ環境、又はコンピューティング・デバイスのクラウド・ネットワークであり得る。
【０１４２】
説明される実施例に関して本発明の原理を説明及び図示したが、説明される実施例は、そのような原理から逸脱することなく構成及び詳細において修正され得ることを認識されよう。ソフトウェアにおいて示されている説明される実施例の要素は、ハードウェアにおいて実装され得、その逆も同様である。
【０１４３】
本発明の原理が適用され得る多くの可能な実施例に鑑みて、本発明として、以下の特許請求の範囲及びその等価物の範囲及び趣旨内に入り得るようなすべての実施例を主張する。
【図１】
2021533456.tif 000003
【図２】
2021533456.tif 000004
【図３】
2021533456.tif 000005
【図４】
2021533456.tif 000006
【図５Ａ】
2021533456.tif 000007
【図５Ｂ】
2021533456.tif 000008
【図６】
2021533456.tif 000009
【図７】
2021533456.tif 000010
【図８】
2021533456.tif 000011
【図９】
2021533456.tif 000012
【図１０】
2021533456.tif 000013
【図１１】
2021533456.tif 000014
【図１２Ａ】
2021533456.tif 000015
【図１２Ｂ】
2021533456.tif 000016
【図１２Ｃ】
2021533456.tif 000017
【図１３】
2021533456.tif 000018
【図１４】
2021533456.tif 000019
【図１５】
2021533456.tif 000020
【図１６】
2021533456.tif 000021
【図１７】
2021533456.tif 000022
【図１８】
2021533456.tif 000023
【図１９】
2021533456.tif 000024
【図２０】
2021533456.tif 000025
【図２１Ａ】
2021533456.tif 000026
【図２１Ｂ】
2021533456.tif 000027
【図２２】
2021533456.tif 000028
【図２３Ａ】
2021533456.tif 000029
【図２３Ｂ】
2021533456.tif 000030
【図２４】
2021533456.tif 000031
【図２５Ａ】
2021533456.tif 000032
【図２５Ｂ】
2021533456.tif 000033
【図２６】
2021533456.tif 000034
【図２７】
2021533456.tif 000035
【図２８】
2021533456.tif 000036
【図２９】
2021533456.tif 000037
【図３０】
2021533456.tif 000038
【図３１】
2021533456.tif 000039
【図３２】
2021533456.tif 000040
【図３３】
2021533456.tif 000041
【国際調査報告】
2021533456.tif 000042
2021533456.tif 000043