(57)【要約】コンピューティングデバイスのネットワーク上にデジタルインクを有するドキュメントに対するコラボレーションを管理するのに使用するためのシステム、方法およびコンピュータプログラム製品。各コンピューティングデバイスは、プロセッサと、少なくとも１つと、プロセッサの制御下で手書き入力を処理するための少なくとも１つのシステムアプリケーションを有する。システムアプリケーションは、各コンピューティングデバイスのうちの１つに関連付けられたディスプレイ上に、ドキュメントのジャーナルに基づいてデジタルインクを有するドキュメントを表示し、デジタルインクによって表現されるドキュメントに対する少なくとも手書き入力に関連付けられたジャーナルエントリを有するように、ジャーナルを定義し、ドキュメントを表示している他のネットワーク接続されたコンピューティングデバイスのうちの１つまたは複数を相手に、ジャーナルのジャーナルエントリを通信する。ジャーナルエントリに関連付けられた手書き入力は、通信された１つまたは複数のジャーナルエントリに基づいてドキュメントを表示しているコンピューティングデバイスのうちのいずれかの入力インターフェースを介するドキュメントに対する手書き入力である。
2019531540.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスのネットワークにおいてデジタルインクを有するドキュメントに対するコラボレーションを管理するためのシステムであって、各コンピューティングデバイスは、プロセッサと、前記プロセッサの制御下で手書き入力を処理するための少なくとも１つの非一時的コンピュータ可読媒体とを備えるシステムであって、各少なくとも１つの非一時的コンピュータ可読媒体は、
それぞれの前記コンピューティングデバイスに関連付けられたディスプレイ上に、前記ドキュメントのジャーナルに基づいてデジタルインクを有するドキュメントを表示させ、
前記デジタルインクによって表現される前記ドキュメントに対する少なくとも手書き入力に関連付けられた複数のジャーナルエントリを有するように、前記ジャーナルを定義し、
前記ネットワークを介して、前記ドキュメントを表示している他のコンピューティングデバイスのうちの１つまたは複数に、前記ジャーナルの前記ジャーナルエントリのうちの１つまたは複数を通信する
ように構成され、
前記ジャーナルエントリに関連付けられた前記手書き入力は、前記通信された１つまたは複数のジャーナルエントリに基づいて前記ドキュメントを表示している前記コンピューティングデバイスのうちのいずれかの入力インターフェースを介した前記ドキュメントに対する手書き入力であることを特徴とするシステム。
【請求項２】
各ジャーナルエントリは、少なくともそのジャーナルエントリを識別する識別情報と、そのジャーナルエントリに関連付けられた少なくとも前記手書き入力についてのコンテンツ情報とを含むように定義されることを特徴とする請求項１に記載のシステム。
【請求項３】
前記ジャーナルは、前記ジャーナルエントリの間のリンクが各ジャーナルエントリの前記識別情報に基づいて形成されるように定義されることを特徴とする請求項２に記載のシステム。
【請求項４】
各少なくとも１つの非一時的コンピュータ可読媒体は、前記識別情報を、それぞれの前記コンテンツ情報の前記手書き入力の時間についての時間情報に少なくとも基づいて定義するように構成され、
前記ジャーナルの最初のジャーナルエントリの後の各ジャーナルエントリは、時間順序で、そのジャーナルエントリの前記時間情報の前の時間情報を有する１つのジャーナルエントリにリンクされることを特徴とする請求項３に記載のシステム。
【請求項５】
第１のコンピューティングデバイスの前記少なくとも１つの非一時的コンピュータ可読媒体は、
前記ジャーナルを、１つのジャーナルエントリにリンクされた２つ以上の分岐されたジャーナルエントリに分岐させるように構成され、前記１つのジャーナルエントリは、時間順序で、前記分岐されたジャーナルエントリの時間情報の前の時間情報を有し、そのとき、
前記分岐されたジャーナルエントリは、前記ドキュメントの同じデジタルインクの少なくとも部分に関して、前記第１のコンピューティングデバイスを含む前記コンピューティングデバイスのうちの２つ以上の入力インターフェースに対する手書き入力についてのコンテンツ情報を有し、
前記第１のコンピューティングデバイスに関連付けられた第１の入力インターフェースに対する前記手書き入力についての前記コンテンツ情報を有する前記分岐されたジャーナルエントリの前記時間情報は、１つまたは複数の他の前記分岐されたジャーナルエントリのうちの少なくとも１つの前記時間情報よりも時間順序で後である請求項４に記載のシステム。
【請求項６】
第１のコンピューティングデバイスの前記少なくとも１つの非一時的コンピュータ可読媒体は、
前記第１の入力インターフェースに対する前記手書き入力についての前記コンテンツ情報を有する前記分岐されたジャーナルエントリのコピーを、前記コピーされた分岐されたジャーナルエントリの時間順序の直前の時間順序で時間情報を有する分岐されたジャーナルエントリにリンクするように構成されることを特徴とする請求項５に記載のシステム。
【請求項７】
コンピューティングデバイスのネットワークにおいてデジタルインクを有するドキュメントに対するコラボレーションを管理するための方法であって、各コンピューティングデバイスは、プロセッサと、前記プロセッサの制御下で手書き入力を処理するための少なくとも１つの非一時的コンピュータ可読媒体とを備える方法であって、
前記コンピューティングデバイスのうちの１つに関連付けられたディスプレイ上に、前記ドキュメントのジャーナルに基づいてデジタルインクを有するドキュメントを表示するステップと、
前記デジタルインクによって表現される前記ドキュメントに対する少なくとも手書き入力に関連付けられた複数のジャーナルエントリを有するように、前記ジャーナルを定義するステップと、
前記ネットワークを介して、前記ドキュメントを表示している他のコンピューティングデバイスのうちの１つまたは複数に、前記ジャーナルの前記ジャーナルエントリのうちの１つまたは複数を通信するステップと
を含み、
前記ジャーナルエントリに関連付けられた前記手書き入力は、前記通信された１つまたは複数のジャーナルエントリに基づいて前記ドキュメントを表示している前記コンピューティングデバイスのうちのいずれかの入力インターフェースを介した前記ドキュメントに対する手書き入力であることを特徴とする方法。
【請求項８】
各ジャーナルエントリは、少なくともそのジャーナルエントリを識別する識別情報と、そのジャーナルエントリに関連付けられた少なくとも前記手書き入力についてのコンテンツ情報とを含むように定義されることを特徴とする請求項７に記載の方法。
【請求項９】
前記ジャーナルは、前記ジャーナルエントリの間のリンクが各ジャーナルエントリの前記識別情報に基づいて形成されるように定義されることを特徴とする請求項８に記載の方法。
【請求項１０】
前記識別情報を、それぞれの前記コンテンツ情報の前記手書き入力の時間についての時間情報に少なくとも基づいて定義するステップを含み、
前記ジャーナルの最初のジャーナルエントリの後の各ジャーナルエントリは、時間順序で、そのジャーナルエントリの前記時間情報の前の時間情報を有する１つのジャーナルエントリにリンクされることを特徴とする請求項９に記載の方法。
【請求項１１】
第１のコンピューティングデバイスの前記少なくとも１つの非一時的コンピュータ可読媒体で、
前記ジャーナルを、１つのジャーナルエントリにリンクされた２つ以上の分岐されたジャーナルエントリに分岐させるステップを含み、前記１つのジャーナルエントリは、時間順序で、前記分岐されたジャーナルエントリの時間情報の前の時間情報を有し、そのとき、
前記分岐されたジャーナルエントリは、前記ドキュメントの同じデジタルインクの少なくとも部分に関して、前記第１のコンピューティングデバイスを含む前記コンピューティングデバイスのうちの２つ以上の入力インターフェースに対する手書き入力についてのコンテンツ情報を有し、
前記第１のコンピューティングデバイスに関連付けられた第１の入力インターフェースに対する前記手書き入力についての前記コンテンツ情報を有する前記分岐されたジャーナルエントリの前記時間情報は、１つまたは複数の他の前記分岐されたジャーナルエントリのうちの少なくとも１つの前記時間情報よりも時間順序で後であることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記第１のコンピューティングデバイスの前記少なくとも１つの非一時的コンピュータ可読媒体で、
前記第１の入力インターフェースに対する前記手書き入力についての前記コンテンツ情報を有する前記分岐されたジャーナルエントリのコピーを、前記コピーされた分岐されたジャーナルエントリの時間順序の直前の時間順序で時間情報を有する分岐されたジャーナルエントリにリンクするステップを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
コンピュータ可読プログラムコードが具現化された非一時的コンピュータ可読媒体であって、前記コンピュータ可読プログラムコードは、コンピューティングデバイスのネットワークにおいてデジタルインクを有するドキュメントに対するコラボレーションを管理するための方法を実装するように実行されるように適合され、各コンピューティングデバイスは、プロセッサと、前記プロセッサの制御下で手書き入力を処理するための少なくとも１つの非一時的コンピュータ可読媒体とを備える非一時的コンピュータ可読媒体において、前記方法は、
前記コンピューティングデバイスのうちの１つに関連付けられたディスプレイ上に、前記ドキュメントのジャーナルに基づいてデジタルインクを有するドキュメントを表示することと、
前記デジタルインクによって表現される前記ドキュメントに対する少なくとも手書き入力に関連付けられた複数のジャーナルエントリを有するように、前記ジャーナルを定義することと、
前記ネットワークを介して、前記ドキュメントを表示している他のコンピューティングデバイスのうちの１つまたは複数に、前記ジャーナルの前記ジャーナルエントリのうちの１つまたは複数を通信することと
を含み、
前記ジャーナルエントリに関連付けられた前記手書き入力は、前記通信された１つまたは複数のジャーナルエントリに基づいて前記ドキュメントを表示している前記コンピューティングデバイスのうちのいずれかの入力インターフェースを介した前記ドキュメントに対する手書き入力であることを特徴とする非一時的コンピュータ可読媒体。
【請求項１４】
各ジャーナルエントリは、少なくともそのジャーナルエントリを識別する識別情報と、そのジャーナルエントリに関連付けられた少なくとも前記手書き入力についてのコンテンツ情報とを含むように定義されることを特徴とする請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記ジャーナルは、前記ジャーナルエントリの間のリンクが各ジャーナルエントリの前記識別情報に基づいて形成されるように定義されることを特徴とする請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記方法は、
前記識別情報を、それぞれの前記コンテンツ情報の前記手書き入力の時間についての時間情報に少なくとも基づいて定義することを含み、
前記ジャーナルの最初のジャーナルエントリの後の各ジャーナルエントリは、時間順序で、そのジャーナルエントリの前記時間情報の前の時間情報を有する１つのジャーナルエントリにリンクされることを特徴とする請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記方法は、第１のコンピューティングデバイスで、
前記ジャーナルを、１つのジャーナルエントリにリンクされた２つ以上の分岐されたジャーナルエントリに分岐させることを含み、前記１つのジャーナルエントリは、時間順序で、前記分岐されたジャーナルエントリの時間情報の前の時間情報を有し、そのとき、
前記分岐されたジャーナルエントリは、前記ドキュメントの同じデジタルインクの少なくとも部分に関して、前記第１のコンピューティングデバイスを含む前記コンピューティングデバイスのうちの２つ以上の入力インターフェースに対する手書き入力についてのコンテンツ情報を有し、
前記第１のコンピューティングデバイスに関連付けられた第１の入力インターフェースに対する前記手書き入力についての前記コンテンツ情報を有する前記分岐されたジャーナルエントリの前記時間情報は、１つまたは複数の他の前記分岐されたジャーナルエントリのうちの少なくとも１つの前記時間情報よりも時間順序で後であることを特徴とする請求項１６に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記方法は、前記第１のコンピューティングデバイスで、
前記第１の入力インターフェースに対する前記手書き入力についての前記コンテンツ情報を有する前記分岐されたジャーナルエントリのコピーを、前記コピーされた分岐されたジャーナルエントリの時間順序の直前の時間順序で時間情報を有する分岐されたジャーナルエントリにリンクすることを含むことを特徴とする請求項１７に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、一般に、コンピューティングデバイスインターフェースを使用する手書き認識システムおよび方法の分野に関する。本明細書は、より詳細には、手書きされた入力を使用するドキュメントコラボレーションのためのシステムおよび方法に関する。
【背景技術】
【０００２】
関連出願の相互参照
本出願は、参照によって本明細書に明示的に組み込まれその一部とされる２０１６年８月１６日に出願された欧州特許出願第１６２９０１５１．６号明細書の利益を主張する。
【０００３】
コンピューティングデバイスは、ますます日常生活に遍在するようになっている。それらは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、ハイブリッドコンピュータ（２−ｉｎ−１）、電子書籍リーダ、移動電話、スマートフォン、ウェアラブルコンピュータ、全地球測位システム（ＧＰＳ）ユニット、エンタープライズデジタルアシスタント（ＥＤＡ）、携帯情報端末（ＰＤＡ）、ゲームコンソールなどの形態をとる。さらに、コンピューティングデバイスは、インタラクティブホワイトボードなどを有する教育環境、車両および機器、たとえば、自動車、トラック、農業機器、製造機器、建物環境制御（たとえば、照明、ＨＶＡＣ）、ならびに家庭器具および商用器具に組み込まれている。
【０００４】
コンピューティングデバイスは、一般に、中央処理装置（ＣＰＵ）などの少なくとも１つの処理要素、何らかの形態のメモリ、ならびに入力デバイスおよび出力デバイスからなる。様々なコンピューティングデバイスおよびそれらのその後の使用は、様々なインターフェースおよび入力デバイスを必要とする。１つのそのような入力デバイスは、ユーザの指またはペンもしくはスタイラスなどの用具とタッチセンシティブ面との間の接触を通じてユーザ入力が受け取られる、タッチスクリーンまたはタッチパッドなどのタッチセンシティブ面である。別の入力デバイスは、入力インターフェースの上方でユーザによって行われるジェスチャを感知する入力インターフェースである。さらなる入力デバイスは、非タッチ物理面または仮想面とのタッチインタラクションまたは非タッチインタラクションの相対位置を検出する位置検出システムである。
【０００５】
そのようなコンピューティングデバイスに関して、コラボレーション機能性は、教育および企業実務などの特定の使用分野においてますます必要となっている。一般的に、同じ場所におけるユーザによるドキュメントに対するコラボレーションは、インタラクティブホワイトボード上のようにアクタが直接コラボレーションするので、それらのドキュメントの作成または構築において困難をもたらさない。しかしながら、いわゆる「クラウド」の出現により、分散されたコンピューティングデバイスは、同じコンテンツに対して異なる場所で同時にまたは時間を経過して作業するために使用されることが可能である。そのような遠隔コラボレーションは、しかしながら、関係付けられたコンテンツとのインタラクションが発生したときに競合の可能性をもたらすことになる。
【０００６】
そのような競合は、従来、１人のユーザがドキュメントに作用しているときにそのドキュメントの遠隔編集を「ロック」することによって対処されていた。このメカニズムは競合を排除するのに効果的であるが、「アクティブ」ユーザは典型的には、ドキュメントの一部にのみ作用しているので、ドキュメントの他の部分に対する他のすべてのアクションをロックアウトするのは行き過ぎである。特許文献１では、ドキュメントロックを使用しないコラボレーション編集システムを説明しており、むしろ同時編集が可能にされ、複数のユーザによる同じコンテンツに対するアクションが検出されてユーザ間で通信され、それらによって競合が解決されることが可能である。そのようなシステムは、ユーザが競合に対処するのに積極的に関与することを必要とする。
【０００７】
競合を解決すると共にユーザへのこの負担を取り除くために他のシステムが提案されている。たとえば、特許文献２では、異なるユーザの修正に対応するデータ層が使用され、特定のユーザの層が他のユーザのそれらに対して優先権が与えられることが可能になるシステムを説明している。同様に、特許文献３では、スーパーバイザおよび下位ユーザを使用して競合を調停するシステムを説明している。しかしながら、そのような「マスタ」および「スレーブ」システムは、すべてのユーザが平等に扱われないため、コラボレーションの精神に反しており、これは、そのような不平等な関係によって容易化された使用事例のみへの乏しいユーザエクスペリエンスまたは適用につながる。
【０００８】
コラボレーションは、特定の入力方法によって強化される。たとえば、デジタル手書きは、ユーザが高レベルのソフトウェアまたはアプリケーション知識を持つ必要なく、迅速にユーザ入力が取り込まれるので、特に有用な入力タイプである。上述された入力方法のいずれも、一般に、手書きを使用する描画またはテキスト入力のために使用されることが可能である。そのような方法において、ユーザの手書きは、手書き認識システムまたは手書き認識方法を使用して解釈される。
【０００９】
手書きを使用するコラボレーションシステムも提案されている。たとえば、特許文献４および特許文献５は、コラボレーションされたドキュメント上に重ねられる手書きされた入力についての注釈層を使用するシステムを説明している。しかしながら、そのようなシステムは、注釈層に取り込まれるコンテンツおよびアクションを処理するために、クライアントサーバなどによる集中化された処理を必要とする。特許文献６もまた、クライアントサーバ手法であるが、層構造ではなく注釈データベースを使用するものを説明している。しかしながら、そのようなクライアントサーバ手法は、競合を調停するためにかなり複雑なメカニズムを必要とし、それが処理複雑性および時間を増大させ、そのためユーザエクスペリエンスに影響を及ぼす。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国特許第８，１０８，７７９号明細書
【特許文献２】米国特許第９，３３０，３６６号明細書
【特許文献３】米国特許出願公開第２０１２／０２３１４４１号明細書
【特許文献４】米国特許第５，８２６，０２５号明細書
【特許文献５】米国特許第６，３４２，９０６号明細書
【特許文献６】米国特許第７，８６５，８１６号明細書
【特許文献７】米国特許出願第１４／８８６，１９５号明細書
【特許文献８】米国特許出願第１５／０８３，１９５号明細書
【特許文献９】米国特許出願第１４／９５５，１５５号明細書
【発明の概要】
【課題を解決するための手段】
【００１１】
本明細書の以下で説明される本開示の例は、コンピューティングデバイスのネットワークにおいてデジタルインクを有するドキュメントに対するコラボレーションを管理するのに使用するための方法、システムおよびコンピュータプログラム製品を提供する。
【００１２】
一例において、本開示は、コンピューティングデバイスのネットワークにおいてデジタルインクを有するドキュメントに対するコラボレーションを管理するためのシステムを含む。各コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を処理するための少なくとも１つの非一時的コンピュータ可読媒体とを備えてよい。各非一時的コンピュータ可読媒体は、それぞれのコンピューティングデバイスに関連付けられたディスプレイ上に、ドキュメントのジャーナルに基づいてデジタルインクを有するドキュメントを表示させ、デジタルインクによって表現されるドキュメントに対する少なくとも手書き入力に関連付けられた複数のジャーナルエントリを有するように、ジャーナルを定義し、ネットワークを介して、ドキュメントを表示している他のコンピューティングデバイスのうちの１つまたは複数に、ジャーナルのジャーナルエントリのうちの１つまたは複数を通信するように構成されてよい。ジャーナルエントリに関連付けられた手書き入力は、通信された１つまたは複数のジャーナルエントリに基づいてドキュメントを表示しているコンピューティングデバイスのうちのいずれかの入力インターフェースを介したドキュメントに対する手書き入力である。
【００１３】
各ジャーナルエントリは、少なくともそのジャーナルエントリを識別する識別情報と、そのジャーナルエントリに関連付けられた少なくとも手書き入力についてのコンテンツ情報とを含むように定義されてよい。ジャーナルは、ジャーナルエントリの間のリンクが各ジャーナルエントリの識別情報に基づいて形成されるように定義されてよい。
【００１４】
各非一時的コンピュータ可読媒体は、識別情報を、それぞれのコンテンツ情報の手書き入力の時間についての時間情報に少なくとも基づいて定義するように構成されてよい。ジャーナルの最初のジャーナルエントリの後の各ジャーナルエントリは、時間順序で、そのジャーナルエントリの時間情報の前の時間情報を有する１つのジャーナルエントリにリンクされてよい。
【００１５】
第１のコンピューティングデバイスの非一時的コンピュータ可読媒体は、ジャーナルを、１つのジャーナルエントリにリンクされた２つ以上の分岐されたジャーナルエントリに分岐させるように構成されてよく、その１つのジャーナルエントリは、時間順序で、分岐されたジャーナルエントリの時間情報の前の時間情報を有し、そのとき、分岐されたジャーナルエントリは、ドキュメントの同じデジタルインクの少なくとも部分に関して、第１のコンピューティングデバイスを含むコンピューティングデバイスのうちの２つ以上の入力インターフェースに対する手書き入力についてのコンテンツ情報を有し、第１のコンピューティングデバイスに関連付けられた第１の入力インターフェースに対する手書き入力についてのコンテンツ情報を有する分岐されたジャーナルエントリの時間情報は、１つまたは複数の他の分岐されたジャーナルエントリのうちの少なくとも１つの時間情報よりも時間順序で後である。
【００１６】
第１のコンピューティングデバイスの非一時的コンピュータ可読媒体は、第１の入力インターフェースに対する手書き入力についてのコンテンツ情報を有する分岐されたジャーナルエントリのコピーを、コピーされた分岐されたジャーナルエントリの時間順序の直前の時間順序で時間情報を有する分岐されたジャーナルエントリにリンクするように構成されてよい。
【００１７】
別の例において、本開示は、コンピューティングデバイスのネットワークにおいてデジタルインクを有するドキュメントに対するコラボレーションを管理するための方法を含む。各コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を処理するための少なくとも１つの非一時的コンピュータ可読媒体とを備えてよい。方法は、コンピューティングデバイスのうちの１つに関連付けられたディスプレイ上に、ドキュメントのジャーナルに基づいてデジタルインクを有するドキュメントを表示するステップと、デジタルインクによって表現されるドキュメントに対する少なくとも手書き入力に関連付けられた複数のジャーナルエントリを有するように、ジャーナルを定義するステップと、ネットワークを介して、ドキュメントを表示している他のコンピューティングデバイスのうちの１つまたは複数に、ジャーナルのジャーナルエントリのうちの１つまたは複数を通信するステップとを含んでよい。ジャーナルエントリに関連付けられた手書き入力は、通信された１つまたは複数のジャーナルエントリに基づいてドキュメントを表示しているコンピューティングデバイスのうちのいずれかの入力インターフェースを介したドキュメントに対する手書き入力である。
【００１８】
各ジャーナルエントリは、少なくともそのジャーナルエントリを識別する識別情報と、そのジャーナルエントリに関連付けられた少なくとも手書き入力についてのコンテンツ情報とを含むように定義されてよい。ジャーナルは、ジャーナルエントリの間のリンクが各ジャーナルエントリの識別情報に基づいて形成されるように定義されてよい。
【００１９】
方法は、識別情報を、それぞれのコンテンツ情報の手書き入力の時間についての時間情報に少なくとも基づいて定義してよい。ジャーナルの最初のジャーナルエントリの後の各ジャーナルエントリは、時間順序で、そのジャーナルエントリの時間情報の前の時間情報を有する１つのジャーナルエントリにリンクされてよい。
【００２０】
方法は、第１のコンピューティングデバイスの非一時的コンピュータ可読媒体で、ジャーナルを、１つのジャーナルエントリにリンクされた２つ以上の分岐されたジャーナルエントリに分岐させてよく、１つのジャーナルエントリは、時間順序で、分岐されたジャーナルエントリの時間情報の前の時間情報を有し、そのとき、分岐されたジャーナルエントリは、ドキュメントの同じデジタルインクの少なくとも部分に関して、第１のコンピューティングデバイスを含むコンピューティングデバイスのうちの２つ以上の入力インターフェースに対する手書き入力についてのコンテンツ情報を有し、第１のコンピューティングデバイスに関連付けられた第１の入力インターフェースに対する手書き入力についてのコンテンツ情報を有する分岐されたジャーナルエントリの時間情報は、１つまたは複数の他の分岐されたジャーナルエントリのうちの少なくとも１つの時間情報よりも時間順序で後である。
【００２１】
方法は、第１のコンピューティングデバイスの非一時的コンピュータ可読媒体で、第１の入力インターフェースに対する手書き入力についてのコンテンツ情報を有する分岐されたジャーナルエントリのコピーを、コピーされた分岐されたジャーナルエントリの時間順序の直前の時間順序で時間情報を有する分岐されたジャーナルエントリにリンクしてよい。
【００２２】
別の例において、本開示は、コンピュータ可読プログラムコードが具現化された非一時的コンピュータ可読媒体を含む。コンピュータ可読プログラムコードは、コンピューティングデバイスのネットワークにおいてデジタルインクを有するドキュメントに対するコラボレーションを管理するための方法を実装するように実行されるように適合されてよい。各コンピューティングデバイスは、プロセッサと、プロセッサの制御下で手書き入力を処理するための少なくとも１つの非一時的コンピュータ可読媒体とを備えてよい。コンピューティングデバイスのうちの１つに関連付けられたディスプレイ上に、ドキュメントのジャーナルに基づいてデジタルインクを有するドキュメントを表示するステップと、デジタルインクによって表現されるドキュメントに対する少なくとも手書き入力に関連付けられた複数のジャーナルエントリを有するように、ジャーナルを定義するステップと、ネットワークを介して、ドキュメントを表示している他のコンピューティングデバイスのうちの１つまたは複数に、ジャーナルのジャーナルエントリのうちの１つまたは複数を通信するステップとを含んでよい。ジャーナルエントリに関連付けられた手書き入力は、通信された１つまたは複数のジャーナルエントリに基づいてドキュメントを表示しているコンピューティングデバイスのうちのいずれかの入力インターフェースを介したドキュメントに対する手書き入力である。
【００２３】
各ジャーナルエントリは、少なくともそのジャーナルエントリを識別する識別情報と、そのジャーナルエントリに関連付けられた少なくとも手書き入力についてのコンテンツ情報とを含むように定義されてよい。ジャーナルは、ジャーナルエントリの間のリンクが各ジャーナルエントリの識別情報に基づいて形成されるように定義されてよい。
【００２４】
方法は、識別情報を、それぞれのコンテンツ情報の手書き入力の時間についての時間情報に少なくとも基づいて定義してよい。ジャーナルの最初のジャーナルエントリの後の各ジャーナルエントリは、時間順序で、そのジャーナルエントリの時間情報の前の時間情報を有する１つのジャーナルエントリにリンクされてよい。
【００２５】
方法は、第１のコンピューティングデバイスで、ジャーナルを、１つのジャーナルエントリにリンクされた２つ以上の分岐されたジャーナルエントリに分岐させてよく、１つのジャーナルエントリは、時間順序で、分岐されたジャーナルエントリの時間情報の前の時間情報を有し、そのとき、分岐されたジャーナルエントリは、ドキュメントの同じデジタルインクの少なくとも部分に関して、第１のコンピューティングデバイスを含むコンピューティングデバイスのうちの２つ以上の入力インターフェースに対する手書き入力についてのコンテンツ情報を有し、第１のコンピューティングデバイスに関連付けられた第１の入力インターフェースに対する手書き入力についてのコンテンツ情報を有する分岐されたジャーナルエントリの時間情報は、１つまたは複数の他の分岐されたジャーナルエントリのうちの少なくとも１つの時間情報よりも時間順序で後である。
【００２６】
方法は、第１のコンピューティングデバイスで、第１の入力インターフェースに対する手書き入力についてのコンテンツ情報を有する分岐されたジャーナルエントリのコピーを、コピーされた分岐されたジャーナルエントリの時間順序の直前の時間順序で時間情報を有する分岐されたジャーナルエントリにリンクしてよい。
【図面の簡単な説明】
【００２７】
本システムおよび方法は、図面と併せて、それらの例の以下の詳細な説明からより完全に理解されよう。図面において、同様の参照符号は同様の要素を表す。
【００２８】
【図１】本システムおよび方法の例に係るコラボレーション環境のブロック図である。
【図２】本システムおよび方法の例に係るコンピューティングデバイスのブロック図である。
【図３】複数のコンピューティングデバイスの入力インターフェースの少なくとも部分における表示およびユーザ入力領域の例示的な視覚的レンダリングを示すブロック図である。
【図４Ａ】手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、コンピューティングデバイスのうちの１つの表示および入力領域に表示された例示的なドキュメントを示す図である。
【図４Ｂ】本システムおよび方法の例に係る、図４Ａのドキュメントに関連付けられたドキュメントジャーナルを示す図である。
【図５】本システムおよび方法の例に係る、手書き認識のためのシステムのブロック図である。
【図６】本システムおよび方法の例に係る、図５の手書き認識システムの詳細を示すブロック図である。
【図７Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図４Ａの例示的なドキュメントを示す図である。
【図７Ｂ】本システムおよび方法の例に係る、図７Ａのドキュメントに関連付けられたドキュメントジャーナルを示す図である。
【図８Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図７Ａの例示的なドキュメントを示す図である。
【図８Ｂ】本システムおよび方法の例に係る、図８Ａのドキュメントに関連付けられたドキュメントジャーナルを示す図である。
【図９Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図８Ａの例示的なドキュメントを示す図である。
【図９Ｂ】本システムおよび方法の例に係る、図９Ａのドキュメントに関連付けられたドキュメントジャーナルを示す図である。
【図１０Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた図９Ａの例示的なドキュメント、および、ドキュメント上にデジタルインクがレンダリングされた別のコンピューティングデバイスの表示および入力領域に表示された例示的なドキュメントを示す図である。
【図１０Ｂ】本システムおよび方法の例に係る、図１０Ａのドキュメントに関連付けられたドキュメントジャーナルを示す図である。
【図１０Ｃ】本システムおよび方法の例に係る、図１０Ａのドキュメントに関連付けられたドキュメントジャーナルを示す図である。
【図１１Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図１０Ａの例示的なドキュメントを示す図である。
【図１１Ｂ】本システムおよび方法の例に係る、図１１Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１１Ｃ】本システムおよび方法の例に係る、図１１Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１２Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図１１Ａの例示的なドキュメントを示す図である。
【図１２Ｂ】本システムおよび方法の例に係る、図１２Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１２Ｃ】本システムおよび方法の例に係る、図１２Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１３Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図１２Ａの例示的なドキュメントを示す図である。
【図１３Ｂ】本システムおよび方法の例に係る、図１３Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１３Ｃ】本システムおよび方法の例に係る、図１３Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１４Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図１３Ａの例示的なドキュメントを示す図である。
【図１４Ｂ】本システムおよび方法の例に係る、図１４Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１４Ｃ】本システムおよび方法の例に係る、図１４Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１５Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図１４Ａの例示的なドキュメントを示す図である。
【図１５Ｂ】本システムおよび方法の例に係る、図１５Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１５Ｃ】本システムおよび方法の例に係る、図１５Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１６Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図１５Ａの例示的なドキュメントを示す図である。
【図１６Ｂ】本システムおよび方法の例に係る、図１６Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１６Ｃ】本システムおよび方法の例に係る、図１６Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１７Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた、図１６Ａの例示的なドキュメントを示す図である。
【図１７Ｂ】本システムおよび方法の例に係る、図１７Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１７Ｃ】本システムおよび方法の例に係る、図１７Ａのドキュメントに関連付けられたドキュメントジャーナルの少なくとも部分を示す図である。
【図１８Ａ】さらに手書きされた入力がドキュメント上にデジタルインクとしてレンダリングされた図１７Ａの例示的なドキュメント、および、ドキュメント上にデジタルインクがレンダリングされた別のコンピューティングデバイスの表示および入力領域に表示されたさらなる例示的なドキュメントを示す図である。
【図１８Ｂ】本システムおよび方法の例に係る、図１８Ａのさらなる例示的なドキュメントに関連付けられたドキュメントジャーナルの部分を順に示す図である。
【図１８Ｃ】本システムおよび方法の例に係る、図１８Ａのさらなる例示的なドキュメントに関連付けられたドキュメントジャーナルの部分を順に示す図である。
【図１８Ｄ】本システムおよび方法の例に係る、図１８Ａのさらなる例示的なドキュメントに関連付けられたドキュメントジャーナルの部分を順に示す図である。
【図１９Ａ】デジタルインクが活字組みインクとしてレンダリングされた図１８Ａの例示的なドキュメントを示す図である。
【図１９Ｂ】本システムおよび方法の例に係る、図１９Ａのさらなる例示的なドキュメントに関連付けられたドキュメントジャーナルの部分を示す図である。
【発明を実施するための形態】
【００２９】
以下の詳細な説明において、関連する教示の完全な理解を提供するために、多くの特定の詳細が例として説明される。しかしながら、本教示がそのような詳細なしに実施されてよいことは当業者には明らかなはずである。他の例において、よく知られた方法、手順、構成要素、および／または回路は、本教示の態様を不必要に不明瞭にするのを回避するために、詳細なしに比較的高レベルで説明されている。
【００３０】
上、下、上方、下方、最低、最高、水平、垂直などのような方向特徴の参照および説明は、認識されるべき入力が行われる入力インターフェースに適用されるデカルト座標系に関して行われる。さらに、本説明における「テキスト」という用語の使用は、任意の書かれた言葉におけるすべての英数字およびそれらの文字列、ならびに書かれたテキストにおいて使用される通常の非英数字、たとえば、記号を包含するものと理解される。さらに、本説明における「非テキスト」という用語は、自由形式の手書きされたコンテンツならびにレンダリングされたテキストおよび画像データ、ならびに、非テキストコンテキストにおいて使用される非英数字およびそれらの文字列ならびに英数字およびそれらの文字列を包含するものと理解される。
【００３１】
本明細書において説明される様々な技術は一般に、ポータブルコンピューティングデバイスおよび非ポータブルコンピューティングデバイス上の手書きされたコンテンツを、そのコンテンツのパブリッシュ可能なドキュメントへの変換を可能にする方式でキャプチャ、処理、および管理することに関する。本明細書において説明されるシステムおよび方法は、コンピューティングデバイスに接続されたもしくはコンピューティングデバイスのタッチセンシティブ画面などの入力インターフェースを介した、またはコンピューティングデバイスに接続されたデジタルペンもしくはマウスなどの入力デバイスを介した、コンピューティングデバイスに対するユーザの自然な書く形式または描く形式の入力の認識を利用してよい。いわゆるオンライン認識技法を使用した手書き入力の認識に関して様々な例が説明されるが、認識のための入力の他の形態、たとえば、デジタルインクではなく画像が認識されるオフライン認識などへの適用が可能であることが理解される。
【００３２】
手描きおよび手書きという用語は、デジタル媒体もしくはデジタルで接続された媒体上への直接的なユーザの手の使用を通じて、またはハンドヘルドスタイラスなどの入力ツールを介しての、ユーザによるデジタルコンテンツの作成を定義するために、本明細書において互換的に使用される。「手」という用語は、本明細書において入力技法の簡潔な説明を提供するために使用されるが、同様の入力のためのユーザの身体の他の部分、たとえば、足、口、および眼などの使用が、この定義に含まれる。
【００３３】
図１は、本システムおよび方法に従うコラボレーション環境１０のブロック図を示す。コラボレーション環境１０は、ネットワーク１２を介して互いに通信可能に相互接続された、いくつかのコンピューティングまたは入力デバイス１００を含む。ネットワーク１２は、たとえば、コンピューティングデバイス１００が互いに有線接続されるケーブルもしくはファイバイーサネットなどの有線ネットワーク（たとえば、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ））、またはコンピューティングデバイス１００が互いに無線接続される無線ネットワーク、たとえば、無線通信ネットワーク（たとえば、振幅変調（ＡＭ）チャネル、周波数修変調（ＦＭ）チャネル）、移動体通信ネットワーク（たとえば、３Ｇ、４Ｇ）、短距離ネットワーク（たとえば、赤外線、ＢＬＵＥＴＯＯＴＨ（登録商標））、Ｗｉ−Ｆｉ（たとえば、無線ＬＡＮ、ＰＡＮもしくはＭＡＮ、無線広域ネットワーク（ＷＡＮ））など、または両方の組み合わせであってよい。さらに、ネットワーク１２は保護されなくてよく、またはたとえば暗号化により保護されてよい。説明されている例において、ネットワーク１２は、デバイス１００が互いに直接接続されるピアツーピアネットワークである。ピアツーピア技術は、情報のマスタの役割をする１人のユーザに依拠することなく、複数のユーザが同じ情報に対して作業することを可能にする。
【００３４】
各コンピューティングデバイスは、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、ハイブリッドコンピュータ（２−ｉｎ−１）、電子書籍リーダ、移動電話、スマートフォン、ウェアラブルコンピュータ、デジタル時計、インタラクティブホワイトボード、全地球測位システム（ＧＰＳ）ユニット、エンタープライズデジタルアシスタント（ＥＤＡ）、携帯情報端末（ＰＤＡ）、またはゲームコンソールなどであってよい。図２は、コンピューティングデバイス１００のうちの１つまたは複数の例示的な構成のブロック図を示す。コンピューティングデバイス１００は、少なくとも１つの処理要素、何らかの形態のメモリ、ならびに入力および／または出力（Ｉ／Ｏ）デバイスの構成要素を含む。これらの構成要素は、コネクタ、回線、バス、ケーブル、バッファ、電磁リンク、ネットワーク、モデム、トランスデューサ、ＩＲポート、アンテナ、または当業者に知られている他のものなどの入力および出力を通じて、互いに、およびネットワーク１２と通信する。
【００３５】
各コンピューティングデバイス１００の例示される例は、コンピューティングデバイスからの画像、テキスト、およびビデオなどのデータを出力するための少なくとも１つのディスプレイ１０２を有する。ディスプレイ１０２は、ＬＣＤ、プラズマ、ＬＥＤ、ｉＯＬＥＤ、ＣＲＴ、または当業者に知られているタッチセンシティブでありもしくはタッチセンシティブでない他の任意の適切な技術を使用してよい。ディスプレイ１０２の少なくとも一部は、少なくとも１つの入力インターフェース１０４と同じ位置にされる。入力インターフェース１０４は、抵抗、表面弾性波、容量性、赤外線グリッド、赤外線アクリル投影、光学イメージング、分散信号技術、音響パルス認識などの技術、またはユーザ入力を受け取るための当業者に知られている他の任意の適切な技術を使用してよい。入力インターフェース１０４は、その境界を明確に識別する恒久的なまたはビデオ生成された境界によって境界付けられてよい。オンボードディスプレイの代わりにまたはそれに加えて、コンピューティングデバイス１００は投影ディスプレイ能力を有してよい。
【００３６】
各コンピューティングデバイス１００は、ローカルインターフェースを介して通信可能に結合された１つまたは複数の追加的なＩ／Ｏデバイス（または周辺機器）を含んでよい。追加的なＩ／Ｏデバイスは、キーボード、マウス、スキャナ、マイクロフォン、タッチパッド、バーコードリーダ、レーザリーダ、無線周波数デバイスリーダ、または当業者に知られている他の任意の適当な技術などの入力デバイスを含んでよい。さらに、Ｉ／Ｏデバイスは、プリンタ、バーコードプリンタ、または当業者に知られている他の任意の適切な技術などの出力デバイスを含んでよい。さらに、Ｉ／Ｏデバイスは、コンピューティングデバイス１００およびネットワーク１２の内部の入力および出力の両方を通信する通信デバイス、たとえば、変調器／復調器（別のデバイス、システム、もしくはネットワークにアクセスするためのモデム）、無線周波数（ＲＦ）トランシーバもしくは他のトランシーバ、電話インターフェース、ブリッジ、ルータ、または当業者に知られている他の任意の適切な技術などを含んでよい。ローカルインターフェースは、通信を可能にするための追加的な要素、たとえば、コントローラ、バッファ（キャッシュ）、ドライバ、中継器、受信機などを有してよく、これらは、簡単にするために省略されているが当業者に知られている。さらに、ローカルインターフェースは、他のコンピュータ構成要素の間で適切な通信を可能にするためのアドレス、制御、および／またはデータ接続を含んでよい。
【００３７】
各コンピューティングデバイス１００はまた、プロセッサ１０６を含み、プロセッサ１０６は、ソフトウェア、特にメモリ１０８に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサは、任意のカスタムメイドもしくは市販の汎用プロセッサ、中央処理装置（ＣＰＵ）、（マイクロチップもしくはチップセットの形態の）半導体ベースのマイクロプロセッサを含む市販のマイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは他のプログラマブルロジックデバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェア構成要素、状態マシン、または当業者に知られているソフトウェア命令を実行するように設計されたこれらの任意の組み合わせとすることができる。
【００３８】
メモリ１０８は、揮発性メモリ要素（たとえば、ランダムアクセスメモリ（ＤＲＡＭ、ＳＲＡＭ、もしくはＳＤＲＡＭなどのＲＡＭ））、および不揮発性メモリ要素（たとえば、ＲＯＭ、ＥＰＲＯＭ、フラッシュＰＲＯＭ、ＥＥＰＲＯＭ、ハードドライブ、磁気テープもしくは光テープ、メモリレジスタ、ＣＤ−ＲＯＭ、ＷＯＲＭ、ＤＶＤ、低価格ディスク冗長アレイ（ＲＡＩＤ）、別の直接アクセスストレージデバイス（ＤＡＳＤ）、または他の任意の磁気、抵抗、もしくは相変化不揮発性メモリ）のいずれか１つまたは組み合わせを含むことができる。さらに、メモリ１０８は、電子、磁気、光、および／または他のタイプの記憶媒体を組み込んでよい。メモリ１０８は、様々な構成要素が互いに遠隔に位置付けられるが、プロセッサ１０６によってアクセスされることも可能である分散されたアーキテクチャを有することができる。さらに、メモリ１０８は、コンピューティングデバイス１００によって遠隔アクセス可能である、サーバまたはクラウドベースのシステムなどで、デバイスから遠隔にあってよい。メモリ１０８は、プロセッサ１０６に結合されるので、プロセッサ１０６は、メモリ１０８から情報を読み取り、またメモリ１０８に情報を書き込むことができる。代替形態において、メモリ１０８はプロセッサ１０６と一体化してよい。別の例において、プロセッサ１０６とメモリ１０８は両方とも、単一のＡＳＩＣまたは他の集積回路に存在してよい。
【００３９】
メモリ１０８におけるソフトウェアは、コンピュータ可読プログラムコードが具現化された非一時的コンピュータ可読媒体の形態で、オペレーティングシステム１１０およびアプリケーション１１２を含む。オペレーティングシステム１１０は、ドキュメント管理システム１１２の実行を制御する。オペレーティングシステム１１０は、任意の独自のオペレーティングシステム、または市販のもしくは自由に利用可能なオペレーティングシステム、たとえば、ＷＥＢＯＳ、ＷＩＮＤＯＷＳ（登録商標）、ＭＡＣおよびＩＰＨＯＮＥ  ＯＳ（登録商標）、ＬＩＮＵＸ、ならびにＡＮＤＲＯＩＤであってよい。他のオペレーティングシステムが利用されてもよいことが理解される。あるいは、本システムおよび方法のドキュメント管理システム１１２は、オペレーティングシステムの使用なしに提供されてよい。
【００４０】
ドキュメント管理システム１１２は、ユーザ入力の検出、管理、および処置に関係付けられた１つまたは複数の処理要素を含む（後で詳細に論じられる）。ソフトウェアは、入力認識、異なる機能、またはその両方に関係付けられた１つまたは複数の他のアプリケーションを含んでもよい。他のアプリケーションのいくつかの例は、テキストエディタ、電話ダイヤラ、連絡先ディレクトリ、インスタントメッセージング機能、コンピュータ支援設計（ＣＡＤ）プログラム、電子メールプログラム、ワードプロセッシングプログラム、ウェブブラウザ、およびカメラを含む。ドキュメント管理システム１１２および他のアプリケーションは、製造されたときにコンピューティングデバイス１００とともに提供されるプログラムを含み、製造後にコンピューティングデバイス１００にアップロードまたはダウンロードされるプログラムをさらに含んでよい。
【００４１】
図３は、３つのピアツーピア接続されたコンピューティング１００の入力インターフェース１０４の少なくとも部分における表示およびユーザ入力領域３００の例示的な視覚的レンダリングのブロック図を示す。入力領域３００は、ユーザがオブジェクトブロック（テキスト、図などのブロック）を作成することを可能にする「キャンバス」として提供される。このキャンバスは、ユーザがサイズ設定またはアライメントについて心配せずに任意の場所でユーザのコンテンツを作成することを可能にする制約なしのキャンバス、ユーザがアライメント構造に従うようにガイドされる制約された線パターン背景などのようなキャンバス、または特にテキストおよび非テキストのコンテンツ入力の例に関する両方の組み合わせであってよい。例示的なアライメントパターンは、本出願人および譲受人の名義で２０１５年８月２５日の優先日を主張して出願された「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｏｆ  Ｄｉｇｉｔａｌ  Ｎｏｔｅ  Ｔａｋｉｎｇ」という名称の特許文献７に説明されており、その内容全体が参照により本明細書に組み込まれる。
【００４２】
これらの表示および入力領域３００内で、各デバイス１００のドキュメント管理システム１１２は、たとえば当業者によってよく理解された方式で、メモリ１０８に記憶されたドキュメント情報からレンダリングされた、テキストおよび／または非テキストコンテンツドキュメントの表示をさせてよい。ドキュメント情報は、デバイス１００にロードされ、またはデバイス１００を使用して作成および／もしくは編集され、ならびにデバイス１００のメモリ１０８に記憶されてよい。このロードは、ネットワーク１２を介する１つのデバイス１００から他の１つまたは複数のデバイス１００へのドキュメント情報の通信を含む、前述されたＩ／Ｏデバイスを使用する知られている方式で達成されてよい。これを例示するために、図３は、表示および入力領域３００の各々がネットワーク１２の（ピアツーピア）リンク３０２、３０４、および３０６を介してそれぞれ相互接続されているように示す。
【００４３】
次に図４ないし図１９を参照して、本システムおよび方法のドキュメント管理システム１１２によるこのドキュメント情報の管理が説明される。
【００４４】
図４Ａは、たとえば入力が行われた位置におけるユーザ入力に従って、デバイス１００のドキュメント管理システム１１２またはプロセッサ１０６によってデジタルインク４００としてレンダリングされている、手書きされた入力を有するコンピューティングまたはデジタルデバイス１００のうちの１つに関連付けられた表示および入力領域３００を示す。
【００４５】
入力領域３００上への手書きされたコンテンツの入力は、入力インターフェース１０４に関係するジェスチャの使用を通じて行われ、たとえば、デバイス１００の画面技術に依存するタッチ、力、および／もしくは近接を通じて、またはコンピューティングデバイス１００のマウスもしくはジョイスティックなどの周辺装置を用いて、または投影されたインターフェース、たとえば、ストロークおよびジェスチャ信号を決定するための受動平面の画像処理を用いて行われる。ジェスチャ検出は、スタイラスもしくはペンからユーザの指を区別するコンピューティングデバイス１００の能力（それにより、デバイスはパッシブスタイラスおよびアクティブスタイラスを定義する）、またはデバイスに対してそれが手書きのために使用されていることを示すもしくは通信するスタイラスの能力、またはそのようなインジケーションを提供するユーザの能力に依存して、異なるように取り扱われてよい。デフォルトで、および区別しないデバイスにおいて、入力領域３００内の任意のシングルポイントタッチまたはホバーイベントは、コンテンツ入力またはコンテンツインタラクションとみなされるべきである。手書きされた入力は、手書き認識（ＨＷＲ）システム１１４（図２参照）によって解釈される。
【００４６】
ＨＷＲシステム１１４は、メモリ１０８のソフトウェアに含まれてよい。ドキュメント管理システム１１２と同様に、ＨＷＲシステム１１４は、コンピュータ可読プログラムコードが具現化された非一時的コンピュータ可読媒体の形態である。オペレーティングシステム１１０は、ＨＷＲシステム１１４の実行を制御する。あるいは、本システムおよび方法のＨＷＲシステム１１４は、オペレーティングシステムの使用なしに提供されてよい。
【００４７】
本システムおよび方法は、手書きされたテキストおよび手描きされた形状たとえば非テキストを含むデバイス１００に対する手書きされた入力を認識するために、ＨＷＲシステム１１４を活用する。ＨＷＲシステム１１４は、サポート能力および準拠能力があり、ソースプログラム、実行可能プログラム（オブジェクトコード）、スクリプト、アプリケーション、または実行されるべき命令のセットを有する他の任意のエンティティであってよい。ソースプログラムである場合、プログラムは、メモリ内に含まれても含まれなくてもよいコンパイラ、アセンブラ、またはインタープリタなどを介して変換されて、オペレーティングシステムに関連して適切に動作するようになる必要がある。さらに、サポート能力および準拠能力を有するＨＷＲシステムは、（ａ）データおよびメソッドのクラスを有するオブジェクト指向プログラミング言語、（ｂ）ルーチン、サブルーチン、および／もしくは関数を有する手続き型プログラミング言語、たとえば以下に限定されないが、Ｃ、Ｃ＋＋、Ｐａｓｃａｌ、Ｂａｓｉｃ、Ｆｏｒｔｒａｎ、Ｃｏｂｏｌ、Ｐｅｒｌ、Ｊａｖａ、Ｏｂｊｅｃｔｉｖｅ  Ｃ、Ｓｗｉｆｔ、およびＡｄａ、または（ｃ）関数型プログラミング言語、たとえば以下に限定されないが、Ｈｏｐｅ、Ｒｅｘ、Ｃｏｍｍｏｎ  Ｌｉｓｐ、Ｓｃｈｅｍｅ、Ｃｌｏｊｕｒｅ、Ｒａｃｋｅｔ、Ｅｒｌａｎｇ、ＯＣａｍｌ、Ｈａｓｋｅｌｌ、Ｐｒｏｌｏｇ、およびＦ＃、として書かれることが可能である。
【００４８】
あるいは、ＨＷＲシステム１１４は、サーバまたはクラウドベースのシステムなどの、デバイスから遠隔の手書きまたは混合入力認識システムであって、しかし、コンピューティングデバイス１００の前述された通信Ｉ／Ｏデバイスを使用して通信リンクを通じてネットワーク１２を介してコンピューティングデバイス１００によって遠隔でアクセス可能である手書きまたは混合入力認識システムと通信するための方法またはシステムであってよい。さらに、ドキュメント管理システム１１２とＨＷＲシステム１１４は、一緒に動作してよく、または単一のアプリケーションとして組み合わされてよい。さらにまた、アプリケーション１１２および／またはＨＷＲシステム１１４は、オペレーティングシステム１１０内に一体化されてよい。
【００４９】
入力インターフェース１０４上でまたは入力インターフェース１０４を介して入力された手書きされたストロークは、プロセッサ１０６によってデジタルインクとして処理される。ストロークは、少なくとも、ストローク開始位置、ストローク終了位置、およびストローク開始位置とストローク終了位置を接続するパスによって特徴付けられる。パスに沿ったいくつかのサンプルポイントにおけるタイミング、圧力、角度などのさらなる情報も、ストロークのより深い詳細を提供するために取り込まれてよい。異なるユーザが、当然ながら、わずかなばらつきとともに同一のオブジェクト、たとえば、字、形状、記号を書き込むことがあるので、ＨＷＲシステムは、各オブジェクトが正確なまたは意図されたオブジェクトとして認識されながら入力されてよい様々な手法に適応する。
【００５０】
図５は、ＨＷＲシステム１１４の例の、そのローカルの（すなわち、デバイス１００にロードされた）形態、または遠隔の（すなわち、デバイス１００によって遠隔でアクセス可能な）形態の概略図である。ＨＷＲシステム１１４は、前処理１１６、認識１１８、および出力１２０などの段階を含む。前処理段階１１６は、デジタルインクを処理して、より優れた正確さを達成し、認識段階１１８中の処理時間を低減する。この前処理は、サイズ正規化および／または入力を平滑化するためのＢスプライン近似などの方法を適用することによってストローク開始位置とストローク終了位置を接続するパスの正規化を含んでよい。前処理されたストロークは次いで、認識段階１１８に渡され、認識段階１１８はストロークを処理して、それによって形成されるオブジェクトを認識する。認識されたオブジェクトは次いで、さらなる処理および／または表示のためにドキュメント管理システム１１２に出力される１２０。
【００５１】
認識段階１１８は、異なる処理要素またはエキスパートを含んでよい。図６は、認識段階１１８の模式的な詳細を示す図５の例の概略図である。３つのエキスパート、すなわち、セグメント化エキスパート１２２、認識エキスパート１２４、および言語エキスパート１２６が例示されており、これらは、動的プログラミングを通じてコラボレーションして出力１２０を生成する。
【００５２】
セグメント化エキスパート１２２は、表現、たとえば、語、数式、または形状のグループを形成するために、入力ストロークをセグメント化して、個々の要素仮説、たとえば、英数字および数学演算子、テキスト文字、個々の形状、または部分表現にするための様々な手法を定義する。たとえば、セグメント化エキスパート１２２は、元の入力の連続するストロークをグループ化することによって要素仮説を形成して、セグメント化グラフを取得してよく、セグメント化グラフにおいて、各ノードが少なくとも１つの要素仮説に対応し、要素間の隣接制約がノード接続によって扱われる。あるいは、セグメント化エキスパート１２２は、テキスト、図面、方程式、および楽譜のような異なる入力タイプについて、別々のエキスパートを採用してよい。グラフのノードは、対応する仮説が共通のストロークを持たないが、そのストロークが元の入力において連続している場合、隣接するとみなされる。
【００５３】
認識エキスパート１２４は、分類子１２８によって抽出された特徴の分類を提供し、セグメント化グラフの各ノードについての確率または認識スコアと共に要素候補のリストを出力する。この認識タスクに対処するのに使用され得る多くのタイプの分類子があり、たとえば、サポートベクトルマシン、隠れマルコフモデル、または多層パーセプトロン、ディープニューラルネットワーク、畳み込みニューラルネットワーク、もしくはリカレントニューラルネットワークなどのニューラルネットワークがある。選択は、タスクについて所望される複雑さ、正確さ、および速度に依存する。
【００５４】
言語エキスパート１２６は、言語モデル（たとえば、文法またはセマンティクス）を使用してセグメント化グラフにおける異なるパスについての言語的意味を生成する。エキスパート１２６は、言語的情報１３０に従って他のエキスパートによって提案された候補を検査する。言語的情報１３０は、語彙、正規表現などを含むことができ、言語モデルを実行するために言語エキスパート１２６によって使用されるすべての静的データのためのストレージである。言語モデルは、所与の言語についての統計情報に依拠することができる。言語的情報１３０は、認識の結果およびユーザインタラクションに従う適合の有無に関わらず、オフラインで計算され、言語エキスパート１２６に提供される。
【００５５】
言語エキスパート１２６は、最良の認識パスを発見しようとする。一例において、言語エキスパート１２６は、言語的情報１３０のコンテンツを表す最終状態オートマトン（ＦＳＡ）などの言語モデルを探索することによってこれを行う。語彙制約に加えて、言語エキスパート１２６は、要素の所与のシーケンスがどのくらいの頻度で指定された言語において出現するかまたは特定のユーザによって使用されるかに関してモデル化する統計情報を有する言語モデルを使用して、セグメント化グラフの所与のパスの解釈の言語的尤度を評価してよい。
【００５６】
説明されたように、ＨＷＲシステム１１４はテキストと非テキストの両方の手書きされた入力を解釈する。たとえば、図４Ａの入力４００は、形状すなわち楕円形（または円）である非テキスト入力を表す単一のストロークの手書き入力である。したがって、ＨＷＲシステム１１４は、たとえば楕円形として入力４００を認識する。従来の手書き認識プロセスは、手書き入力の活字組みまたはフォント化された変換を提供するために、そのような認識を使用する。これがそのような従来のプロセスの主な目的であるので、通常は、そのような変換が処理によって提供されるすべてである。しかしながら、本システムおよび方法のドキュメント管理システム１１２は、ドキュメントコラボレーションモデルを提供するために、ＨＷＲシステム１１４によって行われる認識をさらに採用してよい。代わりにまたは加えて、ドキュメント管理システム１１２それ自体は、少なくとも特定のコンテンツ入力を認識してこのコラボレーションモデルを提供するために、ＨＷＲシステム１１４の少なくとも要素を用いて構成されてよい。
【００５７】
本システムおよび方法によって提供されるコラボレーションモデルは、手書き（および他の形態の入力、たとえば、物理的または仮想的キーボードを使用するタイピング、マウスを使用するジェスチャ、音声認識を使用する発声など）を使用して、たとえばインタラクティブホワイトボード上で作成されることができるように、複数のピアツーピア接続された入力デバイスにおける複数のユーザ（デバイスあたり１つまたは複数のユーザ）によるデジタルドキュメントの作成および編集を可能にする。
【００５８】
このコラボレーション機能を提供するために、ドキュメントの整合性に対する、特に生インクの認識およびデジタルインクのレンダリングに対する制御を維持する方式で、ドキュメントの断片がユーザまたはコラボレータの間で共有される。背景技術に説明されたように、従来提案されているシステムは通常、この制御をマスタ／スレーブまたはクライアントサーバ配置を使用して維持する。他方で、本システムおよび方法は、ピアツーピアネットワーク配置を通じて真のコラボレーションエクスペリエンスを提供する。しかしながら、以下の説明から理解されるように、本システムおよび方法は、集中されたまたはクライアントサーバベースのアプリケーションに適用可能であってもよい。
【００５９】
本システムおよび方法において、ドキュメント断片またはセグメントが、手書きされたコンテンツおよび手書きされた制御データに適合されたいわゆる「ブロックチェーン」実装を通じて共有される。この適合は、コラボレーションにおいて最大のユーザエクスペリエンスを提供する方式で、ユーザの手書きされたインタラクションを分解する。ブロックチェーンは、ブロックまたは「メッセージ」のチェーンとして形成される。これらのメッセージは、情報が迅速に共有されることが可能なようにできるだけ単純でありながら、必要とされるデータ整合性を提供するために取り込まれた手書き関して正確である。コラボレーションモデルは、最大の柔軟性および頑健性を可能にするようにドキュメント作成および編集中に構築される。
【００６０】
メッセージは、認識結果に関係して定義され、ドキュメントが１つまたは複数のデバイス上の１つまたは複数のユーザによって（たとえばリアルタイムで）作業されるときに、ドキュメント管理システム１１２によって適用され、したがって、ドキュメントに「生」インク、たとえば、手書きされた入力を提供する１つまたは複数のユーザの各アクションが、共有可能な方式で表現され、ドキュメントの以前の状態においてユーザによってドキュメントに対して行われたすべての修正とリンク可能である。メッセージおよびリンクは、ドキュメントに関連付けられた１つまたは複数の「ジャーナル」を構築するために使用され、これらのジャーナルにおいて保持される。これらのジャーナルは、メッセージがそれらのメッセージに関連付けられた入力時間順序でリンクされたブロックチェーンを表す。
【００６１】
特に、各ユーザまたはバージョンのドキュメント、すなわち各デバイスにローカルに記憶され表示されるドキュメントは、関連付けられたドキュメントジャーナルを有し、そのジャーナルまたは各ジャーナルに記憶された情報は、コラボレーションに関するすべての他のユーザ／デバイスまたはアクタに共有されることが可能であるので、そのジャーナルは、ドキュメントのさらなるバージョンをたとえば別のデバイス上に構築するために使用されることが可能である。このように、各アクタは、ドキュメントの異なる状態に対して修正が行われたことを検出することができ、したがって、ドキュメントの最新バージョンが常に表示されることが可能であり、後続の修正が正しいドキュメントバージョンに適用されることが可能であり、任意の入力手段を通じて提供された任意の修正がアンドゥおよびリドゥされることが可能である。
【００６２】
アクタの修正が他のアクタによって一緒に共有される最新の位置と異なるジャーナル内の位置にあると検出されたときの、メッセージおよびアクタの挙動の方式の例示的な内容が、次に詳細に説明される。
【００６３】
ドキュメントを操作しているすべてのアクタは、アクションをするために使用されているデバイス１００のドキュメント管理システム１１２を使用して、ドキュメントジャーナルの自身のバージョンを構築する。このジャーナルは、相互にリンクされた一連のメッセージまたはブロックで構築される。メッセージは、ドキュメントに対して行われた各（予め定義された）修正についてドキュメント管理システム１１２によって作成され、そうすることで、ドキュメントそれ自体は一連の修正として定義されてよく、各（予め定義された）修正はジャーナルエントリとして記憶される。ジャーナルに含めるための特定の修正の事前定義が、ドキュメント管理システム１１２に対して（たとえば、ユーザインターフェース（ＵＩ）を通じるなどして、事前プログラミングまたはユーザ設定を通じて）提供されてよい。各メッセージは、識別（ＩＤ）情報、および行われているドキュメントに対する修正についての情報を用いて定義される。このようにして、異なるアクタによる修正のジャーナルまたはツリーが構築されることが可能であり、いくつかのデバイス上のドキュメントの現在のバージョンの忠実な構成または再構成のために必要とされる情報が比較的非常に少ない。
【００６４】
ＩＤ情報は、少なくとも、そのメッセージ（ｍｅｓｓａｇｅ  ＩＤ）、およびチェーンの先行メッセージに対する任意のリンク（ｐａｒｅｎｔ  ＩＤ）を識別する。ｍｅｓｓａｇｅ  ＩＤ、したがってｐａｒｅｎｔ  ＩＤも、デバイスのユーザまたはメッセージの作成者の識別を定義してよい。たとえば、そのようなＩＤは、デバイス１００のオペレーティングシステム１１０またはアプリケーションによって提供された適切なユーザ識別情報から、ドキュメント管理システム１１２によって決定されてよい。このようにＩＤを定義することは、たとえば、コラボレーションチームの異なるメンバによるドキュメント修正の追跡を可能にする。
【００６５】
修正情報は、少なくとも、修正のタイプ（ｔｙｐｅ）および修正のコンテンツ（ｄａｔａ）に関する。修正情報は、メッセージ自体のユーザまたは作成者ＩＤとは異なってよい修正の作成者を識別する識別情報も含んでよい。たとえば、ユーザは、そのユーザに関して登録されていないまたは別様に定義されているデバイス上でドキュメント修正を行ってよい。そのような場合、ドキュメント管理システム１１２は、たとえば、デバイス１００のアプリケーション、またはユーザによって使用されている適切に構成された（アクティブな）スタイラスから、修正作成者のＩＤを決定してよい。
【００６６】
修正タイプは、新しいコンテンツの追加および既存のコンテンツの編集を含む、ドキュメントおよびそのインクコンテンツに対して行われるアクションのタイプに関係付けられる。たとえば、修正のタイプまたはメッセージのタイプは、手書きされたコンテンツの１つまたは複数のストロークに対する修正、たとえば、手書きされたストロークの追加（ｓｔｒｏｋｅ）、手書きされたストロークの活字組み（ｔｙｐｅｓｅｔ）、１つまたは複数のストロークの消去（ｅｒａｓｅ）、１つまたは複数のストロークの移動（ｍｏｖｅ）、１つまたは複数のストロークのサイズ変更（ｒｅｓｉｚｅ）、１つまたは複数のストロークのスタイリング（ｓｔｙｌｉｎｇ）などを含む。
【００６７】
修正タイプはまた、ジャスチャおよびメニュー選択などによるコマンドの入力、たとえば、１つまたは複数のストロークの選択（ｓｅｌｅｃｔ）、以前の入力のアンドゥ（ｕｎｄｏ）、以前の入力のリドゥ（ｒｅｄｏ）、追加コンテンツの表示（ｓｈｏｗ）、たとえば、ハイパーリンク、メニュー、認識候補または結果などを含んでよい。これらの修正のうちいくつかの逆操作、たとえば、以前に活字組みされたストロークの活字組み解除（ｕｎｔｙｐｅｓｅｔ）、ストロークを選択解除すること（ｄｅｓｅｌｅｃｔ）、表示された追加コンテンツを隠すこと（ｈｉｄｅ）も修正タイプに含まれてよい。これらの修正タイプは例であって網羅的ではないので、ドキュメントジャーナルメッセージにおいて、より少ない、他の、またはより多くのタイプが提供される可能性があることが理解される。
【００６８】
修正データは、修正タイプのコンテンツに関係付けられ、関係付けられたタイプに依存するデータフォーマットを提供される。いくつかの修正データフォーマットの例が、ドキュメント管理システム１１２によって構築される例示的なドキュメントジャーナルに関して説明される。
【００６９】
「ｓｔｒｏｋｅ」修正タイプに関して、修正データは、ユーザによって入力インターフェース１０４に入力された（またはドキュメント管理システム１１２にアップロードまたはダウンロードされた）手書きされたコンテンツである。本例において、このコンテンツは、生インクであり、生インクの座標（たとえば、入力インターフェース１０４上の手書きされたストロークの相対位置）、および生インクの認識結果（たとえば、ＨＷＲシステム１１４からのもの、またはドキュメント管理システム１１２からのもの、そのように構成される場合は、たとえば認識候補）を含む。したがって、他のアクタからジャーナルメッセージを受け取る各アクタは、生インクのストロークおよびその認識結果を修正データにおいて受け取る。したがって、受け取ったアクタのドキュメント管理システム１１２は、共有されたドキュメントのそれらのバージョンにおける対応するデジタルインクをレンダリングすることができ、レンダリングされたデジタルインクとのインタラクションが、再認識を必要とせずに実質的に即座に可能である。
【００７０】
すなわち、認識結果がメッセージの一部として共有されると、各デバイス１００は、（後で詳細に説明される）ドキュメントの最新バージョンに従って単にデジタルインクをレンダリングしてよく、ドキュメントの以前のバージョンの取って代わられるコンテンツを含めてコンテンツの全体の再認識を必要とせずに、ドキュメントコンテンツまたはオブジェクトとの任意の後続のインタラクションに関して、共有された修正データを参照してよい。
【００７１】
あるいは、「ｓｔｒｏｋｅ」修正ｄａｔａ部分は、生インクの座標、生インクの認識結果、および生インクからレンダリングされたデジタルインク定義から作成された、インクオブジェクトを含んでよい。インクオブジェクトは、本出願人および譲受人の名義で２０１６年１月７日の優先日を主張して出願された「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｉｇｉｔａｌ  Ｉｎｋ  Ｉｎｔｅｒａｃｔｉｖｉｔｙ」という名称の特許文献８に説明されており、その内容全体が参照により本明細書に組み込まれる。そのような代替的例において、生インクの実際のストロークは、コラボレーションするデバイスの間で共有されず、デジタルインクは、共有されたデジタルインク定義からレンダリングされる。したがって、各デバイスは、認識がいったん行われると生インクを破棄することができる。これは、ローカルインク記憶サイズおよび通信されるデータの量を低減する。
【００７２】
あるいはさらに、各デバイスのドキュメント管理システム１１２は、受け取られた生インクを生インクに関係付けられたｍｅｓｓａｇｅ  ＩＤなどの識別子と共に、１回中央の場所へ、たとえば、ネットワーク化されたインクメモリまたはキャッシュへ通信し、次いで、生インクのローカル記憶を破棄するように構成されてよい。そのような代替的例において「ｓｔｒｏｋｅ」修正ｄａｔａ部分は、生インクまたはデジタルインク定義を含まず、したがって、メッセージを受け取ると、各アクタは、インクメモリまたはデータベースにおける生インクにアクセスし、デジタルインクをローカルに生成する。
【００７３】
代わりにまたは加えてさらに、「ｓｔｒｏｋｅ」修正ｄａｔａ部分は、生インクを表す相対ストローク座標、たとえば、ストロークパスのｘおよびｙ位置のみを含んでよい。そのような代替的例において、各デバイス１００のドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、メッセージが共有されたとき、ドキュメントジャーナルの各メッセージのｄａｔａ部分を認識処理することを必要とされる。
【００７４】
説明されている修正データは例であって網羅的ではないので、ドキュメントジャーナルメッセージにおいて、他の、またはより多くのデータタイプが提供され得ることが理解される。いずれの場合も、修正データの「ｓｔｒｏｋｅ」データは、ストローク、たとえば、１つまたは複数のｓｔｒｏｋｅ  ＩＤを識別するためのデータの役割をしてよい。すなわち、各ストロークは、ｓｔｒｏｋｅ  ＩＤを割り当てられてよく、そこで、ストロークのセットが、対応するｓｔｒｏｋｅ  ＩＤのセットとして表されることが可能にされ、たとえば、このセットは、（ｇｒｏｕｐ）ｓｔｒｏｋｅ  ＩＤをさらに割り当てられてよい。このようにして、ｓｔｒｏｋｅ  ＩＤを介するストロークデータに対するその後の参照は、テキストおよび非テキストコンテンツなどのインクコンテンツを一緒に表すストロークおよびグループのストロークのインタラクションおよび編集を提供するために行われることが可能である。
【００７５】
図４Ａの例示された例に関して、入力４００を検出すると、ドキュメント管理システム１１２は、図４Ｂに示されるように、関連付けられたドキュメントジャーナルＪAを有するドキュメントＤAの構築を開始する。図示されるように、ジャーナルＪAはメッセージ４０２を有し、メッセージ４０２は、（入力４００の単一のストロークが、ドキュメントＤAに対して提供される最初の入力であるので、）ジャーナルの第１または初め（ｒｏｏｔ）のメッセージである。上述されたように、メッセージ４０２は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ１、ｐａｒｅｎｔ  ＩＤ部分「ｎｕｌｌ」（メッセージ４０２は、ジャーナルＪAの一次メッセージであるため）、ｔｙｐｅ部分「ｓｔｒｏｋｅ」（入力４００は、既存のコンテンツの修正なしにドキュメントＤAに手書きされたストロークを加えるため）、および、デジタルインク４００によって表される生かつ認識されたコンテンツであるｄａｔａ部分「４００」、たとえばｓｔｒｏｋｅ  ＩＤを含むように、インク管理システム１１２によって生成される。
【００７６】
ｍｅｓｓａｇｅ  ＩＤの形態は、（英）数字、バイナリ、２進数、１６進数などの任意の適切なフォーマットであってよく、そのような形態は、ハッシュ関数（たとえばＳＨＡ−２５６など）などを使用して暗号化されてよく、または暗号化されなくてよい。ｍｅｓｓａｇｅ  ＩＤは、異なるアクタとの競合を回避するために増分して割り当てられてよく、各アクタは、ＩＤを生成し、生成されたＩＤをハッシュ関数（たとえばＳＨＡ−２５６）を使用してハッシュすることなどによって一意にしてよく、そうすることで、同じｍｅｓｓａｇｅ  ＩＤがすべてのドキュメントバージョンジャーナルにわたって使用される。これは、例示された例の場合である。あるいは、ｍｅｓｓａｇｅ  ＩＤは、ジャーナルバージョンに対してローカルになるように生成されてよい。しかしながら、そのような場合、ドキュメント管理システムは、共有されたジャーナルに関して同じメッセージコンテンツに対して異なるｍｅｓｓａｇｅ  ＩＤをマッチングするためにマッピングアルゴリズムなどを含む。
【００７７】
また、ｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤは、メッセージの修正が行われたときに時間（および日付）を記録する時間情報、たとえばタイムスタンプを含むように形成される。この時間情報は、たとえば、ホストデバイスのシステムクロックを参照してドキュメント管理システム１１２によって、または当業者に理解される他の手段によって決定されてよい。時間情報は、たとえば、ＩＤ自体のコードに含めることを通じて含められてよい。しかしながら、この決定において、異なるデバイス上で行われた共有されたドキュメントに対する修正の相対的タイミングは、それらのデバイスが修正の時に接続されていたかどうかを問わず、後述される理由により、各デバイスのドキュメント管理システム１１２によって知られるまたは確かめられる必要がある。
【００７８】
図７ないし図９は、ドキュメントＤAに対する後続の手書きされた入力、およびその結果のジャーナルＪAの構築および更新を示す。これらの例示的な動作および後述の図１０ないし図１９の動作において、入力検出、デジタルインクレンダリング、および認識の方式は、先に説明されたのと同様である。
【００７９】
図７Ａは、デジタルインク７００としてレンダリングされている後続の入力があったときのドキュメントＤAを示す。入力７００は、大文字で始まる単語「Ｉｄｅａｔｉｏｎ」として認識されるテキスト入力を表す複数のストロークの手書き入力である。ドキュメントＤAのこの修正に基づいて、ドキュメント管理システム１１２は、図７Ｂに示されるように、ジャーナルの第２の（後続の）メッセージである対応するメッセージ４０４を含むように、ドキュメントジャーナルＪAを更新する。メッセージ４０４は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ２、ｐａｒｅｎｔ  ＩＤ部分Ａ１（メッセージ４０２がジャーナルＪAの第２のメッセージであるため）、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク７００によって表される生かつ認識されたコンテンツであるｄａｔａ部分「７００」を含むように生成される。
【００８０】
図８Ａは、デジタルインク８００としてレンダリングされている後続の入力があったときのドキュメントＤAを示す。入力８００は、矢印である形状として認識される非テキスト入力を表す複数（たとえば２つ）のストロークの手書き入力である。ドキュメントＤAのこの修正に基づいて、ドキュメント管理システム１１２は、図８Ｂに示されるように、ジャーナルの第３の（後続の）メッセージである対応するメッセージ４０６を含むように、ドキュメントジャーナルＪAを更新する。メッセージ４０６は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ３、ｐａｒｅｎｔ  ＩＤ部分Ａ２、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク８００によって表される生かつ認識されたコンテンツであるｄａｔａ部分「８００」を含むように生成される。
【００８１】
図９Ａは、デジタルインク９００としてレンダリングされている後続の入力があったときのドキュメントＤAを示す。入力９００は、大文字で始まる用語「Ｓ−Ｇａｔｅ」として認識されるテキスト入力を表す複数のストロークの手書き入力である。ドキュメントＤAのこの修正に基づいて、ドキュメント管理システム１１２は、図９Ｂに示されるように、ジャーナルの第４の（後続の）メッセージである対応するメッセージ４０８を含むように、ドキュメントジャーナルＪAを更新する。メッセージ４０８は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ４、ｐａｒｅｎｔ  ＩＤ部分Ａ３、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク９００によって表される生かつ認識されたコンテンツであるｄａｔａ部分「９００」を含むように生成される。
【００８２】
入力４００、７００、８００、９００は、ダイアグラムの要素を表す。ダイアグラムは、配置および（部分などの）関係を説明しまたは示す図面である。ダイアグラムは一般に形状を含み、形状は、これらの形状との関係を有する任意または特定の意味およびテキストを有する。多くのタイプのダイアグラム、たとえば、フローチャート、組織図、コンセプトマップ、スパイダーマップ、ブロック／アーキテクチャ図、マインドマップ、ブロック図、ベン図、ピラミッドなどがある。このリストは、網羅的ではなく、他のタイプのダイアグラムも可能であり、可能でなくてもよい。
【００８３】
ダイアグラムに関して、非テキスト要素は、線形または非線形構成において形状、グラフィック、または幾何学的構成を定義し、コンテナ、コネクタ、および自由形式の図を含み、一方、テキスト要素は、テキスト文字を含むものであり、テキストブロック、ならびにテキストブロックおよび非テキスト要素に関するラベルを含む。テキストブロックとラベルの両方が、１つまたは複数の垂直ラインにおいて、および／または番号付き／ブレット付きリストとして提供される１つまたは複数の文字、語、文、または段落のテキストを含んでよい。テキストブロックは、コンテナによって含まれてよく（内部テキストブロック）、またはコンテナの外部で提供されてよい（外部テキストブロック）。外部テキストブロックは、コンテナ、またはダイアグラムの他の要素と関係付けられなくてよく、または他の特定のダイアグラム要素と直接関係付けられてよい。
【００８４】
ダイアグラムの作成を検出し解釈するために、ドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、内容全体が参照により本明細書に組み込まれる本出願人および譲受人の名義で２０１５年１０月１９日の優先日を主張して出願された「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｏｆ  Ｈａｎｄｗｒｉｔｉｎｇ  Ｒｅｃｏｇｎｉｔｉｏｎ  ｉｎ  Ｄｉａｇｒａｍｓ」という名称の特許文献９に説明されるように構成されてよい。この構成によって、本システムおよび方法は、様々なダイアグラム要素入力およびそれらの互いの関係を解釈するために、ダイアグラムタイプに関わらず、手で描かれたダイアグラムの異なるテキストおよび非テキスト要素をそれらの間の任意の空間および概念の関係と共に個々に認識してよい。
【００８５】
したがって、例示された例において、入力の認識された楕円形４００は、コンテナとして検出され、入力の認識された語７００は、コンテナ４００のコンテンツとして検出され、入力の認識された矢印８００は、コンテナ４００に関連付けられたコネクタとして検出され、入力の認識された用語９００は、コネクタ８００に関連付けられたラベルとして検出される。テキスト入力および非テキスト入力のこの解釈を通じて、ドキュメント管理システム１１２は、（後で詳細に説明される）図式的関係に配慮する方式でドキュメントジャーナルを構築および更新することができる。同様の結果は、数学、化学、楽譜など他のドキュメントコンテンツ形態でも達成されることが可能である。
【００８６】
これまで説明されてきた例示的なドキュメントジャーナルから理解されるように、ドキュメントのコンテンツを修正する各入力は、入力ステップのジャーナル時間順序チェーンまたはリストにおいて表される。したがって、ジャーナルは、他のデバイス上のドキュメントを構築または再構築するために使用されることができ、それにより、最新バージョンのドキュメントが表示されるだけではなく、ドキュメントのすべての先行バージョンがジャーナルを介して知られアクセスされることが可能である。すなわち、先に説明されたように、ジャーナルは、ネットワーク１２を介して他のデバイス１００と共有されることができる。ジャーナルを受け取ると、そのような他のデバイス１００のローカルのドキュメント管理システム１１２は、ジャーナルのメッセージによって表されるデジタルインクをレンダリングし、したがって、それらのデバイス１００上にドキュメントが再生される。
【００８７】
たとえば、図１０Ａは、図４、図７、図８および図９の（第１の）デバイス１００でのドキュメントＤAを示し、ドキュメントＤAは、ネットワーク１２のリンク３０２を介して（第２の）デバイス１００へ通信されている。たとえば、第２のデバイス１００のユーザは、デバイス１００上のドキュメント編集アプリケーションを起動し、ネットワーク１２を介してデバイスが接続されたファイルディレクトリなどからドキュメントを開いていてよい。ファイルディレクトリは、他の接続されたデバイス１００のうちの１つまたは複数のメモリ１０８に、またはネットワーク１２に接続されたサーバなどの集中化された場所に記憶されてよい。この第２のデバイスのドキュメント管理システム１１２は応答して、共有されたドキュメントＤAのジャーナルＪAを読み取って、図１０Ｃに示されるように、ドキュメントＤBを構築するためにそれ自身のドキュメントジャーナルＪBを構成する。すなわち、ジャーナルＪBは、関連付けられたｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤ、ならびに共有されたジャーナルＪAのそれぞれのメッセージ４０２、４０４、４０６、および４０８に対応するタイプおよびコンテンツ情報と共に、メッセージ１００２、１００４、１００６、および１００８のチェーンを含むように生成される。図１０Ａは、後述される破線の輪郭で示された第３のドキュメントも示していることに留意されたい。
【００８８】
共有されたドキュメントの現在のステータス、たとえば、複数のアクタによって開かれて作業されている、最後にユーザによって開かれてから修正されているなどのステータスを決定するために、各デバイス１００に関連付けられたドキュメント管理システム１１２は、ファイルディレクトリからドキュメントＩＤを読み取るなどして、ドキュメントの識別情報を決定し、接続されたデバイスおよび／またはファイルディレクトリに対してローカルドキュメントジャーナルを通信するときに、この情報を使用してもよい。しかしながら、共有されたドキュメントの現在のステータスを保持するための他のメカニズムも可能である。
【００８９】
ドキュメントＤAおよびＤBおよびそれぞれのジャーナルＪAおよびＪBが、共有されたドキュメントのローカルデバイス／アクタバージョンを表す。本システムおよび方法は、ドキュメントの任意のローカルバージョンに対する修正の後に可能な限り短い時間で、共有されたドキュメントのインクデータの整合性を維持する形式で、それらの修正が他のローカルドキュメントバージョンに反映されることを保証する。このようにして、すべてのアクタは、共有されたドキュメントの最新バージョンが編集のために利用可能であること、および以前のバージョンがバージョン制御のためにアクセスされることが可能であることを保証される。
【００９０】
したがって、ジャーナルＪBから、ドキュメントＤBは、共有されたジャーナルＪAのメッセージコンテンツによって提供されるように、ｔｙｐｅ部分の「ｓｔｒｏｋｅ」および関連付けられたｄａｔａ部分のｓｔｒｏｋｅ  ＩＤに基づいて、メッセージコンテンツジャーナルＪBに含まれる（図１０Ａに示されるような）レンダリングされたデジタルインク４００、７００、８００、および９００を含むように、第２のデバイス１００に関連付けられた表示および入力領域３００に表示される。すなわち、第２のデバイス１００に関連付けられたドキュメント管理システム１１２が、構成されたジャーナルＪBの各メッセージを読み取って、次いでドキュメントＤBを構築する。本例において、この時点でのジャーナルＪBの各メッセージは、修正ｔｙｐｅ部分の「ｓｔｒｏｋｅ」を有するので、ドキュメント管理システム１１２は、各メッセージのそれぞれの修正ｄａｔａ部分を読み取って、ストロークデータに対応するデジタルインクの増分または同時の表示を生じさせる。
【００９１】
上述された共有されたジャーナルからのドキュメントインクのこの「バッチ」ロードは、オフラインコラボレーションを表し、オフラインコラボレーションでは、１つのアクタのバージョンのドキュメントに対して行われたドキュメント修正が、別のアクタによって、それらのバージョンのドキュメントを構築するために後で利用される。本システムおよび方法はまた、オンラインまたはリアルタイムコラボレーションを提供し、このコラボレーションでは、１つのアクタのバージョンのドキュメントに対する修正が、ネットワーク接続されたアクタと実質的に即座に共有され、そのアクタのドキュメントバージョンを更新する。
【００９２】
たとえば、図１０Ａに戻ると、ドキュメントＤAは、デジタルインク１０００としてレンダリングされた後続の入力を有している。入力１０００は、菱形である形状として認識される非テキスト入力を表す単一のストロークの手書き入力であり、コネクタ８００に関連付けたコンテナとして検出されてもよい。ドキュメントＤAのこの修正に基づいて、ドキュメント管理システム１１２は、図１０Ｂに示されるように、ドキュメントジャーナルＪAを、ジャーナルの第５の（後続の）メッセージである対応するメッセージ４１０を含むように更新する。メッセージ４１０は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ５、ｐａｒｅｎｔ  ＩＤ部分Ａ４、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１０００によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１０００」を含むように生成される。
【００９３】
ドキュメントＤBが他のアクタによる編集または表示のために開かれ、デバイス１００がネットワーク１２のリンク３０２によって接続されると、ジャーナルＪAのこの更新が他のアクタへ通信される。結果として、他のデバイスのドキュメント管理システム１１２は、（図１０Ｃに示されるように）関連付けられたｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤならびにタイプおよびコンテンツ情報と共に、対応する新しい後続のメッセージ１０１０としての共有されたメッセージ４１０のデータを含むように、ドキュメントジャーナルＪBを更新する。ジャーナルＪBから、ドキュメントＤBのバージョンは、共有されたジャーナルＪAのメッセージコンテンツによって提供されるように、ｔｙｐｅ部分の「ｓｔｒｏｋｅ」および関連付けられたｄａｔａ部分のｓｔｒｏｋｅ  ＩＤに基づいて、メッセージコンテンツジャーナルＪBに含まれる（図１０Ａに示されるような）レンダリングされたデジタルインク１０００を含むように更新され、第２のデバイスに関連付けられた表示および入力領域３００に表示される。したがって、コラボレーションされるドキュメントは、すべてのコラボレータデバイス上で忠実に再生される。
【００９４】
図１１の例に示されるように、さらなるテキスト入力について同様の結果がやはり得られる。すなわち、図１１Ａにおいて、ドキュメントＤAは、デジタルインク１１００としてレンダリングされた後続の入力を有する。入力１１００は、クエスチョンマークである記号または句読点として認識されるテキスト入力を表す複数のストロークの手書き入力であり、コンテナ１０００のコンテンツとして検出されてもよい。ドキュメントＤAのこの修正に基づいて、ドキュメント管理システム１１２は、図１１Ｂに示されるように、ドキュメントジャーナルＪAを、ジャーナルの第６の（後続の）メッセージである対応するメッセージ４１２を含むように更新する。メッセージ４１２は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ６、ｐａｒｅｎｔ  ＩＤ部分Ａ５、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１１００によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１１００」を含むように生成される。
【００９５】
ドキュメントＤBが他のアクタによる編集または表示のために開かれ、デバイス１００がネットワーク１２のリンク３０２によって接続されると、ジャーナルＪAのこの更新が他のアクタへ通信される。結果として、他のデバイスのドキュメント管理システム１１２は、（図１１Ｃに示されるように）関連付けられたｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤならびにタイプおよびコンテンツ情報と共に、対応する新しい後続のメッセージ１０１２としての共有されたメッセージ４１２のデータを含むように、ドキュメントジャーナルＪBを更新する。ジャーナルＪBから、ドキュメントＤBのバージョンは、共有されたジャーナルＪAのメッセージコンテンツによって提供されるように、ｔｙｐｅ部分の「ｓｔｒｏｋｅ」および関連付けられたｄａｔａ部分のｓｔｒｏｋｅ  ＩＤに基づいて、メッセージコンテンツジャーナルＪBに含まれる（図１１Ａに示されるような）レンダリングされたデジタルインク１１００を含むように更新され、第２のデバイスに関連付けられた表示および入力領域３００に表示される。
【００９６】
結果のローカルドキュメントジャーナルの更新を伴うドキュメントコンテンツ修正のそのような共有は、アクタが修正を行うのとは独立して、本システムおよび方法によって行われる。すなわち、本システムおよび方法は、ネットワーク接続されたデバイス／アクタの１つをマスタとして扱うと共にその他をスレーブとして扱うことはしない。たとえば、図１２は、第２のデバイス１００のユーザによって行われる共有されたドキュメントに対する修正の効果を示す。すなわち、図１２Ａにおいて、ドキュメントＤBは、デジタルインク１２００としてレンダリングされた後続の入力を有する。入力１２００は、複雑な矢印である形状として認識される非テキスト入力を表す複数のストロークの手書き入力であり、コンテナ４００および１１００のコネクタとして検出されてもよい。ドキュメントＤBのこの修正に基づいて、ドキュメント管理システム１１２は、図１２Ｂに示されるように、ジャーナルの第７の（後続の）メッセージである対応するメッセージ１０１４を含むように、ドキュメントジャーナルＪBを更新する。メッセージ１０１４は、ｍｅｓｓａｇｅ  ＩＤ部分Ｂ７、ｐａｒｅｎｔ  ＩＤ部分Ａ６、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１２００によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１２００」、たとえばｓｔｒｏｋｅ  ＩＤを含むように生成される。
【００９７】
ドキュメントＤAが第１のアクタによる編集または表示のために開かれ、デバイス１００がネットワーク１２のリンク３０２によって接続されると、ジャーナルＪBのこの更新が第１のアクタへ通信される。結果として、第１のデバイスのドキュメント管理システム１１２は、関連付けられたｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤならびにタイプおよびコンテンツ情報と共に、対応する新しい後続のメッセージ４１４としての共有されたメッセージ１０１４のデータを含むように、ドキュメントジャーナルＪAを更新する（図１２Ｃに示されるように、ジャーナルＪAの先行のメッセージは簡潔にするために示されていないが、ジャーナルＪAに残っている。これは、図１３ないし図１７および図１９にも当てはまる）。ジャーナルＪAから、ドキュメントＤAのバージョンは、共有されたジャーナルＪBのメッセージコンテンツによって提供されるように、ｔｙｐｅ部分の「ｓｔｒｏｋｅ」および関連付けられたｄａｔａ部分のｓｔｒｏｋｅ  ＩＤに基づいて、メッセージコンテンツジャーナルＪAに含まれる（図１２Ａに示されるような）レンダリングされたデジタルインク１２００を含むように更新され、第１のデバイスに関連付けられた表示および入力領域３００に表示される。
【００９８】
さらに、アクタが、共有された修正メッセージに基づいてそれらのローカルドキュメントバージョンジャーナルを更新し、したがって、本システムおよび方法は、コラボレーションのためにクライアントまたは集中化されたサーバアーキテクチャに依拠しないようになる。本システムおよび方法のコラボレーションモデルに対する、この集中化されていないまたはローカルな手法は、修正の通信および処理速度を最適化し、また、修正競合が発生したときでも、たとえばアンドゥおよびリドゥを介して、以前のドキュメントバージョンに対する完全なアクセスを有しながら、ドキュメントの最新バージョンの忠実な再生を可能にする。そのような競合は、複数のアクタが実質的に同時に同じドキュメントの関連付けられていないコンテンツを編集する、間接的競合と、複数のアクタが実質的に同時に同じドキュメントの同じまたは関連付けられたコンテンツを修正するときに発生する、直接的競合とを含む。本システムおよび方法において、そのような競合は、ここで説明されているようにドキュメントジャーナルモデルを介して管理される。
【００９９】
図１３Ａは、デジタルインク１３００、１３０２、１３０４および１３０６としてレンダリングされている一連の後続の入力があったときのドキュメントＤAと、デジタルインク１３０８、１３１０、１３１２および１３１４としてレンダリングされている一連の後続の入力があったときのドキュメントＤBとを示す。
【０１００】
ドキュメントＤAに関して、入力１３００は、矢印として認識される非テキスト入力を表す複数のストロークの手書き入力であり、コンテナ１０００に関連付けられたコネクタとして検出されてもよい。入力１３０２は、大文字で始まる単語「Ｎｏ  Ｇｏ」として認識されるテキスト入力を表す複数のストロークの手書き入力であり、コネクタ１３００のラベルとして検出されてもよい。入力１３０４は、正方形である形状として認識される非テキスト入力を表す単一のストロークの手書き入力であり、コネクタ１３００に関連付けられたコンテナとして検出されてもよい。入力１３０６は、大文字で始まる単語「Ｓｔｏｐ」として認識されるテキスト入力を表す複数のストロークの手書き入力であり、コンテナ１３０４のラベルとして検出されてもよい。
【０１０１】
ドキュメントＤBに関して、入力１３０８は、矢印として認識される非テキスト入力を表す複数のストロークの手書き入力であり、コンテナ１０００に関連付けられたコネクタとして検出されてもよい。入力１３１０は、大文字で始まる単語「Ｇｏ」として認識されるテキスト入力を表す複数のストロークの手書き入力であり、コネクタ１３０８のラベルとして検出されてもよい。入力１３１２は、楕円形である形状として認識される非テキスト入力を表す単一のストロークの手書き入力であり、コネクタ１３０８に関連付けられたコンテナとして検出されてもよい。入力１３１４は単語「ｉｎｉｔｉａｌｉｚａｔｉｏｎ」として認識されるテキスト入力を表す複数のストロークの手書き入力であり、コンテナ１３１２のコンテンツとして検出されてもよい。
【０１０２】
分離において（たとえば、ネットワーク１２のリンク３０２の欠如によって、図１３Ａに表されるように関連付けられたデバイス１００が接続されていないときに、たとえばオフラインの間に、ドキュメントが修正された場合）、ドキュメントＤAおよびＤBのこれらの修正入力に基づいて、ドキュメント管理システム１１２は、図１３Ｂに示されるようにドキュメントジャーナルＪAを更新し図１３Ｃに示されるようにドキュメントジャーナルAを更新することになる。
【０１０３】
すなわち、ドキュメントジャーナルＪAは、ジャーナルのそれぞれ第８ないし第１１の（後続の）メッセージである対応するメッセージ４１６、４１８、４２０、および４２２を含むように更新される。メッセージ４１６は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ８、ｐａｒｅｎｔ  ＩＤ部分Ｂ７、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１３００によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１３００」を含むように生成される。メッセージ４１８は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ９、ｐａｒｅｎｔ  ＩＤ部分Ａ８、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１３０２によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１３０２」を含むように生成される。メッセージ４２０は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ１０、ｐａｒｅｎｔ  ＩＤ部分Ａ９、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１３０４によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１３０４」を含むように生成される。メッセージ４２２は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ１１、ｐａｒｅｎｔ  ＩＤ部分Ａ１０、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１３０６によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１３０６」を含むように生成される。
【０１０４】
他方で、ドキュメントジャーナルＪBは、ジャーナルのそれぞれ第８なないし第１１の（後続の）メッセージである対応するメッセージ１０１６、１０１８、１０２０、および１０２２を含むように更新される。メッセージ１０１６は、ｍｅｓｓａｇｅ  ＩＤ部分Ｂ８、ｐａｒｅｎｔ  ＩＤ部分Ｂ７、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１３０８によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１３０８」を含むように生成される。メッセージ１０１８は、ｍｅｓｓａｇｅ  ＩＤ部分Ｂ９、ｐａｒｅｎｔ  ＩＤ部分Ｂ８、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１３１０によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１３１０」を含むように生成される。メッセージ１０２０は、ｍｅｓｓａｇｅ  ＩＤ部分Ｂ１０、ｐａｒｅｎｔ  ＩＤ部分Ｂ９、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１３１２によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１３１２」を含むように生成される。メッセージ１０２２は、ｍｅｓｓａｇｅ  ＩＤ部分Ｂ１１、ｐａｒｅｎｔ  ＩＤ部分Ｂ１０、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１３１４によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１３１４」を含むように生成される。
【０１０５】
これらの更新されたジャーナルは、図１３Ａに示されたステータスにおける各ジャーナルのコンテンツを反映し、共有されたドキュメントの異なるバージョンを表す。異なるジャーナルのメッセージの共有に応じて、各デバイスに関連付けられたドキュメント管理システムは、差異を調停して、各アクタが、共有されたドキュメントの現在のバージョンを表示するだけでなく、たとえばアンドゥを介してアクセス可能な先行バージョンに対する修正のチェーンを表すジャーナルを有するようにしなければならず、それらのバージョンには他のアクタもアクセスすることができる。本システムおよび方法は、そのアクタのアクションが考慮に入れられるのと同じ方式、すなわち時間順序で、他のアクタのアクションを考慮に入れたローカルドキュメントジャーナルを構築することによって、この調停を行う。たとえば、１つのアクタのドキュメントジャーナルのメッセージが他のアクタと共有されたとき、ローカルアクタと遠隔アクタのジャーナルメッセージの相対的タイミングが比較されて、もたらされる更新されたジャーナルが、時間順序を維持するメッセージチェーンを有するようにされる。先に説明されたように、この時間相対情報は、メッセージの修正を行うために使用されるデバイスとは独立して各メッセージの絶対タイミングを提供する方式で、メッセージＩＤの一部として提供される。これは、図１４における例によって示される。
【０１０６】
図１４Ａは、ドキュメントＤAおよびＤBが予め図１３Ａに示された状態でネットワーク１２のリンク３０２を介してデバイスとの（再）接続がされたときの、デバイス１００の各々のドキュメント管理システム１１２によるドキュメントＤAおよびＤBの更新された表示を示す。見られるように、ドキュメントＤAおよびＤBの各々が、追加された入力１３００ないし１３１６のすべてが表示された現在のバージョンを表示するように更新されており、すなわち、入力１３００ないし１３０６は、ジャーナルＪAのメッセージ４１６ないし４２２を介して、ドキュメントＤAを表示する（第１の）デバイス１００によってドキュメントＤBを表示する（第２の）デバイス１００へ通信されていて、入力１３０８ないし１３１４は、ジャーナルＪBのメッセージ１０１６ないし１０２２を介して、第２のデバイスによって第１のデバイスへ通信されている。
【０１０７】
入力１３００ないし１３１６は、同じドキュメントコンテンツの直接的競合ではなく同じドキュメントコンテンツの間接的競合を構成しているので、これらの入力のすべては、ドキュメントＤAおよびＤBの両方を表示するために使用される。しかしながら、図１４Ａのドキュメントによって表される共有されたドキュメントの現在のバージョンを構築するために使用される結果のジャーナルＪAおよびＪBは、この間接的競合のため以下のように異なっている。
【０１０８】
この例において、ドキュメントＤAを修正する入力１３００ないし１３０６の各々は、ドキュメントＤBを修正する入力１３０８ないし１３１４の各々の（たとえば時間順序で）前になされる。したがって、ジャーナルＪBのメッセージ１０１６ないし１０２２を受け取ると、第１のデバイス１００のドキュメント管理システム１１２は、対応する時間情報から、メッセージ１０１６ないし１０２２の各々が、現在のブロックチェーンのメッセージ４２２である最後または最終のメッセージの後に生じたと決定し、したがって、ジャーナルＪAに付加されるさらなるメッセージとしてこれらのメッセージを含むように、ジャーナルＪAを更新する。これは図１４Ｂに示されており、図１４Ｂにおいて、ジャーナルの第１２ないし第１５の（後続の）メッセージである新しい一連のメッセージ４２４、４２６、４２８、および４３０が、メッセージ１０１６ないし１０２２にそれぞれ対応して追加される。他方で、ジャーナルＪBに関して、第１のデバイス１００からのジャーナルＪAの通信されたメッセージ４１６ないし４２２は、メッセージ１０１６ないし１０２２の前に生じており、したがって、単純にそのまま追加されることは、ジャーナルにおける複数のメッセージが同じｐａｒｅｎｔ  ＩＤを有することになるためできず、ドキュメントを正しく構築することが難しくなり、また、単純に既存のジャーナルＪＢの最後に新しいｐａｒｅｎｔ  ＩＤで付加されることは、もたらされる更新されたジャーナルが時間順序でブロックを有することにならないためできない。
【０１０９】
本システムおよび方法は、メッセージの時間順序を保持するようにジャーナルを更新することによって、この間接的修正競合の状況を管理する。一例において、これは、ドキュメント管理システム１１２が、共通のブロックチェーンから発する１つまたは複数の別個のブロックチェーンすなわちブロックチェーンの分岐を含むように、ドキュメントジャーナルを構築することによって達成される。
【０１１０】
たとえば、ジャーナルＪAのメッセージ４１６ないし４２２を受け取ると、第２のデバイス１００のドキュメント管理システム１１２は、対応する時間情報から、メッセージ４１６ないし４２２の各々が、現在のブロックチェーンのメッセージ１０２２である最後または最終のメッセージの前に、より詳細にはメッセージ１０１６の前に生じたと決定する。したがって、第２のデバイス１００のドキュメント管理システム１１２は、図１４Ｃに示されるように、（時間順序でブロック４１６の時間の前の最後のブロックである）メッセージ１０１４でブロックチェーンを分岐させるようにジャーナルＪBを更新して、（図示されるようにブロックチェーンのトランク１４００に対応する）既存のメッセージ１０１６ないし１０２２を含む（第１の）分岐１４００と、共有されたジャーナルＪAの先行メッセージ４１６ないし４２２が順番にそれぞれ新しいメッセージ１０２４ないし１０３０として含まれ、その後に既存のメッセージ１０１６ないし１０２２が順番にそれぞれ新しいメッセージ１０３２ないし１０３８としてコピーされ付加される、（第２の）分岐１４０２とをジャーナルＪBが含むようにする。このようにして、最も早い時間順序のコピーされたメッセージが最も遅い時間順序の分岐されたメッセージに対して（たとえば直後に）付加されることによって、時間順序が尊重される。この分岐動作において、コピーされた既存のメッセージ１０１６ないし１０２２のｍｅｓｓａｇｅ  ＩＤが、新しいｍｅｓｓａｇｅ  ＩＤ  Ｂ１２、Ｂ１３、Ｂ１４、およびＢ１５としてそれぞれ更新されると共に、対応するｐａｒｅｎｔ  ＩＤが、それぞれのジャーナル分岐における一連のメッセージの先行関係を尊重するように更新される。
【０１１１】
そのような分岐されたドキュメントジャーナルからの現在のバージョンの適切な表示は、ドキュメント管理システムが、ドキュメントを構築するときにメッセージの時間情報を読み取って、各分岐の最初（第１）のメッセージの時間情報を比較し、最も早い時間情報（たとえば、最小のｍｅｓｓａｇｅ  ＩＤ）を有する第１のメッセージを持つ分岐を選んで、ドキュメントを（再）構築する際に読み取るべきさらなるメッセージを決めることによって処理される。これは、図１４の例から理解されることができる。というのは、図１４Ｂに示されるジャーナルＪAの一連の時間順序のメッセージのコンテンツが、図１４Ｃに示される第２の分岐１４０２に入るブロックチェーンをたどるパスにおけるジャーナルＪBのメッセージの一連の時間順序のコンテンツと同じであり、したがって、ドキュメントＤAおよびＤBの両方におけるデジタルインクのもたらされるレンダリングが、図１４に示されるのと同じになるからである。
【０１１２】
本システムおよび方法のこの分岐する実施形態において、ローカルジャーナルは、共有されたドキュメントのジャーナルにおいて、より遅く間接的に競合された修正メッセージがより早く間接的に競合されたメッセージの後に「自動補正」の方式で付加されるように、「ツリー」構造で構築される。したがって、共有されたドキュメントの任意の新しい構築が、たとえば新しく接続されたデバイス上で、そのジャーナルから作成される。結果として、すべての共有デバイスが、アンドゥ、ジャーナルの参照、または他の適切なメカニズムなどを通じて、共有されたドキュメントの最新バージョンを表示し、先行バージョンにアクセスすることができる。
【０１１３】
さらに、すべての既存のメッセージが各ローカルジャーナルにおいて保持されるが、共有されたドキュメントのローカルバージョンを構築するときに、「終了された」分岐またはチェーンのメッセージは考慮されない。これらの終了されたメッセージは、そのローカルアクタによってその後に可視化されまたは操作されることができないが、ジャーナルからのローカルドキュメント構築のフォレンジック分析が、たとえば任意のエラーを検出するために行われてよい。
【０１１４】
代替的例として、本システムおよび方法は、上述されたように複数のパスまたは分岐を作成することなく、より早い時間でスタンプされたメッセージがより遅い時間でスタンプされたメッセージより前に挿入されるように、間接的に競合された修正メッセージを有するドキュメントジャーナルを更新してよい。そのような代替的例は、共有されたドキュメントの現在のバージョンの同じ最終的表示という結果となるであろうが、ローカルジャーナルがすべての既存のメッセージは含まない方式で、もたらされるジャーナルが先行バージョンから変更されることになり、このことがローカルドキュメント構築においてエラーにつながる可能性がある。
【０１１５】
本システムおよび方法は、ローカルドキュメントジャーナルのツリー構造を使用する同じドキュメントジャーナルモデルを使用して、次に説明されるように、特定の修正競合に関して適用される特定の予め定義された条件またはルールと共に直接的競合を調停してよい。
【０１１６】
図１５Ａは、デジタルインク１５００としてレンダリングされている後続の入力（または一連の入力）があったときのドキュメントＤAと、デジタルインク１５０２としてレンダリングされている後続の入力があったときのドキュメントＤBとを示す。
【０１１７】
ドキュメントＤAに関して、デジタルインク１５００のレンダリングをもたらす入力は、入力またはコンテナ４００および１１００間の矢印またはコネクタであるデジタルインク１２００に対応する手書き入力のサイズ変更コマンドまたは動作である。そのような動作は、ユーザが単に、たとえば矢印の矢先で押圧およびドラッグもしくはプッシュすることによって、デジタルインク１２００の端部分を選択しそれをデジタルインク４００の近くに動かすまたはそれがデジタルインク４００に「タッチ」するように、マルチポイントジェスチャを行うこと、または、ドキュメント管理システム１１２および／またはＨＷＲシステム１１４によって利用されるダイアグラムコネクタのロジックを介して、検出されたコンテナ４００に対して検出されたコネクタ１２００を自動的に結合するように、単一ポイントまたはマルチポイントジェスチャを行うことを含み、上記は、たとえば矢印の矢先でタップまたはダブルタップによって、参照によって前述のように組み込まれた特許文献９に説明されているように行われる。したがって、デジタルインク１５００は、結果のサイズ変更されたデジタルインク１２００としてレンダリングされる。
【０１１８】
ドキュメントＤBに関して、入力１５０２は、すべて大文字にされた単語「ＲＥＤＩＲＥＣＴ」として認識されるテキスト入力を表す複数のストロークの手書き入力であり、コネクタ１２００のラベルとして検出されてもよい。
【０１１９】
ドキュメントコンテンツの非テキスト要素およびテキスト要素の図式的関係が決定されない本システムおよび方法の実施形態において、ドキュメントＤAに関連付けられた入力１５００は、ドキュメントＤBに関連付けられた入力１５０２との間接的修正競合を、それぞれのドキュメントを表示しているデバイスが修正中に接続されるかどうかに関わらず引き起こす。デバイスが接続されていなくて後で接続される場合、それぞれのジャーナルの後の更新または調整が、それに関して入力が最初に発生し、前述されたように行われる。デバイスが接続され、それぞれのドキュメントが編集または表示のために開く場合、それぞれのジャーナル更新は、リアルタイムで通信されて、ローカルジャーナルおよびドキュメント表示更新がリアルタイムで、たとえば、それぞれのアクタによってジャーナル更新が受け取られた実質的に直後に行われる。
【０１２０】
そのようなリアルタイム更新は、各ユーザによってインタラクションされているもの以外のドキュメントの部分またはコンテンツ要素が更新されるので、異なるユーザに特に邪魔でない可能性がある。しかしながら、これは修正の性質および程度によって変わる。したがって、たとえば、ペンアップイベントからの関連付けられたドキュメント管理システム１１２によって決定されるユーザによる最後のインタラクションの後の一定の経過時間が、更新されたジャーナルからドキュメント表示更新を行う前に観察されてよい。しかしながら、この時間経過は、間接的競合が直接的競合になる可能性を最小限にするために長すぎるように定義されるべきではない。たとえば、約０．１秒ないし約０．８秒の時間経過は、ドキュメント管理システムによって予め定義される、および／またはＵＩなどを介してユーザによって設定可能であるものとして適切であってよい。
【０１２１】
たとえば、コラボレータはドキュメントが他の者によって修正されることを期待しており、音声および／またはテキストチャットなどを介して通信していることがあるので、そのようなユーザエクスペリエンス問題はコラボレーションセッション中に問題にならない可能性がある。他方で、他の１つまたは複数のユーザによってドキュメントが修正されていることを事前に知らずにユーザがドキュメントを開いて作業するような、コラボレーションでないシナリオでは、これらのユーザエクスペリエンス問題はより顕著である。しかしながら、閲覧および編集のために他の場所でドキュメントが開かれる関連付けられたドキュメント管理システムによってユーザに対する通信とおそらく結合された適時な方式での競合解決のための前述されたメカニズムは、従来のようにドキュメントの「ロック」編集を必要とせずに、これらの問題を軽減することがある。
【０１２２】
ドキュメントコンテンツの非テキスト要素とテキスト要素の図式的関係が決定される本システムおよび方法の実施形態において、ドキュメントＤAに関連付けられた入力１５００は、それぞれのドキュメントを表示しているデバイスが修正中に接続されているかどうかに関わらず、ドキュメントＤBに関連付けられた入力１５０２との直接的修正競合を引き起こす。これは、（接続されているまたは接続したときの）デバイス１００のそれぞれのドキュメント管理システム１１２および／またはＨＷＲシステムが、関係付けられたダイアグラム要素の修正を考慮に入れる必要があるからである。
【０１２３】
本例において、ラベル１５０２を有するコネクタ１２００のラベル付けはラベル１５０２を有するコネクタ１５００のラベル付けと同じであり、これは、もたらされる更新された共有されたドキュメントにおけるコネクタ１５００およびラベル１５０２のそれぞれのレンダリングされた位置が、他のコンテンツ要素のレンダリングによって影響されないからである。レンダリングされた位置が影響された場合、本システムおよび方法は、競合を通信しているアクタの１つまたは複数に対してアラートを表示させてよく、関係付けられた要素の１つまたは複数のデジタルインクの異なるレンダリングを介して是正措置を決定してよく、またはたとえば「ｅｒａｓｅ」修正タイプのような他の修正に関して後で見られるように、ドキュメントジャーナルモデル自体の競合解決が競合を解消すると決定してよい。
【０１２４】
前述のように、図１５の例は、同じ（共有された）ドキュメントに対する競合する入力を伴い、したがって、ドキュメントの各アクタのバージョンのドキュメントジャーナルが、インクの整合性を維持する方式で、他のアクタによって行われるアクションを反映するように更新される。ドキュメントＤAおよびＤBのジャーナルＪAおよびＪBはそれぞれ、図１５Ｂおよび図１５Ｃに示されるように構築され、そこでは、ドキュメントＤAに関連付けられた入力１５００は、ドキュメントＤBに関連付けられた入力１５０２より前に発生する。これらの図および以下の図において、破線の要素は、分岐を示し、他のアクタからのメッセージとして構築されたジャーナルのメッセージが、それぞれのドキュメント管理システムによって受け取られ分析される。
【０１２５】
ドキュメントＤAに関して、サイズ変更動作は、第１のアクタのドキュメント管理システム１１２によって、単一ステップ修正として、ただし２つの構成要素を用いて取り扱われる。第１の構成要素は、ジェスチャによってサイズ変更されている認識されたインクに対応する既存のストロークを選択するための選択ジェスチャの検出であり、第２の構成要素は、認識されたサイズ変更されたインクに対応する既存のストロークのサイズ変更である。したがって、本例において、デジタルインク１２００に対応するコンテンツは、デジタルインク１５００としてサイズ変更されることになる。
【０１２６】
結果として、ジャーナルＪAは、入力１５００に対応するジャーナルの第１６の（後続の）メッセージであるメッセージ４３２を含むように更新される。メッセージ４３２は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ１６、ｐａｒｅｎｔ  ＩＤ部分Ｂ１５、ｔｙｐｅ部分「ｒｅｓｉｚｅ」、および、サイズ変更修正に固有の修正ｄａｔａ部分を含むように生成される。
【０１２７】
「ｒｅｓｉｚｅ」修正タイプに関して、修正データは、サイズ変更されているコンテンツ入力、およびもたらされるサイズ変更されたコンテンツを含む。サイズ変更されているコンテンツは、そのコンテンツの「ｓｔｒｏｋｅ」データの識別を含み、もたらされるサイズ変更されたコンテンツは、サイズ変更されたインクストローク、たとえば、サイズ変更されているストロークのｓｔｒｏｋｅ  ＩＤを含む。サイズ変更されたコンテンツは、サイズ変更されたインクの座標、およびそれに関連付けられた認識結果、たとえば、サイズ変更されたストロークの１つまたは複数のｓｔｒｏｋｅ  ＩＤを含む。サイズ変更されたインクの認識およびレンダリングは、参照によって前述のように組み込まれた特許文献９に説明されているように、本システムおよび方法によって行われてよい。したがって、他のアクタからジャーナルメッセージを受け取る各アクタは、修正データにおいて、作用されている生インクのストロークのアイデンティティ、およびそれについての認識結果を受け取る。したがって、受け取ったアクタのドキュメント管理システム１１２は、共有されたドキュメントのそれらのバージョンにおける対応するデジタルインクを再レンダリングすることができ、ストローク修正タイプと同様に、レンダリングされたデジタルインクとのインタラクションが、再認識を必要とせずに実質的に即座に可能である。
【０１２８】
加えてまたは代わりに、「ｒｅｓｉｚｅ」修正ｄａｔａ部分は、インタラクションされたインク識別と一緒にジェスチャインク入力、すなわち、サイズ調整されているインクストロークを含んでよい。この例において、ジェスチャインクは、前述されたマルチポイントジェスチャまたは単一ポイントジェスチャのようなサイズ変更動作を指定する受け取られた手書きされたまたは手描きされた入力である。ジェスチャインクを含むことは、先に説明されたようにインクオブジェクトの通信を構成する。
【０１２９】
代わりにまたは加えてさらに、「ｒｅｓｉｚｅ」修正ｄａｔａ部分は、サイズ変更ジェスチャの生インクを表す相対的ストローク座標のみを含んでよい。そのような代替的例において、各デバイス１００のドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、メッセージが共有されたとき、ドキュメントジャーナルの各メッセージのｄａｔａ部分を認識処理することを必要とされる。
【０１３０】
さらに、「ｒｅｓｉｚｅ」修正ｄａｔａ部分は、サイズ調整されているストロークに当初関連付けられた「ｓｔｒｏｋｅ」タイプメッセージのｍｅｓｓａｇｅ  ＩＤ（およびｐａｒｅｎｔ  ＩＤ）を含んでもよい。このようにして、もたらされるジャーナルの他のメッセージを修正するメッセージの間のリンクが推定されることができ、それにより、たとえば、エラーの検出を支援してよい。
【０１３１】
説明されている修正データは例であって網羅的ではないので、ドキュメントジャーナルメッセージにおいて、他またはより多くのタイプ（フォーマット）が提供される可能性があることが理解される。いずれの場合も、前述のように、修正データの「ｓｔｒｏｋｅ」データは、ストロークを識別するためのデータ、たとえば１つまたは複数のｓｔｒｏｋｅ  ＩＤの役割をしてよい。
【０１３２】
図示された例において、図１５Ｂに示されるように、サイズ変更されているコンテンツ入力は、サイズ変更されているデジタルインク１２００によって表される生かつ認識されたコンテンツである「１２００」によってメッセージ４３２の修正ｄａｔａ部分において指定される。先に説明されたように、メッセージ４３２の修正ｄａｔａ部分は、コンテンツ１２００に関連付けられたジャーナルＪAのメッセージ４１２のｍｅｓｓａｇｅ  ＩＤ  Ｂ７およびｐａｒｅｎｔ  ＩＤ  Ａ６を含んでもよい。もたらされるサイズ変更されたコンテンツは、デジタルインク１５００によって表されるサイズ変更されたコンテンツである「１５００」によってメッセージ４３２の修正ｄａｔａ部分において指定される。
【０１３３】
ドキュメントＤBに関して、ジャーナルＪBは、入力１５０２に対応するジャーナルの第１６の（後続の）メッセージである、分岐１４０２におけるメッセージ１０４０を含むように更新される。メッセージ１０４０は、ｍｅｓｓａｇｅ  ＩＤ部分Ｂ１６、ｐａｒｅｎｔ  ＩＤ部分Ｂ１５、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１５０２によって表される生かつ認識されたコンテンツである修正ｄａｔａ部分「１５０２」を含むように生成される。
【０１３４】
ドキュメントＤAおよびＤBの両方がそれぞれ第１および第２のアクタによって編集または表示のために開かれ、デバイス１００は、ネットワーク１２のリンク３０２によって接続され、入力１５００および１５０２は、比較的短い間隔の時間または「時間窓」（たとえば、約０．１秒ないし約０．５秒）内で発生する状況において、ジャーナルＪAおよびＪBの更新は、図１５Ａの最初（第１）のデジタルインクレンダリングの後に他のアクタへ通信される。この場合、レンダリングは、前述されたように、それぞれのジャーナルバージョンの更新（または再構築）のとき、対応する編集され追加されたストローク１５００および１５０２を含むように更新される（たとえば、図１６Ａ参照）。
【０１３５】
特に、他のアクタの更新されたジャーナルメッセージを受け取る結果として、第１のデバイスのドキュメント管理システム１１２は、（図１５Ｂに示されるように）関連付けられたｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤならびにタイプおよびコンテンツ情報と共に、対応する新しい後続のメッセージ４３４としての共有されたメッセージ１０４０のデータを含むように、ドキュメントジャーナルＪAを更新し、第２のデバイスのドキュメント管理システム１１２は、ドキュメントジャーナルＪBを更新して、（図１５Ｃに示されるように、）既存のメッセージ１０２４ないし１０４０を含む分岐１４０２のメッセージ１０３８でブロックチェーンをさらに分岐させて（第３の）分岐１４０４を形成し、分岐１４０４において、共有されたジャーナルＪAの先行メッセージ４３２が新しいメッセージ１０４２として含まれ、既存のメッセージ１０４０が新しいメッセージ１０４４としてその後に付加される。前述のように、この分岐動作において、コピーされた既存のメッセージ１０４０のｍｅｓｓａｇｅ  ＩＤが、新しいｍｅｓｓａｇｅ  ＩＤ  Ｂ１７として更新されると共に、対応するｐａｒｅｎｔ  ＩＤが、それぞれのジャーナル分岐におけるメッセージの先行関係を尊重するように更新される。
【０１３６】
したがって、ジャーナルＪAから、ドキュメントＤAのバージョンは、共有されたジャーナルＪBのメッセージコンテンツによって提供されるように、ｔｙｐｅ部分の「ｓｔｒｏｋｅ」および関連付けられたｄａｔａ部分のｓｔｒｏｋｅ  ＩＤに基づいて、（図１６Ａに示されるような）レンダリングされたデジタルインク１５０２を含むように更新され、第１のデバイスに関連付けられた表示および入力領域３００に表示され、ジャーナルＪBから、ドキュメントＤBのバージョンは、共有されたジャーナルＪAのメッセージコンテンツによって提供されるように、ｔｙｐｅ部分の「ｒｅｓｉｚｅ」および関連付けられたｄａｔａ部分のｓｔｒｏｋｅ  ＩＤに基づいて、（図１６Ａに示されるような）レンダリングされた（サイズ変更された）デジタルインク１５００を含むように更新され、第２のデバイスに関連付けられた表示および入力領域３００に表示される。
【０１３７】
図１５の例の修正の性質により、図１５Ａに示されるドキュメントの各バージョンに対する修正が逆の順序で行われた、たとえば、入力１５０２が入力１５００の前に行われた場合、共有されたドキュメントのもたらされた表示された現在のバージョンは同じになるはずである。この場合もたらされるジャーナルＪAのメッセージ４３２および４３４のコンテンツ、およびもたらされるジャーナルＪBのメッセージ１０４２および１０４４のコンテンツも逆の順序となっている。これが当てはまらないことがある修正例については後で説明される。
【０１３８】
あるいは、図１５の例のサイズ変更動作は、本システムおよび方法によって、ドキュメントジャーナルのために含まれるストロークの置換動作として扱われてよい。すなわち、（消去されたストロークのサイズ変更されたバージョンである）ストロークの消去および新しいストロークの追加が、ジャーナルのメッセージに取り込まれてよい。ドキュメントのもたらされる（再）構築は、いずれの場合も同じである。図１６は、ドキュメントＤBに対する例示的な消去動作との直接的競合を有するドキュメントＤAに対する例示的な置換動作を示す。
【０１３９】
すなわち、図１６Ａは、デジタルインク１６００としてレンダリングされている後続の入力があったときのドキュメントＤAと、デジタルインク１６０２としてレンダリングされている後続の入力があったときのドキュメントＤBとを示す。
【０１４０】
ドキュメントＤAに関して、デジタルインク１６００のレンダリングをもたらす入力は、正方形またはコンテナ１３０４であるデジタルインク１３０４に対応する手書き入力の上描き動作である。入力１６００は、円である形状として認識される非テキスト入力を表す単一のストロークの手書き入力であり、コネクタ１３００に関連付けられたコンテナとして検出されてもよい。このアクションに応答して、ドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、既存のコンテンツ１３０４によって表される形状すなわち正方形が、新しいコンテンツ１６００によって表される形状すなわち円によって置換されることになると検出する。この検出は、参照によって前述のように組み込まれた特許文献９に説明されているように行われてよい。
【０１４１】
ドキュメントＤBに関して、デジタルインク１６０２のレンダリングをもたらす入力はやはり、正方形またはコンテナ１３０４であるデジタルインク１３０４に対応する手書き入力の上描き動作である。入力１６０２は、スクラッチアウトである消去ジェスチャとして認識されるジェスチャ入力を表す単一のストロークの手書き入力である。このアクションに応答して、ドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、既存のコンテンツ１３０４によって表される形状すなわち正方形が、新しいコンテンツ１６０２によって表される消去ジェスチャすなわちスクラッチアウトに従って消去されることになると検出する。この検出は、参照によって前述のように組み込まれた特許文献９に説明されているように行われてよい。
【０１４２】
図示された例において、消去ジェスチャまたは編集ストローク１６０２は、ジェスチャの入力生インクのデジタルインク表現に対応するデジタルインクとして表示される。しかしながら、デバイス１００のドキュメント管理システム１１２および／またはプロセッサ１０６は、予め定義された形状を有する編集ストロークまたは他の何らかの適切なレンダリングを表示するように構成されてよい。このレンダリングされた編集デジタルインクは、特定の量の時間、たとえば、約０．１秒ないし約０．５秒の間に、または認識された編集動作が行われる（たとえば、消去されたインクが表示から除外される）まで実行され、次いで、たとえば徐々に表示から消されてよい。この場合、検出された編集ジェスチャの表示は、ジェスチャ自体およびその相対位置の認識に関して、認識フィードバックをユーザに対して提供するために使用されてよい。あるいは、検出されたジェスチャの編集動作は、完了された編集動作自体の表示がそのようなフィードバックのために使用されるように、編集デジタルインクの表示なしに行われてよい。
【０１４３】
前述のように、図１６の例は、同じ共有されたドキュメントに対する競合する入力を伴い、したがって、ドキュメントの各アクタのバージョンのドキュメントジャーナルが、インクの整合性を維持する方式で、他のアクタによって行われるアクションを反映するように更新される。ドキュメントＤAおよびＤBのジャーナルＪAおよびＪBはそれぞれ、図１６Ｂおよび図１６Ｃに示されるように構築され、そこでは、ドキュメントＤAに関連付けられた入力１６００は、ドキュメントＤBに関連付けられた入力１６０２より前に発生する。
【０１４４】
ドキュメントＤAに関して、上書き動作は、第１のアクタのドキュメント管理システム１１２によって、２ステップ修正として取り扱われる。第１のステップは、上書きされている認識されたインクに対応する既存ストロークの消去であり、第２のステップは、新しく認識されたインクに対応する新しいストロークの追加である。したがって、本例において、（図１７Ａに示されるように、）デジタルインク１３０４に対応するコンテンツが消去されることになり、次いで、デジタルインク１６００に対応するコンテンツが追加されることになる。
【０１４５】
結果として、ジャーナルＪAは、それぞれ入力１２００および入力１６００の消去に対応するジャーナルの第１９のおよび第２０の（後続の）メッセージであるメッセージ４３６および４３８を含むように更新される。メッセージ４３６は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ１８、ｐａｒｅｎｔ  ＩＤ部分Ｂ１７、ｔｙｐｅ部分「ｅｒａｓｅ」、および、消去修正に固有の修正ｄａｔａ部分を含むように生成される。メッセージ４３８は、ｍｅｓｓａｇｅ  ＩＤ部分Ａ２０、ｐａｒｅｎｔ  ＩＤ部分Ａ１９、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１６００によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１６００」を含むように生成される。
【０１４６】
ドキュメントＤAに関して、消去動作は、第２のアクタのドキュメント管理システム１１２によって、単一ステップ修正として、ただし、上書き動作のステップと同様および上述されたサイズ変更動作の構成要素と同様の２つの構成要素を用いて取り扱われる。第１の構成要素は、ジェスチャによって上書きされている認識されたインクに対応する既存のストロークを消去するための消去ジェスチャの検出であり、第２の構成要素は、消去（上書き）されている認識されたインクに対応する既存のストロークの消去である。したがって、本例において、デジタルインク１３０４に対応するコンテンツは、消去されることになる。
【０１４７】
結果として、ジャーナルＪBは、入力１３０４に対応するジャーナルの第１９の（後続の）メッセージである、分岐１４０４におけるメッセージ１０４６を含むように更新される。メッセージ１０４６は、ｍｅｓｓａｇｅ  ＩＤ部分Ｂ１８、ｐａｒｅｎｔ  ＩＤ部分Ｂ１７、ｔｙｐｅ部分「ｅｒａｓｅ」、および、消去修正に固有の修正ｄａｔａ部分を含むように生成される。
【０１４８】
「ｅｒａｓｅ」修正タイプに関して、修正データは、消去されているコンテンツ入力を含む。消去されているコンテンツは、コンテンツの「ｓｔｒｏｋｅ」データの識別、たとえばｓｔｒｏｋｅ  ＩＤを含む。したがって、他のアクタからジャーナルメッセージを受け取る各アクタは、修正データにおいて、作用されている生インクのストロークのアイデンティティを受け取る。したがって、受け取ったアクタのドキュメント管理システム１１２は、共有されたドキュメントのそれらのバージョンにおける対応するデジタルインクを再レンダリングすること（この消去の場合は、そのデジタルインクを省略すること）ができ、ストローク修正タイプと同様に、レンダリングされたデジタルインクとのインタラクションが、再認識を必要とせずに実質的に即座に可能である。
【０１４９】
加えてまたは代わりに、「ｅｒａｓｅ」修正ｄａｔａ部分は、インタラクションされたインク識別と一緒にジェスチャインク入力、すなわち、消去されているインクストロークを含んでよい。この例において、ジェスチャインクは、前述された上書きおよびスクラッチアウトジェスチャのような消去動作を指定する受け取られた手書きされたまたは手描きされた入力である。他の消去ジェスチャも可能であるが、その例は後で説明される。ジェスチャインクを含むことは、先に説明されたようにインクオブジェクトの通信を構成する。
【０１５０】
代わりにまたは加えてさらに、「ｅｒａｓｅ」修正ｄａｔａ部分は、消去ジェスチャの生インクを表す相対的ストローク座標のみを含んでよい。そのような代替的例において、各デバイス１００のドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、メッセージが共有されたとき、ドキュメントジャーナルの各メッセージのｄａｔａ部分を認識処理することを必要とされる。
【０１５１】
さらに、「ｅｒａｓｅ」修正ｄａｔａ部分は、消去されているストロークに当初関連付けられた「ｓｔｒｏｋｅ」タイプメッセージのｍｅｓｓａｇｅ  ＩＤ（およびｐａｒｅｎｔ  ＩＤ）を含んでもよい。このようにして、もたらされるジャーナルの他のメッセージを修正するメッセージの間のリンクが推定されることができ、それにより、たとえば、エラーの検出を支援してよい。
【０１５２】
説明されている修正データは例であって網羅的ではないので、ドキュメントジャーナルメッセージにおいて、他またはより多くのタイプ（フォーマット）が提供される可能性があることが理解される。いずれの場合も、前述のように、修正データの「ｓｔｒｏｋｅ」データは、ストロークを識別するためのデータ、たとえば１つまたは複数のｓｔｒｏｋｅ  ＩＤの役割をしてよい。
【０１５３】
図示された例において、ジャーナルＪAの消去メッセージに関して、図１６Ｂに示されるように、消去されているコンテンツ入力は、上書きされているデジタルインク１３０４によって表される生かつ認識されたコンテンツである「１３０４」によってメッセージ４３６の修正ｄａｔａ部分において指定される。先に説明されたように、メッセージ４３６の修正ｄａｔａ部分は、コンテンツ１３０４に関連付けられたジャーナルＪAのメッセージ４２０のｍｅｓｓａｇｅ  ＩＤ  Ａ１０およびｐａｒｅｎｔ  ＩＤ  Ａ９を含んでもよい。ジャーナルＪBの消去メッセージに関して、図１６Ｃに示されるように、消去されているコンテンツ入力は、消去されているデジタルインク１３０４によって表される生かつ認識されたコンテンツである「１３０４」によってメッセージ１０４６の修正ｄａｔａ部分において指定される。メッセージ１０４６の修正ｄａｔａ部分は、コンテンツ１３０４に関連付けられたジャーナルＪBのメッセージ１０２８のｍｅｓｓａｇｅ  ＩＤ  Ａ１０およびｐａｒｅｎｔ  ＩＤ  Ａ９を含んでもよい。見られるように、これらの消去メッセージの修正ｄａｔａ部分は、消去動作が同じコンテンツを参照するので予期されるように同じコンテンツを含む。
【０１５４】
ドキュメントＤAおよびＤBの両方がそれぞれ第１および第２のアクタによって編集または表示のために開かれ、デバイス１００は、ネットワーク１２のリンク３０２によって接続され、入力１６００および１６０２は、比較的短い間隔の時間または「時間窓」（たとえば、約０．１秒ないし約０．５秒）内で発生する状況において、ジャーナルＪAおよびＪBの更新は、図１６Ａの最初（第１）のデジタルインクレンダリングの後に他のアクタへ通信される。この場合、レンダリングは、前述されたように、それぞれのジャーナルバージョンの更新（または再構築）のとき、対応する編集され追加されたストローク１６００および１６０２を含むように更新される（たとえば、図１７Ａ参照）。
【０１５５】
特に、他のアクタの更新されたジャーナルメッセージを受け取る結果として、第１のデバイスのドキュメント管理システム１１２は、（図１６Ｂに示されるように）関連付けられたｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤならびにタイプおよびコンテンツ情報と共に、対応する新しい後続のメッセージ４４０としての共有されたメッセージ１０４６のデータを含むように、ドキュメントジャーナルＪAを更新し、第２のデバイスのドキュメント管理システム１１２は、ドキュメントジャーナルＪBを更新して、（図１６Ｃに示されるように、）既存のメッセージ１０４２ないし１０４６を含む分岐１４０４のメッセージ１０４４でブロックチェーンをさらに分岐させて（第４の）分岐１４０６を形成し、分岐１４０６において、共有されたジャーナルＪAの先行メッセージ４３６および４３８がそれぞれ新しいメッセージ１０４８および１０５０として含まれ、既存のメッセージ１０４６が新しいメッセージ１０６２としてその後に付加される。前述のように、この分岐動作において、コピーされた既存のメッセージ１０４６のｍｅｓｓａｇｅ  ＩＤが、新しいｍｅｓｓａｇｅ  ＩＤ  Ｂ２０として更新されると共に、対応するｐａｒｅｎｔ  ＩＤが、それぞれのジャーナル分岐におけるメッセージの先行関係を尊重するように更新される。
【０１５６】
したがって、ジャーナルＪBから、ドキュメントＤBのバージョンは、共有されたジャーナルＪAのメッセージコンテンツによって提供されるように、ｔｙｐｅ部分の「ｅｒａｓｅ」および「ｓｔｒｏｋｅ」ならびに関連付けられたｄａｔａ部分のｓｔｒｏｋｅ  ＩＤに基づいて、（図１７Ａに示されるような）レンダリングされたデジタルインク１６００を含むように更新され、第２のデバイスに関連付けられた表示および入力領域３００に表示され、したがって、更新されたドキュメントＤAおよびＤBの両方が、以前の正方形（コンテナ）１３０４の代わりに円（コンテナ）１６００を含むようになる。消去動作であるジャーナルＪBのメッセージ１０４６も共有されるが、そのコンテンツは、ドキュメントＤAを更新するために第１のデバイスのドキュメント管理システム１１２によって使用されず、またはドキュメント管理システム１１２によって使用されるが適用されたときに効果を有しない。これは、メッセージによって表される消去動作は、対応するジャーナルＪAの先行メッセージ４３６によって既に消去されているドキュメントＤAのインクに関するものだからである。
【０１５７】
この効果無しにも関わらず、本システムおよび方法によってドキュメントジャーナルモデルに冗長なメッセージを含むことが、ドキュメントの「真」のジャーナルが存在すること、および特定のアクションの省略を手渡す際のエラーが発生しないことを保証する。しかしながら、本システムおよび方法が、冗長なメッセージのそのような省略が行われるように構成されることは可能である。
【０１５８】
図１６の例の修正の性質により、図１６Ａに示されるドキュメントの各バージョンに対する修正が逆の順序で行われた、たとえば、入力１６０２が入力１６００の前に行われた場合、共有されたドキュメントのもたらされた表示された現在のバージョンは同じになるはずである。しかしながら、この場合メッセージ４４０のコンテンツは、もたらされるジャーナルＪAにおいてメッセージ４３６および４３８のそれの前になり、メッセージ１０５２は、もたらされるジャーナルＪBにおいてメッセージ１０４８および１０５０のそれの前になる。ドキュメントＤAに対する消去動作が、ドキュメントＤBに対する例示的な動作と直接的に競合を有し、この順序の反転が効果を有する例が、図１７に関してして次に説明される。
【０１５９】
図１７Ａは、デジタルインク１７００としてレンダリングされている後続の入力があったときのドキュメントＤAと、デジタルインク１７０２としてレンダリングされている後続の入力があったときのドキュメントＤBとを示す。
【０１６０】
ドキュメントＤAに関して、デジタルインク１７００のレンダリングをもたらす入力は、コンテナ１３１２のテキストコンテンツ１３１４であるデジタルインク１３１４に対応する手書き入力の消去（上描き）動作である。入力１７００は、取り消し線である消去ジェスチャとして認識されるジェスチャ入力を表す単一のストロークの手書き入力である。このアクションに応答して、ドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、既存のコンテンツ１３１４によって表されるテキスト、すなわち単語「ｉｎｉｔｉａｌｉｚａｔｉｏｎ」が消去されることになると検出する。この検出は、参照によって前述のように組み込まれた特許文献９に説明されているように行われてよい。
【０１６１】
ドキュメントＤBに関して、デジタルインク１７０２のレンダリングをもたらす入力はやはり、デジタルインク１３１４に対応する手書き入力の部分の上書き動作である。入力１７０２は、字「Ｉ」である大文字で始まる文字として認識されるテキスト入力を表す複数のストロークの手書き入力である。このアクションに応答して、ドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、少なくともテキストの部分、すなわち、既存のコンテンツ１３１４によって表される認識された単語「ｉｎｉｔｉａｌｉｚａｔｉｏｎ」を開始する字「ｉ」が、文字、すなわち、新しいコンテンツ１７０２によって表される大文字で始まる字「Ｉ」によって置換されることになると検出する。この検出は、先に説明された上書きジェスチャの検出と同様に行われてよい。
【０１６２】
前述のように、図１７の例は、同じ共有されたドキュメントに対する競合する入力を伴い、したがって、ドキュメントの各アクタのバージョンのドキュメントジャーナルが、インクの整合性を維持する方式で、他のアクタによって行われるアクションを反映するように更新される。ドキュメントＤBおよびＤAのジャーナルＪBおよびＪAはそれぞれ、図１７Ｂおよび図１７Ｃに示されるように構築され、そこでは、ドキュメントＤBに関連付けられた入力１７０２は、ドキュメントＤAに関連付けられた入力１７００より前に発生する。
【０１６３】
ドキュメントＤBに関して、上書き動作は、第２のアクタのドキュメント管理システム１１２によって、前述のように消去およびストローク追加修正ステップを含むように取り扱われる。しかしながら、先に説明された上書き例とは異なり、図１７の例示的な上書き動作は、共有されたドキュメントコンテンツの認識された要素の部分のみの上書きを含む。これをどのように本システムおよび方法によって取り扱われるかに応じて、もたらされる結果のドキュメント更新が異なってよい。たとえば、言語エキスパート１２６によって利用される言語モデルを通じて、ＨＷＲシステム１１４は、新しく追加された文字「Ｉ」が、既に認識された単語「ｉｎｉｔｉａｌｉｚａｔｉｏｎ」の最初の文字「ｉ」と置き換わるようにユーザによって意図されていることを認識するように構成されてよい。その場合、ＨＷＲシステム１１４は、大文字で始まる語「Ｉｎｉｔｉａｌｉｚａｔｉｏｎ」の新しい認識結果をドキュメント管理システム１１２へ返す。
【０１６４】
他方で、ドキュメント管理システム１１２および／またはＨＷＲシステムが、そのような言語モデルを利用しない場合、たとえば、少なくとも単語レベルセマンティクスを利用しない手書き認識システム、たとえば文字ベースの認識システムにおいて、既に認識された「ｉｎｉｔｉａｌｉｚａｔｉｏｎ」の最初の文字「ｉ」の消去は、新しく認識された文字「Ｉ」とは別に返されるコンテンツ「ｎｉｔｉａｌｉｚａｔｉｏｎ」という結果となる。
【０１６５】
これらの異なる技法は、共有されたドキュメントモデルに影響する結果を有する。前者の場合、デジタルインク１３１４に対応するコンテンツの全体が消去されて、デジタルインク１７０２に対応するコンテンツが追加されることになる。結果として、ジャーナルＪBは、（図１７Ｂに示されるように、）後続のメッセージ１０５４および１０５６を含むように更新され、メッセージ１０５４および１０５６はそれぞれ、入力１３１４の消去およびデジタルインク１７０２に対応する入力に対応するジャーナルの第２１および第２２の（後続の）メッセージである。メッセージ１０５４は、ｍｅｓｓａｇｅ  ＩＤ部分Ｂ２１、ｐａｒｅｎｔ  ＩＤ部分Ｂ２０、ｔｙｐｅ部分「ｅｒａｓｅ」、および、上書きされているデジタルインク１３１４によって表される生かつ認識されたコンテンツである「１３１４」を含む修正ｄａｔａ部分を含むように生成される。メッセージ１０５４の修正ｄａｔａ部分は、コンテンツ１３１４に関連付けられたジャーナルＪBのメッセージ１０３８のｍｅｓｓａｇｅ  ＩＤ  Ｂ１５およびｐａｒｅｎｔ  ＩＤ  Ｂ１４を含んでもよい。メッセージ１０５６は、ｍｅｓｓａｇｅ  ＩＤ部分Ｂ２２、ｐａｒｅｎｔ  ＩＤ部分Ｂ２１、ｔｙｐｅ部分「ｓｔｒｏｋｅ」、および、デジタルインク１７０２によって表される生かつ認識されたコンテンツであるｄａｔａ部分「１７０２」を含むように生成される。
【０１６６】
他方で、後者の場合、デジタルインク１３１４に対応するコンテンツの部分のみが消去され、デジタルインク１７０２に対応するコンテンツが追加されることになる結果として、メッセージ１０５４は、同じｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤおよびｔｙｐｅ部分を有して生成されるが、修正ｄａｔａ部分は、消去されているコンテンツ１３１４のそれらのストローク座標のみ、たとえば、消去または置換されることになるそれらのストロークの１つまたは複数のｓｔｒｏｋｅ  ＩＤを含む。これらの異なるジャーナル更新の影響は後で説明される。あるいは、既存コンテンツ１３１４の完全な消去（たとえば、図１７Ｂのメッセージ１０５４と同様）、部分的に消去されたコンテンツ１３１４の残りの部分に関係付けられたストロークの追加（たとえば、残りのストローク座標および関連付けられた認識結果の修正データを含む新しい「ストローク」タイプメッセージ）、ならびに新しいストローク１７０２の追加（たとえば、図１７Ｂのメッセージ１０５６と同様）を表す、メッセージのチェーンが生成されてよい。
【０１６７】
ドキュメントＤAに関して、消去動作は、第１のアクタのドキュメント管理システム１１２によって、前述のように、ジェスチャ検出および消去構成要素を含むように取り扱われる。したがって、本例において、デジタルインク１３１４に対応するコンテンツは消去されることになる。結果として、ジャーナルＪAは、入力１３１４の消去に対応するジャーナルの第２１の（後続の）メッセージである後続のメッセージ４４２を含むように更新される。メッセージ４４２は、図１７Ｃに示されるように、上書きされているデジタルインク１３１４によって表される生かつ認識されたコンテンツである「１３１４」を含む修正ｄａｔａ部分を含むように生成される。メッセージ４４２の修正ｄａｔａ部分は、コンテンツ１３１４に関連付けられたジャーナルＪAのメッセージ４３０のｍｅｓｓａｇｅ  ＩＤ  Ｂ１５およびｐａｒｅｎｔ  ＩＤ  Ｂ１４を含んでもよい。
【０１６８】
見られるように、ジャーナルＪAおよびＪBに関するこれらの消去メッセージの修正ｄａｔａ部分は、消去動作が同じコンテンツを参照するので予期されるように、意味認識例について同じコンテンツを含む。したがって、この例では、ドキュメントＤAおよびＤBの両方がそれぞれ第１および第２のアクタによって編集または表示のために開かれ、デバイス１００は、ネットワーク１２のリンク３０２によって接続され、入力１７００および１７０２は、比較的短い間隔の時間または「時間窓」（たとえば、約０．１秒ないし約０．５秒）内で発生する状況において、ジャーナルＪAおよびＪBの更新は、図１７Ａの最初（第１）のデジタルインクレンダリングの後に他のアクタへ通信される。この場合、レンダリングは、前述されたように、それぞれのジャーナルバージョンの更新（または再構築）のとき、対応する編集され追加されたストローク１７００および１７０２の結果を含むように更新される（たとえば、図１８Ａ参照）。
【０１６９】
特に、他のアクタの更新されたジャーナルメッセージを受け取る結果として、第２のデバイスのドキュメント管理システム１１２は、（図１７Ｂに示されるように）関連付けられたｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤならびにタイプおよびコンテンツ情報と共に、対応する新しい後続のメッセージ１０５８としての共有されたメッセージ４４２のデータを含むように、ドキュメントジャーナルＪBを更新し、第１のデバイスのドキュメント管理システム１１２は、ドキュメントジャーナルＪAを更新して、（図１７Ｃに示されるように、）メッセージ４４０でブロックチェーンを分岐させて、（図示されるようにブロックチェーンのトランク１７０４に対応する）既存のメッセージ４００ないし４４２を含む（第１の）分岐１７０４を形成し、また、共有されたジャーナルＪBの先行メッセージ１０５４および１０５６がそれぞれ新しいメッセージ４４４および４４６として含まれ、その後に既存のメッセージ４２２が新しいメッセージ４４８として付加される、（第２の）分岐１７０６を形成する。前述のように、この分岐動作において、コピーされた既存のメッセージ４４２のｍｅｓｓａｇｅ  ＩＤが、新しいｍｅｓｓａｇｅ  ＩＤ  Ａ２３として更新されると共に、対応するｐａｒｅｎｔ  ＩＤが、それぞれのジャーナル分岐におけるメッセージの先行関係を尊重するように更新される。
【０１７０】
したがって、ジャーナルＪAから、ドキュメントＤAのバージョンは、共有されたジャーナルＪBのメッセージコンテンツにＥよって提供されるように、ｔｙｐｅ部分の「ｅｒａｓｅ」および「ｓｔｒｏｋｅ」ならびに関連付けられたｄａｔａ部分のｓｔｒｏｋｅ  ＩＤに基づいて、（図１８Ａに示されるような）レンダリングされたデジタルインク１７０２を含むように更新され、第１のデバイスに関連付けられた表示および入力領域３００に表示され、したがって、更新されたドキュメントＤAおよびＤBの両方が、以前の非大文字で始まる単語「ｉｎｉｔｉａｌｉｚａｔｉｏｎ」１３１４の代わりに大文字で始まる単語「Ｉｎｉｔｉａｌｉｚａｔｉｏｎ」を含むようになる。前述のように、ジャーナルＪAのメッセージ４４２の消去動作は共有されていても、適用されたときに効果を有しない。したがって、この例において、修正イベント１７００および１７０２が逆の順序で行われた場合、共有されたドキュメントのもたらされたドキュメントバージョンは同じになるはずである。
【０１７１】
しかしながら、コンテンツ１３１４の全体が消去動作１７０２によって消去されない他の例では、イベント１７００および１７０２の時間順序に基づいて異なる結果が得られ、またはそうでなく、望ましくない結果が発生することがある。
【０１７２】
たとえば、以前の例と同様に、第２のアクタの修正が最初に発生する場合、文字「Ｉ」の新しく認識されたコンテンツ１７０２、および「ｎｉｔｉａｌｉｚａｔｉｏｎ」の部分的に消去されたコンテンツ１３１４が、コンテンツ１３１４のすべてに対する第１のアクタの消去動作１７００の前に処理されるように第１のアクタへ通信される。
【０１７３】
メッセージ１０５４が、先に説明されたように、消去されているコンテンツ１３１４のそれらのストローク座標（ｓｔｒｏｋｅ  ＩＤ）のみを含む修正ｄａｔａ部分を有するように生成された場合、これは直接的競合を作り出し、直接的競合において、第１および第２のアクタの消去メッセージの修正データが同じコンテンツについて異なり、以前の例のように同じではない。結果として、ドキュメント管理システムは、ジャーナルＪAの後続の消去メッセージ（たとえば、各ジャーナルそれぞれについてのメッセージ４４８および１０５８）を、それが関係するコンテンツが変更されたので厳密にもはや存在しないため、いずれも無視してよく、または依然としてアクションがある場合、この消去メッセージは、消去されているコンテンツ１３１４の残りの部分を生じる。前者の場合は、前述と同様であるが、後者の場合は、第２のアクタの入力を表すデジタルインク１７０２のみ、すなわち字「Ｉ」が表示されるという結果となる。これらの場合、アクタのうちの１つによる最後のアクションの（後述される）単純なアンドゥが、表示を図１８Ａのそれに戻す。
【０１７４】
第１のアクタの修正が最初に発生した場合は、コンテンツ１３１４の全体が最初に第１のジャーナルＪAの消去メッセージによって消去されるので、後者と同じ結果が生じ、したがって、第２のジャーナルＪBの後続の部分的消去メッセージが、ドキュメント管理システム１１２によって無視され、またはそうでなければ、存在しないコンテンツに対して無効であるので、第２のアクタの入力のみ、すなわち字「Ｉ」が表示される。しかしながら、最後のアクションのアンドゥは字「Ｉ」が省略されるだけであり、意図された修正が生じない。したがって、これは、たとえば、コンテナ１３１２のテキストコンテンツを書き換えるユーザインタラクションをさらに必要とする。
【０１７５】
他方で、メッセージ１０５４が、先に説明されたように、既存コンテンツ１３１４の完全な消去と、部分的に消去されたコンテンツ１３１４の残りの部分に関係付けられたストロークの追加と、新しいストローク１７０２の追加とを表すメッセージのチェーンを含む修正ｄａｔａ部分を有するように生成されている場合、これは、第１および第２のアクタの消去メッセージの修正データが以前の例のように同じである、直接的競合を作り出す。結果として、修正の時間順序と独立して、結果は、図１８Ａのように、第２のアクタの入力を表すデジタルインク１７０２、すなわち字「Ｉ」と、部分的入力１３１４のデジタルインク、すなわち表示されている部分的単語「ｎｉｔｉａｌｉｚａｔｉｏｎ」との両方を含む。
【０１７６】
上記から推定できるように、少なくとも単語レベルの意味的手書き認識の使用が、本システムおよび方法のユーザエクスペリエンスを改善するが、文字レベルの手法も満足な結果を提供することがある。
【０１７７】
先に説明されたように、ジャーナルは、ネットワーク１２を介してより多くのデバイス１００と共有されることが可能である。ジャーナルを受け取ると、そのような他のデバイス１００に対してローカルのドキュメント管理システム１１２が、ジャーナルのメッセージによって表されるデジタルインクをレンダリングして、ドキュメントがそれらのデバイス１００上に再生されるようにする。たとえば、図１８Ａは、図１７の例に基づいて、第１および第２のデバイス１００でドキュメントＤAおよびＤBによって表される共有ドキュメントを示し、そのドキュメントは、ネットワーク１２のリンク３０４および３０６のいずれかまたは両方を介して（第３の）デバイス１００に通信されている。
【０１７８】
たとえば、第３のデバイス１００のユーザは、デバイス１００上でドキュメント編集アプリケーションを起動して、デバイスがネットワーク１２を介して接続されたファイルディレクトリなどからドキュメントを開いていてよい。応答して、この第３のデバイスのドキュメント管理システム１１２は、共有されたドキュメントＤAのジャーナルＪAおよび／または共有されたドキュメントＤBのジャーナルＪBを読み取って、図１８Ｂないし図１８Ｄに示されるように、それ自体のドキュメントジャーナルＪCを構成してドキュメントＤCを構築する。すなわち、ジャーナルＪCは、関連付けられたｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤ、ならびに共有されたジャーナルＪAおよび／またはＪBのそれぞれのメッセージに対応するタイプおよびコンテンツ情報と共に、メッセージ１８００ないし１８４４のチェーンを含むように生成され、メッセージ分岐を通じて最長のパスに対応し、（可能なさらなる間接的または直接的競合インタラクション入力まで）再構築されたジャーナルが分岐をまったく含まないようになっている。したがって、共有されたドキュメントの構築および再構築においてさもなければ競合を引き起こす可能性がある同じｐａｒｅｎｔ  ＩＤを有するメッセージが、時間順序で最も早いｍｅｓｓａｇｅ  ＩＤを有するチェーンをたどることによって調停されることが分かる。
【０１７９】
したがって、ジャーナルＪCから、ドキュメントＤCは、共有されたジャーナルＪAおよび／またはＪBのメッセージコンテンツによって提供されるように、共有されたドキュメントの最新（現在）のバージョンに残っているレンダリングされたデジタルインク４００ないし１７０２を含むように、第３のデバイス１００に関連付けられた表示および入力領域３００に表示される。
【０１８０】
図１９は、ドキュメントＤCに対する例示的な活字組み動作の結果を示す。すなわち、図１９Ａは、ドキュメントＤCのデジタルインクを活字組みするための後続の入力があったときのドキュメントＤCを示す。そのような動作は、ユーザが、たとえば、タップまたはダブルタップによって第３のデバイス１００のユーザインターフェース１０４上のどこかで、またはＵＩのメニューなどの選択を通じて、単一ポイントまたはマルチポイントジェスチャを行うことを含んでよい。ドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、図１９Ａに示されるように、そのような活字組みコマンドを認識し、デジタルインクを対応する活字組みインクに変換させるように構成される。たとえば、これは、参照によって前述のように組み込まれた特許文献９に説明されているように達成されてよい。
【０１８１】
結果として、ジャーナルＪCは、すべてのデジタルインクの活字組みに対応するジャーナルの第２４の（後続の）メッセージである後続のメッセージ１８４６を含むように更新される。メッセージ１８４６は、ｍｅｓｓａｇｅ  ＩＤ部分Ｃ２４、ｐａｒｅｎｔ  ＩＤ部分Ａ２３、ｔｙｐｅ部分「ｔｙｐｅｓｅｔ」、および、活字組み修正に固有の修正ｄａｔａ部分を含むように生成される。
【０１８２】
「ｔｙｐｅｓｅｔ」修正タイプに関して、修正データは、活字組みであるコンテンツ入力を含む。活字組みであるコンテンツは、そのコンテンツの「ｓｔｒｏｋｅ」データの識別を含む。したがって、他のアクタからジャーナルメッセージを受け取る各アクタは、修正データにおいて、作用されている生（およびデジタルインク）のストロークのアイデンティティを受け取る。したがって、受け取ったアクタのドキュメント管理システム１１２は、共有されたドキュメントのそれらのバージョンにおける対応する表示されたインクを再レンダリングする（この活字組みの場合、そのデジタルインクを省略する）ことができ、レンダリングされたデジタルインクとのインタラクションは、それらがインクオブジェクトまたはデジタルオブジェクトであるので、実質的に即座に可能である。
【０１８３】
代わりにまたは加えて、「ｔｙｐｅｓｅｔ」修正ｄａｔａ部分は、活字組みジェスチャの生インクを表す相対的ストローク座標のみを含んでよい。そのような代替的例において、各デバイス１００のドキュメント管理システム１１２および／またはＨＷＲシステム１１４は、メッセージが共有されたとき、ドキュメントジャーナルの各メッセージのｄａｔａ部分を認識処理することを必要とされる。
【０１８４】
さらに、「ｔｙｐｅｓｅｔ」修正ｄａｔａ部分は、活字組みされているストロークに当初関連付けられた「ｓｔｒｏｋｅ」タイプメッセージのｍｅｓｓａｇｅ  ＩＤ（およびｐａｒｅｎｔ  ＩＤ）を含んでもよい。このように、もたらされるジャーナルの他のメッセージを修正するメッセージの間のリンクが推定されることができ、それにより、たとえば、エラーの検出を支援してよい。
【０１８５】
説明されている修正データは例であって網羅的ではないので、ドキュメントジャーナルメッセージにおいて、他またはより多くのタイプ（フォーマット）が提供される可能性があることが理解される。いずれの場合も、前述のように、修正データの「ｓｔｒｏｋｅ」データは、ストロークを識別するためのデータ、たとえば１つまたは複数のｓｔｒｏｋｅ  ＩＤの役割をしてよい。
【０１８６】
図示された例において、ジャーナルＪCの活字組みメッセージに関して、図１９Ｂに示されるように、活字組みされているコンテンツ入力は、活字組みされているデジタルインク４００、７００、８００、９００、１０００、１１００、１３００、１３０２、１３０６、１３０８、１３１０、１３１２、１５００、１５０２、１６００、および１７０２によってそれぞれ表されている生かつ認識されたコンテンツである「４００」、「７００」、「８００」、「９００」、「１０００」、「１１００」、「１３００」、「１３０２」、「１３０６」、「１３０８」、「１３１０」、「１３１２」、「１５００」、「１５０２」、「１６００」、および「１７０２」によってメッセージ１８４６の修正ｄａｔａ部分において指定される。先に説明されたように、メッセージ１８４６の修正ｄａｔａ部分は、コンテンツ４００、７００、８００、９００、１０００、１１００、１３００、１３０２、１３０６、１３０８、１３１０、１３１２、１５００、１５０２、１６００、および１７０２に関連付けられたジャーナルＪCのメッセージのｍｅｓｓａｇｅ  ＩＤ  Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６、Ａ８、Ａ９、Ａ１１、Ｂ１２、Ｂ１３、Ｂ１４、Ａ１６、Ｂ１７、Ａ１９、およびＢ２２、ならびにｐａｒｅｎｔ  ＩＤ「ｎｕｌｌ」、Ａ１、Ａ２、Ａ３、Ａ４、Ａ５、Ｂ７、Ａ８、Ａ１０、Ａ１１、Ｂ１２、Ｂ１３、Ｂ１５、Ａ１６、Ａ１８、およびＢ２１をそれぞれ含んでもよい。
【０１８７】
ドキュメントＤA、ＤB、およびＤCのすべてがそれぞれ第１、第２、および第３のアクタによって編集または表示のために開かれ、デバイス１００は、ネットワーク１２のリンク３０２、３０４、および３０６によって接続された状況において、ジャーナルＪCの更新は他のアクタへ通信される。したがって、ドキュメントＤAおよびＤBのレンダリングは、ジャーナルＪCの共有されたメッセージ１８４６を反映する新しいメッセージを含むように、それぞれのジャーナルＪAおよびＪBに対する更新に基づいて、図１９Ｂに示されるように、すべてのデジタルインクの活字組みを含むように更新される。
【０１８８】
先に説明されたサイズ変更動作と同様に、活字組み動作も、本システムおよび方法によって２ステップ動作として取り扱われてよく、表示されたデジタルインクに関連付けたストロークを表示から消去するまたは別様に除去する第１のステップと、活字組みインクとしてレンダリングされた除去されたデジタルインクを追加する第２のステップとを有する。いずれの場合も、もたらされる表示は同じである。さらに、逆の動作の「活字組み解除」が、これらの動作のいずれかとして構成されてよい。
【０１８９】
先に説明されたように、他の修正動作も本システムおよび方法によって取り扱われる。これらの場合の各々において、生成されたメッセージは、ｍｅｓｓａｇｅ  ＩＤおよびｐａｒｅｎｔ  ＩＤ、ならびに関連付けられた修正タイプおよびデータ部分を含む。たとえば、「ｍｏｖｅ」修正タイプに関して、修正データは、動かされているストローク（たとえばコンテンツ）に対する参照、ならびに水平（たとえばｘ）および垂直（たとえばｙ）移動の範囲を含み、「ｓｔｙｌｅ」修正タイプに関して、修正データは、スタイル設定されているストローク（たとえばコンテンツ）に対する参照、および適用されているスタイル、たとえば、下線、太字などを含み、「ｓｈｏｗ」修正タイプに関して、修正は、表示するコンテンツのパラメータ、たとえば、ポップアップパラメータ（たとえば認識候補）またはＵＲＬ、ポップアップのＩＤ（それにより、特定のスタイルを伴って表示され、また、逆の「ｈｉｄｅ」コマンドで隠すように選択されてよい、ならびにポップアップの表示用の水平（たとえばｘ）および垂直（たとえばｙ）などを含む。これらの動作の適用は、他のコマンドタイプ動作に関して先に論じられた方式と同様に、単一またはマルチポイントジェスチャ、メニュー選択などを通じてなされる。
【０１９０】
アンドゥおよびリドゥの動作は、同様に単一またはマルチポイントジェスチャ、メニュー選択などを通じて適用される。アンドゥおよびリドゥに関連付けられたメッセージについての修正データは、単純にアンドゥおよびリドゥ動作が関係するメッセージまたはブロックのｍｅｓｓａｇｅ  ＩＤを含んでよい。このｍｅｓｓａｇｅ  ＩＤは、基本的にｐａｒｅｎｔ  ＩＤであり、複数のアンドゥに対して増分的にロールバックされ、複数のリドゥに対して反復される。
【０１９１】
図示された例において、ｍｅｓｓａｇｅ  ＩＤは、ユーザまたはアクタＩＤ、たとえば、Ａ、Ｂ、またはＣに対して付加された増分番号、たとえば、１、２、３などとして提供される。これは単に例であり、番号のみ（または先に説明されたように他の増分要素）が、最初にメッセージを生成したユーザ／アクタの識別なしに提供されてよい。しかしながら、アクタまたは作成者ＩＤを使用することによって、たとえばコラボレーションチームのどのメンバがどの修正を行ったかを追跡すること、およびメッセージレベルでユーザに編集権限を提供することが可能である。
【０１９２】
たとえば、本システムおよび方法は、コラボレーションチームの１または複数のメンバが他のメンバよりも大きい編集権限を有することが必要とされる適用例に適用されてよい。そのような適用例は教育であり、教師には学生の入力を編集する能力が提供されてよいが、学生には教師の入力を編集する能力が提供されない。別の適用例は、ドキュメントレビューであり、まとめ役にはレビュアよりも大きい編集能力が提供される。これらの適用例は、単に例であって網羅的ではない。
【０１９３】
そのような適用例において、アクタＩＤは、関連するアクタの各ドキュメント管理システムに対して、たとえばデバイス１００の関連付けられたメモリ１０８において、たとえば特定の修正タイプの編集権限と共に、予め定義されることができる。したがって、それぞれのジャーナルを、それら自体からのメッセージおよび互いのジャーナルを使用して構築するときに、ドキュメント管理システムは、それぞれのドキュメントを構築するときにアクタによって行われた特定のアクションを適用または無視する。
【０１９４】
本システムおよび方法のドキュメント共有モデルは、異なるアクタの間でリアルタイムで手書きされたインクおよび関係付けられたコンテンツを共有する効率的な手段を提供する。このモデルにおいて、修正または編集情報は、いかなる同期メカニズムまたは集中化されたコンテンツ処理なしに生成されることが可能な比較的小さなメッセージにおいて記憶される。したがって、共有されたドキュメントは、１つまたは複数のピアツーピア接続された入力デバイス上で１つまたは複数の異なるユーザによって行われた一連の修正として、特に、デバイスによってデジタルインクおよび／またはジェスチャとして捉えられた手書きされた修正として管理される。各修正は、少なくとも識別、タイプ、および修正のコンテンツについての情報と共に、ジャーナルエントリに記憶される。コンテンツは、ストローク、活字組みコンテンツ、追加コンテンツ、または消去、移動、スタイル、サイズ変更などのストローク操作である。
【０１９５】
したがって、インクドキュメントの増分するバージョンは、単純で正確な方式で管理される。一連のジャーナルエントリのツリー構造における競合する修正を定義するモデルを利用し、ジャーナルの最長経路にないエントリを付加するように自動補正することによって、インクドキュメントの整合性に対する制御を維持するように正確さが高められる。これは、各エントリがその親にリンクされた状態で、ジャーナルツリーをすべてのアクタについて単一の経路に分解する。
【０１９６】
最良の形態および／または他の例と考えられるものを上記で説明したが、そこに様々な修正が行われてよいこと、本明細書に開示された主題が様々な形態および例において実装されてよいこと、ならびにそれらは他の多数の適用例、組み合わせ、および環境において適用されてよく、それらの一部のみが本明細書に説明されていることを理解されたい。当業者は、開示された態様が、主題の真の趣旨および範囲を逸脱することなく変更または補正されてよいことを認識するであろう。したがって、主題は、本明細書における特定の詳細、提示、および例示された例に限定されない。本明細書に開示された有利な概念の真の範囲に含まれるあらゆるすべての修正および変更を保護することが意図される。
【図１】
2019531540.tif 000003
【図２】
2019531540.tif 000004
【図３】
2019531540.tif 000005
【図４Ａ】
2019531540.tif 000006
【図４Ｂ】
2019531540.tif 000007
【図５】
2019531540.tif 000008
【図６】
2019531540.tif 000009
【図７Ａ】
2019531540.tif 000010
【図７Ｂ】
2019531540.tif 000011
【図８Ａ】
2019531540.tif 000012
【図８Ｂ】
2019531540.tif 000013
【図９Ａ】
2019531540.tif 000014
【図９Ｂ】
2019531540.tif 000015
【図１０Ａ】
2019531540.tif 000016
【図１０Ｂ】
2019531540.tif 000017
【図１０Ｃ】
2019531540.tif 000018
【図１１Ａ】
2019531540.tif 000019
【図１１Ｂ】
2019531540.tif 000020
【図１１Ｃ】
2019531540.tif 000021
【図１２Ａ】
2019531540.tif 000022
【図１２Ｂ】
2019531540.tif 000023
【図１２Ｃ】
2019531540.tif 000024
【図１３Ａ】
2019531540.tif 000025
【図１３Ｂ】
2019531540.tif 000026
【図１３Ｃ】
2019531540.tif 000027
【図１４Ａ】
2019531540.tif 000028
【図１４Ｂ】
2019531540.tif 000029
【図１４Ｃ】
2019531540.tif 000030
【図１５Ａ】
2019531540.tif 000031
【図１５Ｂ】
2019531540.tif 000032
【図１５Ｃ】
2019531540.tif 000033
【図１６Ａ】
2019531540.tif 000034
【図１６Ｂ】
2019531540.tif 000035
【図１６Ｃ】
2019531540.tif 000036
【図１７Ａ】
2019531540.tif 000037
【図１７Ｂ】
2019531540.tif 000038
【図１７Ｃ】
2019531540.tif 000039
【図１８Ａ】
2019531540.tif 000040
【図１８Ｂ】
2019531540.tif 000041
【図１８Ｃ】
2019531540.tif 000042
【図１８Ｄ】
2019531540.tif 000043
【図１９Ａ】
2019531540.tif 000044
【図１９Ｂ】
2019531540.tif 000045
【国際調査報告】
2019531540.tif 000046
2019531540.tif 000047