(57)【要約】      （修正有）【課題】文書の特定の箇所の変更について、変更があったバージョンを、より正確に検索する。【解決手段】文書のバージョン間の差異部分に対して検索語とともに検索要求を受け付ける検索要求受付手段、検索対象の文書において、すべてのバージョン間で差異を調べて、差異部分を抽出する差異情報抽出手段手段、前記検索要求受付手段で受け付けた検索語で、前記差異情報抽出手段で抽出した差異部分に対し検索を実行する検索手段とを有し、前記検索手段で検索した結果として、前記検索要求受付手段で受け付けた検索語に関して変化があったバージョンのバージョン番号や関連する属性情報を取得する検索対象の文書において、全てのバージョン間で差異を調べて差異部分を抽出し、検索要求手段で受け付けた検索語で抽出した差異部分に対して検索を実行し、受け付けた検索語に関して変化があったバージョン情報を取得する。【選択図】図２
2013210862.tif 000002
【特許請求の範囲】
【請求項１】
バージョンを管理可能な文書管理システムにおいて、
文書のバージョン間の差異部分に対して検索語とともに検索要求を受け付ける検索要求受付手段（Ｓ６０４）と、
検索対象の文書において、すべてのバージョン間で差異を調べて、差異部分を抽出する差異情報抽出手段（Ｓ５０３）手段と、
前記検索要求受付手段（Ｓ６０４）で受け付けた検索語で、前記差異情報抽出手段（Ｓ５０３）で抽出した差異部分に対し検索を実行する検索手段（Ｓ６０５）と、
前記検索手段（Ｓ６０５）で検索した結果として、前記検索要求受付手段（Ｓ６０４）で受け付けた検索語に関して変化があったバージョンのバージョン番号や関連する属性情報を取得するバージョン情報取得手段（Ｓ６０７）と、
を有することを特徴とする文書管理システム。
【請求項２】
バージョンを管理可能な文書管理システムにおいて、
文書のバージョン間の差異部分に対して検索語とともに検索要求を受け付ける検索要求受付手段（Ｓ７０２）と、
文書の最新のバージョンを取得する最新バージョン取得手段（Ｓ７０３）と、
文書の最も古いバージョンを取得する最古バージョン取得手段（Ｓ７０４）と、
前記最新バージョン取得手段（Ｓ７０３）で取得したバージョンと前記最古バージョン取得手段（Ｓ７０４）で取得したバージョンで差異を調べて、差異部分を抽出する第一の差異情報抽出手段（Ｓ７０５）と、
前記検索要求受付手段（Ｓ７０２）で受け付けた検索語で、前記第一の差異情報抽出手段（Ｓ７０５）で抽出した差異部分に対し検索を実行する第一の検索手段（Ｓ７０６）と、
前記第一の検索手段（Ｓ７０６）で検索にＨｉｔした場合に、前記最新バージョン取得手段（Ｓ７０３）で取得したバージョンと、前記最古バージョン取得手段（Ｓ７０４）で取得したバージョンの中間のバージョンを取得する中間バージョン取得手段（Ｓ７１１）と、
前記最新バージョン取得手段（Ｓ７０３）で取得したバージョンと、前記中間バージョン取得手段（Ｓ７１１）で取得したバージョンで差異を調べて、差異部分を抽出する第二の差異情報抽出手段（Ｓ７１２）と、
前記検索要求受付手段（Ｓ７０２）で受け付けた検索語で、前記第二の差異情報抽出手段（Ｓ７１２）で抽出した差異部分に対し検索を実行する第二の検索手段（Ｓ７１３）と、
前記第二の検索手段（Ｓ７１３）で検索にＨｉｔした場合、前記中間バージョン取得手段（Ｓ７１１）で取得したバージョンを最も古いバージョンであるとみなして（Ｓ７１５）、前記中間バージョン取得手段（Ｓ７１１）から前記第二の検索手段（Ｓ７１３）までの処理を再帰的に実行する手段と、
前記第二の検索手段（Ｓ７１３）で検索にＨｉｔしなかった場合、前記中間バージョン取得手段（Ｓ７１１）で取得したバージョンを最新バージョンであるとみなして（Ｓ７１６）、前記中間バージョン取得手段（Ｓ７１１）から前記第二の検索手段（Ｓ７１３）までの処理を再帰的に実行する手段と、
前記中間バージョン取得手段（Ｓ７１１）で取得したバージョンが、前記最新バージョン取得手段で取得したバージョン、或いは前記最古バージョン取得手段で取得したバージョンのいずれかと等しい場合、前記第一の検索手段（Ｓ７０６）、或いは前記第二の検索手段（Ｓ７１３）で検索した結果として、前記検索要求受付手段（Ｓ７０２）で受け付けた検索語に関して変化があったバージョンのバージョン番号や関連する属性情報を取得するバージョン情報取得手段（Ｓ７１７）と、
を有することを特徴とする文書管理システム。
【請求項３】
差異情報抽出手段（Ｓ５０３、Ｓ７０５、Ｓ７１２）において、抽出した結果差異の箇所の数や各箇所における差異の文字数が予め定められた閾値を超える場合（Ｓ８０１）に、差異結果を保存しないことを特徴とする請求項１又は請求項２に記載の文書管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書管理システムにおける文書のバージョン間の差異情報に対する検索方法に関する。
【背景技術】
【０００２】
文書管理システムでは、一般的に文書のバージョン管理が可能である。すなわち文書を新規登録、又は作成するとバージョンがＶ１．０となり、その文書を更新することによってＶ２．０、Ｖ３．０・・とバージョンが増加し、文書は上書きされることなくすべて保持される。
【０００３】
そこにおいて、過去のバージョンの内容を確認するためには、文書のバージョン履歴から一つバージョンを選択し、そのバージョンを開く必要があった。そのため、「この記載はどのバージョンで変更されたのか」といったように、文書の変更履歴を調べることは非常に煩雑な作業が必要であった。それを解決するために、文書中に存在すると思われる検索語で文書に対して検索を行い、キーワードを含むバージョンと、含まないバージョンを視覚的に表示するという技術がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１６７９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述した技術では、文書全体に対して単純に検索を行うため、意図しない検索結果が得られる可能性が高い。例えば検索語が文書内に多く存在する場合、１２ページにおける変更履歴が知りたくとも、他のページで検索にＨｉｔしてしまう可能性がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本提案では、
文書のバージョン間の差異部分に対して検索語とともに検索要求を受け付ける検索要求受付手段（Ｓ６０４）と、
検索対象の文書において、すべてのバージョン間で差異を調べて、差異部分を抽出する差異情報抽出手段（Ｓ５０３）手段と、
前記検索要求受付手段（Ｓ６０４）で受け付けた検索語で、前記差異情報抽出手段（Ｓ５０３）で抽出した差異部分に対し検索を実行する検索手段（Ｓ６０５）と、
前記検索手段（Ｓ６０５）で検索した結果として、前記検索要求受付手段（Ｓ６０４）で受け付けた検索語に関して変化があったバージョンのバージョン番号や関連する属性情報を取得するバージョン情報取得手段（Ｓ６０７）と、
を有することを特徴とする。
【発明の効果】
【０００７】
本発明においては、文書の特定の箇所の変更について、変更があったバージョンを、より正確に検索することができる。
【図面の簡単な説明】
【０００８】
【図１】システム構成図
【図２】ソフトウェア構成図
【図３】差異情報の例
【図４】検索ＵＩの例
【図５】差異情報抽出処理のフローチャート
【図６】検索処理のフローチャート
【図７】第二実施の形態における差異情報抽出処理及び検索処理のフローチャート
【図８】第三実施の形態における差異情報抽出処理のフローチャート
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１０】
［実施例１］
本発明に係る第一実施の形態を図１から図６に基づき説明する。
【００１１】
図１はシステムの概略図である。少なくとも文書管理サーバー１０１、クライアント１０２が存在する。
【００１２】
サーバー１０１は、文書を蓄積し、クライアント１０２の要求に応じて文書の検索処理や取得、格納処理等を実行する。
【００１３】
クライアント１０２は、ユーザーの要求に応じてサーバー１０１に対して文書の検索等の要求を出す。また要求に対する結果を受け取りＵＩに表示する。
【００１４】
サーバー１０１とクライアント１０２はイーサネット（登録商標）等のネットワークで接続されている。またこれらのＰＣはすべてＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ、ネットワークインタフェースカード等のハードウェア構成物により構成される。
【００１５】
本実施例では２台構成で図示しているが、サーバー１０１はデータベース機能や検索機能を別のＰＣで実行するように構成しても良い。クライアント１０２も複数台存在して構わない。
【００１６】
図２はサーバー１０１のソフトウェア構成の一例を示した図である。これらのプログラムはサーバー１０１のＣＰＵ上で動作する。
【００１７】
クライアント通信部２０１はユーザーからの入力を受けつけたり、サーバー１０１からクライアント１０２へ情報を送信したりする。
【００１８】
差異抽出部２０２はＤＢアクセス部２０４を介してＤＢ部２０５へアクセスし、各文書のバージョン間の差異（以後、差異情報３００と呼ぶ）を抽出する。また差異情報３００をＤＢ部２０５へ格納する。差異は、公知で知られるｄｉｆｆプログラムと同等の機能により抽出する。そのため一般的には改行コードから改行コードまでをひと固まりとしてバージョン間で比較を行い、差異があれば抽出する。またその箇所に関する情報（ページや行など）も記録する。なお対象のファイルはテキストファイルに限らずバイナリファイルに対しても、公知の技術で可能である。
【００１９】
検索部２０３はＤＢアクセス部２０４を介してＤＢ部２０５へアクセスし、差異情報３００に対して検索を実行する。得られた結果はクライアント通信部２０１へ渡す。検索結果の主たる情報はバージョンであり、それに付随して操作種別、内容、更新者等の情報があっても良い。
【００２０】
ＤＢアクセス部２０４はＤＢ部２０５へのアクセス要求を受けてＤＢ部２０５へアクセスし、情報を取得、或いは格納する。
【００２１】
ＤＢ部２０５は文書や差異情報３００などの各種情報を保存する。
【００２２】
図３は差異情報３００の例を示した図である。この例ではある一つの文書に関する差異情報についてまとめている。
【００２３】
３０１はバージョンを示した列である。
【００２４】
３０２は各バージョンにおいて、文書に対してなされた操作を示した列である。操作は例えば「追加」「削除」「修正」があるが、「修正」に関してはどちらで検索されてもＨｉｔするように「修正前」と「修正後」に分けて記録する。また、操作は文書に対して行われた操作を箇所ごとに記録する。例えばＶ２．０にバージョンアップするときに、文書中に２箇所追加された場合、行が２行作成され、どちらも「追加」として記録する。
【００２５】
３０３は３０２の操作が行われたページを示した列である。
【００２６】
３０４は３０３のページ内の行を示した列である。
【００２７】
３０５は３０２の操作対象となった文書の内容である。例えばＶ２．０にバージョンアップするときに「この文書は機密事項である。」という文字列が追加された場合、３０５には「この文書は機密事項である。」を記録する。
【００２８】
図４は差異情報に対する検索のＵＩの例を示した図である。このＵＩはクライアント１０２におけるブラウザ等に表示される。
【００２９】
４０１は検索対象の文書を受け付けるフィールドである。ユーザーが直接入力しても良いし、或いは文書を選択した状態でマウスの右クリック等のメニューから本ＵＩを起動するような構成を考えれば、自動で入力されても良い。
【００３０】
４０２は検索キーワードを受け付けるフィールドである。ユーザーが直接入力しても良いし、或いは文書を閲覧した状態で、検索したい箇所をマウス等で選択し、右クリック等のメニューから本ＵＩを起動するような構成を考えれば、自動で入力されても良い。この場合４０３のページについても同時に入力される。
【００３１】
４０３はキーワードが検索するページを受け付けるフィールドである。指定がない場合全ページを検索対象とするようにしても良い。
【００３２】
４０４は検索実行要求を受け付けるボタンである。
【００３３】
なお図示はしていないが、検索のパラメーターとして「追加」「削除」「修正」といった操作種別を指定できるようにしても良い。また検索対象のバージョンを「最新からＶ３．０まで」といったように期間で指定できるようにしても良い。またそれは日時で指定できるようにしても良い。
【００３４】
図５は差異抽出部２０２による文書のバージョン間の差異情報抽出処理の流れを示したフローチャートである。この処理はユーザーによって検索の要求があった時点で実行してもよいし、文書が更新されたときでもよく、或いは定期的なスケジュールで実行しても良い。
【００３５】
差異抽出部２０２は指定された文書のあるバージョン（例えば最新バージョン）を取得する（Ｓ５０１）。次にＳ５０１で取得したバージョンの次のバージョン（例えば２番目に古いバージョン）を取得する（Ｓ５０２）。そして差異抽出部２０２は取得した２つのバージョンについて、差異を抽出し（Ｓ５０３）、結果を差異情報３００としてＤＢアクセス部２０４を介してＤＢ部２０５へ保存する（Ｓ５０４）。
【００３６】
次に差異抽出部２０２はまだ差異を抽出していないバージョンが存在するか調べ（Ｓ５０５）、存在していれば次のバージョンを取得し（Ｓ５０６）、処理を繰り返す。
【００３７】
図６は検索部２０３による差異情報３００に対する検索処理の流れを示したフローチャートである。
【００３８】
検索部２０３はクライアント通信部２０１から検索対象の文書の指定を受け付ける（Ｓ６０１）。そして検索部２０３は差異情報３００がＤＢ部２０５に存在するか調べる（Ｓ６０２）。存在しない場合は、図５で示した差異情報３００の抽出処理を実行する（Ｓ６０３）。存在する場合は、クライアント通信部２０１から検索キーワードの指定を受け付ける（Ｓ６０４）。そして検索部２０３は、ＤＢ部２０５に格納されている差異情報３００に対して、Ｓ６０４で受け付けた検索キーワードで検索を実行する（Ｓ６０５）。検索部２０３は検索がＨｉｔするかどうか調べ（Ｓ６０６）、Ｈｉｔした場合はＤＢ部２０５からバージョン番号、操作種別、内容、更新者等の情報を取得する（Ｓ６０７）。最後に検索部２０３はクライアント通信部２０１へ取得した情報を渡す（Ｓ６０８）。Ｓ６０６でＨｉｔしなかった場合は、検索がＨｉｔしなかったことをクライアント通信部２０１へ返す（Ｓ６０９）。
【００３９】
なお複数Ｈｉｔした場合は、検索部２０３は複数分の情報を取得し、クライアント通信部２０１へ渡す。
【００４０】
［実施例２］
本発明に係る第二実施の形態を図７に基づき説明する。
【００４１】
図７は差異抽出部２０２と検索部２０３による差異情報３００の抽出処理とそれに対する検索処理の流れを示したフローチャートである。
【００４２】
第一実施の形態では文書の隣り合うバージョン間の差異情報を、全バージョン間で調べた上で検索を実施していたが、第二実施の形態では新しいバージョンと古いバージョン（例えば最新と最古）で差異情報を抽出し、検索がＨｉｔしたらバージョンを二分割し、再帰的に処理を行う。これにより検索の効率化が計れる。ただし検索結果は１件に絞られる。
【００４３】
検索部２０３はクライアント通信部２０１から検索対象の文書の指定を受け付ける（Ｓ７０１）。さらに検索部２０３はクライアント通信部２０１から検索キーワードの指定を受け付ける（Ｓ７０２）。
【００４４】
次に差異抽出部２０２は対象文書の最新バージョンを取得する（Ｓ７０３）。これを便宜上バージョンＡと呼ぶ。さらに差異抽出部２０２は対象文書の最古バージョンを取得する（Ｓ７０４）。これを便宜上バージョンＢと呼ぶ。そして差異抽出部２０２はバージョンＡとバージョンＢの差異情報３００を抽出する（Ｓ７０５）。必要に応じて結果はＤＢ部２０５へ格納しても良い。
【００４５】
次に検索部２０３はＳ７０５で得られた差異情報３００に対し、Ｓ７０２で指定された検索キーワードで検索を実行する（Ｓ７０６）。検索部２０３は検索がＨｉｔしたかどうか調べ（Ｓ７０７）、Ｈｉｔした場合はバージョンＡとバージョンＢの間にバージョンが存在するかどうか調べる（Ｓ７０９）。Ｓ７０７でＨｉｔしなかった場合は、検索がＨｉｔしなかったことをクライアント通信部２０１へ返す（Ｓ７０８）。
【００４６】
Ｓ７０９でバージョンが存在する場合、差異抽出部２０２は再度バージョンＡを取得する（Ｓ７１０）。さらに差異抽出部２０２はバージョンＡとバージョンＢの中間のバージョンを取得する（Ｓ７１１）。これを便宜上バージョンＣと呼ぶ。そして差異抽出部２０２はバージョンＡとバージョンＣの差異情報３００を抽出する（Ｓ７１２）。次に検索部２０３はＳ７１２で得られた差異情報３００に対し、Ｓ７０２で指定された検索キーワードで検索を実行する（Ｓ７１３）。検索部２０３は検索がＨｉｔしたかどうか調べ（Ｓ７１４）、Ｈｉｔした場合はバージョンＣをバージョンＢとした上で（Ｓ７１５）、Ｓ７０９からＳ７１６の処理を再帰的に行う。Ｓ７１４でＨｉｔしなかった場合は、バージョンＣをバージョンＡとした上で（Ｓ７１６）、Ｓ７０９からＳ７１６の処理を再帰的に行う。
【００４７】
Ｓ７０９でバージョンが存在しない場合、Ｓ７０７、或いはＳ７１５でＨｉｔしたときのバージョンＡが求めるバージョンであるため、検索部２０３はＤＢ部２０５からバージョン番号、操作種別、内容、更新者等の情報を取得する（Ｓ７１７）。最後に検索部２０３はクライアント通信部２０１へ取得した情報を渡す（Ｓ７１８）。
【００４８】
本実施例ではＳ７１０でバージョンＡを取得することにより、複数件Ｈｉｔする場合はもっとも新しいバージョンが返ることになるが、もっとも古いバージョンが返るようにしてもよい。すなわちその場合はＳ７１０でバージョンＢを取得し、Ｓ７１５でバージョンＣをバージョンＡとし、Ｓ７１６でバージョンＣをバージョンＢとすることになる。
【００４９】
なお、図示はしていないが、単純にバージョンを中間で二分するのではなく、文書サイズを考慮しても良い。すなわちサイズ変化が大きい境界をまたぐようにしてバージョンＣを決定する。
【００５０】
同様の観点で、バージョン管理がメジャーバージョン（例えばＶ１．０、Ｖ２．０・・）とマイナーバージョン（例えばＶ１．１、Ｖ１．２・・）で構成されている場合、まずメジャーバージョン同士の比較を行った上で最後にマイナーバージョン同士の比較を行っても良い。
【００５１】
［実施例３］
本発明に係る第三実施の形態を図８に基づき説明する。
【００５２】
図８は差異抽出部２０２による差異情報３００の抽出処理の流れを示したフローチャートである。第一実施の形態では文書のバージョン間の差異情報を全バージョン間で必ず抽出していたが、第三実施の形態ではあるバージョン間で差異情報３００が多すぎる場合、そのバージョンは検索対象外とする。これにより検索結果からノイズを減らすことができる。
【００５３】
図８は図５と比較し、Ｓ８０１の処理が加わる以外は同等であるため、Ｓ８０１についてのみ説明する。
【００５４】
差異抽出部２０２はＳ５０３で抽出した差異情報３００の量が予めシステムで定められた閾値を超えていないかどうか判断する。量とは、差異としてカウントされた箇所の数や各差異の内容の文字数などが考えられる。また閾値は管理者によって指定可能としても良い。
【００５５】
なお図示はしていないが、差異情報抽出処理ではフィルタリングせず、検索時に差異情報の量が多すぎるバージョンをフィルタリングしてもよい。
【符号の説明】
【００５６】
２０１  クライアント通信部
２０２  差異抽出部
２０３  検索部
２０４  ＤＢアクセス部
２０５  ＤＢ部
【図１】
2013210862.tif 000003
【図２】
2013210862.tif 000004
【図３】
2013210862.tif 000005
【図４】
2013210862.tif 000006
【図５】
2013210862.tif 000007
【図６】
2013210862.tif 000008
【図７】
2013210862.tif 000009
【図８】
2013210862.tif 000010