(57)【要約】【課題】キーワードを含むファイルを検索し、ファイルの作成または更新に関与したユーザを時系列で特定する。【解決手段】記憶部に格納されたファイルを検索するファイルの検索方法であって、計算機が、ファイルに対する操作の日時と、操作を行ったユーザとを操作履歴情報として記憶部に格納し、キーワードを含む検索要求を受け付けて、前記キーワードを含むファイルを取得し、取得したファイルに関連する操作履歴情報を取得し、取得した操作履歴情報からキーワードを含むファイルの操作に係わったユーザと、ファイルに対する操作の期間を算出し、取得した操作履歴情報からファイルの関係量を算出し、前記ファイルの関係量の大きさに基づいて、前記キーワードを含むファイルの操作に係わったユーザに順位を付与する。【選択図】図１
2014013476.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを備えた計算機で記憶部に格納されたファイルを検索するファイルの検索方法であって、
前記計算機が、前記ファイルに対する操作の日時と、前記操作を行ったユーザとを操作履歴情報として前記記憶部に格納する第１のステップと、
前記計算機が、キーワードを含む検索要求を受け付ける第２のステップと、
前記計算機が、キーワードを含むファイルを前記記憶部から取得する第３のステップと、
前記計算機が、前記取得したファイルに関連する前記操作履歴情報を前記記憶部から取得する第４のステップと、
前記計算機が、前記取得した操作履歴情報から前記キーワードを含むファイルの操作に係わったユーザと、前記ファイルに対する操作の期間を算出する第５のステップと、
前記計算機が、前記取得した操作履歴情報からファイルの関係量を算出する第６のステップと、
前記計算機が、前記ファイルの関係量の大きさに基づいて、前記キーワードを含むファイルの操作に係わったユーザに順位を付与する第７のステップと、
を含むことを特徴とするファイルの検索方法。
【請求項２】
請求項１に記載のファイルの検索方法であって、
前記第６のステップは、
前記取得したファイル毎の操作履歴情報から、操作対象のファイルと当該ファイルに関係するファイルの関連度を算出し、前記各ファイルの関連度から前記ファイルの関係量を算出することを特徴とするファイルの検索方法。
【請求項３】
請求項１に記載のファイルの検索方法であって、
前記第２のステップは、
前記検索要求としてキーワードに加えて分割数を含み、
前記第６のステップは、
前記取得したファイル毎の操作履歴情報から、前記ファイルに対する操作の期間を抽出してから、当該期間を前記分割数で分割する第８のステップと、
前記分割した期間毎に前記ファイルの関連度を算出して、当該関連度から前記分割した期間毎のファイルの関係量を算出する第９のステップと、
を含むことを特徴とするファイルの検索方法。
【請求項４】
請求項３に記載のファイルの検索方法であって、
前記第９のステップ
前記分割した期間毎に前記ファイルの関連度を算出して、当該関連度から前記分割した期間毎のファイルの関係量を算出し、前記分割した期間毎に前記ファイルの関係量が最小となる前記期間の分割位置と前記ユーザの順位を算出することを特徴とするファイルの検索方法。
【請求項５】
請求項１に記載のファイルの検索方法であって、
前記計算機が、前記キーワードを含むファイルの操作に係わったユーザが所属する組織図の位置を関連付ける第１０のステップと、
をさらに含むことを特徴とするファイルの検索方法。
【請求項６】
請求項１に記載のファイルの検索方法であって、
前記第６のステップは、
前記ファイルの構成要素について予め重みを設定し、前記重み付けを行って前記ファイルの関連度を算出することを特徴とするファイルの検索方法。
【請求項７】
請求項１に記載のファイルの検索方法であって、
前記計算機が、前記キーワードを含むファイルと、前記ファイルに対する操作の期間と、前記キーワードを含むファイルの操作に係わったユーザを前記順位で表示する画面を生成する第１１のステップと、
をさらに含むことを特徴とするファイルの検索方法。
【請求項８】
プロセッサとメモリを備えた計算機で記憶部に格納されたファイルを検索するファイル検索装置であって、
前記記憶部は、
前記ファイルに対する操作の日時と、前記操作を行ったユーザとを操作履歴情報として格納し、
前記計算機は、
キーワードを含む検索要求を受け付けて、前記キーワードを含むファイルを前記記憶部から取得する検索部を有し、
前記検索部は、
前記取得したファイルに関連する前記操作履歴情報を前記記憶部から取得して、前記取得した操作履歴情報から前記キーワードを含むファイルの操作に係わったユーザと、前記ファイルに対する操作の期間を算出し、前記取得した操作履歴情報からファイルの関係量を算出する演算部と、
前記ファイルの関係量の大きさに基づいて、前記キーワードを含むファイルの操作に係わったユーザに順位を付与するランキング生成部と、
を備えたことを特徴とするファイル検索装置。
【請求項９】
請求項８に記載のファイル検索装置であって、
前記演算部は、
前記取得したファイル毎の操作履歴情報から、操作対象のファイルと当該ファイルに関係するファイルの関連度を算出し、前記各ファイルの関連度から前記ファイルの関係量を算出することを特徴とするファイル検索装置。
【請求項１０】
請求項８に記載のファイル検索装置であって、
前記検索要求は前記キーワードに加えて分割数を含み、
前記演算部は、
前記取得したファイル毎の操作履歴情報から、前記ファイルに対する操作の期間を抽出してから、当該期間を前記分割数で分割し、前記分割した期間毎に前記ファイルの関連度を算出して、当該関連度から前記分割した期間毎のファイルの関係量を算出することを特徴とするファイル検索装置。
【請求項１１】
請求項１０に記載のファイル検索装置であって、
前記演算部は、
前記分割した期間毎に前記ファイルの関連度を算出して、当該関連度から前記分割した期間毎のファイルの関係量を算出し、前記分割した期間毎に前記ファイルの関係量が最小となる前記期間の分割位置と前記ユーザの順位を算出することを特徴とするファイル検索装置。
【請求項１２】
請求項８に記載のファイル検索装置であって、
前記演算部は、
前記キーワードを含むファイルの操作に係わったユーザが所属する組織図の位置を関連付けることを特徴とするファイル検索装置。
【請求項１３】
請求項８に記載のファイル検索装置であって、
前記演算部は、
前記ファイルの構成要素について予め重みを設定し、前記重み付けを行って前記ファイルの関連度を算出することを特徴とするファイル検索装置。
【請求項１４】
請求項８に記載のファイル検索装置であって、
前記演算部は、
前記キーワードを含むファイルと、前記ファイルに対する操作の期間と、前記キーワードを含むファイルの操作に係わったユーザを前記順位で表示する画面を生成することを特徴とするファイル検索装置。
【請求項１５】
プロセッサとメモリを備えた計算機でファイルを検索するプログラムであって、
前記ファイルに対する操作の日時と、前記操作を行ったユーザとを操作履歴情報として記憶部に格納する第１の手順と、
キーワードを含む検索要求を受け付ける第２の手順と、
前記キーワードを含むファイルを前記記憶部から取得する第３の手順と、
前記取得したファイルに関連する前記操作履歴情報を前記記憶部から取得する第４の手順と、
前記取得した操作履歴情報から前記キーワードを含むファイルの操作に係わったユーザと、前記ファイルに対する操作の期間を算出する第５の手順と、
前記取得した操作履歴情報からファイルの関係量を算出する第６の手順と、
前記ファイルの関係量の大きさに基づいて、前記キーワードを含むファイルの操作に係わったユーザに順位を付与する第７の手順と、
を前記計算機に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機からアクセスされる共有ファイルを検索する装置であって、特に、検索結果のファイル群を、ファイルを操作した者と、操作した期間の関連を解析して出力する検索装置に関する。
【背景技術】
【０００２】
近年、共有ファイルを格納するファイルサーバが企業のオフィスにおいて広く利用されている。共有する人数や、ファイル数の増加に伴い、ファイル検索の使い勝手向上が、より一層、重要になっている。
【０００３】
一般に、ファイル検索では、ユーザがキーワードを入力すると、検索システムは、キーワードを含むファイル情報の一覧（ファイル名、ファイルサーバ上の場所（フルパス）、作成・更新者名、作成・更新日時、ファイルを作成または更新したアプリケーション名など）を出力する。
【０００４】
しかし、上記従来のファイル情報の一覧は、出力ファイル数が、数十、数百を超えてしまうと、最も検索したいファイルにたどり着くことが非常に困難になる。いくつもの似たファイルを開けてみて、探したかったファイルかどうかを判断することになり、無関係なファイルの閲覧に長い時間がかかり、業務効率は著しく低下してしまう。そこで、キーワードだけの検索ではなく、ファイル操作情報を元に、ファイルの重要度を計算し、重要度の順に表示する方法（特許文献例１）が開示されている。また、ファイル間の関連度を計算し、関連度が高い検索結果を表示する方法（特許文献２）も提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１８３８６４号公報
【特許文献２】特開２０１１−８１４７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、キーワードを含むファイルを検索し、ファイルの作成または更新に関与したユーザと、ファイルが作成または更新された期間または時期を特定する場合、前記特許文献１では、キーワードを含むファイルは求まるが、重要度は、ファイルを操作した期間や、操作したユーザで変化してしまうため、ファイルの作成または更新に関与したユーザと期間を特定するのは難しい、という問題があった。
【０００７】
一方、前記特許文献２では、ファイルの操作履歴に基づいて、各ファイル間の関連度を算出し、算出された関連度からファイルに関連するユーザを特定することはできるが、ユーザが当該ファイルに関与した期間や時期を表すことができない、という問題があった。
【０００８】
そこで、本発明は上記問題点に鑑みてなされたもので、キーワードを含むファイルを検索し、ファイルの作成または更新に関与したユーザを時系列で特定することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、プロセッサとメモリを備えた計算機で記憶部に格納されたファイルを検索するファイルの検索方法であって、前記計算機が、前記ファイルに対する操作の日時と、前記操作を行ったユーザとを操作履歴情報として前記記憶部に格納する第１のステップと、前記計算機が、キーワードを含む検索要求を受け付ける第２のステップと、前記計算機が、キーワードを含むファイルを前記記憶部から取得する第３のステップと、前記計算機が、前記取得したファイルに関連する前記操作履歴情報を前記記憶部から取得する第４のステップと、前記計算機が、前記取得した操作履歴情報から前記キーワードを含むファイルの操作に係わったユーザと、前記ファイルに対する操作の期間を算出する第５のステップと、前記計算機が、前記取得した操作履歴情報からファイルの関係量を算出する第６のステップと、前記計算機が、前記ファイルの関係量の大きさに基づいて、前記キーワードを含むファイルの操作に係わったユーザに順位を付与する第７のステップと、を含む。
【発明の効果】
【００１０】
したがって、本発明は、キーワードを含むファイル群を抽出し、当該ファイル群に対して操作を行ったユーザと期間の関係を特定することができる。これにより、ファイルに対する操作によって潜在的に関係のあるファイルを抽出することができる。さらに、ファイルの関係量を演算することで、ファイルの操作に関連したユーザの順位付けを行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施例を示し、ファイルサーバのデータを検索する計算機システムの一例を示すブロック図である。
【図２】本発明の第１の実施例を示し、検索サーバのサーチエンジンの一例を示す機能ブロック図である。
【図３】本発明の第１の実施例を示し、監視サーバが収集する操作ログの一例を示す図である。
【図４】本発明の第１の実施例を示し、検索サーバが生成するファイルシーケンスマップの一例を示す図である。
【図５】本発明の第１の実施例を示し、検索サーバが生成するクラスタ毎のファイル関係量を最小化したファイルシーケンスマップの一例を示す図である。
【図６】本発明の第１の実施例を示し、検索サーバが生成するクラスタのランキングテーブルの一例を示す図である。
【図７】本発明の第１の実施例を示し、単語の一致と不一致によるファイル間の関連度の計算の一例を示す図である。
【図８】本発明の第１の実施例を示し、単語の一致と不一致によるファイル間の関連度の計算の一例を示し、特定の文字に重み付けを加えた場合の図である。
【図９】本発明の第１の実施例を示し、図形の一致と不一致によるファイル間の関連度の計算の一例を示す図である。
【図１０】本発明の第１の実施例を示し、図形と文字の一致と不一致によるファイル間の関連度の計算の一例を示す図である。
【図１１】本発明の第１の実施例を示し、クラスタ毎のファイル関係量の演算の一例を示す図である。
【図１２】本発明の第１の実施例を示し、検索サーバで行われるファイルシーケンスマップを生成する処理の一例を示すフローチャートである。
【図１３】本発明の第１の実施例を示し、検索サーバで行われるクラスタのランキングテーブルを生成する処理の一例を示すフローチャートである。
【図１４】本発明の第２の実施例を示し、検索サーバが生成するファイルシーケンスマップと組織図を組み合わせた図の一例を示す。
【図１５】本発明の第３の実施例を示し、検索サーバが生成するファイルシーケンスマップの一例を示し、クラスタと期間の差分を抽出する例である。
【図１６】本発明の第３の実施例を示し、検索サーバが生成するファイルシーケンスマップの一例を示し、クラスタと期間の差分を抽出する例である。
【図１７】本発明の第４の実施例を示し、ＮＡＳのデータを検索する計算機システムの一例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【実施例１】
【００１３】
図１は、本発明の第１の実施例示し、ファイルサーバのデータを検索サーバで検索する計算機システムの一例を示すブロック図である。図１の計算機システムは、複数のクライアント計算機（図中Ｃｌｉｅｎｔ  Ｃｏｍｐｕｔｅｒ）４０がネットワーク５０を介してファイルサーバ（図中Ｆｉｌｅ  Ｓｅｒｖｅｒ）２０と検索サーバ（図中Ｓｅａｒｃｈ  Ｓｅｒｖｅｒ）１０と監視サーバ（図中Ｍｏｎｉｔｏｒｉｎｇ  Ｓｅｒｖｅｒ）３０に接続される。
【００１４】
複数のクライアント計算機４０がファイルサーバ２０上にファイル（図中Ｆｉｌｅｓ）２００を新規作成するか、既存のファイル２００にアクセスして、参照または更新する。また、クライアント計算機４０は検索サーバ１０に対してキーワードを送信し、ファイルサーバ２０のファイル２００の検索を要求する。監視サーバ３０は、クライアント計算機４０で稼働する監視エージェント４６からユーザがファイル２００に対して行った操作の履歴を受信し、操作ログ（図中Ｏｐｅｒａｔｉｏｎ  Ｌｏｇ）３００として蓄積する。
【００１５】
クライアント計算機４０は、演算を行うプロセッサ４１と、データやプログラムを保持するメモリ４２と、ネットワーク５０に接続されるネットワークインターフェース（図中ＮＷ／ＩＦ）４３とを備える。なお、クライアント計算機４０には、図示しない入力装置と出力装置（または表示装置）が備えられている。
【００１６】
メモリ４２には、ＯＳ（オペレーティングシステム）４５と、アプリケーション４７と、監視エージェント４６がロードされて、それぞれプロセッサ４１で実行される。アプリケーション４７は、例えば、ファイルサーバ２０のファイル２００に対してコピーやペーストあるいは編集を行って更新したり、新たなファイル２００を作成してファイルサーバ２０に格納する。そして、ＯＳ４５またはアプリケーション４７は、検索サーバ１０に対してキーワードを含む検索要求を送信し、所望のファイル２００をファイルサーバ２０から取得する。監視エージェント４６は、クライアント計算機４０のユーザがファイル２００に対して行った操作を記録し、監視サーバ３０に送信する。
【００１７】
ファイルサーバ２０は、演算を行うプロセッサ２１と、データやプログラムを保持するメモリ２２と、ネットワーク５０に接続されるネットワークインターフェース（図中ＮＷ／ＩＦ）２３と、ファイル２００を格納するストレージ装置２４を備える。メモリ２２には、ＯＳ２５がロードされてプロセッサ２１によって実行される。ＯＳ２５は、クライアント計算機４０や検索サーバ１０からの要求に基づいてファイル２００の読み出しや格納を実行する。
【００１８】
監視サーバ３０は、演算を行うプロセッサ３１と、データやプログラムを保持するメモリ３２と、ネットワーク５０に接続されるネットワークインターフェース（図中ＮＷ／ＩＦ）３３と、操作ログ３００を格納するストレージ装置３４を備える。メモリ３２には、ＯＳ３５と監視マネージャ３６がロードされてプロセッサ３１によって実行される。監視マネージャ３６は、クライアント計算機４０の監視エージェント４６が検出したファイル２００に対する操作を受信し、操作ログ３００としてストレージ装置３４へ格納する。また、監視マネージャ３６は、検索サーバ１０の読み出し要求に基づいて操作ログ３００を抽出し、検索サーバ１０に応答する。
【００１９】
検索サーバ１０は、演算を行うプロセッサ１１と、データやプログラムを保持するメモリ１２と、ネットワーク５０に接続されるネットワークインターフェース（図中ＮＷ／ＩＦ）１３と、検索インデックス（図中Ｓｅａｒｃｈ  Ｉｎｄｅｘ）４００とファイルシーケンスマップ（図中Ｆｉｌｅ  Ｓｅｑｕｅｎｃｅ  Ｍａｐ）５００を格納するストレージ装置１４を備える。メモリ１２には、ＯＳ１５とサーチエンジン１６がロードされてプロセッサ１１によって実行される。
【００２０】
サーチエンジン１６は、クライアント計算機４０からの検索要求に応じて、ファイルサーバ２０からファイル２００を取得し、これらのファイル２００に関する操作ログ３００を監視サーバ３０から取得して、後述するように、ファイルシーケンスマップ５００を生成してクライアント計算機４０に応答する。また、検索サーバ１０は、クライアント計算機４０からの検索要求にクラスタ毎のランキングが含まれる場合には、クラスタランキングテーブル６００を生成し、クライアント計算機４０に応答する。
【００２１】
ここで、図２は、サーチエンジン１６の構成の一例を示す機能ブロック図である。サーチエンジン１６は、ファイルシーケンスマップ５００を生成するマップ演算部１６１と、検索要求にクラスタのランキングが含まれる場合にクラスタランキングテーブル６００を生成するクラスタランキング生成部１６２から構成される。
【００２２】
マップ演算部１６１は、クライアント計算機４０から検索要求に含まれるキーワードと分割（クラスタ）数とを受け付けると、まず、キーワードを含むファイル２００をファイルサーバ２０から検索して取得する。この検索は、予め設定したサーチインデックス４００を用いてキーワードを含むファイル２００を抽出するなど、周知または公知の手法を適用すれば良いので、ここでは詳述しない。なお、分割数は、後述する期間の分割数とすることができる。
【００２３】
次に、マップ演算部１６１は、キーワードを含むファイル２００の操作ログ３００を監視サーバ３０から取得する。そして、ファイル２００毎に操作（コピーやペーストまたはメールでの授受など）を行ったユーザを時系列で集計して、ファイル２００が操作された期間と、ファイル２００を操作したユーザの関係を示すファイルシーケンスマップ５００Ａ（図５）を後述するように生成し、クライアント計算機４０へ送信し、クライアント計算機４０の出力装置等に出力する。
【００２４】
検索要求にクラスタのランキングが含まれる場合に実行されるクラスタランキング生成部１６２は、生成されたファイルシーケンスマップ５００を読み込んで、クラスタランキングテーブル６００を生成する。このクラスタランキングテーブル６００は、後述するように、検索要求で与えられたクラスタ数について、各クラスタに含まれるユーザの数が多く、ファイルを操作した期間が長いクラスタほど上位に順位付けされる。
【００２５】
ここで、プロセッサ１１は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ１１は、マップ演算プログラムに従って動作することでマップ演算部１６１として機能する。他のプログラムについても同様である。さらに、プロセッサ１１は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００２６】
サーチエンジン１６の各機能を実現するプログラム、テーブル等の情報は、ストレージ装置１４や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００２７】
図３は、監視サーバ３０が収集する操作ログ３００の一例を示す図である。操作ログ３００は、複数のクライアント計算機４０の監視エージェント４６から送信されたファイル２００に対する操作の履歴である。操作ログ３００の一例としては、ファイル２００への操作を行った日付と時刻を格納する日時（Date＿Time）３０１と、当該操作を行ったユーザの名称または識別子を格納するユーザ名（User Name）３０２と、ファイル操作の種類（生成または更新）を格納する操作（Operation）３０３と、ファイル２００の名称を格納するファイル名（File Name）３０４と、当該ファイル２００の編集に関する操作の種類（コピーアンドペースト、ファイル編集など）を格納する編集操作（図中with-operation）３０５と、編集操作で関連したファイルの名称を格納する関連ファイル（Relative File）３０６と、当該ファイル２００と関連ファイル３０６が類似する度合を格納する関連度（Similarity）３０７から一つのエントリが構成される。
【００２８】
ここで関連度３０７は、コピーアンドペースト等で編集操作の元となったファイル２００に対する、当該ファイル２００の同一性に基づく値である。
【００２９】
ここで、サーチエンジン１６で行われる、関連度の演算の一例を図７に示す。図７は、ファイル中の単語の一致と不一致によるファイル間の関連度の計算の一例を示す図である。図７において、コピー元になる関連ファイルを２００ｓとし、生成または更新するファイルを２００ｄとする。関連度の演算は、例えば、マップ演算部１６１がファイル２００ｓの単語と、編集後のファイル２００ｄの単語が一致する数を、不一致の数と一致する数の和で除した値を関連度とする。図示のように、単語の一致が１１個、単語の不一致が１個の場合、
関連度＝１１／（１１＋１）＝９１．７％
となる。
【００３０】
単語の一致または不一致は、例えば、予め設定した特定の単語について、編集前のファイル２００ｓの出現位置に、編集後のファイル２００ｄで前記出現位置に特定の単語が出現していれば、単語が一致し、出現していなければ単語が不一致と判定してもよい。なお、単語の関連度の演算については、複数のファイルの類似度を抽出する値を用いればよいので、上記に限定されるものではなく、周知または公知の手法を適用することができる。
【００３１】
図８は、単語の一致と不一致によるファイル間の関連度の計算の一例を示し、特定の文字に重み付けを加えた場合の図である。上記図７と同様に、コピー元になる関連ファイル２００ｓと、生成または更新する編集後のファイル２００ｄで単語の関連度を演算する際に、特定の単語に重み付けを行う例を示す。図示の例では、特定の単語「Ｋ」が出現した場合には、２倍の重みを付与する例を示す。
【００３２】
図示の例では、関連ファイル２００ｓと、編集後のファイル２００ｄで特定の単語「Ｋ」が３個一致し、特定の単語「Ｋ」以外が８個一致し、不一致の単語が１個であった場合を示す。この場合、３個一致した特定の単語「Ｋ」のは２倍の重みが付与されるので、
関連度＝（８＋３×２）／（８＋３×２＋１）＝９３．３％
となる。
【００３３】
図９は、ファイル中の図形の一致と不一致によるファイル間の関連度の計算の一例を示す図である。図９において、上記図７と同様に、コピー元になる関連ファイル２００ｓと、生成または更新する編集後のファイル２００ｄで図形の関連度を演算する際に、一致する図形面積と、不一致となる図形の面積で関連度を演算する。コピー元の関連ファイル２００ｓで出現する図形と、前記出現位置で編集後のファイル２００ｄに出現する図形が一致するか否かを判定する。なお、図形の一致、不一致の判定及び図形の面積の演算については、周知または公知の手法を適用すれば良いので、ここでは詳述しない。
【００３４】
図示の例では、図形が一致した面積が９．５平方センチ、図形が不一致の面積が０．５平方センチであるので、
関連度＝９．５／（９．５＋０．５）＝９５％
となる。
【００３５】
なお、図形の比較は、特定の図形について行っても良いし、単語と同じく、特定の図形に重みを付与しても良い。
【００３６】
図１０は、ファイル中の単語の一致と不一致と図形の一致と不一致を組み合わせたファイル間の関連度の計算の一例を示す図である。図１０において、上記図７と同様に、コピー元になる関連ファイル２００ｓと、生成または更新する編集後のファイル２００ｄで単語と図形の関連度を演算する際に、単語と図形に重み付けを行って関連度を演算する。なお、単語については、上記図７と同じく一致または不一致の数で関連度を求め、図形については、上記図９と同じく一致または不一致の面積で関連度を求める。図示の例では、図形の重み付けパラメータ（係数）＝０．３とし、単語の重み付けパラメータ（係数）＝０．７とした例を示す。上記図7、図９と同じく、単語の一致が１１個、不一致が１個、図形の一致が９．５平方センチ、不一致が０．５平方センチの例では、
関連度＝０．３（１１／１２）＋０．７（９．５／１０）＝９４％
となる。
【００３７】
図４は、検索サーバが生成するファイルシーケンスマップの一例を示す図である。検索サーバ１０のサーチエンジン１６のマップ演算部１６１では、クライアント計算機４０から受け付けたキーワードでファイルサーバ２０からファイル２００を抽出する。そして、サーチエンジン１６は、抽出したファイル２００について監視サーバ３０から操作ログ３００を取得し、ファイル２００に操作を行った時期とユーザを特定する。
【００３８】
次に、サーチエンジン１６は、図４で示すように、ファイル２００を操作したユーザ名を縦軸に配置し、ファイル２００の名称と作成日や更新日を横軸に配置した表を作成する。図示の例では、ファイル２００の編集期間を７／１〜８／２６までで、一週間単位で表示した例を示す。なお、ファイルシーケンスマップ５００で表示する期間は、検索要求に含めるようにしても良い。検索サーバ１０のサーチエンジン１６では、操作ログ３００の関連ファイル３０６を起点として当該ファイル名３０４までの矢印が付与されたファイルシーケンスマップ５００を表示する画面を生成してクライアント計算機４０へ送信する。
【００３９】
図示の例では、７／１の週に「Ｍｒ．ＧＧ」によってファイル「AAA.ppt」が編集または作成され、このファイル「AAA.ppt」は「Ｍｒ．ＧＧ」によって７／１５の週まで編集される。そして、ファイル「AAA.ppt」を関連ファイルとして、７／８の週に「Ｍｒ．ＨＨ」によってファイル「BBB.ppt」が編集または作成され、このファイルを元に７／１５の週にファイル「CCC.doc」が「Ｍｒ．ＨＨ」によって編集または作成されたことを示す。
【００４０】
その後、「Ｍｒ．ＡＡ」は７／２２の週にファイル「CCC.doc」を元に、ファイル「DDD.doc」を編集または作成し、続いて、「Ｍｒ．ＹＹ」は８／５の週にファイル「DDD.doc」を編集した後に、８／１２の週にファイル「PPP.txt」を編集または作成したことを示す。さらに、ファイル「DDD.doc」は、８／１２の週に「Ｍｒ．ＣＣ」によって編集された後、「Ｍｒ．ＹＹ」はこのファイル「DDD.doc」を元にファイル「FFF.doc」を８／１９の週に編集したことを示している。
【００４１】
このように、ファイルシーケンスマップ５００は、ある期間に編集されたファイル群とユーザの関連を時系列的に示すことができる。
【００４２】
次に、サーチエンジン１６のマップ演算部１６１は、図４のファイルシーケンスマップ５００で得られたファイル群について、縦軸のユーザの順序を入れ替えて、ファイル間の関係を示す距離＝矢印の長さの最大値が最小になるユーザの順序を演算する。ここで、ファイル間の関係を示す矢印の長さを関係量とすると、図４のファイルシーケンスマップ５００の関係量の最大値を最小化する処理（以下、関係量最小化処理という）を、マップ演算部１６１が実行する。その後、マップ演算部１６１は、関係量の最大値を最小化したファイルシーケンスマップ５００で、検索要求に含まれるクラスタ数に分割する。
【００４３】
ここで、マップ演算部１６１が行う処理の一例を以下に詳述する。図１２は、サーチエンジン１６のマップ演算部１６１で行われるファイルシーケンスマップを生成する処理の一例を示すフローチャートである。
【００４４】
まず、ステップＳ１では、マップ演算部１６１が検索要求に含まれるキーワードと分割数（クラスタ数）を受け付ける。次に、ステップＳ２で、マップ演算部１６１は、ファイルサーバ２０からキーワードを含むファイル２００を抽出する。ステップＳ３で、マップ演算部１６１は、抽出したファイル２００の情報（ファイル名）を含む操作ログ３００を監視サーバ３０から抽出する。ステップＳ４では、マップ演算部１６１は、抽出された操作ログ３００からファイル２００を操作した期間と、ユーザを抽出する。
【００４５】
次に、ステップＳ５で、マップ演算部１６１は、抽出したユーザを所定の順序（例えば、アルファベット順）でソートした後、抽出された操作の期間で、ファイルと関係量を示す矢印を配置したファイルシーケンスマップ５００を設定する。この結果、図４で示すファイルシーケンスマップ５００が生成される。
【００４６】
ステップＳ６で、マップ演算部１６１は、受け付けた分割数で操作の期間を分割し、分割した期間内で操作を行ったユーザとファイルをクラスタとして設定する。そして、マップ演算部１６１はクラスタ毎にファイル間の関係量の演算を行う。なお、期間の分割は、初期値として、当分や所定の比率など、予め設定した比率で行えば良い。
【００４７】
図１１は、マップ演算部１６１が行うクラスタ毎のファイル関係量の演算の一例を示す図である。マップ演算部１６１は、分割数として３を受け付けた場合、図４のファイル群を操作した期間を分割し、例えば、図５で示すファイルシーケンスマップ５００Ａのように、７／１〜７／２１、７／２２〜８／４、８／５〜８／２６のように３つのクラスタ７０１〜７０３に分割する。１つめのクラスタ７０１では、ユーザは２人（Ｍｒ．ＧＧ、ＨＨ）で、操作したファイル群は、ファイル「AAA.ppt」、「BBB.ppt」、「CCC.doc」の３つである。
【００４８】
ここで、マップ演算部１６１は、ファイルを操作した日数の２乗の値と、ユーザの距離（縦軸方向の人数）の２乗の値の和を求める。そして、マップ演算部１６１は、ファイル間の関連度３０７を２乗した値を、前記和で除した値をファイル関係量の要素として求める。マップ演算部１６１はクラスタ内の全てのファイル間についてファイル関係量の要素を算出して、各要素の総和を算出する。そして、マップ演算部１６１はこの要素の総和の平方根を、クラスタのファイル関係量として算出する。
【００４９】
図１１のクラスタ７０１の例では、「Ｍｒ．ＧＧ」が操作したファイル「AAA.ppt」のファイル関連度３０７は８９％、ファイルの操作期間（図中ファイル期間数）は１６日で、ファイル「AAA.ppt」を編集したのは「Ｍｒ．ＧＧ」だけであるので、ユーザの距離は０となり、ファイル「AAA.ppt」について、ファイル関係量の要素は、
０．８９2／（１６2＋０2）
となる。
【００５０】
マップ演算部１６１は、ファイル「BBB.ppt」とファイル「CCC.doc」についてもそれぞれファイル関係量の要素を求め、各要素の総和の平方根を当該クラスタのファイル関係量として演算する。
【００５１】
次に、ステップＳ７では、各クラスタの期間の分割位置と、ユーザの順序を変更して、クラスタ毎のファイル関係量の総和が最小になる組み合わせを算出する。期間の分割位置の変更と、ユーザの順序を変更して、３つのクラスタ７０１〜７０３のファイル関係量が最小となるファイルシーケンスマップ５００の組み合わせは、図５で示すファイルシーケンスマップ５００Ａのように算出される。このファイル関係量の最小化処理の結果、ファイル間の関係を示す距離の最大値が最小になるユーザの順序と、各クラスタのファイル関係量が最小となる期間の分割位置が算出される。
【００５２】
これにより、検索サーバ１０は、受け付けたキーワードを含むファイル２００について、ファイルが操作された期間と、ユーザを特定し、さらに、ファイル間のコピーペーストや添付などの操作の連鎖を矢印によって表示することができる。これにより、ファイル間の関係と、ユーザの関係を時系列的に把握することができる。
【００５３】
また、図１１のクラスタ内で関係のあるファイル間を接続する線は、関連度の大きさに応じて線幅を拡大した。これにより、クライアント計算機４０のオペレータは、線幅の太さで関連度の大小を容易に把握することができる。
【００５４】
図６は、クラスタランキング生成部１６２が生成するクラスタランキングテーブル６００の一例を示す図である。クラスタランキングテーブル６００は、マップ演算部１６１が算出したクラスタ毎のファイル関係量の大きい順にクラスタをソートして、各クラスタの構成要素を記載したテーブルである。
【００５５】
クラスタランキングテーブル６００は、順位６０１と、クラスタに含まれるユーザ名を格納するクラスタ（人）６０２と、ファイルを操作した期間を格納するクラスタ（期間）６０３と、操作対象のファイル２００の名称を格納するファイル名６０４とからひとつのエントリが構成される。
【００５６】
図６において、第１位は図５に示した２つめのクラスタ７０２で、クラスタのファイル関係量が最大であることを示す。第２位は、図５に示した１つめのクラスタ７０１で、第３位は、図５に示した３つめのクラスタ７０３である。
【００５７】
図１３は、サーチエンジン１６で行われるクラスタランキングテーブル６００の生成処理の一例を示すフローチャートである。
【００５８】
ステップＳ１１では、マップ演算部１６１がキーワードと分割数（クラスタ数）を受け付けて図１２のステップＳ２〜Ｓ５で示した処理を実行し、図４に示したファイルシーケンスマップ５００を生成する。
【００５９】
次に、ステップＳ１２では、マップ演算部１６１が図１２のステップＳ６〜Ｓ７で示す処理を実行し、各クラスタのファイル関係量が最小となる期間の分割位置と、ユーザの順位を演算し、図５に示したようなファイル関係量の最小化後のファイルシーケンスマップ５００Ａを生成する。
【００６０】
次に、ステップＳ１３では、クラスタランキング生成部１６２が、図５のクラスタ７０１〜７０３のファイル関係量を取得して、ファイル関係量の大きい順に各クラスタに順位６０１を付与し、クラスタランキングテーブル６００を生成する。クラスタランキング生成部１６２は、ファイル関係量最小化後のファイルシーケンスマップ５００Ａから各クラスタのファイル関係量を取得し、大小関係を判定して順位付けを実行する。そして、クラスタランキング生成部１６２は、各クラスタの構成要素（ユーザ名、期間、ファイル名）を取得してクラスタランキングテーブル６００を生成する。クラスタランキング生成部１６２は生成したクラスタランキングテーブル６００をクライアント計算機４０へ送信する。クライアント計算機４０は、図示しない出力装置にクラスタランキングテーブル６００を表示することができる。
【００６１】
以上のように、本実施例１によれば、クライアント計算機４０は、検索サーバ１０へ入力したキーワードを含むファイル群を抽出し、当該ファイル群に対して操作を行ったユーザと期間の関係を特定し、図５のファイルシーケンスマップ５００Ａとして表示することができる。これにより、コピーやペーストあるいは電子メールへの添付などの操作によって潜在的に関係のあるファイル２００を抽出することができる。そして、潜在的に関係のあるファイルの関連度３０７により、ファイル２００間の関係の大きさをクライアント計算機４０のオペレータに提供することができる。特に、図１１で示したように、関係のあるファイル間を接続する線は、関連度の大きさに応じて線幅を拡大した。これにより、クライアント計算機４０のオペレータは、線幅の太さで関連度の大小を容易に把握することができる。
【００６２】
そして、ファイルシーケンスマップ５００Ａとクラスタランキングテーブル６００からは、キーワードから抽出されたファイル群について、操作が行われた期間と、操作に加わったユーザと、操作によるファイルの関係を特定することができる。これにより、ファイル２００の証拠性を担保したり、ファイルを操作すべきではないユーザの特定を実現することができる。
【実施例２】
【００６３】
図１４は、第２の実施例を示し、前記第１の実施例にユーザが所属する組織図８００の情報を加えたもので、その他の構成は前記第１の実施例と同様である。図１４は、前記第１の実施例の図５に示した関係量最小化後のファイルシーケンスマップ５００Ａと組織図８００を合わせて表示する画面８５０をサーチエンジン１６が生成して、クライアント計算機４０へ送信する例を示す。なお、組織図８００は、予め検索サーバ１０のストレージ装置１４に格納されている。
【００６４】
サーチエンジン１６のマップ演算部１６１は、図１４で示すように、ファイルシーケンスマップ５００Ａのユーザの順位と組織図８００の位置を組み合わせて表示する画面８５０を生成する。画面８５０では、ファイルシーケンスマップ５００Ａのユーザ５０１に表示されるユーザ名と、組織図８００の社員名８０１が一致するものについて、ユーザ５０１の位置と社員名８０１の位置を矢印にて接続する。この画面８５０により、ファイルシーケンスマップ５００Ａのユーザ５０１が、組織図８００上の何れの部署の社員であるかを容易に特定することが可能となる。なお、同姓のユーザ名の場合には、社員コードなどのユニークな識別子で、ファイルシーケンスマップ５００Ａのユーザ５０１と、組織図８００の社員名８０１の関係を設定すればよい。
【００６５】
上記実施例２では、ファイルを操作したユーザ５０１について組織図８００上のユーザ（社員）の距離と、操作したファイル（ファイルシーケンスマップ５００Ａ）に関するユーザの距離とを容易に比較することができる。ここで、組織図８００上のユーザ（社員）の距離は、部署の違いに関する距離とし、操作したファイルに関するユーザの距離は、ファイルシーケンスマップ５００Ａのユーザ５０１の縦軸方向の距離とする。
【実施例３】
【００６６】
図１５、図１６は、第３の実施例を示し、前記第１の実施例のキーワードを複数受け付けて、ファイルシーケンスマップ５００Ａの差分を出力する例を示す。検索サーバ１０が複数のキーワードを受け付ける以外は、前記第１の実施例と同様の構成である。
【００６７】
第３の実施例では、サーチエンジン１６が複数のキーワードを受け付けて、複数のファイルシーケンスマップ５００Ａを生成する。そして、複数のファイルシーケンスマップ５００Ａの差分を抽出して表示する。
【００６８】
サーチエンジン１６が、クライアント計算機４０から検索要求として、キーワード＝”Ａ”とキーワード＝”Ｂ”の２つのキーワードを受け付けた例を示す。サーチエンジン１６のマップ演算部１６１は、キーワード＝”Ａ”について前記実施例１の図１２のフローチャートに従って、図１５に示すファイルシーケンスマップ５００Ａを生成する。
【００６９】
次に、マップ演算部１６１は、キーワード＝”Ｂ”について前記実施例１の図１２のフローチャートに従って、図１６に示すファイルシーケンスマップ５００ＡＡを生成する。
【００７０】
マップ演算部１６１は、生成した２つのファイルシーケンスマップ５００Ａ、５００ＡＡから差分を抽出して、強調表示する。本例では、期間７／２２〜８／４で異なるユーザがファイル「DDD.doc」を操作した部分が差分として抽出される。
【００７１】
例えば、図１５の例では、キーワード＝”Ａ”のファイルシーケンスマップ５００Ａで、７／２２〜８／４の期間のユーザ「Ｍｒ．ＡＡ」と「Ｍｒ．ＲＲ」が枠７１２で囲まれて強調される。図１６の例では、キーワード＝”Ｂ”のファイルシーケンスマップ５００ＡＡで、７／２２〜８／４の期間のユーザ「Ｍｒ．ＳＳ」と「Ｍｒ．ＡＡ」が枠７１３で囲まれて強調された画面を生成する。
【００７２】
このように、マップ演算部１６１は、複数のキーワードを受け付けた場合には、ファイルシーケンスマップ５００Ａの差分を抽出して、差異のある部分を強調することができる。なお、差分の抽出はクラスタ単位で行っても良い。
【実施例４】
【００７３】
図１７は、第４の実施例を示し、前記第１の実施例のファイルサーバ２０と、監視サーバ３０をＮＡＳ（Network Attached Storage）６０にまとめたもので、その他の構成は前記実施例１と同様である。
【００７４】
ＮＡＳ６０は、演算を行うプロセッサ６１と、データやプログラムを保持するメモリ６２と、ネットワーク５０に接続されるネットワークインターフェース（図中ＮＷ／ＩＦ）６３と、ファイル２００及び操作ログ３００を格納するストレージ装置６４を備える。
【００７５】
メモリ６２には、ＯＳ６５と監視マネージャ３６がロードされてプロセッサ６１によって実行される。監視マネージャ３６は、前記実施例１と同様であり、クライアント計算機４０の監視エージェント４６が検出したファイル２００に対する操作を受信し、操作ログ３００としてストレージ装置６４へ格納する。また、監視マネージャ３６は、検索サーバ１０の読み出し要求に基づいて操作ログ３００を抽出し、検索サーバ１０に応答する。ＯＳ６５は、クライアント計算機４０や検索サーバ１０からの要求に基づいてファイル２００の読み出しや格納を実行する。
【００７６】
以上のように、ファイルサーバ２０や監視サーバ３０に代わってＮＡＳ６０で運用することも可能である。この場合、検索サーバ１０は、ＮＡＳ６０をファイル２００と操作ログ３００を格納する記憶部として利用する。なお、検索サーバ１０と、ファイルサーバ２０及び監視サーバ３０をひとつの計算機にまとめても良い。
【符号の説明】
【００７７】
１０  検索サーバ
１１  プロセッサ
１２  メモリ
１６  サーチエンジン
２０  ファイルサーバ
３０  監視サーバ
１６１  マップ演算部
１６２  クラスタランキング生成部
２００  ファイル
３００  操作ログ
５００、５００Ａ  ファイルシーケンスマップ
６００  クラスタランキングテーブル
【図１】
2014013476.tif 000003
【図２】
2014013476.tif 000004
【図３】
2014013476.tif 000005
【図４】
2014013476.tif 000006
【図５】
2014013476.tif 000007
【図６】
2014013476.tif 000008
【図７】
2014013476.tif 000009
【図８】
2014013476.tif 000010
【図９】
2014013476.tif 000011
【図１０】
2014013476.tif 000012
【図１１】
2014013476.tif 000013
【図１２】
2014013476.tif 000014
【図１３】
2014013476.tif 000015
【図１４】
2014013476.tif 000016
【図１５】
2014013476.tif 000017
【図１６】
2014013476.tif 000018
【図１７】
2014013476.tif 000019