(57)【要約】      （修正有）【課題】ドキュメント編集中に予期せず、コピュータが閉じられた場合、のデータの復元を可能とする。【解決手段】コンピューティングデバイスの第１のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、前記指示を受け取ったことに応答して、第２のユーザ・インタフェースの第１の部分に表示された現在のバージョンと、第２のユーザ・インタフェースの第２の部分におけるドキュメントの前のバージョンのシーケンスに表示されたドキュメントの特定の前のバージョンとを有し、自動的に、ドキュメントを保存することとドキュメントのバージョンを作成する機能及び、自動的にディスプレイ上のドキュメントのレイアウトを復元することを含む。【選択図】図５
2012185805.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスの第１のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、
前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、
前記指示を受け取ったことに応答して、第１の部分と第２の部分とを有する第２のユーザ・インタフェースを表示する工程と、を有し、
前記ドキュメントの前記現在のバージョンは前記第２のユーザ・インタフェースの前記第１の部分に表示され、
前記ドキュメントの特定の前のバージョンは、前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前のバージョンのシーケンスにおいて表示される
ことを特徴とする方法。
【請求項２】
前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、
前記選択された内容をコピーする工程と、
前記選択された内容を、前記第２のユーザ・インタフェースの前記第１の部分に表示された前記ドキュメントの前記現在のバージョンへとペーストする工程と、
をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記第２のユーザ・インタフェースの前記第１の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、
前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、
をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記特定の前のバージョンの内容をスクロールする工程と、
前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、
をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、
前記指示に応答して、
前記ドキュメントの前記特定の前のバージョンを複製する工程と、
前記現在のバージョンを前のバージョンとしてマークする工程と、
前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、
をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項７】
前記ドキュメントの前のバージョンの前記シーケンスが、ドキュメントの積み重ねとして表示されることを特徴とする、請求項１に記載の方法。
【請求項８】
コンピューティングデバイス上で、ドキュメントと関連付けられたバージョニングイベントを検出する工程と、
前記バージョニングイベントを検出したことに応答して、前記ドキュメントを複製する工程と、当該複製を前記ドキュメントの前のバージョンとして持続的に格納する工程と、を含み、
前記バージョニングイベントは、ユーザからの、前記ドキュメントのバージョンを生成する明示的な指示とは関連付けられていないことを特徴とする、方法。
【請求項９】
前記バージョニングイベントは、前記ドキュメントを開くこと、前記ドキュメントを閉じること、前記ドキュメントを電子メールで送信すること、前記ドキュメントを印刷すること、前記ドキュメントを削除すること、前記ドキュメントに対するユーザ入力が長く停止すること、又はロックされたドキュメントを編集しようとすることであることを特徴とする、請求項８に記載の方法。
【請求項１０】
前記前のバージョンについての、前記バージョニングイベントを示すラベルを生成する工程と、
前記ラベルを、前記ドキュメントの前記前のバージョンに関連付ける工程と、
をさらに含むことを特徴とする、請求項８に記載の方法。
【請求項１１】
前記ドキュメントを複製する工程は、前記ドキュメントと、前記ドキュメントの特定の前のバージョンとの間の差分を複製する工程を含み、
前記複製を前記ドキュメントの前のバージョンとして持続的に格納する工程は、前記ドキュメントと、前記特定の前のバージョンとの間の前記差分を格納する工程を含む
ことを特徴とする、請求項８に記載の方法。
【請求項１２】
コンピューティングデバイス上で、ドキュメントと関連付けられた保存イベントを検出する工程と、
前記保存イベントを検出することに応答して、前記ドキュメントを保存する工程と、を含み、
前記保存イベントは、ユーザからの、前記ドキュメントを保存する明示的な指示とは関連付けられていないことを特徴とする方法。
【請求項１３】
前記保存イベントは、時間間隔の経過、ユーザ入力の休止、前記ドキュメントから離れるフォーカスの移動、前記ドキュメントを閉じること、前記ドキュメントの印刷、前記ドキュメントへの内容のペースト、前記ドキュメントからの内容の削除、又は前記ドキュメントの書式設定であることを特徴とする、請求項１２に記載の方法。
【請求項１４】
１以上のドキュメントを、コンピューティングデバイスのディスプレイ上の１以上の対応する位置に表示する工程と、
前記１以上のドキュメントに対応する１以上の識別子と、前記１以上の対応する位置とを含むドキュメントレイアウト情報を格納する工程と、
を含むことを特徴とする方法。
【請求項１５】
コンピューティングデバイス上で表示された１以上のドキュメントが異常に閉じられたことを検出する工程と、
前記１以上のドキュメントに対応する１以上の識別子と、前記１以上のドキュメントについての１以上の位置とを含むドキュメントレイアウト情報を取得する工程と、
前記ドキュメントレイアウト情報に従って前記１以上のドキュメントを表示する工程と、
を含むことを特徴とする方法。
【請求項１６】
１以上の命令を含むコンピュータ読み取り可能な一時的でない媒体であって、
前記１以上の命令は、少なくとも１つのプロセッサによって実行された時に、
コンピューティングデバイスの第１のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、
前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、
前記指示を受け取ったことに応答して、第１の部分と第２の部分とを有する第２のユーザ・インタフェースを表示する工程と、を行わせ、
前記ドキュメントの前記現在のバージョンは前記第２のユーザ・インタフェースの前記第１の部分に表示され、
前記ドキュメントの特定の前のバージョンは、前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前のバージョンのシーケンスにおいて表示される
ことを特徴とするコンピュータ読み取り可能な一時的でない媒体。
【請求項１７】
前記命令は、
前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、
前記選択された内容をコピーする工程と、
前記選択された内容を、前記第２のユーザ・インタフェースの前記第１の部分に表示された前記ドキュメントの前記現在のバージョンへとペーストする工程と、
を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項１８】
前記命令は、
前記第２のユーザ・インタフェースの前記第１の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、
前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項１９】
前記命令は、
前記特定の前のバージョンの内容をスクロールする工程と、
前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項２０】
前記命令は、
前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、
前記指示に応答して、
前記ドキュメントの前記特定の前のバージョンを複製する工程と、
前記現在のバージョンを前のバージョンとしてマークする工程と、
前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、
を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項２１】
前記命令は、前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項２２】
前記ドキュメントの前のバージョンの前記シーケンスが、ドキュメントの積み重ねとして表示されることを特徴とする、請求項１６に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項２３】
１以上のプロセッサと、１以上の命令を格納するコンピュータ読み取り可能な格納媒体とを備えるシステムであって、
前記１以上の命令は、前記１以上のプロセッサによって実行された時に、
コンピューティングデバイスの第１のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、
前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、
前記指示を受け取ったことに応答して、第１の部分と第２の部分とを有する第２のユーザ・インタフェースを表示する工程と、を行わせ、
前記ドキュメントの前記現在のバージョンは前記第２のユーザ・インタフェースの前記第１の部分に表示され、
前記ドキュメントの特定の前のバージョンは、前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前のバージョンのシーケンスにおいて表示される
ことを特徴とするシステム。
【請求項２４】
前記命令は、
前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、
前記選択された内容をコピーする工程と、
前記選択された内容を、前記第２のユーザ・インタフェースの前記第１の部分に表示された前記ドキュメントの前記現在のバージョンへとペーストする工程と、
を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２５】
前記命令は、
前記第２のユーザ・インタフェースの前記第１の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、
前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２６】
前記命令は、
前記特定の前のバージョンの内容をスクロールする工程と、
前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２７】
前記命令は、
前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、
前記指示に応答して、
前記ドキュメントの前記特定の前のバージョンを複製する工程と、
前記現在のバージョンを前のバージョンとしてマークする工程と、
前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、
を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２８】
前記命令は、前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２９】
前記ドキュメントの前のバージョンの前記シーケンスが、ドキュメントの積み重ねとして表示されることを特徴とする、請求項２４に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
本開示は概してドキュメント管理に関する。
【０００２】
従来のコンピューティングシステムは、ユーザが様々なドキュメントを作成すること及び編集することを可能とする。例えばワードプロセッシング・アプリケーションは、ユーザがテキストドキュメントを作成すること及び編集することを可能とする。画像編集アプリケーションは、ユーザが画像ドキュメントを作成すること及び編集することを可能とする。スプレッドシート・アプリケーションは、ユーザがスプレッドシートを作成すること及び編集することを可能とする。しかしながら、ユーザはドキュメントを十分に頻繁に、又は適切な時に、保存しないかもしれない。したがって、ドキュメントが予期せずに、例えばコンピュータシステムによって閉じられた場合に、ドキュメントに対する編集又は変更は失われるかもしれない。
【発明の概要】
【０００３】
セーブレスドキュメントが開示される。いくつかの実施形態によれば、方法は、コンピューティングデバイスの第１のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、前記指示を受け取ったことに応答して、第２のユーザ・インタフェースの第１の部分に表示された現在のバージョンと、第２のユーザ・インタフェースの第２の部分におけるドキュメントの前のバージョンのシーケンスに表示されたドキュメントの特定の前のバージョンとを有する、第２のユーザ・インタフェースを表示する工程と、を含むことができる。方法は、前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、前記選択された内容をコピーする工程と、前記選択された内容を、前記ドキュメントの前記現在のバージョンへとペーストする工程と、を含むことができる。
【０００４】
いくつかの実施形態によれば、方法は、前記第２のユーザ・インタフェースの前記第１の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、を含むことができる。方法は、前記特定の前のバージョンの内容をスクロールする工程と、前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、を含むことができる。
【０００５】
いくつかの実施形態によれば、方法は、前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、前記指示に応答して、前記ドキュメントの前記特定の前のバージョンを複製する工程と、前記現在のバージョンを前のバージョンとしてマークする工程と、前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、を含むことができる。方法は、前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程を含むことができる。方法は、第２のユーザ・インタフェースの第２の部分にドキュメントの前のバージョンのシーケンスが表示されている間に、ドキュメントの前のバージョンのシーケンスへと、ドキュメントの新しい前のバージョンを追加する工程と、ドキュメントの前のバージョンの表示されたシーケンスにおいて、新しい前のバージョンを表示する工程と、を含むことができる。
【０００６】
いくつかの実施形態によれば、方法は、コンピューティングデバイス上で、ドキュメントと関連付けられたバージョニングイベントを検出する工程と、前記バージョニングイベントを検出したことに応答して、前記ドキュメントを複製する工程と、当該複製を前記ドキュメントの前のバージョンとして持続的に格納する工程と、を含むことができる。いくつかの実施形態によれば、前記バージョニングイベントは、ユーザからの、前記ドキュメントのバージョンを生成する明示的な指示とは関連付けられていない。前記バージョニングイベントは、前記ドキュメントを開くこと、前記ドキュメントを閉じること、前記ドキュメントを電子メールで送信すること、前記ドキュメントを印刷すること、前記ドキュメントを削除すること、前記ドキュメントに対するユーザ入力が長く停止すること、又はロックされたドキュメントを編集しようとすることでありうる。方法は、前記前のバージョンについての、前記バージョニングイベントを示すラベルを生成する工程と、前記ラベルを、前記ドキュメントの前記前のバージョンに関連付ける工程と、を含むことができる。
【０００７】
いくつかの実施形態によれば、方法は、ドキュメントと関連付けられた保存イベントを検出する工程と、前記保存イベントを検出することに応答して、前記ドキュメントを保存する工程と、を含むことができる。いくつかの実施形態によれば、前記保存イベントは、ユーザからの、前記ドキュメントを保存する明示的な指示とは関連付けられていない。前記保存イベントは、時間間隔の経過、ユーザ入力の休止、前記ドキュメントから離れるフォーカスの移動、前記ドキュメントを閉じること、前記ドキュメントの印刷、前記ドキュメントへの内容のペースト、前記ドキュメントからの内容の削除、又は前記ドキュメントの書式設定でありうる。
【０００８】
いくつかの実施形態によれば、方法は、１以上のドキュメントを、コンピューティングデバイスのディスプレイ上の１以上の対応する位置に表示する工程と、前記１以上のドキュメントに対応する１以上の識別子と、前記１以上の対応する位置とを含むドキュメントレイアウト情報を格納する工程と、を含むことができる。
【０００９】
方法はまた、コンピューティングデバイス上で表示された１以上のドキュメントが異常に閉じられたことを検出する工程と、前記１以上のドキュメントに対応する１以上の識別子と、前記１以上のドキュメントについての１以上の位置とを含むドキュメントレイアウト情報を取得する工程と、前記ドキュメントレイアウト情報に従って前記１以上のドキュメントを表示する工程と、を含むことができる。
【００１０】
方法を実行するための命令を格納するコンピュータ読み取り可能な一時的でない媒体、及び方法を実行するように構成されたシステムがまた、開示される。
【００１１】
本明細書に記載される主題についての様々な実施形態は、以下の利点のうちの１以上を提供するだろう。セーブレスドキュメントは、ドキュメントに対する変更を自動的に保存することにより、アプリケーションの異常終了の場合に、セーブレス・アウェア・アプリケーションにおいて開かれたドキュメントに対してなされた変更が失われることを防ぐことができる。いくつかの実施形態は、ユーザが、現在のバージョンのドキュメントを見ながら、前のバージョンのドキュメントを見ること、比較すること、及びインタラクションすることを可能とする。いくつかの実施形態は、ユーザに、特定のバージョンのドキュメントから前のバージョンのドキュメントへと戻ることを可能とし、さらにこの特定のバージョンのドキュメントへと戻ることを可能とする。
【００１２】
他の利点は、過去のある時点において興味があると思った古いバージョンを取り戻すことを可能とするために、ユーザのドキュメントファイルの複数のコピーを手動で管理するという重荷から、ユーザを解放することを含む。さらにユーザは、ドキュメントを閉じる又はアプリケーションを終了する際に、保存していないドキュメントの変更についてどうするかを尋ねる警告によって迷惑を受けない。ユーザは、ドキュメントを他のアプリケーションに読み込ませる前に、ドキュメントの変更を保存することを知らなくてもよいし、気にしなくてもよい。例えば、ユーザがフォルダからドキュメントアイコンをドラッグし、添付ファイルを作成するために電子メールメッセージ編集ウィンドウにドロップしたならば、この添付ファイルは常にその時点までにドキュメントに対してユーザが行った変更の全てを含んでいる。言い換えれば、ユーザの視点から見て、アプリケーションウィンドウ内で表示されているドキュメントは、フォルダ内で表示されているドキュメントと単純に同じものであり、この逆も成り立つ。
【００１３】
１以上の実施形態の詳細が、添付の図面及び以下の説明において述べられる。他の特徴、態様、及びありうる利点は、この説明及び図面、ならびに請求の範囲から明らかだろう。
【図面の簡単な説明】
【００１４】
【図１】「セーブレス・アウェア」アプリケーションのための例示的なユーザ・インタフェースを示す。
【図２】自動ドキュメント保存システムの例示的なブロック図である。
【図３】自動ドキュメントバージョニングシステムの例示的なブロック図である。
【図４】自動的にドキュメントを保存するための例示的な処理の流れ図である。
【図５】自動的にドキュメントのバージョンを生成するための例示的な処理の流れ図である。
【図６】ドキュメントのバージョンを表示しインタラクションするための例示的なユーザ・インタフェースを示す。
【図７】ドキュメントのバージョンを表示するための例示的な処理の流れ図である。
【図８】ドキュメントレイアウトを元に戻すための例示的な処理の流れ図である。
【図９】図１〜８の特徴及び処理を実装するための例示的なシステム構成のブロック図である。
【００１５】
様々な図面における同様の参照符号は、同様の要素を示す。
【発明を実施するための形態】
【００１６】
セーブレス・アウェア・アプリケーション
セーブレスドキュメントが開示される。いくつかの実施形態によれば、ドキュメント又は他のコンテンツを作成し、編集し、表示し、又は他の操作若しくは修正をする１以上のアプリケーションは、「セーブレス・アウェア」にされることができる。セーブレス・アウェア（例えば自動保存）アプリケーションは、セーブレス・アウェア・アプリケーションが自動的に文書を保存することを可能とするアプリケーションフレームワーク又はアプリケーション・プログラム・インタフェース（ＡＰＩ）を用い又は実装してもよい。セーブレス・アウェア・アプリケーションはまた、ユーザが後にドキュメントの前のバージョン（版）を開くことと表示することとインタラクションすることとのうちの少なくとも１つを行えるように、ドキュメントのバージョンを自動的に作成及び格納してもよい。セーブレス・アウェア・アプリケーションはまた、セーブレス・アウェア・アプリケーションにおいて現在開かれているドキュメントの１以上の前のバージョンについて、ユーザがアクセスすることと見ることとインタラクションすることとのうちの少なくとも１つを可能とするような、ユーザ・インタフェース要素（例えばプルダウンメニュー項目又はボタン）を提供することもできる。
【００１７】
さらに、いくつかの実施形態において、セーブレス・アウェア・アプリケーションはディスプレイ上で開かれたドキュメントの位置を自動的に保存し、例えばこのドキュメントが不正常に閉じられた後に、保存された位置へとドキュメントを復元する。これらの及び追加の特徴が、続く文章においてより詳細に開示される。
【００１８】
図１は、「セーブレス・アウェア」アプリケーションのための例示的なユーザ・インタフェース１００を示す。グラフィカル・ユーザ・インタフェース１００は、ドキュメント表示領域１０２を含む。例えばドキュメント表示領域１０２は、特定のセーブレス・アウェア・アプリケーションに関連付けられた形式のドキュメントを表示してもよい。例えば、セーブレス・アウェア・アプリケーションがテキストエディタである場合、ドキュメント表示領域１０２はテキストドキュメントを表示してもよい。もしセーブレス・アウェア・アプリケーションが画像編集アプリケーションである場合、ドキュメント表示領域１０２は画像を表示してもよい。他の形式のアプリケーションも、セーブレス・アウェアにされうる。このように、他の形式のドキュメントが、ドキュメント表示領域１０２に表示されてもよい。
【００１９】
グラフィカル・ユーザ・インタフェース１００はまた、ドキュメントステータス領域１０４を含む。ドキュメントステータス領域１０４は、ドキュメント表示領域１０２に表示されている、現在開かれているドキュメントの状態又はステータスを表示する。例えば、表示されているドキュメントが修正されているが保存されていない場合、ドキュメントステータス領域１０４は修正されたというステータスについてのテキストインジケータ（例えば「編集された」又は「修正された」）を表示してもよい。
【００２０】
いくつかの実施形態において、ドキュメントステータス領域１０４は「ロックされた（鍵を掛けられた）」というステータスを表示してもよい。例えば、表示領域１０２に表示された開かれたドキュメントが特定の時間（例えば１時間、１日、１年、又はそれ以上）編集されていない場合、セーブレス・アウェア・アプリケーションによってこのドキュメントは「ロックされた」状態に置かれてもよく、そしてセーブレス・アウェア・アプリケーションは「ロックされた」という語をドキュメントステータス領域１０４に表示してもよい。例えば、まずドキュメントをアンロックする（鍵を開ける）か、このドキュメントの複製を生成することなしに、ロックされたドキュメントを編集することをユーザは許されなくてもよい。もしドキュメント表示領域１０４に表示されたドキュメントがロック又は編集されていないならば、ドキュメントステータス領域１０４は空であってもよい。例えば、ドキュメントがロックされておらずかつ編集されていない場合、ドキュメントステータス領域１０４はステータステキストを全く表示しなくてもよい。
【００２１】
グラフィカル・ユーザ・インタフェース１００はまた、メニュー１０８にアクセスするためのユーザ・インタフェース要素１０６を含む。メニュー１０８は、ロックされたドキュメントをアンロックするためのメニュー項目を含む。例えば、表示されたドキュメントがロックされた状態にある場合、ロックされたドキュメントをアンロックしかつ編集を許可するために、ユーザはユーザ・インタフェース要素１０６を用いてメニュー１０８にアクセスし、かつ「アンロック（Ｕｎｌｏｃｋ）」メニュー項目を選択してもよい。
【００２２】
ロックされたドキュメントは、複製されたドキュメントの編集を許可するように、複製されてもよい。例えば、ユーザはロックされたドキュメントを編集することを望み、また現在ロックされているバージョンのドキュメントを保存することを望むかもしれない。編集と、現在ロックされているバージョンのドキュメントの保存との双方のために、ユーザはインタフェース要素１０６を用いてメニュー１０８にアクセスし、「複製（Ｄｕｐｌｉｃａｔｅ）」メニュー項目を選択してもよい。「複製」メニュー項目が選択されると、セーブレス・アウェア・アプリケーションはロックされたバージョンを複製し、ユーザが複製を編集できるようにユーザに対してこの複製を提示する。いくつかの実施形態においては、ユーザがロックされたドキュメントを編集しようとする時に、ユーザはロックされたドキュメントをアンロックするか又は複製することを自動的に促される。例えば、ユーザがロックされたドキュメントを編集しようとするならば、ドキュメントの現在のロックされているバージョンをアンロックするか又は複製することをユーザに促すポップアップメニューが表示されてもよい。
【００２３】
ドキュメントはユーザによってロックされてもよい。例えば、ドキュメントをロックさせるために、ユーザは「ロック」ユーザ・インタフェース要素を選択してもよい。ドキュメントが格納される場所がもはやアクセス可能ではない場合に、ドキュメントがまたロックされてもよい。例えば、ドキュメントがネットワーク格納デバイスに格納されており、このネットワーク格納デバイスがもはやアクセス可能ではない場合、このドキュメントはロック状態にされてもよい。もしユーザがロックされたドキュメントを編集しようとするならば、ユーザはドキュメントをアンロックし、このドキュメントについて代わりの格納場所を提供するように促されてもよい。一度代わりの格納場所がユーザによって提供されると、ロックされたドキュメントは複製されてこの代わりの格納場所に格納されてもよく、そしてユーザはこの複製されたアンロックされたドキュメントを編集し始めることを許されてもよい。
【００２４】
メニュー１０８は、現在表示されているドキュメントの前のバージョンにユーザがアクセスすることを可能としてもよい。例えば、現在表示されているドキュメントの前のバージョンにアクセスするために、ユーザはユーザ・インタフェース要素１０６を用いてメニュー１０８にアクセスし、「バージョン（Ｖｅｒｓｉｏｎ）」又は「リビジョン」メニュー項目を選択してもよい。ユーザが「リビジョン」メニュー項目を選択することに応答して、図６及び７を参照して以下で詳しく開示されるように、バージョン管理インタフェースが表示されてもよい。
【００２５】
自動ドキュメント保存
図２は、自動ドキュメント保存の例を示すブロック図２００である。コンビュータシステムによって実行される「セーブレス・アウェア」アプリケーションは、システム上での１以上の保存イベントを検知することに応答して、アプリケーション内で開かれているドキュメントを自動的に保存するように構成されうる。図２００のステップ２０４において、ドキュメント２０２はコンピュータシステム上でセーブレス・アウェア・アプリケーションにおいて開かれてもよい。
【００２６】
ブロック２０６において、システム上で実行されているセーブレス・アウェア・アプリケーションによって保存イベントか検出されてもよい。保存イベントは、例えば、時間間隔の経過、ユーザ入力の休止、ドキュメントから離れるフォーカスの移動、ドキュメントを閉じること、ドキュメントの印刷、ドキュメントへの内容のペースト、ドキュメントからの内容の削除、又はドキュメントの書式設定、を含むことができる。例えば、セーブレス・アウェア・アプリケーションは５分ごとにドキュメントを自動的に保存するように構成されていてもよい。
【００２７】
ユーザがテキストドキュメントへの打ち込みを行っており、休止した（例えば考えるため、コーヒーを一杯手に入れるために、又は校正するために）場合、セーブレス・アウェア・アプリケーションはユーザ入力の休止を検出し、ドキュメントを自動的に保存してもよい。もしユーザがドキュメントウィンドウとのインタラクションをやめ、コンピュータシステム上で開いている他のウィンドウ又はアプリケーションとのインタラクションを開始するならば、セーブレス・アウェア・アプリケーションはフォーカスの移動（又はドキュメント上のフォーカスを失うこと）を検出し、ドキュメントを保存してもよい。ユーザがドキュメントを閉じ、ドキュメントを印刷し、ドキュメントへと内容をペーストし、ドキュメントから内容を削除し、又はドキュメントの書式設定をした場合、セーブレス・アウェア・アプリケーションはドキュメントに対するこれらの変更を検出し、これらを保存イベントとして特定してもよい。
【００２８】
いくつかの実施形態において、セーブレス・アウェア・アプリケーションは時間間隔に基づいてドキュメントを保存するように構成されていてもよい。例えば、時間間隔が経過した時に、ドキュメントが保存されてもよい。何らかの方法、例えば打ち込む又はスクロールすることにより、ユーザがドキュメントとインタラクションするならば、ユーザがドキュメントとインタラクションしている間には保存動作が起こらないように、自動保存が一定の時間遅らされてもよい。こうして、ユーザが活発にアプリケーション又はドキュメントを使っている間のドキュメントの自動保存が避けられうる。
【００２９】
いくつかの実施形態において、自動保存を送らせる時間は、以下のアルゴリズムによって決定されてもよい。変数「ｘ」は、アプリケーションによって自動保存が待機される時間間隔（秒）を表す。アプリケーションについての時間間隔値が特定されていない場合、規定の時間間隔（例えば３０秒）が用いられてもよい。変数「ｙ」は、自動保存間の最大時間を表す。例えば、自動保存間の最大時間は５分であってもよく、保存せずに５分間が経過した場合に、自動保存が実行されてもよい。
【００３０】
いくつかの実施形態によれば、以下のアルゴリズムが用いられてもよい。例えば、ドキュメントにおける変更が検出された場合に、ｘ秒間動作するタイマが開始されてもよい。ユーザがドキュメントとインタラクションするならば、このタイマはｘ秒間遅らされてもよい。自動保存からの時間がｙ×（１／２）よりも大きいならば、タイマはｘ／２秒遅らされてもよい。自動保存からの時間がｙ×（７／８）よりも大きいならば、タイマはｘ／８秒遅らされてもよい。計算された時間が、次の自動保存を、前回の自動保存からｙ秒を超えるようにさせる場合、前回の自動保存からｙ秒を超えることがないように、時間が縮められる。
【００３１】
自動保存は、例えば他のアプリケーションへの切り換え、他のアプリケーションがこのファイルの最も現在の内容を読み込みたいことを示した場合（協調読み込み）、ファイルの内容を劇的に変える操作の前（例えばリバート（逆戻り））、又はユーザが自分のコンピュータをスリープ状態におく前、のような他の保存イベントによって引き起こされてもよい。
【００３２】
いくつかの実施形態において、セーブレス・アウェア・アプリケーションは、セーブレス・アウェア・アプリケーションが実行されているコンピューティングデバイスの電源特性に基づいて自動的にドキュメントを保存してもよい。いくつかの実施形態において、自動保存の頻度は、電源がバッテリーであるか又は壁面コンセントであるかに基づいていてもよい。例えば電源がバッテリーである場合、バッテリーがより長く持続するように、電源が壁面コンセントである場合よりもより低い頻度で行われてもよい。
【００３３】
いくつかの実施形態において、自動保存はコンピューティングデバイスに電力を供給するバッテリーの残り電力量に基づいていてもよい。例えば、セーブレス・アウェア・アプリケーションは、コンピュータのバッテリーに残っている充電パーセントが小さい値（例えば充電が残り５％又は１０％）に達した時に、又は低バッテリー通知が受け取られた時に、バッテリーが切れた場合にドキュメントに対する変更が失われないように、ファイルを自動的に保存してもよい。いくつかの実施形態において、バッテリーの残り電力が減少するにつれて、自動保存がだんだん少ない頻度で行われてもよい。
【００３４】
セーブレス・アウェア・アプリケーションはまた、他のディスク又はＣＰＵの機能をより効率的に利用するために、他のシステムイベントと協調してもよい。例えばセーブレス・アウェア・アプリケーションは、コンピュータのＣＰＵ使用率がいくらかの少ない値（例えば２０％又は３０％のＣＰＵ使用率）に達する時に着目し、この低いＣＰＵ使用率を自動的に開かれているドキュメントを保存するために利用してもよい。いくつかの実施形態においてセーブレス・アウェア・アプリケーションは、電源効率を向上させるために、又は十分に利用されていないシステムリソース（例えば少ないＣＰＵ、メモリ、又はバッテリー使用）を利用するために、一連のドキュメント保存をまとめてもよい。
【００３５】
ブロック２０８においてドキュメント２０２は、コンピュータシステム上で動作しているセーブレス・アウェア・アプリケーションによってセーブされてもよく、こうして保存されたドキュメント２１０が生じる。例えば、保存イベントが検出された場合、セーブレス・アウェア・アプリケーションは自動的にドキュメントを保存してもよく、それゆえ、そうでなければドキュメント２０２に対する変更が失われるような異常終了又は異常に閉じられることをドキュメント又はセーブレス・アウェア・アプリケーションが経験したとしても、ユーザがドキュメントに対して行った変更が失われなくなる。保存されたドキュメント２１０は、例えば回転ディスク又はソリッドステート媒体（固体媒体）のようなローカル格納デバイスに、保存又は格納されることができる。保存されたドキュメント２１０は、ネットワークサーバ又は他のネットワーク格納媒体のようなリモート格納媒体上に、保存又は格納されることができる。いくつかの実施形態においては、セーブレス・アウェア・アプリケーションが最後の保存の時からドキュメント２０２に対してなされた変更が存在すると判定した場合にのみ、ドキュメント２０２は保存される。いくつかの他の実施形態において、セーブレス・アウェア・ドキュメントは、ドキュメント２０２に対する変更がなされたか否かにかかわらず、保存イベントが検出された場合にドキュメント２０２を保存する。
【００３６】
図４は、ドキュメントの自動保存についての例示的な処理４００の流れ図である。処理４００は例えば１以上のコンピューティングデバイスを用いて行われうる。ステップ４０２において、ドキュメントが開かれる。例えば、セーブレス・アウェア・アプリケーションは、図１を参照して記載されたようにドキュメントを開き及び表示することができる。ステップ４０４において、保存イベントが検出される。例えば、図２を参照して記載されたような保存イベントが検出されてもよい。保存イベントの検出は、セーブレス・アウェア・アプリケーションがステップＳ４０６において開かれたドキュメントを保存することを引き起こしてもよい。いくつかの実施形態においては、ドキュメントが保存された最後の時からドキュメントが編集、修正、又は変更されている場合にのみ、ドキュメントは保存されるだろう。いくつかの実施形態においては、ドキュメントが保存された最後の時からドキュメントに対して何らかの変更がなされているか否かに関わらず、ドキュメントは保存されるだろう。
【００３７】
自動ドキュメントバージョニング
図３は、例示的な自動ドキュメントバージョニングを示すブロック図である。コンピュータシステムによって実行される「セーブレス・アウェア」アプリケーションは、システム上で１以上のバージョニングイベントを検出することに応答して、アプリケーションにおいて開かれたドキュメントのバージョンを自動的に作成しかつ保存するように構成されていてもよい。図３００のブロック３０４において、ドキュメント３０２が開かれる。例えばドキュメント３０２は、コンピュータシステム上のセーブレス・アウェア・アプリケーションによって開かれてもよい。
【００３８】
ブロック３０６において、バージョニングイベントが検出される。バージョニングイベントは、例えば、ドキュメントを開くこと、ドキュメントを閉じること、ドキュメントを電子メール送信すること、ドキュメントを印刷すること、ドキュメントを削除すること、ドキュメントへのユーザ入力が長く休止すること（例えば１時間以上の休止）、又はロックされたドキュメントを編集しようとすること、を含むことができる。例えば、ユーザがドキュメントを電子メール送信するならば、どのバージョンのドキュメントが電子メール送信されたのかをユーザが知ることができるように、電子メール送信されたバージョンのドキュメントが保存されてもよい。他の例として、ユーザはドキュメントについて作業をしているかもしれず、そして１時間昼食に行くかもしれない。この１時間の休憩が、ドキュメントのバージョンが生成され及び格納されることを引き起こしてもよい。バージョニングイベントは、ユーザ入力のより長い又は短い休止によって定義されてもよい。
【００３９】
いくつかの実施形態によれば、ユーザがロックされたドキュメントを編集しようとすることに応答して、ドキュメントのバージョンは生成され及び格納される。例えば、特定の時間（一日、一週間、一ヶ月、など）編集されなかったドキュメントをユーザが開くならば、このドキュメントはロックされたドキュメントとして開かれてもよい。もしユーザがロックされたドキュメントを編集しようとするならば、ユーザがこのドキュメントの前のバージョンを再調査することができるように、ドキュメントのバージョンが生成され及び格納されてもよい。ユーザがロックされたドキュメントを編集しようとすることに応答してロックされたドキュメントのバージョンが自動的に生成されてもよいし、ドキュメントの複製バージョンを生成するようにユーザは促されてもよい。
【００４０】
いくつかの実施形態によれば、ドキュメントの前のバージョンに戻ることは、ドキュメントのバージョンが生成されかつ格納されることを引き起こす。例えば、ユーザがドキュメントの前のバージョンへと戻すならば、前のバージョンへと戻る前に、ドキュメントの現在のバージョンの内容がドキュメントのバージョンとして保存されてもよい。ドキュメントに名前を付けること又は名前を変更することが、ドキュメントが生成されかつ格納されることを引き起こしてもよい。例えば、最初にドキュメントに名前をつけることに応答して、ドキュメントの新しいバージョンが生成されかつ格納されてもよい。ドキュメントをロックすることが、ドキュメントのバージョンが生成されかつ格納されることを引き起こしてもよい。例えば、ユーザがドキュメントを手動でロックすることに応答して、ロックされたドキュメントの新しいバージョンが生成されかつ格納されてもよい。
【００４１】
いくつかの実施形態によれば、格納デバイス（ハードデバイス）からドキュメントを削除することは、ドキュメントのバージョンが生成されかつ格納されることを引き起こす。例えば、削除動作は（例えばカーネルフックを用いて）捕捉されることができ、削除動作が完了するのに先立ってドキュメントの複製が生成されることができる。
【００４２】
バージョニングイベントは設定可能であってもよい。例えばユーザは、上に列挙されたバージョニングイベントのサブセット（下位集合）に基づいて、ファイルのバージョンを生成しかつ格納するように、セーブレス・アウェア・アプリケーションを設定することが可能であってもよい。ユーザは、ユーザが与えた条件に基づいて、新しい又は追加のバージョニングイベントを特定することが可能であってもよい。
【００４３】
いくつかの実施形態によれば、ユーザは明示的にドキュメントのバージョンを生成及び格納してもよい。例えばユーザは、ドキュメントのバージョンを格納するためにユーザ・インタフェース要素を選択してもよい。いくつかの実施形態において、ユーザは関連するコメントとともにバージョンを保存してもよい。例えば、ユーザは明示的にドキュメントのバージョンを保存してもよく、このバージョンについてのコメントを与えてもよい。いくつかの実施形態において、ドキュメントのコメントされたバージョンは、ユーザが明示的に削除するまで保存されてもよい。
【００４４】
ブロック３０８において、ドキュメントの新しいバージョンが生成されかつ格納される。例えば、バージョニングイベントを検出することに応答して、セーブレス・アウェア・アプリケーションは自動的にドキュメントの複製を生成してもよく、この複製をドキュメントの前のバージョンとして保存してもよい。結果として、ドキュメントのバージョン３１０が生成される。
【００４５】
ドキュメントの複数の同一のバージョンが生成されてもよい。例えば、間に編集をしないまま続けてドキュメントを開くことにより、ドキュメントの複数の同一のバージョンが生成しうる。代わりにいくつかの実施形態においては、前のバージョンに対してなされた何らかの変更が存在する場合にのみ、新しいバージョンが生成される。ドキュメントの同一のバージョンの数に、制限が設けられてもよい。例えば、ドキュメントの同一のバージョンが最大で３つ格納されてもよいように、システムは構成されてもよい。
【００４６】
いくつかの実施形態によれば、ドキュメントのバージョンはインテリジェントに（理知的に）バージョンストア（バージョンの蓄積）から除かれ又は消去されてもよい。例えばバージョンストアは、ドキュメントのバージョンの集合である。ドキュメントの最も興味のある（例えば最も重要な）バージョンが保存され、ドキュメントのより興味の無い（例えばより重要でない）バージョンが削除されるように、バージョンストアき切り詰められることができる。ドキュメントのバージョンは、消去可能（削除可能）としてマークされ（印を付けられ）てもよい。ドキュメントの消去可能な又は削除可能なバージョンは、任意の時に削除されてもよい。
【００４７】
以下の規則が、どのドキュメントが消去可能又は削除可能であるかを決定するために用いられうる。例えば、コメントを伴うバージョンは、自動的には消去されない。ユーザは、望むのならば、コメントされたバージョンを手動で削除することができる。前日については、１時間あたり少なくとも１つのドキュメントのバージョンがバージョンストアに保持される。前月については、１日あたり少なくとも１つのドキュメントのバージョンがバージョンストアに保持される。１ヶ月以上古いドキュメントのバージョンについては、１週間あたり少なくとも１つのドキュメントのバージョンがバージョンストアに保持される。ドキュメントが開かれた最後の２回において現在作業中であるドキュメントを表すバージョンは、バージョンストアに保持される。明示的なユーザアクション（例えば元に戻すこと、名前を変更すること、ロックすること）を表すバージョンは、自動的に生成されたバージョンと比べて保持されてもよい。上述のカテゴリーのうちの１以上に当てはまらないドキュメントのバージョンは、消去可能又は削除可能としてマークされてもよい。
【００４８】
図５は、自動的にドキュメントのバージョンを作成するための例示的な処理５００の流れ図である。ステップ５０２において、ドキュメントが開かれる。例えば、ドキュメントはセーブレス・アウェア・アプリケーションにおいて開かれてもよい。ステップ５０４において、バージョニングイベントが検出される。例えばバージョニングイベントは、図３を参照して上述したバージョニングイベントのうちの１つでありうる。ステップ５０６において、ドキュメントの複製が生成される。例えば、バージョニングイベントを検出することに応答して、ドキュメントの複製が生成されてもよい。ドキュメントの複製は、ドキュメント全体の複製であってもよい。代わりにドキュメントの複製は、ドキュメントと、ドキュメントの前のバージョンとの差分を格納することのみを指してもよい。ステップ５０８において、この複製はドキュメントの前のバージョンとして格納される。例えば、この複製はドキュメントのバージョンとして格納されてもよく、ユーザはドキュメントの現在開かれており表示されているバージョンを編集することを続けてもよい。ドキュメントの前のバージョンは、例えば以下に開示されるバージョン管理インタフェースをを用いてユーザによって後に取得されかつ閲覧されてもよい。ドキュメントのバージョン間の差分のみが格納される場合、格納された差分に基づいて、ドキュメントの特定のバージョンが再現されてもよい。
【００４９】
バージョン管理インタフェース
図６は、ドキュメントのバージョンを表示しインタラクションするための例示的なグラフィカル・ユーザ・インタフェース６００を示す。例えばユーザ・インタフェース６００は、例えば図１のメニュー１０８から、又は他のメニューから、ユーザが「リビジョン」又は「バージョン」メニュー項目を選択することに応答して表示されてもよい。
【００５０】
現在作業中のドキュメント６０２（例えば、セーブレス・アウェア・アプリケーションにおいて現在開かれているドキュメント）は、ユーザ・インタフェース６００の領域６１４内に表される。例えば領域６１４は、ユーザ・インタフェース６００内に、インタフェース６００の右部に、左部に、上部に、又は下部に、配置されてもよい。インタフェース６００が（例えばメニュー１０８内でのユーザ選択により）呼び出された際、現在作業中のドキュメント６０２は、ディスプレイ上の現在の位置から領域６１４へと移動するようにアニメーションされてもよい。ラベル６２４が、領域６１４及び現在作業中のドキュメント６０２の近傍に表示されてもよい。ラベル６２４は、現在作業中のドキュメント６０２と関連する識別情報を表示してもよい（例えば、ドキュメント６０２をドキュメントの現在のバージョンとして明示する）。
【００５１】
現在作業中のドキュメント６０２に対するリビジョン、又は現在作業中のドキュメント６０２のバージョンが、領域６１６に表示される。例えば、図２及び図４を参照して記載されたように自動的に生成された現在作業中のドキュメント６０２のバージョンが、領域６１６に表示されてもよい。ドキュメントのバージョン又はリビジョン６０４〜６１２は、ユーザが現在作業中のドキュメント６０２のバージョンを編集しかつ保存することを可能とする、単一のアプリケーション又は複数の異なるアプリケーションによって生成されうる。
【００５２】
ドキュメントのリビジョンは、ローカル格納デバイス又はネットワーク格納デバイスから取得されてもよい。ドキュメントのリビジョンは、ドキュメントアーカイブ又はファイルのバックアップ場所から取得されてもよい。ユーザ・インタフェース６００は、アーカイブアプリケーション若しくはファイルバックアップアプリケーションと、格納場所（例えばネットワークファイルサーバ又はローカル格納デバイス）とのうちの１以上から、ドキュメントのバージョンを取得してもよい。
【００５３】
ユーザ・インタフェースが呼び出された時、ドキュメントのバージョン６０４〜６１２は、ユーザ・インタフェース領域６１６へと、ビュー内へシャッフルされるようにアニメーションされてもよい。ドキュメントのリビジョン６０４〜６１２は、時間順に、又は時間順の反対に、領域６１６に表示されてもよい。例えばリビジョン６０４〜６１２は、個々のリビジョン又はバージョンが生成された時刻に基づいた順序で表示されてもよい。ドキュメント６０４〜６１２は、シーケンス（一続き）として表示されてもよい。例えば、ドキュメント６０４〜６１２のシーケンスは、図６に表されているように、アプリケーションの積み重ねられた（スタックされた）シーケンスとして表示されてもよい。
【００５４】
ドキュメントのバージョン６０４〜６１２のシーケンスが表示されている際に、新しく生成されたドキュメントのバージョンが表示されたシーケンスに追加されてもよい。例えば、他のアプリケーションが現在作業中のドキュメント６０２と関連付けられた新しいバージョンを生成したならば、この新しいバージョンが表示されているドキュメントのバージョン６０４〜６１２へと追加されてもよい。代わりに他の例において、ユーザがドキュメントの現在のバージョンをドキュメントの前のバージョンで置き換えるならば、ドキュメントのこの置き換えられた現在のバージョンが、後に参照するために、表示されているドキュメントの前のバージョンのシーケンスに追加されてもよい。
【００５５】
ラベル６２２が、領域６１６及びドキュメントのバージョン６０４〜６１２の近傍に表示されてもよい。ラベル６２２は、ドキュメントの選択されたバージョン（例えばドキュメントのバージョン６０４）に関連付けられた識別情報を、ドキュメントのバージョンのシーケンス６０４〜６１２の前に表示してもよい。例えばこのバージョンラベルは、選択されたバージョンが生成された日付又はバージョン生成イベント（例えばドキュメントが電子メールで送信された、ドキュメントが印刷された、など）を示してもよい。
【００５６】
ドキュメントのバージョン６０４〜６１２は、操作可能である。例えばユーザは、表示されたドキュメントのバージョン６０４〜６１２のシーケンスの中をスクロールしてもよい。ユーザは、ドキュメントがディスプレイの前面又は背面へと移動するように見えるようにさせることにより、ドキュメントの中を移動してもよい。例えば図６において、ドキュメントのバージョン６０４はドキュメントのバージョンのシーケンスの最前部にあり、その内容が見えるため、ドキュメントのバージョン６０４は現在選択されているドキュメントのバージョンである。もしユーザが、例えばバージョン６０８のようなドキュメントの他のバージョンを選択することと、見ることと、操作することとのうちの少なくとも１つを望むのならば、バージョン６０８がシーケンスの前面に位置しその内容が見えるまで、ユーザはドキュメントのバージョンのシーケンスの中をスクロールすることができる。
【００５７】
バージョン６０８へとスクロールして戻ることにより、ドキュメントのバージョン６０４及び６０６は（ユーザに向かって）最前面へと表示されそしてディスプレイから消えてもよい。もしドキュメントのバージョン６０８が選択されてドキュメント６０４〜６０２のシーケンスの前面に表示され（６０８が選択されている時にはバージョン６０８〜６１２のみが表示されてもよい）、ユーザがもはや見えなくなったバージョン６０６を見ることを望むのならば、ユーザはリストの中をスクロールして戻ってもよい。例えば、ドキュメントのバージョン６０４を見るために、シーケンス６０４〜６１６はユーザ・インタフェースの背面へと移動するようにアニメーションされてもよい。ドキュメントのバージョン６０８〜６１２は、ユーザ・インタフェース６００の背面へと移動してもよく、バージョン６０６は、表示されたドキュメントのバージョンのシーケンスの前面に追加されてもよい。
【００５８】
ドキュメントのシーケンスの中をスクロールすることは、入力デバイスからの直接入力（例えばキーボードの矢印キー又はマウスのホイール）によってなされてもよく、タイムライン６１８又はタイムライン位置インジケータ６２０を操作することによってなされてもよい。例えば、ユーザはタイムライン６１０上の位置を示すために（例えば、タイムライン６１６上の位置をクリックすることにより）カーソルを用いてもよい。タイムライン６１０上のカーソル入力に応答して、示された位置に対応するドキュメントのバージョンが選択され、領域６１６に表示されたバージョンのシーケンスの前面に表示されてもよい。例えば、ドキュメントのバージョン６１０に対応するタイムライン６１８上の位置をユーザが示した場合、ドキュメントのバージョン６１０が選択されてバージョン６０４〜６１２のシーケンスの前面に表示されてもよい。
【００５９】
ユーザは、タイムライン位置インジケータ６２０を用いて、タイムライン６１８上の位置を示してもよい。例えばユーザは、バージョン６１２に対応するタイムライン上の位置へと、（例えばマウス又はキーボード入力を用いて）タイムライン６１８に沿って位置インジケータ６２０を移動させてもよく、こうしてドキュメントのバージョン６１２が選択されてドキュメントのバージョンのシーケンスの前面に表示される。いくつかの実施形態において、位置インジケータのユーザ選択は、（例えば、多数のバージョンが存在する場合に、個々のバージョンを示す個々のハッシュを用いて）タイムラインの拡大を引き起こすことができる。
【００６０】
現在選択されているドキュメントのバージョン（例えばドキュメントのバージョン６０４）の内容は、見られてもよく、操作されてもよい。例えば、ユーザが現在作業中のドキュメントの前のバージョンの内容を再調査できるように、ドキュメントの選択されたバージョン（現在作業中のドキュメントの前のバージョン）の内容が表示されてその中をスクロールされてもよい。現在作業中のドキュメントの前のバージョンは編集することができないが、特定の内容が選択された現在作業中のドキュメント６０２内の位置へとコピーされてもよい。
【００６１】
例えば、ユーザはドキュメントに対して編集を行ってもよく、そしてドキュメントの前のバージョンへと戻ることを決心するかもしれない。そうするために、ユーザはバージョン６０４〜６１２のシーケンスの中をスクロールすることによって、ドキュメントの前のバージョンを選択してもよい。一度前のバージョン（例えばバージョン６１０）が選択されてバージョンのシーケンスの前面に表示されると、ユーザは前のバージョン６１０を複製することができ、前のバージョン６１０をドキュメントの現在作業中のバージョンとすることができる。例えばユーザは、ドキュメントの選択された前のバージョンを現在作業中のバージョンとするために、ユーザ・インタフェース要素６２６を選択してもよい。例えば、ユーザ・インタフェース要素６２６の選択は、ドキュメントの前のバージョン６１０を、ドキュメントの現在作業中のバージョンとして復元してもよい。ユーザはそして、前のバージョン６１０から復元された現在作業中のドキュメント６０２を編集してもよい。現在作業中のドキュメント６０２は、複製バージョン６１０によって現在作業中のドキュメントとして置換される前に、前のバージョンとして保存されてもよい。こうして、ユーザはドキュメントの現在作業中のバージョンからドキュメントの前のバージョンへと戻ることができ、ドキュメントのバージョンはドキュメントと関連付けられたそれぞれの重大な変更又はイベントの際に保存されるために、ユーザはこの現在作業中のバージョンへと戻る（又は進む）ことができる。
【００６２】
ユーザは、現在作業中のドキュメント６０２の選択された前のバージョン（例えばバージョン６０４）とインタラクションしてもよい。例えば、ユーザはドキュメントの前のバージョン６０４から内容を選択してコピーすることができ、この内容を現在作業中のドキュメント６０２へとペーストすることができる。例えばテキストドキュメントのバージョンについて、ユーザはテキストの特定の部分（例えば文又は段落）を選択することができ、そしてこうして選んだものを、現在作業中のドキュメント６０２内の特定の位置へとコピーすることができる。ユーザは選択された前のバージョンとインタラクションすることができ、ドキュメントの前のバージョンの内容に対して、ドキュメントのこの前のバージョンに対する変更を起こさない任意の選択操作を行うことができる。例えば、ドキュメントの前のバージョンは読み取り専用であってもよい。
【００６３】
ユーザは、ユーザ・インタフェース要素６２８を選択することにより、ユーザ・インタフェース６００を閉じてもよい。例えばユーザ・インタフェース要素６２８は、ユーザ・インタフェース６００を閉じさせ、図１のインタフェース１００を表示させる、閉じるボタン又はキャンセルボタンであってもよい。いくつかの実施形態において、ユーザ・インタフェース要素６２６のユーザ選択は、ユーザ・インタフェース６００を閉じさせてもよい。例えばユーザ・インタフェース要素６２６は、選択された時に、ドキュメントの現在のバージョンをドキュメントの選択された前のバージョンで置き換えさせ、インタフェース６００を閉じさせ、ドキュメントの選択された前のバージョンを表示する図１のインタフェース１００を表示させる、置き換えボタンであってもよい。
【００６４】
図７は、ドキュメントのバージョンを表示するための例示的な処理７００の流れ図である。ステップ７０２において、ドキュメントの現在のバージョンが表示される。例えば、セーブレス・アウェア・アプリケーションのインタフェース（例えば図１のインタフェース１００）に、ドキュメントの現在作業中のバージョンが表示されてもよい。ステップ７０４において、ドキュメントの前のバージョンを表示する指示が受け取られる。例えば、ドキュメントの現在作業中のバージョンの前のバージョンをユーザが見ることを望んでいることを示すユーザ・インタフェース要素又はメニュー項目を、ユーザは選択してもよい。
【００６５】
ステップ７０６において、ドキュメントの現在作業中のバージョンと、ドキュメントの前のバージョンのシーケンスとが表示される。例えば、同じインタフェース上にドキュメントの現在作業中のバージョンとドキュメントの前のバージョンとの双方を表示することによって、ユーザはドキュメントの前のバージョンをドキュメントの現在作業中のバージョンと比較することができる。ステップ７０８において、ドキュメントの現在作業中のバージョンと、ドキュメントの前のバージョンとの少なくとも一方において操作が実行される。例えばユーザは、ドキュメントの前のバージョンから内容をコピーしてもよく、現在作業中のバージョンへとコピーされたバージョンをペーストしてもよい。
【００６６】
自動ドキュメントレイアウト復元
図８は、ドキュメントレイアウトを復元するための例示的な処理８００の流れ図である。ステップ８０２において、１以上のドキュメントが表示される。例えば、複数のドキュメントがコンピューティングデバイスのディスプレイ上に表示されてもよい。ドキュメントは、単一のアプリケーションの複数のドキュメントウィンドウ内に表示されてもよい。代わりに、ドキュメントは複数のアプリケーションの複数のドキュメントウィンドウ内に表示されてもよい。アプリケーションは、上述のようなセーブレス・アウェア・アプリケーションであってもよい。
【００６７】
ステップ８０４において、表示されたドキュメントの位置が判定される。例えば、ディスプレイ上のドキュメントウィンドウの座標が判定されてもよい。座標は、デカルト座標系に基づいて判定されてもよい。例えばこの座標は、ディスプレイ上の位置を規定する（ｘ，ｙ）座標として判定されてもよい。
【００６８】
ステップ８０６において、ドキュメントレイアウト情報が格納される。例えばドキュメントレイアウト情報は、表示されたドキュメントについての識別子と、このドキュメントについての対応するディスプレイ位置（例えばｘ，ｙ座標）とを含んでもよい。
【００６９】
ステップ８０８において、ドキュメント又はアプリケーションが異常に閉じられたことが検出される。例えば、アプリケーションを実行しているコンピューティングデバイスがクラッシュした（操作不能になった）ならば、又はコンピュータの電源が遮断されたならば、コンピューティングデバイスは動作を停止し、コンピューティングデバイス上で動作しているアプリケーションは異常終了するだろう。他の例として、ユーザがアプリケーション上でハードキル（ｈａｒｄ−ｋｉｌｌ）を実行するならば、アプリケーションは異常終了するだろう。すなわち、ハードキル又はコンピューティングデバイスのクラッシュに応じて、アプリケーションは通常のシャットダウン命令シーケンスを実行することができず、それゆえ異常終了する。
【００７０】
アプリケーションの異常終了は、様々な方法で明示又は検出されることができる。例えばアプリケーションは、コンピューティングデバイス上に、関連するアプリケーション状態ファイルを有してもよい。このアプリケーション状態ファイルは、処理の様々な時点におけるアプリケーションの状態を示してもよく、通常のシャットダウンシーケンスが実行されなかったことを示してもよい。この状態ファイルが、異常終了が起こったか否かを判定するために読み込まれてもよい。代わりにアプリケーションは、アプリケーションが実行している際にコンピュータシステム上に単純にファイルを作成し、アプリケーションの通常のシャットダウンの間にこのファイルを削除してもよい。もし、アプリケーションが開始した時にコンピュータシステム上にまだこのファイルが存在しているのならば、アプリケーションは通常のシャットダウン処理をしておらず、異常終了が検出されてもよい。
【００７１】
ステップ８１０において、ドキュメントレイアウト情報が取得される。例えば、ステップ８０８において異常に閉じられたことを検出した際に、ステップ８０６において格納されたドキュメントレイアウト情報が取得されてもよい。このドキュメントレイアウト情報は、アプリケーションが以前に表示された格納媒体中のドキュメントを探し出すことを可能とする、ドキュメント識別子を含む。このドキュメントレイアウト情報はまた、アプリケーションが、特定されたドキュメントをコンピューティングデバイスのディスプレイ上の以前の位置に表示することを可能とする、位置情報を含んでもよい。
【００７２】
ステップ８１２において、ドキュメント表示が復元される。例えば、ステップ８１０において取得されたドキュメントレイアウト情報に基づいて、以前に表示されていたドキュメントが、コンピューティングデバイスのディスプレイ上の以前の表示位置へと復元されてもよい。
【００７３】
実施形態はまた、本明細書に添付の付録Ａ及び付録Ｂに記載されている。
【００７４】
例示的なシステム構成
図９は、図１〜８の特徴及び処理を実装するための、例示的なシステム構成９００のブロック図である。構成９００は、パーソナルコンピュータ、サーバ、スマートフォン、メディアプレーヤ、電子タブレット、ゲームコンソール、電子メールデバイス、などを含むがこれらには限定されない、コンパイルされた命令に由来するアプリケーションを実行する任意の電子デバイスによって実装されることができる。いくつかの実施形態において構成９００は、１以上のプロセッサ９０２と、１以上の入力デバイス９０４と、１以上のディスプレイデバイス９０６と、１以上のネットワークインタフェース９０８と、１以上のコンピュータ読み取り可能な媒体９１０とを含む。これらの構成要素のそれぞれは、バス９１２によって結合されうる。
【００７５】
ディスプレイデバイス９０６は、液晶ディスプレイ（ＬＣＤ）又は発光ダイオード（ＬＥＤ）技術を用いるディスプレイデバイスを含むがこれらには限定されない、任意の既知のディスプレイ技術でありうる。プロセッサ９０２は、グラフィックプロセッサとマルチコアプロセッサとを含むがこれらには限定されない、任意の既知のプロセッサ技術を用いることができる。入力デバイス９０４は、キーボード（仮想キーボードを含む）、マウス、トラックボール、及び接触感知パッド若しくはディスプレイを含むがこれらには限定されない、任意の既知の入力デバイス技術でありうる。バス９１２は、ＩＳＡ、ＥＩＳＡ、ＰＣＩ、ＰＣＩ  Ｅｘｐｒｅｓｓ、ＮｕＢＵＳ、ＵＳＢ、シリアルＡＴＡ又はＦｉｒｅＷｉｒｅを含むがこれらには限定されない、任意の既知の内部若しくは外部バス技術でありうる。コンピュータ読み取り可能な媒体９１０は、不揮発格納媒体（例えば光学ディスク、磁気ディスク、フラッシュドライブなど）又は揮発媒体（例えばＳＤＲＡＭ、ＲＯＭなど）を含むがこれらには限定されない、実行のためにプロセッサ９０２へと命令を提供すること関与する、任意の媒体でありうる。
【００７６】
コンピュータ読み取り可能な媒体９１０は、オペレーティングシステム（例えばＭａｃ  ＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）など）を実装するための様々な命令９１４を含むことができる。オペレーティングシステムは、マルチユーザ、マルチプロセッシング、マルチタスキング、マルチスレッディング、及びリアルタイムなどでありうる。オペレーティングシステムは、入力デバイス９０４からの入力を認識すること；ディスプレイデバイス９０６へと出力を送ること；コンピュータ読み取り可能な媒体９１０上でファイル及びディレクトリの記録をとること；直接又はＩ／Ｏコントローラを介して制御可能な周辺デバイス（例えばディスクドライブ、プリンタなど）を制御すること；及びバス９１２上のトラフィックを管理すること；を含むがこれらには限定されない基礎的なタスクを実行する。ネットワーク通信命令９１６は、ネットワーク接続を確立し、及び維持することができる（例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、イーサネット（登録商標）のような通信プロトコルを実装するためのソフトウェア）。
【００７７】
グラフィック処理システム９１８は、グラフィック及び画像の処理能力を与える命令を含むことができる。例えばグラフィック処理システム９１８は、図１〜８を参照して記載したリサンプリング処理を実行することができる。
【００７８】
アプリケーション９２０は、画像処理アプリケーション、又は例えば写真若しくはビデオのエディタのような図１〜８を参照して記載したリサンプリング処理を用いる任意の他のアプリケーションでありうる。リサンプリング処理は、オペレーティングシステム９１４において実装されることもできる。
【００７９】
記載された特徴は、データ格納システムからデータ及び命令を受信し、データ格納システムへとデータ及び命令を送信する、ように結合された少なくとも１つのプログラム可能なプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む、プログラム可能なシステム上で実行される１以上のコンピュータプログラムにおいて有利に実装されうる。コンピュータプログラムは、特定の機能を実行する又は特定の結果をもたらすために、コンピュータにおいて直接に又は間接的に用いられうる命令セットである。コンピュータプログラムは、コンパイル型言語又はインタプリタ型言語を含む任意の形式のプログラミング言語（例えばオブジェクト指向Ｃ、Ｊａｖａ（登録商標）など）によって書かれることができ、スタンドアロンプログラムとしての展開、又はモジュール、コンポーネント、サブルーチン、若しくはコンピューティング環境中で用いるのに適した他のユニットとしての展開、を含む任意の形式で展開することができる。
【００８０】
命令のプログラムの実行のために適したプロセッサは、例えば、任意の種類のコンピュータの、汎用マイクロプロセッサと専用マイクロプロセッサとの双方と、単一プロセッサ又はマルチプロセッサ若しくはマルチコアの一方と、を含む。一般的にプロセッサは、読み取り専用メモリ若しくはランダムアクセスメモリ、又は双方から、命令及びデータを受信するだろう。コンピュータの本質的な要素は、命令を実行するプロセッサと、命令及びデータを格納する１以上のメモリである。一般的にコンピュータはまた、データファイルを格納する１以上の大容量格納デバイスを含み、又はこれと通信するために動作可能に結合されているだろう。このようなデバイスは、内部ハードディスク及び取り外し可能ディスクのような磁気ディスク；光磁気ディスク；及び光学ディスク；を含む。コンピュータプログラム命令及びデータを具体的に実現するために適した格納デバイスは、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイスのような半導体メモリデバイス；内部ハードディスク及び取り外し可能ディスクのような磁気ディスク；光磁気ディスク；及びＣＤ−ＲＯＭディスク及びＤＶＤ−ＲＯＭディスク；を含む、全ての形態の不揮発メモリを含む。プロセッサ及びメモリは、ＡＳＩＣ（特定用途向け集積回路、ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ）によって補完されてもよく、ＡＳＩＣに含まれてもよい。
【００８１】
ユーザとのインタラクションに備えて、特徴は、ユーザに対して情報を表示するためのＣＲＴ（陰極線管）又はＬＣＤ（液晶ディスプレイ）モニタのようなディスプレイデバイスと、キーボードと、ユーザがコンピュータに対して入力を与えることができるマウス又はトラックボールのようなポインティングデバイスと、を有するコンピュータ上で実装されることができる。
【００８２】
特徴は、データサーバのようなバックエンド構成要素を含む、アプリケーションサーバ若しくはインターネットサーバのようなミドルウェア構成要素を含む、グラフィカル・ユーザ・インタフェース若しくはインターネットブラウザを有するクライアントコンピュータのようなフロントエンド構成要素を含む、又はこれらの任意の組み合わせを含む、コンピュータシステムにおいて実装されることができる。システムの構成要素は、通信ネットワークのような、任意の形式又は媒体のデジタルデータ通信によって接続されることができる。通信ネットワークの例は、例えばＬＡＮ、ＷＡＮ、並びにインターネットを形成するコンピュータ及びネットワークを含む。
【００８３】
コンピュータシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは、一般的に互いに離れており、典型的にはネットワークを介してインタラクションする。クライアントとサーバという関係は、それぞれのコンピュータにおいて動作し、互いにクライアント−サーバ関係を有するコンピュータプログラムのために生じる。
【００８４】
開示された実施形態の１以上の特徴又はステップは、ＡＰＩを用いて実装されることができる。ＡＰＩは、呼び出す（ｃａｌｌｉｎｇ）アプリケーションと、サービスを提供する、データを提供する、又は動作若しくは計算を実行する他のソフトウェアコード（例えばオペレーティングシステム、ライブラリルーチン、関数）との間で渡される１以上のパラメータを定義することができる。
【００８５】
ＡＰＩは、ＡＰＩ仕様文書に規定された呼び出し規約に基づくパラメータリスト又は他の構造を介して１以上のパラメータを送信又は受信する、プログラムコード内の１以上の呼び出しとして実装されることができる。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、配列、リスト、又は他の呼び出しでありうる。ＡＰＩ呼び出し及びパラメータは、任意のプログラミング言語において実装されることができる。プログラミング言語は、ＡＰＩをサポートする機能にアクセスするためにプログラマが採用するボキャブラリ及び読み出し規約を定義することができる。
【００８６】
いくつかの実施形態において、ＡＰＩ呼び出しはアプリケーションを実行しているデバイスの能力、例えば入力能力、出力能力、処理能力、電源能力、通信能力など、をアプリケーションへと報告することができる。
【００８７】
いくつかの実施形態が記載された。しかしながら、様々な修正がなされてもよいことが理解されるだろう。例えば、記載された流れ（フロー）から、他のステップが与えられてもよいし、ステップが除去されてもよいし、記載されたシステムに、他の構成要素が追加されてもよいし、構成要素が除去されてもよい。したがって、他の実施形態も以下の請求の範囲内にある。
【００８８】
関連出願へのクロスリファレンス
本願は、２０１１年１月１４日に提出された、"Saveless Documents"と題する米国仮出願第６１／４３３１８３号への優先権を主張し、その内容の全体は参照により本明細書に組み込まれる。
【図２】
2012185805.tif 000003
【図３】
2012185805.tif 000004
【図４】
2012185805.tif 000005
【図５】
2012185805.tif 000006
【図７】
2012185805.tif 000007
【図８】
2012185805.tif 000008
【図９】
2012185805.tif 000009
【図１】
2012185805.tif 000010
【図６】
2012185805.tif 000011
【手続補正書】
【提出日】平成24年3月12日(2012.3.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングデバイスの第１のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、
前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、
前記指示を受け取ったことに応答して、第１の部分と第２の部分とを有する第２のユーザ・インタフェースを表示する工程と、を有し、
前記ドキュメントの前記現在のバージョンは前記第２のユーザ・インタフェースの前記第１の部分に表示され、
前記ドキュメントの特定の前のバージョンは、前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前のバージョンのシーケンスにおいて表示される
ことを特徴とする方法。
【請求項２】
前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、
前記選択された内容をコピーする工程と、
前記選択された内容を、前記第２のユーザ・インタフェースの前記第１の部分に表示された前記ドキュメントの前記現在のバージョンへとペーストする工程と、
をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記第２のユーザ・インタフェースの前記第１の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、
前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、
をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記特定の前のバージョンの内容をスクロールする工程と、
前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、
をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、
前記指示に応答して、
前記ドキュメントの前記特定の前のバージョンを複製する工程と、
前記現在のバージョンを前のバージョンとしてマークする工程と、
前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、
をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項７】
前記ドキュメントの前のバージョンの前記シーケンスが、ドキュメントの積み重ねとして表示されることを特徴とする、請求項１に記載の方法。
【請求項８】
コンピューティングデバイス上で、ドキュメントと関連付けられたバージョニングイベントを検出する工程と、
前記バージョニングイベントを検出したことに応答して、前記ドキュメントを複製する工程と、当該複製を前記ドキュメントの前のバージョンとして持続的に格納する工程と、を含み、
前記バージョニングイベントは、ユーザからの、前記ドキュメントのバージョンを生成する明示的な指示とは関連付けられていないことを特徴とする、方法。
【請求項９】
前記バージョニングイベントは、前記ドキュメントを開くこと、前記ドキュメントを閉じること、前記ドキュメントを電子メールで送信すること、前記ドキュメントを印刷すること、前記ドキュメントを削除すること、前記ドキュメントに対するユーザ入力が長く停止すること、又はロックされたドキュメントを編集しようとすることであることを特徴とする、請求項８に記載の方法。
【請求項１０】
前記前のバージョンについての、前記バージョニングイベントを示すラベルを生成する工程と、
前記ラベルを、前記ドキュメントの前記前のバージョンに関連付ける工程と、
をさらに含むことを特徴とする、請求項８に記載の方法。
【請求項１１】
前記ドキュメントを複製する工程は、前記ドキュメントと、前記ドキュメントの特定の前のバージョンとの間の差分を複製する工程を含み、
前記複製を前記ドキュメントの前のバージョンとして持続的に格納する工程は、前記ドキュメントと、前記特定の前のバージョンとの間の前記差分を格納する工程を含む
ことを特徴とする、請求項８に記載の方法。
【請求項１２】
コンピューティングデバイス上で、ドキュメントと関連付けられた保存イベントを検出する工程と、
前記保存イベントを検出することに応答して、前記ドキュメントを保存する工程と、を含み、
前記保存イベントは、ユーザからの、前記ドキュメントを保存する明示的な指示とは関連付けられていないことを特徴とする方法。
【請求項１３】
前記保存イベントは、時間間隔の経過、ユーザ入力の休止、前記ドキュメントから離れるフォーカスの移動、前記ドキュメントを閉じること、前記ドキュメントの印刷、前記ドキュメントへの内容のペースト、前記ドキュメントからの内容の削除、又は前記ドキュメントの書式設定であることを特徴とする、請求項１２に記載の方法。
【請求項１４】
１以上のドキュメントを、コンピューティングデバイスのディスプレイ上の１以上の対応する位置に表示する工程と、
前記１以上のドキュメントに対応する１以上の識別子と、前記１以上の対応する位置とを含むドキュメントレイアウト情報を格納する工程と、
を含むことを特徴とする方法。
【請求項１５】
コンピューティングデバイス上で表示された１以上のドキュメントが異常に閉じられたことを検出する工程と、
前記１以上のドキュメントに対応する１以上の識別子と、前記１以上のドキュメントについての１以上の位置とを含むドキュメントレイアウト情報を取得する工程と、
前記ドキュメントレイアウト情報に従って前記１以上のドキュメントを表示する工程と、
を含むことを特徴とする方法。
【請求項１６】
１以上の命令を含むコンピュータ読み取り可能な記録媒体であって、
前記１以上の命令は、少なくとも１つのプロセッサによって実行された時に、
コンピューティングデバイスの第１のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、
前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、
前記指示を受け取ったことに応答して、第１の部分と第２の部分とを有する第２のユーザ・インタフェースを表示する工程と、を行わせ、
前記ドキュメントの前記現在のバージョンは前記第２のユーザ・インタフェースの前記第１の部分に表示され、
前記ドキュメントの特定の前のバージョンは、前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前のバージョンのシーケンスにおいて表示される
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１７】
前記命令は、
前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、
前記選択された内容をコピーする工程と、
前記選択された内容を、前記第２のユーザ・インタフェースの前記第１の部分に表示された前記ドキュメントの前記現在のバージョンへとペーストする工程と、
を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記命令は、
前記第２のユーザ・インタフェースの前記第１の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、
前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記命令は、
前記特定の前のバージョンの内容をスクロールする工程と、
前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項２０】
前記命令は、
前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、
前記指示に応答して、
前記ドキュメントの前記特定の前のバージョンを複製する工程と、
前記現在のバージョンを前のバージョンとしてマークする工程と、
前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、
を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項２１】
前記命令は、前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程を行わせる命令を含むことを特徴とする、請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項２２】
前記ドキュメントの前のバージョンの前記シーケンスが、ドキュメントの積み重ねとして表示されることを特徴とする、請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項２３】
１以上のプロセッサと、１以上の命令を格納するコンピュータ読み取り可能な記録媒体とを備えるシステムであって、
前記１以上の命令は、前記１以上のプロセッサによって実行された時に、
コンピューティングデバイスの第１のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、
前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、
前記指示を受け取ったことに応答して、第１の部分と第２の部分とを有する第２のユーザ・インタフェースを表示する工程と、を行わせ、
前記ドキュメントの前記現在のバージョンは前記第２のユーザ・インタフェースの前記第１の部分に表示され、
前記ドキュメントの特定の前のバージョンは、前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前のバージョンのシーケンスにおいて表示される
ことを特徴とするシステム。
【請求項２４】
前記命令は、
前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、
前記選択された内容をコピーする工程と、
前記選択された内容を、前記第２のユーザ・インタフェースの前記第１の部分に表示された前記ドキュメントの前記現在のバージョンへとペーストする工程と、
を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２５】
前記命令は、
前記第２のユーザ・インタフェースの前記第１の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、
前記第２のユーザ・インタフェースの前記第２の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２６】
前記命令は、
前記特定の前のバージョンの内容をスクロールする工程と、
前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２７】
前記命令は、
前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、
前記指示に応答して、
前記ドキュメントの前記特定の前のバージョンを複製する工程と、
前記現在のバージョンを前のバージョンとしてマークする工程と、
前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、
を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２８】
前記命令は、前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程を行わせる命令を含むことを特徴とする、請求項２３に記載のシステム。
【請求項２９】
前記ドキュメントの前のバージョンの前記シーケンスが、ドキュメントの積み重ねとして表示されることを特徴とする、請求項２４に記載のシステム。
【外国語明細書】
2012185805000001.pdf