(57)【要約】  複数のユーザーがデジタルインクを使用してアプリケーション内においてリアルタイム協働を実行している際に、どのユーザーがどのコンテンツを生成したのかを識別するべく、ライブインク存在インジケータが提供されている。存在マネージャが、ユーザーの存在領域と、存在インジケータをレンダリングするための示唆された場所と、を判定している。
2020516983.tif 000002
【特許請求の範囲】
【請求項１】
演算装置において、少なくとも、インクストロークのインクポイントと、前記インクストロークを共有されたインキングキャンバスに入力しているユーザーのユーザー識別子と、を受け取ることと、
前記演算装置において、前記ユーザーについて、前記共有されたインキングキャンバス上の存在領域を判定することと、
前記演算装置において、前記インクポイント及び前記存在領域に基づいて、インク存在インジケータの示唆された場所を判定することと、
前記演算装置において、前記共有されたインキングキャンバスを表示しているグラフィカルユーザーインターフェイス内において、前記インク存在インジケータをレンダリングすることと、
を有する方法。
【請求項２】
状態が除去イベントを充足しているという判定に応答して、前記グラフィカルユーザーインターフェイスから前記インク存在インジケータを除去すること、
を更に有する請求項１に記載の方法。
【請求項３】
前記インクストロークの終了イベントの受け取りに応答して、カウンタを開始することを更に有し、前記状態は、新しいインクポイントが受け取られる前に、前記カウンタが既定の時点に到達した際に、前記除去イベントを充足している請求項２に記載の方法。
【請求項４】
前記状態は、新しいインクポイントが、既定の時間量内において、前記存在領域について受け取られない際に、除去イベントを充足している請求項２に記載の方法。
【請求項５】
前記ユーザーについて、前記共有されたインキングキャンバス上の前記存在領域を判定することは、
前記演算装置において、前記ユーザー識別子と関連する任意の既存の存在領域が存在しているかどうかを判定することと、
既存の存在領域が存在しないと判定された場合に、新しい存在領域を生成することと、
既存の存在領域が存在していると判定された場合に、演算装置において、前記インクポイントが前記既存の存在領域に関係付けられているかどうかを判定することと、
前記インクポイントが前記既存の存在領域に関係付けられていると判定された場合に、前記存在領域を前記既存の存在領域として識別することと、
前記インクポイントが前記既存の存在領域と関連付けられていないと判定された場合に、前記新しい存在領域を生成することと、
を有する請求項１に記載の方法。
【請求項６】
前記インク存在インジケータの前記示唆された場所の前記判定を実行することは、
既存の存在領域が存在していないと判定された場合に、前記新しい存在領域の前記インクポイントから特定の既定の距離において前記存在インジケータを更に配置することと、
前記インクポイントが前記既存の存在領域と関係付けられていると判定された場合に、前記インクポイントが、前記既存の存在領域の前記存在インジケータから既定の距離内にあるかどうかを判定することと、
前記インクポイントが、前記既定の距離内にあると判定された場合に、前記インク存在インジケータの前記示唆された場所を更新しないことと、
前記インクポイントが、前記既定の距離内にはないと判定された場合に、前記既存の存在領域の前記インクポイントから前記特定の既定の距離に位置するように、前記インク存在インジケータの前記示唆された場所を更新することと、
前記インクポイントが前記既存の存在領域に関係付けられてはいないと判定された場合に、前記新しい存在領域の前記インクポイントから前記特定の既定の距離において前記存在インジケータを更に配置することと、
を有する請求項５に記載の方法。
【請求項７】
前記インクポイント及び前記存在領域に基づいて前記インク存在インジケータの前記示唆された場所を判定することは、
前記インク存在インジケータの前記示唆された場所を前記存在領域の第１の受け取られたインクポイントから特定の既定の距離における場所として提供することと、
前記インクポイントが、前記インク存在インジケータ又は前記存在領域の前記第１の受け取られたインクポイントの既定の距離内にない際に、前記場所を更新することと、
を有する請求項１に記載の方法。
【請求項８】
前記インク存在インジケータは、存在アイコンを有し、前記存在アイコンは、ユーザーのプロフィール写真、イニシャル、名前、ランダムに選択されたバックグラウンド色又は画像、ユーザーによって選択された色又は画像、或いは、これらの組合せを有する請求項１に記載の方法。
【請求項９】
ディレクトリサービスから前記存在アイコンのユーザー情報を取得すること、
を更に有する請求項８に記載の方法。
【請求項１０】
コンテンツ生成アプリケーションのインク存在機能をその上部において保存したコンピュータ可読ストレージ媒体であって、
前記コンテンツ生成アプリケーションは、
演算装置によって実行された際に、インクポイントが描画されている存在領域を定義する、且つ、到来したインクポイントが、同一の存在領域の一部分であるのか又は異なる存在領域の一部分であるのかを判定する、存在マネージャコードと、
レンダラコードと、
を含み、
前記存在マネージャコードは、前記演算装置によって実行された際に、それぞれの存在領域の存在インジケータの場所を判定し、且つ、前記レンダラコードが前記演算装置によって実行された際に、前記存在インジケータが、前記コンテンツ生成アプリケーションのグラフィカルユーザーインターフェイスを介してユーザーに表示されるように、前記場所情報を前記コンテンツ生成アプリケーションの前記レンダラに提供する、媒体。
【請求項１１】
前記存在マネージャコードは、前記演算装置によって実行された際に、少なくとも、
前記演算装置において、前記ユーザー識別子と関連する任意の既存の存在領域が存在しているかどうかを判定し、
既存の存在領域が存在していないと判定された場合に、新しい存在領域を生成し、且つ、前記新しい存在領域の前記存在インジケータの前記場所を判定し、
既存の存在領域が存在していると判定された場合に、演算装置において、前記インクポイントが前記既存の存在領域に関係付けられているかどうかを判定し、
前記インクポイントが前記既存の存在領域に関係付けられていると判定された場合に、その既存の存在領域の前記存在インジケータの前記場所を判定し、
前記インクポイントが前記既存の存在領域に関係付けられてはいないと判定された場合に、前記新しい存在領域を生成し、且つ、前記新しい存在領域の前記存在インジケータの前記場所を判定する、
ように、前記演算装置を制御する命令を有する請求項１０に記載の媒体。
【請求項１２】
前記存在マネージャコードは、前記演算装置によって実行された際に、更に、
前記インクポイントから特定の既定の距離において前記存在インジケータを配置することにより、前記新しい存在領域の前記存在インジケータの前記場所を判定し、且つ、
前記インクポイントが前記既存の存在領域の前記存在インジケータから既定の距離内にあるかどうかを判定することにより、前記既存の存在領域の前記存在インジケータの前記場所を判定し、
前記インクポイントが前記既定の距離内にあると判定された場合に、前記インク存在インジケータの前記示唆された場所を更新せず、
前記インクポイントが前記既定の距離内にはないと判定された場合に、前記既存の存在領域の前記インクポイントから前記特定の既定の距離に位置するように、前記インク存在インジケータの前記示唆された場所を更新する、
ように、前記演算装置を制御する命令を更に有する請求項１１に記載の媒体。
【請求項１３】
１つ又は複数のハードウェアプロセッサと、
１つ又は複数のストレージ媒体と、
通信インターフェイスと、
ディスプレイと、
前記１つ又は複数のストレージ媒体のうちの少なくとも１つの上部において保存された協働対応型のコンテンツ生成アプリケーションと、
を有するシステムであって、
前記コンテンツ生成アプリケーションは、前記１つ又は複数のハードウェアプロセッサによって実行された際に、少なくとも、
前記通信インターフェイスを介して、少なくとも、インクストロークのインクポイントと、前記インクストロークを共有されたインキングキャンバスに入力しているユーザーのユーザー識別子と、を受け取り、
前記ユーザーについて、前記共有されたインキングキャンバス上の存在領域を判定し、
前記インクポイント及び前記存在領域に基づいて、インク存在インジケータの示唆された場所を判定し、且つ、
前記ディスプレイに対して、前記共有されたインキングキャンバスを表示しているグラフィカルユーザーインターフェイス内において前記インク存在インジケータをレンダリングする、
ように、前記１つ又は複数のハードウェアプロセッサを制御している、システム。
【請求項１４】
前記共有されたインキングキャンバス上の存在領域を判定するように前記１つ又は複数のハードウェアプロセッサを制御する前記協働対応型のコンテンツ生成アプリケーションは、少なくとも、
前記ユーザー識別子と関連する任意の既存の存在領域が存在しているかどうかを判定し、
既存の存在領域が存在していないと判定された場合に、新しい存在領域を生成し、
既存の存在領域が存在していると判定された場合に、前記インクポイントが前記既存の存在領域と関係付けられているかどうか判定し、
前記インクポイントが前記既存の存在領域に関係付けられていると判定された場合に、前記存在領域を前記既存の存在領域として識別し、
前記インクポイントが前記既存の存在領域に関係付けられてはいないと判定された場合に、前記新しい存在領域を生成する、
ように、前記１つ又は複数のハードウェアプロセッサを制御する請求項１３に記載のシステム。
【請求項１５】
前記インク存在インジケータの前記示唆された場所を判定するように前記１つ又は複数のハードウェアプロセッサを制御する前記協働対応型のコンテンツ生成アプリケーションは、少なくとも、
前記インク存在インジケータの前記示唆された場所を前記存在領域の第１の受け取られたインクポイントから特定の既定の距離における場所として提供し、且つ、
前記インクポイントが、前記インク存在インジケータ又は前記存在領域の前記第１の受け取られたインクポイントの既定の距離内にない際に、前記場所を更新する、
ように、前記１つ又は複数のハードウェアプロセッサを制御する請求項１３に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
[0001]  ノートブックアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、及びプレゼンテーションアプリケーションなどのコンテンツ生成アプリケーションは、コンテンツの生成及びキュレーションのための有用なツールである。これらの及びその他のコンテンツ生成アプリケーションは、ユーザーが、紙の上でペンを動かす方式によるペン又はスタイラス（並びに、しばしば、指又はその他のオブジェクト）の使用を通じた、コンテンツの入力及びアプリケーション（並びに、その内部において生成されたコンテンツ）とのやり取りを許容する「インキング（inking）」機能を益々包含するようになっている。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]  複数のユーザーが、デジタルインク（「デジタルインキング環境」）を使用してアプリケーション内においてリアルタイム協働の実行を開始した際に、どのユーザーがどのコンテンツを生成したのかを識別することが困難になりうる。
【課題を解決するための手段】
【０００３】
簡潔な概要
[0003]  インキング環境におけるリアルタイム協働の際のユーザーの識別について記述している。（インクストロークがキャンバスインターフェイスに入力される）インキング環境における協働対応型のコンテンツ生成アプリケーション用の視覚的な「インク存在」インジケータ機能が提供されている。
【０００４】
[0004]  インク存在機能は、なんらかのコンテンツをインキングした人物及びユーザーが描画キャンバス上においてそのコンテンツをインキングした場所に関する情報と共に、「存在インジケータ」の形態において、視覚的インジケータを提供しているのみならず、存在インジケータを配置するべきキャンバスインターフェイス上の場所を判定することもできる。
【０００５】
[0005]  協働対応型のコンテンツ生成アプリケーションのインク存在機能は、インクポイントが描画される存在領域を定義する、且つ、到来したインクポイントが同一の存在領域の一部分であるのか又は異なる存在領域の一部分であるのかを判定する、存在マネージャコードを含む。存在マネージャコードは、それぞれの存在領域ごとに存在インジケータの場所を更に判定し、且つ、存在インジケータが、コンテンツ生成アプリケーションのグラフィカルユーザーインターフェイスを介してユーザーに対して表示されるように、場所情報をコンテンツ生成アプリケーションのレンダラに提供している。
【０００６】
[0006]  存在インジケータは、だれかが画面の場所においてインキンクしていることの通知を支援する存在アイコンであってよい。一実施形態においては、存在インジケータは、インクポイントを追跡しておらず、むしろ、存在インジケータは、インクポイントとは別個に運動している。存在インジケータの場所は、定義可能な存在領域に基づいたものであってよく、且つ、存在領域のサイズが、新しいインクポイントが特定の基準を充足するような方式で増大するのに伴って、存在マネージャは、その存在領域の存在インジケータの場所を調節することができる。
【０００７】
[0007]  この「発明の概要」は、「発明を実施するための形態」において更に後述されている概念の一選択を概略的な形態において紹介するべく、提供されたものである。この「発明の概要」は、特許請求されている主題の主要な特徴又は不可欠な特徴を識別することを意図したものではなく、且つ、特許請求されている主題の範囲を限定するべく使用されることを意図したものでもない。
【図面の簡単な説明】
【０００８】
図面の簡単な説明
【図１】[0008]本発明の様々な実施形態が実行されうる例示用の動作環境を示す。
【図２】[0009]インク存在機能を有する協働対応型のコンテンツ生成アプリケーションを有する例示用のシステムを示す。
【図３Ａ】[0010]インク存在によって改善されたインキングを提供する例示用のプロセスフロー図を示す。
【図３Ｂ】[0010]インク存在によって改善されたインキングを提供する例示用のプロセスフロー図を示す。
【図４Ａ】[0011]特定の例示用の実装による、インク存在機能によって実行される例示用のロジックを示す。
【図４Ｂ】[0011]特定の例示用の実装による、インク存在機能によって実行される例示用のロジックを示す。
【図５Ａ】[0012]協働セッション用のインク存在機能の例示用のシナリオを示す。
【図５Ｂ】[0012]協働セッション用のインク存在機能の例示用のシナリオを示す。
【図５Ｃ】[0012]協働セッション用のインク存在機能の例示用のシナリオを示す。
【図６】[0013]協働グループのメンバが異なるフォームファクタのディスプレイを有している、インク存在機能の例示用のシナリオを示す。
【図７】[0014]本明細書において記述されている特定の実施形態において使用されうる演算装置のコンポーネントを示す。
【発明を実施するための形態】
【０００９】
詳細な説明
[0015]  インキング環境におけるリアルタイム協働の際のユーザーの識別について説明する。（インクストロークがキャンバスインターフェイスに入力される）インキング環境における協働対応型のコンテンツ生成アプリケーション用の視覚的な「インク存在」インジケータ機能が提供されている。
【００１０】
[0016]  協働空間内における複数のユーザーの間の弁別は、困難なものになりうる。いくつかの協働型のインキング環境は、（例えば、Microsoft Wordにおける追跡−変更機能を使用して）協働型のワードプロセッシング環境において実行されているものと類似した方式により、異なるユーザーを表すべく、異なる色のインクを利用している。但し、これは、協働空間内において着色されたコンテンツを生成するための複数のユーザーの能力を制限しうる。更には、キャンバスインターフェイスは、事実上、キャンバス上の任意の場所においてフリーフォームインキングを許容していることから、その他のユーザーが、だれかの寄与によって監督される場合もあり、或いは、これを見逃す場合もある。インク存在機能は、なんらかのコンテンツをインキングした人物及びユーザーが描画キャンバス上においてそのコンテンツにインキングした場所に関する情報と共に、「存在インジケータ」の形態において、視覚的インジケータを提供しているのみならず、存在インジケータを配置するべきキャンバスインターフェイス上の場所を判定することもできる。
【００１１】
[0017]  コンテンツ生成アプリケーションは、ユーザーが情報を寄与しうるソフトウェアアプリケーションである。本明細書において使用されているコンテンツ生成アプリケーションは、ユーザーがテキスト及び／又は画像に基づいたコンテンツをデジタル形態において生成しうる視覚的なコンテンツを対象としている。「コンテンツ生成アプリケーション」という用語は、いくつかのケースにおいては、「コンテンツオーサリングアプリケーション」、「プロダクティビティアプリケーション」、又は「コンテンツオーサリングツール」と同義であってよい。記述されているシステム及び技法は、コンテンツがオーサリングされているアプリケーション及びツールに合焦していることから、これらの用語の間において意図された弁別は、存在しておらず、且つ、これらの用語は、本明細書においては、相互交換可能に使用されうる。
【００１２】
[0018]  記述されているインク存在機能は、協働及び「インキング」又は「デジタルインク」をサポートしているコンテンツ生成アプリケーションについて適用可能であり、これは、スタイラス又はペン（或いは、場合によっては、タッチスクリーン又はパッド上のユーザーの指、或いは、恐らくは、マウス）が、その自然な形態における手書きをキャプチャするべく、使用される、ユーザー入力のモードを意味している。
【００１３】
[0019]  インクストロークは、「マーキング」の座標及びプロパティを表す、デジタイザがキャプチャする、プロパティ及びポイントデータの組を意味している。これは、単一のペンの降下、上昇、又は移動シーケンスにおいてキャプチャされるデータの組であってよい。データの組は、限定を伴うことなしに、ストロークの開始点、ストロークの終了点、ストロークの圧力、（アジマスとも呼称されうる）ストロークにおける（例えば、ペンの）傾斜、ストロークの方向、ストロークの経路に沿った別個の座標の間におけるストロークの時点及びタイミング、並びに、「インク」の色などの、パラメータを含むことができる。
【００１４】
[0020]  デジタイザは、一般に、アナログモーションを別個の座標値に変換するべく使用されうる、グリッド上の座標の組を提供している。デジタイザは、指、ペン、又はスタイラスの運動（例えば、ユーザーの手書き又はブラシストローク）をキャプチャしうる画面又は表面の下方又は上方に配置することができる。デジタイザの機能に応じて、ポイントの間のモーションの圧力、速度、及びモーションの方向などの情報を収集することができる。
【００１５】
[0021]  デジタルインクによれば、ユーザーは、先程参照されたパラメータ（例えば、座標や圧力など）に関与する、インクストロークのデータ構造（並びに、言語）に起因して、現実世界におけるとちょうど同様に、インキングされた単語又はインキングされた描画の外観を容易に制御することができる。インクストロークの形態において留まることにより、インキングされた単語のみならず、インキングされた描画も、インクによって変更可能なフォーマットを有している。
【００１６】
[0022]  協働対応型のコンテンツ生成アプリケーションにおいては（並びに、場合によっては、非協働型のシナリオにおいても）、インクストロークは、プロパティ及びポイントデータを含む、セマンティックイベント及び関連するメタデータを使用することにより、定義することができる。セマンティックイベントは、開始、継続、終了、取消、削除、移動、集計、及びこれらに類似したものであってよい。
【００１７】
[0023]  図１は、本発明の様々な実施形態が実行されうる例示用の動作環境を示しており、且つ、図２は、インク存在機能を有する協働対応型のコンテンツ生成アプリケーションを有する例示用のシステムを示している。
【００１８】
[0024]  図１を参照すれば、例示用の動作環境１００は、インク入力をレンダリングしうるレンダラ１０６を含む、デジタルインキング能力を有するコンテンツ生成アプリケーション１０４を稼働させている、ユーザーＡ用の演算装置１０２を含む。リアルタイム協働のためのライブインク存在をサポートするべく、存在マネージャ１０８が含まれている。協働サービス１１２を稼働させている協働サーバー１１０は、コンテンツ生成アプリケーション１０４用の協働機能をサポートすることが可能であり、且つ、複数のユーザー（例えば、演算装置１１４におけるユーザーＢ、演算装置１１６におけるユーザーＣ、及び演算装置１１８におけるユーザーＣ）の間の協働を促進することができる。協働サービス１１２は、協働セッションのユーザーの間における情報の同期化を許容している。
【００１９】
[0025]  演算装置１０２（のみならず、演算装置１１４、１１６、１１８、或いは、協働セッションに参加するべく使用されているその他の演算装置）は、図７との関係において記述されているものなどの、システム７００として、実施することができる。例えば、演算装置は、それぞれ、限定を伴うことなしに、ラップトップコンピュータ、デスクトップコンピュータ、タブレット、パーソナルデジタルアシスタント、スマートフォン、スマートテレビ、ゲーミングコンソール、ウェアラブル装置、及びこれらに類似したものなどの、任意の演算装置であってよい。
【００２０】
[0026]  図２を参照すれば、ユーザーＡ２００は、インクコンテンツ（「インク入力」２０２）をコンテンツ生成アプリケーション１０４に入力することができる。インク入力２０２は、インクストローク２０３として、デジタイザによって処理することが可能であり、且つ、レンダラ１０６により、（例えば、ユーザーのインクをレンダリングするオブジェクト１０６Ａを使用することにより）グラフィカルユーザーインターフェイス２０４における表示のために、レンダリングすることができる。協働セッションにおいては、コンテンツ生成アプリケーション１０４は、協働に対応しており、且つ、グラフィカルユーザーインターフェイス２０４内において、表示されたインク２０７として、（例えば、オブジェクト１０６Ａを使用することにより）レンダラ１０６によってレンダリング可能である、インクストローク２０３を送信し、且つ、インク情報（例えば、「collab ink」２０６Ａ）をその他のユーザーから受け取るべく、ネットワーク２０５上において協働サービス１１２と通信している。インク情報は、少なくとも、インクストロークのインクポイントと、インクストロークを共有されたインキングキャンバスに入力しているユーザーのユーザー識別子と、を含むことができる。インクポイントは、位置及びその他のパラメータ（例えば、圧力や色）を通知するデータ構造を有することができる。又、記述されている実装のいくつかにおいては、インクポイントは、セマンティックイベントを含むこともできる。
【００２１】
[0027]  動作環境内のコンポーネント（演算システム、ストレージリソース、及びこれらに類似したもの）は、ネットワーク２０５上において、或いは、その上部における相互の通信状態において、動作することができる。ネットワーク２０５は、限定を伴うことなしに、セルラーネットワーク（例えば、無線電話）、ポイントツーポイントダイヤルアップ接続、衛星ネットワーク、インターネット、ローカルエリアネットワーク（ＬＡＮ：Local Area Network）、ワイドエリアネットワーク（ＷＡＮ：Wide Area Network）、Ｗｉ−Ｆｉネットワーク、アドホックネットワーク、或いは、これらの組合せであってよい。このようなネットワークは、ハブ、ブリッジ、ルーター、スイッチ、サーバー、及びゲートウェイなどの、様々なタイプのネットワーク要素を接続するべく、広く使用されている。ネットワーク２０５は、インターネットなどのパブリックネットワーク及び／又はセキュアエンタープライズプライベートネットワークなどのプライベートネットワークを含む、１つ又は複数の接続されたネットワーク（例えば、マルチネットワーク環境）を含むことができる。ネットワーク２０５に対するアクセスは、当業者には理解されるように、１つ又は複数の有線又は無線アクセスネットワークを介して提供することができる。
【００２２】
[0028]  存在マネージャ１０８は、アプリケーション１０４によって受け取られたストローク（例えば、インクポイント、セマンティックイベント、パラメータ）を「聴取（listen）」し、且つ、存在インジケータ（例えば、存在アイコン）を配置するべき最良の場所を判定している。例えば、存在マネージャ１０８は、インク情報２０６Ａから、セマンティックイベント（例えば、開始、計測、終了）用のユーザーｉｄ及びインク情報の入力２０６（ユーザーＩＤ、Collab Ink（セマンティックイベント、パラメータ））を評価することが可能であり、ユーザーｉｄによって識別されたユーザーの存在領域を判定し、且つ、インク存在インジケータの場所を示唆している。この示唆された場所２０８は、存在アイコン２０９を表示するべく、レンダラ１０６に提供される。様々な実装においては、存在アイコン２０９は、ユーザーのプロフィール写真、イニシャル、名前、ランダムに選択されたバックグラウンドの色又は画像、或いは、ユーザーによって選択された色又は画像（或いは、これらの項目の任意の組合せ）を含むことができる。レンダラ１０６は、例えば、存在インジケータをレンダリングするオブジェクト１０６Ｂを使用することにより、存在インジケータをレンダリング及びアニメーション化している。
【００２３】
[0029]  存在アイコンは、だれかが画面の場所においてインキングしていることの通知を支援している。存在アイコンは、「ライブ」インク（２０７として表示されうる、リアルタイムで同時協働者から出現するインク）を追跡する必要はない。むしろ、存在インジケータの示唆された場所２０８は、レンダリングされているインキング２０７とは別個にレンダリングすることができる（例えば、対応する存在アイコン２０９と共に示唆された場所２０８を参照し、且つ、対応する表示されたインク２０７と共にｃｏｌｌａｂ  ｉｎｋ２０６を参照されたい）。存在アイコンは、インクの前に、インクと同時に、或いは、インクの開始の後に（あまり好ましくはない）、グラフィカルユーザーインターフェイス内において出現することができる。インク出現ロジックは、例えば、レンダラ１０６の別個のオブジェクト１０６Ａ及び１０６Ｂを有することによるなどのように、存在出現ロジックとは別個である。インキングキャンバスは、（タイピング用の制限的なラインとは対照的に）任意の時点における任意の場所におけるインキングを許容しており、且つ、従って、存在アイコンが、反対側の端部から互いに交差しているが結合性を有する写真を形成している、生成されたストローク上にありうる、インクポイントを追跡した場合には、気を散らせるモーションを生成しうるであろう。インキングロジックと存在出現ロジックの分離は、存在アイコンがキャンバス上において過剰に飛び回ることの回避を支援しうる。
【００２４】
[0030]  存在マネージャ１０８及び／又はレンダラ１０６及び／又は協働サーバー１１２などのコンポーネントとの間における通信は、いくつかのケースにおいては、アプリケーションプログラミングインターフェイス（ＡＰＩ：Application Programming Interface）を介して実行することができる。ＡＰＩは、異なるプログラムコードコンポーネント又はハードウェアコンポーネント（以下においては、「ＡＰＩ呼出コンポーネント」）が、ＡＰＩ実装コンポーネントによって提供される１つ又は複数の機能、方法、手順、データ構造、クラス、及び／又はその他のサービスにアクセスし且つこれらを使用することを許容している、プログラムコードコンポーネント又はハードウェアコンポーネント（以下においては、「ＡＰＩ実装コンポーネント」）によって実装されるインターフェイスである。ＡＰＩは、ＡＰＩ呼出コンポーネントとＡＰＩ実装コンポーネントの間において伝達される１つ又は複数のパラメータを定義することができる。ＡＰＩは、一般に、２つ以上のアプリケーションが相互に通信することを可能にするためのプログラミング命令及び規格の組であり、且つ、インターネット上において実装される際には、一般に、ハイパーテキスト転送プロトコル（ＨＴＴＰ：HyperText Transfer Protocol）要求メッセージ及びＲＥＳＴ（Representational State Transfer）又はＳＯＡＰ（Simple Object Access Protocol）アーキテクチャによる応答メッセージ用の規定されたフォーマット又は構造の組として実装されている。協働サービスの場合には、通信は、双方向であり、且つ、従って、ＨＴＴＰ／２、ＷｅｂＳｏｃｋｅｔ、及びその他の双方向プロトコルを使用することにより、実装することができる。
【００２５】
[0031]  図３Ａ〜図３Ｂは、インク存在によって改善されたインキングを提供する例示用のプロセスフローを示しており、図４Ａ及び図４Ｂは、特定の例示用の実装によるインク存在機能によって実行される例示用のロジックを示しており、且つ、図５Ａ〜図５Ｃは、協働セッション用のインク存在機能の例示用のシナリオを示している。図示のシナリオにおいては、第１ユーザー５０２用のコンテンツ生成アプリケーション５００は、共有されたキャンバス５１０を有する状態にある。図５Ａにおいて示されているように、且つ、図３Ａとの関係において記述されているように、いくつかのユーザーの参加は、任意選択により、一般的な存在インジケータ５２０を使用することにより、表すことができる。例えば、図３Ａを参照すれば、プロセス３００において、共有されたインキングキャンバス（例えば、共有されたキャンバス５１０）に参加している任意のユーザーのユーザー識別子は、第１ユーザーの演算装置におけるコンテンツ生成アプリケーション５００用のインク存在機能により、受け取ることができる（３０２）。インク存在機能は、受け取られたユーザー識別子と関連するユーザー情報を取得することができる（３０４）。これは、例えば、ディレクトリサービスとの通信により、実現することができる。一般的な存在インジケータ５２０は、共有されたキャンバス５１０を観察しているユーザーに通知することが可能であり、且つ、必ずしも、共有されたキャンバス５１０上においてインキングしている、或いは、インキングすることになる、ユーザーに限定されるものではない。
【００２６】
[0032]  例えば、アイコンの形態における、一般的な存在インジケータ５２０は、サイドバー又はメニューにおいて、レンダリングすることができる（３０６）。ユーザー情報の少なくともいくつかは、共有されたインキングキャンバス５１０に参加しているそれぞれのユーザーごとに、表示することができる。一般的なアイコン５２０は、インク存在機能によって生成及び管理されるものとして記述されているが、一般的なアイコン５２０のプロセス３００は、別個に処理することもできる。例えば、プロセス３００は、協働対応型のコンテンツ生成アプリケーションの一部であってもよい。その他のケースにおいては、一般的なアイコン５２０（並びに、プロセス３００）の包含は、インク存在機能の一部分ではあるものの、存在インジケータ２０８の場所を判定するものとまったく同一の機能によって実行されてはいない。
【００２７】
[0033]  図５Ｂ及び図３Ｂを参照すれば、図示のシナリオにおいては、協働参加者の一人が、そのユーザー装置（図示されていない）を介して、共有されたキャンバス５１０にコンテンツをインキングしている。コンテンツ生成アプリケーション５００のインク存在機能は、少なくとも、インクストロークのインクポイントと、インクストロークを共有されたキャンバス４１０に入力しているユーザーのユーザー識別子と、を受け取ることが可能であり（３１０）、ユーザーの存在領域を判定することが可能であり（３１２）、且つ、判定に基づいて、レンダラに対してインク存在インジケータの場所を示唆することができる（３１４）。レンダラは、存在マネージャ（例えば、１０８）から情報を受け取っている。情報は、アイコンを配置するべき場所及びユーザーがだれなのかを含みうる。次いで、レンダラは、存在アイコン５２２が表示されるようにしている。これに加えて、存在マネージャ１０８は、存在アイコンの場所を更新するように、レンダラに通知しうるのみならず、以前のアイコンを除去するように、レンダラに通知することもできる。
【００２８】
[0034]  存在マネージャ１０８又は存在レンダラ（例えば、オブジェクト１０６Ｂ）は、受け取られたユーザー識別子と関連するユーザー情報を取得することができる。これは、例えば、ディレクトリサービスとの通信により、実現することができる。例えば、レンダラが、示唆された場所（例えば、図２の示唆された場所２０８）において存在アイコンを描画するように（存在マネージャによって）指示された際に、レンダラ（例えば、図２のオブジェクト２０６Ｂ）は、ユーザー情報が利用可能であるかどうかをチェックする。利用可能ではない場合には、レンダラは、ランダムに選択された適切なバックグラウンド色を有する一時的なアイコンを提供し、且つ、レンダラは、非同期的な方式により、ユーザー情報（名前やプロフィール画像など）を取得するべく試みる。情報が所得されたら、情報は、（同一のセッションにおける）任意の将来のユーザー情報要求のために、情報がレンダラによって迅速に取得されうるように、キャッシングすることができる。このキャッシュは、共有されたキャンバスセッションからユーザーがサインアウトした際に、クリアすることができる。又、いくつかのケースにおいては、この同一のプロセスを上述の一般的なアイコン５２０について実行することもできる。
【００２９】
[0035]  それぞれの存在識別子は、その独自の一意の識別情報を有することができる。例えば、存在識別子アイコン自体は、その独自の識別情報のみならず、自身と関連付けられたユーザーＩＤを有することもできる。存在マネージャは、示唆された場所と共に、インジケータ識別子及びユーザーＩＤをレンダラに伝達することができる。この結果、同一ユーザー用の２つの異なる存在アイコンにより、同時に画面の右上隅において且つ画面の左下隅においてインキングしているユーザーを表すことができる。実際に、単一のユーザーは、単一のページ上において、複数の存在アイコンを有しうるであろう。
【００３０】
[0036]  存在領域は、特定のユーザーによって入力されたインクストロークのグループ（並びに、その他の近接したコンテンツ）を収容するディスプレイの一部分を意味している。存在領域は、コンテンツの近接性に基づいたものである。例えば、存在領域は、受け取られたインクポイントの境界ボックスに基づいたものであってよい。境界ボックスは、ストロークの境界を定めている矩形又はその他の指定された形状である。境界ボックスは、なにかの周りにおいて配置された最もぴったりとした正方形として見なすことができる（但し、いくつかの実装は、ある程度のエリアを追加することができる）。２つの異なるユーザーが同一のエリア内においてインキングしている場合には、それぞれのユーザーごとに、２つの存在領域が存在している。いくつかのケースにおいては、新しいインクポイントが、同一のユーザーに属する２つの異なる存在領域内において存在することになった場合には、存在マネージャは、例えば、それぞれの存在領域に追加された、最後のストローク（或いは、そのポイント）の場所又は時点に基づいて、最良の存在領域を選択することができる。実際に、近接して共にオーバーラップ又は存在しうる、ユーザー用の複数の存在領域が存在しうる。存在マネージャは、その存在領域内の最後のストロークからの距離に基づいて、インク分析の結果に基づいて、（その存在領域がストロークを消費した最後の存在領域であった）時間に基づいて、或いは、これらの組合せに基づいて、（インクポイントを割り当てるべく）存在領域の間において決定を下すことができる。
【００３１】
[0037]  インクポイントの間の距離は、コンテンツが同一の存在領域内にあるかどうか（且つ、従って、アイコンが、示唆された場所において留まりうるかどうか）を存在マネージャが判定する１つの方法である。但し、処理帯域幅が、インクがリアルタイムでレンダリングされるのに所要される時間内においてインキングを分析することが可能となるように、十分に大きい際には、インクストロークのグループを判定するべく、インク分析を実行することができよう。例えば、インク分析は、インクストロークから、文字、単語、文、段落、及び／又は描画を識別するべく、使用することができる。インク分析は、ストロークのグループを判定するべく、インクストロークの特性（例えば、重量、方向、圧力、色、及びこれらに類似したもの）と、いくつかのケースにおいては、文脈と、を使用することができる。
【００３２】
[0038]  存在マネージャコード（例えば、存在マネージャ１０８）は、ユーザーの演算装置によって実行された際に、ユーザー識別子と関連するその他のインクストロークが、共有されたインキングキャンバス内にあるかどうかを判定することが可能であり、新しいインクストロークが、以前のインクストローク（並びに／或いは、判定された存在領域）から既定の距離内にあるかどうかを判定することが可能であり、且つ、最後のストロークが入力された以降の時間を判定することができる。単一のユーザーからのインクストロークが到来するのに伴って、（存在マネージャの）コードは、インクストローク／ポイントが、同一の「存在領域」の一部分として見なされるべく、互いに十分近接しているかどうかを判定することができる。協働対応型のコンテンツ生成アプリケーションによって受け取られたインクストロークは、少なくとも、開始イベントと、終了イベントと、を含む。同一のエリア／領域に到達する複数のポイントが存在している場合には、存在アイコンは、運動せず、その理由は、特定の実施形態においては、ユーザーが単語を書き込んでいる間に、アイコンは、１つのスポット内において出現することになるからである。存在マネージャは、ストロークが互いに非常に近接していると判定する（或いは、インク分析を使用する）ことが可能であり、且つ、必要とされるのは、１つの存在アイコンのみであり、その理由は、ストロークのクラスタが、近傍において存在しているからである。
【００３３】
[0039]  一実装においては、受け取られたインク情報（例えば、collab ink２０６Ａ）は、新しいインクポイントが、ｘ又はｙ方向において、既存の存在領域から、ほぼ特定の距離（例えば、１．５インチ）に位置している場合に、特定のユーザーについて同一の存在領域内にあるものと見なされる。ユーザーの既存の存在領域が存在していない場合には、存在領域は、ライブインクポイントの境界ボックスに基づいたものとなる。記述されている方式に基づいて、同一のユーザーが、（ユーザーの観点において）２つの「画面の異なるエリア」内においてインキングしている場合には、注意をその別個の領域に引き付けるべく、且つ、インキングしている人物について通知するべく、それぞれの存在領域ごとに、２つの存在アイコンが出現することになる。
【００３４】
[0040]  例えば、図４Ａに示されているように、（図３Ｂの動作３１０などにおけるように）インク情報（例えば、図２のユーザーＩｄ及びCollab ink２０６）が受け取られた際に、存在マネージャ（例えば、１０８）は、任意のその他のインクストロークが、ユーザー識別子と関連付けられているかどうかを判定することができる（４０１）。そのユーザーによって予め受け取られたその他のインクストロークが存在していない場合には、存在マネージャは、存在アイコン用の示唆された場所をインクストロークの第１インクポイントから判定された距離内にあるものとして識別することができる（４０２）。そのユーザーによって受け取られたその他のインクストロークが存在している場合には、存在マネージャは、インクポイントが、存在アイコンを有するストロークの既定の距離内にあるかどうかを判定することができる（４０３）。既定の距離内においてインクポイントが存在している場合には、存在マネージャは、レンダラ用の存在アイコンの場所を更新する必要はない（４０４）。既定の距離内に、インクポイントが存在していない場合には、存在マネージャは、存在アイコン用の示唆された場所をインクストロークの第１インクポイントから判定された距離内にあるものとして識別することができる（４０５）。
【００３５】
[0041]  動作３１２及び３１４の別の例として、図４Ｂに示されているように、（例えば、動作３１０の後に）インクストロークが受け取られた際に、存在マネージャ（例えば、１０８）は、受け取られたユーザーＩｄと関連する任意の既存の存在領域が存在しているかどうかを判定することができる（４１０）。いくつかのケースにおいて、動作４１０は、存在インジケータ識別子が、特定のユーザー識別子について保存されているかどうかを識別することにより、実行することができる。いくつかのケースにおいては、動作４１０は、既定の時間量内において、受け取られると共に表示された特定のユーザー識別子と関連する任意のインクポイントが存在しているかどうかを識別することにより、実行することができる。いくつかのケースにおいては、これらのステップの組合せを実行することができる。
【００３６】
[0042]  既存の存在領域が存在していない場合には、存在マネージャは、新しい存在領域（４１２）を生成する。新しい存在領域（４１２）の生成は、受け取られたインクポイントの境界ボックスを識別することを含むことができる。境界ボックスは、新しい存在領域を定義することができる。示唆された場所を判定した後に、存在マネージャは、第１インクポイント（４１４）から特定の既定の距離において存在インジケータを配置するように、レンダラに連絡する。既存の存在領域が存在している場合には、存在マネージャは、新しいインクポイントが任意の既存の存在領域の一部分であるかどうかを判定する（４１６）。いくつかのケースにおいては、動作４１６は、インクポイントが、既存の存在領域内の１つ又は複数のインクポイントから、或いは、その既存の存在領域用のインク存在インジケータから、既定の距離内にあるかどうかを判定することを含んでいる。いくつかのケースにおいては、動作４１６は、インクポイントが以前のインクポイントと関係付けられているかどうかを判定するべく、インク分析を実行することを含んでおり、この場合に、インク分析は、文字、単語、文、段落、又は描画のうちの１つ又は複数を識別している。いくつかのケースにおいては、動作４１６は、これらのプロセスの組合せである。
【００３７】
[0043]  新しいインクが、任意の既存の存在領域の一部分ではないと判定された場合には、存在マネージャは、新しい存在領域を生成し（４１２）、且つ、示唆された場所を判定した後に、第１インクポイントから特定の既定の距離において存在インジケータを配置するように、レンダラに連絡する（４１４）。但し、新しいインクが既存の存在領域の一部分であると判定された場合には、存在マネージャは、インクが存在領域のインジケータから既定の距離内にあるかどうかを判定することができる（４１８）。存在マネージャが、インクが存在領域のインジケータから既定の距離内にはないと判定した場合には、存在マネージャは、存在インジケータの位置を更新し（４２０）、且つ、新しい示唆された場所をレンダラに伝達する。例えば、存在インジケータは、示唆された新しい場所と共に、対応するインジケータ識別子及びユーザーＩＤをレンダラに伝達することができる。インクが存在領域のインジケータから既定の距離内にあると存在マネージャが判定した場合には、存在インジケータの場所を変更するための更新は、実施されない（４２２）。
【００３８】
[0044]  図５Ｃを参照すれば、図示のシナリオにおいては、受け取られたインクストロークに基づいて、存在アイコン５２２が、第１場所５２３から第２場所５２４に移動している。図５Ｃの図に示されているように、書き込んでいる人物の更なる通知を含むことができる。例えば、一般的なユーザーの存在アイコン５２０Ａは、適用された視覚的インジケータ（例えば、強調表示や色の変化など）を有していてもよく、或いは、共有されたキャンバス５１０を単に観察している参加者とは対照的に、能動的な参加者である人物の促進を支援するべく、マーカー５２６を存在アイコン５２０Ａ上において表示することもできる。
【００３９】
[0045]  上述のように、存在マネージャ（例えば、１０８）は、示唆された場所をレンダラ（例えば、オブジェクト１０６Ｂ）に提供している。いくつかの実装においては、レンダラのレンダリングコードは、表示との関係においてアイコンサイズ又はその他のファクタを調整するべく、存在アイコンを運動させることが可能であり、或いは、その他の方法で調節することができる。
【００４０】
[0046]  一実装においては、存在インジケータの示唆された第１存在場所は、存在領域内の左上隅の第１ポイントである。存在インジケータの第１位置が第１ポイントであることから、後のポイントの場所は、存在アイコンの最良の位置に対して強い影響を有してはいない。いくつかのケースにおいては、特に、右から左へ書かれる言語が使用されていることをコンテキストが通知している際には、存在インジケータの第１存在場所は、存在領域の右上隅であってよい。
【００４１】
[0047]  存在領域が拡大を開始した場合に、存在インジケータの別の場所を選択することができる。特定の一例として、特定の存在領域の新しいインクポイントが、以前の示唆された場所から、６００個のピクセルだけ、離れている場合には、新しいライブインクポイントに更に近接するように、存在インジケータを運動させることができる。当然のことながら、その他の場所、分解能、及びサイズも想定されることを理解されたい。
【００４２】
[0048]  又、存在マネージャは、状態が除去イベントを充足している際には、存在アイコン（或いは、その他の視覚的インジケータ）を除去するように、レンダラに連絡することができる。いくつかの実装においては、ライブインクストロークについて、終了イベント（例えば、「終了」のセマンティックイベント）が受け取られた際には、ｘ秒にわたって、カウンタを開始することができる（ここで、ｘは、秒数である）。新しいポイントが、カウンタの終了前に、その存在領域内において出現しない場合には、存在マネージャは、状態が除去イベントを充足しており、且つ、存在インジケータを除去することを要する、と判定することができる。新しいライブインクポイントが存在マネージャによって受け取られた場合には、カウンタは取り消される。これは、そのエリア内においてライブインクユーザーがインキングを停止した後のｘ秒後に消失する存在インジケータの幻影を付与するためである。又、既定の時間量にわたって、ライブインクポイントが（終了イベントさえも）、存在領域内に到来しない場合には、存在アイコンは、自身を除去することができる（例えば、存在マネージャは、状態が除去イベントを充足していると判定することができる）。いくつかのケースにおいては、存在マネージャは、対応するインジケータ識別子によって識別された存在アイコンを除去するためのコマンドと共に、対応するインジケータ識別子及びユーザーＩＤをレンダラに伝達することにより、存在アイコンの除去を実現している。
【００４３】
[0049]  図６は、協働グループのメンバが、異なるフォームファクタのディスプレイを有している、インク存在機能の例示用のシナリオを示している。図６を参照すれば、第１ユーザー６０２Ａは、１つのコンテンツ生成アプリケーション６００Ａを使用することにより、共有されたキャンバス上において協働中であってよく、且つ、第２ユーザー６０４Ａは、相対的に大きな観察キャンバスを有する別のコンテンツ生成アプリケーション６００Ｂを使用することにより、共有されたキャンバス上において協働中であってよい。第１ユーザー、第２ユーザー、及び第３ユーザーは、共有されたキャンバス内において描画しているものと示されている。第３ユーザーの存在アイコン６０６が、第１ユーザー６０２Ａのコンテンツ生成アプリケーション６００Ａのビューポート及び第２ユーザー６０４のコンテンツ生成アプリケーション６００Ｂのビューポート内において示されている。第２ユーザーは、第１ユーザー６０２Ａがキャンバス上において書き込んで領域により、第１ユーザー６０２Ａの存在アイコン６０２を観察することができる。但し、ビューポートのサイズの違いに起因して、第１ユーザーは、第２ユーザーの書込み（例えば、コンテンツ６２０）を観察することができない。コンテンツ生成アプリケーション６００Ａのレンダラは、第２ユーザー６０４Ａの存在アイコン６０４を有するオフ画面インジケータ６１０により、オフ画面の場所を表すことができる。
【００４４】
[0050]  オフ画面インジケータ６１０は、だれかがオフ画面において書き込んでいることを通知するべく、画面のエッジに到来することができる。いくつかのケースにおいて、存在アイコンは、登場することにより、だれかが、いま、インキングしている、と伝えることが可能であり、且つ、ユーザーが、それをクリックし、且つ、だれかがインキングしている場所に導かれる、ことを可能にする機能を有することができよう。存在マネージャは、書込みの場所に移動するための動作を促進するべく、場所情報を提供することができる。例えば、存在アイコンの選択の通知（例えば、タップ）の受け取りに応答して、ライブインクにナビゲートするための選択肢をユーザーに提供することができる。レンダラは、いくつかのケースにおいては、なにかが観察可能領域の外側において書き込まれていることを伝達するべく、観察可能領域内において、テキスト又はグラフィカル情報を提供することができる。このメッセージの場所は、観察可能領域の境界に、及び／又は、一般的なユーザー存在インジケータ（例えば、図５Ａの５２０）の内部又は周辺に、位置することができる。
【００４５】
[0051]  図７は、本明細書において記述されている特定の実施形態において使用されうる演算装置のコンポーネントを示している。
【００４６】
[0052]  図７を参照すれば、システム７００は、限定を伴うことなしに、パーソナルコンピュータ、リーダー、モバイル装置、パーソナルデジタルアシスタント、ウェアラブルコンピュータ、スマートフォン、タブレット、ラップトップコンピュータ（ノードブック又はネットブック）、ゲーミング装置又はコンソール、エンターテインメント装置、ハイブリッドコンピュータ、デスクトップコンピュータ、スマートテレビ、或いは、電子ホワイトボード又は大きなフォームファクタのタッチスクリーンなどの、演算装置を表すことができる。従って、特定の演算装置を実装するべく、システム７００との関係において記述されている更に多くの又は更に少ない数の要素を内蔵することができる。
【００４７】
[0053]  システム７００は、ストレージシステム７１５上において保存されているソフトウェア７１０の命令に従ってデータを変換又は操作するべく、１つ又は複数のプロセッサの処理システム７０５を含む。
【００４８】
[0054]  処理システム７０５のプロセッサの例は、汎用中央処理ユニット、グラフィクス処理ユニット、用途固有のプロセッサ、及び論理装置のみならず、任意のその他のタイプの処理装置、組合せ、又はこれらの変形を含む。処理システム７０５は、ネットワーク接続コンポーネント、センサ、ビデオディスプレイコンポーネントなどの、１つ又は複数のその他のコンポーネントと共に、システムオンチップ（ＳｏＣ：System-On-Chip）であってもよく、或いは、これに含まれていてもよい。
【００４９】
[0055]  ソフトウェア７１０は、プログラム命令において実装されていてもよく、且つ、その他の機能に加えて、一般には、システム７００により、或いは、特に、処理システム７０５により、実行された際に、本明細書において記述されているように動作するべく、システム７００又は処理システム７０５の１つ又は複数のプロセッサを制御することができる。
【００５０】
[0056]  ソフトウェア７１０は、オペレーティングシステム７１８と、本明細書において記述されているリアルタイム協働のためのインク存在機能を含むコンテンツ生成アプリケーション７２０などのアプリケーションプログラムと、を含むことができる。装置オペレーティングシステムは、一般に、演算装置内の様々なコンポーネントの機能を制御及び調整することにより、アプリケーションが、ネットワーキングインターフェイスのような、更に下位レベルのインターフェイスと接続するための、相対的に容易な方法を提供している。オペレーティングシステムは、演算装置上においてネイティブで、且つ、ネイティブ装置オペレーティングシステム（ＯＳ：Operating System）上において稼働するソフトウェア仮想化層上において、の両方において、実装されうることに留意されたい。仮想化されたＯＳ層は、図７には、描かれていないが、ＯＳ、アプリケーションプログラム、及びＡＰＩをそれぞれが収容する、オペレーティングシステム空間内の、更なる、ネストされたグループとして、見なすことができる。
【００５１】
[0057]  ストレージシステム７１５は、処理システム７０５によって読取り可能である、且つ、コンテンツ生成アプリケーション７２０を含むソフトウェア７１０を保存する能力を有する、任意のコンピュータ可読ストレージ媒体を有することができる。
【００５２】
[0058]  ストレージシステム７１５は、コンピュータ可読命令、データ構造、プログラムモジュール、又はその他のデータなどの、情報の保存のための任意の方法又は技術において実装された、揮発性及び不揮発性のメモリ、着脱自在且つ非着脱自在の媒体を含むことができる。ストレージシステム７１５のストレージ媒体の例は、ランダムアクセスメモリ、読み出し専用メモリ、磁気ディスク、光ディスク、ＣＤ、ＤＶＤ、フラッシュメモリ、磁気カセット、磁気テープ、磁気ディスクストレージ、又はその他の磁気ストレージ装置、或いは、任意のその他の適切なストレージ媒体を含む。ストレージ媒体は、決して、一時的な伝播信号ではない。
【００５３】
[0059]  ストレージシステム７１５は、単一のストレージ装置として実装することができるが、一緒に配置された、或いは、相互の関係において分散された、複数のストレージ装置又はサブシステムに跨って実装することもできる。ストレージシステム７１５は、処理システム７０５と通信する能力を有する、コントローラなどの、更なる要素を含むことができる。
【００５４】
[0060]  システムは、ユーザーとシステム７００の間の通信を可能にする入出力（Ｉ／Ｏ：Input/Output）装置及びコンポーネントを含みうるユーザーインターフェイスシステム７３０を更に含むことができる。ユーザーインターフェイスシステム７３０は、マウス、トラックパッド、キーボード、ユーザーからタッチジェスチャを受け取るためのタッチ装置、スタイラス又は画面と関連するデジタイザ、ユーザーによる非タッチジェスチャ及びその他のモーションを検出するためのモーション入力装置、発話を検出するためのマイクロフォン、並びに、ユーザー入力を受け取る能力を有するその他のタイプの入力装置及びその関連する処理要素などの、入力装置を含むことができる。
【００５５】
[0061]  又、ユーザーインターフェイスシステム７３０は、表示画面、スピーカ、触覚フィードバックのための触覚装置、並びに、その他のタイプの出力装置などの、出力装置を含むこともできる。特定のケースにおいては、入力及び出力装置は、画像の描画とタッチジェスチャ及びインキング入力のユーザーからの受け取りの両方を実行する、タッチスクリーンディスプレイなどの、単一の装置内において組み合わせることもできる。（ディスプレイと関連付けられてもよく、或いは、その一部を形成することもできる）タッチスクリーンは、タッチの存在及び場所を検出するように構成された入力装置である。タッチスクリーンは、抵抗性タッチスクリーン、容量性タッチスクリーン、弾性表面波タッチスクリーン、赤外線タッチスクリーン、光学結像タッチスクリーン、分散信号タッチスクリーン、音響パルス認識タッチスクリーンであってもよく、或いは、任意のその他のタッチスクリーン技術を利用することもできる。いくつかの実施形態においては、タッチスクリーンは、ユーザーが１回又は複数回のタッチを使用してディスプレイ上において提示されたオブジェクト又はその他の情報とやり取りすること可能にするべく、透明な層として、ディスプレイの上部に内蔵されている。
【００５６】
[0062]  多数の方法により、視覚的出力をディスプレイ（図示されてはいない）上において描くことにより、グラフィカルユーザーインターフェイス要素、テキスト、画像、ビデオ、通知、仮想ボタン、仮想キーボード、或いは、視覚的形態において描かれる能力を有する任意のその他のタイプの情報を提示することができる。
【００５７】
[0063]  又、ユーザーインターフェイス７３０は、様々なユーザー入力及び出力装置のサポート下において、ＯＳによって実行される（例えば、グラフィクスチップ及び入力装置用の）ユーザーインターフェイスソフトウェア及び関連するソフトウェアを含むこともできる。関連するソフトウェアは、定義されたメカニズムを使用したアプリケーションプログラムへのユーザーインターフェイスハードウェアイベントの伝達においてＯＳを支援している。ユーザーインターフェイスソフトウェアを含むユーザーインターフェイスシステム７３０は、グラフィカルユーザーインターフェイス、ナチュラルユーザーインターフェイス、或いは、任意のその他のタイプのユーザーインターフェイスをサポートすることができる。例えば、本明細書において記述されているコンテンツ生成アプリケーション７２０用のインク存在を有するキャンバスインターフェイスを、ユーザーインターフェイスシステム７３０を通じて提示することができる。
【００５８】
[0064]  ネットワークインターフェイス７４０は、１つ又は複数の通信ネットワーク（図示されてはいない）上におけるその他の演算システムとの間の通信を許容する通信接続及び装置を含むことができる。協働してシステム間通信を許容する接続及び装置の例は、ネットワークインターフェイスカード、アンテナ、電力増幅器、ＲＦ回路、トランシーバ、及びその他の通信回路を含むことができる。接続及び装置は、その他の演算システム又はシステムのネットワークとの間において通信を交換するべく、（金属、ガラス、空気、又は任意のその他の適切な通信媒体などの）通信媒体上において通信することができる。通信インターフェイスとの間における送信は、ＯＳによって制御されており、この場合に、ＯＳは、必要に応じて、通信イベントについてアプリケーションに通知する。
【００５９】
[0065]  コンテンツ生成アプリケーション及び／又は存在マネージャ及び／又はレンダラとの関係において本明細書において記述されている特定の技法は、１つ又は複数のハードウェアプロセッサによって実行される、プログラムモジュールなどの、コンピュータ実行可能な命令の一般的な文脈において記述することができる。一般に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、並びに、特定のタスクを実行する、或いは、特定の抽象的データタイプを実装する、データ構造を含む。
【００６０】
[0066]  或いは、この代わりに、又はこれに加えて、本明細書において記述されている機能、方法、及びプロセスは、少なくとも部分的に、１つ又は複数のハードウェアモジュール（或いは、ロジックコンポーネント）により、実装することができる。例えば、ハードウェアモジュールは、限定を伴うことなしに、用途固有の集積回路（ＡＳＩＣ：Application-Specific Integrated Circuit）チップ、フィールドプログラム可能なゲートアレイ（ＦＰＧＡ：Field Programmable Gate Array）、システムオンチップ（ＳｏＣ：System-On-a-Chip）システム、複合プログラム可能論理装置（ＣＰＬＤ：Complex Programmable Logic Device）、並びに、現在既知の、或いは、将来開発される、その他のプログラム可能な論理装置を含むことができる。ハードウェアモジュールが起動された際に、ハードウェアモジュールは、ハードウェアモジュール内において含まれている機能、方法、及びプロセスを実行する。
【００６１】
[0067]  実施形態は、コンピュータプログラムプロダクト又はコンピュータ可読媒体などの、コンピュータプロセス、演算システム、或いは、製造物品として、実装することができる。本明細書において記述されている特定の方法及びプロセスは、１つ又は複数のストレージ媒体上において保存しうる、ソフトウェア、コード、及び／又はデータとして実施することができる。本発明の特定の実施形態は、その内部において、実行された際に、命令の組が、システムが上述の方法のうちの任意の１つ又は複数を実行するようにしうる、コンピュータシステムの形態における機械の使用を想定している。特定のコンピュータプログラムプロダクトは、コンピュータシステムによって読取り可能である（且つ、処理システムによって実行可能である）、且つ、コンピュータプロセスを実行するための命令のコンピュータプログラムをエンコードした、１つ又は複数のコンピュータ可読ストレージ媒体であってよい。本明細書において使用されている「ストレージ媒体」、「複数のコンピュータ可読ストレージ媒体」、又は「１つのコンピュータ可読ストレージ媒体」という用語は、決して、一時的な伝播信号から構成されてはいないことを理解されたい。
【００６２】
[0068]  以上においては、主題が、構造的特徴及び／又は行為に固有の言語において記述されているが、添付の請求項において定義されている主題は、そうではない旨が定義されていない限り、或いは、否定されていない限り、必ずしも、上述の特定の特徴又は行為に限定されるものではないことを理解されたい。むしろ、上述の特定の特徴及び行為は、請求項の実装の例として開示されており、且つ、その他の均等な特徴及び行為も請求項の範囲に含まれるものと解釈されたい。
【図１】
2020516983.tif 000003
【図２】
2020516983.tif 000004
【図３Ａ】
2020516983.tif 000005
【図３Ｂ】
2020516983.tif 000006
【図４Ａ】
2020516983.tif 000007
【図４Ｂ】
2020516983.tif 000008
【図５Ａ】
2020516983.tif 000009
【図５Ｂ】
2020516983.tif 000010
【図５Ｃ】
2020516983.tif 000011
【図６】
2020516983.tif 000012
【図７】
2020516983.tif 000013
【国際調査報告】
2020516983.tif 000014
2020516983.tif 000015
2020516983.tif 000016
2020516983.tif 000017