(57)【特許請求の範囲】
【請求項１】
データファイルを共同で作成する方法であって、
第１のコンピューティング装置上で実行される第１のオーサリングアプリケーションで、前記データファイルのユーザーコピーと前記データファイルのマスターコピーの間に存在する編集競合を識別するステップと、
前記データファイルの前記ユーザーコピーと前記データファイルの前記マスターコピーをマージして、前記データファイルのマージされたコピーを生成するステップと、
前記第１のオーサリングアプリケーションのユーザーに前記データファイルの前記マージされたコピーを表示するステップと、
前記識別された編集競合を表示することと前記識別された編集競合を隠すことの間でユーザーが切り換えることを可能にするトグルインターフェースを前記ユーザーに提示するステップであって、前記トグルインターフェースは、前記編集競合が識別されるときに提示されて、前記識別された編集競合が解決されてしまうまで提示されたままであり、前記データファイルの前記マージされたコピーは、前記識別された編集競合が表示されるときと前記識別された編集競合が隠されるときの両方で前記ユーザーによって自由に編集可能である、ステップと、
コンテンツロックを表示すること、および前記識別された編集競合を示すために注釈されたユーザーコンテンツを表示することを含む、前記データファイルの前記ユーザーコピーを提示するように構成される解決インターフェースを提供するステップであって、前記解決インターフェースは、前記識別された編集競合の解決命令を前記ユーザーが提供することを可能にし、前記識別された編集競合の解決命令を前記ユーザーが提供することは、
前記解決インターフェース上で、承諾オプションおよび拒否オプションを表示することであって、前記承諾オプションは承諾コントロールを備え、前記拒否オプションは拒否コントロールを備え、前記解決インターフェースは、前記識別された編集競合が選択されるときに表示される、ことと、
前記識別された編集競合を承諾することになる前記承諾コントロールおよび前記識別された編集競合を拒否することになる前記拒否コントロールを前記ユーザーが選択することを可能にすることと
を備える、ステップと
を備えることを特徴とする方法。
【請求項２】
前記第１のオーサリングアプリケーション上で、前記データファイルの前記ユーザーコピーと前記データファイルの前記マスターコピーの間に存在する複数の編集競合を識別するステップをさらに備え、
前記トグルインターフェースを前記ユーザーに提示するステップは、前記編集競合を表示することと、前記編集競合を隠すことの間でユーザーが切り換えることを可能にすることを特徴とする請求項１に記載の方法。
【請求項３】
前記ユーザーが前記識別された編集競合の表示に切り換えるとき、前記識別された編集競合を表示するステップをさらに備え、
前記提示された解決インターフェースは、前記ユーザーが前記編集競合のいずれかを承諾または拒否することを可能にすることを特徴とする請求項２に記載の方法。
【請求項４】
前記識別された編集競合を表示するステップは、前記識別された編集競合を競合しないコンテンツのコンテキスト内に表示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記識別された編集競合を表示するステップは、前記識別された編集競合を前記競合しないコンテンツと区別するように前記識別された編集競合に注釈を付けるステップを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記識別された編集競合に注釈を付けるステップは、前記識別された編集競合の発生元を表示するステップを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記識別された編集競合を隠すステップは、前記識別された編集競合からどんな注釈をも取り除くステップを含むことを特徴とする請求項５に記載の方法。
【請求項８】
前記第１のオーサリングアプリケーション上で、前記データファイルの前記マスターコピーの現在の状態を示す更新を受け取って、前記データファイルの前記ユーザーコピーを前記マスターコピーに同期させるステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項９】
前記編集競合が識別されるときに前記ユーザーに警告するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１０】
前記データファイルの前記ユーザーコピーを前記マスターコピーに同期させる命令を受け取るステップと、
前記ユーザーコピーに基づいて前記データファイルの新しいコピーを生成するステップであって、前記新しいコピーは、前記識別された編集競合を含み、前記データファイルの前記新しいコピーを編集するステップは、前記トグルインターフェースの提示を引き起こさない、ステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項１１】
コンピューティング装置によって実行されるとき、編集競合を解決する方法を実行する実行可能な命令を格納するコンピューター読取り可能記憶媒体であって、前記編集競合は、データファイルのユーザーコピーと前記データファイルのマスターコピーとの間に存在し、前記方法は、
前記コンピューティング装置のユーザーに表示ウィンドウを提示するステップであって、前記表示ウィンドウは、編集領域および概要領域を含む、ステップと、
前記表示ウィンドウの前記編集領域内にいずれかのコンテンツロック、およびいずれかの識別された競合するコンテンツを含む前記ユーザーコピーのコンテンツを表示するステップであって、前記ユーザーは、前記識別された競合するコンテンツを含む前記ユーザーコピーの前記コンテンツを前記編集領域内で自由に編集することができ、前記識別された競合するコンテンツは、前記識別された競合するコンテンツを競合しないコンテンツと区別するように注釈が付けられる、ステップと、
前記識別された競合するコンテンツおよびいずれかの識別された競合するコンテンツロックを前記概要領域内に表示するステップと、
承諾オプションおよび拒否オプションを含む解決インターフェースを表示するステップであって、前記承諾オプションは承諾コントロールを備え、前記拒否オプションは拒否コントロールを備え、前記解決インターフェースは、コンテンツロックを表示すること、および前記識別された競合するコンテンツを示すために注釈されたユーザーコンテンツを表示することを含む、前記データファイルの前記ユーザーコピーを提示するように構成され、前記解決インターフェースは、前記識別された競合するコンテンツが選択されるときに表示される、ステップと、
トグルインターフェースを前記ユーザーに提示するステップであって、前記ユーザーによる前記トグルインターフェースの選択によって、前記表示ウィンドウの前記編集領域内で前記識別された競合するコンテンツへのいずれの注釈もが取り除かれる、ステップと
を備えることを特徴とするコンピューター読取り可能記憶媒体。
【請求項１２】
前記ユーザーによる前記トグルインターフェースの選択によって、前記表示ウィンドウから前記解決インターフェースもが取り除かれることを特徴とする請求項１１に記載のコンピューター読取り可能記憶媒体。
【請求項１３】
前記識別された競合するコンテンツが存在することを前記ユーザーに報告する警告を表示するステップをさらに備えることを特徴とする請求項１１に記載のコンピューター読取り可能記憶媒体。
【請求項１４】
前記識別された競合するコンテンツは、前記ユーザーによって前記データファイルの前記ユーザーコピーに挿入されまたは削除され、前記データファイルの前記マスターコピーへの介在する変更に干渉するコンテンツだけを含むことを特徴とする請求項１１に記載のコンピューター読取り可能記憶媒体。
【請求項１５】
データファイルを共同編集するためのシステムであって、
前記データファイルのマスターコピーが格納される記憶装置であって、前記マスターコピーはマスターコンテンツおよびマスターメタデータを有する、記憶装置と、
前記データファイルのユーザーコピーが格納されるユーザー装置であって、前記ユーザーコピーはユーザーコンテンツおよびユーザーメタデータを有し、前記ユーザーコンテンツは前記マスターコンテンツに基づいて生成され、前記ユーザーメタデータは前記マスターメタデータに基づいて生成される、ユーザー装置と、
前記ユーザー装置上で実行されるオーサリングアプリケーションであって、前記オーサリングアプリケーションは、前記マスターコンテンツへのいずれかの変更を示すマスターコンテンツ更新、および前記マスターメタデータへのいずれかの変更を示すマスターメタデータ更新を前記記憶装置から受け取るように構成される、オーサリングアプリケーションと
を備え、
前記オーサリングアプリケーションは、前記データファイルの前記ユーザーコピーと前記マスターコンテンツ更新の間、および前記ユーザーコピーと前記マスターメタデータ更新の間のどんな編集競合をも識別するようにも構成され、前記オーサリングアプリケーションは、承諾オプションおよび拒否オプションを含む解決インターフェースを表示するようにも構成され、前記承諾オプションは承諾コントロールを備え、前記拒否オプションは拒否コントロールを備え、前記解決インターフェースは、前記識別された編集競合が選択されるときに表示され、前記オーサリングアプリケーションは、前記承諾オプションまたは前記拒否オプションをユーザーに選択させることを可能にさせ、
前記承諾オプションの選択によって識別された編集競合が承諾され、前記拒否オプションの選択によって前記識別された編集競合が拒否され、
前記解決インターフェースは、ユーザーメタデータを表示すること、および前記識別された編集競合を示すために注釈されたユーザーコンテンツを表示することを含む、前記データファイルの前記ユーザーコピーを提示するように構成され、
前記オーサリングアプリケーションは、前記マスターメタデータへの変更が前記ユーザーメタデータへのどんな変更とも競合しない場合、前記マスターメタデータへのどんな変更をも自動的にインスタンス化し、
前記オーサリングアプリケーションは、前記オーサリングアプリケーションによって編集競合が識別されない場合にだけ、前記マスターコンテンツへのどんな変更をも自動的にインスタンス化することを特徴とするシステム。
【請求項１６】
前記オーサリングアプリケーションは、前記オーサリングアプリケーションによって編集競合が識別されない場合にだけ、前記ユーザーコンテンツへのどんな変更も示すユーザーコンテンツ更新を前記記憶装置に送るようにも構成されることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記オーサリングアプリケーションは、前記オーサリングアプリケーションによって編集競合が識別されるかどうかに拘らず、前記ユーザーメタデータへのいずれかの変更を示すユーザーメタデータ更新を前記記憶装置に送るようにも構成されることを特徴とする請求項１５に記載のシステム。
【請求項１８】
前記記憶装置に通信可能に結合された複数のユーザー装置をさらに備え、
それぞれのユーザー装置は、前記データファイルの前記ユーザーコピーを取得し、前記記憶装置から更新を周期的な間隔で受け取り、前記識別された編集競合が解決されるとき前記記憶装置に更新を送るように構成されることを特徴とする請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
従来の共同編集は、連続的に実施される傾向がある。ユーザーは、交替で文書にアクセスし、文書を編集し、編集物を格納する。編集の競合を抑えるために、アクセスするユーザーは、ファイルにロックをかけて、文書を編集しているときに他のユーザーにその文書を編集させないようにすることができる。
【背景技術】
【０００２】
反復する編集プロセスは、各ユーザーが文書編集の順番を待つことがあるので、遅延を引き起こし得る。さらに、反復する編集プロセスは、管理するのが難しいことがある。たとえば、それぞれのユーザーは、誰が文書のどの部分を編集しているか、文書のどのバージョンが最も最近のものか、およびユーザーの順番がいつ来るかを追跡する必要があり得る。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許出願第１１／９３８，０８２号
【特許文献２】特許出願第１１／９５７，０１０号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
他のタイプの従来の共同編集では、それぞれのユーザーが、文書のそれぞれ異なるコピーを編集することができる。その後、編集されたコピーはすべて、単一の文書へとマージすることができる。この大規模なマージは、遅延を引き起こし、多くの編集競合をもたらし、かつ／または管理するのが難しくなり得る。たとえば、文書をマージする責任を担うユーザーは、文書間の関係を追跡することを求められることがある。ユーザーは、編集されたコピーのうちの２つ以上の間の競合を解決することの責任を担うこともある。
【０００５】
本開示は、これらのおよび他の考慮すべき事項に関して行われたものである。
【課題を解決するための手段】
【０００６】
この要約は、下記の発明を実施するための形態においてさらに述べられる選択された概念を簡略化された形で述べるために提供されている。この要約は、特許請求された主題の主な特徴または本質的な特徴を識別するためのものではなく、また特許請求された主題の範囲を定める助けとするためのものでもない。
【０００７】
本開示の実施形態は一般に、共同環境でデータファイルを同期させるときに生じる編集競合をユーザーが解決することを可能にすることを対象とする。データファイルのユーザーコピーを作成する各ユーザーは、データファイルのマスターコピーとユーザーコピーの間の編集競合を解決することができる。データファイルのユーザーコピーからの更新は、編集競合が解決された後にマスターコピーに組み込むことができる。
【０００８】
本開示の態様によれば、オーサリングアプリケーションが、データファイルのユーザーコピー内で編集競合をユーザーが選択的に示し、隠すことを可能にする。オーサリングアプリケーションは、編集競合が示されているか、それとも隠されているかに関係なくユーザーコピーを自由に編集することを可能にする。他の態様によれば、オーサリングアプリケーションは、表示された編集競合をユーザーが解決することを可能にするコンテキストユーザーインターフェースを提供する。
【０００９】
一部の実施形態では、編集競合を示すことは、競合するコンテンツに注釈を付けることを含む。ある実施形態では、競合するコンテンツに注釈を付けることは、コンテンツがどのように競合するかを示す。別の実施形態では、ユーザーコピー内で挿入、修正および／または削除された、競合するコンテンツだけに注釈が付けられる。
【００１０】
これらおよび他の特徴および利点は、以下の詳細な記述を読み、関連する図面を精査することから明らかになる。上記の一般的な記述と下記の詳細な記述の両方は、説明するためのものにすぎず、特許請求された態様を制限するものではないことを理解されたい。
【図面の簡単な説明】
【００１１】
【図１】本開示の発明の態様の実施例である特徴を有する例示的なオーサリングシステムの図である。
【図２】本開示の諸原理による、データファイルのユーザーコピーを格納するユーザー装置に通信可能に結合された、データファイルのマスターコピーを格納する記憶装置を含む例示的なオーサリングシステムを示す概略ブロック図である。
【図３】本開示の諸原理による、データファイルのユーザーコピーが作成され得る例示的なオーサリングプロセスの動作フローを示すフローチャートである。
【図４】本開示の諸原理による、オーサリング環境を実施するように構成されたユーザーコンピューティングシステムの概略ブロック図である。
【図５】本開示の諸原理による、図３の同期動作を実施するための例示的な同期プロセスの動作フローを示すフローチャートである。
【図６】本開示の諸原理による、図５の継続動作を実施するための例示的な編集プロセスの動作フローを示すフローチャートである。
【図７】本開示の諸原理による、１つまたは複数の編集競合をレビューし、任意選択で解決するための例示的なレビュープロセスの動作フローを示すフローチャートである。
【図８】本開示の諸原理による、未解決の編集競合が識別されていない場合にユーザーに表示される例示的なユーザーインターフェースを示す図である。
【図９】本開示の諸原理による、少なくとも１つの編集競合が識別された場合にユーザーに表示される例示的なユーザーインターフェースを示す図である。
【図１０】本開示の諸原理による、少なくとも１つの編集競合が識別され、識別された編集競合をレビューすることにユーザーが決めた場合にユーザーに表示される例示的なユーザーインターフェースを示す図である。
【図１１】本開示の諸原理による、概要ウィンドウ内のリストから編集競合が選択される場合に表示される解決インターフェースを含むユーザーインターフェースの概略図である。
【図１２】本開示の諸原理による、ユーザーによって与えられた解決命令をオーサリングアプリケーションが実施するための例示的な実施プロセスの動作フローを示すフローチャートである。
【図１３】本開示の諸原理による、承諾された編集操作をデータファイルのマージされたバージョン内にインスタンス化するための例示的な承諾プロセスの動作フローを示すフローチャートである。
【図１４】本開示の諸原理による、拒否された編集操作をデータファイルのマージされたバージョンから取り除き、またはその中で元に戻すための例示的な拒否プロセスの動作フローを示すフローチャートである。
【図１５】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図１６】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図１６Ａ】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図１７】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図１８】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図１９】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２０】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２１】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２２】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２３】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオフラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２４】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオフラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２５】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオフラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２６】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオフラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２７】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオフラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２８】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオフラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【図２９】本開示の諸原理による、第１のユーザーがデータファイルのユーザーコピーをオフラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示す図である。
【発明を実施するための形態】
【００１２】
以下の詳細な説明では、その一部をなす添付の諸図面を参照し、諸図面には、例示するために、特定の実施形態または実施例が示されている。本開示は、コンピューターシステム内のオペレーティングシステム上で実行されるアプリケーションプログラムと共に実行されるプログラムモジュールの一般的な文脈で述べられるが、本開示は、他のプログラムモジュールと組み合わせて実施することもできることが当業者には認識されよう。本明細書に述べられた諸実施形態は組み合わせることができ、本開示の精神または範囲から逸脱せずに他の実施形態を使用してもよい。したがって、以下の詳細な説明は、限定的な意味で解釈するべきでなく、本発明の範囲は、添付の特許請求の範囲およびその等価物によって定義される。
【００１３】
本開示の諸原理によれば、共同オーサリングアプリケーションが、１つまたは複数のユーザーが編集操作（たとえばコンテンツおよび／またはメタデータの挿入、修正および／または削除）によって１つまたは複数のデータファイル（たとえばワード処理文書、プレゼンテーション文書、表計算文書、ピクチャまたは他の画像、音声ファイル、ソフトウェアアプリケーション、実行可能コードなど）を編集することができるオーサリング環境を提供する。それぞれのユーザーは、マスターコピーによって表されたデータファイルのバージョンに基づいて、データファイルのユーザーコピーを取得する。ユーザーは、データファイルのユーザーコピーを編集して、データファイルの新しいバージョンを作成し、新しいバージョンをマスターコピーに周期的に同期させることができる。
【００１４】
本明細書では、用語同期は、データファイルのマスターコピーとデータファイルのユーザーコピーとの間で１つまたは複数のバージョン更新を送りかつ／または受け取って、データファイルの共通のバージョンを作成することを指す。たとえば、それぞれのユーザーは、データファイルの新しいバージョンを表すバージョン更新をマスターコピーに周期的に送ることができ、マスターコピーの現在のバージョンを表すバージョン更新（たとえば他のユーザーによって実施された編集を反映し得る）をマスターコピーから周期的に受け取ることができる。
【００１５】
上記に簡潔に述べられたように、本開示の実施形態は、共同環境内でデータファイルを同期させるときに生じる編集競合をユーザーが解決することを可能にすることを対象にする。一般に、ユーザーコピーが取得されるときと、ユーザーコピーがマスターコピーに同期されるときの間、または同期間にデータファイルのマスターコピーが変化する（たとえば、マスターコピーに対して編集操作が実施される）場合に、編集競合が生じることがある。マスターコピーへのこうした変更は、本明細書では「介在する変更」と呼ばれる。
【００１６】
本明細書では、データファイルのユーザーコピーに対して実施された編集操作は、その編集操作が、マスターコピーに行われた介在する変更に干渉する場合（すなわち、またはその逆の場合）に、編集競合をもたらす。たとえば、ユーザーがデータファイルのユーザーコピー内で編集操作を実施して、介在する変更によってデータファイルのマスターコピー内で削除された第１のデータユニットを修正する場合、第１のデータユニットの修正をもたらす編集操作は、マスターコピー内の第１のデータユニットの削除をもたらす編集操作と競合する。
【００１７】
次に図面を参照すると、図１は、本開示の発明の態様の実施例である特徴を有する例示的なオーサリングシステム１００を示している。オーサリングシステム１００は、データファイル（たとえばワード処理文書、プレゼンテーション文書、表計算文書、ピクチャまたは他の画像、音声ファイル、ソフトウェアアプリケーション、実行可能コードなど）のマスターコピー１５０を格納する記憶装置１２０を含む。ある実施形態では、記憶装置１２０は、１つまたは複数の記憶装置（たとえば記憶装置のネットワーク）を含むことができる。別の実施形態では、記憶装置１２０は、１つまたは複数のコンピューティング装置を含むことができる。
【００１８】
オーサリングシステム１００は、記憶装置１２０に通信可能に結合され得る少なくとも１つのユーザーコンピューティング装置１１０をも含む。本明細書では、用語ユーザーコンピューティング装置１１０は、データファイルのマスターコピー１５０からデータファイルのユーザーコピー１５５を取得し作成するように構成されたいずれかの装置を含む。本明細書では、用語データファイルのオーサリングは、編集操作によってデータファイルを作成し、かつ／またはデータファイルを編集することを含み得る。ユーザーコンピューティング装置１１０はそれぞれ、マスターコピー１５０に基づいてデータファイルのユーザーコピー１５５を作成することによってデータファイルを作成することができる。ユーザー装置１１０は、記憶装置１２０に通信可能に結合されるとき（すなわちオンライン）、または記憶装置１２０から切断されているとき（すなわちオフライン）、ユーザーコピー１５５を編集することができる。
【００１９】
データファイルのユーザーコピー１５５は、ユーザーコンピューティング装置１１０が記憶装置１２０に通信可能に結合しており（すなわちオンライン）、マスターコピー１５０に組み込まれ、それによって他のユーザーコンピューティング装置と共有されるべき１つまたは複数の更新を記憶装置１２０に周期的に送る場合に同期させることができる。ユーザーコピー１５５の同期は、他のユーザーコンピューティング装置を発生元とする、マスターコピー１５０からの更新を記憶装置１２０から周期的に取得することをも含む。ユーザーコンピューティング装置１１０は、オフラインであるとき、記憶装置１２０、およびしたがって他のユーザーコンピューティング装置に同期しない。
【００２０】
データファイルのユーザーコピーをマスターコピーに同期させることに関する追加の詳細は、２００７年１１月９日に出願された同時係属出願の特許文献１、名称「Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ａｕｔｈｏｒｉｎｇ」において見ることができ、同特許の開示全体を参照により本明細書に組み込む。ユーザーのコンピューティング装置がオフラインであるときの同期に関する追加の詳細は、２００７年１２月１４日に出願された同時係属出願の特許文献２、名称「Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ａｕｔｈｏｒｉｎｇ  Ｍｏｄｅｓ」において見ることができ、同特許の開示全体を参照により本明細書に組み込む。
【００２１】
図１に示された実施例では、４つのユーザーコンピューティング装置１１０Ａ、１１０Ｂ、１１０Ｃおよび１１０Ｄが、記憶装置１２０に通信可能に結合されている。しかし、他の実施形態では、任意の数のユーザーコンピューティング装置１１０が、記憶装置１２０に結合されてよい。示された実施例では、各ユーザーコンピューティング装置１１０Ａ、１１０Ｂ、１１０Ｃ、１１０Ｄは、ユーザーコンピューティング装置のユーザーによって生成された更新を記憶装置１２０に送ることができ、他のユーザーコンピューティング装置のユーザーによって生成された更新を記憶装置１２０に要求することができる。
【００２２】
ユーザーコンピューティング装置１１０Ａ、１１０Ｂ、１１０Ｃ、１１０Ｄは、記憶装置１２０とは異なる装置であってもよいし、または記憶装置１２０上で実施されたそれぞれ異なるユーザーアカウントを含んでもよい。ある実施形態では、あるデータファイルのための記憶装置１２０として働く装置が、異なるデータファイルのためのユーザーコンピューティング装置１１０として働くことができ、また逆の場合もそうである。ある実施形態では、記憶装置１２０は、サーバコンピューティング装置であってよく、ユーザーコンピューティング装置１１０Ａ、１１０Ｂ、１１０Ｃ、１１０Ｄは、クライアントコンピューティング装置であってよい。
【００２３】
本開示の態様によれば、データファイルへの更新は、コンテンツ更新および／またはメタデータ更新を含む。本明細書では、用語コンテンツ更新は、データファイルの実質的なコンテンツに対して行われる任意の編集操作を指す。たとえば、ワード処理文書のコンテンツ更新は、追加された段落（すなわち、またはその部分）、削除された段落（すなわち、またはその部分）、修正された段落（すなわち、またはその部分）、ならびに表、チャート、画像または他のこうしたオブジェクトへの追加、削除および／または変更を含んでよい。別の実施形態では、プレゼンテーション文書のコンテンツ更新は、追加され、削除され、かつ／または修正されたピクチャ、テキスト、アニメーション、音声および他のこうしたデータオブジェクトを含んでよい。
【００２４】
本明細書では、用語メタデータ更新は、データファイルのメタデータに行われる任意の編集操作を指す。メタデータの非限定な例には、コンテンツロック、プレゼンス情報および他のこうしたデータが含まれる。プレゼンス情報は、どのユーザーが文書を編集する意向を示しているかを示す。コンテンツロックは、ロックを所有しないユーザーがロック内のいずれかのコンテンツを編集することを抑制する。たとえば、コンテンツロックは、文書または他のデータファイルのどの部分が別のユーザーによって権利主張されているかを示すことによって編集競合を抑制することができる。一部の実施形態では、コンテンツロックは、別のユーザーによって権利主張されている文書の一部をユーザーが編集することを防止する（すなわち禁じる）ことができる。しかし、他の実施形態では、ユーザーは、コンテンツロックを中断し、データファイルの一部を編集することに決めることがある。こうした場合、オーサリングアプリケーションは、ロックされた部分を編集する場合に競合が発生し得ることをユーザーに警告することができる。
【００２５】
図２に示されたように、データファイルのコンテンツ１５２およびメタデータ１５４は、記憶装置１２０のメモリ１２５に格納することができる。一部の実施形態では、データファイルのメタデータ１５４は、コンテンツ１５２とは別々に格納することができる。たとえば、コンテンツ１５２は、データファイル１５０内に格納することができ、メタデータ１５４は、データファイル１５０とは別のテーブル（図示せず）に格納することができる。しかし、他の実施形態では、メタデータ１５４は、データファイル１５０内に格納することができる。データファイルのユーザーコピー１５５のコンテンツ１５２’およびメタデータ１５４’は、ユーザーコンピューティング装置１１０内のキャッシュ（図４のキャッシュ４２６参照）に格納することができる。ユーザーコンピューティング装置１１０内の１つまたは複数のオーサリングアプリケーション１３０は、データファイルのユーザーコピー１５５のコンテンツ１５２’および／またはメタデータ１５４’を処理し操作する。
【００２６】
一般に、ユーザーコンピューティング装置１１０は、コンテンツ更新をメタデータ更新とは別々に同期することができる。一部の実施形態では、メタデータ更新は、記憶装置１２０とユーザーコンピューティング装置１１０の間で自動的に同期されるが、各ユーザーコンピューティング装置１１０からのコンテンツ更新は、それぞれのユーザーの要求に応じて同期される。ある実施形態では、オーサリング環境１００は、編集競合が存在しない（すなわち、または解決されている）場合にしかコンテンツを同期できないが、既存の編集競合に関係なくメタデータ更新を同期させることができる。
【００２７】
ある実施形態では、編集競合が、マスターコピーから受け取られたコンテンツ更新から生じることがある。こうした実施形態では、ユーザーコピー１５５のコンテンツ１５２’および／またはメタデータ１５４’への変更は、マスターコピー１５０のコンテンツ１５２への介在する変更に干渉する。こうした編集競合は、本明細書では、マージ可能な競合と呼ばれる。たとえば、ある実施形態では、同じデータユニットが、同期間で、データファイルのユーザーコピーとマスターコピーにおいてそれぞれ異なるやり方で編集されていることがある。別の実施形態では、データユニットは、ユーザーコピー１５５内のデータユニットに対して得られたコンテンツロックがマスターコピー１５０に同期される前にマスターコピー１５０内で編集されていることがある。
【００２８】
別の実施形態では、編集競合はマスターコピー１５０から受け取られたメタデータ更新から生じることがある。こうした実施形態では、ユーザーコピー１５５のコンテンツ１５２’および／またはメタデータ１５４’への変更は、マスターコピー１５０のメタデータ１５４への介在する変更（たとえばコンテンツロックの追加）に干渉する。こうした編集競合は、本明細書ではマージ不可能な競合と呼ばれる。たとえば、ユーザー装置１１０は、データファイルのマスターコピー１５０から、ユーザーコピー１５５内の修正されたコンテンツが別のユーザーによって既にロックされていることを示すメタデータ更新を受け取ることがある。
【００２９】
ある実施形態では、マスターコピー１５０への介在する変更に干渉する、データファイルのユーザーコピー１５５のメタデータ１５４’への変更が、マスターコピー１５０への介在する変更によって上書きされる。たとえば、記憶装置１２０は、第１のユーザー装置１１０Ａ（図１）から、データファイルの第１のデータユニットへのコンテンツロックを要求するメタデータ更新を受け取り、マスターコピー１５０の対応する第１のデータユニットが第２のユーザー装置１１０Ｂ（図１）に対して既にロックされていると決定する場合、記憶装置１２０は、第１のユーザー装置１１０Ａのロック要求を否定する。
【００３０】
図３は、オーサリングアプリケーションが図２のユーザーコピー１５５などのデータファイルのユーザーコピーを作成するための例示的なオーサリングプロセス３００の動作フローを示すフローチャートである。オーサリングプロセス３００は、開始モジュール３０２で初期化され開始し、作成操作３０４に進む。一般に、作成操作３０４は、データファイルのユーザーコピーを編集する。ある実施形態では、作成操作３０４は、（たとえば記憶装置からの）既存のデータファイルのマスターコピーに基づいてデータファイルのユーザーコピーを取得する。別の実施形態では、作成操作３０４は、新しいデータファイルを作成し編集し、（たとえば周期的に、または編集の完了時に）データファイルのマスターコピーを生成し、データファイルのマスターコピーを（たとえば記憶装置内に）格納する。
【００３１】
受信操作３０６は、オーサリングアプリケーション上で、データファイルのマスターコピーに行われた介在する変更を示す更新を得る。たとえば、ある実施形態では、受信操作３０６は、データファイルを作成する１つまたは複数の他のユーザーによってマスターコピーのコンテンツに行われるどんな介在する変更をも示すコンテンツ更新を得る。別の実施形態では、受信操作３０６は、データファイルを作成する１つまたは複数の他のユーザーによってマスターコピーのメタデータに行われるどんな介在する変更をも示すメタデータ更新を得る。別の実施形態では、受信操作３０６は、コンテンツ更新とメタデータ更新の両方を得る。
【００３２】
ある実施形態では、受信操作３０６は、所定の間隔でマスターコピーから更新を受け取る。別の実施形態では、受信操作３０６は、マスターコピーに対して編集の閾値量が実施されたとき、マスターコピーから更新を受け取る。別の実施形態では、受信操作３０６は、更新の要求に応答してマスターコピーから更新を受け取る。たとえば、受信操作３０６は、データファイルを保存する前にデータファイルを更新するために、マスターコピーに更新を要求してよい。こうした実施形態では、受信操作３０６は、データファイルを同期させる命令がユーザーから受け取られるとき、マスターコピーに更新を要求する。
【００３３】
更新操作３０８は、（たとえば介在する変更を文書のユーザーコピーへとマージすることによって）介在する変更を文書のユーザーコピー内にインスタンス化する。ある実施形態では、更新操作３０８は、介在するコンテンツ変更とは異なるやり方で、介在するメタデータ変更をインスタンス化する。ある実施形態では、更新操作３０８は、コンテンツ更新およびメタデータ更新を自動的にインスタンス化することができる。別の実施形態では、更新操作３０８は、メタデータ更新を自動的にインスタンス化することができ、ユーザーの要求に応じてコンテンツ更新をインスタンス化してもよい。たとえば、更新操作３０８は、ボタンまたは他のインターフェースツールを選択することによってインスタンス化できる更新の使用可能性を示すボタンまたは他のインターフェースツールをユーザーに提示してよい。
【００３４】
更新操作３０８は、いずれかの編集競合が存在するかどうか判断することもできる。一部の実施形態では、更新操作３０８は、編集競合が識別されるかどうかによって異なるやり方で、介在する変更をインスタンス化することができる。たとえば、ある実施形態では、更新操作３０８は、編集競合が識別されるときにコンテンツ更新のインスタンス化を抑止し得るが、編集競合の存在に拘らずメタデータ更新を自動的にインスタンス化し続けてよい。有利には、編集競合の存在に拘らずメタデータ更新を同期させることによって、さらなる編集競合の発生を緩和することができる。たとえば、ロックデータの同期は、それぞれ異なるユーザーによって同じデータユニットを同時編集することを抑止することができる。
【００３５】
同期操作３１０は、データファイルのユーザーコピーに行われた変更を示す更新をマスターコピーに転送することによって、ユーザーコピーをマスターコピーに同期させようと試みる。ある実施形態では、同期操作３１０は、データファイルを共同作成する他のユーザーに配布するために更新を転送する。同期操作３１０は、ユーザーコピーとマスターコピーの間の編集競合が識別されない場合は、ユーザーコピーをマスターコピーとして格納する（すなわち、マスターコピーに上書きする）にすぎない。ある実施形態では、同期操作３１０は、マスターコピーの最も最近のバージョンを取得し、ユーザーコピーとマスターコピーの最も最近のバージョンとの間に編集競合が存在するかどうか判断する。
【００３６】
本開示の態様によれば、同期操作３１０は、ユーザーの裁量で編集競合が識別された後に編集競合の解決をユーザーがいつでも開始することを可能にしてよい。同期操作３１０は、１つまたは複数の編集競合が存在すると確認された場合でもデータファイルのユーザーコピーをユーザーが自由に編集することを可能にしてよい。ある実施形態では、同期操作３１０は、ユーザーから隠された編集競合を有するユーザーコピーを編集し続けてよい。別の実施形態では、同期操作３１０は、ユーザーに提示されている編集競合を有するユーザーコピーを編集し続けてよい。１つまたは複数の編集競合の存在に拘らずユーザーコピーの編集が継続される場合、以下により詳細に論じられるように、ユーザーコピーへの変更を示すコンテンツ更新を、同期のためにマスターコピーに転送するのではなく、編集競合が解決されるまでローカルに格納することができる。
【００３７】
同期操作３１０は、コンテンツ更新とは異なるやり方でメタデータ更新を同期させてよい。たとえば、ある実施形態では、同期操作３１０は、すべての編集競合が解決されている場合にだけコンテンツ更新を転送することができ、編集競合が解決されたかどうかに拘らずメタデータ更新を転送してよい。上述されたように、編集競合の存在に拘らずメタデータ更新を同期させることによって、さらなる編集競合の発生を緩和することができる。さらに、編集競合が存在する場合にコンテンツ更新の同期を止めることによって、データファイルのマスターコピーに編集競合が持ち込まれることを抑制することができる。オーサリングプロセス３００は、停止モジュール３１２で完了し終了する。
【００３８】
一般に、本開示の諸原理による発明の態様の実施例である特徴を有するオーサリング環境は、ユーザーコンピューティング装置（たとえばパーソナルコンピューター、サーバコンピューター、ノート型コンピューター、ＰＤＡ、スマートフォン、または他のこうしたコンピューティング装置）上で実施することができる。オーサリング環境を実施し、図３のオーサリングプロセス３００などのオーサリングプロセスを実施するように構成されたユーザーコンピューティングシステム４００の非限定的実施形態について、図４を参照して本明細書に述べられる。
【００３９】
図４で、本開示の諸原理を実施するための例示的なコンピューティングシステム４００は、ユーザーコンピューティング装置４１０などのユーザーコンピューティング装置を含む。基本の構成では、ユーザーコンピューティング装置４１０は一般に、システムメモリ４２０に格納されたアプリケーションおよびプログラムを実行するための少なくとも１つの処理ユニット４１５を含む。コンピューティング装置９１０の正確な構成およびタイプに応じて、システムメモリ４２０には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または他のメモリ技術が含まれ得る。
【００４０】
システムメモリ４２０は一般に、コンピューティング装置４１０の動作を制御するのに適した、ＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮ社、ワシントン州ＲｅｄｍｏｎｄからのＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなど、オペレーティングシステム４２２を格納する。システムメモリ４２０は、文書のユーザーコピー４２７が格納され得るデータファイルキャッシュ４２６をも含んでよい。データファイルのメタデータ４２９もまた、ユーザーキャッシュ４２６内に格納することができる。
【００４１】
システムメモリ４２０は、データファイルを作成し編集するためのオーサリングアプリケーション４２４など、１つまたは複数のソフトウェアアプリケーションを格納することもできる。本開示の諸原理による文書の作成に適したオーサリングアプリケーション４２４の非限定的な一例は、ＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮ社、ワシントン州ＲｅｄｍｏｎｄからのＭＩＣＲＯＳＯＦＴ（登録商標）ＯＦＦＩＣＥ  ＷＯＲＤオーサリングソフトウェアである。オーサリングアプリケーションの他の非限定的な例には、ＰＯＷＥＲＰＯＩＮＴ（登録商標）プレゼンテーションソフトウェアおよびＶＩＳＩＯ（登録商標）描画およびダイヤグラミングソフトウェアが含まれ、これらもまたＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮ社、ワシントン州Ｒｅｄｍｏｎｄからのものである。
【００４２】
コンピューティング装置４１０は、データを入力し操作するためのキーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置（群）４３０を有することもできる。表示画面、スピーカ、プリンタなどの出力装置（群）４３５も含まれ得る。これらの出力装置４３５は、当技術分野ではよく知られており、本明細書では詳細に論じる必要はない。
【００４３】
コンピューティング装置４１０は、装置４１０が分散コンピューティング環境（たとえばイントラネットまたはインターネット）内でインターネットを介して他のコンピューティング装置、たとえば図１の記憶装置１２０と通信することを可能にする通信接続４４０を含むこともできる。限定のためではなく、例を挙げると、通信装置媒体４４０には、有線ネットワークや直接有線接続などの有線媒体、音響、ＲＦ、赤外線などの無線媒体、および他の無線媒体が含まれる。
【００４４】
図５は、図３の同期操作３１０を実施するための例示的な同期プロセス５００の動作フローチャートを示すフローチャートである。同期プロセス５００は、開始モジュール５０２で初期化され開始し、取得操作５０４に進む。取得操作５０４は、マスターコピーからバージョン更新を得る。たとえば、ある実施形態では、取得操作５０４は、マスターコピーにバージョン更新を要求してよい。別の実施形態では、受信操作５０４は、マスターコピーから、（たとえば所定間隔で）周期的なバージョン更新を受け取ってよい。
【００４５】
識別操作５０６は、マスターコピーの現在のバージョンとユーザーコピーの間に編集競合が存在するかどうか判断する。より具体的には、識別操作５０６は、マスターコピーへのいずれかの介在する変更と、最も最近の同期以来（すなわち、またはユーザーコピーが取得されて以来）ユーザーコピーに対して実施されたいずれかの編集操作が互いに干渉するかどうか判断する。
【００４６】
マージ操作５０８は、ユーザーコピーとマスターコピーを組み合わせて、データファイルのマージされたバージョンにし、マージされたバージョンをユーザーに提示する。ある実施形態では、マージ操作５０８は、介在する変更をデータファイルのユーザーコピーに組み込む。別の実施形態では、マージ操作５０８は、ユーザー変更をデータファイルのマスターコピーに組み込む。別の実施形態では、マージ操作５０８は、介在する変更およびユーザー変更を、マスターコピーの最も最近に同期されたバージョン（すなわちユーザーによって取得され編集されたマスターコピーのバージョン）に組み込む。
【００４７】
第１の決定モジュール５１０は、いずれかの編集競合が識別操作５０６によって識別されたかどうか、および／または以前に受け取られた更新からのいずれかの識別された編集競合が未解決のままであるかどうかに基づいて、同期プロセス５００のフローを分割する。第１の決定モジュール５１０が少なくとも１つの編集競合が識別されたと決定する場合は、警告操作５１２は、編集競合の存在をユーザーに示す。たとえば、警告操作５１２は、１つまたは複数の編集競合の存在を示すメッセージをユーザーに提示してよい。ある実施形態では、警告操作５１２は、未解決の識別された編集競合を有することの結果（たとえば、編集競合が解決されるまでユーザーコピーのマスターコピーへの完全な同期が不可能であること）を示すこともできる。
【００４８】
第２の決定モジュール５１４は、識別された編集競合をいつレビューし解決するかユーザーが選ぶことを可能にする。示された実施例では、第２の決定モジュール５１４は、編集競合をレビューし、または編集競合を見ないでデータファイルのユーザーコピーを編集し続けるオプションをユーザーに提示する。継続的な編集のオプションがユーザーによって選択されたと第２の決定モジュール５１４が決定する場合は、継続操作５１６が、本明細書でより詳細に論じられるように、ユーザーがデータファイルを自由に編集することを可能にする。
【００４９】
しかし、ユーザーによってレビューオプションが選択されたと第２の決定モジュール５１４が決定する場合は、レビュー操作５１８は、明細書でより詳細に論じられる解決プロセスを使用してユーザーが編集競合をレビューし、任意選択で解決することを可能にする。レビュー操作５１８が完了するとき、同期プロセス５００は、第１の決定モジュール５１０に戻って、いずれかの編集競合が未解決のままかどうか判断する。上述された操作フローは、第１の決定モジュール５１０が編集競合が存在しないと決定するまで繰り返す。
【００５０】
第１の決定モジュール５１０が編集競合が存在しないと決定する場合は、第３の決定モジュール５２０が、マスターコピーからすべての介在する変更が得られたかどうか判断し、ユーザーコピー内にインスタンス化する。たとえば、第３の決定モジュール５２０は、最も最近の更新以来マスターコピーに対していずれかの介在する変更が行われたかどうか判断してよい。ある実施形態では、第３の決定モジュール５２０は、マスターコピーの現バージョンのバージョン番号を、最も最近受け取られた更新によって表されたマスターコピーのバージョンのバージョン番号と比較する。
【００５１】
第３の決定モジュール５２０が追加の介在する変更が存在する（すなわち最も最近受け取られた更新がマスターコピーの現在の状態を反映していない）と決定する場合は、同期プロセス５００は、取得操作５０４に戻り、同期プロセス５００は、再び開始する。しかし、第３の決定モジュール５２０が追加の介在する変更が存在しない（すなわち最も最近受け取られた更新がマスターコピーの現在の状態を反映している）と決定する場合は、表示操作５２２は、編集競合が解決されたことの表示を提供する。たとえば、ある実施形態では、表示操作５２２は、すべての編集競合が解決されたことを示すメッセージをユーザーに表示してよい。別の実施形態では、表示操作５２２は、図形、アイコン、または編集競合が解決されたことを示す他の表示をユーザーに表示してよい。格納操作５２４は、データファイルのマスターコピーをユーザーコピーで上書きする。同期プロセス５００は、停止モジュール５２６で完了し終了する。
【００５２】
図６は、図５の継続操作５１６を実施するための例示的な編集プロセス６００の動作フローを示すフローチャートである。編集プロセス６００は、開始モジュール６０２で初期化され開始し、受信操作６０４に進む。受信操作６０４は、ユーザーから編集命令を得る。たとえば、受信操作６０４は、図４の入力装置４３０など、入力装置によってユーザー入力を受け取ることができる。
【００５３】
編集命令は、データファイルのユーザーコピーのマージされたバージョンのコンテンツおよび／またはメタデータへの変更を示す。たとえば、編集命令は、新しいデータファイルのデータユニット（たとえば段落、列、表、スライド、図形など）を追加、削除または修正すべきであることを示してよい。編集命令は、メタデータの変更（たとえばコンテンツロックの変更など）を示すこともできる。実施操作６０６は、文書の新しいコピーに対する編集操作を実施する。
【００５４】
決定モジュール６０８は、ユーザーが編集を停止する要望を示したかどうか判断する。たとえば、第１の実施形態では、決定モジュール６０８は、ユーザーが編集競合を解決することに決めたと決定し得る。別の実施形態では、決定モジュール６０８は、データファイルの新しいコピーを閉じ、またはデータファイルの新しいコピーをマスターコピーに同期させることに決めたと決定する。別の実施形態では、決定モジュール６０８は、データファイルの新しいコピーを編集し続けることに決めたと決定し得る。
【００５５】
決定モジュール６０８がユーザーがデータファイルを編集し続けることに決めたと決定する場合は、編集プロセス６００は、受信操作６０４に循環して戻り、再び開始する。しかし、決定モジュール６０８がユーザーがデータファイルの編集を止めることに決めたと決定する場合は、保存操作６１０が、ユーザーによって行われたどんな変更をも格納する。一般に、保存操作６１０は、ユーザーによって行われたどんな変更をも含むデータファイルのマージされたバージョンを、データファイルのマスターコピー以外の位置に格納する。ある実施形態では、保存操作６１０は、データファイルのマージされたバージョンをローカルメモリ（たとえばローカルキャッシュ）に格納する。別の実施形態では、保存操作６１０は、データファイルのマージされたバージョンを、マスターコピーとは別の記憶装置内に格納してよい。編集プロセス６００は、停止モジュール６１２で完了し終了する。
【００５６】
図７は、１つまたは複数の編集競合をレビューし、任意選択で解決するための例示的なレビュープロセス７００の動作フローを示すフローチャートである。たとえば、レビュープロセス７００は、図５のレビュープロセス５１８を実施するある例示的なプロセスである。レビュープロセス７００は、開始モジュール７０２で初期化され開始し、表示操作７０４に進む。表示操作７０４は、編集競合をユーザーに提示する。ある実施形態では、編集競合は、データファイルのマージされたバージョンのコンテキスト内に提供される。
【００５７】
一部の実施形態では、表示操作７０４は、マスターコピーとユーザーコピーの両方から、すべての競合する編集を表示する。たとえば、ある実施形態では、表示操作７０４は、競合する編集操作の結果生じるコンテンツを、データファイルのユーザーコピーにマージして表示することができる。別の実施形態では、表示操作７０４は、競合する編集操作の結果生じるコンテンツを、データファイルのマスターコピーにマージして表示することができる。別の実施形態では、表示操作７０４は、競合する編集操作の結果生じるコンテンツを、いずれかの介在する変更の前のデータファイルのバージョンにマージして表示することができる。
【００５８】
ある実施形態では、競合する編集操作がデータファイル内の同じオブジェクト（たとえば文字、単語、段落、図形、スライド、セル、行、列など）に行われる場合、表示操作７０４は、両方の編集操作によって変換されたオブジェクトを表示する。別の実施形態では、表示操作７０４は、オブジェクトの２つのコピーを表示し、一方のコピーは、データファイルのマスターコピー内で見られたオブジェクトのバージョンを表し、もう一方のコピーは、データファイルのユーザーコピー内で見られたオブジェクトのバージョンを表す。
【００５９】
ある実施形態では、表示操作７０４は、競合するコンテンツを、データファイルのマージされたバージョンの競合しないコンテンツへの注釈として表示する。たとえば、ある実施形態では、マスターコピーまたはユーザーコピー内でデータファイルに加えられた競合するコンテンツは、競合しないコンテンツに追加されて、競合するコンテンツがデータファイルのあるバージョンに挿入されたことを示すように注釈が付けられ得る。別の実施形態では、マスターコピーまたはユーザーコピー内でデータファイルから削除された競合するコンテンツは、競合しないコンテンツに追加されて、競合するコンテンツがデータファイルのあるバージョン内で削除されたことを示すように注釈が付けられ得る。競合する編集の表示に関する追加の開示が、本明細書に提供される。
【００６０】
取得操作７０６は、ユーザーからオーサリング命令を受け取る。たとえば、取得操作７０６は、図４の入力装置４３０など、入力装置によってユーザー入力を受け取ってよい。第１の決定モジュール７０８は、編集競合をレビューし続けるのではなく、データファイルを自由に編集し続けることに戻させる命令をユーザーが与えたかどうか判断する。たとえば、ある実施形態では、第１の決定モジュール７０８は、本明細書でより詳細に開示されるトグルインターフェースをユーザーが選択したと決定してよい。別の実施形態では、第１の決定モジュール７０８は、競合する編集操作のうちの１つまたは複数を承諾または拒否させる命令をユーザーが与えたと決定してよい。
【００６１】
第１の決定モジュール７０８が、編集へと戻させる命令をユーザーが与えたと決定する場合は、レビュープロセス７００は、識別された編集競合が未解決のままでも、停止モジュール７１４で完了し終了する。第１の決定モジュール７０８が、編集へと戻させる命令をユーザーが与えていないと決定する場合は、実施操作７１０は、ユーザー命令を実施する。一般に、実施操作７１０は、ユーザーによって与えられた命令に従って各編集操作を承諾または拒否することができる。たとえば、ある実施形態では、実施操作７１０は、編集操作を承諾させる命令をユーザーが与える場合は、競合する編集操作をデータファイルのマージされたバージョン内にインスタンス化してよい。別の実施形態では、実施操作７１０は、データファイルのマージされたバージョンから、拒否された編集操作の影響を取り除いてよい。実施操作７１０の実施に関する追加の詳細について、本明細書に示される。
【００６２】
第２の決定モジュール７１２は、識別されたいずれかの編集競合が未解決のままかどうか判断する。ある実施形態では、第２の決定モジュール７１２は、編集競合が最も最近に識別されて以来、（たとえばマスターコピーから受け取られた更新によって、ユーザーによって実施された追加の編集操作によってなど）新しい編集競合が引き起こされているかどうか判断しない。より正確に述べると、第２の決定モジュール７１２は、既に識別された編集競合のうちのいずれかが未解決のままであるかどうか判断する。別の実施形態では、第２の決定モジュール７１２は、いずれかの新しい編集競合が存在するかどうか判断する。
【００６３】
第２の決定モジュール７１２が、少なくとも１つの識別された編集競合が未解決のままであると決定する場合は、解決プロセス７００は、第１の決定モジュール７０８に循環して戻る。しかし、第２の決定モジュール７１２が、識別された編集競合が解決されたと決定する場合は、解決プロセス７００は、停止モジュール７１４で完了し終了する。
【００６４】
一般に、図２のユーザー装置１１０上のオーサリングアプリケーション１３０など、ユーザー装置上のオーサリングアプリケーションによって表示されたユーザーインターフェースは、１つまたは複数の編集競合がオーサリングアプリケーションによって識別されたかどうかに基づいて変化し得る。一部の実施形態では、オーサリングアプリケーションは、編集競合の存在をユーザーに示す警告を表示することができる。たとえば、ある実施形態では、ステータスバーが、編集競合の存在を示し得る。別の実施形態では、編集競合の結果を示す表示を提供するメッセージボックスをユーザーに表示することができる。たとえば、メッセージボックスは、識別された編集競合が解決されるまでコンテンツを同期できないことを示してよい。
【００６５】
さらに、編集競合が識別されるとき、オーサリングアプリケーションのユーザーインターフェースは、ユーザーの裁量で編集競合を示すことと編集競合を隠すことの間で切り換えるように構成されてよい。一般に、オーサリングアプリケーションのユーザーインターフェースは、編集競合が示される場合と編集競合が隠される場合の両方でデータファイルを自由に編集することを可能にする。ユーザーインターフェースは、ユーザーが編集競合を見ることに決める場合に編集競合のレビューおよび解決を可能にする追加の機能性を可能にする。
【００６６】
図８〜図１０は、データファイルのオーサリングおよび同期を可能にするためにオーサリングアプリケーションがユーザーに表示できる例示的なユーザーインターフェースを示す概略ブロック図である。図８は、未解決の編集競合が識別されていない場合にユーザーに表示される例示的なユーザーインターフェース８００を示している。たとえば、オーサリングアプリケーションは、図３の編集操作３０４が実施されているときにユーザーインターフェース８００を表示してよい。
【００６７】
ユーザーインターフェース８００は、データファイルのユーザーコピーが表示され得るオーサリングウィンドウ８１０を含む。ある実施形態では、オーサリングウィンドウ８１０は、ユーザーコピーのコンテンツが表示される編集領域８１２を含む。データファイルのメタデータ（たとえばコンテンツロック）もまた、編集領域８１２に表示されてよい。オーサリングアプリケーションのユーザーは、編集領域８１２内のコンテンツと対話して、表示されたコンテンツを追加、削除または修正することができる。
【００６８】
図９は、少なくとも１つの編集競合が識別された場合にユーザーに表示される例示的なユーザーインターフェース８５０を示している。たとえば、オーサリングアプリケーションは、ユーザーが競合を解決するのではなくデータファイルを編集し続けることに決める場合にユーザーインターフェース８５０を表示してよい（たとえば図５の第１の決定モジュール５１６参照）。ある実施形態では、ユーザーインターフェース８５０は、図６の編集プロセス６００が実施されているときに表示される。
【００６９】
ユーザーインターフェース８５０は、データファイルのコンテンツおよびメタデータが表示され、かつ／または編集され得る編集領域８１２を有する図８のオーサリングウィンドウ８１０を含む。ユーザーインターフェース８５０は、トグルインターフェース８１５をも含む。一般に、ユーザーによってトグルインターフェース８１５が選択されると、ユーザーインターフェースは、識別された編集競合を表示する。ある実施形態では、トグルインターフェース８１５の選択はまた、競合解決インターフェースをアクティブにする。
【００７０】
図１０は、少なくとも１つの編集競合が識別されており、識別された編集競合をレビューすることにユーザーが決めた場合にユーザーに表示される例示的なユーザーインターフェース９００を示している。ユーザーインターフェース９００は、識別された編集競合の解決を可能にすることもできる。たとえば、オーサリングアプリケーションは、ユーザーが編集競合をレビューすることに決める場合にユーザーインターフェース９００を表示してよい（図５の第１の決定モジュール５１４参照）。したがって、ある実施形態では、ユーザーインターフェース９００は、図７のレビュープロセス７００が実施されているときに表示される。
【００７１】
ユーザーインターフェース９００は、識別された編集競合をユーザーが隠すためのトグルインターフェース９１５をも含む。ある実施形態では、トグルインターフェース９１５の選択はまた、競合解決インターフェース９２０を非アクティブにする。たとえば、トグルインターフェース９１５を選択すると、ユーザーインターフェース９００ではなく、図９のユーザーインターフェース８５０がユーザーに表示されることになり得る。
【００７２】
ユーザーインターフェース９００は、データファイルのコンテンツおよびメタデータが表示され、かつ／または編集され得る編集領域９１２を有するオーサリングウィンドウ９１０を含む。編集領域９１２は、識別された編集競合、または識別された編集競合の結果生じるコンテンツをも表示する。たとえば、ある実施形態では、編集領域９１２は、ユーザーコピーをマスターコピーとマージすることによって生成されたデータファイルのマージされたバージョンを表示することができる。
【００７３】
一部の実施形態では、編集領域９１２内に表示された、識別された編集競合は、競合する編集操作の結果生じるコンテンツへの注釈によって示される。ある実施形態では、注釈は、結果生じるコンテンツがどのように競合するかを示す。たとえば、ある実施形態では、コンテンツの一部（たとえば単語、段落、表、列、図形など）に、ユーザーコピーおよび／またはマスターコピー内でその部分が挿入、削除および／または修正されたことを示すように注釈を付けることができる。こうした挿入、削除および／または修正を示す例示的な注釈には、所定の色、取消し線、下線、所定の不透明度、強調表示または他のこうした表示が含まれ得る。
【００７４】
ユーザーインターフェース９００は、識別された編集競合に関する情報をオーサリングアプリケーションがユーザーに伝達できる概要ウィンドウ９２０をも含んでよい。一部の実施形態では、概要ウィンドウ９２０は、概要情報領域９２２を含むことができる。たとえば、概要情報領域９２２は、オーサリングアプリケーションによって識別され、未解決のままである編集競合の数を表示してよい。概要情報領域９２２は、マージ可能およびマージ不可能な編集競合の数を示すこともできる。ある実施形態では、概要情報領域９２２は、編集競合が解決されるときに、リフレッシュ（すなわち更新）されてよい。
【００７５】
一部の実施形態では、概要ウィンドウ９２０は、どんな未解決の編集競合のリスト９２４をも表示することもできる。たとえば、ある実施形態では、すべての競合するコンテンツ（たとえばユーザーコピーまたはマスターコピー内で追加、削除および／または修正されたコンテンツ）が概要ウィンドウ９２０内にリストされる。ある実施形態では、リストされたコンテンツは、コンテンツの発生元（たとえばユーザーコピーまたはマスターコピー）を示すように注釈が付けられてよい。別の実施形態では、リストされたコンテンツは、コンテンツをもたらすあるタイプの編集アクション（たとえば修正、挿入、削除など）を示すように注釈が付けられてよい。
【００７６】
ユーザーインターフェース９００は、表示された編集競合をユーザーが解決することを可能にするように構成されてよい。たとえば、ユーザーインターフェース９００は、表示された１つまたは複数の編集競合の解決命令をユーザーが与えることを可能にすることができる。ある実施形態では、ユーザーインターフェース９００は、表示された編集競合の解決命令をユーザーが順序に従って与えることを可能にする。別の実施形態では、ユーザーインターフェース９００は、ユーザーによって選択された、いずれかの表示された編集競合の解決命令をユーザーが与えることを可能にする。
【００７７】
解決命令の例には、所与の編集操作をデータファイルのマージされたバージョン内にインスタンス化すべきことをユーザーが示すための承諾命令、およびデータファイルのマージされたバージョンに対して編集操作を実施すべきでないことをユーザーが示すための拒否命令が含まれる。解決命令の他の例には、現在選択されている編集競合を解決せずに次の編集競合にユーザーが進むための次へ進むの命令、および現在選択されている編集競合を解決せずに前の編集競合にユーザーが戻るための前へ戻るの命令が含まれ得る。
【００７８】
一部の実施形態では、ユーザーは、１つまたは複数の解決インターフェース９３０と対話することによって解決命令を提供することができる。解決インターフェースの非限定的な例には、ボタン（たとえば承諾ボタン、拒否ボタン、次へのボタンなど）、ドロップダウンメニュー、タブおよび他のこうしたインターフェースツールが含まれる。ある実施形態では、ユーザーインターフェース９００は、編集競合が表示されるときに１つまたは複数の解決インターフェースをユーザーに表示する。別の実施形態では、ユーザーインターフェース９００は、競合するコンテンツがユーザーによって選択されるときに１つまたは複数の解決インターフェースをユーザーに表示する。
【００７９】
たとえば、ユーザーは、競合する編集操作のうちの１つの結果生じる編集領域９１２内のコンテンツを（たとえばカーソルまたは他の入力インターフェースによって）選択し、または解決インターフェースと対話することによって解決命令を与えることができる。他の実施形態では、ユーザーは、概要ウィンドウ９２０内に表示された編集操作を選択し、解決命令の提供または選択のために解決インターフェースと対話することによって解決命令を与えることができる。
【００８０】
たとえば、図１１で、ユーザーインターフェース９００は、概要ウィンドウ９２０内のリスト９２４から編集競合９２５が選択されるときに表示される解決インターフェース９３０を含む。図１１に示された解決インターフェース９３０は、承諾ボタン９３２と拒否ボタン９３４とを含む。しかし、他の実施形態では、解決インターフェース９３０は、任意の所望のインターフェースツールを含んでよい。図１１に示された実施例では、解決インターフェース９３０は、ポップアップウィンドウとして表示される。しかし、他の実施形態では、解決インターフェース９３０は、ツールバーもしくはその一部、ドロップダウンメニューもしくはその一部、または他のこうした表示インターフェースを含んでよい。
【００８１】
図１２は、ユーザーによって与えられた解決命令をオーサリングアプリケーションが実施する例示的な実施プロセス１０００の動作フローを示すフローチャートである。実施プロセス１０００は、開始モジュール１００２で初期化され開始し、取得操作１００４に進む。取得操作１００４は、競合するコンテンツを解決するための解決命令をユーザーから受け取る。たとえば、取得操作１００４は、競合するコンテンツの所与の部分がユーザーによって選択されており、特定のボタン、メニューオプションまたは他の解決インターフェースツールがユーザーによって選択されていると決定してよい。
【００８２】
決定モジュール１００６は、解決命令が、選択された競合するコンテンツを承諾すべきと示すか、それとも拒否すべきと示すか判断する。決定モジュール１００６が、取得操作１００４が承諾命令を受け取ると決定する場合は、実施プロセス１０００は、承諾操作１００８に進む。しかし、決定モジュール１００６が、取得操作１００４が拒否命令を受け取ると決定する場合は、実施プロセス１０００は拒否操作１０１０に進む。承諾操作および拒否操作１００８、１０１０を実施するための例示的なプロセスに関する詳細について、図１３および図１４を参照して以下に論じられる。実施プロセス１０００は、停止モジュール１０１２で完了し終了する。
【００８３】
図１３は、承諾された編集操作をデータファイルのマージされたバージョン内にインスタンス化するための例示的な承諾プロセス１１００の動作フローを示すフローチャートである。承諾プロセス１１００は、開始モジュール１１０２で初期化され開始し、除去操作１１０４に進む。除去操作１１０４は、承諾されたコンテンツから、どんな注釈または他の表示をも取り除く。たとえば、どんな下線、取消し線、色付けまたは承諾されたコンテンツの他のこうした注釈もが、データファイルのマージされたバージョンから取り除かれる。
【００８４】
決定モジュール１１０６は、承諾されたコンテンツによって、データファイルにコンテンツおよび／またはフォーマットが追加されているかどうか判断する。たとえば、ある実施形態では、決定モジュール１１０６は、承諾されたコンテンツが文字、単語、表、列、図形またはデータファイルへの他のデータユニットを含むかどうか判断する。別の実施形態では、決定モジュール１１０６は、承諾されたコンテンツによってデータファイルにいずれかのフォーマット（たとえば太字、下線、フォントカラー、強調表示など）が追加されているかどうか判断する。
【００８５】
承諾された編集操作によってコンテンツおよび／またはフォーマットが追加されたと決定モジュール１１０６が決定する場合は、承諾プロセス１１００は、停止モジュール１１１０で完了し終了する。しかし、承諾された編集操作によってデータファイルからコンテンツおよび／またはフォーマットが取り除かれたと決定モジュール１１０６が決定する場合は、削除操作１１０８が、データファイルのマージされたバージョンからコンテンツおよび／またはフォーマットを削除する。承諾プロセス１１００は、削除操作１１０８の完了後、停止モジュール１１１０で完了し終了する。
【００８６】
図１４は、拒否された編集操作をデータファイルのマージされたバージョンから取り除き、またはその中で元に戻すための例示的な拒否プロセス１２００の動作フローを示すフローチャートである。拒否プロセス１２００は、開始モジュール１２０２で初期化され開始し、除去操作１２０４に進む。除去操作１２０４は、拒否された編集操作の結果生じるコンテンツからのどんな注釈または他の表示をも取り除く。たとえば、どんな強調、取消し線、色付け、またはコンテンツの他のこうした注釈もが、データファイルのマージされたバージョンから取り除かれる。
【００８７】
決定モジュール１２０６は、拒否された編集操作によってデータファイルにコンテンツおよび／またはフォーマットが追加されたであろうか判断する。たとえば、ある実施形態では、第４の決定モジュール１２０６は、拒否された編集操作によってデータファイルに文字、単語、行、セルまたは他のデータユニットもしくはコンテンツオブジェクトが追加されたであろうか判断する。別の実施形態では、決定モジュール１２０６は、拒否された編集操作によってデータファイルにいずれかのフォーマット（たとえば太字、下線、フォントカラー、強調表示など）が追加されたであろうか判断する。
【００８８】
拒否された編集操作によってデータファイルにコンテンツおよび／またはフォーマットが追加されなかったであろうと決定モジュール１２０６が判断する場合は、拒否プロセス１２００は、停止モジュール１２１０で完了し終了する。しかし、拒否された編集操作によってコンテンツおよび／またはフォーマットが追加されたであろうと決定モジュール１２０６が判断する場合は、削除操作１２０８が、データファイルのマージされたバージョンからコンテンツおよび／またはフォーマットを削除する。拒否プロセス１２００は、削除操作１２０８の完了後、停止モジュール１２２０で完了し終了する。
【００８９】
本開示の原理は、例示的な適用例をウォークスルーすることによってよりよく理解することができる。第１の例示的な適用例では、図１５〜図２２は、第１のユーザーがデータファイルのユーザーコピーをオンラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示している。第２の例示的な適用例では、図２３〜図２９は、第１のユーザーがデータファイルのユーザーコピーをオフラインで編集しているときにオーサリングアプリケーションによって表示される例示的なユーザーインターフェースへの変更を示している。
【００９０】
図１５で、オーサリングアプリケーションのユーザーインターフェース２０００は、データファイルのユーザーコピーのコンテンツを表示する編集領域２０１２と、コマンドオプションを提供するコマンドツールバー２０１６と、データファイルのユーザーコピーのステータスを示すステータスバー２０１８とを含む表示ウィンドウ２０１０を含んでいる。たとえば、ステータスバー２０１８は、データファイルのユーザーコピー内にインスタンス化するのにコンテンツ更新がいつ使用可能かを示してよい。ステータスバー２０１８は、編集競合がいつ識別されたかを示すこともできる。示された実施例では、ステータスバー２０１８は、データファイルのマスターコピーからコンテンツ更新が使用可能でないことを示している。
【００９１】
オーサリングアプリケーションは、たとえば、図３の例示的なオーサリングプロセス３００を使用してデータファイルのユーザーコピーを編集することを可能にする。示された実施例では、オーサリングアプリケーションは、第１のユーザーが表示ウィンドウ２０１０の編集領域２０１２内でデータファイルのユーザーコピーを自由に編集することを可能にする（図３の編集操作３０４参照）。図１５で、第１のユーザーは、編集領域２０１２に表示されたコンテンツの第１のデータユニットを編集している。第１のユーザーは、第１のデータユニット上にカーソル２０１９を配置して、第１のデータユニットの編集を可能にしている。第２のユーザーが、編集領域２０１２内で、コンテンツの第２のデータユニットへのロック２０２２を取得している。編集領域２０１２内に表示されたロック２０２２は、第１のユーザーが第２のデータユニットを自由に編集することを抑制する。
【００９２】
図１６で、第１のユーザーは、単語「ｄｏｇ」を「ｄｏｅ」に変更するように第１のデータユニットを編集している。ある実施形態では、単語「ｄｏｇ」を「ｄｏｅ」に変更することは、単語「ｄｏｇ」を削除する編集操作、および単語「ｄｏｅ」を追加する編集操作を提供することを含む。別の実施形態では、単語「ｄｏｇ」を「ｄｏｅ」に変更することは、文字「ｇ」を削除する編集操作、および文字「ｅ」を追加する編集操作を提供することを含む。他の実施形態では、他の編集操作を使用して、同じ結果を達成することができる。
【００９３】
ある実施形態では、第１のデータユニットを編集することによって、第１のデータユニットのロックを求める第１のユーザーによる要求をデータファイルのマスターコピーに送信することが開始される。別の実施形態では、第１のユーザーは、第１のデータユニットをロックさせる明示的な命令を与えることができる。たとえば、第１のユーザーは、第１のデータユニットを選択し、ユーザーインターフェース２０００上でロックオプションを選択してよい。したがって、図１６で、第１のユーザーによって所有されたロック２０２４は、第１のデータユニットの辺りに置かれている。示された実施例では、ロック２０２４は、第２のユーザーによって所有されたロック２０２２と区別されている。たとえば、第１のユーザーによって所有されたロック２０２４は、点線で表示されており、第２のユーザーによって所有されたロック２０２２は、実線で表示されている。第１のユーザーによって所有されたロックを他のユーザー所有のロックと区別することによって、第１のユーザーにデータユニットの編集を止めさせることなしに、第１のユーザーがどのデータユニットをロックしたか第１のユーザーが知ることを可能にすることができる。ある実施形態では、それぞれのユーザーが、互いに異なるロックを有することができる（たとえば、各ユーザーのロックは、互いに異なる色、網かけ、フォーマットなどを有し得る）。
【００９４】
図１６Ａでは、オーサリングアプリケーションは、データファイルのマスターコピーに行われた介在する変更を示す更新を得ている（図３の受信操作３０６参照）。ある実施形態では、オーサリングアプリケーションは、所定の時間間隔が経過した後、更新を受け取る。別の実施形態では、オーサリングアプリケーションは、ユーザーコピーをマスターコピーに同期させる要求に応答して更新を受け取る。この例示的な適応例のために、オーサリングアプリケーションは、所定の時間間隔の後に更新を自動的に受け取ったと仮定する。図１６Ａで、表示ウィンドウ２０１０のステータスバー２０１８は、更新が受け取られたことを示すように更新されている。
【００９５】
ある実施形態では、オーサリングアプリケーションは、マスターコピーからメタデータ更新を受け取る。別の実施形態では、オーサリングアプリケーションは、マスターコピーからコンテンツ更新を受け取る。例示的な適用例では、オーサリングアプリケーションは、メタデータ更新とコンテンツ更新の両方を受け取る。メタデータ更新は、第２のユーザーが第２のデータユニットへのロック２０２２を解放し、第１のデータユニットへのロックを取得していることを示す（図１７のロック２０２８参照）。この実施例では、第２のユーザーは、第１のユーザーの前に、第１のデータユニットへのロック要求をマスターコピーに同期させている。したがって、第２のユーザーに、第１のデータユニットへのロックが与えられている。メタデータ更新は、第３のユーザーが第３のデータユニットへの第３のロック２０２６を取得したことをも示している。コンテンツ更新は、第２のユーザーが第１のデータユニットを編集して、単語「ｌａｚｙ」を「ｌｉｖｅｌｙ」に変更したことを示している。
【００９６】
オーサリングアプリケーションは、更新を受け取るとき、ユーザーコピーと受け取られた更新の間にいずれかの編集競合が存在するかどうか判断する。編集競合が存在しない場合は、オーサリングアプリケーションは、メタデータ更新を自動的にインスタンス化する（図３の更新操作３０８参照）。例示的な適用例では、メタデータ更新は、第３のユーザーが第３のデータユニットへのロックを確立したことを示す。したがって、図１６Ａで、第３のロック２０２６は、第３のデータユニットの辺りに示されている。
【００９７】
しかし、ある実施形態では、メタデータ更新は、ユーザー変更と競合する場合、ユーザーがユーザーコピーをマスターコピーに同期させようと試みるまでインスタンス化されない。例示的な適用例では、メタデータ更新は、第２のユーザーが、第１のユーザーによる第１のデータユニットのロック要求と競合する第１のデータユニットへのロックを有していることを示す。したがって、第２のユーザーの第１のデータユニットへのロックは、ユーザーコピーへと自動的にはインスタンス化されない。別の実施形態では、どんな識別された編集競合もが解決されるまで、コンテンツロックの解放はインスタンス化されない。したがって、第２のユーザーの第２のデータユニットへのロック２０２２の解放は、ユーザーコピーへと自動的にはインスタンス化されない。
【００９８】
編集競合が存在しない場合は、オーサリングアプリケーションは、コンテンツ更新をいつデータファイルのユーザーコピー内にインスタンス化（たとえばマージ）すべきかユーザーが決定することをも可能にする（図３の更新操作３０８参照）。たとえば、オーサリングアプリケーションは、第１のユーザーが更新をインスタンス化させる命令を与えるためのインスタンス化インターフェースを提供してよい。インスタンス化インターフェースの非限定的な例には、ボタン、メニューオプションおよび他のインターフェースツールが含まれる。
【００９９】
しかし、オーサリングアプリケーションは、編集競合を識別する場合は、ユーザーに更新をユーザーコピー内にインスタンス化させないようにする。ある実施形態では、オーサリングアプリケーションは、インスタンス化インターフェースを表示しない。別の実施形態では、オーサリングアプリケーションは、更新が使用可能であるかの表示を表示しない。例示的な適用例では、メタデータ更新は、ユーザー変更と競合する。したがって、オーサリングアプリケーションは、第１のユーザーにコンテンツ更新のインスタンス化の機会を提供しない。
【０１００】
図１７で、第１のユーザーは、データファイルのユーザーコピーをマスターコピーに同期させることを試みるようオーサリングアプリケーションに命じる（図３の同期操作３１０参照）。ある実施形態では、オーサリングアプリケーションは、図５に示された同期プロセス５００を実施する。オーサリングアプリケーションは、適切な場合にマスターコピーから更新を取得し（図５の取得操作５０４参照）、いずれかの編集競合が更新の結果生じているかどうか判断する（図５の識別操作５０６参照）。示された実施例では、オーサリングアプリケーションは、新しい更新を取得していない（すなわち、最後の更新以来、介在する変更がマスターコピーに行われていない）。オーサリングアプリケーションは、以前に受け取られた更新によって表された介在する変更がユーザー変更と競合すると決定する。
【０１０１】
次いで、オーサリングアプリケーションは、データファイルのユーザーコピーをデータファイルのマスターコピーとマージし（図５のマージ操作５０８参照）、第１のユーザーにデータファイルのマージされたコピーを表示する。示された実施例では、オーサリングアプリケーションは、図１７の編集領域２０１２に、データファイルのマージされたバージョンを表示する。一般に、オーサリングアプリケーションは、任意の所望のマージ技術を使用して、ユーザーコピーとマスターコピーを統合することができる。たとえば、ある実施形態では、オーサリングアプリケーションは、データファイルのマスターコピーおよびデータファイルのマスターコピーに追加され、そこから削除され、かつ／またはその中で修正されたすべてのコンテンツを表示する。
【０１０２】
別の実施形態では、オーサリングアプリケーションは、マスターコピーによって表されたデータファイルのバージョンを決定することができ、データファイルのマスターコピーバージョンのロックされていないデータユニットに対して、ユーザーコピーからのいずれかのコンテンツまたはフォーマット追加、削除および／または修正を実施することができる（すなわちマージ可能な競合をインスタンス化する）。マスターコピー上でロックされたデータユニットへのユーザー編集（たとえば、ロックを示すメタデータ更新を受け取る前に実施されたユーザー編集）など、マージ不可能な競合では、オーサリングアプリケーションは、ロックされたデータユニットに隣接して複製のデータユニットを追加することができ、ユーザーコピー内で行われた修正（たとえばコンテンツの変更、コンテンツロックの追加など）に基づいて複製のデータユニットを修正することができる。したがって、データユニットは、マスターコピーの状態に従って、ロックされて不変のままとどまる。しかし、第１のユーザーによるデータユニットへの変更は、第１のユーザーがそれを取り除くことに決めるまで、データファイルのマージされたバージョンで保持される。
【０１０３】
図１７に示された実施例では、第１のデータユニットは、第２のユーザーによってロックされ（ロック２０２参照）、第２のユーザーによって実施された編集操作により変更されて示されている。たとえば、２番目に現れた単語「ｌａｚｙ」は、「ｌｉｖｅｌｙ」に変更されている。第１のデータユニットの複製が生成され、第１のデータユニットに隣接して配置されている。複製は第１のユーザーに対してロックされ（ロック２０２４参照）、同期を試みる前に第１のユーザーによって行われた修正を含む（たとえば２番目に現れた「ｄｏｇ」は、「ｄｏｅ」に変更されている）。図１７で、第２のデータユニットは、第２のユーザーに対して依然としてロックされている。ある実施形態では、オーサリングアプリケーションは、ユーザーコピーがマスターコピーに同期される場合にだけロックを解放する。別の実施形態では、オーサリングアプリケーションは、ロックされたデータユニットが完全に同期される場合にだけロックを解放する。他の実施形態では、オーサリングアプリケーションは、ロックが解放されたことを示してよい。
【０１０４】
オーサリングアプリケーションが編集競合を識別したので、オーサリングアプリケーションは、マスターコピーに保存し続けない（図５の第１の決定モジュール５１０参照）。より正確に述べると、オーサリングアプリケーションは、編集競合の存在について第１のユーザーに通知する１つまたは複数の警告メッセージを表示する。（図５の警告操作５１２参照）。たとえば、図１７で、第１のユーザーに編集競合の存在について通知する警告２０１７が、表示ウィンドウ２０１０内に表示されている。示された実施例では、ステータスバー２０１８もまた、編集競合の存在を示すように更新されている。他の実施形態では、ステータスバー２０１８は、まだインスタンス化されていない複数の更新、識別された複数の編集競合、または他のこうした情報を示すように更新されてよい。さらに他の実施形態では、他のタイプの警告または表示が、第１のユーザーに編集競合の存在についての通知を提供することができる。
【０１０５】
図１７で、オーサリングアプリケーションは、競合を見ずにデータファイルを編集し続けることと、編集競合をレビューすることの間でユーザーが選択することを可能にするトグルインターフェース２０１５をも第１のユーザーに提供する（第２の決定モジュール５１４参照）。第１のユーザーは、編集競合をレビューせずにデータファイルを編集し続けることに決めてよい（図５の継続操作５１６参照）。第１のユーザーは、編集競合を明らかにするためにトグルインターフェース２０１５を選択することに決めることもできる（図５のレビュー操作５１８参照）。ある実施形態では、トグルインターフェース２０１５を選択すると、概要ウィンドウ２０３０もアクティブになる。第１のユーザーは、第１のユーザーが編集競合を見ることに決めるかどうかに関係なく、データファイルのマージされたバージョンを編集し続けることができる。
【０１０６】
オーサリングアプリケーションが図５のレビュー操作５１８を実施するためのある例示的なプロセスは、図７のレビュープロセス７００を含む。ユーザーがトグルインターフェース２０１５（図１７）を選択する場合、オーサリングアプリケーションは、ユーザーに編集競合を提示する（図７の表示操作７０４参照）。たとえば、ある実施形態では、トグルインターフェース２０１５を選択すると、表示ウィンドウ２０１０が編集領域２０１２と概要ウィンドウ２０３０の間で分割され、この概要ウィンドウ２０３０内には、編集競合がリストされ（図１８のリスト２０３４参照）、競合に関する概要情報が表示され得る（図１８の概要領域２０３２参照）。
【０１０７】
一般に、編集領域２０１２は、データファイルのマージされたバージョンを表示し、ユーザーがマージされたバージョンを自由に編集することを可能にする。一部の実施形態では、編集領域２０１２に表示されたデータファイルのマージされたバージョンは、コンテンツのどの部分が競合しているかを示すように注釈が付けられる。たとえば、ある実施形態では、データファイルのマージされたバージョンは、競合するコンテンツが（たとえば下線または他のフォーマット、テキストカラー、強調表示または他のこうした表示による）挿入、または（たとえば取消し線または他のフォーマット、テキストカラー、強調表示または他のこうした表示による）削除の結果生じているかどうか示すように注釈が付けられる。
【０１０８】
示された実施例では、コンテンツへの修正が、一連の削除および挿入として示されている。しかし、他の実施形態では、コンテンツへの修正が、それぞれ区別して注釈付けされる。他の実施形態では、メタデータ（たとえばロック）もまた、メタデータのどの部分が競合するかを示すように注釈を付けることができる。図１８に示された実施例では、第１のデータユニットは、第２のユーザーに対してサーバ上でロックされているので、編集競合を含まない。したがって、第１のデータユニットは、注釈が付けられていない。図１８で、第１のユーザーに対してロックされるように示されている複製のデータユニットは、データファイルにデータユニットが挿入されたことを示すために下線が引かれている。
【０１０９】
競合する編集操作は、概要ウィンドウ２０３０によっても表示されている。解決インターフェースの概要領域２０３２は、データファイルのマージされたバージョン内に含まれた競合する編集操作の数を示す。示された実施例では、概要領域２０３２は、１つの競合する編集操作が識別されたことを示している。概要ウィンドウ２０３０のリスト２０３４は、競合するコンテンツを表示している。ある実施形態では、リスト２０３４は、競合するコンテンツを、競合しないコンテンツとは別々に表示する。別の実施形態では、リスト２０３４は、競合するコンテンツに、コンテンツが挿入され、かつ／または削除されたかどうか示すように注釈を付ける（たとえば図１８の表示２０３６参照）。別の実施形態では、リスト２０３４は、競合するコンテンツに、競合するコンテンツの発生元（たとえばユーザーコピーまたはマスターコピー）を示すように注釈を付ける（たとえば図１８の表示２０３８参照）。
【０１１０】
オーサリングアプリケーションの第１のユーザーは、編集領域２０１２または概要ウィンドウ２０３０（図１８）と対話して、データファイルの編集に戻ること、または表示された編集競合のいずれかを解決すること（図７の第１の決定モジュール７０８参照）の命令を与えることができる（図７の取得操作７０６参照）。たとえば、ある実施形態では、ユーザーは、再びトグルインターフェース２０１５を選択して、編集競合を隠すことができる。競合を隠すことに決めると、編集競合から注釈が取り除かれる。ある実施形態では、編集競合を隠すことに決めると、図１７のユーザーインターフェース２０００が表示されることになる。同期プロセス７００は、終了し（図７の停止モジュール７１４参照）、オーサリングアプリケーションは、少なくとも１つの編集競合が未解決のままである（図５の第１の決定モジュール５１０参照）と決定し、第１のユーザーは、データファイルを自由に編集することと、競合を解決することの間で再び選ぶことができる。
【０１１１】
あるいは、第１のユーザーは、競合するコンテンツまたはその一部を承諾または拒否させる命令を与えてよい。ある実施形態では、第１のユーザーは、表示ウィンドウ２０１０の編集領域２０１２内に表示されたコンテンツを選択してよく、解決インターフェース上のオプションを選択して、編集操作を解決させる命令を与えてよい。たとえば、第１のユーザーは、命令が与えられるコンテンツを提供してよく、解決についての記載２０４０からメニューオプションを選択してよい（図１９参照）。他の実施形態では、第１のユーザーは、別のタイプの解決インターフェースツールを使用して解決命令を与えることができる。
【０１１２】
図１９に示された実施例では、第１のユーザーは、競合するコンテンツの第１の部分を選択し（選択の表示２０１３参照）、カーソル２０１９によって解決メニュー２０４０の拒否オプションを選択する。したがって、オーサリングアプリケーションは、ユーザーが編集に戻させる命令を与えておらず（図７の第１の決定モジュール７０８参照）、解決命令を実施する（図７の実施操作７１０参照）と決定する。他の実施形態では、第１のユーザーは、競合するコンテンツのすべてのまたは異なる部分を選択していることがある。
【０１１３】
オーサリングアプリケーションが競合するコンテンツの選択された部分の拒否を実施するためのある例示的なプロセスは、図１４の拒否プロセス１２００である。オーサリングアプリケーションは、表示ウィンドウ２０１０の編集領域２０１２の選択された競合するコンテンツから注釈を取り除く（図１４の除去操作１２０４参照）。オーサリングアプリケーションは、拒否された編集操作によって、データファイルに選択された競合するコンテンツが追加されているかどうかも判断する（図１４の決定モジュール１２０６参照）。したがって、オーサリングアプリケーションは、データファイルのマージされたバージョンから、選択された競合するコンテンツを取り除く（図１４の削除操作１２０８参照）。編集操作によってコンテンツが削除されているならば、拒否プロセス１２００は、選択された競合するコンテンツをデータファイルから取り除かずに終了したであろう。
【０１１４】
図７のレビュープロセス７００に戻って、オーサリングアプリケーションは、識別された編集競合のうちの少なくとも１つが未解決のままであると決定し（図７の第２の決定モジュール７１２参照）、それによってレビュープロセス７００を再開する。レビュープロセス７００の再開によって、第１のユーザーは、ユーザーインターフェースが競合解決モードで構成されている間に、（たとえば図７のレビュープロセス７００を使用して）編集競合を解決し続けることに決めることができる。あるいは、第１のユーザーは、トグルインターフェース２０１５を選択することによっていつでも編集競合を隠すことに決めることができる。
【０１１５】
図２０は、第１のユーザーが選択された競合するコンテンツを拒否した後のユーザーインターフェース２０００を示している（図７の表示操作７０４参照）。拒否された競合するコンテンツは、編集領域２０１２から取り除かれている。さらに、オーサリングアプリケーションは、拒否されたコンテンツを概要ウィンドウ２０３０内のリスト２０３４から取り除くことによって、競合するコンテンツの解決を反映するように概要ウィンドウ２０３０を更新する。競合するコンテンツが完全には解決されていないので、概要領域２０３２は変化しないままである。
【０１１６】
レビュープロセス７００を続けて、オーサリングアプリケーションは、第１のユーザーから別の命令のセットを取得する（図７の取得操作７０６参照）。この例示的な適用例では、オーサリングアプリケーションは、残りの競合するコンテンツを解決させる命令を取得する。たとえば、図２１は、第１のユーザーがオーサリングアプリケーションに解決命令を与えるための別の解決インターフェース２０５０を示している。解決インターフェース２０５０は、解決オプション（たとえば承諾、拒否など）をリストするメニューである。メニューは、選択された競合するコンテンツに隣接して配置される。ある実施形態では、オーサリングアプリケーションは、ユーザーが概要ウィンドウ２０３０内のリスト２０３４から競合編集を選択するとき、解決インターフェース２０５０を表示する。別の実施形態では、オーサリングアプリケーションは、編集領域２０１２内で競合するコンテンツが選択されるとき、編集領域２０１２内に解決インターフェース２０５０を表示すことができる。しかし、他の実施形態では、第１のユーザーは、オーサリングアプリケーションに解決命令を与える任意の所望のタイプの解決インターフェースを使用してよい。
【０１１７】
図２１で、ユーザーは、概要ウィンドウ２０３０のリスト２０３４内の残りの競合するコンテンツを選択し（たとえば右マウスクリックによって、左マウスクリックによって、ホバーリング、または別の入力装置を用いて他のやり方で選択し）、（たとえばカーソル２０１９を使用して）解決インターフェース２０５０上で承諾オプションを選択する。したがって、オーサリングアプリケーションは、編集競合を隠し編集に戻させる命令を第１のユーザーが与えていないと決定し（図７の決定モジュール７０８参照）、承諾命令を実施する（図７の実施操作７１０参照）
【０１１８】
オーサリングアプリケーションが選択された競合するコンテンツを承諾するためのある例示的なプロセスは、図１３の承諾プロセス１１００を含んでよい。オーサリングアプリケーションは、選択された競合するコンテンツからどんな注釈も取り除く（図１３の除去操作１１０４参照）。オーサリングアプリケーションは、選択された競合するコンテンツがデータファイルに挿入されたと決定する（図１３の決定モジュール１１０６参照）。したがって、承諾プロセス１１００は、完了し終了する（図１３の停止モジュール１１１０参照）。競合するコンテンツがデータファイルから削除されたとオーサリングアプリケーションが決定したならば、オーサリングアプリケーションは、競合するコンテンツをデータファイルから削除したであろう（図１３の削除操作１１０８参照）。
【０１１９】
図７のレビュープロセス７００に戻って、オーサリングアプリケーションは、編集競合がもはや未解決のままでないと決定する（第２の決定モジュール７１２参照）。したがって、レビュープロセス７００は、完了して終了し（図７の停止モジュール７１４参照）、それによって図５の同期プロセス５００のレビュー操作５１４を完了する。同期プロセス５００は、第１の決定モジュール５１０に移り戻り、この第１の決定モジュール５１０で、オーサリングアプリケーションは、識別されたいずれかの編集競合が未解決のままかどうか判断する。
【０１２０】
この例示的な適用例では第１のユーザーがすべての識別された編集競合を解決したので、オーサリングアプリケーションは、未解決のままの編集競合がないと決定する。したがって、オーサリングアプリケーションは、マスターコピーをチェックして、追加の更新が使用可能かどうか判断する（図５の第２の決定モジュール５２０参照）。追加の更新が使用可能になっている場合、同期プロセス５００は、循環して戻って、新しい更新を取得してマージする。新しい更新は、前の更新が取得されて以来行われた、どんな介在する変更をも含む。上記に論じられたように、新しい更新から生じるどんな競合もが解決される。更新を取得し、識別されたどんな競合をも解決するこのプロセスは、第１のユーザーがデータファイルのユーザーコピーと、データファイルのマスターコピーの現在の状態との間のすべての編集競合を解決するまで繰り返される。
【０１２１】
オーサリングアプリケーションは、編集競合が存在せず（図５の第１の決定モジュール５１０参照）、新しい変更が使用可能でない（図５の第２の決定モジュール５２０参照）と決定する場合、ユーザーコピーからマスターコピーに更新を送って（図５の格納操作５２２参照）、ユーザーコピーとマスターコピーの同期を完了する。たとえば、ある実施形態では、オーサリングアプリケーションは、ユーザーコピー全体を、マスターコピーを上書きさせる命令と共に記憶装置に送ることができる。別の実施形態では、オーサリングアプリケーションは、ユーザーコピーがマスターコピーとどのように異なるかを示す増分更新を送ることができる。
【０１２２】
オーサリングアプリケーションは、マスターコピーへの更新のアップロードに成功するとき、第１のユーザーに警告する（図５の表示操作５２４参照）。たとえば、図２２で、ステータスバー２０１８は、更新がうまく送信されたことを示すように更新されている。一部の実施形態では、オーサリングアプリケーションは、アップロードの成功を示す警告ウィンドウ２０６０を表示することもできる。ある実施形態では、警告ウィンドウ２０６０は、たとえばアップロードの結果を示すさらなる説明を提供することができる。図２２に示された実施例では、概要ウィンドウ２０３０は、編集競合が識別されないので、ユーザーインターフェースから取り除かれている。しかし、他の実施形態では、概要ウィンドウ２０３０は、第１のユーザーによって切り換えられるまで残り得る。
【０１２３】
第１のユーザーがデータファイルをオフラインで編集している第２の例示的な適用例が、図２３〜図２９に示されている。図２３で、オーサリングアプリケーションのユーザーインターフェース２２００は、データファイルのユーザーコピーのコンテンツを表示する編集領域２２１２と、コマンドオプションを提供するコマンドツールバー２２１６と、データファイルのユーザーコピーの状況を示すステータスバー２２１８とを含む表示ウィンドウ２２１０を含む。たとえば、ユーザーインターフェース２２００は、図１５のユーザーインターフェース２０００と同じであってよい。
【０１２４】
示された実施例では、ステータスバー２２１８は、第１のユーザーがデータファイルのユーザーコピーをオフラインで編集している（すなわち、データファイルのマスターコピーを格納する記憶装置に通信可能に接続されていない）ことを示す。別のユーザーは、編集領域２２１２内の第１のデータユニットへのロック２２２２を有する。したがって、オーサリングアプリケーションは、第１のユーザーに第１のデータユニットを編集させないようにする。
【０１２５】
オーサリングアプリケーションは、たとえば図３の例示的なオーサリングプロセス３００を使用して、データファイルのユーザーコピーの編集を可能にする。示された実施例では、オーサリングアプリケーションは、第１のユーザーが表示ウィンドウ２０１０の編集領域２０１２内でデータファイルのユーザーコピーを自由に編集することを可能にする（図３の編集操作３０４参照）。図２４は、第１のユーザーによってデータファイルのユーザーコピーに対して行われた編集変更を示している。具体的には、第１のユーザーは、第３のデータユニットに２つの文を追加している。しかし、他の実施形態では、第１のユーザーは、データファイルのユーザーコピー内で、いずれかのコンテンツまたはメタデータを追加、修正および／または削除していることがある。
【０１２６】
第１のユーザーがユーザーコピーをオフラインで編集しているので、オーサリングアプリケーションは、第３のデータユニットへのロック要求を同期させることができない。ある実施形態では、オーサリングアプリケーションは、ユーザーがオンライン接続するまで、ロック要求を格納する。こうした実施形態では、オーサリングアプリケーションは、第３のデータユニットの辺りでロックを表示してよい。別の実施形態では、オーサリングアプリケーションは、第３のデータユニットのロックを試みない。ある実施形態では、オーサリングアプリケーションは、ロック要求を同期させることができず、したがって、データユニットの編集によって編集競合がもたらされ得ることを第１のユーザーに警告する。この例示的な適用例のために、オーサリングアプリケーションは、後のマスターコピーとの同期に備えてロック要求を格納する。
【０１２７】
図２５では、オーサリングアプリケーションは、介在する変更がデータファイルのマスターコピーに対して行われたことを示す更新を得る（図３の受信操作３０６参照）。ある実施形態では、オーサリングアプリケーションは、所定の時間間隔が経過した後に更新を受け取る。別の実施形態では、オーサリングアプリケーションは、ユーザーコピーをマスターコピーに同期させる要求に応答して更新を受け取る。この例示的な適用例のために、オーサリングアプリケーションは、所定の時間間隔の後に自動的に更新を受け取ったと仮定する。図２５で、表示ウィンドウ２２１０のステータスバー２２１８は、更新が受け取られたことを示すように更新されている。
【０１２８】
オーサリングアプリケーションは、更新を受け取るとき、ユーザーコピーと、受け取られた更新との間にいずれかの編集競合が存在するかどうか判断する。編集競合が存在しない場合は、オーサリングアプリケーションは、メタデータ更新を自動的にインスタンス化する（図３の更新操作３０８参照）。この例示的な適用例のために、オーサリングアプリケーションは、第１のユーザーの第３のデータユニットへのロック要求と競合する、第３のデータユニットに対して行われた変更を示すコンテンツ更新を受け取ったと仮定する。しかし、更新は、第３のデータユニットの辺りのロックを示していない（たとえば、編集を行っているとき他のユーザーが第３のデータユニットをロックし、その後にロックを解放したかもしれない）。したがって、オーサリングアプリケーションは、第１のユーザーにインスタンス化インターフェースを提供せず、または他のやり方で更新のインスタンス化を抑制する。
【０１２９】
図２６で、第１のユーザーは、記憶装置に接続し（すなわちオンライン接続し）、オーサリングアプリケーションにデータファイルのユーザーコピーをマスターコピーに同期させることを試みるように命令する（図３の同期操作３１０参照）。ある実施形態では、オーサリングアプリケーションは、図５に示された同期プロセス５００を実施する。オーサリングアプリケーションは、適切な場合にマスターコピーからの更新を取得し（取得操作５０４参照）、更新の結果いずれかの編集競合が生じるかどうか判断する（識別操作５０６参照）。示された実施例では、オーサリングアプリケーションは、新しい更新を取得していない（たとえば、最後の更新以来、マスターコピーに対して介在する変更は行われていない）。オーサリングアプリケーションは、以前に受け取られた更新によって表された介在する変更（たとえば第３のデータユニットに追加されたコンテンツ）がユーザー変更（たとえば第３のデータユニットへのロック要求）と競合すると決定する。
【０１３０】
次いで、オーサリングアプリケーションは、データファイルのユーザーコピーをデータファイルのマスターコピーとマージし（図５のマージ操作５０８参照）、データファイルのマージされたコピーを第１のユーザーに表示する。示された実施例では、オーサリングアプリケーションは、図２６の編集領域２２１２内にデータファイルのマージされたバージョンを表示する。上述されたように、オーサリングアプリケーションは、任意の所望のマージ技術を使用してユーザーコピーとマスターコピーを統合することができる。示された実施例では、オーサリングアプリケーションは、マスターコピーからの新しいコンテンツをユーザーコピーの第１のデータユニットおよび第３のデータユニットに追加している。
【０１３１】
第１のデータユニットに追加された新しいコンテンツの第１のセット「ＴＢＤ」は、編集競合をもたらさない。第１のユーザーは、第１のデータユニットを編集していない。第３のデータユニットに追加された新しいコンテンツの第１のセット「Ｊｕｍｐ，ｆｏｘ，ｊｕｍｐ！」は、第１のユーザーが第３のデータユニットのロックを試みたので、編集競合をもたらしている。他のユーザーは、第１のユーザーのロック要求が編集前にマスターコピーとまだ同期されていなかったので、第３のデータユニットを編集することができた。しかし、第３のデータユニットが別のユーザーによってロックされることを更新が示さないので、第１のユーザーのロックは、第３のデータユニットの辺りで維持されている。
【０１３２】
オーサリングアプリケーションは、編集競合を識別したので、マスターコピーを格納し続けない（図５の第１の決定モジュール５１０参照）。より正確に述べると、オーサリングアプリケーションは、編集競合の存在について第１のユーザーに通知する１つまたは複数の警告メッセージを表示する（図５の警告操作５１２参照）。たとえば、図２６で、警告２２１７が表示ウィンドウ２２１０に表示され、編集競合の存在について第１のユーザーに通知される。示された実施例では、ステータスバー２２１８もまた、編集競合の存在を示すように更新されている。他の実施形態では、ステータスバー２２１８は、まだインスタンス化されていない複数の更新、識別された複数の編集競合、または他のこうした情報を示すように更新されてよい。さらに他の実施形態では、他のタイプの警告または表示が、編集競合の存在についての通知を第１のユーザーに提供することができる。
【０１３３】
図２６で、オーサリングアプリケーションは、編集競合を見ずにデータファイルの編集を続けることと、編集競合をレビューすることの間でユーザーが選択することを可能にするトグルインターフェース２２１５をも第１のユーザーに提供する（図５の第２の決定モジュール５１４参照）。第１のユーザーは、編集競合をレビューせずにデータファイルの編集を続けることに決めてよい（図５の継続操作５１６参照）。第１のユーザーは、トグルインターフェース２２１５（図２６）を選択して編集競合を明らかにすることに決めることもできる（図５のレビュー操作５１８参照）。ある実施形態では、トグルインターフェース２２１５を選択すると、概要ウィンドウ２２３０もアクティブになる（図２７参照）。第１のユーザーは、第１のユーザーが編集競合を見ることに決めるかどうかに拘らず、データファイルのマージされたバージョンを編集し続けることができる。
【０１３４】
オーサリングアプリケーションが図５のレビュー操作５１８を実施するためのある例示的なプロセスは、図７のレビュープロセス７００を含む。ユーザーがトグルインターフェース２２１５を選択するとき、オーサリングアプリケーションは、ユーザーに編集競合を提示する（図７の表示操作７０４参照）。たとえば、ある実施形態では、トグルインターフェース２２１５を選択すると、表示ウィンドウ２２１０が編集領域２２１２と概要ウィンドウ２２３０の間で分割され、この概要ウィンドウ２２３０では、編集競合がリストされており（リスト２２３４参照）、競合に関する概要情報が表示され得る（概要領域２２３２参照）。
【０１３５】
一般に、編集領域２２１２は、データファイルのマージされたバージョンを表示し、ユーザーがマージされたバージョンを自由に編集することを可能にする。一部の実施形態では、編集領域２２１２に表示されたデータファイルのマージされたバージョンは、コンテンツのどの部分が競合しているかを示すように注釈が付けられる。たとえば、ある実施形態では、データファイルのマージされたバージョンは、競合するコンテンツが（たとえば下線または他のフォーマット、フォントカラー、強調表示、不透明度または他のこうした表示による）挿入、または（たとえば取消し線または他のフォーマット、フォントカラー、強調表示、不透明度または他のこうした表示による）削除の結果生じているかどうか示すように注釈が付けられる。
【０１３６】
示された実施例では、第１のデータユニットは、第２のユーザーに対してサーバ上でロックされているので、編集競合を含まない。したがって、第１のデータユニットは注釈が付けられない。第２のデータユニットもまた編集競合を含まず、したがって、第２のデータユニットは注釈が付けられない。第１のユーザーに対してロックされるように示された第３のデータユニット内の一部のコンテンツは、コンテンツがデータユニットに挿入されたことを示すために下線が引かれている。
【０１３７】
ある実施形態では、ユーザーコピーを発生元とする、競合するコンテンツだけに注釈が付けられる。有利には、ユーザーがもたらした競合だけに注釈を付けることによって、ユーザーは、データファイルのマスターコピーの状態、およびマスターコピーとユーザーコピーの差を理解することができる。しかし、他の実施形態では、ユーザーコピーからの競合するコンテンツと同様に、またはその代わりに、マスターコピーを発生元とする、競合するコンテンツに注釈が付けられ得る。
【０１３８】
競合する編集操作は、概要ウィンドウ２２３０によっても表示される。解決インターフェースの概要領域２２３２は、データファイルのマージされたバージョン内に含まれた競合する編集操作の数を示す。示された実施例では、概要領域２２３２は、１つの競合する編集操作が識別されたことを示している。概要ウィンドウ２２３０のリスト２２３４は、競合するコンテンツを表示する。ある実施形態では、リスト２２３４は、競合するコンテンツを、競合しないコンテンツとは別々に表示する。別の実施形態では、リスト２２３４は、競合するコンテンツに、コンテンツが挿入され、かつ／または削除されたかどうか示すように注釈を付ける（たとえば図２７の表示２２３６参照）。別の実施形態では、リスト２２３４は、競合するコンテンツに、競合するコンテンツの発生元（たとえばユーザーコピーまたはマスターコピー）を示すように注釈を付ける（たとえば図２７の表示２２３８参照）。
【０１３９】
オーサリングアプリケーションの第１のユーザーは、解決インターフェース（たとえば図２７の解決インターフェース２２４０参照）と対話して、データファイルの編集に戻ること、または表示された編集競合のいずれかを解決すること（図７の第１の決定モジュール７０８参照）の命令を与えることができる（図７の取得操作７０６参照）。たとえば、ある実施形態では、上記で論じられたように、ユーザーは、再びトグルインターフェース２２１５を選択して、編集競合を隠すことができる。
【０１４０】
あるいは、第１のユーザーは、競合するコンテンツまたはその一部を承諾または拒否させる命令を与えてよい。ある実施形態では、第１のユーザーは、表示ウィンドウ２０１０の編集領域２０１２内に表示されたコンテンツを選択してよく、解決インターフェース２２４０上のオプションを選択して、編集操作を解決させる命令を与えることができる。たとえば、第１のユーザーは、命令が与えられるコンテンツを提供してよく、例示的な解決インターフェース２０４０から承諾ボタン２２４２または拒否ボタン２２４４を選択することができる（図２７参照）。例示的な解決インターフェース２０４０は、競合間で順序付けするための次へのボタン２２４６と前へのボタン２２４８とを含むこともできる。他の実施形態では、第１のユーザーは、別のタイプの解決インターフェースツールを使用して解決命令を与えることができる。
【０１４１】
図２８に示された実施例では、第１のユーザーは、競合するコンテンツの第１の部分を選択し（概要ウィンドウ２２３０内の選択表示２２１３参照）、カーソル２２１９によって解決インターフェース２０４０上の承諾ボタン２２４２を選択する。しかし、他の実施形態では、第１のユーザーは、任意の所望の解決インターフェースによって命令を与えていることがある。したがって、オーサリングアプリケーションは、ユーザーが編集に戻させる命令を与えていないと決定し（図７の第１の決定モジュール７０８参照）、解決命令を実施する（図７の実施操作７１０参照）。
【０１４２】
オーサリングアプリケーションが選択された競合するコンテンツを承諾するためのある例示的なプロセスは、図１３の承諾プロセス１１００を含む。オーサリングアプリケーションは、選択された競合するコンテンツからどんな注釈をも取り除く（図１３の除去操作１１０４参照）。オーサリングアプリケーションは、選択された競合するコンテンツがデータファイルに挿入されたと決定する（図１３の決定モジュール１１０６参照）。したがって、承諾プロセス１１００は、完了し終了する（図１３の停止モジュール１１１０参照）。オーサリングアプリケーションは、競合するコンテンツがデータファイルから削除されたと決定したならば、競合するコンテンツをデータファイルから削除したであろう（図１３の削除操作１１０８参照）。
【０１４３】
図７のレビュープロセス７００に戻ると、オーサリングアプリケーションは、編集競合がもはや未解決のままでないと決定する（図７の第２の決定モジュール７１２参照）。したがって、レビュープロセス７００は、完了し終了し（図７の停止モジュール７１４参照）、それによって図５の同期プロセス５００のレビュー操作５１４を完了する。同期プロセス５００は、第１の決定モジュール５１０（図５）に戻り、この第１の決定モジュール５１０で、オーサリングアプリケーションは、未解決のままの編集競合がないと決定する。またオーサリングアプリケーションは、マスターコピーから追加の更新が使用可能でないと決定し（図５の第２の決定モジュール５２０参照）、したがって、ユーザーコピーからマスターコピーに更新を送って（図５の格納操作５２２参照）、ユーザーコピーとマスターコピーの同期を完了する。
【０１４４】
オーサリングアプリケーションは、マスターコピーへの更新のアップロードに成功するとき、第１のユーザーに警告する（図５の表示操作５２４参照）。たとえば、図２９で、ステータスバー２２１８は、更新がうまく送信されたことを示すように更新されている。一部の実施形態では、オーサリングアプリケーションは、アップロードの成功を示す警告ウィンドウ２２６０を表示することもできる。ある実施形態では、警告ウィンドウ２２６０は、たとえば成功したアップロードの結果を示すさらなる説明を提供することができる。図２９に示された実施例では、概要ウィンドウ２２３０は、識別された編集競合が未解決のまま残っていないので、ユーザーインターフェース２２００から取り除かれている。しかし、他の実施形態では、概要ウィンドウ２２３０は、第１のユーザーによって（たとえば図２７および図２８のトグルインターフェース２２１５を介して）非アクティブにされるまで残ることがある。
【０１４５】
本開示の実施形態は、コンピュータープロセス（方法）、コンピューティングシステム、またはコンピュータープログラム製品やコンピューター読取り可能媒体などの製品として実施することができる。プロセス（プログラム）は、本文献に記載された構造を含めて、任意の数のやり方で実施することができる。こうした１つのやり方は、本文献に記載されたタイプの装置のマシン操作によって行われる。別の任意選択によるやり方は、操作の一部を実施する１人または複数の人間のオペレーターと共にコンピューティング装置上で実施される方法の個々の操作のうちの１つまたは複数についてのものである。これらの人間オペレーターは、互いに並んで位置する必要はないが、それぞれが単に、プログラムの一部を実施するマシンを用いるものであってよい。
【０１４６】
コンピュータープログラム製品は、コンピューターシステムによって読取り可能であり、コンピュータープロセスを実行する命令のコンピュータープログラムを符号化するコンピューター記憶媒体であってよい。コンピュータープログラム製品は、コンピューターシステムによって読取り可能であり、コンピュータープロセスを実行する命令のコンピュータープログラムを符号化する搬送波上の伝搬信号とすることもできる。本明細書では、用語コンピューター読取り可能媒体は、記憶媒体と通信媒体の両方を含む。
【０１４７】
本開示は、手持ち式装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルな家電、ミニコンピューター、メインフレームコンピューターなどを含めて、他のコンピューターシステム構成で実施できることが当業者には理解されよう。本開示は、通信網によってリンクされたリモート処理装置によってタスクが実施される分散コンピューティング環境内で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に置かれてよい。一般に、プログラムモジュールには、ルーチン、プログラム、コンポーネント、データ構造体、および特定のタスクを実施し、または特定の抽象データ型を実施する他のタイプの構造体が含まれる。
【図１】
0005443471.tif 000002
【図２】
0005443471.tif 000003
【図３】
0005443471.tif 000004
【図４】
0005443471.tif 000005
【図５】
0005443471.tif 000006
【図６】
0005443471.tif 000007
【図７】
0005443471.tif 000008
【図８】
0005443471.tif 000009
【図９】
0005443471.tif 000010
【図１０】
0005443471.tif 000011
【図１１】
0005443471.tif 000012
【図１２】
0005443471.tif 000013
【図１３】
0005443471.tif 000014
【図１４】
0005443471.tif 000015
【図１５】
0005443471.tif 000016
【図１６】
0005443471.tif 000017
【図１６Ａ】
0005443471.tif 000018
【図１７】
0005443471.tif 000019
【図１８】
0005443471.tif 000020
【図１９】
0005443471.tif 000021
【図２０】
0005443471.tif 000022
【図２１】
0005443471.tif 000023
【図２２】
0005443471.tif 000024
【図２３】
0005443471.tif 000025
【図２４】
0005443471.tif 000026
【図２５】
0005443471.tif 000027
【図２６】
0005443471.tif 000028
【図２７】
0005443471.tif 000029
【図２８】
0005443471.tif 000030
【図２９】
0005443471.tif 000031