IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社BoostDraftの特許一覧

特許7125186ファイル派生関係特定プログラム、および、ファイル派生関係特定システム
<>
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図1
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図2
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図3
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図4
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図5
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図6
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図7
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図8
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図9
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図10
  • 特許-ファイル派生関係特定プログラム、および、ファイル派生関係特定システム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-08-16
(45)【発行日】2022-08-24
(54)【発明の名称】ファイル派生関係特定プログラム、および、ファイル派生関係特定システム
(51)【国際特許分類】
   G06F 16/17 20190101AFI20220817BHJP
   G06F 16/14 20190101ALI20220817BHJP
   G06F 16/906 20190101ALI20220817BHJP
【FI】
G06F16/17 200
G06F16/14
G06F16/906
【請求項の数】 9
(21)【出願番号】P 2022065053
(22)【出願日】2022-04-11
【審査請求日】2022-06-03
【早期審査対象出願】
(73)【特許権者】
【識別番号】521173742
【氏名又は名称】株式会社BoostDraft
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】藤井 陽平
(72)【発明者】
【氏名】渡邊 弘
(72)【発明者】
【氏名】水野 孝久
【審査官】松尾 真人
(56)【参考文献】
【文献】米国特許出願公開第2019/0042558(US,A1)
【文献】特開2005-316815(JP,A)
【文献】特開2008-181350(JP,A)
【文献】特開2010-061587(JP,A)
【文献】米国特許出願公開第2018/0113862(US,A1)
【文献】米国特許出願公開第2008/0040388(US,A1)
【文献】神田 哲也,ソースファイルの派生関係の自動抽出,情報処理学会研究報告 2012(平成24)年度▲4▼ [CD-ROM] 研究報告 ソフトウェア工学(SE) No.178,一般社団法人情報処理学会,2012年12月15日,Vol.2012-SE-178 No.14
【文献】伊藤 薫,軽量なデータ構造を利用したソフトウェア進化履歴の高速な復元手法,電子情報通信学会論文誌D VolumeJ104-D No.8 [online] ,電子情報通信学会,2021年04月19日,第J104-D巻 第8号,pp.609~621,ISSN:1881-0225, Internet<URL:https://search.ieice.org/bin/pdf_link.php?category=D&lang=J&year=2021&fname=j104-d_8_609&abst=>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
所定アプリケーションプログラムによる保存の度に異なる識別子が追記される文書ファイルを複数受け付ける手順、
各前記文書ファイルのうち第1の文書ファイルから収集した識別子の第1集合と第2の文書ファイルから収集した識別子の第2集合との積集合の識別子の種類数と、前記第1集合と前記第2集合の和集合の識別子の種類数とで算出した第1類似度に基づき、前記第2の文書ファイルを前記第1の文書ファイルと派生関係を有するものと特定する手順、
を実行させるためのファイル派生関係特定プログラム。
【請求項2】
コンピュータに、
所定アプリケーションプログラムによる保存の度に異なる識別子が追記される文書ファイルを複数受け付ける手順、
各前記文書ファイルのうち第1の文書ファイルから収集した識別子の第1集合と第2の文書ファイルから収集した識別子の第2集合との積集合の識別子の種類数と、前記第1集合と前記第2集合の和集合の識別子の種類数とで算出した第1類似度、かつ前記第1の文書ファイルに記載された第1単語列と前記第2の文書ファイルに記載された第2単語列との第2類似度に基づき、前記第2の文書ファイルを前記第1の文書ファイルと派生関係を有するものと特定する手順、
を実行させるためのファイル派生関係特定プログラム。
【請求項3】
派生関係を有する複数の文書ファイルそれぞれのシステムに追加された日時情報を用いて、前記複数の文書ファイルの親子関係を特定する手順、
を実行させるための請求項に記載のファイル派生関係特定プログラム。
【請求項4】
文書ファイルが何れの文書ファイルから派生したかを示すファイルツリーを表示部に表示する手順、
を更に実行させるための請求項1からのうち何れか1項に記載のファイル派生関係特定プログラム。
【請求項5】
文書ファイルの複数の前記識別子のうち前記所定アプリケーションプログラムにより文書ファイルが新規保存されたときに付与されたルート識別子で選別して文書ファイルを絞り込む手順、
を更に実行させるための請求項1からのうち何れか1項に記載のファイル派生関係特定プログラム。
【請求項6】
所定アプリケーションプログラムによる保存の度に異なる識別子が追記され、かつ前記識別子の集合のうち一部が削除された構造の文書ファイルを受け付ける手順、
前記識別子の集合のうち一部が削除されていることを判定する手順、
前記識別子の集合のうち一部が削除されている場合、各前記文書ファイルが有する前記識別子の集合の類似度に基づき、派生関係を有する複数の文書ファイルを特定する手順、
前記識別子の集合のうち一部が削除されていない場合、各前記文書ファイルが有する前記識別子の集合の包含関係に基づき、文書ファイルが何れの文書ファイルから派生したかを特定する手順、
派生関係を有する複数の文書ファイルの親子関係を特定する手順、
コンピュータに実行させるためのファイル派生関係特定プログラム。
【請求項7】
所定アプリケーションプログラムによる保存の度に異なる識別子が追記され、かつ前記識別子の集合のうち一部が削除された構造の文書ファイルを受け付ける受付部と、
前記識別子の集合のうち一部が削除されていることを判定する識別子削除判定部と、
前記識別子の集合のうち一部が削除されている場合、各前記文書ファイルが有する前記識別子の集合の類似度に基づき、派生関係を有する複数の文書ファイルを特定し、前記識別子の集合のうち一部が削除されていない場合、各前記文書ファイルが有する前記識別子の集合の包含関係に基づき、文書ファイルが何れの文書ファイルから派生したかを特定し、派生関係を有する複数の文書ファイルの親子関係を特定する特定部と、
を備えることを特徴とするファイル派生関係特定システム。
【請求項8】
所定アプリケーションプログラムによる保存の度に異なる識別子が追記される文書ファイルを複数受け付ける受付部と、
各前記文書ファイルのうち第1の文書ファイルから収集した識別子の第1集合と第2の文書ファイルから収集した識別子の第2集合との積集合の識別子の種類数と、前記第1集合と前記第2集合の和集合の識別子の種類数とで算出した第1類似度に基づき、前記第2の文書ファイルを前記第1の文書ファイルと派生関係を有するものと特定する特定部と、
を備えることを特徴とするファイル派生関係特定システム。
【請求項9】
所定アプリケーションプログラムによる保存の度に異なる識別子が追記される文書ファイルを複数受け付ける受付部と、
各前記文書ファイルのうち第1の文書ファイルから収集した識別子の第1集合と第2の文書ファイルから収集した識別子の第2集合との積集合の識別子の種類数と、前記第1集合と前記第2集合の和集合の識別子の種類数とで算出した第1類似度、かつ前記第1の文書ファイルに記載された単語列と前記第2の文書ファイルに記載された単語列の第2類似度に基づき、前記第2の文書ファイルを前記第1の文書ファイルと派生関係を有するものと特定する特定部と、
を備えることを特徴とするファイル派生関係特定システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイル派生関係特定プログラム、および、ファイル派生関係特定システムに関する。
【背景技術】
【0002】
コンピュータの記憶装置に保存されているファイルは、内容の編集・追加・削除などを経て新たな名称で保存されることが多い。ユーザは、例えば保存日付をファイル名の末尾に付与するなどして、新たに保存したファイルと元のファイルの派生関係がわかるようにすることがある。しかし、これは真の派生関係を示すものではない。
特許文献1には、リソースのバージョン間を継続と分岐という異なる意味付けの派生関係で管理する発明が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平11-327980号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1は、リソースのバージョン情報が存在することが前提である。例えばファイルにバージョン情報が明示的に付与されていないとき、どのようにしてファイル間の派生関係を判定して管理するかについては記載されていない。
【0005】
そこで、本発明は、派生関係を有する複数の文書ファイルを特定したり、ファイル間の派生関係を容易に判定することを課題とする。
【課題を解決するための手段】
【0006】
本発明は、上記目的を達成するためのファイル派生関係特定プログラムであり、コンピュータに、所定アプリケーションプログラムによる保存の度に異なる識別子が追記される文書ファイルを複数受け付ける手順、各前記文書ファイルのうち第1の文書ファイルから収集した識別子の第1集合と第2の文書ファイルから収集した識別子の第2集合との積集合の識別子の種類数と、前記第1集合と前記第2集合の和集合の識別子の種類数とで算出した第1類似度に基づき、前記第2の文書ファイルを前記第1の文書ファイルと派生関係を有するものと特定する手順、を実行させるためのものである。
【0007】
本発明のファイル派生関係特定プログラムは、コンピュータに、所定アプリケーションプログラムによる保存の度に異なる識別子が追記される文書ファイルを複数受け付ける手順、各前記文書ファイルのうち第1の文書ファイルから収集した識別子の第1集合と第2の文書ファイルから収集した識別子の第2集合との積集合の識別子の種類数と、前記第1集合と前記第2集合の和集合の識別子の種類数とで算出した第1類似度、かつ前記第1の文書ファイルに記載された第1単語列と前記第2の文書ファイルに記載された第2単語列との第2類似度に基づき、前記第2の文書ファイルを前記第1の文書ファイルと派生関係を有するものと特定する手順、を実行させるためのものである。
【0008】
本発明のファイル派生関係特定プログラムは、所定アプリケーションプログラムによる保存の度に異なる識別子が追記され、かつ前記識別子の集合のうち一部が削除された構造の文書ファイルを受け付ける手順、前記識別子の集合のうち一部が削除されていることを判定する手順、前記識別子の集合のうち一部が削除されていない場合、各前記文書ファイルが有する前記識別子の集合の包含関係に基づき、文書ファイルが何れの文書ファイルから派生したかを特定する手順、前記識別子の集合のうち一部が削除されている場合、各前記文書ファイルが有する前記識別子の集合の類似度に基づき、派生関係を有する複数の文書ファイルを特定する手順、派生関係を有する複数の文書ファイルの親子関係を特定する手順、をコンピュータに実行させるためのものである。
本発明のファイル派生関係特定システムは、所定アプリケーションプログラムによる保存の度に異なる識別子が追記され、かつ前記識別子の集合のうち一部が削除された構造の文書ファイルを受け付ける受付部と、前記識別子の集合のうち一部が削除されていることを判定する識別子削除判定部と、前記識別子の集合のうち一部が削除されている場合、各前記文書ファイルが有する前記識別子の集合の類似度に基づき、派生関係を有する複数の文書ファイルを特定し、前記識別子の集合のうち一部が削除されていない場合、各前記文書ファイルが有する前記識別子の集合の包含関係に基づき、文書ファイルが何れの文書ファイルから派生したかを特定し、派生関係を有する複数の文書ファイルの親子関係を特定する特定部と、を備えることを特徴とする。
【0009】
本発明のファイル派生関係特定システムは、所定アプリケーションプログラムによる保存の度に異なる識別子が追記される構造の文書ファイルを複数受け付ける受付部と、各前記文書ファイルのうち第1の文書ファイルから収集した識別子の第1集合と第2の文書ファイルから収集した識別子の第2集合との積集合の識別子の種類数と、前記第1集合と前記第2集合の和集合の識別子の種類数とで算出した第1類似度に基づき、前記第2の文書ファイルを前記第1の文書ファイルと派生関係を有するものと特定する特定部と、を備えることを特徴とする。
【0010】
本発明のファイル派生関係特定システムは、所定アプリケーションプログラムによる保存の度に異なる識別子が追記される構造の文書ファイルを複数受け付ける受付部と、各前記文書ファイルのうち第1の文書ファイルから収集した識別子の第1集合と第2の文書ファイルから収集した識別子の第2集合との積集合の識別子の種類数と、前記第1集合と前記第2集合の和集合の識別子の種類数とで算出した第1類似度、かつ前記第1の文書ファイルに記載された単語列と前記第2の文書ファイルに記載された単語列の第2類似度に基づき、前記第2の文書ファイルを前記第1の文書ファイルと派生関係を有するものと特定する特定部と、を備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、派生関係を有する複数の文書ファイルを特定したり、ファイル間の派生関係を容易に判定することが可能となる。
【図面の簡単な説明】
【0012】
図1】本実施形態に係るコンピュータの主な構成を説明する説明図である。
図2】本実施形態のコンピュータの機能ブロック図である。
図3】識別子の集合を格納した文書ファイルの派生関係を示す図である。
図4】文書ファイルに格納された識別子の集合を示す図である。
図5】w:rsidsタグ要素は存在しても、識別子の集合のうち何れかが削除されている場合を示す図である。
図6】文書ファイルのstylesタグ要素について説明する図である。
図7】文書ファイルの更新履歴を説明する図である。
図8】文書ファイル編集プログラムによる保存処理のフローチャートである。
図9】第1実施形態の文書ファイルの派生関係の判定処理のフローチャートである。
図10】第2実施形態の文書ファイルの派生関係の判定処理のフローチャートである。
図11】文書ファイルの派生関係表示ウインドウを示す図である。
【発明を実施するための形態】
【0013】
以降、本発明を実施するための形態を、各図を参照して詳細に説明する。
図1は、本実施形態に係るコンピュータの主な構成を説明する説明図である。
コンピュータ1は、例えば、文書作成支援装置(ワードプロセッサ)や文書閲覧支援装置として機能するパーソナルコンピュータで実現される。なお、文書閲覧支援装置は、文書作成支援装置が有する文書作成機能(ワープロソフト)を備えている。また、以下の説明において、同一の構成については、同一の符号を付し、説明を適宜、省略する。
【0014】
コンピュータ1は、CPU(Central Processing Unit)11、記憶部12、ROM(Read Only Memory)13、RAM(Random Access Memory)14、操作部15、および表示部16を備えて構成されている。
【0015】
CPU11は、中央処理装置であり、記憶部12に格納されたファイル管理プログラム121と、文書編集プログラム122を実行する。
【0016】
ここで、文書編集プログラム122は、コンピュータ1のCPU11に、ドキュメントとしての文書ファイルを作成させ、またその文書ファイルを編集させるための所定アプリケーションプログラムであり、例えばマイクロソフト社のWORDである。文書ファイル2a~2dは、文書編集プログラム122によって作成されたものである。
ファイル管理プログラム121は、コンピュータ1のCPU11に、文書ファイルの派生関係を判定して、これら文書ファイルを管理するためのプログラムである。
【0017】
CPU11は、ファイル管理プログラム121を実行することにより、図2に示す、受付部110、派生特定部111、表示制御部112、識別子削除判定部113を具現化する。なお、CPU11が具現化する各機能部については、図2で詳細に説明する。
【0018】
記憶部120は、大容量の記憶装置であり、例えば、ハードディスクドライブ(Hard Disk Drive)、不揮発性メモリなどで構成される。記憶部120は、一例として、ファイル管理プログラム121および文書編集プログラム122を格納する。
【0019】
RAM14は、CPU11で実行可能な各種プログラム、入力データ、出力データ、およびパラメータ等を一時的に記憶するワークエリアとして機能する。
【0020】
操作部15は、カーソルキー、数字入力キー、および各種機能キーなどを備えたキーボードと、マウスなどのポインティングデバイスを備えて構成される。操作部15は、キーボードで押下操作されたキーの押下信号やマウスによる操作信号を、入力信号としてCPU11に出力する。CPU11は、操作部15からの操作信号に基づいて、各種処理を実行する。
【0021】
表示部16は、例えばLCD(Liquid Crystal Display)等のモニタディスプレイを備えて構成される。表示部16は、CPU11から入力される表示信号により、各種画面を表示する。また、表示部16、および操作部15は、タッチパネルディスプレイを採用することもできる。
【0022】
図2は、本実施形態のコンピュータ1の機能ブロック図である。
コンピュータ1には、受付部110、派生特定部111、表示制御部112、識別子削除判定部113に具現化されている。
【0023】
受付部110は、1または複数の文書ファイル2a~2dなどを受け付ける。これら文書ファイル2a~2dは、文書編集プログラム122によって生成され、保存の度に異なる識別子が追記される構造を有している。
派生特定部111は、各文書ファイルが有する識別子の集合の包含関係または類似度に基づき、派生関係を有する複数の文書ファイルを特定する。派生特定部111は更に、派生関係が有るファイルの識別子の集合の包含関係、ファイルの更新履歴、ファイルがシステムに追加された日時、ファイル名の何れかにより、派生関係を有する複数の文書ファイルの親子関係を特定する。
【0024】
表示制御部112は、文書ファイルの複数の識別子およびルート識別子からなる識別子の集合を取得して、ルート識別子で選別して絞り込んだ文書ファイル群をファイルツリーとして表示部16に表示する。
【0025】
識別子削除判定部113は、識別子の集合のうち一部が削除されていることを判定する。なお、一部のアプリケーションプログラムにより、文書ファイルから識別子およびルート識別子のうち何れかが削除されている場合がある。そのため、識別子およびルート識別子のうち何れかがが削除されているかを判定している。
【0026】
図3は、識別子の集合を格納した文書ファイル2a~2dの派生関係を示す図である。
文書ファイル2a~2dには、文章21に加えて、ルート識別子22と識別子23aなどが格納されている。図の矢印は、各文書ファイルの派生関係を示している。
【0027】
文書ファイル2aは、これら文書ファイルのうち最も最初に作成されている。文書ファイル2bは、文書ファイル2aから一次的に派生したファイルである。文書ファイル2bの識別子の集合は、文書ファイル2aに含まれる識別子の集合を包含している。
【0028】
文書ファイル2c,2dは、文書ファイル2bから派生したファイルである。つまり文書ファイル2c,2dは、文書ファイル2aから文書ファイル2bを介して二次的に派生したファイルである。文書ファイル2c,2dの識別子の集合は、文書ファイル2bに含まれる識別子の集合を包含しており、かつ、文書ファイル2aに含まれる識別子の集合を包含している。
【0029】
文書ファイル2aには、ルート識別子22が格納されているが、識別子は格納されていない。文書ファイル2bには、ルート識別子22と識別子23aが格納されている。文書ファイル2cには、ルート識別子22と識別子23a,23bが格納されている。文書ファイル2dには、ルート識別子22と識別子23a,23cが格納されている。
【0030】
図4は、文書ファイル2b,2cと、それに格納された識別子の集合を示す図である。
文書ファイル2b,2cは、例えばワードファイルであり、XML(eXtended Markup Language)形式で記載されている。w:rsidsタグ要素には、w:val属性にルート識別子22と識別子23aが格納されている。
【0031】
文書ファイル2bのw:rsidsタグ要素内には、ルート識別子22を格納するw:rsidRootタグ要素と、識別子を示すw:rsidタグ要素が記載されている。ここでルート識別子22は、w:val属性の"00464813"である。識別子23aは、w:val属性の"00455AAB"である。
【0032】
文書ファイル2cのw:rsidsタグ要素内には、ルート識別子22を示すw:rsidRootタグ要素と、識別子を示すw:rsidタグ要素が記載されている。ここでルート識別子22は、w:val属性"00464813"である。識別子23aは、w:val属性の"00455AAB"である。
【0033】
また、以下に文書ファイル2cから識別子の集合が削除されているか否かの判定方法について記載する。
文書ファイルからw:rsidsタグ要素が削除されている場合、識別子削除判定部113は、この文書ファイルから識別子が削除されていると判定する。
【0034】
派生特定部111は、各文書ファイルが有する識別子の集合の包含関係に基づき、派生関係を有する複数の文書ファイルを特定する。つまり、派生特定部111は、例えば文書ファイル2aの識別子の集合が、文書ファイル2bの識別子の集合に包含されることを判定すると、文書ファイル2a,2bが派生関係を有すると判定する。そして、派生特定部111は、文書ファイル2aが文書ファイル2bの親ファイルであると判定する。
【0035】
図5は、w:rsidsタグ要素は存在しても、識別子が削除されている場合を示す図である。
図5の2行目は、文書中に存在するタグ要素のうちひとつであるw:pタグ要素のw:rsidR属性とw:rsidRPr属性とw:rsidRDefault属性とw:rsidP属性に、識別子の情報が設定されていることを示している。これら、w:rsidP属性、w:rsidR属性、w:rsidRPr属性、w:rsidRDefault属性等を、識別子を保持する属性と呼ぶ。
なお、文書中のタグ要素の属性ではなく、タグ要素そのものに識別子の情報が設定されている場合もある。また、タグ要素はw:p以外のタグ要素であってもよい。
【0036】
識別子削除判定部113は、文書中に存在するタグ要素が識別子を保持する属性を有するか否かを調べて識別子を収集し、これら収集した識別子の集合のうち、w:rsidsタグ要素の中のw:rsidタグ要素に存在しないものがあった場合は、その識別子が削除されていると判定する。例えば、識別子削除判定部113は、本文中のw:pタグ要素中のw:rsidRPr属性に格納されている識別子00455AABが、w:rsidsタグ要素の中に存在しない場合、その識別子00455AABが削除されていると判定する。
【0037】
なお、処理の高速化のために、全ての識別子がw:rsidsタグ要素の中に存在するかを確認するのではなく、一部のタグ、例えばstyleタグ要素の中の識別子のみに着目し、w:rsidsタグ要素の中に存在しない場合に、一部の識別子が削除されていると判定してもよい。
【0038】
派生特定部111は、類似度の算出において、単独または複数の類似度の算出方法を用いる。
以下、識別子の集合を用いた第1類似度について説明する。
派生特定部111は、まず識別子の集合を抽出する。前述のとおり識別子が削除されている場合がある。そのような場合、類似度が極端に変わってしまうことを防ぐため、派生特定部111は、文書ファイルからrsidsタグ要素を除く他のタグ要素から識別子を収集する。具体的にいうと、派生特定部111は、文書中のタグ要素のrsid属性またはrsidP属性など、識別子に関連した部分を収集する。派生特定部111は、場合によって、不要な識別子を削除してもよい。例えば、新規文書の保存時にのみ出現することがわかっている識別子は、特定のタグ要素に出現する。そのため、派生特定部111は、その識別子を収集対象から除外してもよい。また、stylesタグの中などに出現する識別子は、文書の変更によって変わることは少ない。派生特定部111は、これら類似度の算出に無関係の識別子も、収集対象から除外してもよい。
【0039】
次に、派生特定部111は、収集した文書ファイルAと文書ファイルBの識別子の集合を使って、両文書ファイルA,Bの共通集合の種類数を、両文書ファイルA,Bの和集合の種類数で除算して類似度を算出する。
例えば、文書ファイルA,B両方に出現する識別子の種類数が3であり、文書ファイルA,Bのどちらかに1回は出現する識別子の種類数が10の時、派生特定部111は、類似度を3÷10=0.3として算出する。
【0040】
更に、語句の区切りを用いた第2類似度について説明する。
マイクロソフト社のWORDにて、文書ファイル中のテキストは、以下のように分割して表現されている。例えば、文書ファイルAのテキストが、以下のようなものとする。

<w:t>今日の</w:t><w:t>天気は</w:t><w:t>晴れ</w:t><w:t>です</w:t>
【0041】
これを編集した文書ファイルBのテキストが、以下のように変化したものとする。

<w:t>今日の</w:t><w:t>空の</w:t><w:t>模様は</w:t><w:t>晴れ</w:t><w:t>です</w:t>
【0042】
このとき文書ファイルAの単語列aは、[今日の,天気は,晴れ,です]となる。文書ファイルBの単語列bは、[今日の,空の,模様は,晴れ,です]となる。
派生特定部111は、これらの単語列a,bの単語が一致する場合は+1、不一致の場合は-1として、最大値となるように整列させる。アルゴリズムとしては、既存のDNA(DeoxyriboNucleic Acid)のアライメントと同じである。
【0043】
この単語列a,bの場合、「今日の」「晴れ」「です」の単語が一致する。単語列aの「天気は」と単語列bの「空の」の単語が不一致であり、単語列bの「模様は」の単語が不一致である。よって、派生特定部111は、第2類似度を+1として算出する。なお、これに限られず、派生特定部111は、整列されたときに一致と不一致に応じたスコアを計算して、適切な整列時の最大のスコアを類似度とすればよく、限定されない。
派生特定部111は、最終的な類似度を、これら第1類似度または第2類似度を単独で用いるか、もしくは第1類似度と第2類似度を掛け合わせることで最も実態に近い類似度を求める。
なお、識別子がランダム文字列ではなく時間や保存回数等の、数値の大きさに意味を持つ場合は、コサイン類似度やユークリッド距離、ピアソンの積率相関係数、Jaccard係数等の類似度を示す計算方法をとってもよく、純粋な集合の一致度でなくてもよい。
【0044】
また、類似度の計算のほかに親子関係の推定がある。
識別子に係るタグ情報が削除されている場合、同様にドキュメントの更新時間が削除されていることがある。類似度だけではツリー上でどちらか親になるのか判定が難いので、ファイル中に記述された更新日時、ファイル名、システムに追加された日時の順で親子関係を判定する。
【0045】
図7は、ファイル中の更新履歴を示す図である。
w:insタグ要素には、w:date属性が付与されており、ここにはファイルの更新日時が記録されている。w:insタグ要素は、更新履歴を示すタグ要素である。w:insタグ要素が残っていれば、更新履歴の中で一番新しいものを最終更新日時とする。
【0046】
更新履歴も残っていない場合、システムに追加された日時が信頼できるならば、その日時を採用する。ここでの信頼する場合とは、リアルタイムにファイルをシステムに追加する場合である。例えば、コンピュータ内部の文書ファイルを常時監視して、文書ファイルの保存と同時にシステムにその文書ファイルの保存日時を保存する場合である。
【0047】
信頼できない場合としては、コンピュータに追加されてしばらくたってからまとめてシステムに保存する場合などがある。この場合はまとめてシステムに追加するため、ほとんどのファイルが同じ追加日時となってしまう。
【0048】
ファイル名も、親子関係の推定に利用する。ファイル名に編集した日付を書くことが多いため、ファイルの先頭もしくは末尾にある4桁の数字に着目して、親子関係を推定する。例えば“契約0501.docx”ならば、5月1日に編集されたものと推定し、“契約0510.docx”ならば、5月10日に編集されたものと推定して、に作成したとみなして親子関係を推定する。これらの推定した情報をもとにツリー上での親子関係を作る。これらの判断を順次行うことにより、ファイルの親子関係を適切に推定可能である。
なお、識別子削除判定部113は任意の機能要素であって、識別子が削除されていないことが保証できる場合等において、識別子削除判定部113が含まれないシステムであってもよい。
【0049】
図8は、文書編集プログラム122(例えば、マイクロソフト社のWORD)による保存処理のフローチャートである。
文書編集プログラム122の実行により、CPU11は、文書ファイルまたは新規文書を開き(ステップS10)、ランダムに夫々異なる識別子を生成する(ステップS11)。
そして、CPU11は、ユーザ入力を受け付け(ステップS12)、文書保存を指示されたか否かを判定する(ステップS13)。なお、文書保存の指示は、手作業による指示に関わらず、文書編集プログラム122自身による自動保存の場合が存在する。
【0050】
CPU11は、文書保存以外の入力ならば(No)、文書への入力として、文書にタグ要素を付与し、その属性に識別子情報を設定すると(ステップS14)、ステップS12に戻る。ステップS13にて、CPU11は、文書保存指示の入力ならば(Yes)、ステップS15に進む。
【0051】
CPU11は、ルート識別子であるrsidRootが存在するか否かを判定する(ステップS15)。rsidRootが存在しない場合とは、新規文書の保存、および、rsidRootが削除されている状態のことである。一部のアプリケーションプログラムにより、ルート識別子が削除されている場合がある。そのため、ルート識別子が削除されている場合を考慮している。
【0052】
ステップS15にて、ルート識別子であるrsidRootが存在しないならば(Yes)、CPU11は、新規に保存する文書ファイルのrsidタグ要素のrsidRoot属性とrsid属性に識別子情報を設定する(ステップS16)。
【0053】
ステップS15にて、ルート識別子であるrsidRootが存在するならば(No)、CPU11は、その文書ファイルのrsidタグ要素のrsid属性に識別子情報を設定する(ステップS17)。ステップS18にて、CPU11は、この文書ファイルを保存すると、図8の保存処理を終了する。
【0054】
図9は、第1実施形態の識別子削除判定部113が存在する場合の文書ファイルの派生関係の判定処理のフローチャートである。この判定処理は、CPU11がファイル管理プログラム121を実行するときの処理である。
受付部110は、複数の文書ファイルの入力を受け付け(ステップS20)、文書ファイルの複数の識別子とルート識別子を取得する(ステップS21)。
【0055】
派生特定部111は、各文書ファイルに格納されたルート識別子を選別することで、複数の文書ファイルを特定のファイルツリーに係るものに絞り込む(ステップS22)。なお、ルート識別子による絞り込みは、効率化のためである。派生特定部111は、ルート識別子による絞り込みを行わなくてもよい。ルート識別子が存在しない場合、派生特定部111は、存在する識別子をベースに絞り込みを行ってもよいし、絞り込みを行わなくてもよい。
そして識別子削除判定部113は、文書ファイルから識別子が削除されているか否かを判定する(ステップS23)。文書ファイルから識別子が削除されていなかったならば(No)、識別子削除判定部113は、ステップS24に進む。文書ファイルから識別子が削除されていたならば(Yes)、識別子削除判定部113は、ステップS26に進む。なお、識別子が削除されていないことが保証できる場合等において、識別子削除判定部113が含まれないシステムであってもよい。
【0056】
ステップS24にて、派生特定部111は、或るファイルの識別子の集合が全て含まれているファイルを、或るファイルから派生したものと特定する。そして、派生特定部111は、或るファイルの識別子の集合の部分集合を有するファイルがあれば、そのファイルから或るファイルが派生したと特定して(ステップS25)、ステップS28に進む。ステップS24,S25にて、派生特定部111は、ファイルの識別子の集合の包含関係に基づき、文書ファイルが何れの文書ファイルから派生したかを特定する。なお、派生特定部111は、第1のファイルの識別子の集合が第2のファイルの識別子の集合に含まれているか否かを判定する。
【0057】
ステップS26にて、派生特定部111は、或るファイルの識別子の集合と類似する識別子の集合を有するファイルを、派生関係が有るものと特定する。そして、派生特定部111は、派生関係が有るファイルの更新履歴を用いて、これらファイル群の親子関係を推定して(ステップS27)、ステップS28に進む。なお、ファイル群の親子関係を特定する方法は、ファイルの更新履歴に限定されず、システムに追加された日時を用いる方法でもよく、ファイル名を用いる方法でもよい。ステップS27の処理は、オプショナル機能であり、行わなくてもよい。
【0058】
ステップS28にて、表示制御部112は、特定のファイルツリーを表示部16に表示すると、図9の処理を終了する。特定のファイルツリーの表示については、図11で詳細に説明する。
【0059】
ここで説明したように、本発明のファイル管理プログラムは、コンピュータに、文書編集プログラム122による保存の度に異なる識別子が追記され、かつ前記識別子の集合のうち一部が削除された構造の文書ファイルを受け付ける手順、前記識別子の集合のうち一部が削除されていることを判定する手順、各文書ファイルが有する識別子の集合の類似度に基づき、派生関係を有する複数の文書ファイルを特定する手順、派生関係を有する複数の文書ファイルの親子関係を特定する手順、を実行させる。これにより、ファイル間の派生関係を容易に判定することが可能となる。
【0060】
また、ファイル管理プログラムは、コンピュータに、文書編集プログラム122による保存の度に異なる識別子が追記される文書ファイルを複数受け付ける手順、各文書ファイルが有する識別子の集合の包含関係に基づき、文書ファイルが何れの文書ファイルから派生したかを特定する手順、を実行させる。これにより、ファイル間の派生関係を容易に判定することが可能となる。
【0061】
図10は、第2実施形態の文書ファイルの派生関係の判定処理のフローチャートである。この判定処理は、CPU11がファイル管理プログラム121を実行するときの処理であり、識別子削除判定部113が存在しない場合である。
受付部110は、複数の文書ファイルの入力を受け付け(ステップS30)、文書ファイルの複数の識別子とルート識別子を取得する(ステップS31)。
【0062】
派生特定部111は、各文書ファイルに格納されたルート識別子を選別することで、複数の文書ファイルを特定のファイルツリーに係るものに絞り込む(ステップS32)。なお、この処理は効率化のためのステップであり、このステップを実行しなくてもよい。
【0063】
ステップS33にて、派生特定部111は、或るファイルの識別子の集合と類似する識別子の集合を有するファイルを、派生関係が有るものと特定する。そして、派生特定部111は、派生関係が有るファイルの更新履歴を用いて、これら複数の文書ファイルの親子関係を推定する(ステップS34)。なお、複数の文書ファイルの親子関係を特定する方法は、更新履歴に限定されず、システムに追加された日時を用いる方法でもよい、ファイル名を用いる方法でもよい。そして、ステップS34の処理は、オプショナルの機能であり、ステップS34の処理を実行しなくてもよい。
【0064】
ステップS35にて、表示制御部112は、特定のファイルツリーを表示部16に表示すると、図10の処理を終了する。特定のファイルツリーの表示については、図11で詳細に説明する。
【0065】
ここで説明したように、本発明のファイル管理プログラムは、コンピュータに、文書編集プログラム122による保存の度に異なる識別子が追記される文書ファイルを複数受け付ける手順、各文書ファイルが有する識別子の集合の類似度に基づき、派生関係を有する複数の文書ファイルを特定する手順、派生関係を有する複数の文書ファイルの親子関係を特定する手順、を実行させる。これにより、ファイル間の派生関係を容易に判定することが可能となる。
【0066】
図11は、派生関係表示ウインドウ3を示す図である。
派生関係表示ウインドウ3は、特定のファイルツリーを表示するためのウインドウであり、表示部16に表示される。派生関係表示ウインドウ3には、文書ファイルアイコン31a~31dがツリー状に表示されている。
【0067】
文書ファイルアイコン31aは、図3の文書ファイル2aを示すアイコンであり、その下側にファイル名「契約書0301」が記載されている。文書ファイルアイコン31bは、図3の文書ファイル2bを示すアイコンであり、その下部にファイル名「契約書0302」が記載されている。文書ファイルアイコン31cは、図3の文書ファイル2cを示すアイコンであり、その下側にファイル名「契約書0303」が記載されている。文書ファイルアイコン31dは、図3の文書ファイル2dを示すアイコンであり、その下側にファイル名「契約書0304」が記載されている。
【0068】
文書ファイルアイコン31aから文書ファイルアイコン31bに向けて矢印が引かれている。この矢印は、文書ファイルアイコン31bで示される文書ファイル2bが、文書ファイルアイコン31aで示される文書ファイル2aから派生していることを示している。
【0069】
更に、文書ファイルアイコン31bから文書ファイルアイコン31c,31dに向けて矢印が引かれている。この矢印は、文書ファイルアイコン31c,31dで示される文書ファイル2c,2dが、文書ファイルアイコン31bで示される文書ファイル2bから派生していることを示している。
【0070】
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)~(f)のようなものがある。
【0071】
(a) ファイルの派生関係を示す表示方法は、ツリー表示に限られない。
(b) 文書ファイルに付与される識別子は、夫々異なるものであればよく、保存の度にランダムである必要はない。
(c) 文書ファイルのルート識別子は必須ではなく、保存の度に夫々異なる識別子が保存されていればよい。
(d) 文書ファイルの識別子の集合の包含関係と、文書ファイルの識別子の集合の類似度のうち何れの方法で派生関係を有する複数の文書ファイルを特定してもよく、両方の方法を組み合わせてもよい。
(e) 識別子削除判定部は、オプション機能である。識別子削除判定部を有さない実施形態であってもよい。
(f) 文書ファイルのルート識別子による文書ファイルの絞込を行う機能は、オプション機能である。文書ファイルのルート識別子による文書ファイルの絞込を行う機能を有さなくてもよい。
【符号の説明】
【0072】
1 コンピュータ
11 CPU
110 受付部
111 派生特定部 (特定部)
112 表示制御部
113 識別子削除判定部
12 記憶部
121 ファイル管理プログラム
122 文書編集プログラム (所定アプリケーション)
13 ROM
14 RAM
15 操作部
16 表示部
2a~2d 文書ファイル
21 文章
22 ルート識別子
23a~23c 識別子
3 派生関係表示ウインドウ
31a~31d 文書ファイルアイコン
【要約】
【課題】ファイル間の派生関係を容易に判定する。
【解決手段】ファイル管理プログラム121は、コンピュータ1に、文書編集プログラム122による保存の度に異なる識別子が追記される文書ファイル2a~2dを複数受け付ける手順、各文書ファイル2a~2dが有する識別子の集合の包含関係に基づき、文書ファイルが何れの文書ファイルから派生したかを特定する手順、を実行させる。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11