(57)【要約】【課題】文書の編集の履歴を容易に確認できる文書共同編集システムを提供する。【解決手段】文書ファイルを記憶するファイル格納部１０１と、文書ファイルを端末２００に表示するファイル提示部１０３と、端末２００から文書ファイルを編集する操作の指令を受信する通信部１０４と、通信部１０４で受信した文書ファイルを編集する操作の指令に従って、文書ファイルの編集を実行するファイル編集部１０２と、ファイル編集部１０２で実行した文書ファイルを編集する操作を表すデータである、操作データを記憶する操作履歴格納部１０５と、操作履歴格納部１０５に記憶された操作データから、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出する操作群抽出部１０６と、操作群抽出部１０６で抽出した操作群を単位として、文書ファイルを編集する操作を再生して端末２００に表示する編集履歴再生部１０７と、を備える。【選択図】図１
2010097324.tif 000002
【特許請求の範囲】
【請求項１】
文書ファイルを記憶する文書記憶手段と、
前記文書ファイルを端末に表示する文書表示手段と、
前記端末から前記文書ファイルを編集する操作の指令を受信する受信手段と、
前記受信手段で受信した前記文書ファイルを編集する操作の指令に従って、前記文書ファイルの編集を実行する編集手段と、
前記編集手段で実行した前記文書ファイルを編集する操作を表すデータである、操作データを記憶する操作履歴記憶手段と、
前記操作履歴記憶手段に記憶された操作データから、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出する操作群抽出手段と、
前記操作群抽出手段で抽出した操作群を単位として、前記文書ファイルを編集する操作を再生して前記端末に表示する編集履歴再生手段と、
を備えることを特徴とする文書共同編集システム。
【請求項２】
前記操作データは、前記端末のキーストローク情報を含むことを特徴とする請求項１に記載の文書共同編集システム。
【請求項３】
前記操作群抽出手段は、前記操作データのうち前記編集の操作を行った時刻のデータを用いて、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出することを特徴とする請求項１または２に記載の文書共同編集システム。
【請求項４】
前記編集履歴再生手段の前記編集する操作の再生は、前記操作群単位の前記文書を編集する箇所について、編集操作前の編集対象部分の強調表示と、前記編集操作後の前記編集対象部分の強調表示を含む、ことを特徴とする請求項１ないし３のいずれか１項に記載の文書共同編集システム。
【請求項５】
前記操作群を単位として前記操作データを削除する指令の入力を受け付ける、履歴操作入力手段と、
前記履歴操作入力手段で入力した指令に従って、前記操作群を単位として前記操作データを削除する操作履歴削除手段と、
を備えることを特徴とする請求項１ないし４のいずれか１項に記載の文書共同編集システム。
【請求項６】
文書ファイルを端末に表示する文書表示ステップと、
前記端末から前記文書ファイルを編集する操作の指令を受信する受信ステップと、
前記受信ステップで受信した操作の指令に従って、前記文書ファイルの編集を実行する編集ステップと、
前記編集ステップで実行した前記文書ファイルを編集する操作を表すデータである、操作データを記憶する操作履歴記憶ステップと、
前記操作履歴記憶ステップで記憶した操作データから、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出する操作群抽出ステップと、
前記操作群抽出ステップで抽出した操作群を単位として、前記文書ファイルを編集する操作を再生して前記端末に表示する編集履歴再生ステップと、
を備えることを特徴とする文書共同編集方法。
【請求項７】
前記操作履歴記憶ステップは、前記端末のキーストローク情報を記憶し、
前記操作群抽出ステップは、前記キーストローク情報を用いて、ある操作データに関連づけられるひとまとまりの操作を操作群として抽出する、
ことを特徴とする請求項６に記載の文書共同編集方法。
【請求項８】
前記操作群抽出ステップは、前記操作データのうち前記編集の操作を行った時刻のデータを用いて、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出することを特徴とする請求項６または７に記載の文書共同編集方法。
【請求項９】
前記編集履歴再生ステップは、前記操作群単位の前記文書を編集する箇所について、編集操作前の編集対象部分を強調して表示するステップと、前記編集操作後の前記編集対象部分を強調して表示するステップを含むことを特徴とする請求項６ないし８のいずれか１項に記載の文書共同編集方法。
【請求項１０】
前記操作群を単位として前記操作データを削除する指令の入力を受け付ける、履歴操作入力ステップと、
前記履歴操作入力ステップで入力した指令に従って、前記操作群を単位として前記操作データを削除する操作履歴削除ステップと、
を備えることを特徴とする請求項６ないし９のいずれか１項に記載の文書共同編集方法。
【請求項１１】
コンピュータに、
文書ファイルを端末に表示する文書表示ステップと、
前記端末から前記文書ファイルを編集する操作の指令を受信する受信ステップと、
前記受信ステップで受信した操作の指令に従って、前記文書ファイルの編集を実行する編集ステップと、
前記編集ステップで実行した前記文書ファイルを編集する操作を表すデータである、操作データを記憶する操作履歴記憶ステップと、
前記操作履歴記憶ステップで記憶した操作データから、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出する操作群抽出ステップと、
前記操作群抽出ステップで抽出した操作群を単位として、前記文書ファイルを編集する操作を再生して前記端末に表示する編集履歴再生ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はテキストなどの文書を共同して編集する文書共同編集システム、文書共同編集方法に関する。特に、プログラミング等の知識生産を目的にした文書共同編集システムに関する。
【背景技術】
【０００２】
テキストの編集は、文書作成や電子メール作成など様々な情報生産における基本的な手段である。プログラミング等の知識生産においてもテキスト編集が使われるが、そのような知識の生産は一人で実施するのではなく、複数人で知恵を合わせながら実施する方が効率がよい場合がある。そこで、複数人での共同作業を可能にする文書共同編集システムが望まれる。
【０００３】
共同編集管理システムの一例が、特許文献１に記載されている。特許文献１の共同編集管理システムは、ページ単位に文書の編集を行わせ、更新の履歴を管理する。そのシステムは、ページとバージョンを指定したスナップショット作成の指示を受け付ける手段と、指定されたバージョンのページをまとめたスナップショットを作成する手段と、スナップショット内のページと対応付けてコメントを管理する手段と、ページ表示要求に応じてページを表示する手段とを備える。
【０００４】
特許文献２には、共同作業者が他の作業者に影響をあたえずに自由に共有データを操作し、作業結果を共有データにするための技術が記載されている。特許文献２の技術は、少なくとも作業者が使用するワークステーションと、共有データを管理する手段を備えた共同作業支援システムにおいて、共有データとつながりを持ち各作業者が占有できる半共有データと、共有データを記録する共有および半共有データ蓄積手段と、共有データおよび半共有データを管理する共有データ管理手段を備える。
【０００５】
テキストの編集履歴を詳細に記録する方法として、キーストロークを記録する手法が知られている。特許文献３の作業内容記録システムは、ネットワークに接続された複数のサーバまたは端末装置毎に設けられ、リストアップされた保存対象のログファイルをリアルタイムで転送する対象サーバエージェント部を備える。対象サーバエージェント内にユーザ毎のキーストロークをリアルタイムで記録するターミナル入出力レコード手段を設ける。
【０００６】
特許文献４には、操作履歴の中から、ユーザの意図に基づいて行なわれた一連の操作履歴群を抽出する技術が記載されている。特許文献４のドキュメント管理システムは、入力装置から入力されるユーザ操作を監視して、ドキュメントの作成／更新／参照処理や、送信／印刷などのドキュメント出力処理を抽出し、操作対象のドキュメント名と、操作が発生した時刻、操作を行なったユーザ識別子および送信先のユーザ識別子などとを操作履歴として記録する。そして、蓄積された操作履歴を解析し、たとえば予め定められた時間的な範囲内にあって時系列に並んだユーザ別の小さな履歴列に分割して、この分割後の操作履歴群をクラスタとして記録する。
【０００７】
【特許文献１】特開２００７−１８８１４３号公報
【特許文献２】特開平０６−１６１９５６号公報
【特許文献３】特開２００８−１２９６８５号公報
【特許文献４】特開２０００−１７２６９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
例えば、特許文献１の共同編集管理システムは次のように動作する。共同編集クライアントからテキスト編集の状態を受信すると、テキスト編集手段はテキスト編集の状態をテキストデータベースに格納する。共同編集クライアントからテキスト表示の要求を受信すると、テキストデータベースからテキスト表示の要求に該当するテキストを取得し、共同編集クライアントに送る。テキストデータベースは、テキストの過去の状態や編集者によるコメントを格納することができる。共同編集クライアントからの要求によっては、コメントを表示したり、テキストの改変履歴を表示したりする。その結果、編集者は他の編集者による作業を把握することができる。
【０００９】
特許文献４のドキュメント管理システムは、ユーザごとの一連の操作履歴群を抽出するが、操作履歴群を時系列に分割し情報として表示するだけなので、編集内容とその相互関係を把握しにくい。
【００１０】
編集者が他の編集者による編集内容をより確実に把握するためには、編集結果のテキストだけではなく、編集途中のテキストのスナップショットの履歴やコメントなどの付加情報がどれだけ充実しているかがポイントとなる。コメントなどの付加情報もテキストで表現される場合が多く、テキストの編集履歴をどれだけ詳細に記録するかが重要になる。
【００１１】
テキストの編集履歴として、キーストロークを記録する方法を用いると、編集中に削除した文字なども共有できるため、編集の経緯を知ることができ、例えば、同じ間違いを犯すことを避けることができる。また、キーストロークが記録されていることが分かれば、時間軸に自由度が生まれ、例えば、編集中に編集方針を書いてからそれを消して編集を開始するなど、コメントの書き方に柔軟性が与えられる。しかしながら、テキスト共同編集システムの目的は複数人で共同作業をして知識生産の効率を上げることなので、単にキーストロークを記録するだけでは次のような問題がある。
【００１２】
関連する技術の共同編集管理システムの問題点は、編集の履歴を確認するためにキーストロークを再生する必要があるが、単純に再生するだけでは過去の編集者の作業を把握することが容易ではないことである。すなわち、キーストロークを実時間で再生すると、確認するだけで相当の時間がかかってしまい、また、早送りで再生すると、肝心の編集部分が一瞬で過ぎ去ってしまうという問題がある。
【００１３】
本発明は上述のような状況に鑑みてなされたものであり、文書の編集の履歴を容易に確認できる文書共同編集システムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の第１の観点に係る文書共同編集システムは、
文書ファイルを記憶する文書記憶手段と、
前記文書ファイルを端末に表示する文書表示手段と、
前記端末から前記文書ファイルを編集する操作の指令を受信する受信手段と、
前記受信手段で受信した前記文書ファイルを編集する操作の指令に従って、前記文書ファイルの編集を実行する編集手段と、
前記編集手段で実行した前記文書ファイルを編集する操作を表すデータである、操作データを記憶する操作履歴記憶手段と、
前記操作履歴記憶手段に記憶された操作データから、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出する操作群抽出手段と、
前記操作群抽出手段で抽出した操作群を単位として、前記文書ファイルを編集する操作を再生して前記端末に表示する編集履歴再生手段と、
を備えることを特徴とする。
【００１５】
本発明の第２の観点に係る文書共同編集方法は、
文書ファイルを端末に表示する文書表示ステップと、
前記端末から前記文書ファイルを編集する操作の指令を受信する受信ステップと、
前記受信ステップで受信した操作の指令に従って、前記文書ファイルの編集を実行する編集ステップと、
前記編集ステップで実行した前記文書ファイルを編集する操作を表すデータである、操作データを記憶する操作履歴記憶ステップと、
前記操作履歴記憶ステップで記憶した操作データから、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出する操作群抽出ステップと、
前記操作群抽出ステップで抽出した操作群を単位として、前記文書ファイルを編集する操作を再生して前記端末に表示する編集履歴再生ステップと、
を備えることを特徴とする。
【００１６】
本発明の第３の観点に係るプログラムは、コンピュータに、
文書ファイルを端末に表示する文書表示ステップと、
前記端末から前記文書ファイルを編集する操作の指令を受信する受信ステップと、
前記受信ステップで受信した操作の指令に従って、前記文書ファイルの編集を実行する編集ステップと、
前記編集ステップで実行した前記文書ファイルを編集する操作を表すデータである、操作データを記憶する操作履歴記憶ステップと、
前記操作履歴記憶ステップで記憶した操作データから、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出する操作群抽出ステップと、
前記操作群抽出ステップで抽出した操作群を単位として、前記文書ファイルを編集する操作を再生して前記端末に表示する編集履歴再生ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、１つの文書を複数の編集者がそれぞれ編集できるシステムにおいて、関連づけられるひとまとまりの操作群を単位として編集履歴の再生を行うことができるので、文書の編集の履歴を容易に確認できる。
【発明を実施するための最良の形態】
【００１８】
（実施の形態１）
図１は、本発明の実施の形態１に係る文書共同編集システムの構成例を示すブロック図である。文書共同編集システムは、文書共同編集サーバ（以下、サーバということがある）１００と、共同編集クライアント（以下、端末ということがある）２００とから構成される。サーバ１００と端末２００は、ネットワークＮを介して接続する。
【００１９】
典型的には、文書共同編集サーバ１００はＷｅｂサーバで、共同編集クライアント２００はＷｅｂブラウザを備える。文書共同編集サーバ１００は具体的には、Ａｐａｃｈｅなどの汎用のＷｅｂサーバを用いたり、軽量なＨＴＴＰ（Hyper Text Transfer Protocol）サーバを用いる。
【００２０】
共同編集クライアント２００は具体的には、Ｆｉｒｅｆｏｘ（登録商標）などのＪａｖａＳｃｒｉｐｔ（登録商標）をサポートしたＷｅｂブラウザを用いたり、Ｆｌａｓｈ（登録商標）を動作させることができるブラウザやプレーヤを用いる。
【００２１】
文書共同編集サーバ１００は、ファイル格納部１０１、ファイル編集部１０２、ファイル提示部１０３、通信部１０４、操作履歴格納部１０５、操作群抽出部１０６、および編集履歴再生部１０７とから構成される。
【００２２】
ファイル格納部１０１は、共同編集する文書を格納する。場合によっては、文書の過去の版なども格納する。格納する文書には、テキスト、ＲＴＦ（Rich Text Format）ファイル、ＨＴＭＬ（Hyper Text Markup Language）で作成されたファイルなどを含む。また、文字、段落、ページなどの書式を含むワープロファイル、図形や画像を含むファイルなども対象になり得る。
【００２３】
ファイル格納部１０１は、Ｓｕｂｖｅｒｓｉｏｎ（登録商標）などのリビジョン管理システムを用いることができる。リビジョン管理システムは、編集毎の変化をすべて記録することができ、任意の時点でのテキストを取り出すことができる。
【００２４】
ファイル提示部１０３は、ファイル格納部１０１に格納されている文書データから、その文書を端末２００に表示するデータを生成する。そして、通信部１０４を介して、端末２００に送信する。
【００２５】
端末２００は、表示部２０１と入力部２０２を備える。表示部２０１は、ＣＲＴまたは液晶表示装置などを備え、サーバ１００から送信された文書を表示する。入力部２０２はキーボードおよびマウスなどのポインティングデバイスを備える。ユーザは、表示部２０１に表示された文書を見て、文書を編集するための指令と、文書に追加するデータを入力することができる。編集するための指令と文書に追加するデータが入力されると、端末２００はそれらのデータをサーバ１００に送信する。
【００２６】
ファイル編集部１０２は、通信部１０４で受信するコマンドにより、コマンドが示す文書を編集し、ファイル格納部１０１に格納する。コマンドには、編集結果の文書の一部を含む場合と、前回の状態からの差分を含む場合がある。ファイル編集部１０２は、また、コマンドに含まれる操作データを操作履歴格納部１０５に格納する。
【００２７】
操作履歴格納部１０５は、ＭｙＳＱＬ（登録商標）などのリレーショナルデータベースを用いるか、ファイル格納部１０１と同様にＳｕｂｖｅｒｓｉｏｎ（登録商標）などのリビジョン管理システムを用いることができる。
【００２８】
操作データは、文書の編集として例えば、文字の挿入、文字の削除、文字の置換（削除と挿入に還元される）を含む。文書がワープロなどのファイルの場合には、書式の設定なども操作に含む。操作には他に、カーソルの移動、表示文書のスクロール、文書の保存、文書の印刷などを含む。文書が図形や画像を含む場合には、図形の挿入・削除、図形の変形・移動などの編集操作を含む。
【００２９】
図２は、操作データの例を示す。操作データには、編集対象文書の識別名、編集を開始してからの時間（操作時刻）、操作キー、編集者の識別子、編集操作する端末の識別子、編集時刻などを含む。操作データは、すべての文書について、およびすべての編集者について、時系列に連続したひとつのファイルとして格納されてもよい。また、対象の文書ごとに、分割されたデータとして格納されてもよい。
【００３０】
操作データは、例えばキーストロークの記録を含む。キーストロークの記録は編集対象文書の識別子に加え、少なくとも操作時刻と操作キー情報を含む。操作時刻は、編集開始時点からの相対時間で表現する。操作キー情報は、基本的にどのキーをタイプしたか情報であるが、キーストロークを再生して編集の履歴を再生するためには、キー以外の情報を含むこともある。例えば、カーソルの位置や、ペースト時のクリップボードの内容や、操作の取消（ＵＮＤＯ）などの特殊機能などがある。
【００３１】
新たな文書が作成されるときは、新規文書を作成する指令が端末２００から入力されて、ファイル編集部１０２は、新たな文書ファイルを生成して、ファイル格納部１０１に格納する。そして、ファイル提示部１０３は、（まだデータが入力されていない）新たな文書ファイルを表示するデータを端末２００に送信する。その後、端末２００からの編集操作によって、データがその文書に入力される。
【００３２】
図１の操作群抽出部１０６は、操作履歴格納部１０５に格納された操作履歴から、ある操作データに所定の条件に適合する関係を有する操作データを、ひとまとまりの操作群として抽出する。操作群となるのは、例えば、対象文書を編集者が同じで、操作した時刻が近接している操作データどうしである。あるいは、削除する文字列または挿入する文字列が同じである操作データどうしを操作群として抽出することができる。文字の順序を含めて文字列が所定の割合以上一致する操作データどうしを操作群としてもよい。また、操作位置が所定の条件の範囲、例えば、１つの段落の中の操作であって、操作時刻が近接している操作データを操作群として抽出することもできる。
【００３３】
操作群抽出部１０６は、各操作データ間の操作時刻の差分を計算する。そして、計算した操作時刻の差分をもとに、各操作データをグルーピングする。すなわち、操作時刻の差分があるしきい値以下の連続した操作データを一つの操作群とする。操作時刻が近接しているかどうかを判断するしきい値は、予め定められた値、もしくは、計算した操作時刻の差分をもとに、分散や１０％値などの統計値を用いて設定する。それぞれの操作群には、操作時刻の長さと操作数から算出した標準再生速度倍率を含めてもよい。
【００３４】
具体的な例を挙げて説明すると、操作群抽出部１０６は、操作履歴格納部１０５から編集対象テキストが／ＡＡＡ／ＢＢＢ．ＴＸＴで、操作時刻が１１０００以上の操作履歴のリストを取得する。あるいは、編集履歴再生部１０７が、操作履歴格納部１０５から取得したテキストのリビジョンの操作時刻以上の操作データのリストを取得し、１１０００までの操作履歴をテキストのリビジョンに適用しておく。
【００３５】
次に、操作群抽出部１０６は、操作時刻の差分を計算する。例えば、操作時刻のリストが、５０００，６０００，８０００だとすると、差分は、１０００，２０００となる。操作群抽出部１０６は、例えば、操作時刻の差分が１５００以上である場合に操作データをまとめて１つの操作群とする。あるいは、操作時刻の差分が７５％値より大きい場合に操作データをまとめて１つの操作群とする、もしくは、グループ数がある値（例：３０）となるようにしきい値を定め操作データをまとめて１つの操作群とする。
【００３６】
操作時刻を用いずに、他の属性、例えば押下キーの種類、によって操作群を抽出してもよい。たとえば、押下キーの種類が連続する削除キーであった場合には、その削除キーの開始で操作データを分けて以降の削除キー押下をまとめて操作群とする。
【００３７】
さらに、操作群抽出部１０６は、操作群毎に標準再生速度を算出し、グループの情報として加える。標準再生速度の算出は、例えば、一つの操作群の操作時間（最初の操作時刻から最後の操作時刻までの差）とその操作群に含まれる操作データの個数の比率で設定することができる。例えば、１０００ミリ秒に平均７個のキーストロークを再生するためには、標準再生速度は、操作時間／（個数×１０００／７）とする。
【００３８】
図３は、操作群の例を示す。図３の例では、操作群は、操作群ＩＤ、編集対象文書、操作時刻、文書内位置、編集内容、編集者識別子、端末識別子および編集時刻を含む。例えば、操作群ＩＤ＝Ｇ１の操作群は、文書内位置がＰ０１，Ｐ０２、Ｐ０３の３カ所で、文字列Ｃ１を削除している。この場合、文書と編集者が同一で、削除する文字列Ｃ１が一致する操作データを操作群として抽出している。
【００３９】
同様に、操作群ＩＤ＝Ｇ２は、２カ所に文字列Ｃ２を挿入した場合を示す。また、操作群ＩＤ＝Ｇ３は、複数箇所で文字列Ｃ３を文字列Ｃ４に置換した場合を示す。操作群ＩＤ＝Ｇ４は、例えば、１つの段落内の操作を１つの操作群として抽出していることを示す。操作群ＩＤ＝Ｇ５は、文字列Ｃ９を文書内位置Ｐ４１からＰ４２に移動した場合を示す。
【００４０】
１つの操作群に含まれる操作データは、１つの文書で同一の編集者について、操作順序が連続しているとは限らない。例えば図３で、操作群Ｇ１、Ｇ２、Ｇ３に含まれる削除、挿入、置換の順序が入り組んで、編集されたかもしれない。図３では、操作時刻は１つの操作群に含まれる最初の操作データの時刻であることを想定している。操作群に含まれる最後の操作データの時刻を、操作群のデータに含めてもよい。
【００４１】
図１の編集履歴再生部１０７は、ある文書について、操作群抽出部１０６で抽出した操作群を単位として、編集履歴を再生する。編集履歴の再生とは、対象の文書の１つの編集操作の前の状態と、その編集操作ののちの状態を表示することである。操作群を単位とするということは、少なくとも、１つの操作群に属するすべての操作を行う前の状態と、その操作群に属するすべての操作の後の状態を表示する。
【００４２】
通信部１０４は、端末２００から受信したデータを判別し、文書の編集に関するコマンドをファイル編集部１０２に送り、編集履歴再生に関するコマンドを編集履歴再生部１０７に送る。通信部１０４はＷｅｂサーバ内のＣＧＩ（Ｃｏｍｍｏｎ Ｇａｔｅｗａｙ Ｉｎｔｅｒｆａｃｅ）やＳｅｒｖｌｅｔで実装され、共同編集クライアント２００からのＨＴＴＰの要求に応じて、処理をファイル編集部１０２や編集履歴再生部１０７に振り分ける。
【００４３】
ファイル編集部１０２に振り分けるようなＨＴＴＰの要求は、例えば、ＣＭＤ＝ＥＤＩＴ＆ＴＥＸＴ＝／ＡＡＡ／ＢＢＢ．ＴＸＴ＆ＣＯＮＴＥＮＴ＝ＡＢＣＤＥＦＧＨＩＪ＆ＫＥＹＳＴＲＯＫＥ＝Ｈ：１４０００，Ｉ：１５０００，Ｊ：１６０００のように表現され、それぞれ次のような意味を有する。すなわち、ＣＭＤはコマンドの種類を意味し、ＴＥＸＴはテキストの識別子を意味し、ＣＯＮＴＥＮＴは編集後のテキストの内容を意味し、ＫＥＹＳＴＲＯＫＥは操作履歴を意味する。
【００４４】
操作データは、たとえば、コンマ（，）区切りで表現され、その一つの項目は、押下したキーと操作時刻がコロン（：）で区切られる。操作時刻の単位は例えばミリ秒とする。ファイル編集部１０２は、前記のような要求を受けとると、ファイル格納部１０１の／ＡＡＡ／ＢＢＢ．ＴＸＴのテキストの内容をＡＢＣＤＥＦＧＨＩＪに更新し、操作履歴格納部１０５にＫＥＹＳＴＲＯＫＥの内容を図２に示すような形式で追記する。
【００４５】
編集履歴再生部１０７は、編集履歴を再生する範囲を端末２００から受信する。再生する範囲は、例えば、対象の文書、対象の編集者、および対象の期間を指定することができる。編集履歴再生部１０７は、端末２００から受信した編集履歴を再生する範囲に従って、操作群抽出部１０６に操作群を抽出する範囲を指定する。そして、編集履歴再生部１０７は、操作群抽出部１０６から操作群のデータを受ける。
【００４６】
操作履歴の再生のために、編集履歴再生部１０７は、現在の文書の状態からその文書の操作データを用いて、編集履歴を再生する範囲の最初の時点の状態を再現する。または、その文書の過去の版から、操作データを用いて編集履歴を再生する範囲の最初の時点の状態を再現する。そして、操作群を単位として編集履歴を再生する。
【００４７】
通信部１０４から編集履歴再生部１０７に振り分けるようなＨＴＴＰの要求は、例えば、ＣＭＤ＝ＳＨＯＷ＆ＴＥＸＴ＝／ＡＡＡ／ＢＢＢ．ＴＸＴ＆ＳＴＡＲＴ＝１１０００のように表現され、それぞれ次のような意味を有する。すなわち、ＣＭＤはコマンドの種類を意味し、ＴＥＸＴはテキストの識別子を意味し、ＳＴＡＲＴは操作履歴の再生を開始するそ操作時刻を意味する。編集履歴再生部１０７は、前記のような要求を受けとると、ファイル格納部１０１の／ＡＡＡ／ＢＢＢ．ＴＸＴのテキストの初期リビジョンを取得し、要求を操作群抽出部１０６に転送する。なお、再生開始時刻から対応するリビジョンを取得できる場合は、再生開始時刻より早く最も近いリビジョンを取得する。
【００４８】
編集履歴の再生は、１つの操作群にあずかる編集前の部分と、編集後の部分を強調表示するのが望ましい。強調表示は、その操作群の編集にあずかる部分をその他の部分と区別して表示することをいう。例えば、削除される文字列を、反転表示または反転表示と通常表示の交互繰り返し表示したり、他の部分と異なる色で表示する。また、文字列を挿入する箇所に色違いのカーソルを表示する。編集後の強調表示は、例えば、挿入した文字列を、反転表示または反転表示と通常表示の交互繰り返し表示したり、他の部分と異なる色で表示する。また、文字列を削除した箇所に色違いのカーソルを表示してもよい。
【００４９】
編集履歴再生部１０７は、操作群抽出部１０６から操作群を取得し、再生表示用のＨＴＭＬおよびＪａｖａＳｃｒｉｐｔ（登録商標）を作成し、通信部１０４を介して共同編集クライアント２００にＨＴＴＰの応答を送る。共同編集クライアント２００はＨＴＭＬおよびＪａｖａＳｃｒｉｐｔ（登録商標）を表示実行することで、編集履歴を再生することができる。あるいは、例えばＦｌａｓｈ（登録商標）のアプリケーションとして、共同編集クライアント２００で編集履歴を再生する構成としてもよい。
【００５０】
図４は、履歴再生表示の例を示す。図４（ａ）は１つの操作群の編集前の状態を示す。図４（ｂ）は、その操作群の編集後の状態を示す。図４（ａ）では、編集で削除される文字列に下線をつけて斜字体で表示している。また、文字列が挿入される箇所に縦棒を表示している。図４（ｂ）では、編集で挿入または置換された文字列を囲む四角い枠を表示している。
【００５１】
編集履歴の再生は、１つの操作群について、編集前の状態と編集後の状態を同じ表示枠に、時間をずらして表示することができる。編集前の状態の表示から編集後の状態の表示への切り替えは、ユーザのキー操作またはマウス操作などで行ってもよいし、所定の時間間隔で自動的に切り替えてもよい。自動的に切り替える場合の時間間隔は、操作群の編集にあずかる文字数など編集の量に応じて変化させてもよい。１つの状態を表示している間に、文書をスクロールして編集箇所を確認できることが望ましい。
【００５２】
また、編集履歴は１つの操作群について、編集前の状態と編集後の状態を別の表示枠に同時に表示してもよい。その場合、編集前と編集後の表示枠を連動して、表示された文書をスクロールできることが望ましい。
【００５３】
1つの操作群の履歴表示から次の操作群の履歴表示への切り替えは、ユーザのキー操作またはマウス操作などで行ってもよいし、所定の時間間隔で自動的に切り替えてもよい。自動的に切り替える場合の時間間隔は、操作群の編集にあずかる文字数など編集の量に応じて変化させてもよい。
【００５４】
編集履歴の再生は、操作群を単位として、次々に自動的に切り替えて表示することができる。そのため、編集履歴再生は、コマ送りまたは動画のように見える。例えば、入力する文字列を１文字ずつ表示したり、削除する文字を１文字ずつ消去してもよい。あるいは、カーソルを移動するための文書のスクロールを連続で表示してもよい。また、再生する速さを編集操作の内容に合わせて適切に変化させることができる。その結果、編集履歴を再生させるオペレータにとって、見やすく理解しやすい再生速度で表示することができる。
【００５５】
図５は、実施の形態１に係る文書共同編集システムの動作の一例を示すフローチャートである。図５（ａ）は、文書編集の動作を、図５（ｂ）は、編集履歴再生の動作を示す。
【００５６】
文書編集について、ファイル編集部１０２は、編集操作コマンドを入力すると（ステップＳ１１）、そのコマンドに従って文書を編集する（ステップＳ１２）。例えば、文字列の挿入、削除または置換などを行う。そして、編集済みの文書をファイル格納部１０１に格納する（ステップＳ１３）。また、同時にその編集操作を操作履歴格納部１０５に格納する（ステップＳ１４）。
【００５７】
受信したコマンドが編集終了でなければ（ステップＳ１５；ＮＯ）、次の編集コマンド入力（ステップＳ１１）に戻って、編集動作を繰り返す。コマンドが編集終了であれば（ステップＳ１５；ＹＥＳ）、編集動作を終了する。
【００５８】
編集履歴再生について、編集履歴再生部１０７は、文書ＩＤと編集履歴を再生する対象の範囲を入力すると（ステップＳ２１）、ファイル格納部１０１から対象の文書を取得する（ステップＳ２２）。そして、編集履歴を再生する対象の範囲を操作群抽出部１０６に指示する。
【００５９】
操作群抽出部１０６は、対象の範囲の操作履歴を取得し（ステップＳ２３）、操作データの間の時間を算出する（ステップＳ２４）。操作群抽出部１０６は、操作データの時間間隔などから所定の条件で、操作群を抽出する（ステップＳ２５）。そして、操作群のデータを編集履歴再生部１０７に渡す。
【００６０】
編集履歴再生部１０７は、操作群単位で操作履歴（操作履歴ｉ）を再生表示する（ステップＳ２６）。対象の範囲で次の操作群があれば（ステップＳ２７；ＹＥＳ）、次の操作群の操作履歴を再生表示する（ステップＳ２６）。次の操作群がなければ（ステップＳ２７；ＮＯ）、編集履歴再生を終了する。
【００６１】
以上説明したように、本実施の形態１の文書共同編集システムによれば、１つの文書を複数の編集者がそれぞれ編集できるシステムにおいて、関連づけられるひとまとまりの操作群を単位として編集履歴の再生を行うことができる。その結果、文書の編集の履歴を容易に確認できる。
【００６２】
また、編集履歴の再生表示では、編集操作前の編集対象部分の強調表示と、その編集操作後の編集対象部分の強調表示を含む。それによって、編集履歴の内容を把握することができる。
【００６３】
（実施の形態２）
図６は、実施の形態２に係る文書共同編集システムの構成例を示すブロック図である。実施の形態２の文書共同編集システムは、操作群単位で編集履歴から編集動作を削除できる。
【００６４】
関連する技術の共同編集管理システムにおける第２の問題点は、複数の編集者が同時にテキストを編集する場合に、ある編集者の一部の編集に不正や間違いがあった際に、その編集を取り消す必要があるが、キーストロークによる一部の編集を無効にすることが容易ではないことである。すなわち、一連のキーストロークを再生することができても、その区切りが分からず、キーストロークの一部を特定することは困難である。さらに、ある編集者のキーストロークの再生中に別の編集者がコメントを追記するキーストロークをも記録するなど、一つのテキストにおいて複数の編集者のキーストロークが同時に記録されている場合、キーストロークの再生時にキーストロークの表示が重なったり、交錯したりするなどそれぞれのキーストロークを区別することも困難である。
【００６５】
実施の形態２の文書共同編集サーバ１００は、実施の形態１の構成にさらに編集履歴操作部１０８を備える。編集履歴操作部１０８は、操作群抽出部１０６で抽出した操作群に対して、一つもしくは複数の操作群を取り消す操作を追加する。編集履歴操作部１０８は、ある操作群を特定し、その操作群もしくは、その操作群とすべてもしくは一部の属性情報が同じ操作群に対して削除するという指令を受け付ける。編集者が操作群を削除する指令を入力した場合には、相当する操作履歴を削除して編集履歴の再生をやり直すことにより削除を実施する。
【００６６】
履歴の再生のやり直しは、編集者に見えない形で行ってもよい。また、編集履歴を削除することにより、以降の操作履歴の操作が無効になる場合、例えば、既に消された文字を消そうとするなどの場合には、必要に応じて関連する操作履歴も削除する。
【００６７】
編集履歴操作部１０８は、編集履歴再生時に操作取り消しリンクを追加する。操作取り消しリンクは、ＨＴＭＬでは、例えば、＜Ａ ＨＲＥＦ＝”．．．？ＣＭＤ＝ＲＥＶＥＲＴ＆ＥＤＩＴＯＲ＝Ｕｓｅｒ１＆ＴＥＲＭ＝Ｔｅｒｍ１＆ＳＴＡＲＴ＝８０００＆ＥＮＤ＝１２０００＞のようになる。このリンクを実行すると、共同編集クライアント２００は通信部１０４を介してファイル編集部１０２に操作履歴の取り消しコマンドを送り、共同編集クライアント２００は操作履歴の取り消すように編集する。あるいは、共同編集クライアント２００の内部で操作履歴の取り消し、適当なタイミングで編集コマンドを通信部１０４を介してファイル編集部１０２に送る。
【００６８】
図７は、実施の形態２に係る文書共同編集システムの動作の一例を示すフローチャートである。図７のステップＳ３１からステップＳ３６の動作は、図５（ｂ）のステップＳ２１からステップＳ２６の動作と同様である。
【００６９】
ｉ番目の操作群（操作履歴ｉ）を表示したときに（ステップＳ３６）、その操作群の削除を受け付けた場合（ステップＳ３７；ＹＥＳ）、その操作群を削除する（ステップＳ３８）。削除指令がなければ（ステップＳ３７；ＮＯ）、操作群の編集履歴を削除しない。
【００７０】
以降、対象の範囲で次の操作群があれば（ステップＳ３９；ＹＥＳ）、次の操作群の操作履歴を表示する（ステップＳ３６）。次の操作群がなければ（ステップＳ３９；ＮＯ）、編集履歴再生を終了する。
【００７１】
以上説明したように、実施の形態２の文書共同編集システムによれば、操作群毎もしくは操作群の属性毎に操作履歴を削除できるので、特定の関連する編集の操作をまとめて取り消したり、特定の編集者による編集をまとめて取り消したりすることができる。その結果、文書の共同編集を効率的に実施することができる。
【００７２】
図８は、図１または図６に示す共同編集支援システムにおける文書共同編集サーバ１００のハードウェア構成の一例を示すブロック図である。文書共同編集サーバ１００は、図８に示すように、制御部１１、主記憶部１２、外部記憶部１３、操作部１４、表示部１５、計時部１６及び送受信部１７を備える。主記憶部１２、外部記憶部１３、操作部１４、表示部１５、計時部１６及び送受信部１７はいずれも内部バス１０を介して制御部１１に接続されている。
【００７３】
制御部１１はＣＰＵ（Central Processing Unit）等から構成され、外部記憶部１３に記憶されているプログラムに従って、サーバ１００の共同編集を支援する処理を実行する。
【００７４】
主記憶部１２はＲＡＭ（Random-Access Memory）等から構成され、外部記憶部１３に記憶されているプログラムをロードし、制御部１１の作業領域として用いられる。
【００７５】
外部記憶部１３は、フラッシュメモリ、ハードディスク、ＤＶＤ−ＲＡＭ（Digital Versatile Disc Random-Access Memory）、ＤＶＤ−ＲＷ（Digital Versatile Disc ReWritable）等の不揮発性メモリから構成され、前記の処理を制御部１１に行わせるためのプログラムを予め記憶し、また、制御部１１の指示に従って、このプログラムが記憶するデータを制御部１１に供給し、制御部１１から供給されたデータを記憶する。図１または図２のファイル格納部１０１および操作履歴格納部１０５は、外部記憶部１３に構成される。
【００７６】
操作部１４はキーボード及びマウスなどのポインティングデバイス等と、キーボード及びポインティングデバイス等を内部バス１０に接続するインターフェース装置から構成されている。操作部１４を介して、操作データから操作群を抽出する条件設定などが入力され、制御部１１に供給される。
【００７７】
表示部１５は、ＣＲＴ（Cathode Ray Tube）又はＬＣＤ（Liquid Crystal Display）などから構成され、操作データから操作群を抽出する条件、操作履歴情報、ファイルの格納状況などを表示する。
【００７８】
計時部１６は、例えば、時計を内蔵し、制御部１１の指令で、その時刻を出力する。制御部１１は、例えば編集操作が要求された時刻を知ることができる。計時部１６に代えて、ネットワークＮを経由して、インターネットで供給される時刻情報を用いてもよい。
【００７９】
送受信部１７は、ネットワークＮに接続する網終端装置または無線通信装置、およびそれらと接続するシリアルインタフェース又はＬＡＮ（Local Area Network）インタフェースから構成されている。送受信部１７は、ネットワークＮを介して、端末２００にファイルおよび関係参加者の情報を送信し、参加者の操作要求を受信する。
【００８０】
図１または図６に示す文書共同編集システムにおける文書共同編集サーバ１００のファイル編集部１０２、ファイル提示部１０３、通信部１０４、操作群抽出部１０６、編集履歴再生部１０７および編集履歴操作部１０８の処理は、制御プログラムが、制御部１１、主記憶部１２、外部記憶部１３、操作部１４、表示部１５、計時部１６および送受信部１７などを資源として用いて処理することによって実行する。
【００８１】
その他、本発明の好適な変形として、以下の構成が含まれる。
【００８２】
本発明の第１の観点に係る文書共同編集システムについて、
好ましくは、前記操作データは、前記端末のキーストローク情報を含むことを特徴とする。
【００８３】
好ましくは、前記操作群抽出手段は、前記操作データのうち前記編集の操作を行った時刻のデータを用いて、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出することを特徴とする。
操作データには、端末のキーストローク情報を含めることができる。また、操作群にまとめる所定の基準として、例えば、単語の入力を区切りとしたり、フレーズの入力を区切りとする、などが挙げられる。
【００８４】
好ましくは、前記編集履歴再生手段の前記編集する操作の再生は、前記操作群単位の前記文書を編集する箇所について、編集操作前の編集対象部分の強調表示と、前記編集操作後の前記編集対象部分の強調表示を含む、ことを特徴とする。
編集する操作の再生は、操作群を単位として、次々に自動的に切り替えて表示することができる。そのため、編集履歴再生は、コマ送りまたは動画のように見える。また、再生する速さを編集操作の内容に合わせて適切に変化させることができる。その結果、編集履歴を再生させるオペレータにとって、見やすく理解しやすい再生速度で表示することができる。
【００８５】
好ましくは、前記操作群を単位として前記操作データを削除する指令の入力を受け付ける、履歴操作入力手段と、
前記履歴操作入力手段で入力した指令に従って、前記操作群を単位として前記操作データを削除する操作履歴削除手段と、
を備えることを特徴とする。
操作データには、端末のキーストローク情報を含めることができる。操作履歴のキーストローク群を削除するときに、例えば、キーストロークが削除キーを含む場合には、削除した文字列を復活(編集操作の取消＝UNDO)させることになる。
【００８６】
本発明の第２の観点に係る文書共同編集方法について、
好ましくは、前記操作履歴記憶ステップは、前記端末のキーストローク情報を記憶し、
前記操作群抽出ステップは、前記キーストローク情報を用いて、ある操作データに関連づけられるひとまとまりの操作を操作群として抽出する、
ことを特徴とする。
【００８７】
好ましくは、前記操作群抽出ステップは、前記操作データのうち前記編集の操作を行った時刻のデータを用いて、ある操作データに所定の基準で関連づけられるひとまとまりの操作データを操作群として抽出することを特徴とする。
操作データには、端末のキーストローク情報を含めることができる。また、操作群にまとめる所定の基準として、例えば、単語の入力を区切りとしたり、フレーズの入力を区切りとする、などが挙げられる。
【００８８】
好ましくは、前記編集履歴再生ステップは、前記操作群単位の前記文書を編集する箇所について、編集操作前の編集対象部分を強調して表示するステップと、前記編集操作後の前記編集対象部分を強調して表示するステップを含むことを特徴とする。
編集する操作の再生は、操作群を単位として、次々に自動的に切り替えて表示することができる。そのため、編集履歴再生は、コマ送りまたは動画のように見える。また、再生する速さを編集操作の内容に合わせて適切に変化させることができる。その結果、編集履歴を再生させるオペレータにとって、見やすく理解しやすい再生速度で表示することができる。
【００８９】
好ましくは、前記操作群を単位として前記操作データを削除する指令の入力を受け付ける、履歴操作入力ステップと、
前記履歴操作入力ステップで入力した指令に従って、前記操作群を単位として前記操作データを削除する操作履歴削除ステップと、
を備えることを特徴とする。
操作データには、端末のキーストローク情報を含めることができる。操作履歴のキーストローク群を削除するするときに、例えば、キーストロークが削除キーを含む場合には、削除した文字列を復活(編集操作の取消＝UNDO)させることになる。
【００９０】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更及び修正が可能である。
【００９１】
制御部１１、主記憶部１２、外部記憶部１３、送受信部１７、内部バス１０などから構成される共同編集処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体（フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する文書共同編集サーバ１００を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで文書共同編集サーバ１００を構成してもよい。
【００９２】
また、文書共同編集サーバ１００の機能を、ＯＳ（オペレーティングシステム）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【００９３】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施の形態１に係る文書共同編集システムの構成例を示すブロック図である。
【図２】操作データの例を示す図である。
【図３】操作群の例を示す図である。
【図４】履歴再生表示の例を示す図である。
【図５】実施の形態１に係るの文書共同編集システムの動作の一例を示すフローチャートである。
【図６】本発明の実施の形態２に係る文書共同編集システムの構成例を示すブロック図である。
【図７】実施の形態２に係る文書共同編集システムの動作の一例を示すフローチャートである。
【図８】文書共同編集サーバのハードウェア構成の一例を示すブロック図である。
【符号の説明】
【００９５】
１００  文書共同編集サーバ（サーバ）
１０１  ファイル格納部
１０２  ファイル編集部
１０３  ファイル提示部
１０４  通信部
１０５  操作履歴格納部
１０６  操作群抽出部
１０７  編集履歴再生部
１０８  編集履歴操作部
２００  共同編集クライアント（端末）
２０１  表示部
２０２  入力部
【図１】
2010097324.tif 000003
【図２】
2010097324.tif 000004
【図３】
2010097324.tif 000005
【図４】
2010097324.tif 000006
【図５】
2010097324.tif 000007
【図６】
2010097324.tif 000008
【図７】
2010097324.tif 000009
【図８】
2010097324.tif 000010