(57)【要約】【課題】一般的にレコメンドシステムは、文書やフォルダの識別子のみを保持し、レコメンドに必要な関連度の計算処理等を行っているため、レコメンドする文書やフォルダの識別子からパスを取得できないとユーザが文書やフォルダにアクセスする手段を提供できない。【解決手段】文書やフォルダの識別子からそのパスを取得する機能をもたない文書管理システムの文書やフォルダをレコメンドする場合に、そのような文書管理システムに対して、文書やフォルダの識別子とそのパスおよび状態をテーブルでマッピングして管理する。文書やフォルダの操作ログデータにより識別子とパスとのマッピング情報を更新する。【選択図】図３
2013254455.tif 000002
【特許請求の範囲】
【請求項１】
アイテムに対する操作のログを格納する操作ログデータ格納手段を含み、アイテムの識別子からアイテムへアクセスするパスを取得する機能を有し、アイテムの要求に応答して送信されたアイテムの識別子によりアイテムのパスを取得して前記アイテムにアクセスする少なくとも１つの文書管理サーバと、
アイテムに対する操作のログを格納する操作ログデータ格納手段を含み、文書やフォルダの識別子からパスを取得する機能を有さず、アイテムの要求に応答して送信されたアイテムのパスを用いて前記アイテムにアクセスする少なくとも１つの文書管理サーバと、
前記アイテムの識別子と前記アイテムのパスとを対応付けるマッピング手段と、前記アイテムの要求を受信する受信手段と、前記受信したアイテムの要求に対応するアイテムの識別子を提供するアイテム提供手段とを含み、前記受信したアイテムの要求に応答して、前記アイテムの識別子からパスを取得する機能を有する文書管理サーバへは前記提供されたアイテムの識別子を送信し、前記アイテムの識別子からパスを取得する機能を有さない文書管理サーバへは、前記マッピング手段により前記提供されたアイテムの識別子に対応付けられた前記アイテムのパスを取得して送信するアイテム提供サーバと
を備え、前記マッピング手段は、前記操作ログデータ格納手段からアイテムに対する操作ログデータを収集し、実行された操作に応じて前記アイテムの識別子と前記アイテムのパスとの対応付けを更新することを特徴とする文書管理システム。
【請求項２】
前記マッピング手段は、前記操作ログデータに含まれる操作内容に応じて前記対応付けを更新することを特徴とする請求項１に記載の文書管理システム。
【請求項３】
前記アイテムはサブアイテムを有する階層構造を有しており、
前記マッピング手段は、更新の対象となるアイテムに対する操作によってパスが変更する該アイテムのサブアイテムに対する操作ログデータがない場合、前記操作ログデータに基づく更新の後に当該アイテムに対する操作によってパスが変更するサブアイテムを抽出して更新することを特徴とする請求項１または2に記載の文書管理システム。
【請求項４】
前記アイテム提供サーバは、前記操作ログデータをそのまま使用して前記アイテムの識別子と前記アイテムのパスとの対応付けを更新すると不整合が生じる場合、前記マッピング手段が適用できるように前記操作ログデータを加工することを特徴とする請求項１ないし３のいずれかに記載の文書管理システム。
【請求項５】
前記文書管理サーバは、レコメンドするアイテムを要求し、前記アイテム提供手段は、前記アイテムの要求に応答してレコメンドするアイテムを提供することを特徴とする請求項１ないし４のいずれかに記載の文書管理システム。
【請求項６】
前記アイテムの識別子と前記アイテムのパスとの対応付けの更新をする際に、前記アイテム間の関連度の計算を実行することを特徴とする請求項５に記載の文書管理システム。
【請求項７】
前記アイテムは、文書またはフォルダであることを特徴とする請求項１ないし５のいずれかに記載の文書管理システム。
【請求項８】
アイテムに対する操作のログを格納する操作ログデータ格納手段を含み、アイテムの識別子からアイテムへアクセスするパスを取得する機能を有する少なくとも１つの文書管理サーバと、アイテムに対する操作のログを格納する操作ログデータ格納手段を含み、文書やフォルダの識別子からパスを取得する機能を有さない少なくとも１つの文書管理サーバと、前記アイテムの識別子と前記アイテムのパスとを対応付けるマッピング手段と、前記アイテムの要求を受信する受信手段と、前記受信したアイテムの要求に対応するアイテムの識別子を提供するアイテム提供手段とを含むアイテム提供サーバとを備えた文書管理システムにおいて文書を管理する方法であって、
前記アイテム提供サーバにおいて、受信したアイテムの要求に応答して、前記アイテムの識別子からパスを取得する機能を有する文書管理サーバへは前記提供されたアイテムの識別子を送信し、前記アイテムの識別子からパスを取得する機能を有さない文書管理サーバへは、前記マッピング手段により前記提供されたアイテムの識別子に対応付けられた前記アイテムのパスを取得して送信するステップと、
前記アイテムの識別子からパスを取得する機能を有する文書管理サーバにおいて、アイテムの要求に応答して送信されたアイテムの識別子によりアイテムのパスを取得して前記アイテムにアクセスするステップと、
前記アイテムの識別子からパスを取得する機能を有さない文書管理サーバにおいて、アイテムの要求に応答して送信されたアイテムのパスを用いて前記アイテムにアクセスするステップと
を備え、前記マッピング手段は、前記操作ログデータ格納手段からアイテムに対する操作ログデータを収集し、実行された操作に応じて前記アイテムの識別子と前記アイテムのパスとの対応付けを更新することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書管理システムおよび方法に関し、特に、アイテムを選択すると、そのアイテムに関連するアイテムをユーザにレコメンドして、ユーザの操作性を向上させる文書管理システムおよび方法に関する。
【背景技術】
【０００２】
近年、オンラインショッピングサイトに代表されるように、ユーザに対してコンテンツをレコメンドする種々のシステムが知られている。例えば、オンラインショッピングサイトで、ユーザが現在閲覧しているコンテンツ（商品）と同時に購入されることの多い別のコンテンツをユーザに提示するといったレコメンドが行われている。
【０００３】
また、本出願人は、このようなレコメンドシステムを文書管理システムに適用することを考えている。すなわち、レコメンドされるコンテンツとして、文書管理システムに保存されている文書やフォルダを対象にする文書レコメンドシステムについて考える（以下、文書やフォルダを特に区別する必要がない場合は、両者をまとめて「アイテム」と表記する）。
【０００４】
一方、文書レコメンドシステムにおいて、文書管理機能とレコメンド機能とは、必ずしも単一のシステムに存在している必要はないと考えられる。特に近年流行してきているクラウドにおいては、文書管理機能とレコメンド機能を各々独立したシステムとしてクラウド上に構築し、各々のシステムが連携し、全体として文書レコメンドシステムを構成する。ここで、レコメンドシステムは、レコメンドを行うためにアイテムの関連度を計算し管理している。その際、アイテムを一意に特定するためには一般的にアイテムの識別子（ＩＤ）のみを保持していればよい。また、文書管理システムのアイテムにユーザがアクセスするためにはアイテムへのパスが必要である。レコメンドするアイテムにアクセスする際にも、同様にアイテムのパスが必要である。すなわち、一般にレコメンドシステムではアイテムを管理するためには、少なくともＩＤおよびアイテムへのパスが必要になる。
【０００５】
文書管理システムがアイテムのＩＤからアイテムのパスを取得する機能を持っていれば、レコメンドするアイテムのＩＤからアイテムのパスを取得することができる。取得したレコメンドするアイテムのパスをユーザに提示することで、ユーザはレコメンドされたアイテムにアクセスすることが可能になる。
【０００６】
しかし、文書管理システムの構成は様々であり、アイテムのＩＤからアイテムのパスを取得する機能を持たない文書管理システムも存在する。そのような文書管理システムの場合、レコメンドシステムからレコメンドするアイテムのＩＤのみ取得しても、そのレコメンドするアイテムのパスを取得できない。そのため、ユーザはレコメンドされるアイテムへのアクセスができなくなってしまう。したがって、そのような文書管理システムでは、アイテムのＩＤとアイテムのパスとを対応付けて取得する必要がある。
【０００７】
一方、特許文献１では、アイテムの名前と、ＩＤからアイテムに対して移動などの操作を行う前後のパスとを対応付けて記録しておくことで、アイテムの現在のパスを取得する技術が提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−３０５０９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の従来技術においては１つの文書管理システムを対象にアイテムのＩＤとアイテムのパスとを対応付けて管理するものであり、複数の文書管理システムを対象にするものではない。すなわち、任意の文書管理システムに関して、アイテムのＩＤとアイテムのパスとを対応付ける必要性の有無を考慮していないため、不必要な対応付けの処理を行ってしまうという課題があった。
【００１０】
また、対応付けの処理の際、移動と削除操作のみを考慮しているため、操作内容によってはアイテムの状態の整合性が取れなくなり、不適切なパスが対応付けられる場合がある。そのため、ユーザはアイテムに正しくアクセスできないという課題がある。
【課題を解決するための手段】
【００１１】
本発明の文書管理システムは、アイテムに対する操作のログを格納する操作ログデータ格納手段を含み、アイテムの識別子からアイテムへアクセスするパスを取得する機能を有し、アイテムの要求に応答して送信されたアイテムの識別子によりアイテムのパスを取得してアイテムにアクセスする少なくとも１つの文書管理サーバと、アイテムに対する操作のログを格納する操作ログデータ格納手段を含み、文書やフォルダの識別子からパスを取得する機能を有さず、アイテムの要求に応答して送信されたアイテムのパスを用いてアイテムにアクセスする少なくとも１つの文書管理サーバと、アイテムの識別子とアイテムのパスとを対応付けるマッピング手段と、アイテムの要求を受信する受信手段と、受信したアイテムの要求に対応するアイテムの識別子を提供するアイテム提供手段とを含み、受信したアイテムの要求に応答して、アイテムの識別子からパスを取得する機能を有する文書管理サーバへは提供されたアイテムの識別子を送信し、アイテムの識別子からパスを取得する機能を有さない文書管理サーバへは、マッピング手段により提供されたアイテムの識別子に対応付けられたアイテムのパスを取得して送信するアイテム提供サーバとを備え、マッピング手段は、操作ログデータ格納手段からアイテムに対する操作ログデータを収集し、実行された操作に応じてアイテムの識別子とアイテムのパスとの対応付けを更新することを特徴とする。
【発明の効果】
【００１２】
本発明によると、複数の文書管理システムが連携したシステムにおいて、アイテムの識別子からアイテムのパスを取得できない文書管理システムが存在した場合でも、適切なパスを対応付けてその文書管理システムのアイテムをレコメンドすることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態にかかる文書レコメンドシステムの概略図である。
【図２】本実施例の文書レコメンドシステムを構成する各ＰＣのハードウェア構成図である。
【図３】本実施例の文書レコメンドシステムのソフトウェアモジュール構成を示す図である。
【図４】本実施例のアイテムを新規登録した時の操作ログテーブルを示す図である。
【図５】本実施例の移動およびコピー操作をした時の操作ログテーブルを示す図である。
【図６】本実施例の削除および名前変更操作をした時の操作ログテーブルを示す図である。
【図７】本実施例の文書を新規登録しフォルダを削除する操作をした時の操作ログテーブルを示す図である。
【図８】本実施例の復元操作をした時の操作ログテーブルを示す図である。
【図９】本実施例の上書き移動操作をした時の操作ログテーブルを示す図である。
【図１０】本実施例の加工が必要な操作ログデータの出力例を示す図である。
【図１１】本実施例のマッピング実行判断テーブルの構成例を示す図である。
【図１２】本実施例のアイテムの新規登録操作ログデータをマッピング処理した時のマッピングテーブルを示す図である。
【図１３】本実施例の移動およびコピー操作ログデータをマッピング処理した時のマッピングテーブルを示す図である。
【図１４】本実施例の削除および名前変更操作ログデータをマッピング処理した時のマッピングテーブルを示す図である。
【図１５】本実施例の文書を新規登録しフォルダを削除する操作ログデータをマッピング処理した時のマッピングテーブルを示す図である。
【図１６】本実施例の復元操作ログデータをマッピング処理した時のマッピングテーブルを示す図である。
【図１７】本実施例の上書き移動操作ログデータをマッピング処理した時のマッピングテーブルを示す図である。
【図１８】本実施例のアイテムの状態例を示す図である。
【図１９】本実施例のアイテムの状態例を示す図である。
【図２０】本実施例のアイテムの状態例を示す図である。
【図２１】本実施例のアイテムの状態例を示す図である。
【図２２】本実施例のアイテムの状態例を示す図である。
【図２３】本実施例のアイテムの状態例を示す図である。
【図２４】本実施例のアイテムの状態例を示す図である。
【図２５】本実施例のマッピング処理のフローチャートである。
【図２６】本実施例のマッピングテーブルへのデータの反映処理のフローチャートである。
【図２７】本実施例のサブアイテムのマッピングデータの更新処理のフローチャートである。
【図２８】本実施例のマッピングテーブルの整合性をとる処理のフローチャートである。
【図２９】本実施例の操作ログデータの加工処理のフローチャートである。
【図３０】本実施例のレコメンド処理のフローチャートである。
【図３１】本実施例のアイテム間の関連度の計算処理のフローチャートである。
【発明を実施するための形態】
【００１４】
［実施例１］
以下、本発明を実施するための最良の形態について図面を参照して説明する。
【００１５】
＜概要＞
本実施形態に係る文書レコメンドシステムは、複数の文書管理システムとレコメンドシステムが連携したシステムで構成される。アイテムのＩＤ自体からアイテムのパスを取得する機能をもたない文書管理システムのアイテムのＩＤとパスとを対応付ける。このようにしてアイテムのＩＤに対応付けられたアイテムのパスを利用して、アイテムのＩＤからアイテムのパスを取得する機能をもたない文書管理システムのアイテムをレコメンドすることができる。
【００１６】
＜システム構成＞
本発明の一実施例を図１ないし図１４を参照して説明する。図１は本実施例の全体システムの概略図である。本実施例のシステムは少なくとも、文書管理サーバＰＣ１０１、文書管理サーバＰＣ１０２、アイテム提供サーバであるレコメンドサーバＰＣ１０３、クライアントＰＣ１０４を備え、各々インターネットやＬＡＮ等のネットワーク１０５を介して接続されている。図１には図示しないが、文書管理サーバＰＣ１０１および文書管理サーバＰＣ１０２の２つに限られず、より多くの文書管理サーバＰＣがネットワーク１０５に接続されていても構わない。また、クライアントＰＣ１０４についてもより多くのクライアントＰＣがネットワーク１０５に接続されていても構わない。なお、クラウド上で実現する場合は、各サーバ１０１〜１０３はクラウド上の仮想サーバとすればよい。
【００１７】
＜ハードウェア構成＞
図２は、本実施例に係る文書レコメンドシステムを構成する各ＰＣのハードウェア構成図を示している。図２のハードウェア構成図に示すように、本実施例の各PCは、一般的な情報処理装置のハードウェア構成と同様であり、一般的な情報処理装置として扱うことができる。図２において、ＣＰＵ２０１は、ＲＯＭ２０３のプログラム用の領域に記憶された、或いはハードディスク２１０からＲＡＭ２０２にロードされたＯＳやアプリケーション等のプログラムを実行する。ここで、ＯＳとはコンピュータ上で稼働するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをＯＳと呼ぶ。後述するフローチャートの各処理は、このＣＰＵ２０１により実行されるプログラムによって実現される。
【００１８】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。キーボードコントローラ２０４は、キーボード２０８や図示しないマウスなどのポインティングデバイスからの入力を制御し、システムに入力されたデータを送り込む。ディスプレイコントローラ２０５は、表示用デバイスであるディスプレイ２０９の表示を制御する。ディスクコントローラ２０６は、各種データを記憶するハードディスク（ＨＤ）等の外部メモリ２１０におけるデータアクセスを制御する。
【００１９】
ＮＩＣ２０７は、ネットワークインターフェースであり、ネットワーク１０５に接続して、ネットワークに接続された他の機器との通信制御処理を実行する。ハードディスク（ＨＤ）２１０には、ＯＳやアプリケーション等のプログラムが格納されると共に、ＯＳによりファイルシステムが構築され、ＯＳの管理下で各種ファイルが格納、管理される。相互接続バス２１１は、ＣＰＵ２０１により各ブロック間の通信を仲介する。
【００２０】
＜文書管理システムとレコメンドシステムの構成＞
図３は、文書レコメンドシステムの各処理部として機能させるためのソフトウェアモジュール構成を示す図である。以降のフローチャートで示される処理は、ハードディスク（ＨＤ）２１０に記録されているプログラムをメモリにロードしてＣＰＵ２０１で実行される。すなわち、該プログラムはＣＰＵ（コンピュータ）で実行されることにより、コンピュータを図３で示すような各処理部として機能させるものである。ここで、文書管理サーバアプリケーション３０１および３１１は、それぞれ文書管理サーバＰＣ１０１および文書管理サーバＰＣ１０２にインストールされている。尚、文書管理サーバアプリケーション３０１は、少なくとも後述するようにアイテムのＩＤからアイテムのパスを取得する機能を有するという点で文書管理サーバアプリケーション３１１と異なる文書管理サーバアプリケーションである。また、文書管理クライアントアプリケーション３２１は、クライアントＰＣ１０４にインストールされている。尚、文書管理クライアントアプリケーション３２１は、文書管理サーバアプリケーション３０１および文書管理サーバアプリケーション３１１の両方に対して接続し、アイテムの要求、取得、表示、アイテム提供または編集等の各種の操作を行う。レコメンドサーバアプリケーション３３１は、レコメンドサーバＰＣ１０３にインストールされている。
【００２１】
文書管理サーバアプリケーション３０１の各部について説明する。文書管理サーバメイン制御部３０２は、文書管理クライアントアプリケーション３２１から、アイテムの作成および変更の要求を受けた際、その要求と共に受け取ったアイテムデータをアイテムデータ蓄積・管理部３０３に渡す。また、文書管理サーバメイン制御部３０２は、文書管理クライアントアプリケーション３２１によるアイテムの操作要求に応答してアイテムの操作を行う際、その操作ログデータを生成して操作ログデータ格納手段である操作ログデータ蓄積・管理部３０４に渡す。
【００２２】
アイテムデータ蓄積・管理部３０３は、文書管理サーバメイン制御部３０２から受け取った要求に応じて、アイテムデータを外部メモリ２１０に記憶し、管理する。尚、アイテムデータ蓄積・管理部３０３は、後述するアイテムデータ蓄積・管理部３１３とは異なりアイテムのＩＤからアイテムのパスを取得する機能を有している。したがって、文書管理サーバＰＣ１０１は、本発明の手法によらずにアイテムのＩＤとパスとを特定することができる文書管理システムということができる。操作ログデータ蓄積・管理部３０４は、文書管理サーバメイン制御部３０２から受け取った要求に応じて、アイテムに対する操作ログデータを外部メモリ２１０に記憶し、管理する。操作ログデータの例を図４の操作ログ４２１〜４２９に示す。
【００２３】
図４に示すように、操作ログデータは操作ログテーブル４０１で記録されている。操作ログテーブルの属性を以下に示す。「操作ログＮｏ」４１１には、操作ログデータを区別するための番号との情報であり、文書管理サーバメイン制御部によって自動的に設定され、記録される。「アイテムＩＤ」４１２には、アイテムを識別するためのＩＤが記録される。「アイテムパス」４１３には、アイテムを仮想的なフォルダ構成として示す際のアイテムの位置を表す情報が記録される。「操作ユーザ」４１４には、操作を行ったユーザを識別する情報が記録される。
【００２４】
「操作内容」４１５には、ユーザによってアイテムに対して行われた操作の内容が記録される。本実施例における操作は、“新規登録”、“更新”、“表示”、“移動”、“名前変更”（同フォルダ内への移動）、“削除”（アイテムを一時削除領域に移す）、“コピー”、“復元”（一時削除領域にあるアイテムを元に戻す）とする。ただし、操作は以上に限られず本技術分野で知られたいずれの操作を含めることもできる。「操作時刻」４１６には、ユーザによってアイテムに対して操作が行われた時刻情報が記録される。「イベント」４１７には、移動や名前変更操作によりアイテムのパスが変更された場合に、変更後のアイテムのパスの情報が記録される。また、コピー操作の場合は、コピー先のアイテムのＩＤとアイテムのパスが記録される。「データの種類」４１８には、データの種類を示す情報として“文書”や“フォルダ”が記録されるがこれに限られない。また、アイテム以外に関しての操作ログデータの場合は、“文書”や“フォルダ”以外の情報が記録される。文書管理サーバ通信部３０５は、ネットワーク１０５を介して文書管理クライアントアプリケーション３２１やレコメンドサーバアプリケーション３３１とデータの送受信を行う。
【００２５】
次に、文書管理サーバアプリケーション３１１の各部について説明する。上述したとおり、文書管理サーバアプリケーション３１１は、文書管理サーバアプリケーション３０１と異なり、アイテムのＩＤからアイテムのパスを取得する機能を有しないアイテムデータ蓄積・管理部３１３を備えている。文書管理サーバメイン制御部３１２は、文書管理クライアントアプリケーション３２１からアイテムの作成、変更の要求を受けた際、その要求と共に受け取ったアイテムデータをアイテムデータ蓄積・管理部３１３に渡す。また、文書管理サーバメイン制御部３１２は、文書管理クライアントアプリケーション３２１によるアイテムの操作要求に従ってアイテムの操作を行った際に、その操作ログデータを生成し、操作ログデータ蓄積・管理部３１４に渡す。
【００２６】
アイテムデータ蓄積・管理部３１３は、文書管理サーバメイン制御部３１２から受け取った要求に応じて、アイテムデータを外部メモリ２１０に記憶し、管理する。アイテムデータ蓄積・管理部３０３とは異なり、アイテムデータ蓄積・管理部３１３は、アイテムのＩＤからアイテムのパスを取得する機能をもっていないものとする。操作ログデータ蓄積・管理部３１４は、文書管理サーバメイン制御部３１２から受け取った要求に応じて、アイテムに対する操作ログデータを外部メモリ２１０に記憶し、管理する。文書管理サーバ通信部３１５は、ネットワーク１０５を介して文書管理クライアントアプリケーション３２１やレコメンドサーバアプリケーション３３１とデータの送受信を行う。
【００２７】
次に、文書管理クライアントアプリケーション３２１の各部について説明する。クライアントメイン制御部３２２は、ＵＩ部３２３を介して、ユーザから受け取ったアイテム操作要求を判断し、文書管理サーバアプリケーション３０１や文書管理サーバアプリケーション３１１にアイテム操作リクエストを送信し、レスポンスを受信する。文書管理サーバアプリケーション３０１や文書管理サーバアプリケーション３１１からレスポンスを受信すると、受け取ったレスポンス結果を基にＵＩ部３２３の表示を変更する。
【００２８】
ＵＩ部３２３は、ユーザインタフェースであり、アイテムの新規登録、更新、表示、移動、名前変更、コピー、削除、復元等の各種要求を受け取り、その要求に応じて表示内容を変更する。クライアント通信部３２４は、ネットワーク１０５を介して文書管理サーバアプリケーション３０１、文書管理サーバアプリケーション３１１、レコメンドサーバアプリケーション３３１に対してデータの送受信を行う。
【００２９】
次に、レコメンドサーバアプリケーション３３１の各部について説明する。レコメンドサーバメイン制御部３３２は、文書管理サーバアプリケーション３０１や文書管理サーバアプリケーション３１１からレコメンドのリクエストに応じて、レコメンドデータ蓄積・管理部３３３からレコメンドするアイテムの情報を取得する。ここで、レコメンドデータ蓄積・管理部３３３は、アイテム同士の関連度を算出、保持しているが、アイテムの情報としては、アイテムを一意に特定するためのＩＤのみを保持している。レコメンドデータ蓄積・管理部３３３は、レコメンドサーバメイン制御部３３２からレコメンドの提供の要求を受けると、レコメンドするアイテムを決定して、そのレコメンドするアイテムのＩＤを取得する。
【００３０】
アイテムＩＤ・パスマッピング部３３４は、マッピング実行判断テーブル５０１等の種々のテーブルを有し、アイテムのＩＤとそのパスとの対応付けを行う。マッピング実行判断テーブル５０１は、レコメンドシステムと連携する文書管理システムがアイテムのＩＤからアイテムのパスを取得する機能をもつか否かの情報を記録、管理している。マッピング実行判断テーブル５０１の構成例を図１１に示す。属性としては、「文書管理システム」５１１と「アイテムパス取得機能」５１２とを有する。「文書管理システム」５１１には、レコメンドシステムと連携する文書管理システムを特定するための情報が記録されるが、特に形式は問わない。「アイテムパス取得機能」５１２には、レコメンドシステムと連携する文書管理システムとが、アイテムのＩＤからアイテムのパスを取得する機能をもつか否かの情報が記録される。
【００３１】
また、アイテムＩＤ・パスマッピング部３３４はまた、マッピングテーブル６０１を有する。マッピングテーブル６０１は、アイテムのＩＤとアイテムのパスとを対応付けて記録、管理する。マッピングテーブル６０１の構成例を図１２に示す。マッピングテーブル６０１は、属性として「アイテムＩＤ」６１１、「アイテムパス」６１２、「状態」６１３、「操作時刻」６１４および「削除フォルダＩＤ」６１５を有する。「アイテムＩＤ」６１１には、アイテムを一意に特定できるＩＤを示す情報が記録される。「アイテムパス」６１２には、現在のアイテムのパスを示す情報が記録される。「状態」６１３には、アイテムの状態を示す情報、具体的には「存在している」または「削除されている」などが記録される。「操作時刻」６１４には、最後に操作を行った時刻を示す情報が記録される。
【００３２】
「削除フォルダＩＤ」６１５は、アイテムの削除の経緯を示す情報が記録される。すなわち、アイテムが削除されるには、ユーザがそのアイテム自身を削除する場合と、ユーザがそのアイテムの上位のフォルダを削除したために、それに伴ってそのアイテムが自動的に削除される場合とがある。どちらの経緯で削除されたアイテムであるかを判別するために、後者の経緯で削除されたアイテムに関してのみ、ユーザが削除した上位のフォルダのＩＤを「削除フォルダＩＤ」６１５に記録して、そのフォルダが削除されたことにより削除されたことを示す。したがって、「削除フォルダＩＤ」６１５になにも記録されておらず「状態」６１３が「削除されている」の場合は、そのアイテム自体に対して削除操作が実行されたことになる。この他にも、操作を行ったユーザ情報、操作種類等の情報をさらにマッピングテーブル６０１に記録するようにしても構わない。
【００３３】
レコメンドサーバ通信部３３５は、ネットワーク１０５を介して文書管理サーバアプリケーション３０１、文書管理サーバアプリケーション３１１、文書管理クライアントアプリケーション３２１に対してデータの送受信を行う。
【００３４】
＜アイテムのＩＤとアイテムのパスのマッピング処理＞
図２５を参照して、本実施例におけるアイテムのＩＤとアイテムのパスとをマッピングする処理の概要について説明する。ステップＳ８０１で、レコメンドサーバメイン制御部３３２は、文書管理システムの操作ログデータを収集する。本実施例では基本的に、前回収集時以降に操作ログデータ蓄積・管理部３０４または３１４に記録された操作ログデータを対象に収集するが。システムによってはこれに限られない。
【００３５】
ステップＳ８０２で、レコメンドサーバメイン制御部３３２は、ステップＳ８０１で収集した操作ログデータを記録している文書管理システムが、アイテムのＩＤからパスを取得する機能を有するか否かを、マッピング実行判断テーブル５０１から判断する。アイテムのパスを取得する機能を有する場合は、マッピング処理は行わず処理を終了する。一方、アイテムのパスを取得する機能を有しない場合は、ステップＳ８０３へ進み最終的にアイテムのＩＤとパスとの対応付けを行う。
【００３６】
ステップＳ８０３で、まずレコメンドサーバメイン制御部３３２は、操作ログデータの加工処理を行う。本加工処理の詳細は、図２９を参照し＜操作ログデータの加工処理＞で具体例を用いて後述するが、要するに収集した生の操作ログデータを次のステップＳ８０４の反映処理で処理しやすく、あるいは整合性の取れた処理とすべく実行する処理である。したがって、本実施例では、特定の操作ログに関して加工処理は実行するが、通常の操作では実行しない。ステップＳ８０４で、ステップＳ８０３で加工処理を行った操作ログデータをマッピングテーブル６０１に反映させる。本反映処理の詳細は、図２６を参照し＜マッピングテーブル６０１へのデータの反映処理＞で後述する。
【００３７】
本実施例のマッピング処理の概要は以上のとおりであるが、ここで、＜アイテムのＩＤとアイテムのパスとのマッピング処理＞の具体例を説明する。ステップＳ８０１で、図１の文書管理サーバＰＣ１０１およびＰＣ１０２から本処理をまだ行っていない操作ログデータを収集する。ステップＳ８０２で、マッピング実行判断テーブル５０１を参照し、操作ログデータを収集した文書管理サーバＰＣ１０１（パス取得機能あり）およびサーバＰＣ１０２（パス取得機能なし）がアイテムのＩＤからパスを取得する機能を有するか否か判定する。判定の結果、文書管理サーバＰＣ１０１（パス取得機能ありシステム）は機能を有しているため、本処理を終了する。一方、文書管理サーバＰＣ１０２（パス取得機能なしシステム）は機能を有しないため、ステップＳ８０３へ進み最終的にマッピング処理を行う。
【００３８】
ステップＳ８０３で、文書管理サーバＰＣ１０２（パス取得機能なしシステム）から収集した操作ログデータに対して、まず後述する＜操作ログデータの加工処理＞を行う。ステップＳ８０４で、ステップＳ８０３で加工した文書管理サーバＰＣ１０２（パス取得機能なし）から収集した操作ログデータに対し、後述する＜マッピングテーブル６０１へのデータの反映処理＞を行う。その結果、操作ログを前回収集した以降の操作を反映した、アイテムのＩＤとパスとの対応付けを取得する。これにより、最新のアイテムの状態に適合したマッピングテーブルを得ることができ、文書管理サーバＰＣ１０２（パス取得機能なしシステム）で管理されているアイテムに対しレコメンドしても、ユーザが容易に到達できるようになる。
【００３９】
＜マッピングテーブル６０１へのデータの反映処理＞
図２６を参照して、マッピングテーブル６０１への操作ログデータの反映の処理について説明する。ステップＳ９０１で、レコメンドサーバメイン制御部３３２は、古い操作ログデータから順番に、操作ログデータの各行に対してステップＳ９０２〜ステップＳ９２３の処理を繰り返し実行する。ステップＳ９０２で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータのいずれかの行の「データの種類」４１８からデータの種類を取得して、処理対象の操作ログデータの操作の対象がいずれ種類のアイテムであるかを判定する。本実施例では、文書およびフォルダに対する操作の操作ログデータの場合、ステップＳ９０３へ進み処理を続行する。文書でもフォルダでもないアイテムに対する操作の操作ログデータの場合、マッピング処理は行わずステップＳ９２４へ進んで本処理を終了する。
【００４０】
ステップＳ９０３で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「アイテムＩＤ」４１２からＩＤを取得する。ステップＳ９０４で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「操作時刻」４１６から操作時刻を取得する。ステップＳ９０５で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「操作内容」４１５から操作内容を取得して、何の操作についての操作ログデータであるかを判定する。操作内容が、移動あるいは名前変更であれば、ステップＳ９０６へ、削除であればステップＳ９０８へ、復元であればステップＳ９１０へ、およびコピーであればステップＳ９１２へ進む。その他の操作であれば、ステップＳ９１５へ進む。
【００４１】
ステップＳ９０６で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「イベント」４１７から変更後のアイテムのパスを取得する。操作内容が移動あるいは名前変更であるときは操作の結果パスが変更され、基本的に「イベント」４１７に変更後のアイテムのパスが記録されているので、先ずパスの変更情報を取得する。また、操作内容が、移動あるいは名前変更ということは操作後もアイテムは存在しているから、ステップＳ９０７で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータに記録されているアイテムは存在しているアイテムであると判定する。
【００４２】
ステップＳ９０８で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「アイテムパス」４１３から、アイテムのパスを取得する。操作内容が、削除であるから、ステップＳ９０９で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータに記録されているアイテムは削除されたアイテムであると判定する。
【００４３】
ステップＳ９１０で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「アイテムパス」４１３から、アイテムのパスを取得する。操作内容が、復元であるから、ステップＳ９１１で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータに記録されているアイテムは存在しているアイテムであると判定する。
【００４４】
ステップＳ９１２で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「アイテムパス」４１３から、アイテムのパスを取得する。ステップＳ９１３で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「イベント」４１７から、コピー先のアイテムのＩＤとアイテムのパスを取得する。操作内容がコピーであるときは操作の結果新たなアイテムとパスが生成され、基本的に「イベント」４１７に生成後のアイテムのＩＤおよびパスが記録されているので、先ずコピー先のＩＤおよびパスの情報を取得する。尚、コピー操作のログの場合、ステップＳ９０３で取得したアイテムのＩＤとステップＳ９１２で取得したアイテムのパスは、コピー元のアイテムのものである。ステップＳ９１４で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータに記録されているコピー元のアイテムとコピー先のアイテムはそれぞれ存在しているアイテムであると判定する。
【００４５】
ステップＳ９１５で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「アイテムパス」４１３から、アイテムのパスを取得する。ステップＳ９１６で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータに記録されているアイテムは存在しているアイテムであると判定する。
【００４６】
ステップＳ９１７で、レコメンドサーバメイン制御部３３２は、マッピングテーブル６０１内で、ステップＳ９０３で取得した「アイテムＩＤ」４１２と「アイテムＩＤ」６１２とが同一となるマッピングデータを検索する。ここで、ステップＳ９０５で取得した操作内容がコピー操作である場合は、コピー元、コピー先の両方のアイテムに関して検索を行う。検索した結果、処理対象の操作ログデータに記録されているアイテムのマッピングデータが、既にマッピングテーブル６０１に記録されている場合は、ステップＳ９１８へ進み更新処理を行う。記録されていない場合は、ステップＳ９１９へ進みデータの登録処理を行う。
【００４７】
ステップＳ９１８で、レコメンドサーバメイン制御部３３２は、ステップＳ９１７で検索されたマッピングデータに関して操作ログデータに対する処理で取得、判定した操作時刻をマッピングテーブル６０１の「操作時刻」６１４に反映させ更新する。同様に、アイテムのパス、状態を、マッピングテーブル６０１の「アイテムパス」６１２、「状態」６１３にそれぞれ反映させて更新する。一方、ステップＳ９１９で、レコメンドサーバメイン制御部３３２は、同様に取得、判定したアイテムのＩＤ、操作時刻、アイテムのパス、状態を有する新たにマッピングデータをマッピングテーブル６０１に登録する。
【００４８】
ステップＳ９２０で、レコメンドサーバメイン制御部３３２は、ステップＳ９０２で取得した処理対象の操作ログデータに記録されている「データの種類」４１８からフォルダに関する操作ログデータか、それとも文書に関する操作ログデータかを判定する。フォルダに関しての操作ログデータであれば、ステップＳ９２１へ進む。文書に関しての操作ログデータであれば、ステップＳ９２２へ進む。ステップＳ９２１で、レコメンドサーバメイン制御部３３２は、下位の階層構造であるサブアイテムのマッピングデータの更新処理を行う。詳細は、＜サブアイテムのマッピングデータの更新処理＞で後述する。ステップＳ９２２で、レコメンドサーバメイン制御部３３２は、マッピングテーブルに記録されているマッピングデータの整合性をとる処理を適用する。詳細は、＜マッピングテーブル６０１の整合性をとる処理＞で後述する。
【００４９】
ステップＳ９２３で、レコメンドサーバメイン制御部３３２は、本処理を行う操作ログデータがまだあるか否かを判定する。次の操作ログデータがまだあれば、次の操作ログデータを処理対象にして、ステップＳ９０２の処理を行う。一方、次の操作ログデータがなければ、本処理を終了する。
【００５０】
＜サブアイテムのマッピングデータの更新処理＞
図１０を参照して、マッピングテーブル６０１に記録されているサブアイテムのマッピングデータを更新する処理について説明する。ここで、「サブアイテム」とは、あるアイテム、通常はフォルダの下の階層に存在するアイテムを指すものとする。ただし、一時削除領域に存在するアイテムはサブアイテムには含まない。例えば、図１８のフォルダＣ“item5”のサブアイテムは、以下の４つのアイテムである。
・文書３“item6”
・文書４“item7”
・フォルダＤ“item8”
・文書１“item9”
【００５１】
ステップＳ１００１で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータに記録されているフォルダのサブアイテムの有無、および有る場合のサブアイテムのマッピングデータの更新の必要性を判定する。すなわち、一般に処理対象の操作ログデータに記録されているフォルダの操作を行うと、そのフォルダの各サブアイテムの状態やパスも変更され、マッピングデータを更新する必要が生じる可能性がある。サブアイテムの操作ログデータが記録されていれば上述のような処理により、最終的にサブアイテムに関するマッピングデータも更新される。しかし、親のアイテム（フォルダ）が操作され、そのサブアイテムも状態やパスに影響が出る場合でも、サブアイテム自体の操作ログが記録されないことがあるため、サブアイテムの操作ログデータが出力されているか否かを判定する。ここで、アイテムの中でもフォルダは、通常サブアイテムとして少なくとも文書などを有していると考えられるので、本実施例ではアイテムがフォルダであるときはサブアイテムも存在すると考えて処理するが、これに限られない。したがって、各サブアイテムの操作ログデータが出力されない場合は、ステップＳ１００２へ進み、サブアイテムのマッピングデータを更新する。一方、各サブアイテムの操作ログデータが出力される場合は、＜マッピングテーブル６０１へのデータの反映処理＞でサブアイテムの操作ログデータが処理対象のときに、ステップＳ９１８またはＳ９１９でマッピングデータを記録される。よって、各サブアイテムの操作ログデータが出力される場合は、独立したアイテムとして処理され、サブアイテムのマッピングデータを更新する必要がないため、ここで本処理を終了する。
【００５２】
本実施例では、フォルダの名前変更、削除、復元操作の場合、そのフォルダの各サブアイテムの操作ログデータは出力されないものとして説明するが、これに限られずシステムや操作内容に応じて決めることができる。ステップＳ１００２で、レコメンドサーバメイン制御部３３２は、処理対象、すなわちサブアイテムを有するアイテム（フォルダ）の操作ログデータから、「操作内容」４１５を取得して、何の操作についての操作ログデータであるかを判定する。名前変更操作であればステップ１００３へ、削除操作であればステップＳ１００９へ、および復元操作であればステップＳ１０１４へそれぞれ進む。
【００５３】
ステップＳ１００３で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの更新前の「アイテムパス」４１３のパスを示す文字列を、マッピングテーブル６０１の「アイテムパス」６１２の先頭に含むマッピングデータで前方一致検索する。すなわち、この時点でサブアイテムのパスについてのマッピング情報は更新されていないので、対象のフォルダの更新前のパスを使用する。対象のフォルダの更新前のパスを使用して前方一致で検索することにより、処理対象のフォルダのパスの下位に有るアイテム、つまり対象のフォルダを親に持つサブアイテムを抽出することができる。さらに、条件に一致したマッピングデータの中で、「状態」６１３が“存在している”となっているマッピングデータを絞り込む。これにより、マッピングテーブル６０１に記録されている名前変更されたフォルダのサブアイテムのマッピングデータを検索する。
【００５４】
ステップＳ１００４で、レコメンドサーバメイン制御部３３２は、ステップＳ１００３で検索した結果、名前変更されたフォルダのサブアイテムのマッピングデータが抽出されたか否か、すなわちマッピングテーブル６０１に記録されているか否かを判定する。記録されていれば、ステップＳ１００５へ進みサブアイテムに対する処理を実行する。記録されていなければ、名前変更されたフォルダのサブアイテムが存在しないため、サブアイテムのマッピングデータを更新する必要がないので、本処理を終了する。
【００５５】
ステップＳ１００５で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「アイテムパス」４１３から取得した名前変更前のフォルダのパスを示す文字列を取得する。そして、ステップＳ１００３で検索した結果得られた各サブアイテムのマッピングデータの「アイテムパス」６１２の、名前変更前のフォルダのパスを示す文字列部分を、ステップＳ９０６で取得した名前変更後のフォルダのパスに置き換える。これにより名前変更されたフォルダの各サブアイテムのマッピングデータの「アイテムパス」６１２を、フォルダの名前変更が行われた後のパスに更新することができる。ステップＳ１００６で、レコメンドサーバメイン制御部３３２は、各サブアイテムの「状態」６１３を“存在している”に更新する。
【００５６】
ステップＳ１００７で、レコメンドサーバメイン制御部３３２は、各サブアイテムの「削除フォルダＩＤ」６１５を、“”（値なし）に更新する。ステップＳ１００８で、レコメンドサーバメイン制御部３３２は、各サブアイテムの「操作時刻」６１４を、Ｓ９０４で取得した処理対象の操作ログデータの「操作時刻」４１６に更新する。
【００５７】
次に削除操作の場合のサブアイテムに関する処理を説明する。ステップＳ１００９で、レコメンドサーバメイン制御部３３２は、マッピングテーブル６０１に記録されている削除されたフォルダのサブアイテムのマッピングデータをステップＳ１００３と同様に検索する。すなわち、処理対象の操作ログデータの上述の更新処理前の「アイテムパス」４１３のフォルダのパスを示す文字列を、マッピングテーブル６０１の「アイテムパス」６１２の先頭に含むマッピングデータを前方一致検索する。ステップＳ１００４と同様に、ステップＳ１０１０で、レコメンドサーバメイン制御部３３２は、ステップＳ１００９で検索した結果、削除されたフォルダのサブアイテムのマッピングデータがマッピングテーブル６０１に記録されているか否かを判定する。記録されていれば、ステップＳ１０１１へ進みサブアイテムに対する処理を実行する。記録されていなければ、削除されたフォルダのサブアイテムが存在しないため、サブアイテムのマッピングデータを更新する必要がないので本処理を終了する。ステップＳ１０１１で、レコメンドサーバメイン制御部３３２は、各サブアイテムの「状態」６１３を“削除されている”に更新する。
【００５８】
ステップＳ１０１２で、レコメンドサーバメイン制御部３３２は、各サブアイテムの「削除フォルダＩＤ」６１５を、処理対象の操作ログデータの「アイテムＩＤ」４１２、つまり削除操作の行われた親のフォルダのＩＤに更新する。ステップＳ１０１３で、レコメンドサーバメイン制御部３３２は、各サブアイテムの「操作時刻」６１４を、Ｓ９０４で取得した処理対象の操作ログデータの「操作時刻」４１６に更新する。
【００５９】
次に復元操作の場合のサブアイテムに関する処理を説明する。ステップＳ１０１４で、レコメンドサーバメイン制御部３３２は、処理対象の操作ログデータの「アイテムＩＤ」４１２が示す復元されたフォルダのＩＤが「削除フォルダＩＤ」６１５に記録されたマッピングデータを検索する。「削除フォルダＩＤ」６１５には、削除の経緯、すなわちいずれのアイテムの削除により削除されることとなったかを、原因となったアイテムのＩＤを記録することにより示している。したがって、本検索により「削除フォルダＩＤ」６１５には親の処理対象となるアイテムのＩＤが記録されているため、マッピングテーブル６０１に記録されている復元されたフォルダのサブアイテムのマッピングデータを検索することができる。
【００６０】
ステップＳ１０１５で、レコメンドサーバメイン制御部３３２は、ステップＳ１０１４で検索した結果、上述の処理と同様に、復元されたフォルダのサブアイテムのマッピングデータがマッピングテーブル６０１に記録されているか否かを判定する。記録されていれば、ステップＳ１０１６へ進みサブアイテムに対する処理を実行する。記録されていなければ、復元されたフォルダのサブアイテムが存在しないため、サブアイテムのマッピングデータを更新する必要がないので本処理を終了する。ステップＳ１０１６で、レコメンドサーバメイン制御部３３２は、各サブアイテムの「状態」６１３を“存在している”に更新する。
【００６１】
ステップＳ１０１７で、レコメンドサーバメイン制御部３３２は、各サブアイテムの「削除フォルダＩＤ」６１５を、“”（値なし）に更新する。ステップＳ１０１８で、レコメンドサーバメイン制御部３３２は、各サブアイテムの「操作時刻」６１４を、Ｓ９０４で取得した処理対象の操作ログデータの「操作時刻」４１６に更新する。
＜マッピングテーブル６０１の整合性をとる処理＞
図２８を参照して、本実施例におけるマッピングテーブル６０１に記録されているマッピングデータの整合性をとる処理について説明する。本処理は、アイテムの操作を行った結果、他のアイテムのＩＤ、パスあるいは状態が変化しているにもかかわらず、他のアイテムの操作ログがないため、最終的に更新されたマッピングデータ等の整合がとれなくなる事態を回避するためのものである。例えば、アイテムの移動先に別のアイテムが存在したため上書き移動を行った場合、上書きされた方のアイテムについては当然操作ログデータが出力されない。このような場合、本実施例のような操作ログに基づいた更新を行うと、マッピングテーブル６０１の整合性がとれなくなるが、このような事態を回避するために、操作ログに現れない変化を考慮して本処理を実行する。ステップＳ１１０１で、レコメンドサーバメイン制御部３３２は、ステップＳ９１８あるいはステップＳ９１９でマッピングテーブルに記録した「アイテムパス」６１２を取得する。取得した「アイテムパス」６１２が、別のアイテムのマッピングデータの「アイテムパス」６１２に記録されたパスと同じであり、かつ「状態」６１３が“存在している”であるアイテムが記録されているか否かを検索する。記録されていれば、ステップＳ１００２へ進み整合処理を行い、そうでなければ、本処理を終了する。
【００６２】
ステップＳ１１０２で、レコメンドサーバメイン制御部３３２は、ステップＳ１１０１で検索した別のアイテムのマッピングデータの「状態」６１３を“削除されている”に、「操作時刻」６１４をステップＳ９１９で取得した「操作時刻」４１６に変更する。以上により、上書きしたはずのアイテムが存在するという不整合が回避される。
【００６３】
＜具体例＞
マッピングテーブル６０１へのデータの反映の処理の具体例を、図４ないし２４を参照して説明する。図４に示す操作ログデータ４２１〜４２９は、図１８に示す構成でアイテムを新規登録した際に出力される操作ログデータである。まず、操作ログデータ４２１〜４２９をマッピングテーブル６０１へ反映する場合について説明する。尚、マッピングテーブル６０１にはデータはまだ記録されていない状態なので、図示しない。図２６のステップＳ９０１で、操作ログデータ４２１〜４２９について古い操作ログデータから順番にマッピングデータへの反映処理を実行していく。最初は、操作ログデータ４２１に示す操作に対して処理を行う。
【００６４】
ステップＳ９０２で、操作ログデータ４２１は「データの種類」４１８の情報から“フォルダ”のログであると判定され、マッピング処理を行うこととする。ステップＳ９０３〜Ｓ９０４で、操作ログデータ４２１の「アイテムＩＤ」４１２と「操作時刻」４１６とから、それぞれ“item1”、“2011/12/11 08:09:10”が取得される。ステップＳ９０５で、「操作内容」４１５から“新規登録”が取得される。“新規登録”は、その他の種類のログであるため、ステップＳ９１５の処理が行われる。
【００６５】
ステップＳ９１５で、「アイテムパス」から“/フォルダＡ”が取得される。アイテム“item1”は“新規登録”されたアイテムであると判定されたので、ステップＳ９１６で、アイテム“item1”の状態は“存在している”とする。ステップＳ９１７で、アイテム“item1”のマッピングデータはマッピングテーブル６０１に登録されていないため、ステップＳ９１９へ進み登録を行う。ステップＳ９１９で、操作ログデータ４２１から取得、判定された情報をマッピングデータ６２１としてマッピングテーブル６０１に登録する。すなわち、図１２に示すマッピングデータ６２１の「アイテムＩＤ」６１１には“item1”および「アイテムパス」６１２には“/フォルダＡ”を記録する。また、「状態」６１３には“存在している”および「操作時刻」６１４には“2011/12/11 08:09:10”を記録する。
【００６６】
ステップＳ９２０で、操作ログデータ４２１は“フォルダ”の操作ログデータであるため、ステップＳ９２１のサブアイテム処理を行うと判定される。ステップＳ９２１の処理の詳細は図２７に示されており、図２７を参照すると、ステップＳ１００１で、操作の内容を判断する。操作ログデータ４２１は“フォルダ”であるアイテム“item1”の“新規登録”の操作ログデータであり、同時に新規登録されたサブアイテムの操作ログデータも出力されるのでサブアイテムのマッピングデータの更新は不要である。そのため、サブアイテムのデータをマッピングテーブルに反映する処理については、ここでは行わずサブアイテムの操作ログデータのマッピング処理にて行う。
【００６７】
ステップＳ９２２で、＜マッピングテーブル６０１の整合性をとる処理＞を行う。図２８に示すステップＳ１１０１を参照すると、対象となる操作は新規登録である。このため、操作ログデータ４２１の「アイテムパス」４１３の“/フォルダＡ”を「アイテムパス」６１２にもつアイテム“item1”以外のマッピングデータはマッピングテーブルには記録されていない。したがって、本処理を終了する。図４の操作ログデータ４２１に関する処理は以上で終了する。その後、操作ログデータ４２２〜４２９を各々操作ログデータ４２１に対してしたのと同様に処理を行う。最終的に操作ログデータ４２１〜４２９に関する処理を全て実行した結果を反映させたマッピングテーブル６０１を図１２に示す。
【００６８】
次に、図５に示す操作ログデータ４３０〜４３１に示す操作をマッピングテーブル６０１に反映させる処理について説明する。操作ログデータ４３０〜４３１は、図１９に示す操作をした際に出力される操作ログデータである。尚、処理開始前のマッピングテーブル６０１の状態は、上述の処理で新規登録した場合のマッピングテーブルである図１２の状態にあるものとする。また、マッピング処理済みの操作ログデータと同様の処理内容については簡略化する。最初に、操作ログデータ４３０に示す操作に対する処理を実行する。
【００６９】
図２６に示すステップＳ９０５で、図５に示す操作ログデータ４３０の「操作内容」４１５から“移動”が取得されるため、次にステップＳ９０６の処理を行う。ステップＳ９０６で、“移動”操作はパスが変更される操作であるため、「イベント」４１７から変更後のパスを取得する。アイテムのパス以外の情報は不要なため、<NewName>タグを削除して、変更後のアイテムのパス“/フォルダＡ/文書１“を取得する。ステップＳ９０７で、アイテム“item3”の状態は“存在している”と判定する。
【００７０】
ステップＳ９１７で、アイテム“item3”のデータは既にマッピングテーブル６０１にマッピングデータ６２３として登録されているため、ステップＳ９１８へ進み更新処理を実行する。ステップＳ９１８で、“item3”のマッピングデータであるマッピングデータ６２３を、操作ログデータ４３０から取得、判定した情報で更新する。すなわち、マッピングデータ６２３の「アイテムパス」６１２には“/フォルダＡ/文書１“、「状態」６１３には”存在している“、「操作時刻」６１４には”2011/12/11 08:12:31“を記録する。
【００７１】
次に、操作ログデータ４３１に示す操作の処理を実行する。ステップＳ９０５で、操作ログデータ４３１の「操作内容」４１５が“コピー”であるため、次にステップＳ９１２の処理を行う。ステップＳ９１２で、操作ログデータ４３１の「アイテムパス」４１３からアイテムのパス“/フォルダＡ/フォルダＢ/文書２”を取得する。ステップＳ９１３で、操作ログデータ４３１の「イベント」４１７からコピー先のアイテムのＩＤ“item10”、および、コピー先のアイテムのパス“/フォルダＡ/フォルダＢ/文書２コピー”を取得する。ステップＳ９１４で、コピー元のアイテム“item4”とコピー先のアイテム”item10”の状態は両方とも“存在している”と判定される。
【００７２】
ステップＳ９１７で、コピー元のアイテム“item4”のデータは既にマッピングテーブル６０１にマッピングデータ６２４として登録されているため、ステップＳ９１８へ進み更新処理を実行する。一方、コピー先のアイテム”item10”のデータは、まだマッピングテーブル６０１に登録されていないため、ステップＳ９１９へ進み登録処理を実行する。ステップＳ９１８で、“item4”のマッピングデータ６２４を、操作ログデータ４３０から取得、判定したコピー元のアイテム“item4”の情報で更新する。マッピングデータ６２４の「アイテムパス」６１２には“/フォルダＡ/フォルダＢ/文書２“、「状態」６１３には”存在している“、「操作時刻」６１４には” 2011/12/11 08:34:01 “をそれざおれ記録する。
【００７３】
ステップＳ９１９で、操作ログデータ４３１から取得、判定されたコピー先のアイテム“item10”の情報をマッピングデータ６３０としてマッピングテーブル６０１に登録する。マッピングデータ６３０の「アイテムＩＤ」６１１には“item10”および「アイテムパス」６１２には“/フォルダＡ/フォルダＢ/文書２コピー”を記録する。また、「状態」６１３には“存在している”および「操作時刻」６１４には“2011/12/11 08:34:01”を記録する。
【００７４】
以上の処理によって、操作ログデータ４３０〜４３１をマッピングテーブル６０１に反映させた状態を図１３に示す。
【００７５】
次に、図６に示す操作ログデータ４３２〜４３４に示す操作をマッピングテーブル６０１に反映させる処理について説明する。操作ログデータ４３２〜４３４は、図２０に示す操作が行われた際に出力される操作ログデータである。尚、処理開始前のマッピングテーブル６０１は、図１３に示す状態であるものとする。また、マッピング処理済みの操作ログデータと同様の処理内容については必要な部分だけ説明する。最初に、操作ログデータ４３２に示す操作に対する処理を実行する。
【００７６】
ステップＳ９０５で、操作ログデータ４３２の「操作内容」４１５は“削除”であるため、次にステップＳ９０８の処理を実行し、アイテムパス“/フォルダＡ/フォルダＢ/文書２”を取得する。ステップＳ９０９で、操作内容が“削除”であるためアイテム“item4”が一時削除領域にあり、アイテム“item4”の状態は“削除されている”と判定される。ステップＳ９１７で、アイテム“item4”のデータは既にマッピングデータ６２４としてマッピングテーブル６０１に登録されているため、ステップＳ９１８へ進み更新処理を行う。
【００７７】
ステップＳ９１８で、図１４に示すようにマッピングデータ６２４が、操作ログデータ４３２から取得、判定したアイテム“item4”の情報で更新される。図１４のマッピングデータ６２４の、「アイテムパス」６１２には“/フォルダＡ/フォルダＢ/文書２“、「状態」６１３には”削除されている“および「操作時刻」６１４には”2011/12/11 08:55:01 “がそれぞれ記録される。
【００７８】
次に、図６に示す操作ログデータ４３３に示す操作を対象として処理する。ここで、操作ログデータ４３３は、図１０に実際に実行された操作を示す操作ログデータ４３３１および４３３２に対し、図２９を参照して後述する＜操作ログデータの加工処理＞で加工した操作ログデータである。したがって、ここでは加工済みの操作ログデータ４３３を用いて説明する。ステップＳ９０５で、操作ログデータ４３３の「操作内容」４１５は“名前変更”なのでステップＳ９０６の処理を実行する。ステップＳ９０６で、操作内容である“名前変更”の操作はアイテムのパスが変更される操作であるため、図６の操作ログデータ４３３の「イベント」４１７から変更後のアイテムのパスを取得する。アイテムのパス以外の情報は不要なため、<NewName>タグは削除されて、変更後のアイテムのパス“/フォルダＡ/フォルダＢ２“が取得される。
【００７９】
ステップＳ９０７で、アイテム“item2”の状態は“存在している”と判定される。ステップＳ９１７で、アイテム“item2”のデータは既にマッピングテーブル６０１にマッピングデータ６２２として登録されているため、ステップＳ９１８へ進み更新処理を実行する。ステップＳ９１８で、図１４に示すようにマッピングデータ６２２を、操作ログデータ４３３から取得、判定されたアイテム“item2”の情報で更新する。図１４に示すマッピングデータ６２２の「アイテムパス」６１２には“/フォルダＡ/フォルダＢ２“、「状態」６１３には”存在している“、「操作時刻」６１４には”2011/12/11 09:00:11“を記録する。
【００８０】
ステップＳ９２０で、操作ログデータ４３３は「データの種類」４１８から“フォルダ”の操作ログデータであると判定されるためステップＳ９２１へ進み、＜サブアイテムのマッピングデータの更新処理＞を実行する。ここで、上述のとおり、本実施例では、フォルダの名前変更、削除、復元操作の場合、そのフォルダの各サブアイテムの操作ログデータは出力されない。したがって、図６の操作ログデータ４３３の内容は“フォルダ”の“名前変更”であるため、図２７のステップＳ１００１で、サブアイテムに関する処理が必要と判定され、ステップＳ１００２へ進み処理を実行する。すなわち、一般に“フォルダ”の“名前変更”という操作では、そのフォルダの各サブアイテムの名前変更の操作ログデータは出力されないので、各サブアイテムのマッピングデータを更新する必要があるのである。
【００８１】
ステップＳ１００２で、図６の操作ログデータ４３３は“フォルダ”の“名前変更”の操作ログデータであるため、ステップＳ１００３へ進む。ステップＳ１００３で、サブアイテムに関する更新処理の実行前のマッピングテーブルである図１３のマッピングテーブル６０１に記録されている、フォルダ“item2”（“/フォルダＡ/フォルダＢ”）のサブアイテムのマッピングデータを前方一致検索する。すなわち、更新前の親のフォルダのパスを上位に有するサブアイテムを検索する。その結果、以下の１つのアイテムがサブアイテムと判定される。
・文書”item10”（“/フォルダＡ/フォルダＢ/文書２コピー”）
ステップＳ１００４で、ステップＳ１００３で検索した結果、サブアイテムがあるため、ステップＳ１００５へ進みパスの更新処理を実行する。ステップＳ１００５で、サブアイテム“item10”のマッピングデータ６３０の「アイテムパス」６１２を、親のフォルダの更新されたパスを有する“/フォルダＡ/フォルダＢ２/文書２コピー”に更新する。ステップＳ１００６で、サブアイテム“item10”のマッピングデータ６３０の「状態」６１３を“存在している”に更新する。ステップＳ１００７で、サブアイテム“item10”のマッピングデータ６３０の「操作時刻」６１４を、図６に示す操作ログデータ４３３の「操作時刻」４１６に更新する。すなわち、名前変更されたフォルダの操作時刻である“2011/12/11 09:00:11”に更新する。この結果、図１４のマッピングデータ６３０に示すように、サブアイテム“item10”のマッピングデータが更新される。
【００８２】
次に、図６の操作ログデータ４３４に示す操作を対象として処理を実行する。操作内容が操作ログデータ４３２と同じ削除であるため、同様に処理を行い、マッピングデータ６２６を、操作ログデータ４３４から取得、判定したアイテム“item6”の情報により更新する。図１４に示すように、マッピングデータ６２６の「アイテムパス」６１２には“/フォルダＡ/フォルダＣ/文書３“、「状態」６１３には”削除されている“、「操作時刻」６１４には”2011/12/11 09:08:56 “を記録する。以上の処理によって、図６の操作ログデータ４３２〜４３４に示す操作により更新されたマッピングテーブル６０１を図１４に示す。
【００８３】
次に、図７に示す操作ログデータ４３５〜４３６に示す操作をマッピングテーブル６０１に反映させる処理について説明する。操作ログデータ４３５は、図２１に示す操作が行われた際に出力される操作ログデータである。一方、操作ログデータ４３６は、図２２に示す操作が行われた際に出力される操作ログデータである。尚、処理開始前、すなわち操作ログデータ４３５〜４３６に示す操作による更新前のマッピングテーブル６０１を、図１４とする。また、マッピング処理済みの操作ログデータと同様の処理内容については必要な部分のみ触れることとする。最初に、図７に示す操作ログデータ４３５に示す操作を対象として処理を実行する。
【００８４】
対象となる操作ログデータ４３５の操作は、図４に示す操作ログデータ４２１と同じ新規登録なので、同様に処理を行い、図１５に示すようなマッピングデータ６３１を、操作ログデータ４３５から取得、判定したアイテム“item11”の情報で新たに記録する。マッピングデータ６３１の「アイテムパス」６１２には“/フォルダＡ/フォルダＣ/文書３“、「状態」６１３には”存在している“、「操作時刻」６１４には”2011/12/11 09:10:00“を記録する。
【００８５】
次に、操作ログデータ４３６に示す操作を対象に処理を実行する。ステップＳ９０５で、図７に示す操作ログデータ４３６の「操作内容」４１５は“削除”なので、次にステップＳ９０８に進み削除の処理を実行する。ステップＳ９０８で、図７に示す操作ログデータ４３６の「アイテムパス」４１３から“/フォルダＡ/フォルダＣ”を取得する。ステップＳ９０９で、操作ログデータ４３６の“削除”操作によりアイテム“item5”は一時削除領域にある状態であるため、アイテム“item5”の状態は“削除されている”と判定される。ステップＳ９１７で、図１４に示すように、アイテム“item5”のデータは既にマッピングテーブル６０１にマッピングデータ６２５として登録されているため、ステップＳ９１８へ進み更新処理を実行する。ステップＳ９１８で、マッピングデータ６２５を、操作ログデータ４３６から取得、判定したアイテム“item5”の情報で更新する。その結果、図１５に示すように、マッピングデータ６２５の「アイテムパス」６１２には“/フォルダＡ/フォルダＣ“、「状態」６１３には”削除されている“、「操作時刻」６１４には”2011/12/11 09:13:20“を記録する。
【００８６】
ステップＳ９２０で、図７に示す操作ログデータ４３６の「データの種類」４１８は“フォルダ”なので、フォルダに対する操作ログデータであると判定し、ステップＳ９２１へ進んで、＜サブアイテムのマッピングデータの更新処理＞を実行する。図２７のステップＳ１００１で、操作ログデータ４３６は“フォルダ”を“削除”する操作の操作ログデータであるため、そのフォルダの各サブアイテムも削除されるが、操作ログデータとしてはサブアイテムのものは出力されない。よって、上述のように、各サブアイテムのマッピングデータを更新する必要があるので、ステップＳ１００２へ進みサブアイテムに関連する処理を実行する。ステップＳ１００２で、操作ログデータ４３６の操作内容４１５は“削除”であるため、ステップＳ１００９へ進んでサブアイテムを検索する。ステップＳ１００９で、マッピングテーブル６０１に記録されている、フォルダ“item5”（“/フォルダＡ/フォルダＣ”）のサブアイテムのマッピングデータを前方一致検索する。ここで使用するマッピングテーブル６０１は、基本的に図１４に示すものに、上述の操作ログデータ４３５の操作である新規登録の結果新たに登録されたマッピングデータ６３１を追加したものとなる。したがって、“/フォルダＡ/フォルダＣ”をキーに前方一致検索を行うと、図１４のマッピングテーブル６０１で検索されるサブアイテムに加え、新規登録されたサブアイテムが得られる。すなわち、以下の４つのアイテムがサブアイテムと判定される。
・文書”item11”（“/フォルダＡ/フォルダＣ/文書３”）
・文書”item7”（“/フォルダＡ/フォルダＣ/文書４”）
・フォルダ”item8”（“/フォルダＡ/フォルダＣ/フォルダＤ”）
・文書”item9”（“/フォルダＡ/フォルダＣ/フォルダＤ/文書１”）
【００８７】
ステップＳ１０１０で、ステップＳ１００９で検索した結果、サブアイテムがあるため、ステップＳ１０１１へ進み、サブアイテムの更新処理を実行する。ステップＳ１０１１で、ステップＳ１００９で検索された４つのサブアイテムのマッピングデータの各々の「状態」６１３を“削除されている”に変更する。ステップＳ１０１２で、上記４つのサブアイテムのマッピングデータの「削除フォルダＩＤ」６１５を、図７に示す操作ログデータ４３６の「アイテムＩＤ」４１２のＩＤ、すなわち削除されたフォルダのＩＤである“item5”に変更する。
【００８８】
ステップＳ１０１３で、４つのサブアイテムのマッピングデータの「操作時刻」６１４を、操作ログデータ４３６の「操作時刻」４１６の時刻、すなわち削除されたフォルダの操作時刻である“2011/12/11 09:13:20”に更新される。以上の処理によって、図７に示す操作ログデータ４３５〜４３６を反映させたマッピングテーブル６０１を図１５に示す。なお、操作ログデータ４３５により文書”item11”（“/フォルダＡ/フォルダＣ/文書３”）が新規登録された時点で、その「操作時刻」６１４には”2011/12/11 09:10:00“を一旦記録する。その後、操作ログデータ４３６の示す操作により変更する。すなわち、その後、時刻2011/12/11 09:13:20に削除操作が実行される。このため、図１５に示すように”item11”（“/フォルダＡ/フォルダＣ/文書３”）の「操作時刻」６１４には、他のサブアイテムと同じ“2011/12/11 09:13:20”を記録するのである。
【００８９】
次に、図８に示す操作ログデータ４３７の示す操作をマッピングテーブル６０１に反映させる処理について説明する。操作ログデータ４３７は、図２３に示す操作が行われた際に出力される操作ログデータである。尚、処理開始前のマッピングテーブル６０１は、図１５であるものとする。また、マッピング処理済みの操作ログデータと同様の処理内容については必要な範囲のみ触れる。ステップＳ９０５で、図８の操作ログデータ４３７の「操作内容」４１５は“復元”なので、ステップＳ９１０に進んでのアイテムのパスを取得する処理が行われる。
【００９０】
ステップＳ９１０で、操作ログデータ４３７の「アイテムパス」４１３から“/フォルダＡ/フォルダＣ”を取得する。ステップＳ９１１で、“復元”操作によりアイテム“item5”が一時削除領域から除かれ復元ざれるので、アイテム“item5”の状態を“存在している”に変更する。ステップＳ９１７で、アイテム“item5”のデータは既にマッピングテーブル６０１にマッピングデータ６２５として登録されているため、ステップＳ９１８へ進んで更新処理を実行する。ステップＳ９１８で、マッピングデータ６２５を、図８の操作ログデータ４３７から取得、判定したアイテム“item5”の情報で更新する。すなわち、マッピングデータ６２５の「アイテムパス」６１２には“/フォルダＡ/フォルダＣ“、「状態」６１３には”存在している“、「操作時刻」６１４には”2011/12/11 09:13:22“を記録する。
【００９１】
ステップＳ９２０で、操作ログデータ４３７は、「データの種類」４１８から“フォルダ”の操作ログデータであると判定されるため、ステップＳ９２１へ進んで、＜サブアイテムのマッピングデータの更新処理＞を実行する。すなわち、図２７のステップＳ１００１で、図８のマッピングデータ６２５の操作ログデータ４３７は“復元”なので、そのフォルダの各サブアイテムの復元の操作ログデータは出力されない。よって、ステップＳ１００２へ進んで、各サブアイテムのマッピングデータを更新するための処理を実行する。ステップＳ１００２で、操作ログデータ４３７の操作内容４１５は“フォルダ”なので、ステップＳ１０１４へ進んでサブアイテムの検索を実行する。ステップＳ１０１４で、フォルダ“item5”の復元により同時に復元されるフォルダ“item5”のサブアイテムを検索する。具体的には、復元すべきアイテムのマッピングデータの削除フォルダＩＤ６１５に対象となるアイテム、すなわち復元するアイテムのＩＤが記録されたサブアイテムが復元すべきサブアイテムである。したがって、更新前のマッピングテーブルである図１５のマッピングテーブル６０１に記録されている「削除フォルダＩＤ」６１５が“item5”であるマッピングデータを検索し、以下の４つのアイテムをサブアイテムとして取得する。
・文書”item11”（“/フォルダＡ/フォルダＣ/文書３”）
・文書”item7”（“/フォルダＡ/フォルダＣ/文書４”）
・フォルダ”item8”（“/フォルダＡ/フォルダＣ/フォルダＤ”）
・文書”item9”（“/フォルダＡ/フォルダＣ/フォルダＤ/文書１”）
【００９２】
ステップＳ１０１５で、上述のとおりサブアイテムがあるため、ステップＳ１０１６へ進んでサブアイテム関連の処理を実行する。ステップＳ１０１６で、上記で得られた４つのサブアイテムのマッピングデータの「状態」６１３を“存在している”に更新する。ステップＳ１０１７で、この４つのサブアイテムのマッピングデータ６２７ないし６２９および６３１の「削除フォルダＩＤ」６１５を、“”（値なし）に変更する。
【００９３】
ステップＳ１０１８で、上記得られた４つのサブアイテムのマッピングデータの「操作時刻」６１４を、図８の操作ログデータ４３７の「操作時刻」４１６、すなわち復元されたフォルダの操作時刻である“2011/12/11 09:13:22”に変更する。以上の処理によって、操作ログデータ４３７を反映させたマッピングテーブル６０１を図１６に示す。
【００９４】
次に、図９に示す操作ログデータ４３８により示す操作をマッピングテーブル６０１に反映させる処理について説明する。図９の操作ログデータ４３８は、図２４に示すように文書“item9”（“/フォルダＡ/フォルダＣ/フォルダＤ/文書１”）の/フォルダＡ直下への移動が行われた際に出力された操作ログデータである。しかし、上述した操作ログデータ４３０の移動とは異なり、移動先に同名の文書”item3”（“/フォルダＡ/文書１”）がすでに存在しているため、上書きを伴う文書の移動である。ここで、上書きされたアイテムの操作ログデータが出力されない場合、マッピングテーブルの「アイテムパス」６１２が“/フォルダＡ/文書１“、かつ「状態」６１３が”存在している“であるマッピングデータが複数存在することになる。すなわち、上書きする側新たなパスを有するアイテムとして更新されるが、上書きされて存在しないはずのアイテムが削除されずに共存することとなる。したがって、このような上書きの移動が行われた場合、上書きされた文書”item3”のマッピングデータ６２３の「状態」６１３を”削除されている“にする必要がある。このような処理をせずに、文書”item3”のマッピングデータ６２３の「状態」６１３が”存在している“状態のままでは、マッピングテーブルの整合性がとれなくなり、正しくレコメンドを行えない場合が発生してしまう。このため、＜マッピングテーブル６０１の整合性をとる処理＞を実行して、マッピングテーブルの整合性をとる必要がある。
【００９５】
次に、＜マッピングテーブル６０１の整合性をとる処理＞を説明する。ここで、処理開始前のマッピングテーブル６０１は、図１６であるものとする。また、マッピング処理済みの操作ログデータと同様の処理内容については必要な部分のみ触れる。上述の操作ログデータ４３０の移動の操作の場合と同様の処理を行い、マッピングデータ６２９を、操作ログデータ４３８から取得、判定したアイテム“item9”の情報で記録する。マッピングデータ６２９の「アイテムパス」６１２には“/フォルダＡ/文書１“、「状態」６１３には”存在している“、「操作時刻」６１４には” 2011/12/11 09:25:35 “をそれぞれ記録する。
【００９６】
ステップＳ９２２で、レコメンドサーバメイン制御部３３２は、図２８のフローチャートで示す＜マッピングテーブル６０１の整合性をとる処理＞を実行する。すなわち、まずステップＳ１１０１を実行する。マッピングデータ６２９の「アイテムパス」６１２が“/フォルダＡ/文書１“、かつ「状態」６１３が”存在している“であるitem9とは別のアイテム”item3“のマッピングデータ６２３が記録されている。このため、Ｓ１１０１の判定に従って、ステップＳ１１０２へ進む。
【００９７】
ステップＳ１１０２で、マッピングデータ６２３の「状態」６１３を“削除されている”に、「操作時刻」６１４を“item9”を移動した時刻である“2011/12/11 09:25:35”に変更する。なお、このマッピングデータ６２９に対する処理は、上書き移動であるため、本整合性をとる処理について具体的に説明したが、通常は他の操作に関しても、図２８のフローチャートが示す処理を実行する。結果的に、上書き移動の操作に関する操作データの反映処理以外は、整合処理は行われない。以上の処理によって、操作ログデータ４３８を反映させたマッピングテーブル６０１を図１７に示す。
【００９８】
＜操作ログデータの加工処理＞
図１２を参照して、本実施例における操作ログデータの加工処理について説明する。ここでは、フォルダの名前変更操作を行った結果、実際には図１０のような２つの操作ログデータ４３３１および４３３２が出力されたものとする。本実施例で通常は、操作ログデータから操作を反映したマッピングデータを生成あるいは更新する。しかし、得られた操作ログデータでそのまま1行1行＜マッピングテーブル６０１へのデータの反映処理＞を行ったのでは、マッピングテーブル６０１の整合性がとれなくなる場合がある。例えば、操作ログデータ４３３２が示すアイテム“item2”は、実際は“フォルダ”であるが、“文書”の“移動”操作の操作ログデータとして出力されている。フォルダ“item2”がサブアイテムを有する場合、＜サブアイテムのマッピングデータの更新処理＞が行われず、マッピングテーブル６０１の整合性がとれなくなってしまう。
【００９９】
そのため、本処理を行い、２つの操作ログデータを、１つのフォルダの名前変更の操作ログデータに加工して、＜マッピングテーブル６０１へのデータの反映処理＞および＜サブアイテムのマッピングデータの更新処理＞を実行させるようにする。ステップ図２９のＳ１２０１で、レコメンドサーバメイン制御部３３２は、操作内容が移動の操作ログデータを検索する。ステップＳ１２０２で、レコメンドサーバメイン制御部３３２は、ステップＳ１２０１で検索して得られた操作内容が移動の操作ログデータの各々に対して、ステップＳ１２０３〜ステップＳ１２０５の処理を実行する。
【０１００】
図２９のステップＳ１２０３で、レコメンドサーバメイン制御部３３２は、処理対象の移動の操作ログデータの前に出力されている操作ログデータが本処理の条件に合致するか判定する。すなわち、検索された操作ログデータと、その直前の操作ログデータとで「アイテムＩＤ」４１２、「アイテムパス」４１３および「操作ユーザ」４１４が同一であるか否かを判定する。さらに、前の操作ログデータの「データの種類」４１８が“フォルダ”、「操作内容」４１５が“更新”であるか否かを判定する。全ての条件を満たす場合は、処理対象の移動の操作ログデータと、その前に出力されているフォルダの更新の操作ログデータとが、フォルダの名前変更操作により出力されたものであると判定し、ステップＳ１２０４へ進んで加工処理を実行する。いずれかの条件を満たさない場合は、単に文書の移動の操作ログデータであると判定し、ステップＳ１２０５へ進み、処理対象の操作ログデータの加工は行わない。
【０１０１】
ステップＳ１２０４で、レコメンドサーバメイン制御部３３２は、ステップＳ１２０４で判定した２つの操作ログデータをフォルダの名前変更の操作ログデータに加工する。すなわち、操作内容が移動であると検索された操作ログデータの直前の操作ログデータを破棄する等、本実施例の処理に使用しないようにして、対象の操作ログデータをそのアイテムＩＤを有する名前変更の操作ログデータに加工する。具体的には、加工された操作ログデータの「操作内容」４１５を“名前変更”に、「データの種類」４１８を“フォルダ”に変更し、「イベント」４１７に変更内容を追加する。ステップＳ１２０５で、レコメンドサーバメイン制御部３３２は、本処理を実行していない移動の操作ログデータがあれば、次の移動の操作ログデータを処理対象として、ステップＳ１２０３およびＳ１２０４を実行する。操作ログデータがなければ、本処理を終了する。
【０１０２】
本処理によって、例えば、図１０の文書の移動の操作ログデータ４３３２は、その前のフォルダの更新の操作ログデータ４３３１とともに、フォルダに対する名前変更の操作により出力されたものと判定して、図６の操作ログデータ４３３に加工される。このように加工された操作ログデータに基づいて、マッピングデータの処理を実行することにより、操作内容を正しく反映させることができる。
【０１０３】
＜アイテムのレコメンド処理＞
図３０を参照して、本実施例におけるアイテムのレコメンド処理について説明する。ステップＳ１３０１で、文書管理サーバメイン制御部３０２または文書管理サーバメイン制御部３１２は、レコメンドサーバＰＣ１０３に対してアイテムのレコメンドのリクエストを行う。ステップＳ１３０２で、レコメンドサーバメイン制御部３３２は、ステップＳ１３０１で送られたレコメンドのリクエストを受ける。そして、レコメンドデータ蓄積・管理部３３３からレコメンドするアイテムのＩＤを取得する。
【０１０４】
ステップＳ１３０３で、レコメンドサーバメイン制御部３３２は、ステップＳ１３０１でレコメンドのリクエストを行った文書管理システムがアイテムのＩＤからアイテムのパスを取得する機能を有するか否かを判定する。ここで、この判定は、マッピング実行判断テーブル５０１に基づいて行われる。アイテムのＩＤからパスを取得する機能を有していれば、ステップＳ１３０４へ進む。一方、アイテムのＩＤからパスを取得する機能を有していなければ、ステップＳ１３０６へ進む。
【０１０５】
具体的には、文書管理サーバＰＣ１０１（パス取得機能ありシステム）からレコメンドのリクエストを受けた場合、文書管理サーバＰＣ１０１（パス取得機能ありシステム）は、機能をもつためステップＳ１３０４へ進んでアイテムパスは取得しない。文書管理サーバＰＣ１０２（パス取得機能なしシステム）からレコメンドのリクエストを受けた場合、文書管理サーバＰＣ１０２（パス取得機能なしシステム）は、機能をもたないためステップＳ１３０６へ進んでアイテムパスを取得する。
【０１０６】
ステップＳ１３０４で、レコメンドサーバメイン制御部３３２は、（パス取得機能ありシステム）に、レコメンドするアイテムのＩＤのみを返し、パスは返さない。ステップＳ１３０５で、文書管理サーバメイン制御部３０２は、ステップＳ１３０４のレコメンドに対するレスポンスを受信する。受信したアイテムのＩＤに基づき、文書管理サーバメイン制御部３０２は、アイテムデータ蓄積・管理部３０３のアイテムのＩＤからパスを取得する機能を用いて、アイテムデータ蓄積・管理部３０３からレコメンドするアイテムのパスを取得する。
【０１０７】
一方、レコメンドサーバメイン制御部３３２は、ステップＳ１３０６で、マッピングテーブル６０１を参照し、ステップＳ１３０２で取得したレコメンドするアイテムのＩＤからアイテムのパスを取得する。アイテムのパスを取得すると、ステップＳ１３０７で、レコメンドサーバメイン制御部３３２は、文書管理サーバＰＣ１０２（パス取得機能なしシステム）に、レコメンドするアイテムのパスを返す。ステップＳ１３０８で、文書管理サーバメイン制御部３０２および文書管理サーバメイン制御部３１２のいずれも同様に、レコメンドするアイテムのパスをクライアントＰＣ１０４に返す。
【０１０８】
＜本実施例における効果＞
アイテムのＩＤからアイテムのパスを取得できない文書管理システムのアイテムについてもレコメンドを行うことができる。
【０１０９】
［実施例２］
＜概要＞
本実施例に係る文書レコメンドシステムは、実施例１と同じシステム構成、ハードウェア構成、文書管理システムおよびレコメンドシステムの構成を備える。また、実施例１と同様に後述するフローチャートの各処理は、ＣＰＵ２０１により実行されるプログラムによって実現される。本実施例では、実施例１の処理に加え、アイテムのＩＤからパスを取得する機能をもたない文書管理システムの操作ログデータのマッピング処理を実行する際の操作ログデータ解析時に、レコメンドを行うためのアイテム間の関連度の計算処理を行うものである。
【０１１０】
本実施例を、図３１を参照して説明する。図３１は、図２６の各処理にステップＳ１４０１〜Ｓ１４０２を追加したものである。本実施例では、文書に対する操作により出力される操作ログデータを利用して、レコメンドを行うためのアイテム間の関連度を計算する。まず、図３１のステップＳ９２０で処理対象の操作ログデータの「データの種類」４１８が文書であると判定されると、ステップＳ１４０１に進んで本実施例の処理を実行する。
【０１１１】
ステップＳ１４０１で、レコメンドサーバメイン制御部３３２は、ステップＳ９０２で取得した処理対象の操作ログデータに記録されている「操作内容」４１５から操作内容を判定する。処理対象の操作ログデータの「操作内容」４１５が“表示”であれば、ステップＳ１４０２へ進んで本実施例の処理を続ける。そうでなければ、ステップＳ９２２へ進み、実施例１の処理に戻る。
【０１１２】
ステップＳ１４０２で、レコメンドサーバメイン制御部３３２は、ステップＳ９０２で取得した処理対象の“文書”の“表示”の操作ログデータからレコメンドを行うためのアイテム間の関連度を、本技術分野で知られたいずれかの手法で計算する処理を行う。
【０１１３】
＜本実施例における効果＞
マッピング処理実行時の操作ログデータを解析する際に、アイテム間の関連度の計算を行うことにより、レコメンドを行うためのアイテム間の関連度の計算に利用する操作ログデータを別途検索する処理を省いて、効率的に処理を行うことができる。
【０１１４】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。すなわち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、本発明は、複数のプロセッサが連携して処理を行うことによっても実現できるものである。
【図１】
2013254455.tif 000003
【図２】
2013254455.tif 000004
【図３】
2013254455.tif 000005
【図４】
2013254455.tif 000006
【図５】
2013254455.tif 000007
【図６】
2013254455.tif 000008
【図７】
2013254455.tif 000009
【図８】
2013254455.tif 000010
【図９】
2013254455.tif 000011
【図１０】
2013254455.tif 000012
【図１１】
2013254455.tif 000013
【図１２】
2013254455.tif 000014
【図１３】
2013254455.tif 000015
【図１４】
2013254455.tif 000016
【図１５】
2013254455.tif 000017
【図１６】
2013254455.tif 000018
【図１７】
2013254455.tif 000019
【図１８】
2013254455.tif 000020
【図１９】
2013254455.tif 000021
【図２０】
2013254455.tif 000022
【図２１】
2013254455.tif 000023
【図２２】
2013254455.tif 000024
【図２３】
2013254455.tif 000025
【図２４】
2013254455.tif 000026
【図２５】
2013254455.tif 000027
【図２６】
2013254455.tif 000028
【図２７】
2013254455.tif 000029
【図２８】
2013254455.tif 000030
【図２９】
2013254455.tif 000031
【図３０】
2013254455.tif 000032
【図３１】
2013254455.tif 000033