(57)【要約】【課題】操作ログの存在しない文書に対して文書を推奨することが可能な文書管理装置、文書管理方法、及び文書管理プログラムを提供する。【解決手段】本発明は、指定された文書から別の文書を推奨する文書管理装置であり、文書のリビジョン履歴を記録する版管理手段（１０）と、文書に操作を行った利用者と、当該操作の種類とから成る操作ログを記録する操作履歴記録手段（１２）と、前記文書管理装置を使用する利用者を識別する認証手段（５）と、前記操作ログから、当該利用者と、前記指定された文書とに関連する文書を算出する協調フィルタリングレコメンド手段（９）と、前記リビジョン履歴から前記指定された文書を含むファイルツリーを構成するファイル群を取得することと、当該ファイル群を前記指定された文書からノードの距離が近い順にソートすることとにより、推奨すべき文書の一覧を作成する文書推奨計算手段（８）とを備える。【選択図】図１
2014203392.tif 000002
【特許請求の範囲】
【請求項１】
指定された文書から別の文書を推奨する文書管理装置であって、
文書のリビジョン履歴を記録する版管理手段と、
文書に操作を行った利用者と、当該操作の種類とから成る操作ログを記録する操作履歴記録手段と、
前記文書管理装置を使用する利用者を識別する認証手段と、
前記操作ログから、当該利用者と、前記指定された文書とに関連する文書を算出するレコメンド手段と、
前記リビジョン履歴から前記指定された文書を含むファイルツリーを構成するファイル群を取得することと、当該ファイル群を前記指定された文書からノードの距離が近い順にソートすることとにより、推奨すべき文書の一覧を作成する文書推奨計算手段と
を備えたことを特徴とする文書管理装置。
【請求項２】
請求項１に記載の文書管理装置であって、前記文書推奨計算手段は、前記推奨すべき文書の一覧に含まれる各文書から複製された文書を取得し、前記推奨すべき文書の一覧に追加することを特徴とする、文書管理装置。
【請求項３】
指定された文書から別の文書を推奨する文書管理方法であって、
版管理手段が、文書のリビジョン履歴を記録するステップと、
操作履歴記録手段が、文書に操作を行った利用者と、当該操作の種類とから成る操作ログを記録するステップと、
認証手段が、前記文書管理方法を使用する利用者を識別するステップと、
レコメンド手段が、前記操作ログから、当該利用者と、前記指定された文書とに関連する文書を算出するステップと、
文書推奨計算手段が、前記リビジョン履歴から前記指定された文書を含むファイルツリーを構成するファイル群を取得することと、当該ファイル群を前記指定された文書からノードの距離が近い順にソートすることとにより、推奨すべき文書の一覧を作成するステップと
を備えたことを特徴とする文書管理方法。
【請求項４】
コンピュータを請求項１又は２に記載の文書管理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書管理装置、文書管理方法、及び文書管理プログラムに関する。具体的には、本発明は、文書管理システムにおいて文書の推奨（本明細書では「推奨」を「レコメンド」とも呼ぶ）を効率的に行うための技術を用いた文書管理装置、文書管理方法、及び文書管理プログラムに関する。
【背景技術】
【０００２】
近年、サーバーコンピューター側で各種処理を行う形態として、クラウドコンピューティングシステムやＳａａＳ（Software as a Service）という技術が利用されている。従来、利用者が所有するコンピュータで管理されていた文書も、クラウド環境への移行が順次進められている。
【０００３】
記憶容量に制限の無いクラウド上の文書管理において、増加の一途を辿る文書群を手作業で整理することは容易ではない。従って、クラウド上の文書管理システムの利用者は、文書をとりあえずクラウド環境へ保存した後、検索によって所望の文書へアクセスすることが多い。このような状況においては、スケールアウトにより比較的容易に改善することが出来る記憶容量又は計算性能よりも、通信トラフィックが課題となる。よって、クラウド上の文書管理システムを利用して目的の文書を検索するに当たっては、検索操作を極力少なくするように効率化することが重要となる。
【０００４】
従来、キーワード検索、分類（フォルダ階層）による検索など、利用者の明示的な指示（意思）に従った検索が行われてきた。これに対し、今後のクラウド上の文書管理で必要とされる検索においては、利用者の行動（操作）履歴に基づき、利用者が潜在的に求める文書を、利用者からの明示的な指示なしにレコメンドする技術が重要となってくる。
【０００５】
従来技術の例として、文書が閲覧された場合に関連リンク記憶部を参照して、閲覧された文書と有効な関連リンクを有する文書を抽出するシステムが提案されている（特許文献１を参照）。特許文献１に記載されたシステムは、リンク参照によるページ遷移、テキストデータのコピーアンドペーストによる文書複製、検索キーワードを用いた検索により得た文書を参照したことなどを、関連イベントとして記憶する。
【０００６】
また、利用者がクリックした商品の詳細情報をＷｅｂページに表示する際に、クリックされた商品と関連する複数のレコメンド商品を、同じＷｅｂページ上のレコメンド情報表示欄に表示するシステムが提案されている（特許文献２を参照）。このシステムでは、関連するレコメンド商品は、例えば、商品間の相関（商品間の併買性）、個人と商品の相関（個人の好みの傾向）、売れ筋の情報（ランク情報など）などを複合的に勘案するハイブリッド・レコメンド処理を行なったうえで表示される。
【０００７】
特許文献２に記載の技術は、EC（electronic commerce）サイトにおいて顧客へ商品を追加的にレコメンドする販促目的の技術である。しかし、レコメンド対象であるアイテムを商品から文書に置き換えた場合、文書の併参照性を相関として文書のレコメンドを行うことも出来るので、特許文献２に記載の技術は、文書管理に適用可能な技術である。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2011-28447号公報
【特許文献２】特開2008-282098号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載の技術では、関連イベントとして、文書の複製を記憶する。しかし、特許文献１に記載された技術を利用して検索を行った場合、利用者の明示的な操作（ここでは複製元の文書指定）による分類による検索の域を出ない。つまり、複製元の文書を利用者が自ら辿り、更に推薦による検索を続けていくことが必要であり、検索操作を削減するという効果は得られない。
【００１０】
また、特許文献１に示す技術に基づくと、文書管理システムの管理下にある操作ログの情報によって文書はレコメンドされるため、文書管理システム内で操作の無い（又は少ない）文書はレコメンドされない。
【００１１】
一方、新しいプロジェクトにおける文書の中には、別の既存プロジェクトにおける文書をひな形に作成されたものが多く存在する。しかしながら、この新しいプロジェクトにおける文書群には十分な操作ログが蓄積されていないため、相関のある文書をレコメンドすることが出来なかった。
【００１２】
これに対して、特許文献２に示すように、複数の相関情報を考慮して複合的にレコメンドするハイブリッド・レコメンド方式を用いることが考えられる。しかし、文書検索という観点からは検索操作を極力少なくしたいという目的から外れ、多くの選択肢の中から手作業による検索が必要となってしまう。
【課題を解決するための手段】
【００１３】
本発明は、指定された文書から別の文書を推奨する文書管理装置であって、文書のリビ
ジョン履歴を記録する版管理手段と、文書に操作を行った利用者と、当該操作の種類とから成る操作ログを記録する操作履歴記録手段と、前記文書管理装置を使用する利用者を識別する認証手段と、前記操作ログから、当該利用者と、前記指定された文書とに関連する文書を算出するレコメンド手段と、前記リビジョン履歴から前記指定された文書を含むファイルツリーを構成するファイル群を取得することと、当該ファイル群を前記指定された文書からノードの距離が近い順にソートすることとにより、推奨すべき文書の一覧を作成する文書推奨計算手段とを備えたことを特徴とする。
【発明の効果】
【００１４】
本発明により、別プロジェクトにおける文書をひな形にして複製により新規作成された新規文書に対する相関文書を提示できるようになる。結果、操作ログの存在しない文書に対しても文書をレコメンドすることが出来るようになり、検索操作を削減する効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係るシステム構成の例を示すブロック図である。
【図２】本発明の実施形態に係る版管理手段（１０）によって管理されるファイル及びフォルダ群のリビジョン履歴の一例を示す図である。
【図３】リビジョン履歴を表すリビジョンツリー及びファイルの複製関係を表すファイルツリーの一例を示す図である。
【図４】本発明の実施形態に係る操作履歴記憶手段（１２）によって記録された操作ログの一例である。
【図５】リビジョンツリーと、リビジョンツリーに含まれるファイルからレコメンドされた文書一覧の一例である。
【図６】リビジョンツリーの一例を示す図である。
【図７】レコメンド文書と、ファイルツリーとの関係の一例を示す図である。
【図８】最終的に利用者に提示されるレコメンド文書一覧の一例を示す図である。
【図９】本発明の実施形態に係る文書推奨手段（８）において、レコメンド文書一覧を求める手順を示したフローチャートである。
【図１０】本発明の実施形態に係る中間処理結果の一例であり、ソート後のファイル集合Sを示す図である。
【図１１】本発明の実施形態に係る中間処理結果の一例であり、レコメンド文書一覧（FRLISTm）を示す図である。
【図１２】本発明の実施形態に係る中間処理結果の一例であり、レコメンド文書一覧（FRLISTm）を示す図である。
【図１３】本発明の実施形態に係る版管理手段（１０）において、指定されたfile id（Fid）のファイルを含むファイルツリーを構成するファイル群（ファイル集合S）を取得する手順を示したフローチャートである。
【図１４】本発明の実施形態に係る版管理手段（１０）において、指定されたfile idから複製されたファイル群を取得する手順を示したフローチャートである。
【図１５】本発明の実施形態に係る中間処理結果の一例であり、追加レコメンド文書一覧（FRLISTm2）を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１７】
図１は、本発明の実施形態に係るシステム構成を示すブロック図である。
【００１８】
文書管理サービス（１）は、ネットワーク（２０）を介して接続されたクライアントPC（２）からアクセスして利用するクラウド上のサービスである。利用者はクライアントPC（２）におけるWebブラウザ（３）を操作することにより、Webサーバ（４）によって提供されるユーザインタフェースを利用することが出来る。
【００１９】
Webサーバ（４）により、認証手段（５）、文書編集手段（６）、及びファイルブラウザ（７）が提供される。認証手段（５）は、クライアントPC（２）からアクセスする利用者を識別することが出来るので、文書管理サービス（１）は、提供する各種機能をどの利用者が操作したかを判断、記録することが出来る。文書編集手段（６）は、文書管理サービス（１）上で各種文書を新規作成、編集、保存する。ファイルブラウザ（７）は、文書編集手段（６）で編集する文書の検索、選択を行う機能を提供する。ファイルブラウザ（７）は、利用者がある文書を選択すると、文書推奨計算手段（８）を呼び出して利用者にレコメンドする文書を算出させる。算出結果は、レコメンド文書一覧としてファイルブラウザ（７）を介してWebサーバ（４）が提供するユーザインタフェースで表示され、利用者に提示される。また、ファイルブラウザ（７）は、文書管理サービス（１）上に保存されているファイル若しくはフォルダの移動、複製、又は削除などのファイル操作機能も提供する。
【００２０】
文書推奨計算手段（８）は、版管理手段（１０）によって記録されている情報と、協調フィルタリングレコメンド手段（９）の出力結果とを基にして、クライアントPC（２）を介して利用者がある文書を選択した際に、関連するレコメンド文書の一覧を算出する。
【００２１】
協調フィルタリングレコメンド手段（９）は、操作履歴記録手段（１２）によって記録されている情報を基にして、クライアントPC（２）を介して利用者がある文書を選択した際に、関連するレコメンド文書の一覧を文書推奨計算手段（８）に提示する。
【００２２】
版管理手段（１０）は、文書編集手段（６）及びファイルブラウザ（７）によりファイル又はフォルダが更新される毎にそのリビジョンを記録する。
【００２３】
ファイルシステム（１１）は、文書編集手段（６）、ファイルブラウザ（７）、版管理手段（１０）、操作履歴記録手段（１２）の処理結果を記憶手段（１３）に記録する。
【００２４】
操作履歴記録手段（１２）は、文書編集手段（６）及びファイルブラウザ（７）でファイルが操作される毎にその操作を記録する。
【００２５】
図２は、本発明の実施形態に係る版管理手段（１０）によって管理されるファイル及びフォルダ群のリビジョン履歴の例を示す図である。本実施形態における版管理では、グローバルリビジョン番号を採用し、版管理手段（１０）で管理されるファイル群全体に対して一つのリビジョン番号が付されるものとする。従って、一つのファイルに注目すると、その注目したファイルに変化がなくとも、リビジョン番号が変わることがあり得る。
【００２６】
図２は、左から右へrevision 1からrevision 7までのリビジョンのファイル群の変遷を示している。また、図２は、上から順に行毎に、個々のファイルを識別するfile id毎の情報を示している。なお、版管理手段（１０）は、リビジョン毎に且つfile id毎に、元ファイル(src)と、アクション(action)と、ファイルシステム（１１）上のパス(path)とから成る情報を保持する。
【００２７】
revision 1において、版管理手段（１０）上に一つのファイルが存在している。file idが1であるaというファイル名（パス）のファイルである。actionの欄がnewであることが、このファイルがrevision 1において新規作成されたことを示している。srcの欄が1であることは、元ファイルはそのファイル自身であることを示す。
【００２８】
次のrevision 2において、file idが1のファイルaは更新されている。actionの欄がupdateであることが、ファイルが更新されたことを示している。また、file idが2であるbというファイルが新規に追加されている。
【００２９】
次のrevision 3において、ファイルaはさらに更新されている（actionの欄がupdateである）。また、file idが2のbというファイルは、cというファイルに移動されている。actionの欄がmoveであることが、ファイルが移動されたことを示している。
【００３０】
次のrevision 4において、ファイルa及びファイルcは更新されている（actionの欄がupdateである）。また、revision 3におけるfile idが１のファイルaが複製及び更新(actionの欄がcopy, updateである)された結果、file idが3であるdというファイルが追加された。actionの欄がcopyであることが、ファイルが複製されたことを示している。ファイルdに関し、srcの欄が1であることが、ファイルdがファイルaから複製されたことを示している。また、file idが4のeというフォルダ（pathの欄がe/）が新規に追加されている(actionの欄がnewである)。
【００３１】
次のrevision 5において、ファイルa及びファイルcは更新されている（actionの欄がupdateである）。revision 4におけるfile idが3のファイルdは、フォルダeの下のe/dへ移動(actionの欄がmoveである)され、内容も更新されている(actionの欄がupdateである)。フォルダeの下へファイルdが移動されているため、file idが4のフォルダeも更新(actionの欄がupdateである)されている。さらに、ファイルfと、ファイルgとが新規に追加されている。
【００３２】
次のrevision 6において、revision 5におけるfile idが1のファイルaは削除されている。ファイルaが削除されたことは、actionの欄がremoveであることと、pathの欄が空欄であることとによって示されている。ファイルc、ファイルe/d、及びフォルダe/は、更新されている（actionの欄がupdateである）。また、ファイルf、ファイルgについては変更が無いため、actionの欄が空欄になっている。
【００３３】
次のrevision 7において、file idが1のファイルは既に存在しないため、対応するsrcの欄、actionの欄、及びpathの欄は、空欄である。ファイルc、ファイルe/d、フォルダe/、ファイルf、及びファイルgは変更が無いため、actionの欄が空欄になっている。file idが7のaというファイルが新規に追加されている(actionの欄がnewである)。このaと言うファイルは、revision 1からrevision 5までのfile idが1のファイルaとは別のファイルである。
【００３４】
図３は、リビジョン履歴を表すリビジョンツリー及びファイルの複製関係を表すファイルツリーの例を示す図である。
【００３５】
図３の（ａ）は、図２に示すリビジョン履歴に対応しており、file idが1のファイル及びfile idが3のファイルに関するリビジョンツリーを示している。図２に示した通り、revision 3からrevision 4にかけてfile idが1のファイルは、file idが3のファイルへ複製される。file idが1のファイル及びfile idが3のファイルはそれぞれ、revision 7までの間に更新されている。図３の（ａ）において、矢印は、更新、複製、若しくは移動又はそれらの組み合わせを示している。図３の（ａ）では、file id毎に四角で囲ってツリーを図示している。図３の（ａ）中で“a:1”等と表されるノードは、一つのリビジョンの一つのファイルを示している。ノードは‘：’で区切り、左がファイル名（パス）、右はリビジョン番号を示している。以後の説明においては、このリビジョンツリーによってリビジョン履歴を表す。
【００３６】
図３の（ｂ）は、図３の（ａ）と同じfile idについて、一つのファイルにおける更新履歴と、リビジョン番号とを省略し、file idの値及びそのfile idに対応する最新リビジョンのファイル名（パス）のみを示した図である。図３の（ｂ）は、ファイルの複製関係のツリーを表す。以後、図３の（ａ）に示すような図をリビジョンツリー、図３の（ｂ）に示すような図をファイルツリーと呼ぶ。
【００３７】
図４は、操作履歴記録手段（１２）によって記録された操作ログの一例である。操作の履歴の操作種別は、リビジョン履歴に記録されている操作（即ち、新規作成、更新、移動、複製、及び削除）の他に、利用者による文書の「参照」を含む。操作履歴は、file id単位で記録されている。この操作ログはファイルシステム（１１）を介して記憶手段（１３）に保存され、協調フィルタリングレコメンド手段（９）がレコメンド文書を算出する際に用いられる。
【００３８】
図４に示す例において、操作ログ(100)は４つのカラムを持っている。カラム「time stamp」(101)は、操作が行われた日時を示す。カラム「file id」(102)は、操作対象ファイルのfile idを示す。カラム「ユーザー」(103)は、その操作を行った利用者を示す。カラム「操作種別」(104)は、行われた操作の種類を示す。
【００３９】
協調フィルタリングレコメンド手段（９）は、記憶手段（１３）に保存された操作ログから、利用者と、利用者により指定された文書とに関連付けられた文書を算出する。具体的には、同一利用者により、同時に参照された文書群を抽出する。ここで、十分短い所定の時間内に参照された複数の文書を同時に参照された文書とみなすことも出来る。協調フィルタリングレコメンド手段（９）は、さらに、同時に参照した文書の傾向が類似する利用者を抽出する。このようにして抽出された情報に基づいて、「ある利用者」が「ある文書」を選択した際に、「ある利用者」と類似した傾向を有する利用者（「ある利用者」を含む）が「ある文書」と同時に参照した文書群を提示する。
【００４０】
図５は、図３の（ａ）に示した例とは別のリビジョンツリーと、そのリビジョンツリーに含まれるファイルからある利用者（例えば、User-A）のために、協調フィルタリングレコメンド手段（９）によりレコメンドされた文書一覧とを示した図である。
【００４１】
図５に示すように、file idが100の文書（.docファイル）からは、User-Aのために、file idが50、55、60、70のファイルが順番にレコメンドされている。同様に、file idが300の文書（.docファイル）からは、file idが250、60のファイルが順番にレコメンドされている。
【００４２】
なお、file idが200の文書（.docファイル）からは、ファイルがレコメンドされていない。これは、User-Aと類似する傾向を有するUser-Aの類似利用者において、file idが200の文書と同時に参照した文書が存在しないことを示す。
【００４３】
図６は、図５に示したfile idが50のファイルを含むリビジョンツリーの例を示した図である。
【００４４】
図６に示すように、file idが50のファイルの最新リビジョンはDesign10.docのリビジョン181である。file idが50のファイルは、最新リビジョンの時点でDesign10.docというファイル名で参照することになる。file idが50のファイルはfile idが10のファイルから複製された。また、file idが50のファイルからはfile idが150のファイルが複製されている。file idが150のファイルは、最新リビジョンの時点でDesign20.docというファイル名で参照する。
【００４５】
図６におけるfile idが50のファイルと同様に、他のレコメンド文書（図５に示した例では、file idが55、60、70、250のファイル）についても、それぞれファイルの関係が存在する。図７に、それらのレコメンド文書と、ファイルツリーとの関係を図示した。図７中の破線の矢印は、レコメンド文書一覧の各レコメンド文書から、各レコメンド文書に対するファイルツリーにおけるノードへの対応を表している。
【００４６】
図７に示すように、file idが55のファイルは、file idが20のファイルから複製された。file idが55のファイルからは、file idが170のファイルと、file idが180のファイルとが複製されている。file idが60のファイルの元ファイルは、そのファイル自身である。file idが70のファイルの元ファイルは、そのファイル自身である。file idが70のファイルからは、file idが210のファイルが複製されている。file idが250のファイルの元ファイルは、そのファイル自身である。
【００４７】
図８は、図７に示したファイルツリーと、各文書に対応したレコメンド文書一覧とから決まる利用者User-Aに最終的に提示するレコメンド文書一覧を示した図である。図８は、利用者User-Aが、file idが200のファイルを選択した際に、利用者User-Aに最終的に提示されるレコメンド文書一覧を表している。利用者User-Aに提示すべき文書のファイル名が、file idと共に順位付けされている。以下、図８に示したような、利用者に最終的に提示するレコメンド文書一覧を作成する処理の流れを説明する。
【００４８】
図９は、本実施形態に係る文書推奨計算手段（８）において、レコメンド文書一覧を求める手順を示したフローチャートである。図９に示すフローチャートは、図８に例示したような最終的なレコメンド文書一覧を作成する手順を示す。
【００４９】
ステップS１０００において、文書推奨計算手段（８）は、処理を開始する。
【００５０】
ステップS１００１において、文書推奨計算手段（８）は、文書を参照する利用者のユーザIDを、認証手段（５）から取得する。取得したユーザIDをUIDとする。
【００５１】
ステップS１００２において、文書推奨計算手段（８）は、利用者が参照する文書のfile idを、ファイルシステム（１１）を介して取得する。取得したfile idをFidとする。
【００５２】
ステップS１００３において、文書推奨計算手段（８）は、版管理手段（１０）が実行する処理を呼び出す。版管理手段（１０）が実行する処理の詳細は、後述する（図１３を参照）。ステップS１００３では、文書推奨計算手段（８）は、パラメータとして、階層と、親等と、file idとを指定する。最初に、階層は０に指定され、親等は０に指定され、file idはFidに指定される。ステップS１００３の結果、文書推奨計算手段（８）は、Fidを含むファイルツリーを構成するファイル群（ファイル集合S）を取得する。ファイル集合Sは、リビジョンツリーを構成するfile id（図５に示す例では、100、200、300）と、file idに対応する階層と、file idに対応する親等との項目から成る一覧である。
【００５３】
ステップS１００４において、文書推奨計算手段（８）は、ファイル集合Sについて、親等順にソートし、次いで階層順にソートし、次いでfile id順にソートする。親等順のソート、階層順のソート、及びfile id順のソートは夫々、昇順で行われ、値の小さい方から大きい方へ順に並べられる。図１０に、ステップS１００４の結果得られるソート後のファイル集合Sの例を示す。
【００５４】
階層は、ファイルツリーの階層を相対的に表す整数値である。指定file idのファイルに対して複製されたファイルの階層を１とし、指定file idのファイルの複製元のファイルの階層を−１とする。
【００５５】
親等は、指定file idのファイルからのファイルツリー上におけるノードの距離を表す。ファイルツリー上で隣接するファイル間のノードの距離を１とする。
【００５６】
次に、文書推奨計算手段（８）は、ステップS１００５〜S１００８において、ファイル集合Sに含まれる各file idに対するレコメンドリストを取得する。ステップS１００５、S１００８に示すように、ステップS１００６、S１００７の処理は、ファイル集合Sに含まれるfile id毎に、且つ、ソートされたfile idの順に、繰り返して行われる。
【００５７】
ステップS１００６において、文書推奨計算手段（８）は、ファイル集合Sに含まれるfile idに対するレコメンド文書一覧（FRLISTn）を協調フィルタリングレコメンド手段（９）から取得する。レコメンド文書一覧（FRLISTn）は、ユーザIDがUIDの使用者にレコメンドされる文書一覧である。
【００５８】
ステップS１００７において、文書推奨計算手段（８）は、レコメンド文書一覧（FRLISTn）をレコメンド文書一覧（FRLISTm）へマージする。
【００５９】
ステップS１００５からS１００８までの処理の結果、文書推奨計算手段（８）は、レコメンド文書一覧（FRLISTm）として図１１に示すようなfile idのリストを得る。図１１に示す例では、レコメンド文書一覧（FRLISTm）中にfile id 60が重複して存在する。
【００６０】
次にステップS１００９において、文書推奨計算手段（８）は、レコメンド文書一覧（FRLISTｍ）から重複するfile idを除去する。ここで、同じfile idが出現した場合には、リストの最先に出現したものを優先して残し、後に出現したものを取り除く。図１２に、図１１に示したレコメンド文書一覧（FRLISTm）に対し、ステップS１００９の処理を施した結果を示す。図１１、図１２から、後に出現した60が除去されたことが分かる。なお、図１０から図１２に示した例は、図５に示したリビジョンツリーに対応する例である。
【００６１】
次に、文書推奨計算手段（８）は、ステップS１０１０からS１０１５において、レコメンド文書一覧（FRLISTm）に含まれる各file idについての複製ファイルの一覧を取得する。ステップS１０１０、S１０１５に示すように、ステップS１０１１〜S１０１４の処理は、レコメンド文書一覧（FRLISTm）に含まれるfile id毎に、且つ、レコメンド文書一覧（FRLISTm）中のfile idの順に、繰り返して行われる。
【００６２】
ステップS１０１１において、文書推奨計算手段（８）は、レコメンド文書一覧（FRLISTm）からfile idを取得する。取得したfile idをrfidとする。
【００６３】
ステップS１０１２において、文書推奨計算手段（８）は、版管理手段（１０）により実行される処理を呼び出す。版管理手段（１０）により実行される処理の詳細は、後述する（図１４を参照）。ステップS１０１２では、文書推奨計算手段（８）は、パラメータとして、階層と、file idとを指定する。最初に、階層は０に指定され、file idはrfidに指定される。ステップS１０１２の結果、文書推奨計算手段（８）は、ファイル集合Tを取得する。
【００６４】
ステップS１０１３において、文書推奨計算手段（８）は、ファイル集合Tについて、階層順にソートし、次いでfile id順にソートする。階層順のソート及びfile id順のソートは夫々、昇順で行われ、値の小さい方から大きい方へ順に並べられる。
【００６５】
ステップS１０１４において、文書推奨計算手段（８）は、ステップS１０１３の結果得たfile id一覧を追加レコメンド文書一覧（FRLISTm2）へ順にマージする。図７に示した例を挙げて説明すると、例えば、レコメンド文書file id 50に対するfile id 150が追加レコメンド文書一覧（FRLISTm2）に追加される。また、レコメント文書file id 55に対するfile id 170及びfile id180が追加レコメンド文書一覧（FRLISTm2）に追加される。さらに、レコメント文書file id 70に対するfile id 210が追加レコメンド文書一覧（FRLISTm2）に追加される。
【００６６】
ステップS１０１０からS１０１５までの処理の結果、文書推奨計算手段（８）は、追加レコメンド文書一覧（FRLISTm2）として、図１５に示すようなfile idのリストを得る。なお、図１５に示す例は、図５に示したリビジョンツリーに対応する追加レコメンド文書一覧（FRLISTm2）の例である。
【００６７】
ステップS１０１６において、文書推奨計算手段（８）は、レコメンド文書一覧（FRLISTｍ）の最後に追加レコメンド文書一覧（FRLISTｍ2）を追加する。
【００６８】
ステップS１０１７において、文書推奨計算手段（８）は、ステップS１０１６の結果得たFRLISTｍの各file idからパス一覧を作成する。最終的には、図８に示したようなレコメンド文書一覧が作成される。
【００６９】
図１３は、図９のステップS１００３において実行される一連の処理を説明するためのフローチャートである。図１３は、本実施形態に係る版管理手段（１０）において、指定されたfile id（Fid）のファイルを含むファイルツリーを構成するファイル群（即ち、Fidのリビジョン履歴）を取得する手順を示したフローチャートである。
【００７０】
図１３に示す処理手順は、ステップS１１００において、版管理手段（１０）が、文書推奨計算手段（８）から階層と、親等と、file id（＝Fid）とをパラメータとして受け取ることで開始する。また、図１３に示す処理手順は、再帰的に呼び出される処理手順である。
【００７１】
階層は、ファイルツリーの階層を相対的に表す整数値である。指定file idのファイルに対して複製されたファイルの階層を１とし、指定file idのファイルの複製元のファイルの階層を−１とする。親等は、指定file idのファイルからのファイルツリー上におけるノードの距離を表す。ファイルツリー上で隣接するファイル間のノードの距離を１とする。また、図１３の処理手順におけるファイル集合Sは、再帰呼び出しにおいても共通で参照・更新されるグローバル変数である。
【００７２】
ステップS１１０１において、版管理手段（１０）は、Fidが最初に現れるリビジョンをリビジョン履歴から特定する。このリビジョンをリビジョンRとする。
【００７３】
ステップS１１０２において、版管理手段（１０）は、パラメータとして受け取った階層と、親等と、Fidとの組をファイル集合Sに追加する。
【００７４】
ステップS１１０３において、版管理手段（１０）は、リビジョンRにおけるfild idがFidのファイルのsrc値を取得し、取得したsrc値をparentとして保持する。parentは、file idがFidのファイルが他のファイルからの複製である場合は、file idがFidのファイルの親ファイルのfile idを示す。
【００７５】
ステップS１１０４において、版管理手段（１０）は、file idがFidのファイルが他のファイルからの複製であるか否かを判断する。file idがparentのファイルがファイル集合Sに含まれる場合、file idがFidのファイルは他のファイルからの複製ではなく新規作成であるので、親ノードは辿らない。この場合、処理はステップS１１０６に進む。file idがparentのファイルがファイル集合Sに含まれない場合、file idがFidのファイルは他のファイルからの複製である。この場合、処理はステップS１１０５に進む。
【００７６】
ステップS１１０５において、版管理手段（１０）は、図１３のフローを再帰的に実行することにより親ノードから辿る祖先ノードのファイル群を取得する。
【００７７】
次に、ステップS１１０６〜S１１１４において、版管理手段（１０）は、子孫ノードのファイル群を取得する。
【００７８】
ステップS１１０６において、版管理手段（１０）は、リビジョンRをインクリメントする。
【００７９】
ステップS１１０７、S１１１３に示すように、ステップS１１０８〜S１１１２の処理は、リビジョンRに含まれるfile id毎に繰り返して行われる。
【００８０】
ステップS１００８において、版管理手段（１０）は、リビジョンRからfile idを取得する。取得したfile idをCfidとする。
【００８１】
ステップS１１０９において、版管理手段（１０）は、file idがCfidのファイルがファイル集合Sに含まれるか否かを判断する。file idがCfidのファイルがファイル集合Sに含まれる場合、処理はステップS１１１３に進む。file idがCfidのファイルがファイル集合Sに含まれない場合、処理はステップS１１１０に進む。
【００８２】
ステップS１１００において、版管理手段（１０）は、file idがCfidのファイルのsrc値がFidと等しいか否かを判断する。file idがCfidのファイルのsrc値がFidと等しい場合、処理はステップS１１１１に進む。file idがCfidのファイルのsrc値がFidと等しくない場合、処理はステップS１１１３に進む。
【００８３】
ステップS１１１１において、版管理手段（１０）は、パラメータとして受け取った階層＋１と、親等＋１と、Cfidとの組をファイル集合Sに追加する。
【００８４】
ステップS１１１２において、版管理手段（１０）は、図１３のフローを再帰的に実行することにより子ノードから辿る子孫ノードのファイル群を取得する。
【００８５】
ステップS１１１４において、版管理手段（１０）は、リビジョンRにおけるfile idがFidのファイルが存在するか否かを判断する。リビジョンRにおけるfile idがFidのファイルが存在する場合、処理はステップS１１０６に戻る。リビジョンRにおけるfile idがFidのファイルが存在しない場合、処理はステップS１１１５に進み、一連の処理は終了する。
【００８６】
ステップS１１０６、ステップS１１１４に示すように、子孫ノードのファイル群を取得する処理は、file idがFidのファイルが存在する間でリビジョンを順に辿る繰返し処理である。そして、ステップS１１０７〜ステップS１１１０に示すように、各リビジョンについて、ファイル集合Sにまだ含まれず、かつ、Fidを元に複製されているファイル(Cfid)を探す。ファイル集合Sにまだ含まれず、かつ、Fidを元に複製されているファイル(Cfid)
を見つける度に、ファイル集合Sへ子ファイルを追加（ステップS１１１１）し、図１３のフローを再帰的に呼び出すことにより子ノードから辿る子孫ノードのファイル群を取得する（ステップS１１１２）。
【００８７】
以上の処理により、図９におけるステップS１００３の処理が実行された後には、指定されたfile id（Fid）から辿れるファイル群を取得することが出来る。
【００８８】
図１４は、図９のステップS１０１２において実行される一連の処理を説明するためのフローチャートである。図１４は、本実施形態に係る版管理手段（１０）において、指定されたfile idから複製されたファイル群を取得する手順を示したフローチャートである。
【００８９】
図１４に示す処理手順は、ステップS１２００において、版管理手段（１０）が、文書推奨計算手段（８）から、パラメータとして、階層と、file id(図１４ではFidと表している)とを受け取ることで開始する。前述したとおり、最初、階層は０に指定され、file idはrfidに指定される。また、図１４に示す処理手順は、再帰的に呼び出される処理手順である。
【００９０】
階層は、図１３に示すフローチャートと同様、ファイルの階層を相対的に表す整数値である。また、図１４の処理手順におけるファイル集合Tは、再帰呼び出しにおいても共有で参照・更新されるグローバル変数である。
【００９１】
まず、ステップS１２０１において、版管理手段（１０）は、Fidが最初に現れるリビジョンをリビジョン履歴から特定する。このリビジョンをリビジョンRとする。
【００９２】
ステップS１２０２において、版管理手段（１０）は、リビジョンRをインクリメントする。
【００９３】
ステップS１２０３、S１２０９に示すように、ステップS１２０４〜S１２０８の処理は、リビジョンRに含まれるfile id毎に繰り返して行われる。
【００９４】
ステップS１２０４において、版管理手段（１０）は、リビジョンRからfile idを取得する。取得したfile idをCfidとする。
【００９５】
ステップS１２０５において、版管理手段（１０）は、file idがCfidのファイルがファイル集合Tに含まれるか否かを判断する。file idがCfidのファイルがファイル集合Tに含まれる場合、処理はステップS１２０９に進む。file idがCfidのファイルがファイル集合Tに含まれない場合、処理はステップS１２０６に進む。
【００９６】
ステップS１２０６において、版管理手段（１０）は、file idがCfidのファイルのsrc値がFidと等しいか否かを判断する。file idがCfidのファイルのsrc値がFidと等しい場合、処理はステップS１２０７に進む。file idがCfidのファイルのsrc値がFidと等しくない場合、処理はステップS１２０９に進む。
【００９７】
ステップS１２０７において、版管理手段（１０）は、パラメータとして受け取った階層＋１と、Cfidとの組をファイル集合Tに追加する。
【００９８】
ステップS１２０８において、版管理手段（１０）は、図１４のフローを再帰的に実行することにより子ノードから辿る子孫ノードのファイル群を取得する。
【００９９】
ステップS１２１０において、版管理手段（１０）は、リビジョンRにおいてfile idがFidのファイルが存在するか否かを判断する。リビジョンRにおいてfile idがFidのファイルが存在する場合、処理はステップS１２０２に戻る。リビジョンRにおいてfile idがFidのファイルが存在しない場合、処理はステップS１２１１に進み、一連の処理は終了する。
【０１００】
ステップS１２０２からステップS１２１０において、子孫ノードのファイル群を取得する。ステップS１２０２、ステップS１２１０に示すように、子孫ノードのファイル群を取得する処理は、file idがFidのファイルが存在する間でリビジョンを順に辿る繰返し処理である。そして、ステップS１２０３〜ステップS１２０６に示すように、各リビジョンについて、ファイル集合Tにまだ含まれず、かつ、Fidを元に複製されているファイル(Cfid)を探す。ファイル集合Tに含まれず、かつ、Fidを元に複製されたファイル(Cfid)を見つけると、ファイル集合Tへ子ファイルを追加し（S１２０７）、図１４のフローを再帰的に呼び出すことで子ノードから辿る子孫ノードのファイル群を取得する（S１２０８）。
【０１０１】
以上の処理により、図９におけるステップS１０１２を処理が実行された後には、指定されたfile id（rfid）から辿れるファイル群を取得できる。
【０１０２】
以上の構成により、操作ログが未だ十分に存在しない新規文書においても、複製元文書のレコメンド文書を辿り、レコメンド文書先のファイルツリーも辿ることで、利用者に提示されるレコメンド文書の精度を向上させることが出来る。
【０１０３】
［その他の実施形態］
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2014203392.tif 000003
【図２】
2014203392.tif 000004
【図３】
2014203392.tif 000005
【図４】
2014203392.tif 000006
【図５】
2014203392.tif 000007
【図６】
2014203392.tif 000008
【図７】
2014203392.tif 000009
【図８】
2014203392.tif 000010
【図９】
2014203392.tif 000011
【図１０】
2014203392.tif 000012
【図１１】
2014203392.tif 000013
【図１２】
2014203392.tif 000014
【図１３】
2014203392.tif 000015
【図１４】
2014203392.tif 000016
【図１５】
2014203392.tif 000017