(57)【要約】【課題】同時にアクセスされやすいファイルを、的確に特定できるファイル管理システムを提供する。【解決手段】複数のファイルの各々が操作されたことを検出するイベントフック部３０と、イベントフック部３０の検出に基づいて、複数のファイルの各々がアクティブになった操作時刻を含む操作履歴７２を記録する操作履歴記録部６０と、複数のファイルのうちで、同時に利用される２つのファイル同士の関連性が高くなるにつれ高い値となり、関連性が低くなるにつれて低い値となる推定値を、操作履歴７２に基づいて算出するイベント解析部８０とを具備する。イベント解析部８０は、第１ファイルの次にアクティブになった第２ファイルのアクティブ時間が長くなるにつれて、第１ファイルと第２ファイルとに対する第１推定値を増加させるように算出する。【選択図】図１
2011145901.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイルの各々が操作されたことを検出するイベントフック部と、
前記イベントフック部の検出に基づいて、前記複数のファイルの各々がアクティブになった操作時刻を含む操作履歴を記録する操作履歴記録部と、
前記複数のファイルのうちで、同時に利用される２つのファイル同士の関連性が高くなるにつれ高い値となり、関連性が低くなるにつれて低い値となる推定値を、前記操作履歴に基づいて算出するイベント解析部と
を具備し、
前記イベント解析部は、第１ファイルの次にアクティブになった第２ファイルのアクティブ時間が長くなるにつれて、前記第１ファイルと前記第２ファイルとに対する第１推定値を増加させるように算出する
ファイル管理システム。
【請求項２】
請求項１に記載のファイル管理システムであって、
前記イベント解析部は、前記第１ファイルの第１操作時刻と、前記第２ファイルの第２操作時刻と、前記第２ファイルの次にアクティブになった第３ファイルの第３操作時刻とに基づいて、前記第２ファイルの前記アクティブ時間を算出する
ファイル管理システム。
【請求項３】
請求項１又は２に記載のファイル管理システムであって、
前記イベント解析部は、前記操作履歴に基づいて、前記第１ファイルの次に前記第２ファイルがアクティブになった遷移回数を算出し、前記第１推定値を前記アクティブ時間と前記遷移回数の比に対して増加させるように算出する
ファイル管理システム。
【請求項４】
請求項１乃至３の何れか一項に記載のファイル管理システムであって、
前記イベントフック部の検出に基づいて、前記複数のファイルの各々の操作が開始された時刻を示すオープン時刻と、操作が終了した時刻を示すクローズ時刻とを含む表示履歴を記録する表示履歴記録部
を更に具備し、
前記イベント解析部は、前記表示履歴に基づいて、前記第１ファイルと前記第２ファイルとが同時にオープンしていた同時オープン時間を算出し、前記第１推定値を前記アクティブ時間と前記同時オープン時間の比に対して増加させるように算出する
ファイル管理システム。
【請求項５】
請求項１乃至４の何れか一項に記載のファイル管理システムであって、
前記イベント解析部は、第４ファイルと複数の第５ファイルの各々とに対する第２推定値が所定の第３推定値より高く、且つ、前記複数の第５ファイルの数が所定数より多い場合、前記第１ファイルと前記第４ファイルとに対する第４推定値を低下させるように算出する
ファイル管理システム。
【請求項６】
請求項１乃至５の何れか一項に記載のファイル管理システムであって、
前記イベント解析部は、第６ファイルと複数の第７ファイルの各々とに対する第５推定値が所定の第６推定値より高く、且つ、前記複数の第７ファイルの数が所定数より少ない場合、前記第１ファイルと前記第６ファイルとに対する第７推定値を低下させるように算出する
ファイル管理システム。
【請求項７】
請求項１乃至６の何れか一項に記載のファイル管理システムであって、
前記複数のファイルのうちから指定された前記第１ファイルをフォーカスファイルとし、前記推定値に基づいて、前記複数のファイルの各々を前記第１ファイルに対して関連付けて表示するディレクトリ表示部
を更に具備し、
前記ディレクトリ表示部は、前記１推定値に基づいて、前記第２ファイルを前記第１ファイルに関連付けて表示する
ファイル管理システム。
【請求項８】
複数のファイルの各々が操作されたことを検出するステップと、
前記検出に基づいて、前記複数のファイルの各々がアクティブになった操作時刻を含む操作履歴を記録するステップと、
前記複数のファイルのうちで、同時に利用される２つのファイル同士の関連性が高くなるにつれ高い値となり、関連性が低くなるにつれて低い値となる推定値を、前記操作履歴に基づいて算出するステップと
を具備し、
前記操作履歴に基づいて算出するステップは、
第１ファイルの次にアクティブになった第２ファイルのアクティブ時間が長くなるにつれて、前記第１ファイルと前記第２ファイルとに対する第１推定値を増加させるように算出するステップ
を備える
ファイル管理方法。
【請求項９】
請求項８に記載の方法をコンピュータに実行させる
ファイル管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル管理システム、方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータのユーザーは、データ量が増大しているため、所望なデータへ効率良くアクセスすることが困難になっている。典型的なデータへのアクセス方法としては、「ある文書が記録されたファイル」というように、ユーザーはファイル単位でデータにアクセスする。ファイルは、階層構造を持つディレクトリを用いて整理されることが多く、ファイルの記録場所はディレクトリで指定される。そして、ユーザーは同時に利用することが多いファイルを、同じディレクトリに記録することが一般的である。しかし、データの量と扱うデータの範囲の増大に伴って、同時に利用するファイルの関係が複雑になり、同時に利用するファイルを一つのディレクトリに配置するのは困難または不可能になってきた。
【０００３】
ファイルの検索方法に関して、非特許文献１にファイルの検索方法の分類が示されている。第一の分類は、セマンティック・ファイルシステムである。このシステムは、キーワード等の属性をファイルに付与して検索を容易にするというものである。第二の分類は、コンテンツベース検索である。この検索方法は、Ｇｒｅｐ（グレップ）コマンドやＧｏｏｇｌｅ  Ｄｅｓｋｔｏｐのように、キーワードを含むファイルを特定するというものである。第三の分類は、コンテクストベース検索である。この検索方法は、ファイルのコンテクストに基づいて、ファイルを特定するというものである。ファイルのコンテクストには、他の同時にアクセスされているファイルや、ユーザーの現在のタスクや、ユーザーの物理的位置など、ユーザーとファイルの使用を結び付けるアクションの全てが含まれる。但し、コンテクストはコンテンツには含まれないことに注意する。
【０００４】
コンテクストを使ったファイル管理の方法は、ファイル間の関連度を同時利用に基づいて算出する。同時利用とは、同時にオープンされていること、アクティブにされた時間が近いこと、含まれるデータが操作された時間が近いこと、データのコピーが発生すること、及び、同一人物によって操作されたことの五つの条件である。以下に、コンテクストを使った、又はコンテクストに関連する情報を使った技術を列挙する。
【０００５】
特許文献１（特開２００２−２０７７２６号公報）には、文書管理装置が開示されている。この文書管理装置は、同じような時期に操作された文書や、同じ操作者に操作された文書や、文書操作中に参照された文書や、文書情報の複写が行われた文書などが、相互に関連し合っていることが多いことを利用している。そして、この文書管理装置は、ファイル別にその種類、作成者、文書名、操作履歴、及び保存場所を記録している。操作履歴には、各操作に関する操作者と、操作が終了した時刻と、操作内容との三つが含まれる。操作内容として挙げられているのは、新規保存、上書き保存、別名保存、閲覧、及び印刷の五つである。
【０００６】
特許文献２（特開２００４−４６７９６号公報）には、ディレクトリ管理プログラムが開示されている。このディレクトリ管理プログラムは、ディレクトリの分類軸として時間軸を有している。そして、ディレクトリ管理プログラムは、縦軸にディレクトリをとり、横軸に時間をとって、ディレクトリを表示する。
【０００７】
特許文献３（特開２００６−２６８５９８号公報）には、電子ファイル関連強度自動算出プログラムが開示されている。この電子ファイル関連強度自動算出プログラムは、ファイル間のコピー・ペーストの情報を利用して、関連性の強いファイルを自動表示する。コピー・ペーストの情報として揚げられているのは、移動させるデータを持つファイル名、移動先のファイル名、及びコピー・ペーストの回数である。関連度の計算例として、利用日時の時間差分の数値を、コピー・ペーストの発生回数に１を加えた値で除すことが示されている。
【０００８】
特許文献４（特開２００６−２９３９３６号公報）には、ファイル関連取得装置が開示されている。このファイル関連取得装置は、ファイル編集情報テーブルを用いる。このテーブルには、ファイル名、開かれた時間、視認可能時間累計、閉じた時間、及び保存履歴の有無が含まれる。視認可能時間累計とは、フォアグラウンドになっている時間、アクティブとはなっていないがユーザーが少なくとも一部でも当該ファイルウィンドウを視認可能な状態にある時間の累計を表す。
【０００９】
特許文献５（特開２００８−１７６５８７号公報）には、ドキュメントの格納構造によるファイル管理システムが開示されている。このドキュメントの格納構造によるファイル管理システムは、複数の分類項目に対して与えられた分類情報から、階層構造のファイル管理システムにおける記録場所を自動的に判定し、記録させる。
【００１０】
特許文献６（特開２００８−２１７０８７号公報）には、電子ファイル関連強度自動算出プログラムが開示されている。この電子ファイル関連強度自動算出プログラムは、ファイルのファイル名、フォルダ名、オープン時刻、及びクローズ時刻を記録し、ファイルがオープンされていた時間の重複部分の長さを、ファイルの関連度とする。そして、電子ファイル関連強度自動算出プログラムは、注目しているファイルと関連度が高いファイル、これらファイルと関連度が高いファイル、というように、ファイルを表示する。
【００１１】
特許文献７（特開２００８−２５０９０９号公報）には、ファイル管理方法が開示されている。このファイル管理方法は、階層構造のディレクトリにおいて、複数ディレクトリの積集合、和集合、及び補集合を表示する。また、このファイル管理方法は、積集合に対してファイルの操作を許すことで、複数のディレクトリに対する操作を一度に実行できる。ディレクトリの積集合と他のディレクトリとの集合的な関係を表示させる手段も有する。
【００１２】
特許文献８（特開２００９−１５１６２７号公報）には、情報関連付けシステムが開示されている。この情報関連付けシステムは、キーワードの重要度をコンテクストから算出する。コンテクストには、キーワードが入力された場所と、編集履歴の有無、表示回数、表示時間の四つが含まれる。
【００１３】
特許文献９（特開２００８−４６８２４号公報）には、データ選択支援プログラムが開示されている。このデータ選択支援プログラムは、どのデータがいつアクティブになったかを記録する。非アクティブになってからアクティブになるまでの時間が一定値以下であれば、この期間もアクティブであったとみなす（補間する）。複数のデータが同時にアクティブになることはないが、補間によって複数のファイルが同時にアクティブになったとみなす。同時にアクティブになった時間が長いほど、データ間の関連度は高くなる。
【００１４】
特許文献１０（特開２００９−３５５３号公報）には、ファイル検索システムが開示されている。このファイル検索システムは、アクセスログからファイルが使用されているか否かを判断する。アクセスログに記録されるイベントとして明記されているのは、ファイルのオープンとクローズであり、短い間隔でアクセスログが記録されているファイルは使用中であるとみなす。そして、このファイル検索システムは、ファイルが同時に使用された時間、回数、間隔、オープンされてから使用が開始されるまでの時間から、ファイルの関連度を計算する。
【００１５】
非特許文献１には、ユーザーの行動から得られるコンテクスト情報を、コンテンツに基づく検索において用いるファイル検索ツールが提案されている。用いるコンテクスト情報は、ファイルシステムへのシステムコールである。そして、ファイルのオープン、読み出し、書き込み、メモリへのマップ、ディレクトリ情報の読み出し、ハンドルの複製、リンクの作成、及び名前の変更を行うシステムコールを記録する。そして、ある与えられた時間内でシステムコールを受けたファイルの関連度が高いとみなす。
【００１６】
非特許文献２には、ファイルサーバーのアクセスログとして記録された、ファイルのオープンとクローズの時刻から同時オープン時間の重なりを算出し、これをファイルの関連度とする方法が示されている。この方法では、入力されたキーワードに対して検索結果を返すが、関連度とキーワードベースの全文検索による評価結果が高いほど、ランキングが高くなる。キーワードを含まないファイルの関連度は、このファイルとの関連度が正で、キーワードを含むファイルの全文検索の評価結果が、このファイルの関連度に足しこまれる。
【００１７】
非特許文献３には、ファイル全体ではなく、ファイルの部分であるスニペットのコンテクスト情報から、ファイルの関連度を算出する。スニペットの情報として、１）スニペットの識別子、２）閲覧回数、３）閲覧時間、４）そのスニペットを含むファイルのアクセス回数、の四つを記録する。閲覧したかどうかは、ウィンドウがアクティブになったかどうかや、最小化されたかどうかから判断する。ウィンドウ表示が変化するたびに、異なるスニペットが表示されたとみなして情報を取得し、関連度を計算する際にはスニペットをマージする。
【００１８】
コンテクストを使ったファイル管理は、広い意味ではユーザーが求める情報を推薦しているともみなせる。このような推薦システムは、書籍や、映画、音楽などを推薦して、購買活動を促進するという目的を持っている。したがって、購買につながり得る情報を自動的に推薦または提示している。以下に、推薦に関する技術を列挙する。
【００１９】
特許文献１１（特開２００６−３１３４８６号公報）に記載の携帯端末は、アプリケーション実行途中の情報、ユーザーの嗜好、更新日時、リアルタイム性、利用頻度、利用履歴、電波状況、バッテリー残量、課金情報等を取得する。そして、携帯端末はアプリケーションに優先順位をつけ、順位の高い順にアプリケーション及び各アプリケーションの内容を表示する。このようにして、携帯端末は特定の目的を持たないユーザーにアプリケーションを推薦する。
【００２０】
特許文献１２（特開２００７−４１９７１号公報）に記載の推薦システムは、購買履歴のない消費者に対して商品を推薦することを目的としている。実施例では、デジタルカメラについて述べられ、商品属性として、メーカー名、製品名、一眼レフなどが挙げられている。そして、推薦システムはこれらの属性について、ユーザーが指定した重みをつけて購買履歴なしで推薦する。この方法は、リコメンデーション方法の分類としてはコンテンツベースフィルタリングに属する。次の段落で、この分類について説明する。
【００２１】
アンケートベースリコメンデーションでは、ユーザーに入力してもらった性別、年齢、職業などに基づいて商品を推薦する。ルールベースリコメンデーションは、購買履歴やアクセス履歴を用い、与えられたルールに基づいて商品を推薦する。リアルタイムリコメンデーションは、ルールベースと同じく購買履歴やアクセス履歴を用いるが、これらの情報に統計分析を加え、自動的にＷＥＢ上でリアルタイムに商品を推薦する。リアルタイムリコメンデーションには、協調フィルタリングとコンテンツベースフィルタリングがある。協調フィルタリングは、似た嗜好の人には同じ物を推薦する。コンテンツベースフィルタリングは、商品などのコンテンツの情報を用いて、個別ユーザーのレスポンスを観察、学習して最適な推薦を実現する方法である。
【００２２】
特許文献１３（特開２００８−２２５７８１号公報）に記載のレコメンデーション装置は、ユーザーの端末がネットワークに接続される時間帯を、ユーザー毎に記録する。ネットワークに接続している時間帯が重なっているユーザー間では、リアルタイムのコミュニケーションを行える可能性と、ユーザーが書いた記事を他のユーザーがすぐに見てもらえる可能性とが高くなる。
【００２３】
特許文献１４（特開２００９−３７２０号公報）に記載のレコメンデーション装置は、ネットワーク上のサーバに格納された記事の表示を開始した時刻と、その記事に対する書き込み情報を送信した時刻との差を示すレスポンス時間を、ユーザー毎に記録する。実施の形態では、ブログやＳＮＳ（Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋｉｎｇ  Ｓｅｒｖｉｃｅ）のような閲覧と入力とを行うサイトが挙げられている。レスポンス時間は、ユーザーの類似度の評価に用いられる。
【００２４】
非特許文献４の７３５ページでは、リコメンデーション方法を以下の三つに分類している。コンテンツベースリコメンデーションは、過去に自身が好んだアイテムを推薦する方法である。コラボレーティブリコメンデーションは、似たような嗜好を持つ人々が過去に好んだアイテムを推薦する方法である。ハイブリッドアプローチは、上記二つの方法を組み合わせた方法である。尚、非特許文献５、６、７でも同様の分類をしている。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開２００２−２０７７２６号公報
【特許文献２】特開２００４−４６７９６号公報
【特許文献３】特開２００６−２６８５９８号公報
【特許文献４】特開２００６−２９３９３６号公報
【特許文献５】特開２００８−１７６５８７号公報
【特許文献６】特開２００８−２１７０８７号公報
【特許文献７】特開２００８−２５０９０９号公報
【特許文献８】特開２００９−１５１６２７号公報
【特許文献９】特開２００８−４６８２４号公報
【特許文献１０】特開２００９−３５５３号公報
【特許文献１１】特開２００６−３１３４８６号公報
【特許文献１２】特開２００７−４１９７１号公報
【特許文献１３】特開２００８−２２５７８１号公報
【特許文献１４】特開２００９−３７２０号公報
【非特許文献】
【００２６】
【非特許文献１】Ｓｏｕｌｅｓ，Ｃ．Ａ．Ｎ．  ａｎｄ  Ｇａｎｇｅｒ，Ｇ．Ｒ．、「Ｃｏｎｎｅｃｔｉｏｎｓ  Ｕｓｉｎｇ  Ｃｏｎｔｅｘｔ  ｔｏ  Ｅｎｈａｎｃｅ  Ｆｉｌｅ  ｓｅａｒｃｈ」、ＡＣＭ  ＳＩＧＯＰＳ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍｓ  Ｒｅｖｉｅｗ、Ｖｏｌｕｍｅ３９、Ｉｓｓｕｅ５、Ｄｅｃｅｍｂｅｒ  ２００５、ｐ．１１９−１３２
【非特許文献２】渡部徹太郎、小林隆志、横田治夫、「キーワード非含有ファイルを検索可能とするファイル間関連度を用いた検索手法の評価」、電子情報通信学会、第１９回データ工学ワークショップ論文集、２００８年３月
【非特許文献３】Ｇｙｌｌｓｔｒｏｍ，Ｋ．  ａｎｄ  Ｓｏｕｌｅｓ，Ｃ．、「Ｓｅｅｉｎｇ  ｉｓ  ｒｅｔｒｉｅｖｉｎｇ：Ｂｕｉｌｄｉｎｇ  ｉｎｆｏｒｍａｔｉｏｎ  ｃｏｎｔｅｘｔ  ｆｒｏｍ  ｗｈａｔ  ｔｈｅ  ｕｓｅｒ  ｓｅｅｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １３ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅｓ、２００８、ｐ．１８９−１９８
【非特許文献４】Ａｄｏｍａｖｉｃｉｕｓ，Ｇ．  ａｎｄ  Ｔｕｚｈｉｌｉｎ，Ａ．、「Ｔｏｗａｒｄ  ｔｈｅ  Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  ｏｆ  Ｒｅｃｏｍｍｅｎｄｅｒ  Ｓｙｓｔｅｍｓ：Ａ  Ｓｕｒｖｅｙ  ｏｆ  ｔｈｅ  Ｓｔａｔｅ−ｏｆ−ｔｈｅ−Ａｒｔ  ａｎｄ  Ｐｏｓｓｉｂｌｅ  Ｅｘｔｅｎｓｉｏｎｓ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｋｎｏｗｌｅｄｇｅ  ａｎｄ  Ｄａｔａ  Ｅｎｇｉｎｅｅｒｉｎｇ、Ｖｏｌ．１７、Ｎｏ．６、Ｊｕｎｅ  ２００５
【非特許文献５】神嶌敏弘、「推薦システムのアルゴリズム  （１）」、人工知能学会誌、２２巻、６号、２００７年１１月、ｐ．８２６−８３７
【非特許文献６】神嶌敏弘、「推薦システムのアルゴリズム  （２）」、人工知能学会誌、２３巻、１号、２００８年１月、ｐ．８９−１０３
【非特許文献７】神嶌敏弘、「推薦システムのアルゴリズム  （３）」、人工知能学会誌、２３巻、２号、２００８年３月、ｐ．２４８−２６３
【発明の概要】
【発明が解決しようとする課題】
【００２７】
コンテクストを用いたファイル管理には、同時に利用するファイルを適切に特定できない問題がある。これは、ファイルの関連度が、ある一時点におけるファイルの同時利用に関するデータに基づいて計算されているからである。つまり、時間的な広がりを持つ同時利用のデータから導かれる関連度が、十分に考慮されてはいなかった。
【００２８】
コンテクストを用いないファイル管理にも、同時に利用するファイルを適切に特定できない問題がある。コンテクストを用いないファイル管理で典型的なものは、階層的なディレクトリ及びキーワード検索である。ディレクトリを使う場合には、ファイルを適切なディレクトリに作成する必要がある。そして、ファイル間の依存関係が複雑であるほど、適切なディレクトリを作成することは困難になる。また、ファイルのコピーを作成することなく、一つのディレクトリに同時にアクセスされうるファイルを集めることも困難である。しかし、コピーを作成した場合、記憶容量が無駄になるだけでなく、ファイルの更新管理も困難になる。
【００２９】
キーワード検索では、ウェブ上のサイトであれ、コンピュータにローカルに記録されたファイルであれ、キーワードが含まれるデータを優先度付けして列挙している。しかし、１）適切なキーワードを選択しなければならないこと、２）同時にアクセスされやすいデータが同じキーワードを含むとは限らないこと、３）優先度が適切に設定されるとは限らないこと、４）関連するデータを一括して確認できるとは限らないこと、という四つことが問題となりうる。
【００３０】
更に、これまでの推薦システムは、書籍、映画、及び音楽などを推薦して、購買活動を促進するという目的を持っており、単に同時にアクセスされやすい情報を提示または推薦するという意図はなかった。
【００３１】
本発明の目的は、同時にアクセスされやすいファイルを的確に特定できるファイル管理システムを提供することにある。
【課題を解決するための手段】
【００３２】
本発明のファイル管理システムは、複数のファイルの各々が操作されたことを検出するイベントフック部と、イベントフック部の検出に基づいて、複数のファイルの各々がアクティブになった操作時刻を含む操作履歴を記録する操作履歴記録部と、複数のファイルのうちで、同時に利用される２つのファイル同士の関連性が高くなるにつれ高い値となり、関連性が低くなるにつれて低い値となる推定値を、操作履歴に基づいて算出するイベント解析部とを具備する。イベント解析部は、第１ファイルの次にアクティブになった第２ファイルのアクティブ時間が長くなるにつれて、第１ファイルと第２ファイルとに対する第１推定値を増加させるように算出する。
【００３３】
本発明のファイリ管理方法は、複数のファイルの各々が操作されたことを検出するステップと、検出に基づいて、複数のファイルの各々がアクティブになった操作時刻を含む操作履歴を記録するステップと、複数のファイルのうちで、同時に利用される２つのファイル同士の関連性が高くなるにつれ高い値となり、関連性が低くなるにつれて低い値となる推定値を、操作履歴に基づいて算出するステップとを具備する。操作履歴に基づいて算出するステップは、第１ファイルの次にアクティブになった第２ファイルのアクティブ時間が長くなるにつれて、第１ファイルと第２ファイルとに対する第１推定値を増加させるように算出するステップを備える。
【００３４】
本発明のファイリ管理プログラムは、複数のファイルの各々が操作されたことを検出するステップと、検出に基づいて、複数のファイルの各々がアクティブになった操作時刻を含む操作履歴を記録するステップと、複数のファイルのうちで、同時に利用される２つのファイル同士の関連性が高くなるにつれ高い値となり、関連性が低くなるにつれて低い値となる推定値を、操作履歴に基づいて算出するステップとをコンピュータ実行可能に具備する。操作履歴に基づいて算出するステップは、第１ファイルの次にアクティブになった第２ファイルのアクティブ時間が長くなるにつれて、第１ファイルと第２ファイルとに対する第１推定値を増加させるように算出するステップを備える。
【発明の効果】
【００３５】
本発明のファイル管理システムは、同時にアクセスされやすいファイルを的確に特定することができる。
【図面の簡単な説明】
【００３６】
【図１】図１は、本発明のファイル管理システム１を示すブロック図である。
【図２】図２は、ディレクトリ表示部９０が表示するディレクトリの一例を示す図である。
【図３】図３は、イベント解析部８０が算出する遷移情報を遷移テーブルとして表したものである。
【図４】図４は、ファイル管理システム１の実施の形態における、ハードウエア構成例を示すブロック図である。
【図５】図５は、本発明の実施の形態によるファイル管理システム１の処理動作を示すフローチャートである。
【図６】図６は、表示履歴記録部５０が実行するオープン処理を示すフローチャートである。
【図７】図７は、表示履歴記録部５０が実行するクローズ処理を示すフローチャートである。
【図８】図８は、操作履歴記録部６０が実行するアクティブ処理を示すフローチャートである。
【図９】図９は、ディレクトリ処理を示すフローチャートである。
【発明を実施するための形態】
【００３７】
以下、添付図面を参照して本発明の実施の形態によるファイル管理システムを説明する。
【００３８】
図１は、本発明のファイル管理システム１を示すブロック図である。図１を参照すると、ファイル管理システム１は、操作部１０と、ファイル実行部２０と、イベントフック部３０と、タイマ部４０と、表示履歴記録部５０と、操作履歴記録部６０と、ログファイル格納部７０、イベント解析部８０と、ディレクトリ表示部９０とを具備する。
【００３９】
操作部１０は、ユーザーの入力に基づいて、ウィンドウシステムレベルでのファイル操作を行うための指示を出力する。ファイル操作には、例えば、ファイルのオープン、クローズ、及びアクティブウィンドウの変化などがある。また、操作部１０は、ユーザーの入力に基づいて、ディレクトリ表示部９０にディレクトリを表示させる指示や、表示されたディレクトリを更新する指示や、ディレクトリにおけるフォーカスファイルの変更の指示などを出力する。
【００４０】
ファイル実行部２０は、操作部１０の指示に基づいてファイルのオープン、クローズ、及びアクティブウィンドウの変化など、ファイル操作を実行する。
【００４１】
イベントフック部３０は、発生したイベントを検出し、どのような処理を行うのかを判定する。詳細には、イベントフック部３０は、ファイルのオープン、クローズ、及びアクティブウィンドウの変化など、ファイル実行部２０で実行されたウィンドウシステムレベルでの、複数のファイルの各々が操作されたことを示すイベント（以降、記録に関するイベントと称する）を検出する。イベントフック部３０は、記録に関するイベントとして、ファイルのオープンまたはクローズを表すイベントを検出すると、表示履歴記録部５０にそのイベントの記録を依頼する。また、イベントフック部３０は、記録に関するイベントとして、アクティブウィンドウの変化を表すイベントを検出すると、操作履歴記録部６０にそのイベントの記録を依頼する。
【００４２】
更に、イベントフック部３０は、ディレクトリ表示部９０にディレクトリを表示させるイベントや、ディレクトリ表示部９０に表示されたディレクトリを更新させるイベントや、ディレクトリにおけるフォーカスファイルの変更させるイベントなど、ディレクトリに係るイベント（以降、表示に関するイベントと称する）を検出する。イベントフック部３０は、表示に関するイベントとして、ディレクトリの表示、及び表示されたディレクトリの更新を表すイベントを検出すると、イベント解析部８０にディレクトリの処理要求を提供する。例えば、表示されたディレクトリの更新を表すイベントは、ユーザーが更新ボタンを押したことを示すイベントや、一定の時間が経過したときに発生するイベントや、アクティブウィンドウの変化が指定された回数起きたときに発生するイベントなど、予め指定されたイベントが例示される。また、イベントフック部３０は、表示に関するイベントとして、フォーカスファイルの変更を表すイベントを検出すると、イベント解析部８０にフォーカスファイルの変更要求を提供する。フォーカスファイルの変更を表すイベントも、事前に与えられる。
【００４３】
タイマ部４０は、現在時刻を有し、表示履歴記録部５０及び操作履歴記録部６０の要求に基づいて、現在時刻を提供する。
【００４４】
表示履歴記録部５０は、イベントフック部３０の検出に基づいて、複数のファイルの各々の操作が開始されたことを示すオープン時刻と、操作が終了した時刻を示すクローズ時刻とを含む表示履歴７１を記録する。表示履歴記録部５０は、ファイルのオープンを表すイベントの記録依頼をイベントフック部３０から受け取ると、新たな表示履歴７１を記録する処理（オープン処理）を実行する。詳細には、表示履歴記録部５０は、ファイルのオープンを表すイベントの記録依頼に基づいて、タイマ部４０から現在時刻を取得する。次に、表示履歴記録部５０は、ファイル識別子と、オープン時刻と、クローズ時刻との項目を含む新たな表示履歴７１を作成する。そして、表示履歴記録部５０は、オープンされたファイルのファイル識別子を読み取る。表示履歴記録部５０は、ファイル識別子と、現在時刻とを表示履歴７１に書き込む。このとき、現在時刻はオープン時刻として表示履歴７１に書き込まれる。
【００４５】
また、表示履歴記録部５０は、ファイルのクローズを表すイベントの記録依頼をイベントフック部３０から受け取ると、ログファイル格納部７０に格納された対応する表示履歴７１にクローズ処理を実行する。詳細には、表示履歴記録部５０は、ファイルのクローズを表すイベントの記録依頼に基づいて、タイマ部４０から現在時刻を取得する。次に、表示履歴記録部５０は、クローズされたファイルのファイル識別子を読み取る。表示履歴記録部５０は、ログファイル格納部７０を参照して、クローズされたファイル識別子を有し、クローズ時刻が書き込まれていない表示履歴を抽出する。表示履歴記録部５０は、現在時刻を抽出した表示履歴のクローズ時刻に書き込む。
【００４６】
操作履歴記録部６０は、イベントフック部３０の検出に基づいて、複数のファイルの各々の操作がアクティブになった操作時刻を含む操作履歴７２を記録する。操作履歴記録部６０は、アクティブウィンドウの変化を表すイベントの記録依頼を受け取ると、新たな操作履歴７２を記録する処理（アクティブ処理）を実行する。詳細には、操作履歴記録部６０は、アクティブウィンドウの変化を表すイベントの記録依頼に基づいて、タイマ部４０から現在時刻を取得する。次に、操作履歴記録部６０は、ファイル識別子と、操作時刻との項目を含む新たな操作履歴７２を作成する。そして、操作履歴記録部６０は、アクティブな状態になった（現アクティブウィンドウで開かれている）ファイルのファイル識別子を取得する。操作履歴記録部６０は、ファイル識別子と、現在時刻とを操作履歴７２に書き込む。このとき、現在時刻は操作時刻として操作履歴７２に書き込まれる。
【００４７】
ログファイル格納部７０は、表示履歴記録部５０が記録する複数の表示履歴７１と、操作履歴記録部６０が記録する複数の操作履歴７２とを格納する。複数の表示履歴７１の各々は、ファイルを識別するファイル識別子と、ファイルがオープンされた時刻を示すオープン時刻と、ファイルがクローズされた時刻を示すクローズ時刻とを含む。複数の操作履歴７２各々は、アクティブになったファイルを識別するファイル識別子と、ファイルがアクティブになった時刻を示す操作時刻とを含む。
【００４８】
イベント解析部８０は、イベントフック部３０から受け取るディレクトリの処理要求及びフォーカスファイルの変更要求に基づいて、ファイル同士が同時にアクセルされる推定値（以降、コンカレンシーと称する）を算出する。コンカレンシーは、複数のファイルのうちで、同時に利用される２つのファイル同士の関連性が高くなるにつれ高い値となり、関連性が低くなるにつれて低い値となる。イベント解析部８０は、複数の表示履歴７１と複数の操作履歴７２とに基づいてコンカレンシーを算出する。イベント解析部８０は、算出したコンカレンシーをディレクトリ表示部９０へ提供する。コンカレンシーの算出方法の詳細は後述する。
【００４９】
ディレクトリ表示部９０は、フォーカスファイルとイベント解析部８０から受け取るコンカレンシーとに基づいて、フォーカスファイル及びフォーカスファイルと同時にアクセスされやすいファイルをディレクトリとして一括表示する。フォーカスファイルとは、ユーザーが着目しているファイルであり、同時利用されるファイルを表示するための基準となるファイルである。つまり、ディレクトリ表示部９０は、複数のファイルのうちから指定されたファイルをフォーカスファイルとし、コンカレンシーに基づいて、複数のファイルの各々をフォーカスファイルに対して関連付けて表示する。ディレクトリ表示部９０は、本発明のファイル管理システム１が起動したときなど、ディレクトリの表示を開始するときは、例えば、現在アクティブなファイルをフォーカスファイルとしてディレクトリを表示する。また、ディレクトリ表示部９０は、ディレクトリを表示しているときは、フォーカスファイルを変更せずにディレクトリを再表示する。更に、ユーザーは操作部１０に基づいて、唯一のフォーカスファイルを指定することもできる。つまり、ディレクトリ表示部９０は、操作部１０からフォーカスファイルを変更する指示を受け取ると、指定されたフォーカスファイルに基づいてディレクトリを再表示する。
【００５０】
図２は、ディレクトリ表示部９０が表示するディレクトリの一例を示す図である。図２を参照すると、ディレクトリ表示部９０は、ある時点におけるコンカレンシーに基づいて、ユーザーが着目しているフォーカスファイルと、フォーカスファイルと同時にアクセスされる可能性が高い複数のファイルとを関連付けて表示する。原則的には、ディレクトリ表示部９０は、コンカレンシーが大きいファイル同士を近くに表示する。尚、イベント解析部８０は、フォーカスファイルと、フォーカスファイルと同時にアクセスされる可能性がある一次関連ファイルとの間のコンカレンシーを計算している。一次ファイルと同時にアクセスする可能性がある二次関連ファイル、さらに三次以上の関連ファイルの扱いは、事前の設定に従う。つまり、ディレクトリ表示部９０が表示するディレクトリの範囲は事前の設定に従う。図２において、Ｆｉｌｅ１から３は一次関連ファイルを示し、Ｆｉｌｅ４から８は二次関連ファイルを示し、Ｆｉｌｅ９は三次関連ファイルを示す。図２では、ディレクトリ表示部９０は、３次関連ファイルまで表示するように設定されている。
【００５１】
イベント解析部８０におけるコンカレンシーの算出方法について説明する。イベント解析部８０は、ディレクトリの処理要求又はフォーカスファイルの変更要求を受け取ると、ログファイル格納部７０の複数の表示履歴７１と複数の操作履歴７２とを用いて、遷移情報を算出する。そして、イベント解析部８０は、遷移情報に基づいてコンカレンシーを算出する。具体的には、まず、イベント解析部８０は、「ファイルＡがアクティブな状態で、ファイルＢがアクティブになった」という、複数のファイル間でアクティブ状態の遷移が起きたときの情報を利用して遷移情報を算出する。本実施の形態では、遷移情報は、前ファイルと、現ファイルと、遷移回数と、アクティブ時間と、同時オープン時間とを含む。前ファイルは、２つのファイルの間の遷移に着目したとき、前述したファイルＡのように、アクティブな状態からアクティブでない状態へ遷移したファイルである。現ファイルは、ファイルＢのように、前ファイルの次にアクティブな状態となったファイルである。遷移回数は、前ファイルから現ファイルへ、アクティブな状態の遷移が起きた回数である。アクティブ時間は、現ファイルがアクティブな状態となっている時間の累積値である。同時オープン時間は、前ファイルと、現ファイルとが同時にオープンされている時間である。尚、これら五つの情報を含む遷移情報は、テーブル（以降、遷移テーブルと称する）で表現することもできる。図３は、イベント解析部８０が算出する遷移情報を遷移テーブルとして表したものである。図３を参照すると、２つのファイル間のアクティブな状態の遷移に対応して、前ファイル、現ファイル、同時オープン時間、アクティブ時間、及び遷移回数が算出されている。
【００５２】
イベント解析部８０は、ディレクトリを更新させる要求を受け取ると、未反映の複数の操作履歴７２に基づいて遷移情報を算出する。つまり、イベント解析部８０は、未反映の複数の操作履歴７２のファイル識別子を持つファイルを、現ファイルとしてそれぞれ抽出する。そして、イベント解析部８０は、抽出した現ファイルに対応する前ファイルを抽出する。更に、イベント解析部８０は、未反映の複数の操作履歴７２に基づいて、前ファイルから現ファイルへ遷移した遷移回数と、現ファイルのアクティブ時間とを算出する。このとき、イベント解析部８０は、算出した遷移回数とアクティブ時間とが、既に遷移情報として生成された現ファイルと前ファイルとの組に対応する場合、算出した値をその遷移情報に加算する。
【００５３】
次に、イベント解析部８０は、未反映の複数の表示履歴７１に基づいて遷移情報を算出する。つまり、イベント解析部８０は、未反映の複数の表示履歴７１に基づいて、現ファイルと前ファイルとが同時にオープンされている同時オープン時間を算出する。このとき、イベント解析部８０は、算出した同時オープン時間が、既に遷移情報として生成された現ファイルと前ファイルとの組に対応する場合、算出した値をその遷移情報に加算する。これらの処理によって、遷移情報が算出される。
【００５４】
コンカレンシーは、原則的に、アクティブになった時間が近いファイル同士、即ち、操作履歴における操作時刻が近いファイル識別子を有するファイル同士において高くなる。また、コンカレンシーは、ファイル同士が同時にオープンされている度合い、即ち、各ファイルの表示履歴におけるオープン時刻と、クローズ時刻との重なりが大きいファイル識別子を有するファイル同士で高くなる。詳細には、イベント解析部８０は、遷移情報を参照し、現ファイルと前ファイルとからなる２つのファイルの各組に対して、同時オープン時間、アクティブ時間、及び遷移回数の３つの情報に基づいて、コンカレンシーを算出する。具体例として、ファイルｉとファイルｊとに対するコンカレンシーの算出方法を説明する。ファイルｉからファイルｊにアクティブな遷移が起きているとして、この遷移情報に基づいてコンカレンシーを算出する。ここでは、ファイルｉが前ファイルであり、ファイルｊが現ファイルとなる。ファイルｉとファイルｊとのコンカレンシーをｃ（ｉ，ｊ）とすると、コンカレンシーの計算式は関数ｆを用いて式（１）のように記述できる。尚、関数ｆはコンカレンシーを算出するために予め与えられる関数である。
ｃ（ｉ，ｊ）＝ｆ（ｓ（ｉ，ｊ），ｔ（ｉ，ｊ），ａ（ｉ，ｊ））    ・・・（１）
ここで、ｓ（ｉ，ｊ）はファイルｉとファイルｊとの同時オープン時間を表し、ｔ（ｉ，ｊ）はファイルｉからファイルｊへの遷移回数を表し、ａ（ｉ，ｊ）はファイルｉからファイルｊに遷移した場合において、ファイルｊがアクティブになったアクティブ時間を表す。関数ｆを特定する必要はないが、いくつかの性質を持つ関数ｆは固有の利点を持つ。以下、関数ｆについて説明する。
【００５５】
ファイルｉがアクティブの状態のとき、直後にアクティブな状態なり、且つ、アクティブでいる時間が長いファイルｊは、ファイルｉと同種の作業に用いられている可能性が高い。そこで、関数ｆをアクティブ時間ａに対して単調増加するように定めると、同時に閲覧または操作するファイルｉとファイルｆとのコンカレンシーが高く算出できる。つまり、イベント解析部８０は、ファイルｉの次にアクティブになったファイルｊのアクティブ時間ａが長くなるにつれて、ファイルｉとファイルｊとに対するコンカレンシーを増加させるように算出する。尚、イベント解析部８０は、ファイルｉの操作時刻と、ファイルｊの操作時刻と、ファイルｊの次にアクティブになったファイルの操作時刻とに基づいて、ファイルｊのアクティブ時間ａを算出することができる。このようにして、本発明のファイル管理システム１は、アクティブ時間ａを考慮することで、ファイルｉと、同時にアクセスされ易いファイルｊを適切に特定できる効果を奏している。
【００５６】
一方、ファイルｉの次にアクティブになるファイルｊのアクティブ時間ａが短ければ、アクティブ時間ａが短いファイルｊは、ファイルｉと異なる他のファイルと同時作業するために開かれている可能性が高い。そこで、関数ｆをアクティブ時間ａと同時オープン時間ｓとの比に対して単調増加するように定めると、ファイルｉとは関連しない作業をするためにオープンされていたファイルｊのコンカレンシーを低くすることができる。つまり、イベント解析部８０は、表示履歴７１に基づいて、ファイルｉとファイルｊとが同時にオープンしていた同時オープン時間ｓを算出し、コンカレンシーをアクティブ時間ａと同時オープン時間ｓの比（アクティブ時間ａ／同時オープン時間ｓ）に対して増加させるように算出する。本発明のファイル管理システム１は、アクティブ時間ａと同時オープン時間ｓとの比を考慮することで、同時にオープンされていてもファイルｉと関連性の低いファイルｊを特定できる効果を奏する。
【００５７】
また、遷移しても短時間しか作業しないファイルｊは、短時間の参照のような重要性が低い作業に使われている可能性が高い。そこで、関数ｆをアクティブ時間ａと遷移回数ｔとの比に対して単調増加するように定めると、ファイルｉと、同時に作業する重要性が低いファイルｊのコンカレンシーを低くすることができる。つまり、イベント解析部８０は、操作履歴７２に基づいて、ファイルｉの次にファイルｊがアクティブになった遷移回数を算出し、コンカレンシーをアクティブ時間ａと遷移回数ｔの比（アクティブ時間ａ／遷移回数ｔ）に対して増加させるように算出する。このように、本発明のファイル管理システム１は、アクティブ時間ａと遷移回数ｔとの比を考慮することで、ファイルｉの次にアクティブになる遷移回数が多くても、関連性の低いファイルｊを特定できる効果を奏する。
【００５８】
以上のように、本発明のファイル管理システム１は、２つ以上のファイルを考慮すれば、オープンされているファイルの中でも、フォーカスファイルと特に関連性の高いファイルを的確に特定することができる。何故なら、フォーカスファイルと関連があるファイルをオープンされているファイルの中から探す場合、アクティブ時間ａが短いファイルは関連性が低いファイルである可能性が高いからである。
【００５９】
更に、逆方向の遷移、つまりファイルｊからファイルｉへのアクティブ状態の遷移を考慮することも有益である。前述したコンカレンシーの設定は、逆方向にも成り立つ見込みが大きいからである。つまり、コンカレンシーを以下の式（２）で表現するのは有益である。但し、ｓ（ｉ，ｊ）＝ｓ（ｊ，ｉ）であることに注意する。
ｃ（ｉ，ｊ）＝ｆ（ｓ（ｉ，ｊ），ｔ（ｉ，ｊ），ａ（ｉ，ｊ），ｔ（ｊ，ｉ），ａ（ｊ，ｉ））    ・・・（２）
【００６０】
更に、イベント解析部８０は、各種の例外処理を行う。例外処理の対象は、大部分のファイルから遷移が発生しているファイルである。このようなファイルは、典型的にはメールを記録したファイル、検索エンジンのＨＴＭＬファイル、雑記用のメモなどである。これらは特定のファイルとの同時作業に用いられるというよりは、常時利用されるという方が適切である。そこで、イベント解析部８０は、大部分のファイルに遷移が発生するファイルのコンカレンシーは考慮しないように処理する。例えば、イベント解析部８０は、あるファイルと複数のファイルの各々とに対するコンカレンシーが所定の値より高く、且つ、複数のファイルの数が所定数より多い場合、ファイルｉとあるファイルとに対するコンカレンシーを低下させるように算出する。この処理によって、ディレクトリ表示部９０は、そのようなファイルを除いてディレクトリを表示することができる。一方で、イベント解析部８０は、あまりに少数のファイルに対しての遷移しかなく、遷移回数ｔとアクティブ時間ａとが小さいファイルのコンカレンシーも考慮しないように処理する。何故なら、このようなファイルは継続して利用される見込みが低いからである。例えば、イベント解析部８０は、あるファイルと複数のファイルの各々とに対するコンカレンシーが所定の値より高く、且つ、複数のファイルの数が所定数より少ない場合、ファイルｉとあるファイルとに対するコンカレンシーを低下させるように算出する。この処理によって、ディレクトリ表示部９０は、そのようなファイルを除いてディレクトリを表示することができる。本発明のファイル管理システム１は、ファイルがアクティブな状態になる遷移を考慮することで、これらの例外処理も行うことができる。
【００６１】
本発明の実施の形態によるファイル管理システム１は、コンピュータを用いて実現可能である。図４は、ファイル管理システム１の実施の形態における、ハードウエア構成例を示すブロック図である。図４を参照すると、本発明のファイル管理システム１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００と、記憶装置１０１と、入力装置１０２と、出力装置１０３と、各装置を接続するバス１０４とを備えるコンピュータシステムで構成される。
【００６２】
ＣＰＵ１００は、記憶装置１０１に格納されている本発明のファイル管理システム１に係る演算処理及び制御処理を行う。記憶装置１０１は、ハードディスクやメモリなど、情報の記録を行う装置である。記憶装置１０１は、ＣＤ−ＲＯＭやＤＶＤ等のコンピュータ読み取り可能な記憶媒体から読み取られたプログラム、入力装置１０２から入力された信号やプログラム、及びＣＰＵ１００の処理結果を格納する。入力装置１０２は、マウス、キーボード、マイクロフォンなど、ユーザーがコマンド及び信号を入力することが出来る装置である。出力装置１０３は、ディスプレイ、スピーカなど、ユーザーに出力結果を認識させる装置である。尚、本発明はハードウエア構成例と示したものに限定されず、各部はハードウエアとソフトウエアとを単独又は組み合わせて実現することが出来る。
【００６３】
図５は、本発明の実施の形態によるファイル管理システム１の処理動作を示すフローチャートである。図５を参照して、ファイル管理システム１の処理動作を説明する。
【００６４】
イベントフック部３０は、発生したイベントを検出する（ステップＡ１）。イベントフック部３０は、検出したイベントが記録に関するイベントであるか、表示に関するイベントあるかを判定する（ステップＡ２）。
【００６５】
ステップＡ２において、イベントフック部３０は、記録に関するイベントであると判定すると、更に、記録に関するイベントの詳細を判定する（ステップＡ３）。
【００６６】
ステップＡ３において、イベントフック部３０は、記録に関するイベントとして、ファイルのオープンを表すイベントを検出すると、表示履歴記録部５０にそのイベントの記録を依頼する。表示履歴記録部５０は、ファイルのオープンを表すイベントの記録依頼をイベントフック部３０から受け取ると、新たな表示履歴７１を記録する処理（オープン処理）を実行する（ステップＡ４）。その後、イベントフック部３０は、イベント待ちの状態になる（ステップＡ１０）。
【００６７】
ステップＡ３において、イベントフック部３０は、記録に関するイベントとして、ファイルのクローズを表すイベントを検出すると、表示履歴記録部５０にそのイベントの記録を依頼する。表示履歴記録部５０は、ファイルのクローズを表すイベントの記録依頼をイベントフック部３０から受け取ると、クローズ処理を実行する（ステップＡ５）。その後、イベントフック部３０は、イベント待ちの状態になる（ステップＡ１０）。
【００６８】
ステップＡ３において、イベントフック部３０は、記録に関するイベントとして、アクティブウィンドウの変化を表すイベントを検出すると、操作履歴記録部６０にそのイベントの記録を依頼する。操作履歴記録部６０は、アクティブウィンドウの変化を表すイベントの記録依頼を受け取ると、新たな操作履歴７２を記録する処理（アクティブ処理）を実行する（ステップＡ６）。その後、イベントフック部３０は、イベント待ちの状態になる（ステップＡ１０）。
【００６９】
一方、ステップＡ２において、イベントフック部３０は、表示に関するイベントであると判定すると、更に、表示に関するイベントの詳細を判定する（ステップＡ７）。
【００７０】
ステップＡ７において、イベントフック部３０は、表示に関するイベントとして、ディレクトリの表示、及び表示されたディレクトリの更新を表すイベントを検出すると、イベント解析部８０にディレクトリの処理要求を提供する。イベント解析部８０は、ディレクトリの処理要求を受け取ると、ディレクトリ処理を実行する（ステップＡ８）。その後、イベントフック部３０は、イベント待ちの状態になる（ステップＡ１０）。
【００７１】
ステップＡ７において、イベントフック部３０は、表示に関するイベントとして、フォーカスファイルの変更を表すイベントを検出すると、イベント解析部８０にフォーカスファイルの変更要求を提供する。イベント解析部８０は、フォーカスファイルの変更要求を受け取ると、フォーカス処理を実行する（ステップＡ９）。その後、イベントフック部３０は、イベント待ちの状態になる（ステップＡ１０）。
【００７２】
図５のステップＡ４と、ステップＡ５における表示履歴記録部５０のオープン処理及びクローズ処理の動作を説明する。図６は、表示履歴記録部５０が実行するオープン処理を示すフローチャートである。図６を参照して、表示履歴記録部５０が実行するオープン処理を説明する。
【００７３】
表示履歴記録部５０は、ファイルのオープンを表すイベントの記録依頼に基づいて、タイマ部４０から現在時刻を取得する（ステップＢ１）。次に、表示履歴記録部５０は、ファイル識別子と、オープン時刻と、クローズ時刻との項目を含む新たな表示履歴７１を作成する（ステップＢ２）。そして、表示履歴記録部５０は、オープンされたファイルのファイル識別子を読み取る（ステップＢ３）。表示履歴記録部５０は、ファイル識別子と、現在時刻とを表示履歴７１に書き込む（ステップＢ４）。このとき、現在時刻はオープン時刻として表示履歴７１に書き込まれる。
【００７４】
図７は、表示履歴記録部５０が実行するクローズ処理を示すフローチャートである。図７を参照して、表示履歴記録部５０が実行するクローズ処理を説明する。
【００７５】
表示履歴記録部５０は、ファイルのクローズを表すイベントの記録依頼に基づいて、タイマ部４０から現在時刻を取得する（ステップＣ１）。次に、表示履歴記録部５０は、クローズされたファイルのファイル識別子を読み取る。表示履歴記録部５０は、ログファイル格納部７０を参照して、クローズされたファイル識別子を有し、クローズ時刻が書き込まれていない表示履歴を抽出する（ステップＣ２）。表示履歴記録部５０は、現在時刻を抽出した表示履歴のクローズ時刻に書き込む（ステップＣ３）。
【００７６】
図５のステップＡ６における操作履歴記録部６０のアクティブ処理の動作を説明する。図８は、操作履歴記録部６０が実行するアクティブ処理を示すフローチャートである。図８を参照して、操作履歴記録部６０が実行するアクティブ処理を説明する。
【００７７】
操作履歴記録部６０は、アクティブウィンドウの変化を表すイベントの記録依頼に基づいて、タイマ部４０から現在時刻を取得する（ステップＤ１）。次に、操作履歴記録部６０は、ファイル識別子と、操作時刻との項目を含む新たな操作履歴７２を作成する（ステップＤ２）。そして、操作履歴記録部６０は、アクティブな状態になった（現アクティブウィンドウで開かれている）ファイルのファイル識別子を取得する（ステップＤ３）。操作履歴記録部６０は、ファイル識別子と、現在時刻とを操作履歴７２に書き込む（ステップＤ４）。このとき、現在時刻は操作時刻として操作履歴７２に書き込まれる。
【００７８】
図５のステップＡ８におけるディレクトリ処理の動作を説明する。図９は、ディレクトリ処理を示すフローチャートである。図９を参照して、ディレクトリ処理を説明する。
【００７９】
イベント解析部８０は、ディレクトリを更新させる要求を受け取ると、未反映の複数の操作履歴７２に基づいて遷移情報を算出する（ステップＥ１）。詳細には、イベント解析部８０は、未反映の複数の操作履歴７２のファイル識別子を持つファイルを、現ファイルとしてそれぞれ抽出する。そして、イベント解析部８０は、抽出した現ファイルに対応する前ファイルを抽出する。更に、イベント解析部８０は、未反映の複数の操作履歴７２に基づいて、前ファイルから現ファイルへ遷移した遷移回数と、現ファイルのアクティブ時間とを算出する。このとき、イベント解析部８０は、算出した遷移回数とアクティブ時間とが、既に遷移情報として生成された現ファイルと前ファイルとの組に対応する場合、算出した値をその遷移情報に加算する。
【００８０】
イベント解析部８０は、未反映の複数の表示履歴７１に基づいて遷移情報を算出する（ステップＥ２）。詳細には、イベント解析部８０は、未反映の複数の表示履歴７１に基づいて、現ファイルと前ファイルとが同時にオープンされている同時オープン時間を算出する。このとき、イベント解析部８０は、算出した同時オープン時間が、既に遷移情報として生成された現ファイルと前ファイルとの組に対応する場合、算出した値をその遷移情報に加算する。これらの処理によって、遷移情報が算出される。
【００８１】
イベント解析部８０は、遷移情報を参照し、現ファイルと前ファイルとからなる２つのファイルの各組に対して、同時オープン時間、アクティブ時間、及び遷移回数の３つの情報に基づいて、コンカレンシーを算出する（ステップＥ３）。コンカレンシーは、原則的に、アクティブになった時間が近いファイル同士、つまり、操作履歴における操作時刻が近いファイル識別子を有するファイル同士において高くなる。また、コンカレンシーは、ファイル同士が同時にオープンされている度合い、つまり、各ファイルの表示履歴におけるオープン時刻と、クローズ時刻との重なりが大きいファイル識別子を有するファイル同士で高くなる。イベント解析部８０がコンカレンシーを算出する詳細は、前述の通りである。
【００８２】
イベント解析部８０は、各種の例外処理を実行する（ステップＥ４）。例えば、イベント解析部８０は、大部分のファイルに遷移が発生するファイルのコンカレンシーは考慮しないように処理したり、あまりに少数のファイルに対しての遷移しかなく、遷移回数もアクティブ時間も小さいファイルのコンカレンシーを考慮しないように処理したりする。
【００８３】
ディレクトリ表示部９０は、フォーカスファイルとイベント解析部８０から受け取るコンカレンシーとに基づいて、フォーカスファイルと同時にアクセスされやすいファイルとをディレクトリとして一括表示する（ステップＥ５）。ディレクトリ表示部９０は、本発明のファイル管理システム１が起動したときなど、ディレクトリの表示を開始するときは、例えば、現在アクティブなファイルをフォーカスファイルとしてディレクトリを表示する。また、ディレクトリ表示部９０は、ディレクトリを表示しているときは、フォーカスファイルを変更せずにディレクトリを再表示する。
【００８４】
図５のステップＡ９のフォーカス処理も、図９に示したディレクトリ処理と同様である。但し、図９のステップＥ５において、ディレクトリ表示部９０は、操作部１０で指定されたフォーカスファイルに基づいてディレクトリを再表示する。
【００８５】
以上のように、本発明のファイル管理システム１は、アクティブファイルの遷移と遷移後にアクティブになったアクティブ時間に基づいてファイルの関連度であるコンカレンシーを算出することができる。特に、本発明のファイル管理システム１は、同時に作業するファイルのコンカレンシーを高く、異なる作業で用いられるファイルのコンカレンシーを低く、また重要性の低い作業のコンカレンシーを低く算出できるため、同時利用されるファイルのコンカレンシーをより適切に算出することができる。また、本発明のファイル管理システム１は、例外処理を行うことができるため、常時利用されるファイルと、逆に一時的にしか利用されないファイルのコンカレンシーを無視することもできる。これらによって、本発明のファイル管理システム１は、同時利用されるファイルを的確に特定することができる効果を奏している。更に、本発明のファイル管理システム１は、同時利用されるファイルをユーザーが認識しやすいようにディレクトリとして自動的に一括表示することができる。これによって、本発明のファイル管理システム１は、ファイルの記録場所によらず、ユーザーに同時にアクセスされやすいファイルを提供できる効果も奏する。
【００８６】
（付記１）
複数のファイルの各々が操作されたことを検出するイベントフック部と、
前記イベントフック部の検出に基づいて、前記複数のファイルの各々がアクティブになった操作時刻を含む操作履歴を記録する操作履歴記録部と、
前記複数のファイルのうちで、同時に利用される２つのファイル同士の関連性が高くなるにつれ高い値となり、関連性が低くなるにつれて低い値となる推定値を、前記操作履歴に基づいて算出するイベント解析部と
を具備し、
前記イベント解析部は、第１ファイルの次にアクティブになった第２ファイルのアクティブ時間が長くなるにつれて、前記第１ファイルと前記第２ファイルとに対する第１推定値を増加させるように算出する
ファイル管理システム。
【００８７】
（付記２）
付記１に記載のファイル管理システムであって、
前記イベント解析部は、前記第１ファイルの第１操作時刻と、前記第２ファイルの第２操作時刻と、前記第２ファイルの次にアクティブになった第３ファイルの第３操作時刻とに基づいて、前記第２ファイルの前記アクティブ時間を算出する
ファイル管理システム。
【００８８】
（付記３）
付記１又は２に記載のファイル管理システムであって、
前記イベント解析部は、前記操作履歴に基づいて、前記第１ファイルの次に前記第２ファイルがアクティブになった遷移回数を算出し、前記第１推定値を前記アクティブ時間と前記遷移回数の比に対して増加させるように算出する
ファイル管理システム。
【００８９】
（付記４）
付記１乃至３の何れか一項に記載のファイル管理システムであって、
前記イベントフック部の検出に基づいて、前記複数のファイルの各々の操作が開始された時刻を示すオープン時刻と、操作が終了した時刻を示すクローズ時刻とを含む表示履歴を記録する表示履歴記録部
を更に具備し、
前記イベント解析部は、前記表示履歴に基づいて、前記第１ファイルと前記第２ファイルとが同時にオープンしていた同時オープン時間を算出し、前記第１推定値を前記アクティブ時間と前記同時オープン時間の比に対して増加させるように算出する
ファイル管理システム。
【００９０】
（付記５）
付記１乃至４の何れか一項に記載のファイル管理システムであって、
前記イベント解析部は、第４ファイルと複数の第５ファイルの各々とに対する第２推定値が所定の第３推定値より高く、且つ、前記複数の第５ファイルの数が所定数より多い場合、前記第１ファイルと前記第４ファイルとに対する第４推定値を低下させるように算出する
ファイル管理システム。
【００９１】
（付記６）
付記１乃至５の何れか一項に記載のファイル管理システムであって、
前記イベント解析部は、第６ファイルと複数の第７ファイルの各々とに対する第５推定値が所定の第６推定値より高く、且つ、前記複数の第７ファイルの数が所定数より少ない場合、前記第１ファイルと前記第６ファイルとに対する第７推定値を低下させるように算出する
ファイル管理システム。
【００９２】
（付記７）
付記１乃至６の何れか一項に記載のファイル管理システムであって、
前記複数のファイルのうちから指定された前記第１ファイルをフォーカスファイルとし、前記推定値に基づいて、前記複数のファイルの各々を前記第１ファイルに対して関連付けて表示するディレクトリ表示部
を更に具備し、
前記ディレクトリ表示部は、前記１推定値に基づいて、前記第２ファイルを前記第１ファイルに関連付けて表示する
ファイル管理システム。
【００９３】
（付記８）
複数のファイルの各々が操作されたことを検出するステップと、
前記検出に基づいて、前記複数のファイルの各々がアクティブになった操作時刻を含む操作履歴を記録するステップと、
前記複数のファイルのうちで、同時に利用される２つのファイル同士の関連性が高くなるにつれ高い値となり、関連性が低くなるにつれて低い値となる推定値を、前記操作履歴に基づいて算出するステップと
を具備し、
前記操作履歴に基づいて算出するステップは、
第１ファイルの次にアクティブになった第２ファイルのアクティブ時間が長くなるにつれて、前記第１ファイルと前記第２ファイルとに対する第１推定値を増加させるように算出するステップ
を備える
ファイル管理方法。
【００９４】
（付記９）
付記８に記載のファイル管理方法であって、
前記操作履歴に基づいて算出するステップは、
前記第１ファイルの第１操作時刻と、前記第２ファイルの第２操作時刻と、前記第２ファイルの次にアクティブになった第３ファイルの第３操作時刻とに基づいて、前記第２ファイルの前記アクティブ時間を算出するステップ
を含む
ファイル管理方法。
【００９５】
（付記１０）
付記８又は９に記載のファイル管理方法であって、
前記操作履歴に基づいて算出するステップは、
前記操作履歴に基づいて、前記第１ファイルの次に前記第２ファイルがアクティブになった遷移回数を算出するステップと、
前記第１推定値を前記アクティブ時間と前記遷移回数の比に対して増加させるように算出するステップと
を含む
ファイル管理方法。
【００９６】
（付記１１）
付記８乃至１０の何れか一項に記載のファイル管理方法であって、
前記検出に基づいて、前記複数のファイルの各々の操作が開始された時刻を示すオープン時刻と、操作が終了した時刻を示すクローズ時刻とを含む表示履歴を記録するステップと
を更に具備し、
前記操作履歴に基づいて算出するステップは、
前記表示履歴に基づいて、前記第１ファイルと前記第２ファイルとが同時にオープンしていた同時オープン時間を算出するステップと、
前記第１推定値を前記アクティブ時間と前記同時オープン時間の比に対して増加させるように算出するステップと
を含む
ファイル管理方法。
【００９７】
（付記１２）
付記８乃至１１の何れか一項に記載のファイル管理方法であって、
前記操作履歴に基づいて算出するステップは、
第４ファイルと複数の第５ファイルの各々とに対する第２推定値が、所定の第３推定値より高く、且つ、前記複数の第５ファイルの数が所定数より多い場合、前記第１ファイルと前記第４ファイルとに対する第４推定値を低下させるように算出するステップ
を含む
ファイル管理方法。
【００９８】
（付記１３）
付記８乃至１２の何れか一項に記載のファイル管理方法であって、
前記操作履歴に基づいて算出するステップは、
第６ファイルと複数の第７ファイルの各々とに対する第５推定値が、所定の第６推定値より高く、且つ、前記複数の第７ファイルの数が所定数より少ない場合、前記第１ファイルと前記第６ファイルとに対する第７推定値を低下させるように算出するステップ
を含む
ファイル管理方法。
【００９９】
（付記１４）
付記８乃至１３の何れか一項に記載のファイル管理方法であって、
前記複数のファイルのうちから指定された前記第１ファイルをフォーカスファイルとし、前記推定値に基づいて、前記複数のファイルの各々を前記第１ファイルに対して関連付けて表示するステップ
を更に具備し、
前記表示するステップは、前記１推定値に基づいて、前記第２ファイルを前記第１ファイルに関連付けて表示するステップ
を含む
ファイル管理方法。
【０１００】
（付記１５）
付記８乃至１４の何れか一項に記載の方法をコンピュータに実行させる
ファイル管理プログラム。
【符号の説明】
【０１０１】
１      ファイル管理システム
１０    操作部
２０    ファイル実行部
３０    イベントフック部
４０    タイマ部
５０    表示履歴記録部
６０    操作履歴記録部
７０    ログファイル格納部
７１    表示履歴
７２    操作履歴
８０    イベント解析部
９０    ディレクトリ表示部
１００  ＣＰＵ
１０１  記憶装置
１０２  入力装置
１０３  出力装置
１０４  バス
【図１】
2011145901.tif 000003
【図２】
2011145901.tif 000004
【図３】
2011145901.tif 000005
【図４】
2011145901.tif 000006
【図５】
2011145901.tif 000007
【図６】
2011145901.tif 000008
【図７】
2011145901.tif 000009
【図８】
2011145901.tif 000010
【図９】
2011145901.tif 000011