説明

セーブレスドキュメント

【課題】ドキュメント編集中に予期せず、コピュータが閉じられた場合、のデータの復元を可能とする。
【解決手段】コンピューティングデバイスの第1のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、前記指示を受け取ったことに応答して、第2のユーザ・インタフェースの第1の部分に表示された現在のバージョンと、第2のユーザ・インタフェースの第2の部分におけるドキュメントの前のバージョンのシーケンスに表示されたドキュメントの特定の前のバージョンとを有し、自動的に、ドキュメントを保存することとドキュメントのバージョンを作成する機能及び、自動的にディスプレイ上のドキュメントのレイアウトを復元することを含む

【発明の詳細な説明】
【背景技術】
【0001】
本開示は概してドキュメント管理に関する。
【0002】
従来のコンピューティングシステムは、ユーザが様々なドキュメントを作成すること及び編集することを可能とする。例えばワードプロセッシング・アプリケーションは、ユーザがテキストドキュメントを作成すること及び編集することを可能とする。画像編集アプリケーションは、ユーザが画像ドキュメントを作成すること及び編集することを可能とする。スプレッドシート・アプリケーションは、ユーザがスプレッドシートを作成すること及び編集することを可能とする。しかしながら、ユーザはドキュメントを十分に頻繁に、又は適切な時に、保存しないかもしれない。したがって、ドキュメントが予期せずに、例えばコンピュータシステムによって閉じられた場合に、ドキュメントに対する編集又は変更は失われるかもしれない。
【発明の概要】
【0003】
セーブレスドキュメントが開示される。いくつかの実施形態によれば、方法は、コンピューティングデバイスの第1のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、前記指示を受け取ったことに応答して、第2のユーザ・インタフェースの第1の部分に表示された現在のバージョンと、第2のユーザ・インタフェースの第2の部分におけるドキュメントの前のバージョンのシーケンスに表示されたドキュメントの特定の前のバージョンとを有する、第2のユーザ・インタフェースを表示する工程と、を含むことができる。方法は、前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、前記選択された内容をコピーする工程と、前記選択された内容を、前記ドキュメントの前記現在のバージョンへとペーストする工程と、を含むことができる。
【0004】
いくつかの実施形態によれば、方法は、前記第2のユーザ・インタフェースの前記第1の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、前記第2のユーザ・インタフェースの前記第2の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、を含むことができる。方法は、前記特定の前のバージョンの内容をスクロールする工程と、前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、を含むことができる。
【0005】
いくつかの実施形態によれば、方法は、前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、前記指示に応答して、前記ドキュメントの前記特定の前のバージョンを複製する工程と、前記現在のバージョンを前のバージョンとしてマークする工程と、前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、を含むことができる。方法は、前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程を含むことができる。方法は、第2のユーザ・インタフェースの第2の部分にドキュメントの前のバージョンのシーケンスが表示されている間に、ドキュメントの前のバージョンのシーケンスへと、ドキュメントの新しい前のバージョンを追加する工程と、ドキュメントの前のバージョンの表示されたシーケンスにおいて、新しい前のバージョンを表示する工程と、を含むことができる。
【0006】
いくつかの実施形態によれば、方法は、コンピューティングデバイス上で、ドキュメントと関連付けられたバージョニングイベントを検出する工程と、前記バージョニングイベントを検出したことに応答して、前記ドキュメントを複製する工程と、当該複製を前記ドキュメントの前のバージョンとして持続的に格納する工程と、を含むことができる。いくつかの実施形態によれば、前記バージョニングイベントは、ユーザからの、前記ドキュメントのバージョンを生成する明示的な指示とは関連付けられていない。前記バージョニングイベントは、前記ドキュメントを開くこと、前記ドキュメントを閉じること、前記ドキュメントを電子メールで送信すること、前記ドキュメントを印刷すること、前記ドキュメントを削除すること、前記ドキュメントに対するユーザ入力が長く停止すること、又はロックされたドキュメントを編集しようとすることでありうる。方法は、前記前のバージョンについての、前記バージョニングイベントを示すラベルを生成する工程と、前記ラベルを、前記ドキュメントの前記前のバージョンに関連付ける工程と、を含むことができる。
【0007】
いくつかの実施形態によれば、方法は、ドキュメントと関連付けられた保存イベントを検出する工程と、前記保存イベントを検出することに応答して、前記ドキュメントを保存する工程と、を含むことができる。いくつかの実施形態によれば、前記保存イベントは、ユーザからの、前記ドキュメントを保存する明示的な指示とは関連付けられていない。前記保存イベントは、時間間隔の経過、ユーザ入力の休止、前記ドキュメントから離れるフォーカスの移動、前記ドキュメントを閉じること、前記ドキュメントの印刷、前記ドキュメントへの内容のペースト、前記ドキュメントからの内容の削除、又は前記ドキュメントの書式設定でありうる。
【0008】
いくつかの実施形態によれば、方法は、1以上のドキュメントを、コンピューティングデバイスのディスプレイ上の1以上の対応する位置に表示する工程と、前記1以上のドキュメントに対応する1以上の識別子と、前記1以上の対応する位置とを含むドキュメントレイアウト情報を格納する工程と、を含むことができる。
【0009】
方法はまた、コンピューティングデバイス上で表示された1以上のドキュメントが異常に閉じられたことを検出する工程と、前記1以上のドキュメントに対応する1以上の識別子と、前記1以上のドキュメントについての1以上の位置とを含むドキュメントレイアウト情報を取得する工程と、前記ドキュメントレイアウト情報に従って前記1以上のドキュメントを表示する工程と、を含むことができる。
【0010】
方法を実行するための命令を格納するコンピュータ読み取り可能な一時的でない媒体、及び方法を実行するように構成されたシステムがまた、開示される。
【0011】
本明細書に記載される主題についての様々な実施形態は、以下の利点のうちの1以上を提供するだろう。セーブレスドキュメントは、ドキュメントに対する変更を自動的に保存することにより、アプリケーションの異常終了の場合に、セーブレス・アウェア・アプリケーションにおいて開かれたドキュメントに対してなされた変更が失われることを防ぐことができる。いくつかの実施形態は、ユーザが、現在のバージョンのドキュメントを見ながら、前のバージョンのドキュメントを見ること、比較すること、及びインタラクションすることを可能とする。いくつかの実施形態は、ユーザに、特定のバージョンのドキュメントから前のバージョンのドキュメントへと戻ることを可能とし、さらにこの特定のバージョンのドキュメントへと戻ることを可能とする。
【0012】
他の利点は、過去のある時点において興味があると思った古いバージョンを取り戻すことを可能とするために、ユーザのドキュメントファイルの複数のコピーを手動で管理するという重荷から、ユーザを解放することを含む。さらにユーザは、ドキュメントを閉じる又はアプリケーションを終了する際に、保存していないドキュメントの変更についてどうするかを尋ねる警告によって迷惑を受けない。ユーザは、ドキュメントを他のアプリケーションに読み込ませる前に、ドキュメントの変更を保存することを知らなくてもよいし、気にしなくてもよい。例えば、ユーザがフォルダからドキュメントアイコンをドラッグし、添付ファイルを作成するために電子メールメッセージ編集ウィンドウにドロップしたならば、この添付ファイルは常にその時点までにドキュメントに対してユーザが行った変更の全てを含んでいる。言い換えれば、ユーザの視点から見て、アプリケーションウィンドウ内で表示されているドキュメントは、フォルダ内で表示されているドキュメントと単純に同じものであり、この逆も成り立つ。
【0013】
1以上の実施形態の詳細が、添付の図面及び以下の説明において述べられる。他の特徴、態様、及びありうる利点は、この説明及び図面、ならびに請求の範囲から明らかだろう。
【図面の簡単な説明】
【0014】
【図1】「セーブレス・アウェア」アプリケーションのための例示的なユーザ・インタフェースを示す。
【図2】自動ドキュメント保存システムの例示的なブロック図である。
【図3】自動ドキュメントバージョニングシステムの例示的なブロック図である。
【図4】自動的にドキュメントを保存するための例示的な処理の流れ図である。
【図5】自動的にドキュメントのバージョンを生成するための例示的な処理の流れ図である。
【図6】ドキュメントのバージョンを表示しインタラクションするための例示的なユーザ・インタフェースを示す。
【図7】ドキュメントのバージョンを表示するための例示的な処理の流れ図である。
【図8】ドキュメントレイアウトを元に戻すための例示的な処理の流れ図である。
【図9】図1〜8の特徴及び処理を実装するための例示的なシステム構成のブロック図である。
【0015】
様々な図面における同様の参照符号は、同様の要素を示す。
【発明を実施するための形態】
【0016】
セーブレス・アウェア・アプリケーション
セーブレスドキュメントが開示される。いくつかの実施形態によれば、ドキュメント又は他のコンテンツを作成し、編集し、表示し、又は他の操作若しくは修正をする1以上のアプリケーションは、「セーブレス・アウェア」にされることができる。セーブレス・アウェア(例えば自動保存)アプリケーションは、セーブレス・アウェア・アプリケーションが自動的に文書を保存することを可能とするアプリケーションフレームワーク又はアプリケーション・プログラム・インタフェース(API)を用い又は実装してもよい。セーブレス・アウェア・アプリケーションはまた、ユーザが後にドキュメントの前のバージョン(版)を開くことと表示することとインタラクションすることとのうちの少なくとも1つを行えるように、ドキュメントのバージョンを自動的に作成及び格納してもよい。セーブレス・アウェア・アプリケーションはまた、セーブレス・アウェア・アプリケーションにおいて現在開かれているドキュメントの1以上の前のバージョンについて、ユーザがアクセスすることと見ることとインタラクションすることとのうちの少なくとも1つを可能とするような、ユーザ・インタフェース要素(例えばプルダウンメニュー項目又はボタン)を提供することもできる。
【0017】
さらに、いくつかの実施形態において、セーブレス・アウェア・アプリケーションはディスプレイ上で開かれたドキュメントの位置を自動的に保存し、例えばこのドキュメントが不正常に閉じられた後に、保存された位置へとドキュメントを復元する。これらの及び追加の特徴が、続く文章においてより詳細に開示される。
【0018】
図1は、「セーブレス・アウェア」アプリケーションのための例示的なユーザ・インタフェース100を示す。グラフィカル・ユーザ・インタフェース100は、ドキュメント表示領域102を含む。例えばドキュメント表示領域102は、特定のセーブレス・アウェア・アプリケーションに関連付けられた形式のドキュメントを表示してもよい。例えば、セーブレス・アウェア・アプリケーションがテキストエディタである場合、ドキュメント表示領域102はテキストドキュメントを表示してもよい。もしセーブレス・アウェア・アプリケーションが画像編集アプリケーションである場合、ドキュメント表示領域102は画像を表示してもよい。他の形式のアプリケーションも、セーブレス・アウェアにされうる。このように、他の形式のドキュメントが、ドキュメント表示領域102に表示されてもよい。
【0019】
グラフィカル・ユーザ・インタフェース100はまた、ドキュメントステータス領域104を含む。ドキュメントステータス領域104は、ドキュメント表示領域102に表示されている、現在開かれているドキュメントの状態又はステータスを表示する。例えば、表示されているドキュメントが修正されているが保存されていない場合、ドキュメントステータス領域104は修正されたというステータスについてのテキストインジケータ(例えば「編集された」又は「修正された」)を表示してもよい。
【0020】
いくつかの実施形態において、ドキュメントステータス領域104は「ロックされた(鍵を掛けられた)」というステータスを表示してもよい。例えば、表示領域102に表示された開かれたドキュメントが特定の時間(例えば1時間、1日、1年、又はそれ以上)編集されていない場合、セーブレス・アウェア・アプリケーションによってこのドキュメントは「ロックされた」状態に置かれてもよく、そしてセーブレス・アウェア・アプリケーションは「ロックされた」という語をドキュメントステータス領域104に表示してもよい。例えば、まずドキュメントをアンロックする(鍵を開ける)か、このドキュメントの複製を生成することなしに、ロックされたドキュメントを編集することをユーザは許されなくてもよい。もしドキュメント表示領域104に表示されたドキュメントがロック又は編集されていないならば、ドキュメントステータス領域104は空であってもよい。例えば、ドキュメントがロックされておらずかつ編集されていない場合、ドキュメントステータス領域104はステータステキストを全く表示しなくてもよい。
【0021】
グラフィカル・ユーザ・インタフェース100はまた、メニュー108にアクセスするためのユーザ・インタフェース要素106を含む。メニュー108は、ロックされたドキュメントをアンロックするためのメニュー項目を含む。例えば、表示されたドキュメントがロックされた状態にある場合、ロックされたドキュメントをアンロックしかつ編集を許可するために、ユーザはユーザ・インタフェース要素106を用いてメニュー108にアクセスし、かつ「アンロック(Unlock)」メニュー項目を選択してもよい。
【0022】
ロックされたドキュメントは、複製されたドキュメントの編集を許可するように、複製されてもよい。例えば、ユーザはロックされたドキュメントを編集することを望み、また現在ロックされているバージョンのドキュメントを保存することを望むかもしれない。編集と、現在ロックされているバージョンのドキュメントの保存との双方のために、ユーザはインタフェース要素106を用いてメニュー108にアクセスし、「複製(Duplicate)」メニュー項目を選択してもよい。「複製」メニュー項目が選択されると、セーブレス・アウェア・アプリケーションはロックされたバージョンを複製し、ユーザが複製を編集できるようにユーザに対してこの複製を提示する。いくつかの実施形態においては、ユーザがロックされたドキュメントを編集しようとする時に、ユーザはロックされたドキュメントをアンロックするか又は複製することを自動的に促される。例えば、ユーザがロックされたドキュメントを編集しようとするならば、ドキュメントの現在のロックされているバージョンをアンロックするか又は複製することをユーザに促すポップアップメニューが表示されてもよい。
【0023】
ドキュメントはユーザによってロックされてもよい。例えば、ドキュメントをロックさせるために、ユーザは「ロック」ユーザ・インタフェース要素を選択してもよい。ドキュメントが格納される場所がもはやアクセス可能ではない場合に、ドキュメントがまたロックされてもよい。例えば、ドキュメントがネットワーク格納デバイスに格納されており、このネットワーク格納デバイスがもはやアクセス可能ではない場合、このドキュメントはロック状態にされてもよい。もしユーザがロックされたドキュメントを編集しようとするならば、ユーザはドキュメントをアンロックし、このドキュメントについて代わりの格納場所を提供するように促されてもよい。一度代わりの格納場所がユーザによって提供されると、ロックされたドキュメントは複製されてこの代わりの格納場所に格納されてもよく、そしてユーザはこの複製されたアンロックされたドキュメントを編集し始めることを許されてもよい。
【0024】
メニュー108は、現在表示されているドキュメントの前のバージョンにユーザがアクセスすることを可能としてもよい。例えば、現在表示されているドキュメントの前のバージョンにアクセスするために、ユーザはユーザ・インタフェース要素106を用いてメニュー108にアクセスし、「バージョン(Version)」又は「リビジョン」メニュー項目を選択してもよい。ユーザが「リビジョン」メニュー項目を選択することに応答して、図6及び7を参照して以下で詳しく開示されるように、バージョン管理インタフェースが表示されてもよい。
【0025】
自動ドキュメント保存
図2は、自動ドキュメント保存の例を示すブロック図200である。コンビュータシステムによって実行される「セーブレス・アウェア」アプリケーションは、システム上での1以上の保存イベントを検知することに応答して、アプリケーション内で開かれているドキュメントを自動的に保存するように構成されうる。図200のステップ204において、ドキュメント202はコンピュータシステム上でセーブレス・アウェア・アプリケーションにおいて開かれてもよい。
【0026】
ブロック206において、システム上で実行されているセーブレス・アウェア・アプリケーションによって保存イベントか検出されてもよい。保存イベントは、例えば、時間間隔の経過、ユーザ入力の休止、ドキュメントから離れるフォーカスの移動、ドキュメントを閉じること、ドキュメントの印刷、ドキュメントへの内容のペースト、ドキュメントからの内容の削除、又はドキュメントの書式設定、を含むことができる。例えば、セーブレス・アウェア・アプリケーションは5分ごとにドキュメントを自動的に保存するように構成されていてもよい。
【0027】
ユーザがテキストドキュメントへの打ち込みを行っており、休止した(例えば考えるため、コーヒーを一杯手に入れるために、又は校正するために)場合、セーブレス・アウェア・アプリケーションはユーザ入力の休止を検出し、ドキュメントを自動的に保存してもよい。もしユーザがドキュメントウィンドウとのインタラクションをやめ、コンピュータシステム上で開いている他のウィンドウ又はアプリケーションとのインタラクションを開始するならば、セーブレス・アウェア・アプリケーションはフォーカスの移動(又はドキュメント上のフォーカスを失うこと)を検出し、ドキュメントを保存してもよい。ユーザがドキュメントを閉じ、ドキュメントを印刷し、ドキュメントへと内容をペーストし、ドキュメントから内容を削除し、又はドキュメントの書式設定をした場合、セーブレス・アウェア・アプリケーションはドキュメントに対するこれらの変更を検出し、これらを保存イベントとして特定してもよい。
【0028】
いくつかの実施形態において、セーブレス・アウェア・アプリケーションは時間間隔に基づいてドキュメントを保存するように構成されていてもよい。例えば、時間間隔が経過した時に、ドキュメントが保存されてもよい。何らかの方法、例えば打ち込む又はスクロールすることにより、ユーザがドキュメントとインタラクションするならば、ユーザがドキュメントとインタラクションしている間には保存動作が起こらないように、自動保存が一定の時間遅らされてもよい。こうして、ユーザが活発にアプリケーション又はドキュメントを使っている間のドキュメントの自動保存が避けられうる。
【0029】
いくつかの実施形態において、自動保存を送らせる時間は、以下のアルゴリズムによって決定されてもよい。変数「x」は、アプリケーションによって自動保存が待機される時間間隔(秒)を表す。アプリケーションについての時間間隔値が特定されていない場合、規定の時間間隔(例えば30秒)が用いられてもよい。変数「y」は、自動保存間の最大時間を表す。例えば、自動保存間の最大時間は5分であってもよく、保存せずに5分間が経過した場合に、自動保存が実行されてもよい。
【0030】
いくつかの実施形態によれば、以下のアルゴリズムが用いられてもよい。例えば、ドキュメントにおける変更が検出された場合に、x秒間動作するタイマが開始されてもよい。ユーザがドキュメントとインタラクションするならば、このタイマはx秒間遅らされてもよい。自動保存からの時間がy×(1/2)よりも大きいならば、タイマはx/2秒遅らされてもよい。自動保存からの時間がy×(7/8)よりも大きいならば、タイマはx/8秒遅らされてもよい。計算された時間が、次の自動保存を、前回の自動保存からy秒を超えるようにさせる場合、前回の自動保存からy秒を超えることがないように、時間が縮められる。
【0031】
自動保存は、例えば他のアプリケーションへの切り換え、他のアプリケーションがこのファイルの最も現在の内容を読み込みたいことを示した場合(協調読み込み)、ファイルの内容を劇的に変える操作の前(例えばリバート(逆戻り))、又はユーザが自分のコンピュータをスリープ状態におく前、のような他の保存イベントによって引き起こされてもよい。
【0032】
いくつかの実施形態において、セーブレス・アウェア・アプリケーションは、セーブレス・アウェア・アプリケーションが実行されているコンピューティングデバイスの電源特性に基づいて自動的にドキュメントを保存してもよい。いくつかの実施形態において、自動保存の頻度は、電源がバッテリーであるか又は壁面コンセントであるかに基づいていてもよい。例えば電源がバッテリーである場合、バッテリーがより長く持続するように、電源が壁面コンセントである場合よりもより低い頻度で行われてもよい。
【0033】
いくつかの実施形態において、自動保存はコンピューティングデバイスに電力を供給するバッテリーの残り電力量に基づいていてもよい。例えば、セーブレス・アウェア・アプリケーションは、コンピュータのバッテリーに残っている充電パーセントが小さい値(例えば充電が残り5%又は10%)に達した時に、又は低バッテリー通知が受け取られた時に、バッテリーが切れた場合にドキュメントに対する変更が失われないように、ファイルを自動的に保存してもよい。いくつかの実施形態において、バッテリーの残り電力が減少するにつれて、自動保存がだんだん少ない頻度で行われてもよい。
【0034】
セーブレス・アウェア・アプリケーションはまた、他のディスク又はCPUの機能をより効率的に利用するために、他のシステムイベントと協調してもよい。例えばセーブレス・アウェア・アプリケーションは、コンピュータのCPU使用率がいくらかの少ない値(例えば20%又は30%のCPU使用率)に達する時に着目し、この低いCPU使用率を自動的に開かれているドキュメントを保存するために利用してもよい。いくつかの実施形態においてセーブレス・アウェア・アプリケーションは、電源効率を向上させるために、又は十分に利用されていないシステムリソース(例えば少ないCPU、メモリ、又はバッテリー使用)を利用するために、一連のドキュメント保存をまとめてもよい。
【0035】
ブロック208においてドキュメント202は、コンピュータシステム上で動作しているセーブレス・アウェア・アプリケーションによってセーブされてもよく、こうして保存されたドキュメント210が生じる。例えば、保存イベントが検出された場合、セーブレス・アウェア・アプリケーションは自動的にドキュメントを保存してもよく、それゆえ、そうでなければドキュメント202に対する変更が失われるような異常終了又は異常に閉じられることをドキュメント又はセーブレス・アウェア・アプリケーションが経験したとしても、ユーザがドキュメントに対して行った変更が失われなくなる。保存されたドキュメント210は、例えば回転ディスク又はソリッドステート媒体(固体媒体)のようなローカル格納デバイスに、保存又は格納されることができる。保存されたドキュメント210は、ネットワークサーバ又は他のネットワーク格納媒体のようなリモート格納媒体上に、保存又は格納されることができる。いくつかの実施形態においては、セーブレス・アウェア・アプリケーションが最後の保存の時からドキュメント202に対してなされた変更が存在すると判定した場合にのみ、ドキュメント202は保存される。いくつかの他の実施形態において、セーブレス・アウェア・ドキュメントは、ドキュメント202に対する変更がなされたか否かにかかわらず、保存イベントが検出された場合にドキュメント202を保存する。
【0036】
図4は、ドキュメントの自動保存についての例示的な処理400の流れ図である。処理400は例えば1以上のコンピューティングデバイスを用いて行われうる。ステップ402において、ドキュメントが開かれる。例えば、セーブレス・アウェア・アプリケーションは、図1を参照して記載されたようにドキュメントを開き及び表示することができる。ステップ404において、保存イベントが検出される。例えば、図2を参照して記載されたような保存イベントが検出されてもよい。保存イベントの検出は、セーブレス・アウェア・アプリケーションがステップS406において開かれたドキュメントを保存することを引き起こしてもよい。いくつかの実施形態においては、ドキュメントが保存された最後の時からドキュメントが編集、修正、又は変更されている場合にのみ、ドキュメントは保存されるだろう。いくつかの実施形態においては、ドキュメントが保存された最後の時からドキュメントに対して何らかの変更がなされているか否かに関わらず、ドキュメントは保存されるだろう。
【0037】
自動ドキュメントバージョニング
図3は、例示的な自動ドキュメントバージョニングを示すブロック図である。コンピュータシステムによって実行される「セーブレス・アウェア」アプリケーションは、システム上で1以上のバージョニングイベントを検出することに応答して、アプリケーションにおいて開かれたドキュメントのバージョンを自動的に作成しかつ保存するように構成されていてもよい。図300のブロック304において、ドキュメント302が開かれる。例えばドキュメント302は、コンピュータシステム上のセーブレス・アウェア・アプリケーションによって開かれてもよい。
【0038】
ブロック306において、バージョニングイベントが検出される。バージョニングイベントは、例えば、ドキュメントを開くこと、ドキュメントを閉じること、ドキュメントを電子メール送信すること、ドキュメントを印刷すること、ドキュメントを削除すること、ドキュメントへのユーザ入力が長く休止すること(例えば1時間以上の休止)、又はロックされたドキュメントを編集しようとすること、を含むことができる。例えば、ユーザがドキュメントを電子メール送信するならば、どのバージョンのドキュメントが電子メール送信されたのかをユーザが知ることができるように、電子メール送信されたバージョンのドキュメントが保存されてもよい。他の例として、ユーザはドキュメントについて作業をしているかもしれず、そして1時間昼食に行くかもしれない。この1時間の休憩が、ドキュメントのバージョンが生成され及び格納されることを引き起こしてもよい。バージョニングイベントは、ユーザ入力のより長い又は短い休止によって定義されてもよい。
【0039】
いくつかの実施形態によれば、ユーザがロックされたドキュメントを編集しようとすることに応答して、ドキュメントのバージョンは生成され及び格納される。例えば、特定の時間(一日、一週間、一ヶ月、など)編集されなかったドキュメントをユーザが開くならば、このドキュメントはロックされたドキュメントとして開かれてもよい。もしユーザがロックされたドキュメントを編集しようとするならば、ユーザがこのドキュメントの前のバージョンを再調査することができるように、ドキュメントのバージョンが生成され及び格納されてもよい。ユーザがロックされたドキュメントを編集しようとすることに応答してロックされたドキュメントのバージョンが自動的に生成されてもよいし、ドキュメントの複製バージョンを生成するようにユーザは促されてもよい。
【0040】
いくつかの実施形態によれば、ドキュメントの前のバージョンに戻ることは、ドキュメントのバージョンが生成されかつ格納されることを引き起こす。例えば、ユーザがドキュメントの前のバージョンへと戻すならば、前のバージョンへと戻る前に、ドキュメントの現在のバージョンの内容がドキュメントのバージョンとして保存されてもよい。ドキュメントに名前を付けること又は名前を変更することが、ドキュメントが生成されかつ格納されることを引き起こしてもよい。例えば、最初にドキュメントに名前をつけることに応答して、ドキュメントの新しいバージョンが生成されかつ格納されてもよい。ドキュメントをロックすることが、ドキュメントのバージョンが生成されかつ格納されることを引き起こしてもよい。例えば、ユーザがドキュメントを手動でロックすることに応答して、ロックされたドキュメントの新しいバージョンが生成されかつ格納されてもよい。
【0041】
いくつかの実施形態によれば、格納デバイス(ハードデバイス)からドキュメントを削除することは、ドキュメントのバージョンが生成されかつ格納されることを引き起こす。例えば、削除動作は(例えばカーネルフックを用いて)捕捉されることができ、削除動作が完了するのに先立ってドキュメントの複製が生成されることができる。
【0042】
バージョニングイベントは設定可能であってもよい。例えばユーザは、上に列挙されたバージョニングイベントのサブセット(下位集合)に基づいて、ファイルのバージョンを生成しかつ格納するように、セーブレス・アウェア・アプリケーションを設定することが可能であってもよい。ユーザは、ユーザが与えた条件に基づいて、新しい又は追加のバージョニングイベントを特定することが可能であってもよい。
【0043】
いくつかの実施形態によれば、ユーザは明示的にドキュメントのバージョンを生成及び格納してもよい。例えばユーザは、ドキュメントのバージョンを格納するためにユーザ・インタフェース要素を選択してもよい。いくつかの実施形態において、ユーザは関連するコメントとともにバージョンを保存してもよい。例えば、ユーザは明示的にドキュメントのバージョンを保存してもよく、このバージョンについてのコメントを与えてもよい。いくつかの実施形態において、ドキュメントのコメントされたバージョンは、ユーザが明示的に削除するまで保存されてもよい。
【0044】
ブロック308において、ドキュメントの新しいバージョンが生成されかつ格納される。例えば、バージョニングイベントを検出することに応答して、セーブレス・アウェア・アプリケーションは自動的にドキュメントの複製を生成してもよく、この複製をドキュメントの前のバージョンとして保存してもよい。結果として、ドキュメントのバージョン310が生成される。
【0045】
ドキュメントの複数の同一のバージョンが生成されてもよい。例えば、間に編集をしないまま続けてドキュメントを開くことにより、ドキュメントの複数の同一のバージョンが生成しうる。代わりにいくつかの実施形態においては、前のバージョンに対してなされた何らかの変更が存在する場合にのみ、新しいバージョンが生成される。ドキュメントの同一のバージョンの数に、制限が設けられてもよい。例えば、ドキュメントの同一のバージョンが最大で3つ格納されてもよいように、システムは構成されてもよい。
【0046】
いくつかの実施形態によれば、ドキュメントのバージョンはインテリジェントに(理知的に)バージョンストア(バージョンの蓄積)から除かれ又は消去されてもよい。例えばバージョンストアは、ドキュメントのバージョンの集合である。ドキュメントの最も興味のある(例えば最も重要な)バージョンが保存され、ドキュメントのより興味の無い(例えばより重要でない)バージョンが削除されるように、バージョンストアき切り詰められることができる。ドキュメントのバージョンは、消去可能(削除可能)としてマークされ(印を付けられ)てもよい。ドキュメントの消去可能な又は削除可能なバージョンは、任意の時に削除されてもよい。
【0047】
以下の規則が、どのドキュメントが消去可能又は削除可能であるかを決定するために用いられうる。例えば、コメントを伴うバージョンは、自動的には消去されない。ユーザは、望むのならば、コメントされたバージョンを手動で削除することができる。前日については、1時間あたり少なくとも1つのドキュメントのバージョンがバージョンストアに保持される。前月については、1日あたり少なくとも1つのドキュメントのバージョンがバージョンストアに保持される。1ヶ月以上古いドキュメントのバージョンについては、1週間あたり少なくとも1つのドキュメントのバージョンがバージョンストアに保持される。ドキュメントが開かれた最後の2回において現在作業中であるドキュメントを表すバージョンは、バージョンストアに保持される。明示的なユーザアクション(例えば元に戻すこと、名前を変更すること、ロックすること)を表すバージョンは、自動的に生成されたバージョンと比べて保持されてもよい。上述のカテゴリーのうちの1以上に当てはまらないドキュメントのバージョンは、消去可能又は削除可能としてマークされてもよい。
【0048】
図5は、自動的にドキュメントのバージョンを作成するための例示的な処理500の流れ図である。ステップ502において、ドキュメントが開かれる。例えば、ドキュメントはセーブレス・アウェア・アプリケーションにおいて開かれてもよい。ステップ504において、バージョニングイベントが検出される。例えばバージョニングイベントは、図3を参照して上述したバージョニングイベントのうちの1つでありうる。ステップ506において、ドキュメントの複製が生成される。例えば、バージョニングイベントを検出することに応答して、ドキュメントの複製が生成されてもよい。ドキュメントの複製は、ドキュメント全体の複製であってもよい。代わりにドキュメントの複製は、ドキュメントと、ドキュメントの前のバージョンとの差分を格納することのみを指してもよい。ステップ508において、この複製はドキュメントの前のバージョンとして格納される。例えば、この複製はドキュメントのバージョンとして格納されてもよく、ユーザはドキュメントの現在開かれており表示されているバージョンを編集することを続けてもよい。ドキュメントの前のバージョンは、例えば以下に開示されるバージョン管理インタフェースをを用いてユーザによって後に取得されかつ閲覧されてもよい。ドキュメントのバージョン間の差分のみが格納される場合、格納された差分に基づいて、ドキュメントの特定のバージョンが再現されてもよい。
【0049】
バージョン管理インタフェース
図6は、ドキュメントのバージョンを表示しインタラクションするための例示的なグラフィカル・ユーザ・インタフェース600を示す。例えばユーザ・インタフェース600は、例えば図1のメニュー108から、又は他のメニューから、ユーザが「リビジョン」又は「バージョン」メニュー項目を選択することに応答して表示されてもよい。
【0050】
現在作業中のドキュメント602(例えば、セーブレス・アウェア・アプリケーションにおいて現在開かれているドキュメント)は、ユーザ・インタフェース600の領域614内に表される。例えば領域614は、ユーザ・インタフェース600内に、インタフェース600の右部に、左部に、上部に、又は下部に、配置されてもよい。インタフェース600が(例えばメニュー108内でのユーザ選択により)呼び出された際、現在作業中のドキュメント602は、ディスプレイ上の現在の位置から領域614へと移動するようにアニメーションされてもよい。ラベル624が、領域614及び現在作業中のドキュメント602の近傍に表示されてもよい。ラベル624は、現在作業中のドキュメント602と関連する識別情報を表示してもよい(例えば、ドキュメント602をドキュメントの現在のバージョンとして明示する)。
【0051】
現在作業中のドキュメント602に対するリビジョン、又は現在作業中のドキュメント602のバージョンが、領域616に表示される。例えば、図2及び図4を参照して記載されたように自動的に生成された現在作業中のドキュメント602のバージョンが、領域616に表示されてもよい。ドキュメントのバージョン又はリビジョン604〜612は、ユーザが現在作業中のドキュメント602のバージョンを編集しかつ保存することを可能とする、単一のアプリケーション又は複数の異なるアプリケーションによって生成されうる。
【0052】
ドキュメントのリビジョンは、ローカル格納デバイス又はネットワーク格納デバイスから取得されてもよい。ドキュメントのリビジョンは、ドキュメントアーカイブ又はファイルのバックアップ場所から取得されてもよい。ユーザ・インタフェース600は、アーカイブアプリケーション若しくはファイルバックアップアプリケーションと、格納場所(例えばネットワークファイルサーバ又はローカル格納デバイス)とのうちの1以上から、ドキュメントのバージョンを取得してもよい。
【0053】
ユーザ・インタフェースが呼び出された時、ドキュメントのバージョン604〜612は、ユーザ・インタフェース領域616へと、ビュー内へシャッフルされるようにアニメーションされてもよい。ドキュメントのリビジョン604〜612は、時間順に、又は時間順の反対に、領域616に表示されてもよい。例えばリビジョン604〜612は、個々のリビジョン又はバージョンが生成された時刻に基づいた順序で表示されてもよい。ドキュメント604〜612は、シーケンス(一続き)として表示されてもよい。例えば、ドキュメント604〜612のシーケンスは、図6に表されているように、アプリケーションの積み重ねられた(スタックされた)シーケンスとして表示されてもよい。
【0054】
ドキュメントのバージョン604〜612のシーケンスが表示されている際に、新しく生成されたドキュメントのバージョンが表示されたシーケンスに追加されてもよい。例えば、他のアプリケーションが現在作業中のドキュメント602と関連付けられた新しいバージョンを生成したならば、この新しいバージョンが表示されているドキュメントのバージョン604〜612へと追加されてもよい。代わりに他の例において、ユーザがドキュメントの現在のバージョンをドキュメントの前のバージョンで置き換えるならば、ドキュメントのこの置き換えられた現在のバージョンが、後に参照するために、表示されているドキュメントの前のバージョンのシーケンスに追加されてもよい。
【0055】
ラベル622が、領域616及びドキュメントのバージョン604〜612の近傍に表示されてもよい。ラベル622は、ドキュメントの選択されたバージョン(例えばドキュメントのバージョン604)に関連付けられた識別情報を、ドキュメントのバージョンのシーケンス604〜612の前に表示してもよい。例えばこのバージョンラベルは、選択されたバージョンが生成された日付又はバージョン生成イベント(例えばドキュメントが電子メールで送信された、ドキュメントが印刷された、など)を示してもよい。
【0056】
ドキュメントのバージョン604〜612は、操作可能である。例えばユーザは、表示されたドキュメントのバージョン604〜612のシーケンスの中をスクロールしてもよい。ユーザは、ドキュメントがディスプレイの前面又は背面へと移動するように見えるようにさせることにより、ドキュメントの中を移動してもよい。例えば図6において、ドキュメントのバージョン604はドキュメントのバージョンのシーケンスの最前部にあり、その内容が見えるため、ドキュメントのバージョン604は現在選択されているドキュメントのバージョンである。もしユーザが、例えばバージョン608のようなドキュメントの他のバージョンを選択することと、見ることと、操作することとのうちの少なくとも1つを望むのならば、バージョン608がシーケンスの前面に位置しその内容が見えるまで、ユーザはドキュメントのバージョンのシーケンスの中をスクロールすることができる。
【0057】
バージョン608へとスクロールして戻ることにより、ドキュメントのバージョン604及び606は(ユーザに向かって)最前面へと表示されそしてディスプレイから消えてもよい。もしドキュメントのバージョン608が選択されてドキュメント604〜602のシーケンスの前面に表示され(608が選択されている時にはバージョン608〜612のみが表示されてもよい)、ユーザがもはや見えなくなったバージョン606を見ることを望むのならば、ユーザはリストの中をスクロールして戻ってもよい。例えば、ドキュメントのバージョン604を見るために、シーケンス604〜616はユーザ・インタフェースの背面へと移動するようにアニメーションされてもよい。ドキュメントのバージョン608〜612は、ユーザ・インタフェース600の背面へと移動してもよく、バージョン606は、表示されたドキュメントのバージョンのシーケンスの前面に追加されてもよい。
【0058】
ドキュメントのシーケンスの中をスクロールすることは、入力デバイスからの直接入力(例えばキーボードの矢印キー又はマウスのホイール)によってなされてもよく、タイムライン618又はタイムライン位置インジケータ620を操作することによってなされてもよい。例えば、ユーザはタイムライン610上の位置を示すために(例えば、タイムライン616上の位置をクリックすることにより)カーソルを用いてもよい。タイムライン610上のカーソル入力に応答して、示された位置に対応するドキュメントのバージョンが選択され、領域616に表示されたバージョンのシーケンスの前面に表示されてもよい。例えば、ドキュメントのバージョン610に対応するタイムライン618上の位置をユーザが示した場合、ドキュメントのバージョン610が選択されてバージョン604〜612のシーケンスの前面に表示されてもよい。
【0059】
ユーザは、タイムライン位置インジケータ620を用いて、タイムライン618上の位置を示してもよい。例えばユーザは、バージョン612に対応するタイムライン上の位置へと、(例えばマウス又はキーボード入力を用いて)タイムライン618に沿って位置インジケータ620を移動させてもよく、こうしてドキュメントのバージョン612が選択されてドキュメントのバージョンのシーケンスの前面に表示される。いくつかの実施形態において、位置インジケータのユーザ選択は、(例えば、多数のバージョンが存在する場合に、個々のバージョンを示す個々のハッシュを用いて)タイムラインの拡大を引き起こすことができる。
【0060】
現在選択されているドキュメントのバージョン(例えばドキュメントのバージョン604)の内容は、見られてもよく、操作されてもよい。例えば、ユーザが現在作業中のドキュメントの前のバージョンの内容を再調査できるように、ドキュメントの選択されたバージョン(現在作業中のドキュメントの前のバージョン)の内容が表示されてその中をスクロールされてもよい。現在作業中のドキュメントの前のバージョンは編集することができないが、特定の内容が選択された現在作業中のドキュメント602内の位置へとコピーされてもよい。
【0061】
例えば、ユーザはドキュメントに対して編集を行ってもよく、そしてドキュメントの前のバージョンへと戻ることを決心するかもしれない。そうするために、ユーザはバージョン604〜612のシーケンスの中をスクロールすることによって、ドキュメントの前のバージョンを選択してもよい。一度前のバージョン(例えばバージョン610)が選択されてバージョンのシーケンスの前面に表示されると、ユーザは前のバージョン610を複製することができ、前のバージョン610をドキュメントの現在作業中のバージョンとすることができる。例えばユーザは、ドキュメントの選択された前のバージョンを現在作業中のバージョンとするために、ユーザ・インタフェース要素626を選択してもよい。例えば、ユーザ・インタフェース要素626の選択は、ドキュメントの前のバージョン610を、ドキュメントの現在作業中のバージョンとして復元してもよい。ユーザはそして、前のバージョン610から復元された現在作業中のドキュメント602を編集してもよい。現在作業中のドキュメント602は、複製バージョン610によって現在作業中のドキュメントとして置換される前に、前のバージョンとして保存されてもよい。こうして、ユーザはドキュメントの現在作業中のバージョンからドキュメントの前のバージョンへと戻ることができ、ドキュメントのバージョンはドキュメントと関連付けられたそれぞれの重大な変更又はイベントの際に保存されるために、ユーザはこの現在作業中のバージョンへと戻る(又は進む)ことができる。
【0062】
ユーザは、現在作業中のドキュメント602の選択された前のバージョン(例えばバージョン604)とインタラクションしてもよい。例えば、ユーザはドキュメントの前のバージョン604から内容を選択してコピーすることができ、この内容を現在作業中のドキュメント602へとペーストすることができる。例えばテキストドキュメントのバージョンについて、ユーザはテキストの特定の部分(例えば文又は段落)を選択することができ、そしてこうして選んだものを、現在作業中のドキュメント602内の特定の位置へとコピーすることができる。ユーザは選択された前のバージョンとインタラクションすることができ、ドキュメントの前のバージョンの内容に対して、ドキュメントのこの前のバージョンに対する変更を起こさない任意の選択操作を行うことができる。例えば、ドキュメントの前のバージョンは読み取り専用であってもよい。
【0063】
ユーザは、ユーザ・インタフェース要素628を選択することにより、ユーザ・インタフェース600を閉じてもよい。例えばユーザ・インタフェース要素628は、ユーザ・インタフェース600を閉じさせ、図1のインタフェース100を表示させる、閉じるボタン又はキャンセルボタンであってもよい。いくつかの実施形態において、ユーザ・インタフェース要素626のユーザ選択は、ユーザ・インタフェース600を閉じさせてもよい。例えばユーザ・インタフェース要素626は、選択された時に、ドキュメントの現在のバージョンをドキュメントの選択された前のバージョンで置き換えさせ、インタフェース600を閉じさせ、ドキュメントの選択された前のバージョンを表示する図1のインタフェース100を表示させる、置き換えボタンであってもよい。
【0064】
図7は、ドキュメントのバージョンを表示するための例示的な処理700の流れ図である。ステップ702において、ドキュメントの現在のバージョンが表示される。例えば、セーブレス・アウェア・アプリケーションのインタフェース(例えば図1のインタフェース100)に、ドキュメントの現在作業中のバージョンが表示されてもよい。ステップ704において、ドキュメントの前のバージョンを表示する指示が受け取られる。例えば、ドキュメントの現在作業中のバージョンの前のバージョンをユーザが見ることを望んでいることを示すユーザ・インタフェース要素又はメニュー項目を、ユーザは選択してもよい。
【0065】
ステップ706において、ドキュメントの現在作業中のバージョンと、ドキュメントの前のバージョンのシーケンスとが表示される。例えば、同じインタフェース上にドキュメントの現在作業中のバージョンとドキュメントの前のバージョンとの双方を表示することによって、ユーザはドキュメントの前のバージョンをドキュメントの現在作業中のバージョンと比較することができる。ステップ708において、ドキュメントの現在作業中のバージョンと、ドキュメントの前のバージョンとの少なくとも一方において操作が実行される。例えばユーザは、ドキュメントの前のバージョンから内容をコピーしてもよく、現在作業中のバージョンへとコピーされたバージョンをペーストしてもよい。
【0066】
自動ドキュメントレイアウト復元
図8は、ドキュメントレイアウトを復元するための例示的な処理800の流れ図である。ステップ802において、1以上のドキュメントが表示される。例えば、複数のドキュメントがコンピューティングデバイスのディスプレイ上に表示されてもよい。ドキュメントは、単一のアプリケーションの複数のドキュメントウィンドウ内に表示されてもよい。代わりに、ドキュメントは複数のアプリケーションの複数のドキュメントウィンドウ内に表示されてもよい。アプリケーションは、上述のようなセーブレス・アウェア・アプリケーションであってもよい。
【0067】
ステップ804において、表示されたドキュメントの位置が判定される。例えば、ディスプレイ上のドキュメントウィンドウの座標が判定されてもよい。座標は、デカルト座標系に基づいて判定されてもよい。例えばこの座標は、ディスプレイ上の位置を規定する(x,y)座標として判定されてもよい。
【0068】
ステップ806において、ドキュメントレイアウト情報が格納される。例えばドキュメントレイアウト情報は、表示されたドキュメントについての識別子と、このドキュメントについての対応するディスプレイ位置(例えばx,y座標)とを含んでもよい。
【0069】
ステップ808において、ドキュメント又はアプリケーションが異常に閉じられたことが検出される。例えば、アプリケーションを実行しているコンピューティングデバイスがクラッシュした(操作不能になった)ならば、又はコンピュータの電源が遮断されたならば、コンピューティングデバイスは動作を停止し、コンピューティングデバイス上で動作しているアプリケーションは異常終了するだろう。他の例として、ユーザがアプリケーション上でハードキル(hard−kill)を実行するならば、アプリケーションは異常終了するだろう。すなわち、ハードキル又はコンピューティングデバイスのクラッシュに応じて、アプリケーションは通常のシャットダウン命令シーケンスを実行することができず、それゆえ異常終了する。
【0070】
アプリケーションの異常終了は、様々な方法で明示又は検出されることができる。例えばアプリケーションは、コンピューティングデバイス上に、関連するアプリケーション状態ファイルを有してもよい。このアプリケーション状態ファイルは、処理の様々な時点におけるアプリケーションの状態を示してもよく、通常のシャットダウンシーケンスが実行されなかったことを示してもよい。この状態ファイルが、異常終了が起こったか否かを判定するために読み込まれてもよい。代わりにアプリケーションは、アプリケーションが実行している際にコンピュータシステム上に単純にファイルを作成し、アプリケーションの通常のシャットダウンの間にこのファイルを削除してもよい。もし、アプリケーションが開始した時にコンピュータシステム上にまだこのファイルが存在しているのならば、アプリケーションは通常のシャットダウン処理をしておらず、異常終了が検出されてもよい。
【0071】
ステップ810において、ドキュメントレイアウト情報が取得される。例えば、ステップ808において異常に閉じられたことを検出した際に、ステップ806において格納されたドキュメントレイアウト情報が取得されてもよい。このドキュメントレイアウト情報は、アプリケーションが以前に表示された格納媒体中のドキュメントを探し出すことを可能とする、ドキュメント識別子を含む。このドキュメントレイアウト情報はまた、アプリケーションが、特定されたドキュメントをコンピューティングデバイスのディスプレイ上の以前の位置に表示することを可能とする、位置情報を含んでもよい。
【0072】
ステップ812において、ドキュメント表示が復元される。例えば、ステップ810において取得されたドキュメントレイアウト情報に基づいて、以前に表示されていたドキュメントが、コンピューティングデバイスのディスプレイ上の以前の表示位置へと復元されてもよい。
【0073】
実施形態はまた、本明細書に添付の付録A及び付録Bに記載されている。
【0074】
例示的なシステム構成
図9は、図1〜8の特徴及び処理を実装するための、例示的なシステム構成900のブロック図である。構成900は、パーソナルコンピュータ、サーバ、スマートフォン、メディアプレーヤ、電子タブレット、ゲームコンソール、電子メールデバイス、などを含むがこれらには限定されない、コンパイルされた命令に由来するアプリケーションを実行する任意の電子デバイスによって実装されることができる。いくつかの実施形態において構成900は、1以上のプロセッサ902と、1以上の入力デバイス904と、1以上のディスプレイデバイス906と、1以上のネットワークインタフェース908と、1以上のコンピュータ読み取り可能な媒体910とを含む。これらの構成要素のそれぞれは、バス912によって結合されうる。
【0075】
ディスプレイデバイス906は、液晶ディスプレイ(LCD)又は発光ダイオード(LED)技術を用いるディスプレイデバイスを含むがこれらには限定されない、任意の既知のディスプレイ技術でありうる。プロセッサ902は、グラフィックプロセッサとマルチコアプロセッサとを含むがこれらには限定されない、任意の既知のプロセッサ技術を用いることができる。入力デバイス904は、キーボード(仮想キーボードを含む)、マウス、トラックボール、及び接触感知パッド若しくはディスプレイを含むがこれらには限定されない、任意の既知の入力デバイス技術でありうる。バス912は、ISA、EISA、PCI、PCI Express、NuBUS、USB、シリアルATA又はFireWireを含むがこれらには限定されない、任意の既知の内部若しくは外部バス技術でありうる。コンピュータ読み取り可能な媒体910は、不揮発格納媒体(例えば光学ディスク、磁気ディスク、フラッシュドライブなど)又は揮発媒体(例えばSDRAM、ROMなど)を含むがこれらには限定されない、実行のためにプロセッサ902へと命令を提供すること関与する、任意の媒体でありうる。
【0076】
コンピュータ読み取り可能な媒体910は、オペレーティングシステム(例えばMac OS(登録商標)、Windows(登録商標)、Linux(登録商標)など)を実装するための様々な命令914を含むことができる。オペレーティングシステムは、マルチユーザ、マルチプロセッシング、マルチタスキング、マルチスレッディング、及びリアルタイムなどでありうる。オペレーティングシステムは、入力デバイス904からの入力を認識すること;ディスプレイデバイス906へと出力を送ること;コンピュータ読み取り可能な媒体910上でファイル及びディレクトリの記録をとること;直接又はI/Oコントローラを介して制御可能な周辺デバイス(例えばディスクドライブ、プリンタなど)を制御すること;及びバス912上のトラフィックを管理すること;を含むがこれらには限定されない基礎的なタスクを実行する。ネットワーク通信命令916は、ネットワーク接続を確立し、及び維持することができる(例えば、TCP/IP、HTTP、イーサネット(登録商標)のような通信プロトコルを実装するためのソフトウェア)。
【0077】
グラフィック処理システム918は、グラフィック及び画像の処理能力を与える命令を含むことができる。例えばグラフィック処理システム918は、図1〜8を参照して記載したリサンプリング処理を実行することができる。
【0078】
アプリケーション920は、画像処理アプリケーション、又は例えば写真若しくはビデオのエディタのような図1〜8を参照して記載したリサンプリング処理を用いる任意の他のアプリケーションでありうる。リサンプリング処理は、オペレーティングシステム914において実装されることもできる。
【0079】
記載された特徴は、データ格納システムからデータ及び命令を受信し、データ格納システムへとデータ及び命令を送信する、ように結合された少なくとも1つのプログラム可能なプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む、プログラム可能なシステム上で実行される1以上のコンピュータプログラムにおいて有利に実装されうる。コンピュータプログラムは、特定の機能を実行する又は特定の結果をもたらすために、コンピュータにおいて直接に又は間接的に用いられうる命令セットである。コンピュータプログラムは、コンパイル型言語又はインタプリタ型言語を含む任意の形式のプログラミング言語(例えばオブジェクト指向C、Java(登録商標)など)によって書かれることができ、スタンドアロンプログラムとしての展開、又はモジュール、コンポーネント、サブルーチン、若しくはコンピューティング環境中で用いるのに適した他のユニットとしての展開、を含む任意の形式で展開することができる。
【0080】
命令のプログラムの実行のために適したプロセッサは、例えば、任意の種類のコンピュータの、汎用マイクロプロセッサと専用マイクロプロセッサとの双方と、単一プロセッサ又はマルチプロセッサ若しくはマルチコアの一方と、を含む。一般的にプロセッサは、読み取り専用メモリ若しくはランダムアクセスメモリ、又は双方から、命令及びデータを受信するだろう。コンピュータの本質的な要素は、命令を実行するプロセッサと、命令及びデータを格納する1以上のメモリである。一般的にコンピュータはまた、データファイルを格納する1以上の大容量格納デバイスを含み、又はこれと通信するために動作可能に結合されているだろう。このようなデバイスは、内部ハードディスク及び取り外し可能ディスクのような磁気ディスク;光磁気ディスク;及び光学ディスク;を含む。コンピュータプログラム命令及びデータを具体的に実現するために適した格納デバイスは、例えばEPROM、EEPROM、及びフラッシュメモリデバイスのような半導体メモリデバイス;内部ハードディスク及び取り外し可能ディスクのような磁気ディスク;光磁気ディスク;及びCD−ROMディスク及びDVD−ROMディスク;を含む、全ての形態の不揮発メモリを含む。プロセッサ及びメモリは、ASIC(特定用途向け集積回路、application−specific integrated circuits)によって補完されてもよく、ASICに含まれてもよい。
【0081】
ユーザとのインタラクションに備えて、特徴は、ユーザに対して情報を表示するためのCRT(陰極線管)又はLCD(液晶ディスプレイ)モニタのようなディスプレイデバイスと、キーボードと、ユーザがコンピュータに対して入力を与えることができるマウス又はトラックボールのようなポインティングデバイスと、を有するコンピュータ上で実装されることができる。
【0082】
特徴は、データサーバのようなバックエンド構成要素を含む、アプリケーションサーバ若しくはインターネットサーバのようなミドルウェア構成要素を含む、グラフィカル・ユーザ・インタフェース若しくはインターネットブラウザを有するクライアントコンピュータのようなフロントエンド構成要素を含む、又はこれらの任意の組み合わせを含む、コンピュータシステムにおいて実装されることができる。システムの構成要素は、通信ネットワークのような、任意の形式又は媒体のデジタルデータ通信によって接続されることができる。通信ネットワークの例は、例えばLAN、WAN、並びにインターネットを形成するコンピュータ及びネットワークを含む。
【0083】
コンピュータシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは、一般的に互いに離れており、典型的にはネットワークを介してインタラクションする。クライアントとサーバという関係は、それぞれのコンピュータにおいて動作し、互いにクライアント−サーバ関係を有するコンピュータプログラムのために生じる。
【0084】
開示された実施形態の1以上の特徴又はステップは、APIを用いて実装されることができる。APIは、呼び出す(calling)アプリケーションと、サービスを提供する、データを提供する、又は動作若しくは計算を実行する他のソフトウェアコード(例えばオペレーティングシステム、ライブラリルーチン、関数)との間で渡される1以上のパラメータを定義することができる。
【0085】
APIは、API仕様文書に規定された呼び出し規約に基づくパラメータリスト又は他の構造を介して1以上のパラメータを送信又は受信する、プログラムコード内の1以上の呼び出しとして実装されることができる。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、配列、リスト、又は他の呼び出しでありうる。API呼び出し及びパラメータは、任意のプログラミング言語において実装されることができる。プログラミング言語は、APIをサポートする機能にアクセスするためにプログラマが採用するボキャブラリ及び読み出し規約を定義することができる。
【0086】
いくつかの実施形態において、API呼び出しはアプリケーションを実行しているデバイスの能力、例えば入力能力、出力能力、処理能力、電源能力、通信能力など、をアプリケーションへと報告することができる。
【0087】
いくつかの実施形態が記載された。しかしながら、様々な修正がなされてもよいことが理解されるだろう。例えば、記載された流れ(フロー)から、他のステップが与えられてもよいし、ステップが除去されてもよいし、記載されたシステムに、他の構成要素が追加されてもよいし、構成要素が除去されてもよい。したがって、他の実施形態も以下の請求の範囲内にある。
【0088】
関連出願へのクロスリファレンス
本願は、2011年1月14日に提出された、"Saveless Documents"と題する米国仮出願第61/433183号への優先権を主張し、その内容の全体は参照により本明細書に組み込まれる。

【特許請求の範囲】
【請求項1】
コンピューティングデバイスの第1のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、
前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、
前記指示を受け取ったことに応答して、第1の部分と第2の部分とを有する第2のユーザ・インタフェースを表示する工程と、を有し、
前記ドキュメントの前記現在のバージョンは前記第2のユーザ・インタフェースの前記第1の部分に表示され、
前記ドキュメントの特定の前のバージョンは、前記第2のユーザ・インタフェースの前記第2の部分に、前記ドキュメントの前のバージョンのシーケンスにおいて表示される
ことを特徴とする方法。
【請求項2】
前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、
前記選択された内容をコピーする工程と、
前記選択された内容を、前記第2のユーザ・インタフェースの前記第1の部分に表示された前記ドキュメントの前記現在のバージョンへとペーストする工程と、
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項3】
前記第2のユーザ・インタフェースの前記第1の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、
前記第2のユーザ・インタフェースの前記第2の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項4】
前記特定の前のバージョンの内容をスクロールする工程と、
前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項5】
前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、
前記指示に応答して、
前記ドキュメントの前記特定の前のバージョンを複製する工程と、
前記現在のバージョンを前のバージョンとしてマークする工程と、
前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、
をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項6】
前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程をさらに含むことを特徴とする、請求項1に記載の方法。
【請求項7】
前記ドキュメントの前のバージョンの前記シーケンスが、ドキュメントの積み重ねとして表示されることを特徴とする、請求項1に記載の方法。
【請求項8】
コンピューティングデバイス上で、ドキュメントと関連付けられたバージョニングイベントを検出する工程と、
前記バージョニングイベントを検出したことに応答して、前記ドキュメントを複製する工程と、当該複製を前記ドキュメントの前のバージョンとして持続的に格納する工程と、を含み、
前記バージョニングイベントは、ユーザからの、前記ドキュメントのバージョンを生成する明示的な指示とは関連付けられていないことを特徴とする、方法。
【請求項9】
前記バージョニングイベントは、前記ドキュメントを開くこと、前記ドキュメントを閉じること、前記ドキュメントを電子メールで送信すること、前記ドキュメントを印刷すること、前記ドキュメントを削除すること、前記ドキュメントに対するユーザ入力が長く停止すること、又はロックされたドキュメントを編集しようとすることであることを特徴とする、請求項8に記載の方法。
【請求項10】
前記前のバージョンについての、前記バージョニングイベントを示すラベルを生成する工程と、
前記ラベルを、前記ドキュメントの前記前のバージョンに関連付ける工程と、
をさらに含むことを特徴とする、請求項8に記載の方法。
【請求項11】
前記ドキュメントを複製する工程は、前記ドキュメントと、前記ドキュメントの特定の前のバージョンとの間の差分を複製する工程を含み、
前記複製を前記ドキュメントの前のバージョンとして持続的に格納する工程は、前記ドキュメントと、前記特定の前のバージョンとの間の前記差分を格納する工程を含む
ことを特徴とする、請求項8に記載の方法。
【請求項12】
コンピューティングデバイス上で、ドキュメントと関連付けられた保存イベントを検出する工程と、
前記保存イベントを検出することに応答して、前記ドキュメントを保存する工程と、を含み、
前記保存イベントは、ユーザからの、前記ドキュメントを保存する明示的な指示とは関連付けられていないことを特徴とする方法。
【請求項13】
前記保存イベントは、時間間隔の経過、ユーザ入力の休止、前記ドキュメントから離れるフォーカスの移動、前記ドキュメントを閉じること、前記ドキュメントの印刷、前記ドキュメントへの内容のペースト、前記ドキュメントからの内容の削除、又は前記ドキュメントの書式設定であることを特徴とする、請求項12に記載の方法。
【請求項14】
1以上のドキュメントを、コンピューティングデバイスのディスプレイ上の1以上の対応する位置に表示する工程と、
前記1以上のドキュメントに対応する1以上の識別子と、前記1以上の対応する位置とを含むドキュメントレイアウト情報を格納する工程と、
を含むことを特徴とする方法。
【請求項15】
コンピューティングデバイス上で表示された1以上のドキュメントが異常に閉じられたことを検出する工程と、
前記1以上のドキュメントに対応する1以上の識別子と、前記1以上のドキュメントについての1以上の位置とを含むドキュメントレイアウト情報を取得する工程と、
前記ドキュメントレイアウト情報に従って前記1以上のドキュメントを表示する工程と、
を含むことを特徴とする方法。
【請求項16】
1以上の命令を含むコンピュータ読み取り可能な一時的でない媒体であって、
前記1以上の命令は、少なくとも1つのプロセッサによって実行された時に、
コンピューティングデバイスの第1のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、
前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、
前記指示を受け取ったことに応答して、第1の部分と第2の部分とを有する第2のユーザ・インタフェースを表示する工程と、を行わせ、
前記ドキュメントの前記現在のバージョンは前記第2のユーザ・インタフェースの前記第1の部分に表示され、
前記ドキュメントの特定の前のバージョンは、前記第2のユーザ・インタフェースの前記第2の部分に、前記ドキュメントの前のバージョンのシーケンスにおいて表示される
ことを特徴とするコンピュータ読み取り可能な一時的でない媒体。
【請求項17】
前記命令は、
前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、
前記選択された内容をコピーする工程と、
前記選択された内容を、前記第2のユーザ・インタフェースの前記第1の部分に表示された前記ドキュメントの前記現在のバージョンへとペーストする工程と、
を行わせる命令を含むことを特徴とする、請求項16に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項18】
前記命令は、
前記第2のユーザ・インタフェースの前記第1の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、
前記第2のユーザ・インタフェースの前記第2の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項16に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項19】
前記命令は、
前記特定の前のバージョンの内容をスクロールする工程と、
前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項16に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項20】
前記命令は、
前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、
前記指示に応答して、
前記ドキュメントの前記特定の前のバージョンを複製する工程と、
前記現在のバージョンを前のバージョンとしてマークする工程と、
前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、
を行わせる命令を含むことを特徴とする、請求項16に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項21】
前記命令は、前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程を行わせる命令を含むことを特徴とする、請求項16に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項22】
前記ドキュメントの前のバージョンの前記シーケンスが、ドキュメントの積み重ねとして表示されることを特徴とする、請求項16に記載のコンピュータ読み取り可能な一時的でない媒体。
【請求項23】
1以上のプロセッサと、1以上の命令を格納するコンピュータ読み取り可能な格納媒体とを備えるシステムであって、
前記1以上の命令は、前記1以上のプロセッサによって実行された時に、
コンピューティングデバイスの第1のユーザ・インタフェース内に、ドキュメントの現在のバージョンを表示する工程と、
前記ドキュメントの前に保存されたバージョンを表示させる指示を受け取る工程と、
前記指示を受け取ったことに応答して、第1の部分と第2の部分とを有する第2のユーザ・インタフェースを表示する工程と、を行わせ、
前記ドキュメントの前記現在のバージョンは前記第2のユーザ・インタフェースの前記第1の部分に表示され、
前記ドキュメントの特定の前のバージョンは、前記第2のユーザ・インタフェースの前記第2の部分に、前記ドキュメントの前のバージョンのシーケンスにおいて表示される
ことを特徴とするシステム。
【請求項24】
前記命令は、
前記ドキュメントの前記特定の前のバージョン内の内容の選択を受け取る工程と、
前記選択された内容をコピーする工程と、
前記選択された内容を、前記第2のユーザ・インタフェースの前記第1の部分に表示された前記ドキュメントの前記現在のバージョンへとペーストする工程と、
を行わせる命令を含むことを特徴とする、請求項23に記載のシステム。
【請求項25】
前記命令は、
前記第2のユーザ・インタフェースの前記第1の部分に、前記ドキュメントの前記現在のバージョンの内容を表示する工程と、
前記第2のユーザ・インタフェースの前記第2の部分に、前記ドキュメントの前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項23に記載のシステム。
【請求項26】
前記命令は、
前記特定の前のバージョンの内容をスクロールする工程と、
前記内容をスクロールしている間に、前記特定の前のバージョンの内容を表示する工程と、
を行わせる命令を含むことを特徴とする、請求項23に記載のシステム。
【請求項27】
前記命令は、
前記ドキュメントの前記現在のバージョンを、前記特定の前のバージョンで置き換える指示を受け取る工程と、
前記指示に応答して、
前記ドキュメントの前記特定の前のバージョンを複製する工程と、
前記現在のバージョンを前のバージョンとしてマークする工程と、
前記特定の前のバージョンの前記複製を現在のバージョンとして保存する工程と、
を行わせる命令を含むことを特徴とする、請求項23に記載のシステム。
【請求項28】
前記命令は、前記ドキュメントの前記特定の前のバージョンが表示されるまで、前記ドキュメントの前のバージョンの前記シーケンスをスクロールする工程を行わせる命令を含むことを特徴とする、請求項23に記載のシステム。
【請求項29】
前記ドキュメントの前のバージョンの前記シーケンスが、ドキュメントの積み重ねとして表示されることを特徴とする、請求項24に記載のシステム。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図1】
image rotate

【図6】
image rotate


【公開番号】特開2012−185805(P2012−185805A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−5643(P2012−5643)
【出願日】平成24年1月13日(2012.1.13)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】