(57)【要約】【課題】本発明は、文書ファイル外にコメント情報を記憶し、かつ、文書ファイルに大きな変更を加えてもコメント表示位置が本来の位置からずれないコメント記述・表示機能を実現することを目的とするものである。【解決手段】文書内で定義された関数・変数等の各識別子について、識別子の名称と、識別子に対するコメントとを文書ファイル外にコメント情報ファイルとして記憶する。文書を表示するときに、文書内の各識別子の定義位置を認識し、その識別子に対応するコメントをコメント情報ファイルから検索し、その識別子の定義位置と関連づけてコメントを表示する。【選択図】図１
2009151727.tif 000002
【特許請求の範囲】
【請求項１】
文書を記憶する文書記憶手段と、
文書内で定義されている識別子の名称と、その識別子に対するコメント情報とからなるレコードを、複数レコード記憶するコメント情報記憶手段と、
前記文書記憶手段から文書を読み出し、文書内で定義されている識別子の名称と定義位置とを認識する文法認識処理手段と、
前記文法認識処理手段で認識した識別子について、前記コメント情報記憶手段から識別子の名称が一致するレコードを検索し、一致したレコードのコメント情報を、識別子の定義位置に関連づけて表示する表示処理手段とからなることを特徴とする、
文書処理システム。
【請求項２】
文書の編集後、前記文書記憶手段へ編集後の文書を記憶するときに、前記コメント情報記憶手段に記憶された識別子の名称を更新することを特徴とする、
請求項１記載の文書処理システム。
【請求項３】
前記コメント情報記憶手段は、ネットワークを経由してアクセス可能なサーバー上に置かれることを特徴とする、
請求項１ないし２記載の文書処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書処理システムに関するものである。
【背景技術】
【０００２】
従来から、ワードプロセッサ等において、文書の特定の箇所に対してコメントを記述することができ、そのコメントは文書表示画面内ではなく別のウインドウ内などに表示される機能がある。
【０００３】
従来の実現手段としては、文書ファイル内にコメント情報やIDを埋め込む方法や、文書ファイル外に位置情報とともにコメント情報を記憶する方法がある。
【０００４】
文書ファイル内にコメント情報を埋め込む場合、編集を行ってもコメントの位置は変わらないが、コメントを記述する際に文書ファイル自体の変更が必要となり、文書ファイルに変更を加えたくない場合や、編集権限がない場合には、使用できない。
【０００５】
文書ファイル外に位置情報とともにコメント情報を記憶する場合、文書ファイルを変更せずにコメントを記述することができるが、文書の編集を行うとコメントの位置が変わってしまう可能性がある。この課題を解決するための手段として、コメント付与位置の文書の内容を位置情報とともに記憶しておき、文書編集後、その位置の周辺から内容を検索して、コメント位置を決定する方法がある（特許３１６６９９５）。
【特許文献１】特許３１６６９９５
【発明の開示】
【発明が解決しようとする課題】
【０００６】
文書ファイル外に位置情報とともにコメント情報を記憶する場合、文書の編集を行うと、コメントの位置が変わってしまう可能性がある。この課題を解決するための手段として、コメント付与位置の文書の内容を位置情報とともに記憶しておき、文書編集後、その位置の周辺から内容を検索して、コメント位置を決定する方法があるが、変更量が大きい場合は、検索範囲内で同じ内容の文字列が見つからなかったり、別の箇所に一致したりしてしまう危険性がある。
【０００７】
本発明は、文書ファイル外にコメント情報を記憶し、かつ、文書ファイルに大きな変更を加えてもコメント表示位置が本来の位置からずれないコメント記述・表示機能を実現することを目的とするものである。
【０００８】
プログラムソースコードのような文書においては、位置情報とともにコメントを記憶するのではなく、関数名や変数名などの識別子名とともにコメントを記憶するようにすれば、どれだけ文書に大きな変更が加えられても、その関数や変数の定義が削除されない限り、必ずその定義位置にコメントを表示することができる。
【課題を解決するための手段】
【０００９】
この課題を解決するための請求項１〜３の発明は、図１のように構成されるシステムである。
【００１０】
１は文書記憶手段であり、文書を記憶する。
【００１１】
２はコメント情報記憶手段であり、文書内で定義されている識別子の名称と、その識別子に対するコメント情報とからなるレコードを、複数レコード記憶する。
【００１２】
３は文法認識処理手段であり、文書記憶手段１から文書を読み出し、文書内で定義されている識別子の名称と定義位置とを認識する。
【００１３】
４は表示処理手段であり、文法認識処理手段３で認識した識別子について、コメント情報記憶手段２から識別子の名称が一致するレコードを検索し、一致したレコードのコメント情報を、識別子の定義位置に関連づけて表示する。
【００１４】
本システムは、文書の編集後、文書記憶手段１へ編集後の文書を記憶するときに、コメント情報記憶手段２に記憶された識別子の名称を更新する。
【００１５】
また、コメント情報記憶手段２を、ネットワークを経由してアクセス可能なサーバー上に置くことにより、コメント情報を複数のユーザーで共有することができる。
【発明の効果】
【００１６】
本発明により、文書ファイル外にコメント情報を記憶し、かつ、文書ファイルに大きな変更を加えてもコメント表示位置が本来の位置からずれないコメント記述・表示機能を実現することができる。
【００１７】
コメント情報を文書ファイル外に記憶するので、文書ファイルに変更を加えたくない場合や、編集権限がない場合でもコメントを記述できる。
【００１８】
また、文書ファイルに大きな変更を加えてもコメント表示位置が本来の位置からずれないので、コメントの表示位置を修正する保守コストを必要としない。また、コメント表示位置が移動されないという信頼性を確保することができる。
【００１９】
文書ファイル自体へのコメント記述は、その文書に関わる全ての人が参照することとなるため、不確実な情報やフランクな言い回しを記述することができないなどの制約が生じることがある。本発明により、各担当者が、より気軽にコメントを記述することができる。また、コメント情報を複数のユーザーで共有する場合、担当者間の自由な情報交換を促進することができる。これにより、文書作成の効率化や品質向上に寄与することができる。
【００２０】
また、文書作成作業中のコメント情報という、現場の活きたノウハウ情報を低コストで将来に引き継ぐことができるため、将来の文書作成の効率化や品質向上に寄与することができる。
【発明を実施するための最良の形態】
【００２１】
本発明の実施の形態を図２〜図４に基づいて説明する。図２は本発明の実施の形態の構成図、図３はコメント情報ファイルに記憶された情報の例、図４は画面表示例である。なお、本実施例における文書処理システムは、標準的なテキストエディタとしての表示機能・編集機能を備えているが、本発明と直接関係しない部分の構成図や説明は省略する。
【００２２】
図２において、１ａは文書ファイル、２ａはコメント情報ファイル、３は文法認識手段、４は表示処理手段である。
【００２３】
文書ファイル１ａは文書データを記憶する。文書ファイル１ａは、ローカルPCの記憶媒体上、または、サーバーの記憶媒体上に置かれる。
【００２４】
多くの場合、文書ファイル１ａは、同じ商品やサービスを提供するために作成されるいくつかの文書ファイルの集まりの中の１ファイルである。以下、このいくつかの文書ファイルの集まりをプロジェクトと呼ぶ。
【００２５】
コメント情報ファイル２ａには、{ファイルパス, 識別子, コメント, ユーザー, 日時}の各フィールドからなるレコードが、複数レコード記憶される。「ファイルパス」フィールドには、文書ファイルのファイルパスが記憶される。「識別子」フィールドには、文書内で定義された識別子の名称が記憶される。「ユーザー」フィールドにはコメントを記述したユーザーのユーザー名、「日時」フィールドにはコメントを記述した日時が記憶される。
【００２６】
図３は、コメント情報ファイル２ａに記憶された情報の例である。１レコード目は、ファイルパス"common/file1.c"のファイルの、識別子"function1"に対するコメント情報を記憶している。２レコード目は、ファイルパス"common/file1.c"のファイルの、識別子"function1"のスコープ内の識別子"var1"に対するコメント情報を記憶している。なお、本例の文書においてfucntion1は関数、var1はローカル変数であるが、コメント情報ファイル２ａには識別子の種類は記憶せず、名称のみを記憶すれば良い。
【００２７】
コメント情報ファイル２ａは、ローカルPCの記憶媒体上、または、サーバーの記憶媒体上に置かれる。サーバー上のコメント情報ファイル２ａへのアクセスは、SMB(Server Message Block)等のOS標準のファイルアクセスプロトコルや、FTPプロトコル等を用いる。コメント情報ファイル２ａへのアクセスは排他制御を行い、他のユーザーが書き込み中の場合、書き込みが終了するのを待ってからアクセスするようにする。プロトコルに排他制御機能が無い場合は、書き込み中は同じディレクトリに書き込み中を示す空ファイル（ロックファイル）を生成することにより、排他制御を実現する。
【００２８】
コメント情報ファイル２ａは、同じプロジェクト内の各文書ファイルについてのコメント情報を、１つのコメント情報ファイル内に記憶することができる。
【００２９】
また、本文書処理システムは、あらかじめ、ユーザーに、コメント情報ファイル２ａの場所、および、プロジェクトのルートディレクトリを指定させる。あるいは、文書ファイル１の種類や場所に応じて、あらかじめユーザーにより設定されたコメント情報ファイル２ａの場所、および、プロジェクトのルートディレクトリの情報を読み出して使用する。コメント情報ファイル２ａの「ファイルパス」フィールドは、プロジェクトのルートディレクトリからの相対パスであるとみなして処理する。
【００３０】
コメント情報ファイル２ａには、プロジェクトのルートディレクトリを保存しない。これは、コメント情報ファイル２ａがファイルサーバー上に置かれて複数ユーザーが共有する場合、文書ファイル１はローカルPC上の各担当者の作業ディレクトリに存在することが多く、プロジェクトのルートディレクトリは各担当者毎に設定できたほうが良いからである。また、いろいろなバージョンのプロジェクトを同時に扱うが、コメント情報ファイルは同じものを使用したいという場合も考えられるので、プロジェクトのルートディレクトリは個別に設定できたほうが良い。
【００３１】
本文書処理システムは、文書表示画面において文書の一部分が選択された状態で、ユーザーによりコメント追加ボタンがクリックされると、コメント入力ダイアログを開く。そして、ユーザーによりコメントが入力され、OKボタンがクリックされると、コメント情報ファイル２ａにレコードを追加する。「識別子」フィールドには、文書表示画面において選択中の箇所から最も近くで定義された識別子の名称を記憶する。ローカル変数など、スコープが存在する識別子の場合は、そのスコープを規定する識別子（関数等）（以下、これをスコープ識別子と呼ぶ）の名称も合わせて記憶する。「ファイルパス」フィールドには処理中の文書のファイルパス、「コメント」フィールドにはユーザーが入力したコメント、「ユーザー」フィールドにはコメントを入力したユーザーのユーザー名、「日時」フィールドには現在日時を格納する。
【００３２】
文法認識処理手段３は、文書ファイル１ａから文書を読み出し、文書内で定義されている識別子の名称と定義位置とを認識する。認識方法としては、コンパイラと同じ原理を用いたり、ユーザーが定義したルールに従って認識したりする方法が考えられる。本実施例では、ユーザーが定義したルールに従って認識する方法の一つとして、特願２００７―２４８０５７に記載されたシステムを用いる。
【００３３】
表示処理手段４は、まず、文書ファイル１ａの内容のうち、現在のスクロール位置の内容をウインドウ画面に表示する。そして、ウインドウ画面内にその定義位置が表示されている各識別子について、コメント情報ファイル２ａから、「ファイルパス」フィールドが処理中の文書のファイルパスと一致し、かつ、「識別子」フィールドが識別子の名称と一致するレコードを検索する。一致するレコードがあった場合、その識別子の定義の表示位置とほぼ同じY座標かつ文書表示ウインドウの右端付近にウインドウを生成し、一致した全てのレコードの「コメント」「ユーザー」「日時」フィールドを表示する。また、その識別子の定義の表示位置を四角で囲むなどの強調表示を行い、コメントを表示したウインドウ（以下、コメントウインドウと呼ぶ）とを点線で結ぶ表示を行う。コメントウインドウのタイトルには識別子名と識別子の種類等を表示する。
【００３４】
前述の、「識別子」フィールドが識別子の名称と一致するレコードを検索する処理において、対象とする識別子にスコープが存在する場合は、対象識別子のスコープ識別子が「識別子」フィールドに記述されたスコープ識別子に一致することも条件に加える。なお、対象識別子のスコープ識別子は、たとえば、ローカル変数であれば、その定義位置から前方向に検索して最初に見つかった関数定義をスコープ識別子とみなすことにより決定する。
【００３５】
また、画面がスクロールされた場合は、コメントウインドウも同期して位置を移動させる。定義位置が表示されなくなった識別子に対応するコメントウインドウは削除し、また、新たに表示された識別子について、前述の処理を行うことにより、新規コメントウインドウを表示する。
【００３６】
図４は、図３に示したコメント情報ファイル例についての、画面表示例である。ウインドウ画面上に、文書ファイル"file1.c"の一部分が表示されており、ウインドウ画面内に表示中の識別子"function1", "var1"について、コメント情報が別ウインドウ内に表示されている。たとえば識別子"var1"に関するコメント表示は、次のようにして得られる。表示処理手段４は、ウインドウ画面表示中の"var1"がローカル変数であり、スコープ識別子は"function1"であるので、コメント情報ファイル２ａの「ファイルパス」フィールドが"file1.c"であり、かつ、「識別子」フィールドに"function1", "var1"が記述されたレコードを検索し、２レコード目と３レコード目を得る。表示処理手段４は、"var1"の定義位置とほぼ同じY座標かつ文書表示ウインドウの右端付近にコメントウインドウを表示し、２レコード目と３レコード目の「コメント」「ユーザー」「日時」フィールドを表示する。
【００３７】
コメントを記述したユーザーまたは管理者は、コメントが記述されたウインドウ内で、コメントを編集・削除することができる。本文書処理システムは、コメントが編集・削除されたら、コメント情報ファイル２ａへ編集結果を保存する。
【００３８】
また、ユーザーは、既にコメントが存在する識別子に対して、新たにコメントを追加することが可能である。この場合、コメント情報ファイル２ａには、新たなレコードが追加される。
【００３９】
また、本文書処理システムは、文書を編集した結果、識別子名が変更された場合は、旧識別子名と新規識別子名とをセットにして記憶しておく。そして、文書ファイル１ａへ編集後の文書を保存するときに、コメント情報ファイル２ａから、「ファイルパス」フィールドが処理中の文書のファイルパスと一致し、かつ、「識別子」フィールドが旧識別子名と一致するレコードを検索し、一致したレコードの「識別子」フィールドの旧識別子名を新規識別子名に置換する。
【００４０】
前述の処理において、文書を編集した結果”識別子名が変更されたか否か”の判定方法は、次の通りである。編集を行う行に元々識別子が定義されており、かつ、編集した結果、新規にその行に定義された識別子名が、旧識別子名と異なる場合、識別子名が変更されたとみなす。
【００４１】
なお、コメント情報ファイル２ａへの参照は、RAM上に格納されたキャッシュデータを用いることにより、処理を高速化する。キャッシュデータは、文書保存時、コメント情報ファイルの更新通知受信時、タイマー満了時、ユーザーからの指示時などに更新する。
【００４２】
また、プログラム言語の識別子だけでなく、一般的な文書における章や節など、一定のルールに従って定義位置を定めることができ、かつ、名称が存在するものは、本発明の「識別子」として使用することができる。
【００４３】
また、コメントウインドウに、コメントだけではなく、その識別子に関する付加情報（例えば、関数のコール元情報や、コール元へのリンク、コール箇所の数、ヘッダファイルへのリンク、影響する可能性の高い箇所へのリンクなど）を表示するという機能追加が考えられる。
【００４４】
また、コメントを参照した各ユーザーが、そのコメントが有用か否かのフィードバックを入力することができ、その結果をコメント情報ファイル２ａへ保存し、有用度の高いコメントを優先して表示するという機能追加が考えられる。
【００４５】
また、コメントウインドウ内に「対応完了」チェックボックスを表示することにより、レビュー指摘の対策確認や、ToDoリストとして使用することができるようにするという機能追加が考えられる。この場合、本文書処理システムは、チェックボックス更新時に、「対応完了」チェックボックスのOn/Offの情報を、コメント情報ファイル２ａへ保存する。
【００４６】
さらに、日時等に条件を設定することで表示するコメントを限定したり、コメント情報ファイルを対象としてキーワード検索を行ったり、コメント情報ファイルを元にレポートファイルを作成したりする機能追加が考えられる。
【図面の簡単な説明】
【００４７】
【図１】本発明の原理構成図である。
【図２】本発明の実施の形態の構成図である。
【図３】コメント情報ファイルに記憶された情報の例である。
【図４】画面表示例である。
【符号の説明】
【００４８】
１    文書記憶手段
２    コメント情報記憶手段
３    文法認識処理手段
４    表示処理手段
１ａ  文書ファイル
２ａ  コメント情報ファイル
【図１】
2009151727.tif 000003
【図２】
2009151727.tif 000004
【図３】
2009151727.tif 000005
【図４】
2009151727.tif 000006