JP2014041451A - Association program, association method, and information processor - Google Patents

Association program, association method, and information processor Download PDF

Info

Publication number
JP2014041451A
JP2014041451A JP2012183047A JP2012183047A JP2014041451A JP 2014041451 A JP2014041451 A JP 2014041451A JP 2012183047 A JP2012183047 A JP 2012183047A JP 2012183047 A JP2012183047 A JP 2012183047A JP 2014041451 A JP2014041451 A JP 2014041451A
Authority
JP
Japan
Prior art keywords
file
data
clipboard
request
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012183047A
Other languages
Japanese (ja)
Other versions
JP5974732B2 (en
Inventor
Yusaku Fujii
勇作 藤井
Yoshinobu Hotta
悦伸 堀田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012183047A priority Critical patent/JP5974732B2/en
Publication of JP2014041451A publication Critical patent/JP2014041451A/en
Application granted granted Critical
Publication of JP5974732B2 publication Critical patent/JP5974732B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To properly associate files with each other by detecting relevance between the files based on data reuse with high accuracy.SOLUTION: Clipboard data D1 to D4 being data stored in a clipboard 6 is acquired during at least a portion of a period before a first file 1 in a plurality of files is closed. Also, time information showing times T1, T3, T5, T6 when the clipboard data D1 to D4 are written in the clipboard 6 is acquired. Then, a second file that is opened at the times shown by the time information is specified. In the case that the first file includes the clipboard data or first similar data, and that the second file includes the clipboard data or second similar data, the first and second files are associated with each other. Both first and second similar data are data in which a prescribed relation about similarity between pieces of the data is established with the clipboard data.

Description

本発明は、ファイル同士を関連づける技術に関する。   The present invention relates to a technique for associating files with each other.

文書同士またはファイル同士の関連性を評価または判断する技術は、情報検索や文書管理をはじめとする様々な分野で利用可能であり、様々な観点から研究されている。   A technique for evaluating or judging the relevance between documents or files can be used in various fields including information retrieval and document management, and has been studied from various viewpoints.

例えば、文書の文脈や意味内容を反映させて文書を分類および管理することができる、次のような文書管理装置が提案されている。当該文書管理装置は、形態素解析手段と重複度算出手段と類似度算出手段を有する。   For example, the following document management apparatus that can classify and manage documents reflecting the context and meaning of the document has been proposed. The document management apparatus includes a morphological analysis unit, a duplication degree calculation unit, and a similarity calculation unit.

形態素解析手段は、文書データを形態素解析する。重複度算出手段は、一の文書データと他の文書データとの重複度を、それぞれが有する形態素に基づいて算出する。そして、類似度算出手段は、重複度と閾値から、一の文書データと他の文書データとの類似度を算出する。   The morpheme analysis unit performs morpheme analysis on the document data. The duplication degree calculation means calculates the duplication degree between one document data and another document data based on the morphemes of each. Then, the similarity calculation means calculates the similarity between the one document data and the other document data from the duplication degree and the threshold value.

また、送信対象文書と機密文書との間の類似性を高精度に判断するための、次のような文書検査装置も提案されている。当該文書検査装置は、機密情報の漏洩防止のために使われてもよい。   In addition, the following document inspection apparatus for determining the similarity between a transmission target document and a confidential document with high accuracy has been proposed. The document inspection apparatus may be used for preventing leakage of confidential information.

具体的には、当該文書検査装置は、キーワード出現位置抽出部と、キーワード範囲内有無判定部と、特徴素行列作成部と、共通要素数算出部を有する。キーワード出現位置抽出部は、機密文書を含む判定対象文書から、キーワードおよび当該キーワードの出現位置を抽出する。また、キーワード範囲内有無判定部は、抽出されたキーワードの出現位置ごとのキーワードを判定対象として、当該判定対象のキーワード前後に関わる所定範囲内に、抽出された他のキーワードがあるか否かを判定する。   Specifically, the document inspection apparatus includes a keyword appearance position extraction unit, a keyword range presence / absence determination unit, a feature element matrix creation unit, and a common element number calculation unit. The keyword appearance position extraction unit extracts a keyword and an appearance position of the keyword from a determination target document including a confidential document. In addition, the keyword range presence / absence determination unit determines whether there is another extracted keyword within a predetermined range related to before and after the determination target keyword, with the keyword for each appearance position of the extracted keyword as a determination target. judge.

そして、他のキーワードがあると判定されたとき、特徴素行列作成部は、判定対象のキーワードおよび上記の他のキーワードを各キーワードの出現位置の前後情報に対応づけて組み合わせた、組み合わせ情報を生成する。共通要素数算出部は、判定対象文書について生成された複数の組み合わせ情報のうち、機密文書の組み合わせ情報と一致する組み合わせ情報の数が、所定値以上であるか否かを判定する。   Then, when it is determined that there is another keyword, the feature element matrix creation unit generates combination information by combining the determination target keyword and the other keyword in association with the information before and after the appearance position of each keyword. To do. The common element number calculation unit determines whether or not the number of combination information that matches the combination information of the confidential document among the plurality of combination information generated for the determination target document is equal to or greater than a predetermined value.

なお、機密情報の漏洩防止に関しては、上記のごとき文書検査装置以外にも、例えば、以下のような印刷データ処理方法も提案されている。当該印刷データ処理方法は、印刷データの監視を、効率的かつ有効に実施するための方法である。   For preventing leakage of confidential information, in addition to the document inspection apparatus as described above, for example, the following print data processing method has been proposed. The print data processing method is a method for efficiently and effectively monitoring print data.

具体的には、当該印刷データ処理方法は、印刷処理の途中で生成される印刷メタデータを取得し、記憶装置に格納するステップを含む。また、当該印刷データ処理方法は、以下のような判断ステップを含む。   Specifically, the print data processing method includes a step of acquiring print metadata generated during the print process and storing it in a storage device. The print data processing method includes the following determination steps.

記憶装置に格納されている印刷メタデータに含まれる描画レコードが図形の描画命令を含む場合、判断ステップでは、当該描画命令を実行することなく、「当該描画命令によって生成されることとなる描画オブジェクトが、所定の状態にあるか」が判断される。ここで、「所定の状態」とは、「文字の可能性が高い」とされる状態である。より具体的には、判断ステップでは、当該描画命令に関連する描画レコードに含まれる描画点の座標値から、上記のような判断が行われる。   When the drawing record included in the print metadata stored in the storage device includes a drawing command for graphics, the determination step does not execute the drawing command, but “drawing object to be generated by the drawing command”. Is in a predetermined state. Here, the “predetermined state” is a state in which “the possibility of characters is high”. More specifically, in the determination step, the above determination is made from the coordinate values of the drawing points included in the drawing record related to the drawing command.

そして、図形の描画命令によって生成されることとなる描画オブジェクトが、所定の状態にあると判断された場合、当該印刷データ処理方法によれば、図形の描画命令に係る描画レコードにしたがって描画処理が実施され、描画結果が記憶装置に格納される。また、当該印刷データ処理方法は、描画処理の描画結果に対して文字認識処理を実施するステップを含む。   When it is determined that the drawing object to be generated by the graphic drawing command is in a predetermined state, according to the print data processing method, the drawing processing is performed according to the drawing record related to the graphic drawing command. The drawing result is stored in the storage device. The print data processing method includes a step of performing character recognition processing on the drawing result of the drawing processing.

ところで、文書間の関連性を評価または判定する技術の中には、文書に含まれるデータ自体だけでなく、文書に対するユーザの操作にも基づいて、評価または判定を実行するものもある。   By the way, some techniques for evaluating or determining the relationship between documents perform evaluation or determination based not only on the data itself contained in the document but also on the user's operation on the document.

例えば、ユーザの挙動およびその変化に基づき適切に文書間のリンクづけを行うことを目的として、以下のような技術が提案されている。
文書管理システムに対するユーザのアクセス履歴ログデータにおける、メタデータに関連するログデータから、各ユーザの遷移履歴に関する遷移データが生成される。また、遷移データを用いて、各メタデータについて、当該メタデータに到達する前の挙動と、当該メタデータに到達した後の挙動とに基づき、メタデータの寄与値が算出される。
For example, the following techniques have been proposed for the purpose of appropriately linking documents based on user behavior and changes thereof.
Transition data relating to the transition history of each user is generated from the log data related to the metadata in the user access history log data for the document management system. Further, for each metadata, the contribution value of the metadata is calculated based on the behavior before reaching the metadata and the behavior after reaching the metadata, using the transition data.

そして、遷移データとメタデータの寄与値に基づき、特定期間における、第1メタデータから遷移先となる第2メタデータへのリンク寄与値が算出される。その後、特定期間における上記リンクのリンク寄与値と、特定期間より前の期間における上記リンクのリンク評価値とに基づき、特定期間における上記リンクのリンク評価値が算出される。そして、特定期間におけるリンク評価値に基づき、上記リンクの生成の是非が判断される。   Then, based on the contribution values of the transition data and the metadata, a link contribution value from the first metadata to the second metadata that is the transition destination in a specific period is calculated. Thereafter, based on the link contribution value of the link in the specific period and the link evaluation value of the link in the period before the specific period, the link evaluation value of the link in the specific period is calculated. Then, whether or not the link is generated is determined based on the link evaluation value in the specific period.

また、電子データである文書の集合を用いた調査業務等において、ユーザによる文書の閲覧時に、関連する文書を適切に表示することを目的として、次のような関連文書表示システムが提案されている。   In addition, the following related document display system has been proposed for the purpose of appropriately displaying related documents when a user views a document in a survey work using a set of documents that are electronic data. .

当該関連文書表示システムは、関連学習制御部とレコメンド制御部を有する。関連学習制御部は、過去の文書の作成に基づき、文書の集合において関連する文書同士を、有効な関連リンクとして関連リンク記憶部に記憶する。その後、ユーザによって文書の集合におけるいずれかの文書が閲覧された場合、レコメンド制御部は、関連リンク記憶部を参照して、閲覧された文書との間に有効な関連リンクを有する文書を抽出する。そして、レコメンド制御部は、抽出した文書を、閲覧された文書に関連する文書として、表示部に表示する。   The related document display system includes a related learning control unit and a recommendation control unit. The related learning control unit stores the related documents in the document set in the related link storage unit as effective related links based on the creation of the past documents. Thereafter, when any document in the set of documents is browsed by the user, the recommendation control unit refers to the related link storage unit and extracts a document having a valid related link with the viewed document. . Then, the recommendation control unit displays the extracted document on the display unit as a document related to the browsed document.

さらに、ウェブベースのタスクを記録および再生するための、次のような方法も提案されている。
当該方法は、記録するセッションの開始を明示的に合図することなく、ユーザによって今しがた行われたセッション中に実施されたウェブベースのタスクを記録すること(換言すれば、ユーザ関与無しにセッションの開始を自動的に見つけること)を含む。また、当該方法は、記録されたウェブベースのタスクを再生する要求を受信することと、記録されたウェブベースのタスクを再生することを含む。
In addition, the following methods for recording and playing back web-based tasks have also been proposed.
The method records web-based tasks performed during a session that has just been performed by the user without explicitly signaling the start of the recording session (in other words, the start of the session without user involvement). Automatically find). The method also includes receiving a request to play the recorded web-based task and playing the recorded web-based task.

ところで、文書に対するユーザの操作の例としては、ハイパーリンクをクリックする操作なども挙げられるが、ほかにも、コピー・アンド・ペースト操作やカット・アンド・ペースト操作が挙げられる。ユーザは、類似文書からデータをコピー・アンド・ペーストして使うこともある。例えば、ある種のOS(Operating System)が搭載されたコンピュータでは、単純なペースト機能が使われ得るだけでなく、例えば以下のような拡張されたペースト機能が使われてもよい。   An example of a user operation on a document includes an operation of clicking a hyperlink, and other operations include a copy and paste operation and a cut and paste operation. The user may copy and paste data from a similar document. For example, in a computer equipped with a certain type of OS (Operating System), not only a simple paste function can be used, but also an extended paste function as described below may be used.

ペーストするために文書から選択された選択データは、クリップボードなどの記憶域に保存される。選択データに関連するデータ型に関する情報を、消費側またはペースト・アプリケーションに提供するために、選択データに関連する情報またはデータが、選択データとともに保存される。消費側アプリケーションは、ペーストされるデータのデータ構造および書式設定が、ペースト前の選択データに適用されていた状態で維持されるように、名前空間、および拡張スタイルシート言語変換ファイルなどの、関連リソースを取得する。具体的には、上記関連リソースは、選択データを、第1の文書に関連づけられた第1のデータ型から、当該選択データを第2の文書にペーストするための第2のデータ型に、変換するためのものである。   Selection data selected from the document for pasting is stored in a storage area such as a clipboard. In order to provide information about the data type associated with the selection data to the consumer or paste application, the information or data associated with the selection data is stored with the selection data. The consuming application can use related resources, such as namespaces and extended style sheet language conversion files, so that the data structure and formatting of the pasted data is maintained as it was applied to the selected data before pasting. To get. Specifically, the related resource converts the selection data from a first data type associated with the first document to a second data type for pasting the selection data into the second document. Is to do.

特開2004−171215号公報JP 2004-171215 A 特開2010−231766号公報JP 2010-231766 A 特開2009−140127号公報JP 2009-140127 A 特開2007−4779号公報Japanese Patent Laid-Open No. 2007-4779 特開2011−28447号公報JP 2011-28447 A 特開2011−159281号公報JP 2011-159281 A 特開2004−265402号公報JP 2004-265402 A

大量のファイルの中から、あるファイルに関連する他のファイルを見つける技術は、ユーザによる既存のファイルの有効活用を支援するうえで有益である。   A technique for finding other files related to a certain file from a large number of files is useful for helping a user to effectively use an existing file.

例えば、あるファイル中のデータが他のファイルにおいて再利用される場合、両ファイルが意味的に関連する蓋然性は高い。よって、データの再利用に基づくファイル間の関連性を適切に検出することの可能な技術がもし提供されれば、当該技術は、ユーザによる既存のファイルの有効活用を支援するうえで有益である。   For example, when data in one file is reused in another file, there is a high probability that both files are semantically related. Therefore, if a technology that can properly detect the relationship between files based on the reuse of data is provided, this technology is useful for supporting the effective use of existing files by users. .

本発明は、1つの側面では、データの再利用に基づくファイル間の関連性を精度良く検出し、ファイル同士を適切に関連づけることを目的とする。   In one aspect, an object of the present invention is to accurately detect a relationship between files based on data reuse and to appropriately associate files with each other.

一態様による関連づけプログラムは、複数のファイルを管理するファイル管理コンピュータに、以下の関連づけ処理を実行させる。   An association program according to one aspect causes a file management computer that manages a plurality of files to execute the following association processing.

前記関連づけ処理は、クリップボードデータと、前記クリップボードデータがクリップボードに書き込まれた時刻を示す時刻情報を取得することを含む。前記クリップボードデータは、前記複数のファイルのうちの第1のファイルが閉じられるよりも前の期間の少なくとも一部においては前記クリップボードに記憶されていたデータである。   The association process includes obtaining clipboard data and time information indicating the time when the clipboard data was written to the clipboard. The clipboard data is data stored in the clipboard for at least part of a period before the first file of the plurality of files is closed.

前記関連づけ処理は、前記複数のファイルのうちで、前記時刻情報の示す前記時刻において開かれていた第2のファイルを特定することを含む。   The association process includes specifying a second file opened at the time indicated by the time information among the plurality of files.

前記関連づけ処理は、前記第1のファイルが前記クリップボードデータまたは第1の類似データを含み、かつ、前記第2のファイルが前記クリップボードデータまたは第2の類似データを含む場合、前記第1のファイルと前記第2のファイルを関連づけることも含む。前記第1の類似データは、データ同士の類似性に関する所定の関係が前記クリップボードデータとの間で成立するデータである。前記第2の類似データも、前記クリップボードデータとの間で前記所定の関係が成立するデータである。   When the first file includes the clipboard data or the first similar data, and the second file includes the clipboard data or the second similar data, the associating process includes: Including associating the second file. The first similar data is data in which a predetermined relationship regarding the similarity between data is established with the clipboard data. The second similar data is also data that establishes the predetermined relationship with the clipboard data.

上記の関連づけプログラムによれば、データの再利用に基づくファイル間の関連性を精度良く検出し、ファイル同士を適切に関連づけることができる。   According to the above association program, it is possible to accurately detect the association between files based on the reuse of data and to associate the files appropriately.

ファイルの編集とクリップボード上のデータの変遷の例を示すシーケンス図である。It is a sequence diagram which shows the example of the edit of a file, and the transition of the data on a clipboard. 第1実施形態のシステム構成図である。It is a system configuration figure of a 1st embodiment. ハードウェア構成例を示す図である。It is a figure which shows the hardware structural example. システムの動作フローチャートである。It is an operation | movement flowchart of a system. ログ記憶部に記憶されるログの例を示す図である。It is a figure which shows the example of the log memorize | stored in a log memory | storage part. クリップボードデータ記憶部に記憶されるクリップボードデータテーブルの例を示す図である。It is a figure which shows the example of the clipboard data table memorize | stored in a clipboard data storage part. リンク記憶部に記憶されるリンクテーブルの例を示す図である。It is a figure which shows the example of the link table memorize | stored in a link memory | storage part. オープン処理のフローチャートである。It is a flowchart of an open process. クライアント側のリンク処理のフローチャートである。It is a flowchart of the link process on the client side. クライアント側のクリップボードデータ送信処理のフローチャートである。It is a flowchart of clipboard data transmission processing on the client side. サーバ側のリンク処理のフローチャート(その1)である。It is a flowchart (the 1) of the link process by the server side. サーバ側のリンク処理のフローチャート(その2)である。It is a flowchart (the 2) of the link process by the server side. サーバ側のリンク処理のフローチャート(その3)である。It is a flowchart (the 3) of the link process by the side of a server. サーバ側の比較処理のフローチャート(その1)である。It is a flowchart (the 1) of the comparison process by the server side. サーバ側の比較処理のフローチャート(その2)である。It is a flowchart (the 2) of the comparison process by the server side. 第2実施形態のシステム構成図である。It is a system configuration figure of a 2nd embodiment.

以下、実施形態について、図面を参照しながら詳細に説明する。なお、以下に説明するファイル同士の関連づけは、実施形態に応じて、クライアントサーバシステムにおいて行われてもよいし、スタンドアロンシステムにおいて行われてもよい。   Hereinafter, embodiments will be described in detail with reference to the drawings. Note that the association of files described below may be performed in a client server system or a stand-alone system, depending on the embodiment.

そこで、以下ではまず、「ファイル同士の関連づけがクライアントサーバシステムとスタンドアロンシステムのいずれで行われるのか」ということによらない共通点について、図1を参照して説明する。その後、クライアントサーバシステムが利用される第1実施形態について、図2〜15を参照して説明する。さらに、スタンドアロンシステムが利用される第2実施形態について、図16を参照して説明する。   Therefore, in the following, a common point that does not depend on whether the association between files is performed in the client server system or the stand-alone system will be described with reference to FIG. Thereafter, a first embodiment in which the client server system is used will be described with reference to FIGS. Furthermore, a second embodiment in which a stand-alone system is used will be described with reference to FIG.

その後、他の技術と比べての第1・第2実施形態の利点について説明する。最後に、いくつかの変形例についても説明する。   Thereafter, advantages of the first and second embodiments over other technologies will be described. Finally, some modifications will be described.

さて、図1は、ファイルの編集とクリップボード上データの変遷の例を示すシーケンス図である。図1には、ファイル1〜5とクリップボード6のタイムラインが示されている。なお、ファイル1〜5の各々は、文書作成アプリケーションやテキストエディタなどにより作成された文書ファイルでもよいし、その他の種類のアプリケーションにより作成されたファイル(例えば、プレゼンテーションスライド形式のファイル)でもよい。   FIG. 1 is a sequence diagram showing an example of file editing and clipboard data transition. FIG. 1 shows timelines of files 1 to 5 and clipboard 6. Each of the files 1 to 5 may be a document file created by a document creation application or a text editor, or may be a file created by another type of application (for example, a presentation slide format file).

図1において、各ファイルのタイムライン上の矩形(すなわちアクティベーション)は、ファイルが開かれている期間を示す。例えば、図1の例においては、ファイル1は時刻T2から時刻T7まで開かれている。   In FIG. 1, a rectangle (that is, activation) on the timeline of each file indicates a period during which the file is opened. For example, in the example of FIG. 1, file 1 is opened from time T2 to time T7.

また、クリップボード6は、OSにより提供されるデータ記憶領域である。ユーザがコピー操作またはカット操作を行うたびに、クリップボード6が書き換えられる。クリップボード6は、各種アプリケーションから、API(Application Programming Interface)を介してアクセス可能である。   The clipboard 6 is a data storage area provided by the OS. Each time the user performs a copy operation or a cut operation, the clipboard 6 is rewritten. The clipboard 6 can be accessed from various applications via an API (Application Programming Interface).

つまり、各アプリケーションは、コピー操作またはカット操作に応じて、APIを介して、クリップボード6にデータを書き込むことができる。また、各アプリケーションは、ペースト操作に応じて、APIを介して、クリップボード6からデータを読み出すことができる。   That is, each application can write data to the clipboard 6 via the API in response to a copy operation or a cut operation. Each application can read data from the clipboard 6 via the API in accordance with the paste operation.

一つの観点によれば、クリップボード6は、複数のアプリケーション間で共有されるデータ記憶領域である。よって、アプリケーション間でのデータの再利用は、クリップボード6を介して可能となる。   According to one aspect, the clipboard 6 is a data storage area shared between a plurality of applications. Therefore, data can be reused between applications via the clipboard 6.

ところで、あるアプリケーションがクリップボード6を更新した場合、クリップボード6が更新されたこと自体は、他のアプリケーションも、適宜のAPIを介して検出することができる。しかし、他のアプリケーションは、単に「クリップボード6が更新された」ということを認識するだけであり、「どのアプリケーションがクリップボード6を更新したのか」ということまでは認識しない。このような限界があるにもかかわらず、以下に説明する実施形態によれば、「クリップボード6を介したデータの再利用がどのファイル間で行われたのか」という推定が可能である。   By the way, when a certain application updates the clipboard 6, the fact that the clipboard 6 has been updated can be detected by other applications via an appropriate API. However, the other application simply recognizes that “the clipboard 6 has been updated” and does not recognize “which application has updated the clipboard 6”. In spite of such limitations, according to the embodiment described below, it is possible to estimate between which files data reuse through the clipboard 6 was performed.

さて、あるアプリケーションを使ってファイルを編集中のユーザが、ペースト操作を行うと、アプリケーションは、クリップボード6上のデータ(以下、「クリップボードデータ」ともいう)を読み出す。そして、アプリケーションは、読み出したデータを、ペースト操作が行われたファイルにペーストする。   When a user who is editing a file using a certain application performs a paste operation, the application reads data on the clipboard 6 (hereinafter also referred to as “clipboard data”). Then, the application pastes the read data into the file on which the paste operation has been performed.

図1の例では、以下の項目(1a)〜(1e)に示すようにして、次々に新たなクリップボードデータがクリップボード6に書き込まれる。すなわち、図1の例では、クリップボード6は、時刻T1、T3、T5、T6、およびT8に書き換えられている。   In the example of FIG. 1, new clipboard data is sequentially written to the clipboard 6 as shown in the following items (1a) to (1e). That is, in the example of FIG. 1, the clipboard 6 is rewritten at times T1, T3, T5, T6, and T8.

(1a)時刻T1にクリップボードデータD1がクリップボード6に書き込まれる。
(1b)時刻T3にクリップボードデータD2がクリップボード6に書き込まれる。
(1c)時刻T5にクリップボードデータD3がクリップボード6に書き込まれる。
(1d)時刻T6にクリップボードデータD4がクリップボード6に書き込まれる。
(1e)時刻T8にクリップボードデータD5がクリップボード6に書き込まれる。
(1a) Clipboard data D1 is written to the clipboard 6 at time T1.
(1b) Clipboard data D2 is written to the clipboard 6 at time T3.
(1c) Clipboard data D3 is written to the clipboard 6 at time T5.
(1d) Clipboard data D4 is written to the clipboard 6 at time T6.
(1e) Clipboard data D5 is written to the clipboard 6 at time T8.

図1の例では、「ファイル1が開いている期間(すなわち時刻T2から時刻T7までの期間)の少なくとも一部においてクリップボード6に記憶されている」という条件を満たすデータは、クリップボードデータD1〜D4である。クリップボードデータD5は当該条件を満たさない。したがって、以下の可能性(2a)〜(2d)があり得るが、クリップボードデータD5がファイル1にペーストされた可能性はない。   In the example of FIG. 1, the data satisfying the condition that “the file 1 is stored in the clipboard 6 in at least a part of the period during which the file 1 is open (that is, the period from time T2 to time T7)” It is. The clipboard data D5 does not satisfy the condition. Therefore, there are the following possibilities (2a) to (2d), but there is no possibility that the clipboard data D5 has been pasted into the file 1.

(2a)ファイル1が開いている間(より詳しくは、時刻T2から時刻T3までの間)に、クリップボードデータD1がファイル1にペーストされた可能性。
(2b)ファイル1が開いている間(より詳しくは、時刻T3から時刻T5までの間)に、クリップボードデータD2がファイル1にペーストされた可能性。
(2c)ファイル1が開いている間(より詳しくは、時刻T5から時刻T6までの間)に、クリップボードデータD3がファイル1にペーストされた可能性。
(2d)ファイル1が開いている間(より詳しくは、時刻T6から時刻T7までの間)に、クリップボードデータD4がファイル1にペーストされた可能性。
(2a) The possibility that the clipboard data D1 was pasted into the file 1 while the file 1 was open (more specifically, from time T2 to time T3).
(2b) The possibility that the clipboard data D2 has been pasted into the file 1 while the file 1 is open (more specifically, from time T3 to time T5).
(2c) The possibility that the clipboard data D3 has been pasted into the file 1 while the file 1 is open (more specifically, from time T5 to time T6).
(2d) The possibility that the clipboard data D4 has been pasted into the file 1 while the file 1 is open (more specifically, from time T6 to time T7).

ところで、図1の例では、クリップボードデータD1がクリップボード6に書き込まれた時刻T1に開いているファイルは、ファイル2と4のみである。よって、もしクリップボードデータD1がファイル1にペーストされたのだとすれば、クリップボードデータD1が元々含まれていたファイルは、ファイル2または4である。   By the way, in the example of FIG. 1, only the files 2 and 4 are opened at the time T1 when the clipboard data D1 is written to the clipboard 6. Therefore, if the clipboard data D1 is pasted into the file 1, the file that originally contained the clipboard data D1 is the file 2 or 4.

逆に、ファイル3と5は、どちらも、時刻T1にはまだ開かれていない。そのため、クリップボードデータD1がファイル3または5からファイル1へとコピー・アンド・ペースト(またはカット・アンド・ペースト)された、という可能性はない。   Conversely, both files 3 and 5 are not yet opened at time T1. Therefore, there is no possibility that the clipboard data D1 is copied and pasted (or cut and pasted) from the file 3 or 5 to the file 1.

以上から、ファイル1と2の双方がクリップボードデータD1を含む場合、「元々はファイル2に含まれていたクリップボードデータD1が、ファイル2からコピーされて、ファイル1へとペーストされた」という蓋然性が高い。換言すれば、この場合、「ファイル2内のクリップボードデータD1が、ファイル1において再利用された」という蓋然性が高い。したがって、この場合、「ファイル1と2の間には、データの再利用に基づく関連性がある」と推定することは妥当である。   From the above, if both files 1 and 2 include clipboard data D1, there is a probability that “clipboard data D1 originally included in file 2 was copied from file 2 and pasted into file 1”. high. In other words, in this case, there is a high probability that “the clipboard data D1 in the file 2 has been reused in the file 1”. Therefore, in this case, it is reasonable to estimate that “there is a relationship between files 1 and 2 based on data reuse”.

なお、ファイル2中のデータがファイル1へとカット・アンド・ペーストされた場合は、(アンドゥ操作などが行われない限りは)ファイル2からは当該データが削除されてしまう。よって、「ファイル1と2がクリップボードデータD1を含むので、ファイル1と2の間には、データの再利用に基づく関連性がある」という上記の推測は、より具体的には、コピー・アンド・ペーストによるデータ再利用に関する推測である。   When data in file 2 is cut and pasted into file 1, the data is deleted from file 2 (unless an undo operation or the like is performed). Therefore, more specifically, the above-mentioned assumption that “files 1 and 2 include clipboard data D1 and there is a relationship between files 1 and 2 based on data reuse” is a copy-and-copy operation.・ A guess about data reuse by pasting.

同様に、ファイル1と4の双方がクリップボードデータD1を含む場合、「元々はファイル4に含まれていたクリップボードデータD1が、ファイル4からコピーされて、ファイル1へとペーストされた」という蓋然性が高い。換言すれば、この場合、「ファイル4内のクリップボードデータD1が、ファイル1において再利用された」という蓋然性が高い。したがって、この場合、「ファイル1と4の間には、データの再利用に基づく関連性がある」と推定することは妥当である。   Similarly, when both files 1 and 4 include clipboard data D1, there is a probability that “clipboard data D1 originally included in file 4 has been copied from file 4 and pasted into file 1”. high. In other words, in this case, there is a high probability that “the clipboard data D1 in the file 4 has been reused in the file 1”. Therefore, in this case, it is reasonable to estimate that “there is a relationship between files 1 and 4 based on data reuse”.

また、クリップボードデータD2がクリップボード6に書き込まれた時刻T3に開いているファイルは、ファイル1以外では、ファイル2と4のみである。よって、ファイル1と2の双方がクリップボードデータD2を含む場合には、「ファイル1と2の間には、データの再利用に基づく関連性がある」と推定することは妥当である。同様に、ファイル1と4の双方がクリップボードデータD2を含む場合には、「ファイル1と4の間には、データの再利用に基づく関連性がある」と推定することは妥当である。   The files opened at time T3 when the clipboard data D2 is written to the clipboard 6 are only the files 2 and 4 except for the file 1. Therefore, when both the files 1 and 2 include the clipboard data D2, it is reasonable to estimate that “there is a relationship between the files 1 and 2 based on data reuse”. Similarly, when both the files 1 and 4 include the clipboard data D2, it is reasonable to estimate that “there is a relationship between the files 1 and 4 based on the reuse of data”.

そして、クリップボードデータD3がクリップボード6に書き込まれた時刻T5に開いているファイルは、ファイル1以外では、ファイル3と4のみである。よって、ファイル1と3の双方がクリップボードデータD3を含む場合には、「ファイル1と3の間には、データの再利用に基づく関連性がある」と推定することは妥当である。同様に、ファイル1と4の双方がクリップボードデータD3を含む場合には、「ファイル1と4の間には、データの再利用に基づく関連性がある」と推定することは妥当である。   The files opened at time T5 when the clipboard data D3 is written to the clipboard 6 are only the files 3 and 4 except for the file 1. Therefore, when both the files 1 and 3 include the clipboard data D3, it is reasonable to estimate that “there is a relationship between the files 1 and 3 based on data reuse”. Similarly, when both the files 1 and 4 include the clipboard data D3, it is reasonable to estimate that “there is a relationship between the files 1 and 4 based on data reuse”.

また、クリップボードデータD4がクリップボード6に書き込まれた時刻T6に開いているファイルは、ファイル1以外では、ファイル4と5のみである。よって、ファイル1と4の双方がクリップボードデータD4を含む場合には、「ファイル1と4の間には、データの再利用に基づく関連性がある」と推定することは妥当である。同様に、ファイル1と5の双方がクリップボードデータD4を含む場合には、「ファイル1と5の間には、データの再利用に基づく関連性がある」と推定することは妥当である。   The files opened at time T6 when the clipboard data D4 is written to the clipboard 6 are only the files 4 and 5 except for the file 1. Therefore, when both the files 1 and 4 include the clipboard data D4, it is reasonable to estimate that “there is a relationship between the files 1 and 4 based on data reuse”. Similarly, when both files 1 and 5 include clipboard data D4, it is reasonable to estimate that “files 1 and 5 have a relationship based on data reuse”.

そこで、以上説明したようなデータの再利用に基づく関連性を検出し、検出した関連性にしたがってファイル同士を関連づけるために、第1および第2実施形態では、クリップボード6上のデータの変遷が監視される。具体的には、クリップボード6に書き込まれたデータは、当該データがクリップボード6に書き込まれた時刻(すなわちクリップボード6の書き換え時刻)を示す時刻情報とともに記録される。   Therefore, in order to detect the relevance based on the reuse of data as described above and associate the files according to the detected relevance, in the first and second embodiments, the transition of data on the clipboard 6 is monitored. Is done. Specifically, the data written to the clipboard 6 is recorded together with time information indicating the time when the data was written to the clipboard 6 (that is, the rewriting time of the clipboard 6).

そして、第1および第2実施形態では、複数のファイル(例えば、ファイル1〜5を含む多数のファイル)を管理するファイル管理コンピュータが、次のような関連づけ処理を実行する。ファイル管理コンピュータは、クライアントサーバシステムにおけるサーバコンピュータであってもよいし、スタンドアロンコンピュータであってもよい。   In the first and second embodiments, a file management computer that manages a plurality of files (for example, a large number of files including files 1 to 5) executes the following association process. The file management computer may be a server computer in a client server system or a stand-alone computer.

ファイル管理コンピュータは、クリップボードデータと、当該クリップボードデータがクリップボード6に書き込まれた時刻を示す時刻情報を取得する。ファイル管理コンピュータが取得するクリップボードデータは、具体的には、第1のファイル(例えばファイル1)が閉じられるよりも前の期間の少なくとも一部においてはクリップボード6に記憶されていたデータである。   The file management computer acquires clipboard data and time information indicating the time when the clipboard data is written to the clipboard 6. Specifically, the clipboard data acquired by the file management computer is data stored in the clipboard 6 in at least a part of the period before the first file (for example, the file 1) is closed.

当然ながら、第1のファイルが閉じられた後には、データがクリップボード6から第1のファイルへとペーストされることはない。よって、ファイル管理コンピュータは、第1のファイルが閉じられた後にクリップボード6に記憶されていたデータを取得する必要はない。そのため、ファイル管理コンピュータは、上記のとおり、第1のファイルが閉じられるよりも前の期間の少なくとも一部においてはクリップボード6に記憶されていたデータを取得する。   Of course, no data is pasted from the clipboard 6 into the first file after the first file is closed. Therefore, the file management computer does not need to acquire data stored in the clipboard 6 after the first file is closed. Therefore, as described above, the file management computer acquires data stored in the clipboard 6 in at least a part of the period before the first file is closed.

また、上記のとおり第1および第2実施形態では、クリップボードデータと時刻情報が記録される。したがって、ファイル管理コンピュータは、上記のようなクリップボードデータと時刻情報を取得することが可能である。   As described above, in the first and second embodiments, clipboard data and time information are recorded. Therefore, the file management computer can acquire the above clipboard data and time information.

また、ファイル管理コンピュータは、ファイル管理コンピュータが管理する上記の複数のファイルのうちで、取得した時刻情報の示す時刻において開かれていた第2のファイルを特定する。特定される第2のファイルの数は、複数のこともある。例えば、ファイル管理コンピュータは、図1のクリップボードデータD2と、クリップボードデータD2がクリップボード6に書き込まれた時刻T3を示す時刻情報を取得した場合は、ファイル2と4をそれぞれ第2のファイルとして特定する。   Further, the file management computer specifies a second file opened at the time indicated by the acquired time information among the plurality of files managed by the file management computer. There may be a plurality of second files to be identified. For example, when the file management computer acquires the clipboard data D2 of FIG. 1 and time information indicating the time T3 when the clipboard data D2 is written to the clipboard 6, the files management computer identifies the files 2 and 4 as the second files, respectively. .

そして、ファイル管理コンピュータは、次の条件(3a)と(3b)がともに成り立つ場合に、第1のファイルと第2のファイルを関連づける。   The file management computer associates the first file with the second file when the following conditions (3a) and (3b) are both satisfied.

(3a)取得されたクリップボードデータを、第1のファイルが含む。
(3b)取得されたクリップボードデータを、第2のファイルが含む。
(3a) The first file includes the acquired clipboard data.
(3b) The second file includes the acquired clipboard data.

例えば、第1のファイルがファイル1であり、ファイル管理コンピュータがクリップボードデータD2を取得し、ファイル2と4を第2のファイルとして特定したとする。この場合、もし、ファイル1と2の双方がクリップボードデータD2を含んでいれば、条件(3a)と(3b)がともに成り立つので、ファイル管理コンピュータは、ファイル1と2を関連づける。同様に、もし、ファイル1と4の双方がクリップボードデータD2を含んでいれば、条件(3a)と(3b)がともに成り立つので、ファイル管理コンピュータは、ファイル1と4を関連づける。   For example, assume that the first file is file 1, the file management computer acquires clipboard data D2, and identifies files 2 and 4 as second files. In this case, if both the files 1 and 2 include the clipboard data D2, the conditions (3a) and (3b) are both satisfied, and the file management computer associates the files 1 and 2. Similarly, if both the files 1 and 4 include the clipboard data D2, the conditions (3a) and (3b) are both satisfied, and the file management computer associates the files 1 and 4.

ファイル管理コンピュータは、条件(3a)と(3b)の代わりに、以下の条件(4a)と(4b)を用いてもよい。すなわち、ファイル管理コンピュータは、条件(4a)と(4b)がともに成り立つ場合に、第1のファイルと第2のファイルを関連づけてもよい。   The file management computer may use the following conditions (4a) and (4b) instead of the conditions (3a) and (3b). That is, the file management computer may associate the first file with the second file when both the conditions (4a) and (4b) are satisfied.

(4a)取得されたクリップボードデータ自体を第1のファイルが含むか、または、データ同士の類似性に関する所定の関係が当該クリップボードデータとの間で成立する第1の類似データを、第1のファイルが含む。
(4b)取得されたクリップボードデータを、第2のファイルが含む。
(4a) The first file includes the acquired clipboard data itself, or the first file includes the first similar data in which a predetermined relationship regarding the similarity between the data is established with the clipboard data. Includes.
(4b) The second file includes the acquired clipboard data.

条件(4a)において、クリップボードデータそのものだけでなく、類似データも考慮される理由は、次のとおりである。
後述の図9〜15に関する説明から明らかなように、クリップボードデータが第1のファイルにペーストされてから、ファイル管理コンピュータが関連づけ処理を実行するまでに、ある程度のタイムラグが生じ得る。よって、そのタイムラグの間に、第1のファイルが編集される可能性もある。
In the condition (4a), the reason why not only the clipboard data itself but also similar data is considered is as follows.
As will be apparent from the description regarding FIGS. 9 to 15 described later, a certain amount of time lag may occur after the clipboard data is pasted into the first file until the file management computer executes the association process. Therefore, the first file may be edited during the time lag.

より具体的には、第1のファイルにペーストされたクリップボードデータは、ファイル管理コンピュータが関連づけ処理を実行するよりも前に、第1のファイル上で編集される(すなわち変更される)可能性がある。その結果、第1のファイルは、クリップボードデータ自体は含まなくなる可能性がある。   More specifically, the clipboard data pasted into the first file may be edited (i.e., changed) on the first file before the file management computer executes the association process. is there. As a result, the first file may not include the clipboard data itself.

しかし、「ユーザが当該クリップボードデータの再利用を意図している場合は、編集されたデータは、ペーストされたデータ自体とよく似ている」と推測される。よって、ファイル管理コンピュータは、以上説明したような編集の可能性を考慮に入れるために、条件(4a)と(4b)がともに成り立つ場合に、第1のファイルと第2のファイルを関連づけてもよい。   However, it is presumed that “if the user intends to reuse the clipboard data, the edited data is very similar to the pasted data itself”. Therefore, in order to take into consideration the possibility of editing as described above, the file management computer may associate the first file with the second file when both the conditions (4a) and (4b) hold. Good.

なお、条件(4a)に関して述べた上記の所定の関係は、例えば、テキストデータに関する「2つの文字列が部分一致する」という関係でもよい。2つの文字列それぞれの長さと、2つの文字列の間で一致する部分の長さに関して、さらにルールが決められていてもよい。例えば、ある関数f1が予め定義されており、2つの文字列の長さはそれぞれL1とL2であり、L3=f1(L1,L2)だとする。この場合、上記の所定の関係は、「長さがL1とL2の2つの文字列の間で、長さL3以上の部分文字列が一致する」という関係でもよい。   Note that the predetermined relationship described with respect to the condition (4a) may be, for example, a relationship that “two character strings partially match” regarding text data. Further rules may be determined regarding the length of each of the two character strings and the length of the matching portion between the two character strings. For example, it is assumed that a certain function f1 is defined in advance, and the lengths of two character strings are L1 and L2, respectively, and L3 = f1 (L1, L2). In this case, the predetermined relationship may be a relationship that “a partial character string having a length of L3 or more matches between two character strings having a length of L1 and L2.”

予め適宜に定められた閾値よりも長い文字列同士に関しては、上記の所定の関係は、2つの文字列の双方に出現する形態素の数に基づいて定義される関係であってもよい。例えば、ある関数f2とf3が予め定義されているものとし、2つの文字列の長さをそれぞれL4とL5とし、L6=f2(L4,L5)とする。また、一方の文字列に含まれる形態素の数がN1であり、他方の文字列に含まれる形態素の数がN2であり、N3=f3(N1,N2)だとする。この場合、上記の所定の関係は、「それぞれの二つの文字列から得られる長さがL6以下の部分文字列において、双方の部分文字列に共通して出現する形態素の数が、N3以上である」という関係でもよい。   With respect to character strings longer than a predetermined threshold value, the predetermined relationship may be a relationship defined based on the number of morphemes that appear in both of the two character strings. For example, assuming that certain functions f2 and f3 are defined in advance, the lengths of the two character strings are L4 and L5, respectively, and L6 = f2 (L4, L5). Further, it is assumed that the number of morphemes included in one character string is N1, the number of morphemes included in the other character string is N2, and N3 = f3 (N1, N2). In this case, the predetermined relationship is as follows: “The number of morphemes that appear in both partial character strings in a partial character string having a length of L6 or less obtained from each two character strings is N3 or more. There may be a relationship of “Yes”.

例えば、クリップボードデータの文字列長がL4で、あるファイルに含まれる文字列全体の長さがL5の場合、L4≪L5であることも多い。L4≪L5の場合、クリップボードデータに含まれる形態素の大部分(または全部)が、上記のあるファイル中に、たまたま分散して含まれている可能性もある。しかし、クリップボードデータ中の形態素が、ファイル中に分散して含まれている(つまり互いに離れて含まれている)場合は、「ファイルの文字列がクリップボードデータの文字列と類似している」とは言い難い。   For example, when the length of the character string of the clipboard data is L4 and the length of the entire character string included in a certain file is L5, L4 << L5 is often satisfied. In the case of L4 << L5, most (or all) of the morphemes included in the clipboard data may happen to be dispersed in the certain file. However, if the morphemes in the clipboard data are included in the file in a distributed manner (that is, they are included apart from each other), the file string is similar to the clipboard data string. Is hard to say.

そこで、より適切な類似性の判断を可能にするため、例えば、関数f2は、L4よりも少しだけ大きな値(またはL4そのもの)をL6として返すように定義されていてもよい。また、関数f3は、N1よりも少しだけ小さな値をN3として返すように定義されていてもよい。すると、ファイル中の、ある限られた長さの部分文字列に、クリップボードデータ中のほぼすべての形態素が現れているときに、「クリップボードデータに類似する類似データが、ファイルに含まれている」と見なされる。   Therefore, in order to enable more appropriate similarity determination, for example, the function f2 may be defined to return a value slightly larger than L4 (or L4 itself) as L6. The function f3 may be defined to return a value slightly smaller than N1 as N3. Then, when almost all morphemes in clipboard data appear in a limited partial character string in the file, "Similar data similar to clipboard data is included in the file." Is considered.

また、ある種の曖昧検索では、表記の揺れを吸収するために、1つの用語についての異なる複数の表記同士を登録した辞書が使われることがある。上記の所定の関係は、例えば、このような辞書により定義される関係であってもよい。つまり、上記の所定の関係は、「2つの文字列は、1つの用語についての異なる複数の表記同士として、辞書に登録されている」という関係であってもよい。   In some types of ambiguous searches, a dictionary in which a plurality of different notations for one term are registered may be used to absorb the fluctuation of the notation. The predetermined relationship may be a relationship defined by such a dictionary, for example. That is, the predetermined relationship may be a relationship that “two character strings are registered in the dictionary as a plurality of different notations for one term”.

ところで、第2のファイルのデータを再利用して第1のファイルを編集するユーザは、第2のファイル自体は変更しない場合も多い。よって、上記の条件(4a)と(4b)のように、第1のファイルに関してのみ、類似データが考慮に入れられてもよい。   By the way, a user who edits the first file by reusing data of the second file often does not change the second file itself. Thus, similar data may be taken into account only for the first file, as in conditions (4a) and (4b) above.

しかし、場合によっては、クリップボードデータが第2のファイルからコピーされてから、ファイル管理コンピュータが関連づけ処理を実行するまでのタイムラグの間に、第2のファイルが編集される可能性もある。よって、ファイル管理コンピュータは、第2のファイルに関しても類似データを考慮に入れてもよい。すなわち、ファイル管理コンピュータは、以下の条件(5a)と(5b)がともに成り立つ場合に、第1のファイルと第2のファイルを関連づけてもよい。   However, in some cases, the second file may be edited during the time lag after the clipboard data is copied from the second file until the file management computer executes the association process. Thus, the file management computer may take into account similar data for the second file. That is, the file management computer may associate the first file and the second file when both of the following conditions (5a) and (5b) are satisfied.

(5a)取得されたクリップボードデータ自体を第1のファイルが含むか、または、上記の所定の関係が当該クリップボードデータとの間で成立する第1の類似データを、第1のファイルが含む。
(5b)取得されたクリップボードデータ自体を第2のファイルが含むか、または、上記の所定の関係が当該クリップボードデータとの間で成立する第2の類似データを、第2のファイルが含む。
(5a) The first file includes the acquired clipboard data itself, or the first file includes first similar data in which the predetermined relationship is established with the clipboard data.
(5b) The second file includes the acquired clipboard data itself, or the second file includes second similar data in which the predetermined relationship is established with the clipboard data.

ところで、ファイル管理コンピュータがクリップボードデータと時刻情報を取得する処理は、例えば、以下の項目(6a)に示す第1の要求を契機として実行されてもよいし、項目(6b)に示す第2の要求を契機として実行されてもよい。   By the way, the process in which the file management computer acquires the clipboard data and the time information may be executed, for example, triggered by the first request shown in the following item (6a) or the second request shown in the item (6b). It may be executed in response to a request.

(6a)第1のファイルを保存(save)して閉じる(close)ための第1の要求。
(6b)第1のファイルを開いたままで保存するための第2の要求。
(6a) A first request to save and close the first file.
(6b) A second request to save the first file open.

第1と第2の要求は、いずれも、ユーザ操作に応じてアプリケーションが発行する要求により、ファイル管理コンピュータが受信する要求である。具体的には、第1と第2の要求は、いずれも、アプリケーションからファイル管理コンピュータへの要求であってもよい。   Both the first and second requests are requests received by the file management computer in response to a request issued by an application in response to a user operation. Specifically, both the first and second requests may be requests from the application to the file management computer.

例えば、ユーザが第1のファイルを編集した後に、第1のファイルを保存するための操作を行うことなく第1のファイルを閉じようとする場合がある。この場合、アプリケーションは、第1のファイルを保存するか否かをユーザに選択させるためのダイアログを表示してもよい。そして、第1のファイルを保存することをユーザが選択すると、アプリケーションは、第1の要求を発行し、それによりファイル管理コンピュータは第1のファイルを保存して閉じてもよい。   For example, after the user edits the first file, the user may attempt to close the first file without performing an operation for saving the first file. In this case, the application may display a dialog for allowing the user to select whether or not to save the first file. Then, when the user selects to save the first file, the application may issue a first request whereby the file management computer may save and close the first file.

ところで、上記のとおり、第1のファイルが閉じられるよりも前の期間の少なくとも一部においてクリップボード6に記憶されていたデータが、ファイル管理コンピュータによりクリップボードデータとして取得される。より具体的には、ファイル管理コンピュータは、第1のファイルが閉じられるよりも前の期間のうちの特定の一部の期間を指定して、指定した期間の少なくとも一部においてクリップボード6に記憶されていたデータを取得してもよい。   By the way, as described above, the data stored in the clipboard 6 in at least a part of the period before the first file is closed is acquired as clipboard data by the file management computer. More specifically, the file management computer designates a specific part of the period before the first file is closed, and is stored in the clipboard 6 during at least a part of the designated period. The acquired data may be acquired.

例えば、第1ファイルは既存のファイルでもよい。ファイル管理コンピュータは、既存のファイルを開くための要求を監視することにより、既存のファイルが開かれた時刻を認識することができる。よって、この場合、ファイル管理コンピュータは、第1のファイルが開かれてから、第1または第2の要求の受領までの期間を認識することができる。したがって、この場合、ファイル管理コンピュータは、当該期間の少なくとも一部においてはクリップボード6に記憶されていたデータを、クリップボードデータとして取得してもよい。   For example, the first file may be an existing file. The file management computer can recognize the time when the existing file was opened by monitoring a request for opening the existing file. Therefore, in this case, the file management computer can recognize the period from when the first file is opened to when the first or second request is received. Therefore, in this case, the file management computer may acquire data stored in the clipboard 6 as clipboard data for at least part of the period.

例えば、図1のファイル1が既存のファイルであるものとし、図1の時刻T7に第1の要求が発行されたとする。この場合、時刻T2から時刻T7までの期間の少なくとも一部においてはクリップボード6に記憶されていたデータ(つまりデータD1、D2、D3、およびD4)が、クリップボードデータとして取得されてもよい。具体的には、ファイル管理コンピュータは、時刻T7における第1の要求を契機として、データD1、D2、D3、およびD4のそれぞれをクリップボードデータとして取得してもよい。   For example, it is assumed that the file 1 in FIG. 1 is an existing file, and the first request is issued at time T7 in FIG. In this case, data (that is, data D1, D2, D3, and D4) stored in the clipboard 6 during at least a part of the period from time T2 to time T7 may be acquired as clipboard data. Specifically, the file management computer may acquire each of the data D1, D2, D3, and D4 as clipboard data in response to the first request at time T7.

また、例えば、図1のファイル1が既存のファイルであるものとし、図1の時刻T4に第2の要求が発行されたとする。この場合、時刻T2から時刻T4までの期間の少なくとも一部においてはクリップボード6に記憶されていたデータ(つまりデータD1とD2)が、クリップボードデータとして取得されてもよい。具体的には、ファイル管理コンピュータは、時刻T4における第2の要求を契機として、データD1とD2のそれぞれをクリップボードデータとして取得してもよい。   For example, it is assumed that the file 1 in FIG. 1 is an existing file, and the second request is issued at time T4 in FIG. In this case, data (that is, data D1 and D2) stored in the clipboard 6 during at least a part of the period from time T2 to time T4 may be acquired as clipboard data. Specifically, the file management computer may acquire each of the data D1 and D2 as clipboard data in response to the second request at time T4.

なお、第1のファイルが既存のファイルではない場合もある。つまり、第1のファイルが新規作成される場合もある。アプリケーション等の実装にもよるが、第1のファイルが保存されるまでは、第1のファイルを作成したアプリケーションの外部(例えばOS)からは、新規作成された第1のファイルの存在が認識されないことがある。   Note that the first file may not be an existing file. That is, the first file may be newly created. Depending on the implementation of the application and the like, the existence of the newly created first file is not recognized from outside the application that created the first file (for example, the OS) until the first file is saved. Sometimes.

第1のファイルは、ユーザの操作に応じて新規作成されてもよい。しかし、第1のファイルを新規作成するための操作をユーザがいつ行ったのかは、第1のファイルを作成したアプリケーションの外部からは、認識されないことがある。   The first file may be newly created in response to a user operation. However, when the user has performed an operation for creating a first file may not be recognized from outside the application that created the first file.

一方、第1のファイルを新規作成するための操作をユーザが行った後は、第1のファイルにクリップボード6からデータがペーストされ得る。よって、第1のファイルを作成したアプリケーションの外部からは第1のファイルの存在が認識されない期間中であっても、第2のファイルから第1のファイルへとデータがコピー・アンド・ペーストされる可能性はある。   On the other hand, after the user performs an operation for creating a first file, data can be pasted from the clipboard 6 to the first file. Therefore, data is copied and pasted from the second file to the first file even during the period when the existence of the first file is not recognized from the outside of the application that created the first file. it's possible.

そこで、第1のファイルが新規作成されたファイルである場合には、ファイル管理コンピュータは、「第1または第2の要求の受領から所定時間だけ前の時刻に、第1のファイルを新規作成するための操作が行われた」と見なしてもよい。ファイル管理コンピュータは、少なくとも第1または第2の要求を受領する際には、第1のファイルの存在を認識することができる。よって、ファイル管理コンピュータは、第1のファイルを新規作成するための操作が行われた時点を、以上のように所定時間に基づいて推定してもよい。   Therefore, when the first file is a newly created file, the file management computer creates a new first file at a time that is a predetermined time before receipt of the first or second request. It may be considered that the operation for The file management computer can recognize the existence of the first file when receiving at least the first or second request. Therefore, the file management computer may estimate the time point when the operation for creating the first file is performed based on the predetermined time as described above.

そして、ファイル管理コンピュータは、第1または第2の要求の受領から所定時間以内の過去の期間の少なくとも一部においてクリップボード6に記憶されていたデータを、クリップボードデータとして取得してもよい。   Then, the file management computer may obtain data stored in the clipboard 6 as clipboard data in at least a part of a past period within a predetermined time from receipt of the first or second request.

例えば、図1のファイル1が新規作成されたファイルであるものとし、図1の時刻T4に第2の要求が発行されたとする。また、時刻T4よりも所定時間だけ前の時刻は、具体的には時刻T2であるものとする。   For example, it is assumed that the file 1 in FIG. 1 is a newly created file, and the second request is issued at time T4 in FIG. Further, the time that is a predetermined time before the time T4 is specifically the time T2.

この場合、第2の要求の受領から所定時間以内の過去の期間とは、時刻T2から時刻T4までの期間のことである。よって、ファイル管理コンピュータは、時刻T2から時刻T4までの期間の少なくとも一部においてクリップボード6に記憶されていたデータ(つまりデータD1とD2)を、クリップボードデータとして取得してもよい。   In this case, the past period within a predetermined time from receipt of the second request is a period from time T2 to time T4. Therefore, the file management computer may acquire the data (that is, data D1 and D2) stored in the clipboard 6 during at least a part of the period from time T2 to time T4 as clipboard data.

具体的には、ファイル管理コンピュータは、時刻T4における第2の要求を契機として、データD1とD2のそれぞれをクリップボードデータとして取得してもよい。ファイル1が実際にアプリケーション上で新規作成された時刻は、時刻T2よりも後かもしれないが、ファイル管理コンピュータは、以上のようにして「ファイル1が時刻T2に新規作成された」と推定し、推定に基づいてデータD1とD2を取得する。   Specifically, the file management computer may acquire each of the data D1 and D2 as clipboard data in response to the second request at time T4. The time when the file 1 is actually newly created on the application may be later than the time T2, but the file management computer estimates that “the file 1 is newly created at the time T2” as described above. Based on the estimation, data D1 and D2 are obtained.

ところで、上記の項目(6a)〜(6b)から分かるとおり、第1のファイルが開かれている間に、第2の要求がまったく発行されない場合もあり得るし、1回だけ発行される場合もあり得るし、2回以上発行される場合もあり得る。そして、ファイル管理コンピュータは、第2の要求が発行されるたびに、クリップボードデータを取得してもよい。   By the way, as can be seen from the above items (6a) to (6b), the second request may not be issued at all while the first file is opened, or may be issued only once. It can be issued more than once. The file management computer may acquire clipboard data each time the second request is issued.

1回以上第2の要求が発行された後で再度第2の要求が発行された場合、ファイル管理コンピュータは、以下のように動作してもよい。すなわち、ファイル管理コンピュータは、直近から2番目の第2の要求の受領から、直近の第2の要求の受領までの期間の少なくとも一部においてクリップボード6に記憶されていたデータを、クリップボードデータとして取得してもよい。   When the second request is issued again after the second request is issued one or more times, the file management computer may operate as follows. That is, the file management computer obtains the data stored in the clipboard 6 as clipboard data during at least a part of the period from the receipt of the second request from the second to the receipt of the latest second request. May be.

また、第1のファイルが開かれている間に、1回以上第2の要求が発行された後で第1の要求が発行されることもあり得る。例えば、図1のファイル1が開かれている間に、時刻T4において第2の要求が発行され、その後の時刻T7において第1の要求が発行され、第1の要求に応じて時刻T7にファイル1が閉じられる場合があり得る。   In addition, the first request may be issued after the second request is issued one or more times while the first file is opened. For example, while the file 1 of FIG. 1 is being opened, a second request is issued at time T4, a first request is issued at a subsequent time T7, and the file is received at time T7 in response to the first request. 1 may be closed.

このように、1回以上第2の要求が発行された後で第1の要求が発行される場合、ファイル管理コンピュータは、以下のように動作してもよい。すなわち、ファイル管理コンピュータは、直近の第2の要求の受領から第1の要求の受領までの期間の少なくとも一部においてクリップボード6に記憶されていたデータを、クリップボードデータとして取得してもよい。   As described above, when the first request is issued after the second request is issued at least once, the file management computer may operate as follows. That is, the file management computer may acquire the data stored in the clipboard 6 as clipboard data during at least a part of the period from the receipt of the latest second request to the receipt of the first request.

例えば、ファイル管理コンピュータは、時刻T7における第1の要求を契機として、時刻T4から時刻T7までの期間の少なくとも一部においてクリップボード6に記憶されていたデータを、クリップボードデータとして取得してもよい。つまり、ファイル管理コンピュータは、データD2、D3、D4の各々を取得してもよい。   For example, the file management computer may acquire, as clipboard data, data stored in the clipboard 6 during at least part of the period from time T4 to time T7, triggered by the first request at time T7. That is, the file management computer may acquire each of the data D2, D3, and D4.

ところで、上記のとおり、ファイル管理コンピュータは、所定の条件(例えば条件(5a)と(5b)の双方)が成り立つ場合に、第1のファイルと第2のファイルを関連づける。この関連づけの処理は、以下の3つの情報(7a)〜(7c)を含む関連づけ情報を記憶装置に記憶する処理を含んでいてもよい。   By the way, as described above, the file management computer associates the first file and the second file when predetermined conditions (for example, both of the conditions (5a) and (5b)) are satisfied. This association process may include a process of storing association information including the following three pieces of information (7a) to (7c) in the storage device.

(7a)取得したクリップボードデータと、条件(5a)に関して述べた第1の類似データと、条件(5b)に関して述べた第2の類似データのうち少なくとも1つ。
(7b)第1のファイルを識別する第1の識別情報。
(7c)第2のファイルを識別する第2の識別情報。
(7a) At least one of the obtained clipboard data, the first similar data described regarding the condition (5a), and the second similar data described regarding the condition (5b).
(7b) First identification information for identifying the first file.
(7c) Second identification information for identifying the second file.

なお、単に第1のファイルと第2のファイルを関連づけるためには、情報(7a)はなくても構わない。しかし、第1のファイルと第2のファイルがどのように関連しているのかをユーザに提示して、ユーザにとっての利便性を高めるためには、情報(7b)と(7c)だけでなく、情報(7a)も使うことが望ましい。   Note that the information (7a) may be omitted in order to simply associate the first file with the second file. However, in order to present to the user how the first file and the second file are related to improve the convenience for the user, not only the information (7b) and (7c) It is also desirable to use information (7a).

なお、ファイルを識別する識別情報は、ファイルシステムの実装に応じて異なる。例えば、UNC(Universal Naming Convention)形式のパスが識別情報として使われてもよいし、ファイル管理コンピュータ上のフルパスが識別情報として使われてもよい。もちろん、ID(identification)番号など、その他の情報が識別情報として使われてもよい。   The identification information for identifying the file varies depending on the implementation of the file system. For example, a UNNC (Universal Naming Convention) format path may be used as identification information, or a full path on a file management computer may be used as identification information. Of course, other information such as an ID (identification) number may be used as identification information.

3つの情報(7a)〜(7c)を含む関連づけ情報が記憶装置に記憶されている場合、ファイル管理コンピュータは、以下のようにしてユーザに対してファイル同士の関連性についての情報を提示してもよい。   When the association information including the three pieces of information (7a) to (7c) is stored in the storage device, the file management computer presents information about the relationship between files to the user as follows. Also good.

具体的には、ファイル管理コンピュータは、第1のファイルと関係のあるファイルを問い合わせる入力を受け付けてもよい。例えば、当該入力は、キーボード等の入力装置を介して、ユーザからファイル管理コンピュータに与えられてもよい。また、当該問い合わせは、第1のファイルを識別する第1の識別情報を含んでいてもよい。   Specifically, the file management computer may accept an input for inquiring about a file related to the first file. For example, the input may be given from the user to the file management computer via an input device such as a keyboard. The inquiry may include first identification information for identifying the first file.

当該入力に応じて、ファイル管理コンピュータは、記憶装置を検索し、関連づけ情報のうち少なくとも第2の識別情報を出力してもよい。例えば、ファイル管理コンピュータは、第2の識別情報自体をディスプレイ上に表示してもよいし、第2の識別情報を含むハイパーリンクを生成し、当該ハイパーリンクを含むページをディスプレイ上に表示してもよい。   In response to the input, the file management computer may search the storage device and output at least the second identification information of the association information. For example, the file management computer may display the second identification information itself on the display, generate a hyperlink including the second identification information, and display a page including the hyperlink on the display. Also good.

また、ファイル管理コンピュータは、任意の識別情報を含む問い合わせを受け付けてもよい。ファイル管理コンピュータは、問い合わせに含まれる識別情報により識別されるファイルが上記の第2のファイルである場合には、関連づけ情報のうち少なくとも第1の識別情報を出力してもよい。   Further, the file management computer may accept an inquiry including arbitrary identification information. When the file identified by the identification information included in the inquiry is the second file, the file management computer may output at least the first identification information among the association information.

つまり、ファイル管理コンピュータは、上記の関連づけ情報を用いて、第1のファイル(つまりデータがペーストされた先のファイル)から第2のファイル(つまりデータのコピー元のファイル)を引いて(ルックアップして)もよい。逆に、ファイル管理コンピュータは、上記の関連づけ情報を用いて、第2のファイルから第1のファイルを引いてもよい。   In other words, the file management computer uses the above association information to subtract the second file (that is, the file from which the data was copied) from the first file (that is, the file to which the data has been pasted) (lookup). It is good). Conversely, the file management computer may subtract the first file from the second file using the association information.

ところで、上記のとおり、ファイル管理コンピュータは、クライアントサーバシステムにおけるサーバコンピュータであってもよいし、スタンドアロンコンピュータであってもよい。   By the way, as described above, the file management computer may be a server computer in a client server system or a stand-alone computer.

具体的には、ファイル管理コンピュータがサーバコンピュータである場合、ファイル管理コンピュータは、クライアントコンピュータとしての編集コンピュータと、ネットワークを介して接続される。この場合、第1のファイルは、具体的には、編集コンピュータのユーザに書き込みアクセスが許可されたファイルのうちの1つである。   Specifically, when the file management computer is a server computer, the file management computer is connected to an editing computer as a client computer via a network. In this case, the first file is specifically one of the files that the write access is permitted by the user of the editing computer.

また、この場合、クリップボード6は、具体的には、編集コンピュータ上のローカルなクリップボードである。よって、編集コンピュータがクリップボード6の更新を監視して記録する。   In this case, the clipboard 6 is specifically a local clipboard on the editing computer. Therefore, the editing computer monitors and records the update of the clipboard 6.

そして、ファイル管理コンピュータがサーバコンピュータである場合、ファイル管理コンピュータは、下記のファイル(8a)の中から、下記のファイル(8b)を第2のファイルとして特定する。   When the file management computer is a server computer, the file management computer specifies the following file (8b) as the second file from the following files (8a).

(8a)ファイル管理コンピュータが管理する複数のファイルのうちの少なくとも一部のファイルであって、具体的には、編集コンピュータのユーザに対して読み出しアクセスが許可されているファイル。
(8b)ファイル管理コンピュータがクリップボードデータとともに取得した時刻情報の示す時刻において、編集コンピュータにより開かれていたファイル。
(8a) A file that is at least a part of a plurality of files managed by the file management computer, and specifically, a file that is permitted to be read-accessed to a user of the editing computer.
(8b) A file opened by the editing computer at the time indicated by the time information acquired by the file management computer together with the clipboard data.

そして、ファイル管理コンピュータがサーバコンピュータである場合、ファイル管理コンピュータは、編集コンピュータにクリップボードデータと時刻情報を要求することにより、クリップボードデータと時刻情報を取得する。換言すれば、編集コンピュータは、記録した監視結果(すなわちクリップボードデータと時刻情報)を、ファイル管理コンピュータからの要求に応じて、ファイル管理コンピュータに送信する。   If the file management computer is a server computer, the file management computer requests the clipboard data and time information from the editing computer, thereby acquiring the clipboard data and time information. In other words, the editing computer transmits the recorded monitoring result (that is, clipboard data and time information) to the file management computer in response to a request from the file management computer.

以上のようなクライアントサーバシステムとは逆に、ファイル管理コンピュータによってスタンドアロンシステムが実現されてもよい。この場合、クリップボード6は、具体的には、ファイル管理コンピュータ自体のクリップボードである。   Contrary to the client server system as described above, a stand-alone system may be realized by a file management computer. In this case, the clipboard 6 is specifically a clipboard of the file management computer itself.

したがって、この場合、ファイル管理コンピュータ自体がクリップボード6の更新を監視する。そして、クリップボード6に新規データが書き込まれるたびに、ファイル管理コンピュータは、当該新規データと、当該新規データがクリップボード6に書き込まれた時刻を示す書き込み時刻情報との組を記憶装置に記憶する。したがって、ファイル管理コンピュータは、記憶装置からクリップボードデータと時刻情報を読み出すことにより、クリップボードデータと時刻情報取得することができる。   Therefore, in this case, the file management computer itself monitors the update of the clipboard 6. Each time new data is written to the clipboard 6, the file management computer stores a set of the new data and write time information indicating the time when the new data is written to the clipboard 6 in the storage device. Therefore, the file management computer can acquire clipboard data and time information by reading out the clipboard data and time information from the storage device.

なお、クリップボードデータは、テキストデータのこともあるし、画像データのこともあるし、ベクタオブジェクトデータのこともある。しかし、以下では、クリップボードデータがテキストデータである場合の実施形態について主に説明する。   The clipboard data may be text data, image data, or vector object data. However, in the following, an embodiment where the clipboard data is text data will be mainly described.

さて、図1を参照して説明した以上の事柄は、第1実施形態と第2実施形態のどちらにも当てはまる。続いて、図2〜15を参照して、第1実施形態について説明する。
図2は、第1実施形態のシステム構成図である。図2に示すとおり、第1実施形態では、クライアントサーバシステムが利用される。
The above matters described with reference to FIG. 1 apply to both the first embodiment and the second embodiment. Subsequently, the first embodiment will be described with reference to FIGS.
FIG. 2 is a system configuration diagram of the first embodiment. As shown in FIG. 2, a client server system is used in the first embodiment.

具体的には、図2のシステム100は、サーバ110とクライアント130を含む。サーバ110は上記ファイル管理コンピュータの例であり、クライアント130は上記編集コンピュータの例である。   Specifically, the system 100 of FIG. 2 includes a server 110 and a client 130. The server 110 is an example of the file management computer, and the client 130 is an example of the editing computer.

サーバ110とクライアント130は、ネットワーク150を介して接続されている。図2には1台のクライアント130しか図示されていないが、サーバ110にはネットワーク150を介して複数台のクライアント130が接続されていてもよい。サーバ110はクライアント130に対してファイルサーバとしても機能する。   Server 110 and client 130 are connected via network 150. Although only one client 130 is illustrated in FIG. 2, a plurality of clients 130 may be connected to the server 110 via the network 150. The server 110 also functions as a file server for the client 130.

サーバ110は、ファイル記憶部111と、通信制御部112と、ファイル送受信部113と、ログ記憶部114と、ログ管理部115と、時計116を含む。サーバ110はさらに、クリップボードデータ受信部117と、抽出部118と、比較部119と、リンク生成部120と、リンク記憶部121を含む。   The server 110 includes a file storage unit 111, a communication control unit 112, a file transmission / reception unit 113, a log storage unit 114, a log management unit 115, and a clock 116. The server 110 further includes a clipboard data reception unit 117, an extraction unit 118, a comparison unit 119, a link generation unit 120, and a link storage unit 121.

また、クライアント130は、通信制御部131と、ファイル送受信部132を含む。図2には、クライアント130上で2つのアプリケーション133と134が動作する場合が例示されているが、クライアント130上で動作するアプリケーションの数は任意である。クライアント130はさらに、クリップボード135と、監視部136と、時計137と、クリップボードデータ記憶部138と、抽出部139と、クリップボードデータ送信部140を含む。   The client 130 includes a communication control unit 131 and a file transmission / reception unit 132. FIG. 2 illustrates a case where two applications 133 and 134 operate on the client 130, but the number of applications operating on the client 130 is arbitrary. The client 130 further includes a clipboard 135, a monitoring unit 136, a clock 137, a clipboard data storage unit 138, an extraction unit 139, and a clipboard data transmission unit 140.

ファイル記憶部111は、サーバ110が管理する複数のファイルを記憶する。換言すれば、ファイル記憶部111は、サーバ110に接続された各クライアント130が使用するファイルを記憶する。ファイル記憶部111上では、例えば、クライアント130を使用するユーザのアカウントに対応づけられたディレクトリごとに、ファイルが分類されて記憶されていてもよい。   The file storage unit 111 stores a plurality of files managed by the server 110. In other words, the file storage unit 111 stores a file used by each client 130 connected to the server 110. On the file storage unit 111, for example, files may be classified and stored for each directory associated with an account of a user who uses the client 130.

なお、ファイルの種類は任意である。例えば、プレインテキストファイル、文書作成ソフトウェア・表計算ソフトウェア・プレゼンテーションソフトウェアなどの所定のアプリケーションのフォーマットのファイル、画像ファイルなど、様々な種類のファイルが、ファイル記憶部111に記憶されていてもよい。   The file type is arbitrary. For example, various types of files such as plain text files, files of a predetermined application format such as document creation software, spreadsheet software, and presentation software, and image files may be stored in the file storage unit 111.

通信制御部112は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)などの適宜の通信プロトコルによる通信を制御する。すなわち、通信制御部112は、サーバ110からクライアント130へのデータの送信(具体的には、ファイル送受信部113またはクリップボードデータ受信部117からの要求に応じた送信)を制御する。また、通信制御部112は、クライアント130からデータを受信し、受信したデータに含まれる情報(例えばヘッダ情報)に応じて、受信したデータを適宜のモジュール(つまりファイル送受信部113またはクリップボードデータ受信部117)に出力する。   The communication control unit 112 controls communication using an appropriate communication protocol such as TCP / IP (Transmission Control Protocol / Internet Protocol). That is, the communication control unit 112 controls transmission of data from the server 110 to the client 130 (specifically, transmission in response to a request from the file transmission / reception unit 113 or the clipboard data reception unit 117). In addition, the communication control unit 112 receives data from the client 130, and converts the received data into an appropriate module (that is, the file transmission / reception unit 113 or the clipboard data reception unit) according to information (for example, header information) included in the received data. 117).

ところで以下では説明の便宜上、各種の要求を以下のように呼ぶことにする。
(9a)ファイルを開くための要求を、「オープン要求」という。
(9b)既に開いているファイルを、保存せずに、そのまま閉じるための要求を、「クローズ要求」という。
(9c)既に開いているファイルを、開いたまま、保存するための要求を、「セーブ要求」という。
(9d)既に開いているファイルを、保存して閉じるための要求を、「セーブ・クローズ要求」という。
In the following, for convenience of explanation, various requests will be called as follows.
(9a) A request for opening a file is referred to as an “open request”.
(9b) A request for closing an already opened file without saving is referred to as a “close request”.
(9c) A request for saving an already opened file while it is open is referred to as a “save request”.
(9d) A request for saving and closing a file that has already been opened is referred to as a “save / close request”.

例えば、上記の項目(6a)と(6b)に示した第1と第2の要求は、それぞれ、セーブ・クローズ要求とセーブ要求である。
また、ファイルを操作するための要求にはいくつかのレベルがある。例えば、以下のような3つのレベルの要求(10a)〜(10c)があってもよい。しかし、説明の簡単化のため、文脈から明らかな場合には、レベルを区別せずに、単に「オープン要求」などと述べることがある。
For example, the first and second requests shown in the items (6a) and (6b) are a save / close request and a save request, respectively.
There are also several levels of requests for manipulating files. For example, there may be three levels of requests (10a) to (10c) as follows. However, for simplification of explanation, when it is clear from the context, it may be simply described as “open request” without distinguishing the levels.

(10a)ユーザが入力装置を用いて行う何らかの操作(例えば、「ファイルを開く」というメニューを選択する操作など)。
(10b)当該操作(10a)に応じてクライアント130が実行する何らかの処理(例えば、ファイルを開くためのAPI関数の呼び出しなど)。
(10c)当該処理(10b)に応じてクライアント130からサーバ110へ送信されるデータ(例えば、ネットワークファイルシステム用の所定のプロトコルにしたがってクライアント130からサーバ110へ送られる、ファイルを開くための要求など)。
(10a) Any operation performed by the user using the input device (for example, an operation of selecting a menu “open file”).
(10b) Any processing executed by the client 130 in response to the operation (10a) (for example, calling an API function for opening a file).
(10c) Data transmitted from the client 130 to the server 110 in response to the processing (10b) (for example, a request for opening a file sent from the client 130 to the server 110 according to a predetermined protocol for a network file system) ).

さて、ファイル送受信部113は、クライアント130からのオープン要求を、通信制御部112を介して受け取る。オープン要求には、開く対象のファイルを識別する識別情報(例えば、ファイル記憶部111上のフルパス)が含まれる。   The file transmission / reception unit 113 receives an open request from the client 130 via the communication control unit 112. The open request includes identification information for identifying a file to be opened (for example, a full path on the file storage unit 111).

ファイル送受信部113は、オープン要求に応じて、要求されたファイルをファイル記憶部111から読み出す。すると、ファイル送受信部113は、読み出したファイルのデータをクライアント130に送信するよう、通信制御部112に命令する。その結果、要求されたファイルのデータは、通信制御部112とネットワーク150を介してクライアント130に送信される。以上のようにして、クライアント130上でファイルを開くことが可能となる。   The file transmission / reception unit 113 reads the requested file from the file storage unit 111 in response to the open request. Then, the file transmission / reception unit 113 instructs the communication control unit 112 to transmit the read file data to the client 130. As a result, the requested file data is transmitted to the client 130 via the communication control unit 112 and the network 150. As described above, the file can be opened on the client 130.

より正確には、ファイル送受信部113は、「ファイルを要求したクライアント130のユーザが、当該ファイルに対する読み出しアクセスを許可されているか」ということをチェックする。そして、読み出しアクセスが許可されている場合に、ファイル送受信部113は、上記のようにしてファイルのデータをクライアント130に送信する。   More precisely, the file transmitting / receiving unit 113 checks whether or not the user of the client 130 who requested the file is permitted to have read access to the file. When read access is permitted, the file transmission / reception unit 113 transmits the file data to the client 130 as described above.

また、ファイル送受信部113は、クライアント130からのクローズ要求を、通信制御部112を介して受け取る。そして、ファイル送受信部113は、クローズ要求に応じて、クローズ要求において指定されているファイル(すなわちオープン中のファイル)を閉じる。   In addition, the file transmission / reception unit 113 receives a close request from the client 130 via the communication control unit 112. Then, in response to the close request, the file transmitting / receiving unit 113 closes the file specified in the close request (that is, the open file).

また、ファイル送受信部113は、クライアント130からのセーブ要求を、通信制御部112を介して受け取る。セーブ要求は、保存する対象のファイルのデータ(例えば、クライアント130上で編集されたファイルのデータ)を含む。ファイル送受信部113は、セーブ要求に含まれるデータをファイル記憶部111に保存する。   Further, the file transmission / reception unit 113 receives a save request from the client 130 via the communication control unit 112. The save request includes data of a file to be saved (for example, data of a file edited on the client 130). The file transmission / reception unit 113 stores the data included in the save request in the file storage unit 111.

より具体的には、セーブ要求には、ファイル記憶部111上の既存のファイルを識別する識別情報と、当該ファイルのデータが含まれていてもよい。この場合、ファイル送受信部113は、ファイル記憶部111上の当該既存のファイルのデータを、セーブ要求に含まれるデータで上書きしてもよい。それにより、既存のファイルが新たに保存しなおされる。   More specifically, the save request may include identification information for identifying an existing file on the file storage unit 111 and data of the file. In this case, the file transmission / reception unit 113 may overwrite the data of the existing file on the file storage unit 111 with the data included in the save request. As a result, the existing file is newly saved again.

より正確には、ファイル送受信部113は、「ファイルの保存を要求したクライアント130のユーザが、当該ファイルに対する書き込みアクセスを許可されているか」ということをチェックする。そして、書き込みアクセスが許可されている場合に、ファイル送受信部113は、上記のようにしてファイルをファイル記憶部111に保存する。   More precisely, the file transmission / reception unit 113 checks whether or not the user of the client 130 who has requested to save the file is allowed write access to the file. When the write access is permitted, the file transmitting / receiving unit 113 stores the file in the file storage unit 111 as described above.

あるいは、セーブ要求に含まれる識別情報で識別されるファイルが、ファイル記憶部111上に存在しない場合もある。例えば、ユーザがクライアント130のアプリケーション133または134を用いて新規ファイルを作成し、新規ファイルを保存しようとする場合、セーブ要求に含まれる識別情報で識別される新規ファイルは、ファイル記憶部111上に存在しない。この場合、ファイル送受信部113は、セーブ要求に含まれる新規ファイルのデータを新たにファイル記憶部111上に保存する。   Alternatively, the file identified by the identification information included in the save request may not exist on the file storage unit 111. For example, when a user creates a new file using the application 133 or 134 of the client 130 and tries to save the new file, the new file identified by the identification information included in the save request is stored in the file storage unit 111. not exist. In this case, the file transmission / reception unit 113 newly stores the data of the new file included in the save request on the file storage unit 111.

なお、ファイル送受信部113は、新規ファイルの保存の際にも、適宜のアクセス制御を行う。ファイル送受信部113は、例えば、「新規ファイルを保存する先としてセーブ要求に指定されているディレクトリに対する書き込み権限を、ユーザが有しているか」ということをチェックしてもよい。   Note that the file transmission / reception unit 113 performs appropriate access control when storing a new file. The file transmission / reception unit 113 may check, for example, “whether the user has the write authority for the directory specified in the save request as the destination for saving the new file”.

また、ファイル送受信部113は、クライアント130からのセーブ・クローズ要求を、通信制御部112を介して受け取る。そして、ファイル送受信部113は、セーブ・クローズ要求に応じて、セーブ要求を受信した場合と同様に、要求元のユーザの書き込みアクセス権に応じて、ファイルを保存するか否かを決定する。もしユーザに書き込みアクセスが許可されていれば、ファイル送受信部113は、指定されたファイルをファイル記憶部111に保存する。その後、ファイル送受信部113は、クローズ要求を受信した場合と同様にして、ファイルを閉じる。   Further, the file transmission / reception unit 113 receives a save / close request from the client 130 via the communication control unit 112. Then, in response to the save / close request, the file transmitting / receiving unit 113 determines whether to save the file according to the write access right of the requesting user in the same manner as when the save request is received. If the user is allowed write access, the file transmitting / receiving unit 113 stores the specified file in the file storage unit 111. Thereafter, the file transmission / reception unit 113 closes the file in the same manner as when the close request is received.

ファイル送受信部113は、以上のようにして、クライアント130からの要求に応じてファイルを操作する。また、ファイル送受信部113によるファイル操作は、ログに記録される。   The file transmitting / receiving unit 113 operates the file in response to a request from the client 130 as described above. In addition, file operations by the file transmission / reception unit 113 are recorded in a log.

具体的には、当該ログは、ログ記憶部114に記憶される。ログの具体例は図5とともに後述する。
また、ログは、具体的にはログ管理部115により管理される。すなわち、ファイル送受信部113は、クライアント130からの要求に応じてファイルを操作する(例えば、開く、閉じる、保存する、などの操作を行う)たびに、操作種別と、操作したファイルの識別情報をログ管理部115に通知する。より詳しくは、ファイル送受信部113は、ファイル操作を要求したユーザを識別する識別情報(例えばユーザ名)も、ログ管理部115に通知する。
Specifically, the log is stored in the log storage unit 114. A specific example of the log will be described later with reference to FIG.
The log is specifically managed by the log management unit 115. That is, each time the file transmission / reception unit 113 operates a file in response to a request from the client 130 (for example, performs operations such as opening, closing, and saving), the file transmission / reception unit 113 displays an operation type and identification information of the operated file. The log management unit 115 is notified. More specifically, the file transmission / reception unit 113 also notifies the log management unit 115 of identification information (for example, a user name) identifying the user who has requested the file operation.

ログ管理部115は、通知された操作種別、ファイル識別情報、およびユーザ識別情報に応じて、ログ記憶部114上のログに新たなエントリを追加する場合もあるし、ログ内の既存のエントリを更新する場合もある。   The log management unit 115 may add a new entry to the log on the log storage unit 114 in accordance with the notified operation type, file identification information, and user identification information, or may add an existing entry in the log. It may be updated.

なお、ログには、ファイルが操作された時刻も記録される。ログ管理部115は、時計116を参照することで現在時刻を認識し、現在時刻をログ中の適宜のフィールドに記録する。   The log also records the time when the file was operated. The log management unit 115 recognizes the current time by referring to the clock 116, and records the current time in an appropriate field in the log.

ところで、図1に関して説明したとおり、ファイル管理コンピュータ(図2ではサーバ110に相当)は、ファイルが閉じられるよりも前の期間の少なくとも一部においてクリップボード135に記憶されていたクリップボードデータを取得する。第1実施形態では、サーバ110は、クライアント130からネットワーク150を介してクリップボードデータを取得する。   By the way, as described with reference to FIG. 1, the file management computer (corresponding to the server 110 in FIG. 2) acquires the clipboard data stored in the clipboard 135 in at least a part of the period before the file is closed. In the first embodiment, the server 110 acquires clipboard data from the client 130 via the network 150.

具体的には、サーバ110内のクリップボードデータ受信部117が、通信制御部112を介して、クライアント130にクリップボードデータを要求する。そして、クリップボードデータ受信部117は、通信制御部112を介して、クライアント130からクリップボードデータを受信する。より具体的には、各クリップボードデータは、当該クリップボードデータがクリップボード135に書き込まれた時刻を示す時刻情報と対応づけられており、クリップボードデータ受信部117は、クリップボードデータとともに時刻情報も取得する。クリップボードデータと時刻情報を取得する取得手段は、例えば以上のように、クリップボードデータ受信部117と通信制御部112によって実現されてもよい。   Specifically, the clipboard data receiving unit 117 in the server 110 requests clipboard data from the client 130 via the communication control unit 112. The clipboard data receiving unit 117 receives clipboard data from the client 130 via the communication control unit 112. More specifically, each clipboard data is associated with time information indicating the time when the clipboard data is written to the clipboard 135, and the clipboard data receiving unit 117 acquires time information together with the clipboard data. The acquisition means for acquiring clipboard data and time information may be realized by the clipboard data receiving unit 117 and the communication control unit 112 as described above, for example.

なお、詳しくは図11〜13とともに後述するとおり、第1実施形態では、上記の「ファイルが閉じられるよりも前の期間」の一部または全部の期間を、ログ管理部115がクリップボードデータ受信部117に指定する。そして、クリップボードデータ受信部117は、指定された期間内の少なくとも一部においてクリップボード135に記憶されていたクリップボードデータを送信するよう、クライアント130に要求する。   As will be described in detail later with reference to FIGS. 11 to 13, in the first embodiment, the log management unit 115 performs the clipboard data reception unit during a part or all of the “period before the file is closed”. 117 is designated. Then, the clipboard data receiving unit 117 requests the client 130 to transmit the clipboard data stored in the clipboard 135 in at least a part of the designated period.

例えば、図1の例では、ファイル1が閉じられるよりも前の期間は、時刻T7よりも前の期間である。時刻T4でのセーブ要求に応じて、ログ管理部115は、時刻T2から時刻T4までの期間をクリップボードデータ受信部117に指定してもよい。また、時刻T7でのセーブ・クローズ要求に応じて、ログ管理部115は、時刻T4から時刻T7までの期間をクリップボードデータ受信部117に指定してもよい。後述のモードによっては、ログ管理部115は、時刻T7でのセーブ・クローズ要求に応じて、時刻T2から時刻T7までの期間を指定してもよい。   For example, in the example of FIG. 1, the period before the file 1 is closed is a period before the time T7. In response to the save request at time T4, the log management unit 115 may designate the period from time T2 to time T4 to the clipboard data reception unit 117. Further, in response to the save / close request at time T7, the log management unit 115 may designate the period from time T4 to time T7 to the clipboard data reception unit 117. Depending on the mode described later, the log management unit 115 may specify a period from time T2 to time T7 in response to a save / close request at time T7.

いずれにせよ、クリップボードデータ受信部117は、指定された期間内の少なくとも一部においてクリップボード135に記憶されていたクリップボードデータを送信するよう、クライアント130に要求する。また、上記のとおりログ管理部115がクリップボードデータ受信部117に指定する期間は、ファイルが閉じられるよりも前の期間の一部または全部である。したがって、クリップボードデータ受信部117が受信するクリップボードデータは、上記のとおり「ファイルが閉じられるよりも前の期間の少なくとも一部においてクリップボード135に記憶されていたクリップボードデータ」である。   In any case, the clipboard data receiving unit 117 requests the client 130 to transmit the clipboard data stored in the clipboard 135 at least in part within the specified period. Further, as described above, the period specified by the log management unit 115 to the clipboard data receiving unit 117 is a part or all of the period before the file is closed. Therefore, the clipboard data received by the clipboard data receiving unit 117 is “clipboard data stored in the clipboard 135 at least in a part of the period before the file is closed” as described above.

ところで、クリップボードデータ受信部117は、上記のようにしてクライアント130から取得したクリップボードデータを、比較部119に出力する。比較部119は、クリップボードデータ受信部117から入力される各クリップボードデータを、抽出部118から出力されるテキスト情報と比較する。   By the way, the clipboard data reception unit 117 outputs the clipboard data acquired from the client 130 as described above to the comparison unit 119. The comparison unit 119 compares each clipboard data input from the clipboard data reception unit 117 with text information output from the extraction unit 118.

そして、比較結果に応じて、リンク生成部120が、ファイル同士を関連づける関連づけ情報(具体的には後述のリンクテーブル303の個々のエントリ)を生成する。リンク生成部120は、生成した関連づけ情報をリンク記憶部121に記憶する。   Then, according to the comparison result, the link generation unit 120 generates association information for associating files (specifically, individual entries in the link table 303 described later). The link generation unit 120 stores the generated association information in the link storage unit 121.

つまり、ファイル同士を関連づける関連づけ手段は、例えば、抽出部118と比較部119とリンク生成部120によって実現されてもよい。より詳しくは、抽出部118と比較部119は以下のように動作する。   That is, the association means for associating files may be realized by the extraction unit 118, the comparison unit 119, and the link generation unit 120, for example. More specifically, the extraction unit 118 and the comparison unit 119 operate as follows.

クローズ要求とセーブ要求とセーブ・クローズ要求のいずれかに応じて、ファイル送受信部113がファイルを操作すると、当該ファイルを識別する識別情報がログ管理部115に通知される。ログ管理部115は、ファイル送受信部113から通知された識別情報を、抽出部118に通知する。   When the file transmission / reception unit 113 operates a file in response to one of the close request, the save request, and the save / close request, identification information for identifying the file is notified to the log management unit 115. The log management unit 115 notifies the extraction unit 118 of the identification information notified from the file transmission / reception unit 113.

すると、抽出部118は、通知された識別情報により識別されるファイルを、ファイル記憶部111から読み出す。抽出部118は、さらに、読み出したファイルからテキスト情報を抽出し、抽出したテキスト情報を比較部119に出力する。   Then, the extraction unit 118 reads the file identified by the notified identification information from the file storage unit 111. The extraction unit 118 further extracts text information from the read file, and outputs the extracted text information to the comparison unit 119.

また、比較部119は、クリップボードデータ受信部117から得たクリップボードデータに対応づけられている時刻情報を、抽出部118に通知する。すると、抽出部118は、当該時刻情報により示される時刻に開かれていたファイルを、ログ管理部115に問い合わせる。   Further, the comparison unit 119 notifies the extraction unit 118 of time information associated with the clipboard data obtained from the clipboard data reception unit 117. Then, the extraction unit 118 inquires of the log management unit 115 about the file opened at the time indicated by the time information.

ログ管理部115は、当該時刻情報により示される時刻に開かれていたファイルを特定する特定手段の具体例である。抽出部118は、当該時刻情報により示される時刻に開かれていたファイルを、ログ管理部115への問い合わせを介して認識することができる。   The log management unit 115 is a specific example of a specifying unit that specifies a file opened at the time indicated by the time information. The extraction unit 118 can recognize the file opened at the time indicated by the time information through an inquiry to the log management unit 115.

なお、特定されるファイルの数は、0のこともあるし、1のこともあるし、2以上のこともある。抽出部118は、特定された各ファイルをファイル記憶部111から読み出し、読み出したファイルからテキスト情報を抽出し、抽出したテキスト情報を比較部119に出力する。   Note that the number of files specified may be 0, may be 1, or may be 2 or more. The extraction unit 118 reads each identified file from the file storage unit 111, extracts text information from the read file, and outputs the extracted text information to the comparison unit 119.

比較部119は、抽出部118から以上のようにして出力されるテキスト情報を、クリップボードデータ受信部117から出力されるクリップボードデータと比較する。比較部119が行う処理の詳細は、図14〜15とともに後述する。   The comparison unit 119 compares the text information output from the extraction unit 118 as described above with the clipboard data output from the clipboard data reception unit 117. Details of the processing performed by the comparison unit 119 will be described later with reference to FIGS.

なお、比較部119は、上記の条件(3a)と(3b)がともに成り立つか否かを判断してもよいし、上記の条件(4a)と(4b)がともに成り立つか否かを判断してもよいし、上記の条件(5a)と(5b)がともに成り立つか否かを判断してもよい。詳しくは後述するとおり、第1実施形態では、説明の便宜上、比較部119は、条件(4a)と(4b)がともに成り立つか否かを判断するものとする。   Note that the comparison unit 119 may determine whether or not both of the above conditions (3a) and (3b) are satisfied, or whether or not both of the above conditions (4a) and (4b) are satisfied. Alternatively, it may be determined whether both of the above conditions (5a) and (5b) are satisfied. As will be described in detail later, in the first embodiment, for convenience of explanation, the comparison unit 119 determines whether or not both of the conditions (4a) and (4b) are satisfied.

さて、クライアント130の通信制御部131は、例えば、TCP/IPなどの適宜の通信プロトコルによる通信を制御する。具体的には、通信制御部131は、クライアント130からサーバ110へのデータの送信(具体的には、ファイル送受信部132またはクリップボードデータ送信部140からの要求に応じた送信)を制御する。また、通信制御部131は、サーバ110からデータを受信し、受信したデータに含まれる情報(例えばヘッダ情報)に応じて、受信したデータを適宜のモジュール(つまりファイル送受信部132またはクリップボードデータ送信部140)に出力する。   The communication control unit 131 of the client 130 controls communication using an appropriate communication protocol such as TCP / IP. Specifically, the communication control unit 131 controls transmission of data from the client 130 to the server 110 (specifically, transmission in response to a request from the file transmission / reception unit 132 or the clipboard data transmission unit 140). In addition, the communication control unit 131 receives data from the server 110 and converts the received data into an appropriate module (that is, the file transmission / reception unit 132 or the clipboard data transmission unit) according to information (for example, header information) included in the received data. 140).

ファイル送受信部132は、アプリケーション133または134からファイル操作要求を受け付ける。アプリケーション133または134からファイル送受信部132に対して出されるファイル操作要求は、具体的には、上記の3つのレベルの要求(10a)〜(10c)のうち、API関数の呼び出しなどにより実現される要求(10b)である。   The file transmission / reception unit 132 receives a file operation request from the application 133 or 134. Specifically, the file operation request issued from the application 133 or 134 to the file transmitting / receiving unit 132 is realized by calling an API function among the above three levels of requests (10a) to (10c). Request (10b).

ファイル送受信部132は、アプリケーション133または134から受け付けたファイル操作要求に応じて、通信制御部131を介して、サーバ110にファイル操作要求を送信する。ファイル送受信部132が送信するファイル操作要求は、要求(10c)に相当する。   The file transmission / reception unit 132 transmits a file operation request to the server 110 via the communication control unit 131 in response to the file operation request received from the application 133 or 134. The file operation request transmitted by the file transmitting / receiving unit 132 corresponds to the request (10c).

そして、ファイル送受信部132は、通信制御部131を介して、サーバ110から、ファイル操作要求に対する応答を受信する。さらに、ファイル送受信部132は、受信した応答を、要求元のアプリケーション(例えばアプリケーション133または134)に返す。   Then, the file transmitting / receiving unit 132 receives a response to the file operation request from the server 110 via the communication control unit 131. Further, the file transmitting / receiving unit 132 returns the received response to the requesting application (for example, the application 133 or 134).

例えば、ファイル送受信部132は、オープン要求に対する応答として、ファイルのデータを受信することもある。ファイル送受信部132は、他の種類の要求に対する応答として、ACK(acknowledgement)またはエラーコードを受信することもある。つまり、サーバ110のファイル送受信部113は、要求の種類によっては、ACKまたはエラーコードを返してもよい。   For example, the file transmission / reception unit 132 may receive file data as a response to the open request. The file transmission / reception unit 132 may receive an ACK (acknowledgement) or an error code as a response to another type of request. That is, the file transmission / reception unit 113 of the server 110 may return an ACK or an error code depending on the type of request.

クリップボード135は、クライアント130のOSによって提供される記憶領域であり、図1のクリップボード6の具体例である。アプリケーション133または134上でコピー操作またはカット操作が実行されるたびに、クリップボード135には新たなデータが書き込まれる。また、アプリケーション133または134上でペースト操作が実行されるたびに、クリップボード135上のデータをアプリケーション133または134が読み出す。クリップボード135へのデータの書き込みと、クリップボード135からのデータの読み出しは、例えば、OSにより提供されるAPI関数を介して行われてもよい。   The clipboard 135 is a storage area provided by the OS of the client 130, and is a specific example of the clipboard 6 in FIG. Each time a copy operation or cut operation is executed on the application 133 or 134, new data is written to the clipboard 135. Each time a paste operation is executed on the application 133 or 134, the application 133 or 134 reads data on the clipboard 135. The writing of data to the clipboard 135 and the reading of data from the clipboard 135 may be performed via an API function provided by the OS, for example.

監視部136は、クリップボード135の更新を監視する。例えば、監視部136は、メモリ常駐プログラムにより実現されるモジュールであってもよい。例えば、ある種のOSは、クリップボード135の更新を通知するためのAPI関数を提供する。監視部136は、当該API関数を利用して、クリップボード135の更新を通知するメッセージを受け取ってもよく、当該メッセージを使ってクリップボード135の更新を監視してもよい。   The monitoring unit 136 monitors the update of the clipboard 135. For example, the monitoring unit 136 may be a module realized by a memory resident program. For example, some OSs provide an API function for notifying the clipboard 135 of updates. The monitoring unit 136 may receive a message notifying the update of the clipboard 135 using the API function, and may monitor the update of the clipboard 135 using the message.

監視部136は、クリップボード135の更新を検出すると、時計137を参照して現在時刻を取得する。そして、監視部136は、新たにクリップボード135に書き込まれたデータを、取得した現在時刻に対応づけて、クリップボードデータ記憶部138に記憶する。   When the monitoring unit 136 detects the update of the clipboard 135, the monitoring unit 136 refers to the clock 137 and acquires the current time. Then, the monitoring unit 136 stores the newly written data on the clipboard 135 in the clipboard data storage unit 138 in association with the acquired current time.

他方、上記のとおりサーバ110のクリップボードデータ受信部117は、クリップボードデータを送信するようクライアント130に要求することがある。要求は、具体的には、通信制御部131を介してクリップボードデータ送信部140に受信される。クリップボードデータ送信部140は、受信した要求を抽出部139に通知する。   On the other hand, as described above, the clipboard data receiving unit 117 of the server 110 may request the client 130 to transmit clipboard data. Specifically, the request is received by the clipboard data transmission unit 140 via the communication control unit 131. The clipboard data transmission unit 140 notifies the extraction unit 139 of the received request.

すると、抽出部139は、要求に応じて、クリップボードデータ記憶部138から、クリップボードデータと時刻情報を抽出する。要求に指定されている期間と、クリップボード135が更新されたタイミングに応じて、抽出されるクリップボードデータと時刻情報のペアの数は、0の場合もあるし、1の場合もあるし、2以上の場合もある。   Then, the extraction unit 139 extracts clipboard data and time information from the clipboard data storage unit 138 in response to the request. Depending on the period specified in the request and the timing when the clipboard 135 is updated, the number of clipboard data and time information pairs to be extracted may be 0, 1 or 2 or more. In some cases.

抽出部139は、抽出したクリップボードデータと時刻情報を、クリップボードデータ送信部140に出力する。すると、クリップボードデータ送信部140は、クリップボードデータと時刻情報を、通信制御部131を介してサーバ110に返す。   The extraction unit 139 outputs the extracted clipboard data and time information to the clipboard data transmission unit 140. Then, the clipboard data transmission unit 140 returns the clipboard data and time information to the server 110 via the communication control unit 131.

さて、図3は、ハードウェア構成例を示す図である。図3には、ネットワーク220を介して互いに接続されたコンピュータ200と240が例示されている。ネットワーク220には、さらに別のコンピュータ260が接続されていてもよい。これらのコンピュータ200、240、および260は、いずれも一種の情報処理装置である。   FIG. 3 is a diagram illustrating a hardware configuration example. FIG. 3 illustrates computers 200 and 240 connected to each other via a network 220. Another computer 260 may be connected to the network 220. These computers 200, 240, and 260 are all a kind of information processing apparatus.

例えば、第1実施形態に関して図2に示したサーバ110が、図3のコンピュータ200により実現されてもよい。つまり、コンピュータ200はファイルサーバであってもよい。   For example, the server 110 shown in FIG. 2 regarding the first embodiment may be realized by the computer 200 of FIG. That is, the computer 200 may be a file server.

この場合、図2のクライアント130は、図3のコンピュータ240であってもよい。そして、コンピュータ260がもう1台のクライアント130として動作してもよい。クライアント130として動作するコンピュータ240と260は、具体的には、デスクトップ型のPC(Personal Computer)もよいし、ノート型のPCでもよいし、タブレット端末でもよい。   In this case, the client 130 of FIG. 2 may be the computer 240 of FIG. The computer 260 may operate as another client 130. Specifically, the computers 240 and 260 that operate as the client 130 may be a desktop PC (Personal Computer), a notebook PC, or a tablet terminal.

あるいは、第2実施形態に関して後述する図16のコンピュータ400が、図3のコンピュータ200により実現されてもよい。この場合、コンピュータ200がユーザ端末(例えば、デスクトップ型のPC、ノート型のPC、タブレット端末など)であってもよい。   Alternatively, the computer 400 of FIG. 16 described later with respect to the second embodiment may be realized by the computer 200 of FIG. In this case, the computer 200 may be a user terminal (for example, a desktop PC, a notebook PC, a tablet terminal, or the like).

ネットワーク220の種類は任意である。ネットワーク220は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、および、それらの組み合わせのいずれであってもよい。また、ネットワーク220は、有線ネットワークでもよく、無線ネットワークでもよく、両者の組み合わせであってもよい。   The type of the network 220 is arbitrary. The network 220 may be, for example, a LAN (Local Area Network), a WAN (Wide Area Network), the Internet, or a combination thereof. The network 220 may be a wired network, a wireless network, or a combination of both.

図3のコンピュータ200は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、通信インタフェイス204を有する。コンピュータ200はさらに、入力装置205と、出力装置206と、記憶装置207と、コンピュータ読み取り可能な記憶媒体210の駆動装置208を有する。コンピュータ200の各構成要素は、バス209によって互いに接続されている。   3 includes a CPU (Central Processing Unit) 201, a ROM (Read Only Memory) 202, a RAM (Random Access Memory) 203, and a communication interface 204. The computer 200 further includes an input device 205, an output device 206, a storage device 207, and a drive device 208 for a computer-readable storage medium 210. Each component of the computer 200 is connected to each other by a bus 209.

CPU201は、シングルコアまたはマルチコアのプロセッサである。コンピュータ200は、複数のプロセッサを有していてもよい。例えば、コンピュータ200は、2台以上のCPU201を有していてもよい。CPU201は、プログラムをRAM203にロードし、RAM203をワーキングエリアとしても利用しながら、プログラムを実行する。   The CPU 201 is a single core or multi-core processor. The computer 200 may have a plurality of processors. For example, the computer 200 may have two or more CPUs 201. The CPU 201 loads the program into the RAM 203 and executes the program while using the RAM 203 as a working area.

通信インタフェイス204は、例えば、有線LANインタフェイス、無線LANインタフェイス、またはその組み合わせである。コンピュータ200は、通信インタフェイス204を介してネットワーク220に接続される。   The communication interface 204 is, for example, a wired LAN interface, a wireless LAN interface, or a combination thereof. The computer 200 is connected to the network 220 via the communication interface 204.

通信インタフェイス204は、具体的には、外付けのNIC(Network Interface Card)でもよいし、オンボード型のネットワークインタフェイスコントローラでもよい。例えば、通信インタフェイス204は、物理層の処理を行う「PHYチップ」と呼ばれる回路と、MAC(Media Access Control)副層の処理を行う「MACチップ」と呼ばれる回路を含んでいてもよい。   Specifically, the communication interface 204 may be an external NIC (Network Interface Card) or an on-board type network interface controller. For example, the communication interface 204 may include a circuit called “PHY chip” that performs physical layer processing and a circuit called “MAC chip” that performs MAC (Media Access Control) sublayer processing.

入力装置205は、例えば、キーボード、ポインティングデバイス、またはその組み合わせである。ポインティングデバイスは、例えば、マウスでもよいしタッチパッドでもよいしタッチスクリーンでもよい。出力装置206は、ディスプレイ、スピーカ、またはその組み合わせである。ディスプレイはタッチスクリーンであってもよい。   The input device 205 is, for example, a keyboard, a pointing device, or a combination thereof. The pointing device may be, for example, a mouse, a touch pad, or a touch screen. The output device 206 is a display, a speaker, or a combination thereof. The display may be a touch screen.

記憶装置207は、例えばHDD(Hard Disk Drive)やSSD(Solid-State Drive)などの、不揮発性の記憶装置である。また、記憶媒体210の例は、CD(Compact Disc)やDVD(Digital Versatile Disk)などの光ディスク、光磁気ディスク、磁気ディスク、フラッシュメモリなどの半導体メモリカードなどである。   The storage device 207 is a non-volatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid-State Drive). Examples of the storage medium 210 are an optical disk such as a CD (Compact Disc) and a DVD (Digital Versatile Disk), a semiconductor memory card such as a magneto-optical disk, a magnetic disk, and a flash memory.

CPU201が実行するプログラムは、予めROM202または記憶装置207にインストールされていてもよい。あるいは、プログラムは、記憶媒体210に格納されて提供され、記憶媒体210から駆動装置208により読み取られて記憶装置207にコピーされ、その後、RAM203にロードされてもよい。   The program executed by the CPU 201 may be installed in the ROM 202 or the storage device 207 in advance. Alternatively, the program may be provided by being stored in the storage medium 210, read from the storage medium 210 by the drive device 208, copied to the storage device 207, and then loaded into the RAM 203.

または、ネットワーク220上のプログラム提供者230から、ネットワーク220と通信インタフェイス204を介して、プログラムがコンピュータ200にダウンロードされ、インストールされてもよい。プログラム提供者230は、具体的には、コンピュータ200ともコンピュータ240とも異なる、他のコンピュータである。   Alternatively, the program may be downloaded and installed in the computer 200 from the program provider 230 on the network 220 via the network 220 and the communication interface 204. Specifically, the program provider 230 is another computer that is different from the computer 200 and the computer 240.

さて、コンピュータ240は、CPU241と、ROM242と、RAM243と、通信インタフェイス244と、入力装置245と、出力装置246と、記憶装置247と、コンピュータ読み取り可能な記憶媒体250の駆動装置248を有する。コンピュータ240の各構成要素は、バス249によって互いに接続されている。コンピュータ240の構成はコンピュータ200の構成と類似なので、詳しい説明は省略するが、何点か補足すると下記のとおりである。   The computer 240 includes a CPU 241, a ROM 242, a RAM 243, a communication interface 244, an input device 245, an output device 246, a storage device 247, and a drive device 248 for a computer-readable storage medium 250. Each component of the computer 240 is connected to each other by a bus 249. Since the configuration of the computer 240 is similar to the configuration of the computer 200, a detailed description is omitted, but some points are supplemented as follows.

図3には1台のCPU241のみが描かれているが、コンピュータ240は、コンピュータ200と同様に、複数のプロセッサを有していてもよい。
CPU241が実行するプログラムは、予めROM242または記憶装置247にインストールされていてもよい。あるいは、プログラムは、記憶媒体250に格納されて提供され、記憶媒体250から駆動装置248により読み取られて記憶装置247にコピーされてもよい。または、プログラム提供者230から、ネットワーク220と通信インタフェイス244を介して、プログラムがコンピュータ240にダウンロードされ、インストールされてもよい。
Although only one CPU 241 is illustrated in FIG. 3, the computer 240 may have a plurality of processors, like the computer 200.
The program executed by the CPU 241 may be installed in the ROM 242 or the storage device 247 in advance. Alternatively, the program may be provided by being stored in the storage medium 250, read from the storage medium 250 by the drive device 248, and copied to the storage device 247. Alternatively, the program may be downloaded and installed on the computer 240 from the program provider 230 via the network 220 and the communication interface 244.

なお、ROM202、RAM203、記憶装置207、記憶媒体210、ROM242、RAM243、記憶装置247、および記憶媒体250は、いずれも、有形の(tangible)記憶媒体の例である。これらの有形の記憶媒体は、信号搬送波のような一時的な(transitory)媒体ではない。   Note that the ROM 202, the RAM 203, the storage device 207, the storage medium 210, the ROM 242, the RAM 243, the storage device 247, and the storage medium 250 are all examples of a tangible storage medium. These tangible storage media are not transitory media such as signal carriers.

続いて、図2と図3の関係について説明する。
図2のサーバ110が図3のコンピュータ200により実現される場合、サーバ110内の各構成要素は、例えば以下のハードウェアにより実現されてもよい。
Next, the relationship between FIGS. 2 and 3 will be described.
When the server 110 in FIG. 2 is realized by the computer 200 in FIG. 3, each component in the server 110 may be realized by the following hardware, for example.

ファイル記憶部111は、記憶装置207であってもよい。通信制御部112は、プログラムを実行するCPU201と、通信インタフェイス204とによって実現されてもよい。ファイル送受信部113は、プログラムを実行するCPU201により実現されてもよい。   The file storage unit 111 may be the storage device 207. The communication control unit 112 may be realized by the CPU 201 that executes a program and the communication interface 204. The file transmission / reception unit 113 may be realized by the CPU 201 that executes a program.

ログ記憶部114は、RAM203、記憶装置207、またはその双方により実現されてもよい。ログ管理部115は、プログラムを実行するCPU201により実現されてもよい。時計116は、CPU201内のハードウェアタイマにより実現されてもよい。   The log storage unit 114 may be realized by the RAM 203, the storage device 207, or both. The log management unit 115 may be realized by the CPU 201 that executes a program. The clock 116 may be realized by a hardware timer in the CPU 201.

クリップボードデータ受信部117、抽出部118、比較部119、およびリンク生成部120の各々も、プログラムを実行するCPU201により実現されてもよい。リンク記憶部121は、記憶装置207により実現されてもよい。   Each of clipboard data reception unit 117, extraction unit 118, comparison unit 119, and link generation unit 120 may also be realized by CPU 201 that executes a program. The link storage unit 121 may be realized by the storage device 207.

また、図2のクライアント130が図3のコンピュータ240により実現される場合、クライアント130内の各構成要素は、例えば以下のハードウェアにより実現されてもよい。   When the client 130 in FIG. 2 is realized by the computer 240 in FIG. 3, each component in the client 130 may be realized by the following hardware, for example.

通信制御部131は、プログラムを実行するCPU241と、通信インタフェイス244とによって実現されてもよい。ファイル送受信部132は、プログラムを実行するCPU241により実現されてもよい。アプリケーション133と134は、CPU241により実行されるプログラムの例である。   The communication control unit 131 may be realized by a CPU 241 that executes a program and a communication interface 244. The file transmission / reception unit 132 may be realized by the CPU 241 that executes a program. Applications 133 and 134 are examples of programs executed by the CPU 241.

クリップボード135は、RAM243により実現されてもよい。監視部136は、プログラムを実行するCPU241により実現されてもよい。時計137は、CPU241内のハードウェアタイマにより実現されてもよい。   The clipboard 135 may be realized by the RAM 243. The monitoring unit 136 may be realized by the CPU 241 that executes a program. The clock 137 may be realized by a hardware timer in the CPU 241.

クリップボードデータ記憶部138は、RAM243、記憶装置247、またはその双方により実現されてもよい。抽出部139とクリップボードデータ送信部140は、どちらも、プログラムを実行するCPU241により実現されてもよい。   The clipboard data storage unit 138 may be realized by the RAM 243, the storage device 247, or both. Both the extraction unit 139 and the clipboard data transmission unit 140 may be realized by the CPU 241 that executes a program.

続いて、図4を参照して、図2のシステム100の動作の概要を説明する。図4は、システムの動作フローチャートである。より詳しくは、図4は、サーバ110が稼働し始めた後のシステム100の動作を示す。   Next, an outline of the operation of the system 100 of FIG. 2 will be described with reference to FIG. FIG. 4 is an operation flowchart of the system. More specifically, FIG. 4 shows the operation of the system 100 after the server 110 begins to operate.

ステップS1でシステム100は、クライアント130でイベントが発生するのを待つ。クライアント130でイベントが発生すると、イベントの種類に応じた処理が行われる。イベントの種類として、図4には、クライアント130の起動、クリップボード135の更新の検出、オープン要求、オープン要求以外のファイル操作要求、および関連ファイルの検索要求という、5種類が例示されている。   In step S <b> 1, the system 100 waits for an event to occur in the client 130. When an event occurs in the client 130, processing corresponding to the type of event is performed. FIG. 4 illustrates five types of events: client 130 activation, clipboard 135 update detection, open request, file operation request other than open request, and related file search request.

具体的には、クライアント130が起動すると、ステップS2において、クライアント130(より詳しくは監視部136)がクリップボード135の監視を開始する。そして、図4の処理はステップS1に戻る。   Specifically, when the client 130 is activated, the client 130 (more specifically, the monitoring unit 136) starts monitoring the clipboard 135 in step S2. Then, the process of FIG. 4 returns to step S1.

また、クライアント130の監視部136がクリップボード135の更新を検出すると、ステップS3において、クライアント130(より詳しくは監視部136)は、新たにクリップボード135に記憶されたデータと、時計137から得られる現在時刻を、クリップボードデータ記憶部138に記憶する。そして、図4の処理はステップS1に戻る。   Further, when the monitoring unit 136 of the client 130 detects the update of the clipboard 135, the client 130 (more specifically, the monitoring unit 136), in step S3, the data newly stored in the clipboard 135 and the current obtained from the clock 137. The time is stored in the clipboard data storage unit 138. Then, the process of FIG. 4 returns to step S1.

また、オープン要求が発生すると、ステップS4で、図8とともに後述するオープン処理が実行される。そして、図4の処理はステップS1に戻る。詳しくは後述するとおり、ステップS4では、ファイルのデータがサーバ110からクライアント130へと送信され、サーバ110においてはオープン時刻がログに記録される。   When an open request is generated, an open process which will be described later with reference to FIG. 8 is executed in step S4. Then, the process of FIG. 4 returns to step S1. As will be described in detail later, in step S4, file data is transmitted from the server 110 to the client 130, and the server 110 records the open time in a log.

他方、オープン要求以外のファイル操作要求(すなわち、クローズ要求、セーブ要求、またはセーブ・クローズ要求)が発生すると、ステップS5でリンク処理が実行される。
具体的には、クライアント130が図9のリンク処理を実行する。その結果、場合によっては、クライアント130からサーバ110へとファイル操作要求が送信される。ファイル操作要求を受けると、サーバ110は、図11〜13のリンク処理を実行する。
On the other hand, when a file operation request other than an open request (that is, a close request, a save request, or a save / close request) occurs, link processing is executed in step S5.
Specifically, the client 130 executes the link process of FIG. As a result, in some cases, a file operation request is transmitted from the client 130 to the server 110. When receiving the file operation request, the server 110 executes the link processing of FIGS.

サーバ110は、図11〜13のリンク処理を実行する過程において、クライアント130にクリップボードデータを要求することがある。クライアント130は、サーバ110から要求を受けると、図10のクリップボードデータ送信処理を実行する。   The server 110 may request clipboard data from the client 130 in the course of executing the link processing of FIGS. Upon receiving a request from the server 110, the client 130 executes clipboard data transmission processing in FIG.

また、サーバ110は、図11〜13のリンク処理を実行する過程において、図14〜15の比較処理を実行することもある。その結果として、後述のリンクテーブル303にエントリが追加される(すなわち、新たな関連づけ情報が生成される)ことがある。   In addition, the server 110 may execute the comparison process of FIGS. 14 to 15 in the process of executing the link process of FIGS. As a result, an entry may be added to the link table 303 described later (that is, new association information is generated).

ステップS5のリンク処理の実行後、図4の処理はステップS1に戻る。
なお、図4では省略されているが、システム100内では図4に示す以外の処理も適宜行われる。例えば、ログ管理部115はログ記憶部114に記憶されたログから、古いエントリを適宜削除してもよい。
After execution of the link process of step S5, the process of FIG. 4 returns to step S1.
Although omitted in FIG. 4, processes other than those shown in FIG. 4 are also appropriately performed in the system 100. For example, the log management unit 115 may appropriately delete old entries from the log stored in the log storage unit 114.

また、クライアント130においては、アプリケーション133や134などが、図4のフローチャートとは独立に動作する。したがって、図4には示されていないが、アプリケーション133上でファイルが新規作成されることがある。   In the client 130, the applications 133 and 134 operate independently of the flowchart of FIG. Therefore, although not shown in FIG. 4, a new file may be created on the application 133.

例えば、アプリケーション133によりファイルが新規作成されると、新規作成されたファイルの一時データが、クライアント130の記憶装置247などに記憶されることもある。一時データがクライアント130にローカルに記憶されただけでは、サーバ110は、ファイルが新規作成されたことをまだ認識しない。   For example, when a new file is created by the application 133, temporary data of the newly created file may be stored in the storage device 247 of the client 130 or the like. If only the temporary data is stored locally on the client 130, the server 110 does not yet recognize that the file has been newly created.

しかし、その後、新規作成されたファイルに対するクローズ要求、セーブ要求、またはセーブ・クローズ要求のための操作をユーザが行うと、当該操作に応じて、図4のステップS5が実行される。その結果、サーバ110は、ファイルが新規作成されたことを認識する。   However, when the user subsequently performs an operation for a close request, a save request, or a save / close request for the newly created file, step S5 in FIG. 4 is executed according to the operation. As a result, the server 110 recognizes that a new file has been created.

ところで、第1実施形態においてリンク記憶部121に記憶されるリンクテーブルは、詳細については図7とともに後述するが、図1に関して説明した関連づけ情報(すなわち3つの情報(7a)〜(7c)を含む情報)の具体例である。そして、図1に関して説明したように、データがペーストされた先のファイルからデータのコピー元のファイルを引くために、関連づけ情報が使われてもよい。   By the way, although the link table memorize | stored in the link memory | storage part 121 in 1st Embodiment is later mentioned in detail with FIG. 7, it contains the correlation information (namely, three information (7a)-(7c)) demonstrated regarding FIG. This is a specific example of information. Then, as described with reference to FIG. 1, association information may be used to subtract a data copy source file from a file to which data has been pasted.

具体的には、第1実施形態では、関連づけ情報によってあるファイルに関連づけられている他のファイル(以下「関連ファイル」ともいう)を検索するための要求に応じて、図4のステップS6〜S8において、検索および検索結果の表示が行われる。なお、上記のようにファイル操作要求にいくつかのレベルがあるのと同様に、検索要求にもいくつかレベルがある。しかし、レベルは文脈から明らかなので、以下では特にレベルを区別せずに、単に「検索要求」と述べる。   Specifically, in the first embodiment, in response to a request for searching for another file (hereinafter also referred to as “related file”) associated with a file by the association information, steps S6 to S8 in FIG. The search and the display of the search result are performed. As described above, there are several levels in the search request as well as several levels in the file operation request. However, since the level is clear from the context, the following is simply referred to as “search request” without distinguishing the level.

具体的には、クライアント130は、ユーザにファイルを指定させるための適宜のユーザインタフェイスを提供する。例えば、ファイルを識別する識別情報としてファイルのフルパスが使われる場合、クライアント130は、ファイルのフルパスをユーザに指定させるための画面をディスプレイに表示し、フルパスの入力を受け取ってもよい。検索要求としてユーザから入力が与えられると、図4の処理はステップS1からステップS6へと移行する。   Specifically, the client 130 provides an appropriate user interface for allowing the user to specify a file. For example, when the full path of the file is used as identification information for identifying the file, the client 130 may display a screen for allowing the user to specify the full path of the file on the display and receive the input of the full path. When an input is given from the user as a search request, the processing in FIG. 4 proceeds from step S1 to step S6.

そして、ステップS6でクライアント130は、サーバ110に検索要求を送信する。送信される検索要求には、ユーザの指定した識別情報が含まれる。以下では説明の便宜上、検索要求に含まれる識別情報を「対象識別情報」といい、対象識別情報で識別されるファイルを「対象ファイル」という。   In step S <b> 6, the client 130 transmits a search request to the server 110. The transmitted search request includes identification information specified by the user. Hereinafter, for convenience of explanation, the identification information included in the search request is referred to as “target identification information”, and the file identified by the target identification information is referred to as “target file”.

次のステップS7でサーバ110は、対象ファイルに関連する関連ファイルを検索する。具体的には、サーバ110は、受信した検索要求に含まれる対象識別情報を用いて、リンク記憶部121内を検索する。   In the next step S7, the server 110 searches for related files related to the target file. Specifically, the server 110 searches the link storage unit 121 using the target identification information included in the received search request.

例えば、サーバ110は、対象ファイルにペーストされたデータのコピー元と推定されるファイルを、関連ファイルとして検索してもよい。サーバ110は、対象ファイルからコピーされたデータのペースト先と推定されるファイルを、関連ファイルとして検索してもよい。   For example, the server 110 may search for a file estimated as a copy source of data pasted in the target file as a related file. The server 110 may search for a file presumed to be a paste destination of data copied from the target file as a related file.

いずれにしろ、関連ファイルは、対象ファイルと関連づけ情報により関連づけられているファイルである。また、サーバ110は、検索結果をクライアント130に送信する。   In any case, the related file is a file associated with the target file by the association information. In addition, the server 110 transmits the search result to the client 130.

すると、ステップS8でクライアント130は、サーバ110から検索結果を受信する。そして、クライアント130は、検索結果を表示する。なお、サーバ110が送信する検索結果には、見つかった各関連ファイルの識別情報が含まれる。クライアント130は、例えば、各関連ファイルの識別情報自体をディスプレイに表示してもよいし、各関連ファイルの識別情報を含むハイパーリンクを含むページをディスプレイに表示してもよい。ステップS8の実行後、図4の処理はステップS1へと戻る。   Then, in step S8, the client 130 receives the search result from the server 110. Then, the client 130 displays the search result. The search result transmitted by the server 110 includes identification information of each related file found. For example, the client 130 may display the identification information itself of each related file on the display, or may display a page including a hyperlink including the identification information of each related file on the display. After execution of step S8, the process of FIG. 4 returns to step S1.

以上説明したとおり、図2のシステム100では、クライアント130で発生するイベントに応じて、適宜の処理が行われる。   As described above, in the system 100 of FIG. 2, appropriate processing is performed according to an event that occurs in the client 130.

続いて、図5〜7を参照して、システム100内で使われるデータの具体例について説明する。なお、図5〜7では、説明の便宜上、各種データをテーブル形式で表しているが、もちろん、その他のデータ形式が使われてもよい。   Next, specific examples of data used in the system 100 will be described with reference to FIGS. 5 to 7, various data are represented in a table format for convenience of explanation, but other data formats may be used as a matter of course.

図5は、ログ記憶部114に記憶されるログの例を示す図である。図5のログ301の各エントリは、以下の5つのフィールド(11a)〜(11e)を有する。   FIG. 5 is a diagram illustrating an example of a log stored in the log storage unit 114. Each entry of the log 301 in FIG. 5 has the following five fields (11a) to (11e).

(11a)操作されるファイルを識別する識別情報(例えばフルパス)。
(11b)ファイルに対する操作をクライアント130に指示したユーザを識別する識別情報(例えばユーザ名)。
(11c)既存のファイルが実際に開かれた時刻か、または、「ファイルが新規作成された」とサーバ110が見なした時刻(以下、どちらの時刻も「オープン時刻」ということがある)。
(11d)ファイルが閉じられた時刻(以下「クローズ時刻」ともいう)。
(11e)ファイルが保存された時刻(以下「セーブ時刻」ともいう)。
(11a) Identification information (for example, full path) for identifying the file to be operated.
(11b) Identification information (for example, a user name) for identifying the user who has instructed the client 130 to operate the file.
(11c) The time when the existing file was actually opened or the time when the server 110 considered that “a file was newly created” (hereinafter, both times may be referred to as “open time”).
(11d) Time when the file was closed (hereinafter also referred to as “close time”).
(11e) Time when the file was saved (hereinafter also referred to as “save time”).

ログ301には、既存のファイルが開かれたときに、新規エントリが追加される。また、クライアント130からのセーブ要求またはセーブ・クローズ要求の送信に応じて、サーバ110が、ファイルが新規作成されたことを認識したときにも、ログ301に新規エントリが追加される。   A new entry is added to the log 301 when an existing file is opened. A new entry is also added to the log 301 when the server 110 recognizes that a new file has been created in response to a save request or save / close request sent from the client 130.

なお、説明の便宜上、現在開かれているファイル(すなわち、開かれた後、まだ閉じられていないファイル)に関するエントリにおけるクローズ時刻は、NULLであるものとする。また、開かれた後、まだ1回も保存されていないファイルに関するエントリにおけるセーブ時刻も、NULLであるものとする。   For convenience of explanation, it is assumed that the close time in an entry relating to a currently opened file (that is, a file that has been opened but not yet closed) is NULL. Also, it is assumed that the save time in the entry relating to a file that has not been saved once after being opened is also NULL.

以下では説明の便宜上、「usrA」というユーザ名のユーザを「ユーザusrA」といい、「usrB」というユーザ名のユーザを「ユーザusrB」という。図2には1台のクライアント130しか示されていないが、図5に関する以下の説明では、ユーザusrAとusrBそれぞれのクライアント130が、ネットワーク150を介してサーバ110に接続されているものとする。   Hereinafter, for convenience of explanation, a user having a user name “usrA” is referred to as “user usrA”, and a user having a user name “usrB” is referred to as “user usrB”. Although only one client 130 is shown in FIG. 2, in the following description regarding FIG. 5, it is assumed that the clients 130 of the users usrA and usrB are connected to the server 110 via the network 150.

図5に例示した1番目のエントリによれば、「C:\usrA\abc1.doc」というフルパスにより識別されるファイルは、ユーザusrAからクライアント130に与えられる入力に応じて、2012年6月1日10時に開かれた。あるいは、このファイルは、ユーザusrAのクライアント130上で新規に作成され、「2012年6月1日10時に作成された」とサーバ110により見なされた。そして、このファイルは、ユーザusrAからクライアント130に与えられる入力に応じて、2012年6月1日11時40分に保存され、閉じられた。   According to the first entry illustrated in FIG. 5, the file identified by the full path “C: \ usrA \ abc1.doc” corresponds to the input from the user usrA to the client 130 as of June 1, 2012. It was opened at 10:00 on the day. Alternatively, this file was newly created on the client 130 of user usrA and was deemed by server 110 to be “created at 10:00 on June 1, 2012”. This file was saved and closed at 11:40 on June 1, 2012 in response to an input given to the client 130 from the user usrA.

2番目のエントリによれば、「C:\usrB\abc2.doc」というフルパスにより識別されるファイルは、ユーザusrBからクライアント130に与えられる入力に応じて、2012年6月1日10時15分に開かれた。あるいは、このファイルは、ユーザusrBのクライアント130上で新規に作成され、「2012年6月1日10時15分に作成された」とサーバ110により見なされた。このファイルはまだ閉じられていない。また、このファイルは、開かれた後、1回以上、ユーザusrBからクライアント130に与えられる入力に応じて保存された。このファイルが最後に保存された時刻(つまり最終更新時刻(last modified time))は、2012年6月1日11時45分である。   According to the second entry, the file identified by the full path “C: \ usrB \ abc2.doc” is 10:15 on June 1, 2012, depending on the input given to the client 130 from the user usrB. Opened. Alternatively, this file was newly created on the client 130 of the user usrB and was deemed by the server 110 to be “created at 10:15 on June 1, 2012”. This file has not been closed yet. In addition, after being opened, this file was saved one or more times in response to an input given to the client 130 from the user usrB. The time when this file was last saved (that is, the last modified time) is 11:45 on June 1, 2012.

3番目のエントリによれば、「C:\usrA\abc3.xls」というフルパスにより識別されるファイルは、ユーザusrAからクライアント130に与えられる入力に応じて、2012年6月1日10時20分に開かれた。あるいは、このファイルは、ユーザusrAのクライアント130上で新規に作成され、「2012年6月1日10時20分に作成された」とサーバ110により見なされた。そして、このファイルは、ユーザusrAからクライアント130に与えられる入力に応じて、2012年6月1日10時25分に保存され、閉じられた。   According to the third entry, the file identified by the full path “C: \ usrA \ abc3.xls” is 10:20 on June 1, 2012, depending on the input given to the client 130 from the user usrA. Opened. Alternatively, this file was newly created on the client 130 of the user usrA and was deemed by the server 110 to be “created at 10:20 on June 1, 2012”. This file was saved and closed at 10:25 on June 1, 2012 in response to an input given to the client 130 from the user usrA.

4番目のエントリによれば、「C:\shared\usrA\abc4.ppt」というフルパスにより識別されるファイルは、ユーザusrAからクライアント130に与えられる入力に応じて、2012年6月1日11時5分に開かれた。あるいは、このファイルは、ユーザusrAのクライアント130上で新規に作成され、「2012年6月1日11時5分に作成された」とサーバ110により見なされた。このファイルはまだ閉じられていない。また、このファイルは、開かれた後、1回以上、ユーザusrAからクライアント130に与えられる入力に応じて、保存された。このファイルが最後に保存された時刻は、2012年6月1日11時33分である。   According to the fourth entry, the file identified by the full path “C: \ shared \ usrA \ abc4.ppt” is based on the input given from the user usrA to the client 130 at 11:00 on June 1, 2012. It was opened in 5 minutes. Alternatively, this file is newly created on the client 130 of the user usrA and is regarded by the server 110 as “created at 11:05 on June 1, 2012”. This file has not been closed yet. In addition, after being opened, this file was saved one or more times in response to an input given to the client 130 from the user usrA. The time when this file was last saved is 11:33 on June 1, 2012.

5番目のエントリによれば、「C:\shared\usrC\abc5.xls」というフルパスにより識別されるファイルは、ユーザusrAからクライアント130に与えられる入力に応じて、2012年6月1日11時30分に開かれた。例えば、このファイルは、他のユーザusrCが以前作成した共有ファイルであってもよい。ユーザusrAは、このファイルを読み取り専用(read-only)モードで開いていてもよい。このファイルはまだ保存されておらず、閉じられてもいない。   According to the fifth entry, the file identified by the full path “C: \ shared \ usrC \ abc5.xls” is based on the input given to the client 130 from the user usrA at 11:00 on June 1, 2012. Opened in 30 minutes. For example, this file may be a shared file previously created by another user usrC. User usrA may have opened this file in read-only mode. This file has not yet been saved and closed.

6番目のエントリによれば、「C:\shared\usrD\abc6.txt」というフルパスにより識別されるファイルは、ユーザusrBからクライアント130に与えられる入力に応じて、2012年6月1日11時38分に開かれた。例えば、このファイルは、他のユーザusrDが以前作成した共有ファイルであってもよい。このファイルは2012年6月1日11時50分に閉じられたが、11時38分から11時50分までの間に保存操作は1回も行われていない。すなわち、ユーザusrBは、このファイルをただ閲覧しただけで、編集せずに閉じた。あるいは、ユーザusrBは、このファイルを開いた後、このファイルを編集するための入力操作を行ったが、編集結果を保存せずにこのファイルを閉じた。   According to the sixth entry, the file identified by the full path “C: \ shared \ usrD \ abc6.txt” is 11:00 on June 1, 2012, depending on the input given to the client 130 from the user usrB. Opened at 38 minutes. For example, this file may be a shared file previously created by another user usrD. This file was closed at 11:50 on June 1, 2012, but no save operation was performed between 11:38 and 11:50. That is, the user usrB simply viewed this file and closed it without editing it. Alternatively, the user usrB opened the file and then performed an input operation for editing the file, but closed the file without saving the editing result.

以上例示したようなログ301の各エントリは、ログ管理部115により追加・削除・更新される。エントリの追加については既に述べたとおりである。エントリの更新(具体的には、クローズ時刻、セーブ時刻、またはその双方の更新)については、図11〜13とともに後述する。エントリの削除については、次のとおりである。   Each entry of the log 301 as illustrated above is added / deleted / updated by the log management unit 115. The addition of entries is as already described. The update of the entry (specifically, the update of the close time, the save time, or both) will be described later with reference to FIGS. The entry deletion is as follows.

ログ管理部115は、適宜のタイミングでログ301からエントリを削除する。例えば、サーバ110は、1人以上のユーザのファイルを管理する。そこで、どのユーザのクライアント130もシャットダウンされている場合に、ログ管理部115は、ログ301のすべてのエントリを削除してもよい。あるいは、あるエントリのクローズ時刻が、クローズ時刻がNULLでユーザ名が同じ他のどのエントリのオープン時刻よりも古い場合に、ログ管理部115は、当該エントリを削除してもよい。   The log management unit 115 deletes an entry from the log 301 at an appropriate timing. For example, the server 110 manages files of one or more users. Therefore, when any user's client 130 is shut down, the log management unit 115 may delete all entries in the log 301. Alternatively, when the close time of an entry is older than the open time of any other entry having the same close time and a user name, the log management unit 115 may delete the entry.

さて、図6は、クリップボードデータ記憶部138に記憶されるクリップボードデータテーブルの例を示す図である。図6のクリップボードデータテーブル302の各エントリは、以下の2つのフィールド(12a)〜(12b)を有する。   FIG. 6 is a diagram illustrating an example of a clipboard data table stored in the clipboard data storage unit 138. Each entry in the clipboard data table 302 of FIG. 6 has the following two fields (12a) to (12b).

(12a)クライアント130上でコピー操作またはカット操作が行われることにより、クリップボード135が書き換えられた時刻(以下、「書き換え時刻」という)。
(12b)書き換え時刻に、クリップボード135に書き込まれたデータ。
(12a) Time when the clipboard 135 is rewritten by performing a copy operation or a cut operation on the client 130 (hereinafter referred to as “rewrite time”).
(12b) Data written to the clipboard 135 at the rewriting time.

例えば、図6にはクリップボードデータテーブル302の5個のエントリが例示されている。例えば、これら5個のエントリのうち3番目のエントリによれば、2012年6月1日9時27分に、クライアント130上でコピー操作またはカット操作が行われた。そして、3番目のエントリによれば、当該コピー操作またはカット操作により、クリップボード135には「サンプル1」というテキストデータ(すなわち文字列データ)が書き込まれた。   For example, FIG. 6 illustrates five entries in the clipboard data table 302. For example, according to the third entry among these five entries, a copy operation or a cut operation was performed on the client 130 at 9:27 on June 1, 2012. According to the third entry, text data “sample 1” (that is, character string data) is written in the clipboard 135 by the copy operation or the cut operation.

なお、クリップボードデータテーブル302は、クライアント130が起動されたときに、監視部136により初期化されてもよい。初期状態のクリップボードデータテーブル302は、何もエントリを持たない。   The clipboard data table 302 may be initialized by the monitoring unit 136 when the client 130 is activated. The clipboard data table 302 in the initial state has no entry.

さて、図7は、リンク記憶部に記憶されるリンクテーブルの例を示す図である。図7のリンクテーブル303の各エントリは、以下の4つのフィールド(13a)〜(13d)を有する。   FIG. 7 is a diagram illustrating an example of a link table stored in the link storage unit. Each entry of the link table 303 in FIG. 7 has the following four fields (13a) to (13d).

(13a)エントリを識別する識別情報(具体的には通し番号)。
(13b)データのコピー先のファイルを識別する識別情報(例えばフルパス)。
(13c)データのコピー元のファイルを識別する識別情報(例えばフルパス)。
(13d)クリップボード135を介して、コピー元のファイルからコピー先のファイルへとコピーされたデータ(正確には、「コピー元のファイルからコピー先のファイルへとコピーされた」とサーバ110により推定されたデータ)。すなわち、クリップボード135上に記憶されていたデータ。
(13a) Identification information for identifying an entry (specifically, a serial number).
(13b) Identification information (for example, full path) for identifying the data copy destination file.
(13c) Identification information (for example, full path) for identifying the data copy source file.
(13d) The data copied from the copy source file to the copy destination file via the clipboard 135 (to be exact, it is estimated by the server 110 that “copied from the copy source file to the copy destination file”). Data). That is, the data stored on the clipboard 135.

例えば、通し番号が4番のエントリによれば、「C:\usrA\abc3.xls」というフルパスにより識別されるファイルが、コピー先のファイルである。また、4番のエントリによれば、「C:\shared\usrC\abc5.xls」というフルパスにより識別されるファイルが、コピー元のファイルである。そして、4番目のエントリは、サーバ110が「コピー元のファイルからコピー先のファイルへと、『基剤A80%基剤B20%で配合…』というテキストデータがコピー・アンド・ペーストされた」と推定したことを示す。   For example, according to the entry having the serial number 4, the file identified by the full path “C: \ usrA \ abc3.xls” is the copy destination file. According to the fourth entry, the file identified by the full path “C: \ shared \ usrC \ abc5.xls” is the copy source file. The fourth entry is that the server 110 has copied and pasted the text data “mixed with base A 80% base B 20% ...” from the copy source file to the copy destination file. Indicates that it was estimated.

しかし、サーバ110による推定は、100%正しいとは限らない。例えば、以下の偶然の要因(14a)〜(14d)によっては、「実際には2つのファイルの間には、データの再利用による関連性はないのに、サーバ110が誤って2つのファイルを関連づけてしまう」という場合も皆無ではない。   However, the estimation by the server 110 is not necessarily 100% correct. For example, depending on the following accidental factors (14a) to (14d), “there is no relationship between the two files due to data reuse, but the server 110 mistakenly selects the two files. There are no cases of “associating”.

(14a)2つのファイルがそれぞれ開かれている期間。
(14b)コピー操作またはカット操作が行われるタイミング。
(14c)コピー操作またはカット操作によりクリップボード135に書き込まれるデータ。
(14d)2つのファイルに共通して含まれるデータ。
(14a) A period in which two files are opened.
(14b) Timing when a copy operation or a cut operation is performed.
(14c) Data written to the clipboard 135 by a copy operation or a cut operation.
(14d) Data included in two files in common.

また、サーバ110は、あるコピー先のファイルに対して、コピー元のファイルを1つに絞り切れない場合もある。つまり、コピー元のファイルの候補が複数見つかる場合もある。   Further, the server 110 may not be able to narrow down the copy source file to one for a certain copy destination file. That is, a plurality of copy source file candidates may be found.

1番と2番のエントリは、コピー元のファイルの候補が2つ見つかったことを示す。なぜなら、1番と2番のエントリの(13b)のフィールドの値は互いに等しく、1番と2番のエントリの(13d)のフィールドの値も互いに等しいからである。   The first and second entries indicate that two copy source file candidates have been found. This is because the values of the field (13b) of the first and second entries are equal to each other, and the values of the field (13d) of the first and second entries are also equal to each other.

1番と2番のエントリによれば、「C:\usrA\abc1.doc」というフルパスで識別されるファイルには、「XO135484」というテキストデータ(あるいは、それに類似するテキストデータ)が含まれる。そして、「この『XO135484』というテキストデータは、他のファイルからコピー・アンド・ペーストされたものだ」とサーバ110により推定されている。   According to the first and second entries, the file identified by the full path “C: \ usrA \ abc1.doc” includes text data “XO135484” (or similar text data). The server 110 estimates that “the text data“ XO135484 ”is copied and pasted from another file”.

しかし、サーバ110は、コピー元のファイルの候補を1つに絞り切れず、コピー元のファイルの候補として2つのファイルが見つかった。すなわち、「C:\usrA\abc3.xls」および「C:\shared\usrC\abc5.xls」というフルパスでそれぞれ識別される2つのファイルが、コピー元のファイルの候補として見つかった。   However, the server 110 could not narrow down the copy source file candidates to one, and two files were found as copy source file candidates. That is, two files identified by the full paths “C: \ usrA \ abc3.xls” and “C: \ shared \ usrC \ abc5.xls” were found as copy source file candidates.

なお、偶然に起因してたまに誤判定が起きたり、またはコピー元のファイルの候補が複数見つかる場合がたまにあったりしたとしても、そのような問題が生じる頻度はそれほど高くない。よって、「関連性のありそうなファイルを、比較的高い確信度でユーザに提示することを可能とする」という効果は、十分に得られる。したがって、サーバ110による推定が完全に正しいとは限らなくても、問題はなく、効果は十分に得られる。   It should be noted that the frequency of occurrence of such a problem is not so high even if an erroneous determination sometimes occurs due to accidents, or when a plurality of copy source file candidates are occasionally found. Therefore, the effect of “allowing a user to present a file that is likely to be relevant with a relatively high degree of certainty” is sufficiently obtained. Therefore, even if the estimation by the server 110 is not completely correct, there is no problem and a sufficient effect can be obtained.

さて、次に、図4のステップS4のオープン処理について、図8を参照して説明する。図8は、オープン処理のフローチャートである。具体的には、図8の左側にはクライアント130側のオープン処理のフローチャートが示してあり、図8の右側にはサーバ110側のオープン処理のフローチャートが示してある。   Now, the open process in step S4 in FIG. 4 will be described with reference to FIG. FIG. 8 is a flowchart of the open process. Specifically, the flowchart of the open process on the client 130 side is shown on the left side of FIG. 8, and the flowchart of the open process on the server 110 side is shown on the right side of FIG.

以下では説明の便宜上、「ユーザが、クライアント130上のアプリケーション133を用いて、ファイル記憶部111上の既存のファイルを開くために、入力装置245を使って何らかの操作(例えばメニューの選択など)を行った」ものとする。こうしてユーザが行う操作は、オープン要求の一例である。   In the following, for convenience of explanation, “the user uses the application 133 on the client 130 to perform an operation (for example, menu selection) using the input device 245 to open an existing file on the file storage unit 111. Shall have gone ". The operation performed by the user in this way is an example of an open request.

アプリケーション133は、ユーザの操作に応じて、ファイル送受信部132に対してオープン要求を出す。ファイル送受信部132がオープン要求を受け取ると、図8の左側のフローチャートに示すオープン処理が開始される。   The application 133 issues an open request to the file transmission / reception unit 132 in accordance with a user operation. When the file transmitting / receiving unit 132 receives the open request, the open process shown in the flowchart on the left side of FIG. 8 is started.

ステップS101において、アプリケーション133からのオープン要求に応じて、ファイル送受信部132が、通信制御部131を介してサーバ110にファイルのデータを要求する。すなわち、ステップS101ではクライアント130からサーバ110へとオープン要求が送信される。このオープン要求は、開く対象のファイルを識別する識別情報としてのフルパスと、ユーザを識別する識別情報としてのユーザ名を含む。   In step S <b> 101, the file transmission / reception unit 132 requests file data from the server 110 via the communication control unit 131 in response to an open request from the application 133. That is, in step S101, an open request is transmitted from the client 130 to the server 110. This open request includes a full path as identification information for identifying a file to be opened and a user name as identification information for identifying a user.

そして、クライアント130においては、次のステップS102で、ファイル送受信部132が、通信制御部131を介してサーバ110からファイルのデータを受け取る。ファイル送受信部132は、サーバ110から受け取ったデータをアプリケーション133に受け渡す。   In the client 130, in the next step S 102, the file transmission / reception unit 132 receives file data from the server 110 via the communication control unit 131. The file transmission / reception unit 132 delivers the data received from the server 110 to the application 133.

以上のステップS102でクライアント130側におけるオープン処理は終了する。もちろん、アプリケーション133は、ファイル送受信部132から受け取ったデータを用いて、適宜の処理を行うことができる。例えば、アプリケーション133は、開いたファイルの内容を画面に表示するなどの処理を行ってもよい。   In step S102 described above, the open process on the client 130 side ends. Of course, the application 133 can perform appropriate processing using the data received from the file transmission / reception unit 132. For example, the application 133 may perform processing such as displaying the contents of the opened file on the screen.

一方、サーバ110は、クライアント130がステップS101で送信したオープン要求を受信すると、図8の右側のフローチャートに示すオープン処理を開始する。
具体的には、ステップS111では、ファイル送受信部113が、通信制御部112を介してオープン要求を受信する。そして、ファイル送受信部113は、受信したオープン要求に応じて、クライアント130から要求されたファイルのデータをファイル記憶部111から読み出す。さらに、ファイル送受信部113は、読み出したファイルのデータを、通信制御部112を介してクライアント130に送信する。こうして送信されたデータは、上述のとおりクライアント130においてはステップS102で受信される。
On the other hand, when the server 110 receives the open request transmitted by the client 130 in step S101, the server 110 starts the open process shown in the flowchart on the right side of FIG.
Specifically, in step S <b> 111, the file transmission / reception unit 113 receives an open request via the communication control unit 112. Then, the file transmission / reception unit 113 reads the data of the file requested from the client 130 from the file storage unit 111 in response to the received open request. Further, the file transmitting / receiving unit 113 transmits the read file data to the client 130 via the communication control unit 112. The data transmitted in this way is received in step S102 by the client 130 as described above.

さらに、サーバ110は、続いてステップS112〜S113の処理も行う。具体的には、ステップS112でファイル送受信部113は、下記2種類の情報(15a)と(15b)をログ管理部115に通知する。   Further, the server 110 subsequently performs the processes of steps S112 to S113. Specifically, in step S112, the file transmission / reception unit 113 notifies the log management unit 115 of the following two types of information (15a) and (15b).

(15a)ファイルのデータを要求したユーザの名前。すなわち、受信したオープン要求に含まれているユーザ名。
(15b)開いたファイルのフルパス。すなわち、受信したオープン要求に含まれているフルパス。
(15a) The name of the user who requested the file data. That is, the user name included in the received open request.
(15b) The full path of the opened file. That is, the full path included in the received open request.

すると、ステップS113でログ管理部115は、通知されたユーザ名と、通知されたフルパスと、ファイルのオープン時刻を、ログ記憶部114中のログ301に記録する。つまり、ログ管理部115は、ログ301に新規エントリを追加し、新規エントリに上記のユーザ名、フルパス、およびオープン時刻を記録する。なお、図5に関して説明したとおり、新規エントリにおけるクローズ時刻とセーブ時刻はいずれもNULLである。ログ301への記録が完了すると、オープン処理も完了する。   Then, in step S113, the log management unit 115 records the notified user name, the notified full path, and the file open time in the log 301 in the log storage unit 114. That is, the log management unit 115 adds a new entry to the log 301 and records the above user name, full path, and open time in the new entry. As described with reference to FIG. 5, the close time and save time in the new entry are both NULL. When the recording to the log 301 is completed, the open process is also completed.

続いて、図9〜15を参照して、図4のステップS5のリンク処理について説明する。説明の便宜上、まず、図9〜10を参照してクライアント130側の処理を説明し、その後、図11〜15を参照してサーバ110側の処理を説明する。   Next, the link process in step S5 in FIG. 4 will be described with reference to FIGS. For convenience of explanation, first, the processing on the client 130 side will be described with reference to FIGS. 9 to 10, and then the processing on the server 110 side will be described with reference to FIGS.

図9は、クライアント130側のリンク処理のフローチャートである。
以下では説明の便宜上、「ユーザが、アプリケーション133内で現在開いている或るファイルに対して、クローズ要求、セーブ要求、またはセーブ・クローズ要求を出した」ものとする。例えば、ユーザは、メニューの選択などの何らかの操作を、入力装置245を用いて行ってもよい。
FIG. 9 is a flowchart of link processing on the client 130 side.
Hereinafter, for convenience of explanation, it is assumed that “the user issues a close request, a save request, or a save / close request for a certain file currently opened in the application 133”. For example, the user may perform some operation such as menu selection using the input device 245.

また、以下では説明の便宜上、上記の「或るファイル」を「ファイルF」と表記し、出された要求を「要求R」と表記することがある。上記のとおり、要求Rは、クローズ要求、セーブ要求、またはセーブ・クローズ要求である。また、上記の項目(10a)〜(10c)に示したように、ファイル操作要求にはいくつかのレベルがあるが、文脈から明らかなので、以下では特にレベルの区別をせずに、単に「要求R」と表記することがある。   In the following, for convenience of explanation, the above-mentioned “certain file” may be referred to as “file F”, and the issued request may be referred to as “request R”. As described above, the request R is a close request, a save request, or a save / close request. In addition, as shown in the items (10a) to (10c) above, there are several levels of file operation requests, but it is clear from the context. R ”may be written.

さて、ユーザの操作により要求Rが出されると、図9のリンク処理が開始される。
ステップS201において、アプリケーション133は、ファイルFが新規ファイルか否かを判断する。ファイルFは上記のとおりアプリケーション133内で現在開かれているファイルである。よって、アプリケーション133は、ファイルFが新規ファイルである(すなわち、ファイルFを保存するためのサーバ110上のフルパスが未定である)のか、それともファイルFが既存ファイルであるのかを認識している。したがって、アプリケーション133は、ステップS201の判断を行うことができる。
Now, when the request R is issued by the user's operation, the link processing of FIG. 9 is started.
In step S201, the application 133 determines whether the file F is a new file. The file F is a file currently opened in the application 133 as described above. Therefore, the application 133 recognizes whether the file F is a new file (that is, the full path on the server 110 for storing the file F is undecided) or whether the file F is an existing file. Therefore, the application 133 can make the determination in step S201.

なお、アプリケーション133上で新規に作成されたファイルFが、開かれた状態のまま、一旦サーバ110上に保存されることがある。この場合、一旦サーバ110上に保存された後は、既にファイルFを保存するためのサーバ110上のフルパスが確定している。したがって、この場合、アプリケーション133は、ステップS201で「ファイルFは既存ファイルである」と判断する。   Note that a file F newly created on the application 133 may be temporarily saved on the server 110 while being opened. In this case, once saved on the server 110, the full path on the server 110 for saving the file F has already been determined. Therefore, in this case, the application 133 determines in step S201 that “file F is an existing file”.

ファイルFが新規ファイルの場合、リンク処理はステップS202に移行する。逆に、ファイルFが既存ファイルの場合、リンク処理はステップS207に移行する。
ステップS202でアプリケーション133は、要求Rの種類を判断する。要求Rがクローズ要求の場合は、リンク処理はステップS203に移行する。逆に、要求Rがセーブ要求またはセーブ・クローズ要求の場合は、リンク処理はステップS204に移行する。
If the file F is a new file, the link processing moves to step S202. On the other hand, if the file F is an existing file, the link processing moves to step S207.
In step S202, the application 133 determines the type of the request R. If the request R is a close request, the link processing moves to step S203. Conversely, if the request R is a save request or a save / close request, the link processing moves to step S204.

ステップS203でアプリケーション133は、新規ファイルFを閉じる。例えば、アプリケーション133は、新規ファイルFのために使っていた一時記憶領域(例えば、RAM243、記憶装置247、またはその双方における領域)を解放してもよい。そして、リンク処理は終了する。   In step S203, the application 133 closes the new file F. For example, the application 133 may release a temporary storage area (for example, an area in the RAM 243, the storage device 247, or both) used for the new file F. Then, the link process ends.

なお、上記のとおりステップS203は、ファイルFが新規ファイルであり、かつ、要求Rがクローズ要求の場合に実行される。この場合が示す事柄は、以下の項目(16a)〜(16c)に示す状況である。よって、ステップS203では単にファイルFが閉じられて、リンク処理は完了する。   As described above, step S203 is executed when the file F is a new file and the request R is a close request. The matter shown in this case is the situation shown in the following items (16a) to (16c). Therefore, in step S203, the file F is simply closed and the link process is completed.

(16a)アプリケーション133により、一時的にクライアント130内でローカルに新規ファイルFが作成された。
(16b)しかし、ユーザは、「ファイルFをサーバ110に保存しなくてよい」と判断した。
(16c)したがって、ファイルFに関して、アプリケーション133以外の構成要素(例えばファイル送受信部132やサーバ110など)は、何も処理をしなくてよい。
(16a) The application 133 temporarily creates a new file F locally in the client 130.
(16b) However, the user determines that “the file F need not be stored in the server 110”.
(16c) Accordingly, regarding the file F, components other than the application 133 (for example, the file transmission / reception unit 132 and the server 110) do not need to perform any processing.

他方、ステップS204は、ファイルFが新規ファイルであり、かつ、要求Rがセーブ要求またはセーブ・クローズ要求の場合に実行される。この場合、具体的には、ステップS204で、アプリケーション133が、ファイルFを保存する場所(location)を示すフルパス(以下「フルパスP」と表記する)を取得する。例えば、アプリケーション133はダイアログを出力装置246に表示し、入力装置245からの入力を受け取ることで、フルパスPを取得してもよい。   On the other hand, step S204 is executed when the file F is a new file and the request R is a save request or a save / close request. In this case, specifically, in step S204, the application 133 acquires a full path (hereinafter referred to as “full path P”) indicating a location where the file F is stored. For example, the application 133 may acquire a full path P by displaying a dialog on the output device 246 and receiving an input from the input device 245.

次に、ステップS205でアプリケーション133は、フルパスPをファイル送受信部132に通知する。また、アプリケーション133は、ファイルFのデータもファイル送受信部132に出力する。こうして、ファイル送受信部132は、フルパスPを取得し、保存する対象のデータも取得する。   Next, in step S205, the application 133 notifies the file transmission / reception unit 132 of the full path P. The application 133 also outputs the data of the file F to the file transmission / reception unit 132. In this way, the file transmitting / receiving unit 132 acquires the full path P and also acquires the data to be stored.

次に、ステップS206でファイル送受信部132は、通信制御部131を介して、ファイルFのデータを含む要求Rをサーバ110に送信する。ステップS206で送信される要求Rは、具体的には、セーブ要求またはセーブ・クローズ要求であり、上記のとおりファイルFのデータを含む。さらに、要求Rは、フルパスPも含み、ユーザを識別する識別情報としてのユーザ名(以下「ユーザ名U」と表記する)も含む。なお、ファイル送受信部132は、ネットワークファイルシステムにおけるクライアントサイドのモジュールとしての基本的な機能を有している。そのため、ファイル送受信部132は、ユーザ名Uを取得することができる。要求Rの送信後、クライアント側のリンク処理は終了する。   Next, in step S <b> 206, the file transmission / reception unit 132 transmits a request R including data of the file F to the server 110 via the communication control unit 131. The request R transmitted in step S206 is specifically a save request or a save / close request, and includes the data of the file F as described above. Further, the request R includes a full path P and also includes a user name (hereinafter referred to as “user name U”) as identification information for identifying the user. The file transmission / reception unit 132 has a basic function as a client-side module in the network file system. Therefore, the file transmission / reception unit 132 can acquire the user name U. After transmitting the request R, the client side link processing ends.

さて、ファイルFが既存ファイルの場合、ステップS207でアプリケーション133は、要求Rの種類を判断する。要求Rがクローズ要求の場合は、リンク処理はステップS208に移行する。逆に、要求Rがセーブ要求またはセーブ・クローズ要求の場合は、リンク処理は、上記のステップS205に移行する。   If the file F is an existing file, the application 133 determines the type of request R in step S207. If the request R is a close request, the link process proceeds to step S208. Conversely, if the request R is a save request or a save / close request, the link process proceeds to step S205 described above.

なお、ファイルFが既存ファイルの場合、アプリケーション133はファイルFのフルパスPを認識している。よって、処理がステップS207からステップS205へと移行した後、アプリケーション133は、上記のようにステップS205でフルパスPをファイル送受信部132に通知することができる。   When the file F is an existing file, the application 133 recognizes the full path P of the file F. Therefore, after the processing shifts from step S207 to step S205, the application 133 can notify the file transmission / reception unit 132 of the full path P in step S205 as described above.

さて、ステップS208は、上記のとおり、ファイルFが既存ファイルであり、かつ、要求Rがクローズ要求である場合に実行される。具体的には、ステップS208でアプリケーション133は、フルパスPをファイル送受信部132に通知する。こうして、ファイル送受信部132は、フルパスPを取得する。   Step S208 is executed when the file F is an existing file and the request R is a close request as described above. Specifically, in step S208, the application 133 notifies the file transmission / reception unit 132 of the full path P. In this way, the file transmission / reception unit 132 acquires the full path P.

そして、次のステップS209でファイル送受信部132は、通信制御部131を介して、要求Rをサーバ110に送信する。ステップS209で送信される要求R(すなわちクローズ要求)は、フルパスPとユーザ名Uを含む。要求Rの送信後、クライアント側のリンク処理は終了する。さらに、ステップS209でアプリケーション133は、ファイルFのために使っていた一時記憶領域を解放するなどの処理を、行ってもよい。   In step S <b> 209, the file transmission / reception unit 132 transmits the request R to the server 110 via the communication control unit 131. The request R (that is, the close request) transmitted in step S209 includes the full path P and the user name U. After transmitting the request R, the client side link processing ends. Further, in step S209, the application 133 may perform processing such as releasing the temporary storage area used for the file F.

なお、要求Rがセーブ要求である場合は、クライアント側のリンク処理の終了後もファイルFはアプリケーション133上で開いたままである。よって、この場合、アプリケーション133は、クライアント側のリンク処理の終了後も、入力装置245を介してユーザから与えられる指示に応じて、適宜の処理(例えばファイルFを編集するなどの処理)を行う。   If the request R is a save request, the file F remains open on the application 133 even after the client side link processing is completed. Therefore, in this case, the application 133 performs appropriate processing (for example, processing such as editing the file F) in accordance with an instruction given from the user via the input device 245 even after the client-side link processing ends. .

さて、図10は、クライアント130側のクリップボードデータ送信処理のフローチャートである。図4のステップS5に関して簡単に説明したとおり、ステップS5の実行過程内において、サーバ110がクライアント130にクリップボードデータの送信を要求することがある。クライアント130は、サーバ110からクリップボードデータの送信を要求されると、図10の処理を開始する。   FIG. 10 is a flowchart of clipboard data transmission processing on the client 130 side. As briefly described with respect to step S5 of FIG. 4, the server 110 may request the client 130 to send clipboard data during the execution process of step S5. When the client 130 is requested to send clipboard data from the server 110, the client 130 starts the processing of FIG.

なお、サーバ110は、クリップボードデータ記憶部138上のクリップボードデータテーブル302から抽出する対象のエントリの範囲を指定する。以下では説明の便宜上、サーバ110が範囲を指定するための2つのパラメタを「開始時点S」および「終了時点E」と呼ぶ。   Note that the server 110 specifies a range of entries to be extracted from the clipboard data table 302 on the clipboard data storage unit 138. Hereinafter, for convenience of explanation, two parameters for the server 110 to specify a range are referred to as “start time S” and “end time E”.

開始時点Sと終了時点Eは、「開始時点Sから終了時点Eまでの期間の少なくとも一部においてクリップボード135に記憶されていたデータを、サーバ110が要求している」ということを示す。ファイルFに関してサーバ110が開始時点Sから終了時点Eまでの期間を指定する場合、指定される当該期間は、ファイルFが閉じられるよりも前の期間に含まれる。   The start time S and the end time E indicate that “the server 110 requests data stored in the clipboard 135 in at least a part of the period from the start time S to the end time E”. When the server 110 specifies a period from the start time S to the end time E for the file F, the specified period is included in a period before the file F is closed.

クリップボードデータ送信部140は、通信制御部131を介してサーバ110から、開始時点Sと終了時点Eを含む要求を受信する。そして、要求の受信に応じて、図10のクリップボードデータ送信処理が開始される。   The clipboard data transmission unit 140 receives a request including the start time S and the end time E from the server 110 via the communication control unit 131. Then, in response to receiving the request, the clipboard data transmission process of FIG. 10 is started.

まず、ステップS301でクリップボードデータ送信部140は、サーバ110から指定された開始時点Sと終了時点Eを抽出部139に通知する。   First, in step S <b> 301, the clipboard data transmission unit 140 notifies the extraction unit 139 of the start time S and end time E specified from the server 110.

次に、ステップS302で抽出部139は、クリップボードデータ記憶部138に記憶されているクリップボードデータテーブル302を検索して、終了時点Eよりも書き換え時刻が古いエントリを探す。もし、終了時点Eよりも書き換え時刻が古いエントリがなければ、クリップボードデータ送信処理は、ステップS303に移行する。逆に、終了時点Eよりも書き換え時刻が古いエントリがあれば、クリップボードデータ送信処理は、ステップS304に移行する。   Next, in step S302, the extraction unit 139 searches the clipboard data table 302 stored in the clipboard data storage unit 138 to search for an entry whose rewrite time is older than the end time E. If there is no entry whose rewrite time is older than the end time E, the clipboard data transmission process proceeds to step S303. Conversely, if there is an entry whose rewrite time is older than the end time E, the clipboard data transmission process proceeds to step S304.

ここで、「終了時点Eよりも書き換え時刻が古いエントリがない」ということは、「開始時点Sから終了時点Eまでの期間の全体を通じて、クリップボード135は何もデータが記憶されていない状態であった」ということを意味する。よって、ステップS303で抽出部139は、「サーバ110から指定された条件に該当するデータがない」ということを、クリップボードデータ送信部140に通知する。   Here, “there is no entry whose rewrite time is older than the end time E” means that “the clipboard 135 has no data stored throughout the entire period from the start time S to the end time E”. It means that. Therefore, in step S303, the extraction unit 139 notifies the clipboard data transmission unit 140 that “there is no data corresponding to the condition specified from the server 110”.

すると、クリップボードデータ送信部140は、「サーバ110から指定された条件に該当するデータがない」ということを、通信制御部131を介してサーバ110に通知する。そして、クリップボードデータ送信処理は終了する。   Then, the clipboard data transmission unit 140 notifies the server 110 via the communication control unit 131 that “there is no data corresponding to the condition specified by the server 110”. Then, the clipboard data transmission process ends.

逆に、「終了時点Eよりも書き換え時刻が古いエントリがある」ということは、「開始時点Sから終了時点Eまでの期間の少なくとも一部においてクリップボード135に記憶されていたデータが、少なくとも1つは存在する」ということを意味する。そこで、終了時点Eよりも書き換え時刻が古いエントリがステップS302で見つかった場合には、ステップS304以降の処理が行われる。なお、以下では説明の簡単化のため、クリップボードデータテーブル302では、書き換え時刻の昇順にエントリがソートされているものとする。   Conversely, “there is an entry whose rewrite time is older than the end time E” means that “at least one piece of data stored in the clipboard 135 in at least a part of the period from the start time S to the end time E”. Means "is present". Therefore, if an entry with a rewrite time older than the end time E is found in step S302, the processing from step S304 is performed. In the following description, it is assumed that the entries are sorted in the ascending order of the rewrite time in the clipboard data table 302 for the sake of simplicity.

ステップS304で抽出部139は、書き換え時刻が終了時点Eより古いエントリの中で、最も書き換え時刻が新しいエントリを、「終了エントリ」とする。   In step S304, the extraction unit 139 sets the entry with the newest rewrite time among the entries with the rewrite time older than the end time E as the “end entry”.

また、次のステップS305で抽出部139は、クリップボードデータ記憶部138に記憶されているクリップボードデータテーブル302を検索して、開始時点Sよりも書き換え時刻が古いエントリを探す。もし、開始時点Sよりも書き換え時刻が古いエントリがあれば、クリップボードデータ送信処理は、ステップS306に移行する。逆に、開始時点Sよりも書き換え時刻が古いエントリがなければ、クリップボードデータ送信処理は、ステップS307に移行する。   In step S305, the extraction unit 139 searches the clipboard data table 302 stored in the clipboard data storage unit 138 to search for an entry whose rewrite time is older than the start time S. If there is an entry whose rewrite time is older than the start time S, the clipboard data transmission process proceeds to step S306. Conversely, if there is no entry whose rewrite time is older than the start time S, the clipboard data transmission processing proceeds to step S307.

ステップS306で抽出部139は、書き換え時刻が開始時点Sより古いエントリの中で、最も書き換え時刻が新しいエントリを、「開始エントリ」とする。なお、開始エントリは、終了エントリと同じ場合もあるし、終了エントリとは異なる場合もある。   In step S306, the extraction unit 139 sets the entry with the newest rewrite time among the entries whose rewrite time is older than the start time S as the “start entry”. The start entry may be the same as the end entry or may be different from the end entry.

具体的には、「開始時点Sより前にクリップボード135が書き換えられ、その後、開始時点Sから終了時点Eまでの間はクリップボード135が書き換えられない」という場合がある。この場合、開始エントリは終了エントリと同じである。   Specifically, there is a case where “the clipboard 135 is rewritten before the start time S, and then the clipboard 135 is not rewritten from the start time S to the end time E”. In this case, the start entry is the same as the end entry.

逆に、「開始時点Sより前にクリップボード135が書き換えられ、その後、開始時点Sから終了時点Eまでの期間中にc回(1≦c)クリップボード135が書き換えられる」という場合もある。この場合、開始エントリと終了エントリは異なり、開始エントリから終了エントリまでのエントリの数は(c+1)個である。   Conversely, the clipboard 135 may be rewritten before the start time S, and then the clipboard 135 is rewritten c times (1 ≦ c) during the period from the start time S to the end time E ”. In this case, the start entry and the end entry are different, and the number of entries from the start entry to the end entry is (c + 1).

ステップS306で抽出部139が開始エントリを決めると、クリップボードデータ送信処理は、ステップS308に移行する。   When the extraction unit 139 determines a start entry in step S306, the clipboard data transmission process proceeds to step S308.

ところで、「開始時点Sよりも書き換え時刻が古いエントリがない」ということは、「開始時点Sから終了時点Eまでの期間の途中で、初めてクリップボード135にデータが記憶された」ということを意味する。よって、ステップS307で抽出部139は、クリップボードデータテーブル302の中で書き換え時刻が最も古いエントリを、開始エントリとする。なお、開始エントリは、終了エントリと同じ場合もあるし、終了エントリとは異なる場合もある。   By the way, “there is no entry whose rewrite time is older than the start time S” means that “data is stored in the clipboard 135 for the first time during the period from the start time S to the end time E”. . Therefore, in step S307, the extraction unit 139 sets the entry with the oldest rewrite time in the clipboard data table 302 as the start entry. The start entry may be the same as the end entry or may be different from the end entry.

具体的には、「開始時点Sより後かつ終了時点Eより前のある時点において初めてクリップボード135にデータが書き込まれたが、その後、終了時点Eまではクリップボード135が更新されなかった」という場合がある。この場合、開始エントリは終了エントリと同じである。   Specifically, there is a case where “data is written to the clipboard 135 for the first time after the start time S and before the end time E, but the clipboard 135 has not been updated until the end time E”. is there. In this case, the start entry is the same as the end entry.

逆に、「開始時点Sより後かつ終了時点Eより前のある時点において初めてクリップボード135にデータが書き込まれ、その後、開始時点Sから終了時点Eまでの期間中にc回(1≦c)クリップボード135が書き換えられる」という場合もある。この場合、開始エントリと終了エントリは異なり、開始エントリから終了エントリまでのエントリの数は(c+1)個である。   Conversely, “data is first written to the clipboard 135 at a certain time after the start time S and before the end time E, and then c times (1 ≦ c) clipboard during the period from the start time S to the end time E. 135 may be rewritten ". In this case, the start entry and the end entry are different, and the number of entries from the start entry to the end entry is (c + 1).

ステップS307で抽出部139が開始エントリを決めると、クリップボードデータ送信処理は、ステップS308に移行する。   When the extraction unit 139 determines a start entry in step S307, the clipboard data transmission process proceeds to step S308.

そして、ステップS308で抽出部139は、開始エントリから終了エントリまでのエントリを、クリップボードデータ記憶部138から抽出する。開始エントリと終了エントリが同じ場合は、抽出されるエントリの数は1個だけである。開始エントリと終了エントリが異なる場合は、ステップS306とS307に関して説明したように、(c+1)個のエントリが抽出される。   In step S308, the extraction unit 139 extracts entries from the start entry to the end entry from the clipboard data storage unit 138. When the start entry and the end entry are the same, only one entry is extracted. If the start entry and the end entry are different, (c + 1) entries are extracted as described with respect to steps S306 and S307.

ステップS308ではさらに、抽出部139により抽出されたエントリのデータを、クリップボードデータ送信部140が、通信制御部131を介してサーバ110に送信する。そして、クリップボードデータ送信処理は終了する。   In step S308, the clipboard data transmission unit 140 further transmits the entry data extracted by the extraction unit 139 to the server 110 via the communication control unit 131. Then, the clipboard data transmission process ends.

例えば、開始時点Sが図1の時刻T2で終了時点Eが図1の時刻T4の場合、以上の処理により、時刻T1に対応づけられたデータD1と、時刻T3に対応づけられたデータD2が、クライアント130からサーバ110へと送信される。   For example, when the start time S is time T2 in FIG. 1 and the end time E is time T4 in FIG. 1, the data D1 associated with time T1 and the data D2 associated with time T3 are obtained by the above processing. , And transmitted from the client 130 to the server 110.

続いて、図11〜15を参照して、図4のステップS5におけるサーバ110の動作について詳しく説明する。
図11〜13は、サーバ側のリンク処理のフローチャートである。図9のステップS206またはS209でクライアント130から送信された要求Rを、通信制御部112を介してファイル送受信部113が受信すると、図11〜13のリンク処理が開始される。なお、図9に関して説明したとおり、要求Rには、ファイルFを識別する識別情報としてのフルパスPと、要求Rを出したユーザを識別する識別情報としてのユーザ名Uが含まれる。また、要求Rがセーブ要求またはセーブ・クローズ要求である場合には、要求Rには、さらに保存対象のファイルFのデータが含まれる。
Next, the operation of the server 110 in step S5 of FIG. 4 will be described in detail with reference to FIGS.
11 to 13 are flowcharts of link processing on the server side. When the file transmission / reception unit 113 receives the request R transmitted from the client 130 in step S206 or S209 in FIG. 9 via the communication control unit 112, the link processing in FIGS. As described with reference to FIG. 9, the request R includes a full path P as identification information for identifying the file F and a user name U as identification information for identifying the user who has issued the request R. When the request R is a save request or a save / close request, the request R further includes data of the file F to be saved.

ステップS401でファイル送受信部113は、要求Rの種類を判断する。要求Rがクローズ要求である場合、リンク処理はステップS402へ移行する。逆に、要求Rがセーブ要求またはセーブ・クローズ要求である場合、リンク処理はステップS405へ移行する。   In step S401, the file transmission / reception unit 113 determines the type of the request R. If the request R is a close request, the link processing moves to step S402. On the other hand, if the request R is a save request or a save / close request, the link process proceeds to step S405.

なお、要求Rは、所定のプロトコルにしたがってクライアント130からサーバ110へと送られる。例えば、当該所定のプロトコルのPDU(Protocol Data Unit)は、要求の種類を示すヘッダフィールドを含んでいてもよい。ファイル送受信部113は、通信制御部112を介して受信した要求RのPDUのヘッダフィールドに基づいて、ステップS401で要求Rの種類を判断してもよい。   The request R is sent from the client 130 to the server 110 according to a predetermined protocol. For example, a PDU (Protocol Data Unit) of the predetermined protocol may include a header field indicating the type of request. The file transmission / reception unit 113 may determine the type of the request R in step S401 based on the header field of the PDU of the request R received via the communication control unit 112.

さて、要求Rがクローズ要求の場合、ステップS402でファイル送受信部113は、ファイルFを閉じる。
そして、次のステップS403でファイル送受信部113は、以下の情報(17a)と(17b)をログ管理部115に通知する。
If the request R is a close request, the file transmitting / receiving unit 113 closes the file F in step S402.
In step S403, the file transmitting / receiving unit 113 notifies the log management unit 115 of the following information (17a) and (17b).

(17a)クローズ要求の要求元ユーザの名前(すなわち、要求Rに含まれているユーザ名U)。
(17b)ファイルFのフルパスP(すなわち、要求Rに含まれているフルパスP)。
(17a) The name of the requesting user of the close request (that is, the user name U included in the request R).
(17b) Full path P of file F (that is, full path P included in request R).

すると、ステップS404でログ管理部115は、ログ301の中から、以下の条件(18a)〜(18c)をすべて満たすエントリを検索する。   In step S404, the log management unit 115 searches the log 301 for entries that satisfy all of the following conditions (18a) to (18c).

(18a)通知されたフルパスPを含む。
(18b)通知されたユーザ名Uを含む。
(18c)クローズ時刻がNULLである。
(18a) The notified full path P is included.
(18b) The notified user name U is included.
(18c) The close time is NULL.

説明の簡単化のため、「1つのファイルが、1人のユーザによって、同時に複数のアプリケーションから開かれることはない」と仮定する。すると、検索の結果、複数のエントリが見つかることはなく、1つだけエントリが見つかる。なお、エントリが見つかる理由は、以下のとおりである。   For simplicity of explanation, it is assumed that “one file is not opened from a plurality of applications at the same time by one user”. As a result of the search, a plurality of entries are not found, and only one entry is found. The reason for finding the entry is as follows.

図9から明らかなとおり、サーバ110は、既にファイル記憶部111上に存在するファイルについてのクローズ要求を受け取ることはあるが、ファイル記憶部111上に存在しないファイルについてクローズ要求を受け取ることはない。そして、既にファイル記憶部111上に存在するファイルについてのクローズ要求は、当該ファイルについてのオープン要求とセーブ要求の少なくとも一方の後に生じるものである。   As is apparent from FIG. 9, the server 110 may receive a close request for a file that already exists on the file storage unit 111, but does not receive a close request for a file that does not exist on the file storage unit 111. A close request for a file that already exists on the file storage unit 111 is generated after at least one of an open request and a save request for the file.

さらに、リンク処理についての以下の説明から明らかなように、ファイルFに関して、ユーザ名Uのユーザからオープン要求とセーブ要求の少なくとも一方が出されたことがあれば、条件(18a)と(18b)を満たすエントリが作成済みである。また、当該エントリのクローズ時刻は、クローズ要求が出される前はNULLのままである。よって、ステップS404での検索の結果、条件(18a)〜(18c)をすべて満たすエントリが見つかる。   Further, as will be apparent from the following description of the linking process, if at least one of an open request and a save request has been issued for the file F from the user with the user name U, the conditions (18a) and (18b) An entry that satisfies this condition has been created. Further, the close time of the entry remains NULL before a close request is issued. Therefore, as a result of the search in step S404, an entry that satisfies all the conditions (18a) to (18c) is found.

なお、例えば複数のユーザに読み出しアクセスが許されているファイルなどは、複数のユーザによって同時に開かれることがあり得る。その場合、条件(18a)と(18c)をともに満たすエントリが複数存在することがある。しかし、条件(18b)により、要求Rの要求元ユーザが一意に特定される。したがって、条件(18a)〜(18c)をすべて満たすエントリは1つである。   Note that, for example, a file to which a plurality of users are allowed read access may be simultaneously opened by a plurality of users. In that case, there may be a plurality of entries that satisfy both the conditions (18a) and (18c). However, the request source user of the request R is uniquely specified by the condition (18b). Therefore, there is one entry that satisfies all the conditions (18a) to (18c).

なお、1つのファイルが1人のユーザによって同時に複数のアプリケーションから開かれ得る実施形態では、クライアント130は、ファイル操作要求に、「どのアプリケーションからファイルが操作されるのか」を示すアプリケーション識別情報を含めてもよい。そして、ログ301の各エントリが、さらにアプリケーション識別情報のフィールドを有していてもよい。そうすれば、ログ管理部115は、さらにアプリケーション識別情報を利用することで、ステップS404での検索においてエントリを1つに絞り込むことができる。   In an embodiment in which one file can be opened simultaneously from a plurality of applications by one user, the client 130 includes application identification information indicating “from which application the file is operated” in the file operation request. May be. Each entry of the log 301 may further include a field for application identification information. Then, the log management unit 115 can further narrow down the entry to one in the search in step S404 by using the application identification information.

ログ管理部115は、以上のようにしてログ301から1つのエントリを見つけると、見つけたエントリにクローズ時刻を記録する。すなわち、ログ管理部115は、時計116を参照して現在時刻を得て、見つけたエントリのクローズ時刻フィールドに現在時刻を書き込む。その後、リンク処理は、図12に示すステップS424に移行する。   When the log management unit 115 finds one entry from the log 301 as described above, the log management unit 115 records the close time in the found entry. That is, the log management unit 115 refers to the clock 116 to obtain the current time, and writes the current time in the close time field of the found entry. Thereafter, the link processing moves to step S424 shown in FIG.

他方、要求Rがセーブ要求またはセーブ・クローズ要求である場合には、ステップS405以降の処理が実行される。具体的には、ステップS405でファイル送受信部113は、通信制御部112を介して受信したデータ(すなわち要求Rに含まれる、ファイルFのデータ)を、要求Rに含まれるフルパスPで示される場所に格納する。   On the other hand, if the request R is a save request or a save / close request, the processes in and after step S405 are executed. Specifically, in step S405, the file transmission / reception unit 113 stores the data received via the communication control unit 112 (that is, the data of the file F included in the request R) by the location indicated by the full path P included in the request R. To store.

ファイルFがクライアント130で新規に作成されたファイルである場合、ステップS405の結果として、サーバ110のファイル記憶部111上に(つまりフルパスPで示される場所に)、新たにファイルFが作成および保存される。ファイルFが既存のファイルである場合は、ステップS405の結果として、ファイル記憶部111上のファイルFの既存のデータが、編集後の新たなデータで上書きされる。いずれにしろ、ステップS405の結果として、ファイル記憶部111にはファイルFが保存される。   If the file F is a file newly created by the client 130, a new file F is created and saved on the file storage unit 111 of the server 110 (that is, at the location indicated by the full path P) as a result of step S405. Is done. When the file F is an existing file, as a result of step S405, the existing data of the file F on the file storage unit 111 is overwritten with new data after editing. In any case, the file F is stored in the file storage unit 111 as a result of step S405.

なお、説明の簡単化のため、図11では、要求Rの要求元のユーザは、ファイルFへの書き込みアクセスが許されているものとする。しかし、より詳しくは、ステップS405でファイル送受信部113は、要求Rに含まれるユーザ名Uに基づいて、「要求元のユーザはファイルFへの書き込みアクセスが許されているのか否か」を判断する。そして、要求元のユーザにファイルFへの書き込みアクセスが許されている場合は、ファイル送受信部113は、ステップS405で上記のようにしてファイルFの保存を行う。   For simplification of explanation, it is assumed in FIG. 11 that the user who requested the request R is allowed to have write access to the file F. However, in more detail, in step S405, the file transmitting / receiving unit 113 determines “whether the requesting user is allowed write access to the file F” based on the user name U included in the request R. To do. If the requesting user is allowed write access to the file F, the file transmitting / receiving unit 113 stores the file F as described above in step S405.

もし、要求元のユーザにファイルFへの書き込みアクセスが許されていなければ、ファイル送受信部113は、不図示のエラー処理を行う。例えば、ファイル送受信部113は、「ユーザ名Uのユーザには、フルパスPで示される場所にファイルFを保存することが許されていない」ということを示すエラーコードを、通信制御部112を介してクライアント130に返してもよい。また、ファイル送受信部113は、エラー処理を終えるとサーバ側のリンク処理も終える。   If the requesting user is not allowed write access to the file F, the file transmitting / receiving unit 113 performs error processing (not shown). For example, the file transmission / reception unit 113 sends an error code indicating that “the user with the user name U is not allowed to save the file F to the location indicated by the full path P” via the communication control unit 112. May be returned to the client 130. Further, when the file transmission / reception unit 113 finishes the error process, the server side link process is also finished.

ここで、ファイルFがステップS405で保存された場合の説明に戻る。次のステップS406でファイル送受信部113は、要求Rの種類を判断する。   Here, the description returns to the case where the file F is stored in step S405. In the next step S406, the file transmission / reception unit 113 determines the type of the request R.

要求Rがセーブ・クローズ要求である場合、リンク処理は、ステップS407に移行する。逆に、要求Rがセーブ要求である場合、リンク処理はステップS408に移行する。   If the request R is a save / close request, the link process proceeds to step S407. On the other hand, if the request R is a save request, the link processing moves to step S408.

ステップS407でファイル送受信部113は、ファイルFを閉じる。そして、リンク処理はステップS408に移行する。   In step S407, the file transmitting / receiving unit 113 closes the file F. Then, the link process proceeds to step S408.

ステップS408でファイル送受信部113は、要求Rの要求元ユーザを識別するユーザ名Uと、ファイルFのフルパスPを、ログ管理部115に通知する。なお、上記のとおり、ユーザ名UとフルパスPは要求Rに含まれている。   In step S <b> 408, the file transmission / reception unit 113 notifies the log management unit 115 of the user name U identifying the requesting user of the request R and the full path P of the file F. As described above, the user name U and the full path P are included in the request R.

次に、ステップS409でログ管理部115は、時計116を参照して現在時刻を取得し、取得した現在時刻を記憶する。   In step S409, the log management unit 115 acquires the current time with reference to the clock 116, and stores the acquired current time.

そして、ステップS410でログ管理部115は、ログ記憶部114上のログ301中に、通知されたフルパスPがあるか否かを判断する。つまり、ログ管理部115は、フルパスPを含むエントリがログ301中に存在するか否かを判断する。   In step S410, the log management unit 115 determines whether or not the notified full path P exists in the log 301 on the log storage unit 114. That is, the log management unit 115 determines whether an entry including the full path P exists in the log 301.

フルパスPを含むエントリがログ301中に存在する場合とは、すなわち、ファイルFが既存のファイルである場合である。よって、この場合、リンク処理は、図12に示すステップS413に移行する。   The case where an entry including the full path P exists in the log 301 is a case where the file F is an existing file. Therefore, in this case, the link processing moves to step S413 shown in FIG.

逆に、フルパスPを含むエントリがログ301中に存在しない場合とは、すなわち、ファイルFが新規作成されたファイルであり、ステップS405で初めてファイルFがファイル記憶部111に保存された場合である。この場合、リンク処理は、ステップS411に移行する。   On the contrary, the case where the entry including the full path P does not exist in the log 301 is a case where the file F is a newly created file and the file F is stored in the file storage unit 111 for the first time in step S405. . In this case, the link process moves to step S411.

ステップS411でログ管理部115は、ログ301に新規エントリを追加する。ログ管理部115は、追加した新規エントリに、ファイルFのフルパスPと、ユーザ名Uとを記録する。   In step S411, the log management unit 115 adds a new entry to the log 301. The log management unit 115 records the full path P of the file F and the user name U in the added new entry.

さらに、ステップS412でログ管理部115は、ステップS409で取得した時刻よりも所定時間前の時刻を、新規エントリにおけるオープン時刻として記録する。なお、新規エントリのクローズ時刻とセーブ時刻は、いずれもNULLである。   Furthermore, in step S412, the log management unit 115 records a time that is a predetermined time before the time acquired in step S409 as the open time in the new entry. Note that the closing time and saving time of the new entry are both NULL.

上記所定時間は、「ユーザがファイルを新規作成するための入力操作を行ってから、最初にセーブ要求またはセーブ・クローズ要求を出すまでに、最大でどの程度の間隔があくと推定されるか」に応じて決められることが好ましい。例えば、「ユーザがファイルを新規作成するための入力操作を行ってから、最初にセーブ要求またはセーブ・クローズ要求を出すまでに、最大でも30分しかあかない」と推定される場合には、上記所定時間は30分でもよいし、30分以上の適宜の時間でもよい。   The predetermined time is “how long is the maximum estimated time between the user performing an input operation to create a new file and the first request for saving or saving / closing”? It is preferable to be determined according to For example, when it is estimated that “there is only a maximum of 30 minutes from when the user performs an input operation for creating a new file until the first save request or save / close request is issued”, The predetermined time may be 30 minutes or an appropriate time of 30 minutes or more.

また、上記所定時間は、システム100に固有の定数でもよいが、ユーザごとに定義可能な値であってもよい。つまり、各ユーザが、自分自身の普段の習慣などから「自分にとっては十分な長さである」と考える時間を、当該ユーザについての上記所定時間として、クライアント130を介してサーバ110に予め通知してもよい。サーバ110は、各ユーザについて、通知された上記所定時間をユーザ名と対応づけて記憶していてもよい。   The predetermined time may be a constant unique to the system 100 or may be a value definable for each user. That is, each user notifies the server 110 via the client 130 in advance as the above-mentioned predetermined time for the user that the user thinks that the time is “sufficiently long for him” based on his / her usual habits. May be. The server 110 may store the notified predetermined time in association with the user name for each user.

例えば、説明の便宜上、上記所定時間が1時間であるとする。この場合、ステップS411〜S412は、以下の項目(19a)と(19b)に示す事柄を意味する。   For example, for convenience of explanation, it is assumed that the predetermined time is 1 hour. In this case, steps S411 to S412 mean the following items (19a) and (19b).

(19a)「クライアント130上でファイルFを新規作成するための入力操作は、ファイルFについて最初にセーブ要求またはセーブ・クローズ要求が出されるよりも、1時間前に行われた」とサーバ110(具体的にはログ管理部115)により見なされる。なお、サーバ110は、「実際にアプリケーション133または134上でいつ入力操作が行われたか」ということを認識しない。そのため、ログ管理部115は、所定の「1時間」という時間を以上のように用いることで、ファイルFが新規作成された時刻を推定する。
(19b)新規作成されたファイルに関しては、オープン時刻は、「ファイルがクライアント130上でローカルに作成された」とログ管理部115が推定した時刻である。
(19a) "The input operation for creating a new file F on the client 130 was performed one hour before the first save request or save / close request was issued for the file F," the server 110 ( Specifically, it is regarded by the log management unit 115). Note that the server 110 does not recognize that “when the input operation is actually performed on the application 133 or 134”. Therefore, the log management unit 115 estimates the time when the file F is newly created by using the predetermined time “1 hour” as described above.
(19b) For a newly created file, the open time is the time estimated by the log management unit 115 that “the file was created locally on the client 130”.

さて、ステップS411〜S412で新規エントリがログ301に追加され、適宜の値が新規エントリに書き込まれた後、リンク処理は、図12に示すステップS413に移行する。
ところで、第1実施形態では、「ファイル同士を関連づける処理をサーバ110がいつ行うか」という点に関して、2種類のモードが利用可能である。以下では説明の便宜上、2種類のモードをそれぞれ「分離モード」と「一括モード」という。
Now, after a new entry is added to the log 301 in steps S411 to S412 and an appropriate value is written to the new entry, the link processing moves to step S413 shown in FIG.
By the way, in the first embodiment, two types of modes can be used in terms of “when the server 110 performs processing for associating files”. Hereinafter, for convenience of explanation, the two types of modes are referred to as “separation mode” and “batch mode”, respectively.

分離モードは、ファイルが保存されるたびに、サーバ110がファイル同士の関連性を判断するモードである。例えば、既存のファイルが開かれた後、3回セーブ要求が出されて、その後、セーブ・クローズ要求が出された場合には、当該ファイルは、開かれてから閉じられるまでに4回保存される。したがって、この場合、サーバ110が分離モードで動作していれば、サーバ110は、当該ファイルと他のファイルとの間の関連性を4回判断する。   The separation mode is a mode in which the server 110 determines the relationship between files each time a file is saved. For example, if an existing file is opened and a save request is issued three times, and then a save / close request is issued, the file is saved four times from when it is opened until it is closed. The Therefore, in this case, if the server 110 is operating in the separation mode, the server 110 determines the relationship between the file and another file four times.

なお、既存のファイルが開かれた後、3回セーブ要求が出されて、その後、クローズ要求が出された場合には、当該ファイルは、開かれてから閉じられるまでに3回保存される。したがって、この場合、サーバ110が分離モードで動作していれば、サーバ110は、当該ファイルと他のファイルとの間の関連性を3回判断する。   If an existing file is opened and then a save request is issued three times, and then a close request is issued, the file is saved three times from opening to closing. Therefore, in this case, if the server 110 is operating in the separation mode, the server 110 determines the relationship between the file and another file three times.

つまり、この場合、3回目の保存の後は、ファイルはクライアント130上でローカルに編集されるかもしれないが、その編集結果はファイル記憶部111には保存されない。したがって、3回目の保存の後にクライアント130上でファイルがどのように編集されようとも、当該ファイルと他のファイルとの関連性には影響しない。よって、サーバ110は、クローズ要求に応じてファイルを閉じる際には、当該ファイルと他のファイルとの間の関連性を判断する必要がない。   That is, in this case, after the third saving, the file may be edited locally on the client 130, but the editing result is not saved in the file storage unit 111. Therefore, no matter how the file is edited on the client 130 after the third saving, the relationship between the file and other files is not affected. Therefore, when the file is closed in response to the close request, the server 110 does not need to determine the relationship between the file and another file.

他方、一括モードは、ファイルが閉じられるときに、サーバ110がファイル同士の関連性を判断するモードである。例えば、既存のファイルが開かれた後、1回以上セーブ要求が出され、その後、最後にクローズ要求またはセーブ・クローズ要求が出される場合がある。この場合、サーバ110が一括モードで動作していれば、サーバ110は、ファイルが開かれている間に何回セーブ要求が出されたかによらず、最後にクローズ要求またはセーブ・クローズ要求に応じてファイルを閉じるときだけ、ファイル同士の関連性を判断する。   On the other hand, the batch mode is a mode in which the server 110 determines the relationship between files when the files are closed. For example, a save request may be issued one or more times after an existing file is opened, and then a close request or a save / close request may be issued last. In this case, if the server 110 is operating in the collective mode, the server 110 responds to the close request or the save / close request at the end regardless of how many times the save request is issued while the file is opened. Only when closing files, determine the relationship between files.

また、分離モードと同様に、一括モードにおいてもサーバ110は、最後のセーブ要求に応じたファイルの保存よりも後にクライアント130でローカルに行われる編集については、考慮しない。   Similarly to the separation mode, even in the collective mode, the server 110 does not consider editing performed locally on the client 130 after saving the file according to the last save request.

なお、サーバ110が一括モードと分離モードのどちらで動作するかは、例えば、不図示の設定ファイルに設定されていてもよい。また、モードは、ログ管理部115、抽出部118、比較部119、およびリンク生成部120のいずれからも参照可能である。そして、以上概略を説明したようなモードに応じた動作は、図12に示すステップS413〜S425により実現される。   Whether the server 110 operates in the collective mode or the separation mode may be set in a setting file (not shown), for example. The mode can be referred to from any of the log management unit 115, the extraction unit 118, the comparison unit 119, and the link generation unit 120. And the operation | movement according to the mode which demonstrated the outline above is implement | achieved by step S413-S425 shown in FIG.

ステップS413でログ管理部115は、要求Rの種類を判断する。要求Rがセーブ要求の場合、リンク処理はステップS414に移行する。逆に、要求Rがセーブ・クローズ要求の場合、リンク処理はステップS416に移行する。   In step S413, the log management unit 115 determines the type of the request R. If the request R is a save request, the link processing moves to step S414. On the other hand, if the request R is a save / close request, the link processing proceeds to step S416.

ステップS414でログ管理部115は、サーバ110が一括モードで動作しているのか、分離モードで動作しているのかを判断する。サーバ110が一括モードで動作している場合、リンク処理は、ステップS415に移行する。逆に、サーバ110が分離モードで動作している場合は、リンク処理は、ステップS416に移行する。   In step S414, the log management unit 115 determines whether the server 110 is operating in the batch mode or the separation mode. When the server 110 is operating in the collective mode, the link processing moves to step S415. Conversely, if the server 110 is operating in the separation mode, the link processing moves to step S416.

ステップS415でログ管理部115は、ステップS409で取得した時刻をセーブ時刻としてログ301に記録する。具体的には、ログ管理部115は、ログ301中で以下の条件(20a)〜(20c)をすべて満たすエントリのセーブ時刻として、ステップS409で取得した時刻を記録する。   In step S415, the log management unit 115 records the time acquired in step S409 in the log 301 as the save time. Specifically, the log management unit 115 records the time acquired in step S409 as the save time of the entry that satisfies all the following conditions (20a) to (20c) in the log 301.

(20a)ステップS408でファイル送受信部113からログ管理部115に通知されたフルパスPを含む。
(20b)ステップS408でファイル送受信部113からログ管理部115に通知されたユーザ名Uを含む。
(20c)クローズ時刻がNULLである。
(20a) The full path P notified from the file transmission / reception unit 113 to the log management unit 115 in step S408 is included.
(20b) The user name U notified from the file transmission / reception unit 113 to the log management unit 115 in step S408 is included.
(20c) The close time is NULL.

なお、ステップS404に関して説明したのと同様の理由から、条件(20a)〜(20c)をすべて満たすエントリの数は1つである。また、サーバ110が一括モードで動作している場合は、セーブ要求が出されても、サーバ110はファイル間の関連性を判断せず、単にセーブ時刻を記録するだけでよい。したがって、ステップS415でのセーブ時刻の記録が終了すると、サーバ側のリンク処理も終了する。   Note that the number of entries satisfying all of the conditions (20a) to (20c) is one for the same reason as described for step S404. In addition, when the server 110 is operating in the collective mode, even if a save request is issued, the server 110 does not determine the relationship between files, and simply records the save time. Therefore, when the recording of the save time in step S415 is completed, the server side link process is also terminated.

他方、サーバ110が分離モードで動作している場合には、セーブ要求が出されるとサーバ110はファイル間の関連性を判断する。また、セーブ・クローズ要求が出された場合には、モードによらず、サーバ110はファイル間の関連性を判断する。具体的には、サーバ110は、ファイル間の関連性を判断するために、ステップS416以降の処理を行う。   On the other hand, when the server 110 is operating in the separation mode, when a save request is issued, the server 110 determines the relationship between files. When a save / close request is issued, the server 110 determines the relationship between files regardless of the mode. Specifically, the server 110 performs the processing after step S416 to determine the relevance between files.

ステップS416では、ログ管理部115が、ステップS409で取得した時刻を終了時点Eとする。終了時点Eは、図10のクリップボードデータ送信処理を行うようにサーバ110が後にクライアント130に要求する際に使われるパラメタである。   In step S416, the log management unit 115 sets the time acquired in step S409 as the end time point E. The end point E is a parameter used when the server 110 later requests the client 130 to perform the clipboard data transmission process of FIG.

そして、次のステップS417でログ管理部115は、上記条件(20a)〜(20c)をすべて満たす上記エントリを参照し、当該エントリ中にセーブ時刻が記録されているか否かを判断する。   In step S417, the log management unit 115 refers to the entry that satisfies all the conditions (20a) to (20c), and determines whether or not the save time is recorded in the entry.

当該エントリ中にセーブ時刻が記録されていれば(すなわち、時刻として有効な値がセーブ時刻として記録されていれば)、今回の要求Rに基づくファイルFの保存は、ファイルFを開いてから2回目以降の保存である。この場合、リンク処理はステップS418に移行する。   If the save time is recorded in the entry (that is, if a valid value is recorded as the save time), the file F based on the current request R is saved after the file F is opened. Save after the first time. In this case, the link process moves to step S418.

逆に、当該エントリ中にセーブ時刻が記録されていなければ(すなわち、セーブ時刻が初期値NULLのままであれば)、今回の要求Rに基づくファイルFの保存は、初めての保存である。この場合、リンク処理はステップS420に移行する。   On the other hand, if the save time is not recorded in the entry (that is, if the save time remains the initial value NULL), the saving of the file F based on the current request R is the first saving. In this case, the link process moves to step S420.

ステップS418でログ管理部115は、以下の条件(21a)と(21b)がともに成り立つか否かを判断する。   In step S418, the log management unit 115 determines whether the following conditions (21a) and (21b) are both satisfied.

(21a)要求Rはセーブ・クローズ要求である。
(21b)サーバ110は一括モードで動作している。
(21a) The request R is a save / close request.
(21b) The server 110 is operating in the collective mode.

条件(21a)と(21b)がともに成り立つ場合、リンク処理はステップS420に移行する。逆に、条件(21a)と(21b)のうち少なくとも1つが成り立たない場合、リンク処理はステップS419に移行する。   When the conditions (21a) and (21b) are both satisfied, the link process proceeds to step S420. Conversely, if at least one of the conditions (21a) and (21b) does not hold, the link processing moves to step S419.

ステップS419でログ管理部115は、ステップS417で見つけたセーブ時刻(すなわち、前回、ファイルFが保存された時刻)を、開始時点Sとする。開始時点Sは、図10のクリップボードデータ送信処理を行うようにサーバ110が後にクライアント130に要求する際に使われるパラメタである。   In step S419, the log management unit 115 sets the save time found in step S417 (that is, the time when the file F was saved last time) as the start time S. The start time S is a parameter used when the server 110 later requests the client 130 to perform the clipboard data transmission process of FIG.

他方、ステップS420では、ログ管理部115は、ステップS417で参照した上記エントリ中のオープン時刻を、開始時点Sとする。   On the other hand, in step S420, the log management unit 115 sets the open time in the entry referred to in step S417 as the start time S.

以上説明したステップS416〜S420によれば、サーバ110が開始時点Sと終了時点Eにより指定する期間は、以下の項目(22a)〜(22c)に示すとおりである。   According to steps S416 to S420 described above, the period specified by the server 110 by the start time S and the end time E is as shown in the following items (22a) to (22c).

(22a)サーバ110が一括モードで動作しており、要求Rがセーブ・クローズ要求の場合: ファイルFが開かれた時刻(または、ファイルFが新規に作成されたと見なされた時刻)から、ファイルFが今回の要求Rにより保存されて閉じられる時刻までの期間。
(22b)サーバ110が分離モードで動作しており、今回が初めての保存の場合(要求Rがセーブ要求であるかセーブ・クローズ要求であるかによらない): ファイルFが開かれた時刻(または、ファイルFが新規に作成されたと見なされた時刻)から、ファイルFが今回の要求Rにより保存される時刻までの期間。
(22c)サーバ110が分離モードで動作しており、今回が2回目以降の保存の場合(要求Rがセーブ要求であるかセーブ・クローズ要求であるかによらない): ファイルFが前回保存されてから、ファイルFが今回の要求Rにより保存される時刻までの期間。
(22a) When the server 110 is operating in the collective mode and the request R is a save / close request: from the time when the file F was opened (or when the file F was considered newly created) Period until the time when F is saved and closed by this request R.
(22b) When the server 110 is operating in the separation mode and this time is the first save (regardless of whether the request R is a save request or a save / close request): time when the file F is opened ( Or a time from the time when the file F is considered to be newly created) to the time when the file F is saved by the current request R.
(22c) When the server 110 is operating in the separation mode and this time is the second or later save (regardless of whether the request R is a save request or a save / close request): the file F is saved last time Until the time when the file F is saved by the current request R.

さて、ステップS419またはS420で開始時点Sが決定された後、ステップS421でログ管理部115は、要求Rの種類を判断する。要求Rがセーブ要求の場合、リンク処理はステップS422に移行する。逆に、要求Rがセーブ・クローズ要求の場合、リンク処理はステップS423に移行する。   Now, after the start time S is determined in step S419 or S420, the log management unit 115 determines the type of the request R in step S421. If the request R is a save request, the link processing moves to step S422. Conversely, if the request R is a save / close request, the link processing moves to step S423.

ステップS422でログ管理部115は、ステップS409で取得した時刻を、セーブ時刻としてログ301に記録する。より具体的には、ログ管理部115は、ステップS417で参照したエントリのセーブ時刻として、ステップS409で取得した時刻を記録する。そして、リンク処理は、図13のステップS426に移行する。   In step S422, the log management unit 115 records the time acquired in step S409 in the log 301 as a save time. More specifically, the log management unit 115 records the time acquired in step S409 as the save time of the entry referenced in step S417. Then, the link process proceeds to step S426 in FIG.

他方、ステップS423でログ管理部115は、ステップS409で取得した時刻を、セーブ時刻およびクローズ時刻としてログ301に記録する。より具体的には、ログ管理部115は、ステップS417で参照したエントリのセーブ時刻およびクローズ時刻として、ステップS409で取得した時刻を記録する。そして、リンク処理は、図13のステップS426に移行する。   On the other hand, in step S423, the log management unit 115 records the time acquired in step S409 in the log 301 as the save time and the close time. More specifically, the log management unit 115 records the time acquired in step S409 as the save time and close time of the entry referenced in step S417. Then, the link process proceeds to step S426 in FIG.

ところで、上記のとおり要求Rがクローズ要求の場合には、リンク処理は、ステップS404からステップS424へと移行する。要求Rがクローズ要求の場合は、「クローズ要求に応じてファイルFが閉じられる際に、サーバ110がファイルFと他のファイルとの関連性を判断するか否か」ということは、モードと、今までのファイルFの保存の履歴による。具体的には、以下の項目(23a)〜(23c)に示すとおりである。   By the way, when the request R is a close request as described above, the link processing moves from step S404 to step S424. When the request R is a close request, “whether or not the server 110 determines the relationship between the file F and another file when the file F is closed in response to the close request” refers to the mode, According to the history of saving the file F so far. Specifically, it is as shown in the following items (23a) to (23c).

(23a)ファイルFが開かれてから、ファイルFが1回も保存されることなく、今回のクローズ要求に応じて閉じられる場合は、モードによらず、サーバ110は、ファイルFと他のファイルとの関連性を判断しない。なぜなら、ファイル記憶部111上に保存されているファイルFのデータは更新されていないためである。
(23b)ファイルFが開かれてから(または、ファイルFが新規作成されてから)、ファイルFが今までに1回以上保存されたことがあり、かつ、サーバ110が分離モードで動作している場合は、サーバ110は、ファイルFと他のファイルとの関連性を判断しない。なぜなら、第1に、サーバ110は、最後の保存の際に、既にファイルFと他のファイルとの関連性を判断しているからである。そして、第2に、ファイルFが最後にファイル記憶部111に保存された後にクライアント130上でローカルに行われる編集作業は、(保存されたファイルFと他のファイルとの関連性に影響しないので)無視してよいからである。
(23c)ファイルFが開かれてから(または、ファイルFが新規作成されてから)、ファイルFが今までに1回以上保存されたことがあり、かつ、サーバ110が一括モードで動作している場合は、サーバ110は、ファイルFと他のファイルとの関連性を判断する。
(23a) When the file F is closed in response to the current close request without being saved even once after the file F is opened, the server 110 can transfer the file F and other files regardless of the mode. Do not judge relevance. This is because the data of the file F stored on the file storage unit 111 is not updated.
(23b) Since the file F has been opened (or since the file F has been newly created), the file F has been stored at least once so far, and the server 110 operates in the separation mode. If there is, the server 110 does not determine the relationship between the file F and other files. This is because, firstly, the server 110 has already determined the relationship between the file F and another file at the time of the last saving. Secondly, the editing work performed locally on the client 130 after the file F was last saved in the file storage unit 111 (because it does not affect the relationship between the saved file F and other files). Because it can be ignored.
(23c) Since the file F has been opened (or since the file F has been newly created), the file F has been stored at least once so far, and the server 110 operates in the batch mode. If there is, the server 110 determines the relevance between the file F and another file.

したがって、ステップS424でログ管理部115は、下記条件(24a)と(24b)がともに成立するか否かを判断する。   Therefore, in step S424, the log management unit 115 determines whether or not the following conditions (24a) and (24b) are both satisfied.

(24a)サーバ110が一括モードで動作している。
(24b)ステップS404でクローズ時刻を記録したエントリに、セーブ時刻が記録されている。
(24a) The server 110 is operating in the collective mode.
(24b) The save time is recorded in the entry in which the close time is recorded in step S404.

条件(24a)と(24b)の少なくとも一方が成立しない場合、ファイルFと他のファイルとの関連性をサーバ110が判断する必要がないので、サーバ側のリンク処理は終了する。逆に、条件(24a)と(24b)がともに成立する場合、リンク処理はステップS425へと移行する。   If at least one of the conditions (24a) and (24b) is not satisfied, the server 110 does not need to determine the relationship between the file F and another file, and the server-side link processing ends. On the other hand, when the conditions (24a) and (24b) are both satisfied, the link process proceeds to step S425.

そして、ステップS425でログ管理部115は、ステップS404でクローズ時刻を記録したエントリのオープン時刻を開始時点Sとし、当該エントリのセーブ時刻を終了時点Eとする。そして、リンク処理は図13のステップS426に移行する。   In step S425, the log management unit 115 sets the open time of the entry whose close time is recorded in step S404 as the start time S and sets the save time of the entry as the end time E. Then, the link processing moves to step S426 in FIG.

ステップS426でログ管理部115は、ファイルFのフルパスPを抽出部118に通知する。   In step S426, the log management unit 115 notifies the extraction unit 118 of the full path P of the file F.

すると、次のステップS427で抽出部118は、ファイル記憶部111内の、フルパスPで識別される場所を参照することで、ファイルFのデータを読み込む。そして、抽出部118は、ファイルFのテキスト情報を抽出し、抽出したテキスト情報を比較部119に出力する。   Then, in the next step S427, the extraction unit 118 reads the data of the file F by referring to the location identified by the full path P in the file storage unit 111. Then, the extraction unit 118 extracts the text information of the file F and outputs the extracted text information to the comparison unit 119.

ステップS427における抽出部118によるテキスト情報の抽出方法は、実施形態に応じた方法であってよい。例えば、ファイルFがプレインテキストファイル(plain text file)であれば、抽出部118は、ファイルFのデータそのものを比較部119に出力してもよい。しかし、ファイルFは、文書作成アプリケーションや表計算アプリケーションなどの何らかのアプリケーションソフトウェアのファイル(つまり、アプリケーション特有のフォーマットのバイナリファイル)の場合もある。   The extraction method of text information by the extraction unit 118 in step S427 may be a method according to the embodiment. For example, if the file F is a plain text file, the extraction unit 118 may output the data of the file F to the comparison unit 119. However, the file F may be a file of some application software such as a document creation application or a spreadsheet application (that is, a binary file having a format specific to the application).

ある種のファイルフォーマットに関しては、当該ファイルフォーマットのバイナリファイルからテキスト情報を抽出するためのプログラムが知られている。よって、抽出部118は、そのような公知のプログラムを用いて実現されてもよい。   With regard to a certain file format, a program for extracting text information from a binary file of the file format is known. Therefore, the extraction unit 118 may be realized using such a known program.

あるいは、抽出部118は、プリンタドライバを用いて、ファイルFから、適宜のPDL(Page Description Language:ページ記述言語)で記述された印刷メタデータを取得してもよい。つまり、抽出部118は、プリンタドライバを用いて、ファイルFを、PDLで記述された形式(以下「PDL形式」という)に変換してもよい。PDLの具体例としては、例えば、EMF(Enhanced Metafile)、XPS(XML Paper Specification;XMLはExtensible Markup Languageの略)、PS(PostScript)、PDF(Portable Document Format)などが挙げられる。   Alternatively, the extraction unit 118 may acquire print metadata described in an appropriate PDL (Page Description Language) from the file F using a printer driver. That is, the extraction unit 118 may convert the file F into a format described in PDL (hereinafter referred to as “PDL format”) using a printer driver. Specific examples of PDL include EMF (Enhanced Metafile), XPS (XML Paper Specification; XML is an abbreviation of Extensible Markup Language), PS (PostScript), PDF (Portable Document Format), and the like.

そして、抽出部118は、取得した印刷メタデータを解析することにより、テキスト情報を抽出してもよい。   Then, the extraction unit 118 may extract text information by analyzing the acquired print metadata.

より具体的には、ファイルFの作成に使われたアプリケーション自体か、または、ファイルFのフォーマットを受け付け可能なビューワ(viewer)アプリケーションが、サーバ110にインストールされているものとする。この場合、抽出部118は、PDL形式への変換のためのプリンタドライバを指定して、ファイルFの作成に使われたアプリケーション自体または上記閲覧アプリケーションの印刷機能を呼び出す。すると、プリンタドライバが、ファイルFをPDL形式に変換する。なお、抽出部118は、例えばファイルFの拡張子から、「どのアプリケーションの印刷機能を呼び出すのか」を決定してもよい。   More specifically, it is assumed that the application itself used for creating the file F or a viewer application that can accept the format of the file F is installed in the server 110. In this case, the extraction unit 118 designates a printer driver for conversion to the PDL format and calls the printing function of the application itself used to create the file F or the browsing application. Then, the printer driver converts the file F into the PDL format. Note that the extraction unit 118 may determine “which application print function to call” from the extension of the file F, for example.

抽出部118は、PDL形式に変換されたデータを解析することにより、テキスト情報を抽出してもよい。   The extraction unit 118 may extract text information by analyzing the data converted into the PDL format.

例えば、文字コードを指定して文字を描画するための文字描画命令が、PDL形式に変換されたデータの中に含まれる場合がある。この場合、抽出部118は、文字描画命令から文字コードを抽出することにより、テキスト情報を抽出してもよい。   For example, there are cases where a character rendering command for rendering a character by designating a character code is included in the data converted into the PDL format. In this case, the extraction unit 118 may extract text information by extracting a character code from a character drawing command.

また、PDL形式に変換されたデータの中には、文字のグリフコード(glyph code)とフォントデータを指定して文字を描画するための文字描画命令が含まれる場合がある。この場合、抽出部118は、文字描画命令を実行することで、実行結果として得られる画像を取得してもよい。抽出部118は、取得した画像に対して、文字認識処理を実行することにより、テキスト情報を抽出してもよい。   In addition, the data converted into the PDL format may include a character rendering command for rendering a character by designating a character glyph code and font data. In this case, the extraction unit 118 may acquire an image obtained as an execution result by executing a character drawing command. The extraction unit 118 may extract text information by performing a character recognition process on the acquired image.

また、ポリゴン等のベクタオブジェクトにより文字が表されている場合や、ビットマップ画像により文字が表されている場合もあり得る。そこで、PDL形式に変換されたデータの中に、ベクタオブジェクトやビットマップ画像を描画するための描画命令が含まれる場合、抽出部118は、描画命令を実行することで、実行結果として得られる画像を取得してもよい。   In addition, a character may be represented by a vector object such as a polygon, or a character may be represented by a bitmap image. Therefore, when the data converted into the PDL format includes a drawing command for drawing a vector object or a bitmap image, the extraction unit 118 executes the drawing command to obtain an image obtained as an execution result. May be obtained.

抽出部118は、取得した画像に対して、文字認識処理を実行することにより、テキスト情報を抽出してもよい。なお、抽出部118は、ベクタオブジェクトやビットマップ画像を描画するための描画命令に関しては、適宜の前処理を行い、描画されるものが文字である可能性を判断し、文字の可能性が高い場合にのみ文字認識処理を実行してもよい。上記前処理として、例えば特開2009−140127号(上記の特許文献3)に記載されている処理を抽出部118が行ってもよい。   The extraction unit 118 may extract text information by performing a character recognition process on the acquired image. Note that the extraction unit 118 performs appropriate preprocessing on a drawing command for drawing a vector object or a bitmap image, determines the possibility that the drawn object is a character, and has a high possibility of a character. The character recognition process may be executed only in such a case. As the preprocessing, the extraction unit 118 may perform the processing described in, for example, Japanese Patent Application Laid-Open No. 2009-140127 (the above-mentioned Patent Document 3).

また、ステップS428でログ管理部115は、開始時点Sと終了時点Eをクリップボードデータ受信部117に通知する。   In step S428, the log management unit 115 notifies the clipboard data reception unit 117 of the start time S and the end time E.

すると、次のステップS429でクリップボードデータ受信部117は、開始時点Sと終了時点Eを指定して、通信制御部112を介して、クライアント130にクリップボードデータを要求する。   Then, in the next step S429, the clipboard data receiving unit 117 specifies the start time S and the end time E, and requests the clipboard data from the client 130 via the communication control unit 112.

この要求をクライアント130が受信すると、クライアント130は図10のクリップボードデータ送信処理を実行する。よって、次のステップS430でクリップボードデータ受信部117は、通信制御部112を介してクライアント130からクリップボードデータを受信する。   When the client 130 receives this request, the client 130 executes the clipboard data transmission process of FIG. Therefore, in the next step S430, the clipboard data receiving unit 117 receives the clipboard data from the client 130 via the communication control unit 112.

つまり、クリップボードデータ受信部117は、開始時点Sから終了時点Eまでの期間の少なくとも一部においてクリップボード135に記憶されていた各データを、受信する。各データは、クリップボード135に当該データが書き込まれた時刻と対応づけられている。クリップボードデータ受信部117は、受信したクリップボードデータを、対応づけられた時刻とともに、比較部119に通知する。   That is, the clipboard data receiving unit 117 receives each data stored in the clipboard 135 in at least a part of the period from the start time S to the end time E. Each data is associated with the time when the data was written to the clipboard 135. The clipboard data receiving unit 117 notifies the received clipboard data to the comparison unit 119 together with the associated time.

以下では説明の便宜上、クリップボードデータ受信部117が受信したクリップボードデータの数を「n」とする(0≦n)。また、0<nの場合は、n個のクリップボードデータのうち、i番目のクリップボードデータを「クリップボードデータD」と表記する(1≦i≦n)。 Hereinafter, for convenience of explanation, the number of clipboard data received by the clipboard data receiving unit 117 is assumed to be “n” (0 ≦ n). If 0 <n, the i-th clipboard data among the n clipboard data is expressed as “clipboard data D i ” (1 ≦ i ≦ n).

例えば、ファイルFが図1のファイル1であり、サーバ110が分離モードで動作しており、要求Rが時刻T4におけるセーブ要求であるとする。この場合、開始時点Sは時刻T2であり、終了時点Eは時刻T4である。よって、ステップS430でクリップボードデータ受信部117は、クリップボードデータD1とD2を取得する。したがって、この場合はn=2である。   For example, it is assumed that the file F is the file 1 in FIG. 1, the server 110 is operating in the separation mode, and the request R is a save request at time T4. In this case, the start time S is time T2, and the end time E is time T4. Therefore, the clipboard data receiving unit 117 acquires the clipboard data D1 and D2 in step S430. Therefore, in this case, n = 2.

ステップS431で比較部119は、インデックス変数iを1に初期化する。
そして、次のステップS432で比較部119は、i≦nが成り立つか否かを判断する。i≦nが成り立つ場合、「クリップボードデータDが他のファイルからファイルFへとコピー・アンド・ペーストされた」という可能性について検討するため、リンク処理はステップS433に移行する。逆に、i≦nが成り立たない場合は、n=0であるか、または、既にn個のクリップボードデータすべてについて検討が終了している。よって、i≦nが成り立たない場合、サーバ側のリンク処理は終了する。
In step S431, the comparison unit 119 initializes the index variable i to 1.
In step S432, the comparison unit 119 determines whether i ≦ n holds. When i ≦ n holds, the link processing proceeds to step S433 in order to examine the possibility that “the clipboard data D i has been copied and pasted from another file to the file F”. On the other hand, if i ≦ n does not hold, n = 0, or all n clipboard data have already been examined. Therefore, if i ≦ n does not hold, the server-side link processing ends.

ステップS433では、クリップボードデータDと、クリップボードデータDに関連づけられた時刻(以下「書き込み時刻T」と表記する)に関して、図14〜15に示す比較処理が実行される。 In step S433, the clipboard data D i, with respect to the time associated with the clipboard data D i (hereinafter referred to as "write time T i"), the comparison processing shown in FIG. 14 to 15 is executed.

書き込み時刻Tは、クリップボードデータDがクリップボード135に書き込まれた時刻である。図10の説明から理解されるとおり、書き込み時刻Tは、クリップボードデータDと関連づけられて、クリップボードデータDとともに、クライアント130からクリップボードデータ受信部117へと通知される。そして、書き込み時刻Tは、上記のとおりステップS430で、クリップボードデータDとともに、クリップボードデータ受信部117から比較部119へと通知される。 The writing time T i is the time when the clipboard data D i is written to the clipboard 135. As will be understood from the description of FIG. 10, the writing time T i is associated with the clipboard data D i, together with the clipboard data D i, is notified from the client 130 to the clipboard data receiving unit 117. The writing time T i is notified from the clipboard data receiving unit 117 to the comparing unit 119 together with the clipboard data D i in step S430 as described above.

その後、ステップS434で比較部119は、インデックス変数iを1だけインクリメントする。そして、リンク処理はステップS432に戻る。   Thereafter, in step S434, the comparison unit 119 increments the index variable i by 1. Then, the link process returns to step S432.

さて、図14〜15は、サーバ110側の比較処理のフローチャートである。比較処理は、上記の図13のステップS433に対応する。なお、以下では説明の便宜上、ステップS427でファイルFから抽出されたテキスト情報を「テキスト情報X」と表記する。   14 to 15 are flowcharts of the comparison process on the server 110 side. The comparison process corresponds to step S433 in FIG. Hereinafter, for convenience of description, the text information extracted from the file F in step S427 is referred to as “text information X”.

また、図1に関して説明したように、ファイル同士を関連づけるための条件として、条件(3a)と(3b)が使われてもよいし、条件(4a)と(4b)が使われてもよいし、または、条件(5a)と(5b)が使われてもよい。以下に述べるステップS501〜S503とS511に関する説明から明らかなように、第1実施形態では、具体的には条件(4a)と(4b)が使われる。   As described with reference to FIG. 1, the conditions (3a) and (3b) may be used as the conditions for associating the files, and the conditions (4a) and (4b) may be used. Alternatively, conditions (5a) and (5b) may be used. As is clear from the description regarding steps S501 to S503 and S511 described below, specifically, the conditions (4a) and (4b) are used in the first embodiment.

さて、ステップS501で比較部119は、クリップボードデータDの文字列長(以下「L」と表記する)と、所定の閾値(以下「L」と表記する)を比較する。L<Lのとき、比較処理はステップS502に移行する。逆に、L≧Lのとき、比較処理はステップS503に移行する。 In step S501, the comparison unit 119 compares the character string length (hereinafter referred to as “L i ”) of the clipboard data D i with a predetermined threshold (hereinafter referred to as “L”). When L i <L, the comparison process proceeds to step S502. Conversely, when L i ≧ L, the comparison process proceeds to step S503.

ステップS502で比較部119は、クリップボードデータDを検索ターム(search term)として用いて、ファイルFから得られたテキスト情報Xに対して、完全一致検索を行う。そして、比較処理はステップS504に移行する。 Comparing unit 119 in step S502, using the clipboard data D i as a search term (search term), for text information X obtained from the file F, a complete match search. Then, the comparison process proceeds to step S504.

他方、ステップS503で比較部119は、クリップボードデータDを検索タームとして用いて、ファイルFから得られたテキスト情報Xに対して、曖昧検索を行う。ステップS503では、曖昧検索のための適宜の手法が使われてよい。例えば、比較部119は、クリップボードデータDと部分一致する文字列をテキスト情報Xの中から探してもよい。そして、比較処理はステップS504に移行する。 On the other hand, the comparison unit 119 at step S503, using the clipboard data D i as a search term, for the text information X obtained from the file F, performs fuzzy search. In step S503, an appropriate technique for fuzzy search may be used. For example, comparison unit 119 may search a character string that matches the clipboard data D i and portions from the text information X. Then, the comparison process proceeds to step S504.

なお、以上のようにL<Lのときに比較部119が完全一致検索を行う理由は、ユーザが短い文字列をコピー・アンド・ペーストする場合、「ユーザは、ペーストした文字列そのものを再利用するために、コピー・アンド・ペースト操作を行う」と推定されるからである。また、L≧Lのときに比較部119が曖昧検索を行う理由は、ユーザが長い文字列をコピー・アンド・ペーストする場合、「ユーザは、ペーストした文字列を少し編集して再利用したいので、コピー・アンド・ペースト操作を行う」という可能性を無視しきれないためである。したがって、閾値Lは、以上のような理由を勘案して適宜に定められることが好ましい。 Note that the reason why the comparison unit 119 performs an exact match search when L i <L as described above is that when the user copies and pastes a short character string, “the user re-creates the pasted character string itself. This is because it is estimated that a copy and paste operation is performed for use. The reason why the comparison unit 119 performs the fuzzy search when L i ≧ L is that when the user copies and pastes a long character string, “the user wants to edit the pasted character string a little and reuse it. This is because the possibility of “copy and paste operation” cannot be ignored. Therefore, it is preferable that the threshold L is appropriately determined in consideration of the above reasons.

ステップS504で比較部119は、「ステップS502またはS503の検索の結果として、検索ターム(すなわちクリップボードデータD)にマッチする文字列が見つかったか否か」を判断する。 In step S504, the comparison unit 119 determines whether “a character string matching the search term (ie, clipboard data D i ) has been found as a result of the search in step S502 or S503”.

もし、クリップボードデータDにマッチする文字列がテキスト情報X中に見つかった場合は、他のファイル中のデータが、クリップボード135を介して、ファイルFにおいて再利用された可能性がある。そこで、クリップボードデータDにマッチする文字列が見つかった場合は、この可能性について調査するために、比較処理はステップS505へと移行する。 If, when the character string that matches the clipboard data D i is found in the text information X, the data in other files, via the clipboard 135, may have been reused in the file F. Therefore, if we find a string that matches the clipboard data D i, in order to investigate this possibility, the comparison process proceeds to step S505.

逆に、クリップボードデータDにマッチする文字列がテキスト情報X中に見つからなかった場合は、上記のような可能性について検討する必要はない。よって、クリップボードデータDと書き込み時刻Tについての比較処理は終了する。 On the other hand, if the string that matches the clipboard data D i is not found in the text information X, there is no need to consider the possibility, as described above. Therefore, the comparison process for the clipboard data D i and the writing time T i ends.

さて、ステップS505で比較部119は、書き込み時刻Tを抽出部118に通知する。この通知は、「ユーザ名Uを持つユーザによりクライアント130上で書き込み時刻Tに開かれていた各ファイル(ただしファイルF以外)から、テキスト情報を抽出するよう、比較部119が抽出部118に要求する」ことを意味する。 Now, comparing unit 119 in step S505 notifies the extraction unit 118 writes the time T i. This notification is made by the comparison unit 119 to the extraction unit 118 so that text information is extracted from each file (except for the file F) opened on the client 130 at the writing time T i by the user having the user name U. Means "request".

そして、ステップS506で抽出部118は、書き込み時刻Tをログ管理部115に通知する。この通知は、「ユーザ名Uを持つユーザによりクライアント130上で書き込み時刻Tに開かれていたファイル(ただしファイルF以外)を知らせるよう、抽出部118がログ管理部115に要求する」ことを意味する。 Then, the extraction unit 118 in step S506 notifies the write time T i to the log management unit 115. This notification is “the extraction unit 118 requests the log management unit 115 to notify the file (except the file F) opened by the user having the user name U on the client 130 at the writing time T i ”. means.

すると、ステップS507でログ管理部115は、ユーザ名Uを持つユーザによりクライアント130上で書き込み時刻Tに開かれていたファイルを特定する。以下では説明の便宜上、ユーザ名Uを持つユーザによりクライアント130上で書き込み時刻Tに開かれていた、ファイルF以外のファイルの個数を「m」とする(0≦m)。また、0<mの場合、特定されたj番目のファイルを「ファイルG」と表記し、ファイルGを識別する識別情報としてのフルパスを「フルパスQ」と表記する(1≦j≦m)。 In step S507, the log management unit 115 identifies a file opened at the writing time T i on the client 130 by the user having the user name U. Hereinafter, for convenience of explanation, the number of files other than the file F opened by the user having the user name U on the client 130 at the writing time T i is assumed to be “m” (0 ≦ m). When 0 <m, the identified j-th file is represented as “file G j ”, and the full path as identification information for identifying the file G j is represented as “full path Q j ” (1 ≦ j ≦ m).

具体的には、ログ管理部115は、ログ記憶部114上のログ301において、以下の条件(25a)〜(25c)をすべて満たすエントリを検索する。   Specifically, the log management unit 115 searches the log 301 on the log storage unit 114 for entries that satisfy all of the following conditions (25a) to (25c).

(25a)ユーザ名Uを含む。
(25b)オープン時刻が書き込み時刻Tより前である。
(25c)クローズ時刻がNULLであるか、または、書き込み時刻Tより後である。
(25a) The user name U is included.
(25b) open time is earlier than the writing time T i.
Or (25c) closing time is NULL, or is later than the writing time T i.

検索の結果見つかるエントリの個数が、上記の「m」である。そして、見つかったj番目のエントリに記録されているフルパスが、上記のフルパスQである。また、フルパスQにより識別されるファイルが、上記のファイルGである。各ファイルGは、クリップボードデータDのコピー元の可能性がある。 The number of entries found as a result of the search is the above “m”. The full path recorded in the found j-th entry is the full path Q j described above. The file identified by the full path Q j is the file G j described above. Each file G j may be a copy source of the clipboard data D i .

以上のようにして、ログ管理部115は、ユーザ名Uを持つユーザによりクライアント130上で書き込み時刻Tに開かれていたファイルG〜Gを特定する。そして、ログ管理部115は、特定したファイルG〜GそれぞれのフルパスQ〜Qを抽出部118に通知する。 As described above, the log management unit 115 identifies the files G 1 to G m opened at the writing time T i on the client 130 by the user having the user name U. Then, the log management unit 115 notifies the extraction unit 118 of the full paths Q 1 to Q m of the identified files G 1 to G m, respectively.

すると、ステップS508で抽出部118は、ファイルG〜Gの各々について、ファイル記憶部111を参照してテキスト情報を抽出する。つまり、1≦j≦mなる各jについて、比較部119は、通知されたフルパスQで識別される場所(具体的にはファイル記憶部111内の場所)に格納されているファイルGから、図13のステップS427と同様の方法により、テキスト情報を抽出する。以下では、ファイルGから抽出されたテキスト情報を、「テキスト情報Y」と表記する。 Then, in step S508, the extraction unit 118 refers to the file storage unit 111 and extracts text information for each of the files G 1 to G m . That is, for each j satisfying 1 ≦ j ≦ m, the comparison unit 119 starts from the file G j stored in the location identified by the notified full path Q j (specifically, the location in the file storage unit 111). The text information is extracted by the same method as in step S427 in FIG. Hereinafter, the text information extracted from the file G j is referred to as “text information Y j ”.

そして、抽出部118は、抽出したテキスト情報Y〜Yを比較部119に出力する。なお、m=0の場合は、抽出部118は、単に、「m=0である(すなわち、ユーザ名Uを持つユーザにより、クライアント130上で書き込み時刻Tに開かれていたファイルF以外のファイルは、存在しない)」ということを比較部119に通知する。 Then, the extraction unit 118 outputs the extracted text information Y 1 to Y m to the comparison unit 119. When m = 0, the extraction unit 118 simply “m = 0” (that is, a file other than the file F opened on the client 130 at the write time T i by the user having the user name U). The file does not exist) ”to the comparison unit 119.

例えば、クリップボードデータDが図1のクリップボードデータD3である場合、書き込み時刻Tは図1の時刻T5である。そして、時刻T5に開かれているファイル1以外のファイルは、ファイル3と4のみである。よって、この場合、m=2である。 For example, when the clipboard data D i is the clipboard data D3 in FIG. 1, the writing time T i is the time T5 in FIG. The files other than the file 1 opened at time T5 are only the files 3 and 4. Therefore, in this case, m = 2.

この場合、クリップボードデータD3がファイル3または4からコピーされた可能性がある。よって、当該可能性について検討するために、ステップS508では、抽出部118がファイル3と4からテキスト情報を抽出し、抽出したテキスト情報を比較部119に出力する。   In this case, clipboard data D3 may have been copied from file 3 or 4. Therefore, in order to examine the possibility, in step S508, the extraction unit 118 extracts text information from the files 3 and 4, and outputs the extracted text information to the comparison unit 119.

続いて、ステップS509で比較部119は、インデックス変数jを1に初期化する。
そして、次のステップS510で比較部119は、j≦mが成り立つか否かを判断する。j≦mが成り立つ場合、「クリップボードデータDがファイルGからファイルFへとコピー・アンド・ペーストされた」という可能性について検討するため、比較処理はステップS511に移行する。逆に、j≦mが成り立たない場合は、m=0であるか、または、既にm個のファイルG〜Gすべてについて検討が終了している。よって、j≦mが成り立たない場合、比較処理は終了する。
In step S509, the comparison unit 119 initializes the index variable j to 1.
Then, in the next step S510, the comparison unit 119 determines whether or not j ≦ m holds. If j ≦ m holds, the comparison process proceeds to step S511 in order to examine the possibility that “the clipboard data D i has been copied and pasted from the file G j to the file F”. Conversely, if j ≦ m does not hold, m = 0, or all m files G 1 to G m have already been studied. Therefore, if j ≦ m does not hold, the comparison process ends.

ステップS511で比較部119は、クリップボードデータDを検索タームとして用いて、ファイルGから得られたテキスト情報Yに対して、完全一致検索を行う。 In step S511, the comparison unit 119 performs a complete match search on the text information Y j obtained from the file G j using the clipboard data D i as a search term.

次のステップS512で比較部119は、検索ターム(すなわちクリップボードデータD)がテキスト情報Yの中に見つかったか否かを判断する。 In the next step S512, the comparison unit 119 determines whether or not a search term (ie, clipboard data D i ) has been found in the text information Y j .

検索タームがテキスト情報Yの中に見つかった場合は、「ファイルG中のデータ(つまりクリップボードデータD)がファイルFにおいて再利用された」と推定される。よって、検索ファイルFとファイルGとを関連づけるために、比較処理はステップS513へと移行する。 When the search term is found in the text information Y j , it is estimated that “the data in the file G j (that is, the clipboard data D i ) has been reused in the file F”. Therefore, in order to associate the search file F and file G j, comparing the process proceeds to step S513.

逆に、検索タームがテキスト情報Yの中に見つからなかった場合は、「検索ファイルFとファイルGの間には、データの再利用による関連性はない」と推定される。よって、比較処理はステップS515へと移行する。 On the other hand, if the search term is not found in the text information Y j , it is estimated that “there is no relationship between the search file F and the file G j due to data reuse”. Therefore, the comparison process proceeds to step S515.

ステップS513で比較部119は、ファイルFのフルパスPと、ファイルGのフルパスQと、クリップボードデータDを、リンク生成部120に通知する。なお、抽出部118は、ファイルから抽出したテキスト情報を比較部119に出力するときに、ファイルのフルパスもともに比較部119に通知する。よって、比較部119は、フルパスPとフルパスQを認識している。 In step S513, the comparison unit 119 notifies the link generation unit 120 of the full path P of the file F, the full path Q j of the file G j , and the clipboard data D i . Note that when the extraction unit 118 outputs the text information extracted from the file to the comparison unit 119, the extraction unit 118 also notifies the comparison unit 119 of the full path of the file. Thus, comparing unit 119 recognizes the full path P and the full path Q j.

そして、ステップS514でリンク生成部120は、リンク記憶部121上のリンクテーブル303に、新規エントリを追加する。新規エントリは、具体的には、ファイルFのフルパスPと、ファイルGのフルパスQと、クリップボードデータDを対応づけるエントリである。この新規エントリの追加により、ファイルFとファイルGが関連づけられる。つまり、追加される新規エントリは、図1に関して説明した関連づけ情報の具体例である。 In step S 514, the link generation unit 120 adds a new entry to the link table 303 on the link storage unit 121. Specifically, the new entry is an entry that associates the full path P of the file F, the full path Q j of the file G j , and the clipboard data D i . By adding this new entry, the file F and the file Gj are associated with each other. That is, the new entry to be added is a specific example of the association information described with reference to FIG.

なお、実施形態によっては、曖昧検索の結果として「クリップボードデータDと類似である」と見なされたデータを記憶するためのフィールドが、さらにリンクテーブル303にあってもよい。 Note that in some embodiments, a field for storing was considered to be "similar to the clipboard data D i" as a result of fuzzy search data, may be further linked table 303.

続いて、ステップS515で比較部119は、インデックス変数jを1だけインクリメントする。そして、比較処理はステップS510に戻る。   Subsequently, in step S515, the comparison unit 119 increments the index variable j by 1. Then, the comparison process returns to step S510.

以上説明した第1実施形態によれば、「実際にクリップボード135を介してファイル間でデータの再利用が行われた」という蓋然性が高い場合に、ファイル同士が関連づけられる。よって、関連づけ情報(具体的にはリンク記憶部121に記憶されるリンクテーブル303)の信頼性が高い。   According to the first embodiment described above, files are associated with each other when there is a high probability that “data is actually reused between files via the clipboard 135”. Therefore, the reliability of the association information (specifically, the link table 303 stored in the link storage unit 121) is high.

また、第1実施形態によれば、異なるアプリケーション間のファイル同士でも関連づけが可能である。より詳しくは、ユーザに対して特定のアプリケーションの使用を義務づけたり、他のアプリケーションの使用を禁じたりしなくても、データの再利用に基づくファイル同士の関連性の検出が可能である。つまり、ユーザの利便性を犠牲にしなくても、第1実施形態によれば、信頼性の高い関連づけ情報が得られる。   Further, according to the first embodiment, it is possible to associate files between different applications. More specifically, it is possible to detect the relationship between files based on the reuse of data without requiring the user to use a specific application or prohibiting the use of another application. In other words, according to the first embodiment, highly reliable association information can be obtained without sacrificing user convenience.

また、異なるアプリケーション間のファイル同士の関連づけが可能であることは、検出漏れが少ないことを意味する。したがって、図4のステップS6〜S8に示すような関連ファイルの検索では、高い再現率(recall)が得られる。   In addition, being able to associate files between different applications means that there are few detection omissions. Therefore, in the related file search as shown in steps S6 to S8 in FIG. 4, a high recall is obtained.

続いて、スタンドアロンシステムが使われる第2実施形態について説明する。図16は、第2実施形態のシステム構成図である。   Next, a second embodiment in which a stand-alone system is used will be described. FIG. 16 is a system configuration diagram of the second embodiment.

図16のコンピュータ400は、図2のファイル記憶部111と類似のファイル記憶部401を有する。ファイル記憶部401には、コンピュータ400が管理する複数のファイルが記憶される。   A computer 400 in FIG. 16 includes a file storage unit 401 similar to the file storage unit 111 in FIG. The file storage unit 401 stores a plurality of files managed by the computer 400.

また、図16には、コンピュータ400上で2つのアプリケーション402と403が動作する場合が例示されているが、コンピュータ400上で動作するアプリケーションの数は任意である。   FIG. 16 illustrates the case where two applications 402 and 403 operate on the computer 400, but the number of applications that operate on the computer 400 is arbitrary.

コンピュータ400はさらに、図2のクリップボード135と類似のクリップボード404を有する。クリップボード404は、アプリケーション402または403により書き換えられることがある。   The computer 400 further has a clipboard 404 similar to the clipboard 135 of FIG. The clipboard 404 may be rewritten by the application 402 or 403.

コンピュータ400は、図2のログ記憶部114およびログ管理部115と類似の、ログ記憶部405およびログ管理部406も有する。なお、図5に示す第1実施形態のログの各エントリはユーザ名を含むが、図16のログ記憶部405が記憶するログでは、ユーザ名は省略可能である。   The computer 400 also includes a log storage unit 405 and a log management unit 406 similar to the log storage unit 114 and the log management unit 115 of FIG. In addition, although each entry of the log of 1st Embodiment shown in FIG. 5 contains a user name, a user name is omissible in the log which the log memory | storage part 405 of FIG. 16 memorize | stores.

コンピュータ400は、図2の監視部136およびクリップボードデータ記憶部138と類似の、監視部407およびクリップボードデータ記憶部408も有する。   The computer 400 also includes a monitoring unit 407 and a clipboard data storage unit 408 similar to the monitoring unit 136 and the clipboard data storage unit 138 of FIG.

また、図2ではサーバ110とクライアント130がそれぞれ時計を有するのと同様に、図16では、コンピュータ400が時計409を有する。時計409は、ログ管理部406と監視部407のどちらからも参照可能である。   Further, in FIG. 2, the computer 400 has a clock 409 in the same manner as the server 110 and the client 130 each have a clock in FIG. 16. The clock 409 can be referred to from either the log management unit 406 or the monitoring unit 407.

コンピュータ400はさらに、図2のサーバ110の抽出部118と類似の第1抽出部410を有し、クライアント130の抽出部139と類似の第2抽出部411を有する。また、コンピュータ400は、図2の比較部119、リンク生成部120、およびリンク記憶部121と類似の、比較部412、リンク生成部413、およびリンク記憶部414を有する。   The computer 400 further includes a first extraction unit 410 similar to the extraction unit 118 of the server 110 in FIG. 2 and a second extraction unit 411 similar to the extraction unit 139 of the client 130. The computer 400 includes a comparison unit 412, a link generation unit 413, and a link storage unit 414 similar to the comparison unit 119, the link generation unit 120, and the link storage unit 121 in FIG.

以上のようなコンピュータ400によれば、例えば、クリップボードデータと時刻情報を取得する取得手段が、第2抽出部411により実現されてもよい。また、時刻情報の示す時刻に開かれていたファイルを特定する特定手段は、ログ管理部406により実現されてもよい。そして、ファイル同士の関連づけを行う関連づけ手段が、第1抽出部410と比較部412とリンク生成部413により実現されてもよい。   According to the computer 400 as described above, for example, an acquisition unit that acquires clipboard data and time information may be realized by the second extraction unit 411. The log management unit 406 may be configured to specify a file opened at the time indicated by the time information. Then, an association unit for associating files may be realized by the first extraction unit 410, the comparison unit 412, and the link generation unit 413.

ところで、第1実施形態では、アプリケーション133と134からのファイル操作は、いずれも、ファイル送受信部132、通信制御部131、ネットワーク150、通信制御部112、およびファイル送受信部113を介して行われる。他方、第2実施形態では、アプリケーション402と403からのファイル操作は、いずれも、ネットワーク通信をともなわない。アプリケーション402と403は、いずれも、例えば適宜のAPI関数(具体的には、OSが提供するファイルシステムに関するAPI関数)の呼び出しにより、下記のファイル操作(26a)〜(26f)を行うことができる。   Incidentally, in the first embodiment, file operations from the applications 133 and 134 are all performed via the file transmission / reception unit 132, the communication control unit 131, the network 150, the communication control unit 112, and the file transmission / reception unit 113. On the other hand, in the second embodiment, file operations from the applications 402 and 403 are not accompanied by network communication. Both the applications 402 and 403 can perform the following file operations (26a) to (26f) by calling an appropriate API function (specifically, an API function related to a file system provided by the OS), for example. .

(26a)ファイル記憶部401内の既存のファイルを開く操作。
(26b)アプリケーション上で現在開いている既存のファイルを、開いたまま、ファイル記憶部401に保存しなおす操作。
(26c)アプリケーションが新規作成したファイルを、新たにファイル記憶部401に保存する操作。
(26d)ファイル記憶部401内に保存されており現在開いているファイルを閉じる操作。
(26e)アプリケーション上で現在開いている既存のファイルを、ファイル記憶部401に保存しなおして閉じる操作。
(26f)アプリケーション上で新規作成されたものの、まだファイル記憶部401には保存されていないファイルを、新たにファイル記憶部401に保存するとともに閉じる操作。
(26a) An operation of opening an existing file in the file storage unit 401.
(26b) An operation to re-save an existing file currently open on the application in the file storage unit 401 while being opened.
(26c) An operation of newly saving a file newly created by the application in the file storage unit 401.
(26d) An operation of closing the currently open file stored in the file storage unit 401.
(26e) An operation of re-saving and closing an existing file currently opened on the application in the file storage unit 401.
(26f) An operation of newly saving a file newly created on the application but not yet saved in the file storage unit 401 to the file storage unit 401 and closing it.

例えば、ファイル操作(26a)は、オープン要求に相当するAPI関数の呼び出しにより実現されてもよい。同様に、ファイル操作(26b)と(26c)は、いずれも、セーブ要求に相当するAPI関数の呼び出しにより実現されてもよい。   For example, the file operation (26a) may be realized by calling an API function corresponding to an open request. Similarly, both the file operations (26b) and (26c) may be realized by calling an API function corresponding to a save request.

また、ファイル操作(26d)は、クローズ要求に相当するAPI関数の呼び出しにより実現されてもよい。そして、ファイル操作(26e)と(26f)は、いずれも、セーブ・クローズ要求に相当するAPI関数の呼び出しにより実現されてもよい。   Further, the file operation (26d) may be realized by calling an API function corresponding to a close request. The file operations (26e) and (26f) may be realized by calling an API function corresponding to a save / close request.

したがって、第2実施形態のログ管理部406は、アプリケーション402と403それぞれからの、上記のようなAPI関数の呼び出しを監視する。例えば、ログ管理部406は、API関数の呼び出しをフックしてもよい。ログ管理部406は、API関数の呼び出しを検出すると、検出したAPI関数の種類に応じた適宜の処理(例えば、図8のステップS113、図11のステップS404、ステップS409〜S426などの処理)を実行する。   Therefore, the log management unit 406 according to the second embodiment monitors the API function calls as described above from the applications 402 and 403, respectively. For example, the log management unit 406 may hook an API function call. When the log management unit 406 detects a call to the API function, the log management unit 406 performs appropriate processing according to the type of the detected API function (for example, steps S113 in FIG. 8, steps S404 in FIG. 11, steps S409 to S426, etc.). Run.

また、第2実施形態では、ログ管理部406が第2抽出部411に開始時点Sと終了時点Eを直接指定し、第2抽出部411がクリップボードデータおよび書き込み時刻を比較部412に直接通知する。したがって、第1実施形態におけるネットワーク通信(具体的には、クリップボードデータ受信部117と通信制御部112とネットワーク150と通信制御部131とクリップボードデータ送信部140を介した通信)は、第2実施形態では不要である。   In the second embodiment, the log management unit 406 directly designates the start time S and the end time E to the second extraction unit 411, and the second extraction unit 411 directly notifies the comparison unit 412 of the clipboard data and the writing time. . Therefore, the network communication in the first embodiment (specifically, the communication via the clipboard data receiving unit 117, the communication control unit 112, the network 150, the communication control unit 131, and the clipboard data transmission unit 140) is the second embodiment. Then it is unnecessary.

以上のように、第2実施形態では、ネットワーク通信が不要であり、ユーザ名ごとの管理も不要である。しかし、その他の点は、第1実施形態と類似である。よって、コンピュータ400内の各構成要素の動作のさらなる詳細については、説明を省略する。   As described above, in the second embodiment, network communication is unnecessary and management for each user name is also unnecessary. However, other points are similar to the first embodiment. Therefore, description of further details of the operation of each component in the computer 400 is omitted.

ところで、図16のコンピュータ400は、例えば図3のコンピュータ200であってもよい。この場合、コンピュータ400内の各構成要素は、例えば以下のハードウェアにより実現されてもよい。   Incidentally, the computer 400 of FIG. 16 may be, for example, the computer 200 of FIG. In this case, each component in the computer 400 may be realized by the following hardware, for example.

ファイル記憶部401は、記憶装置207であってもよい。アプリケーション402と403は、CPU201により実行されるプログラムの例である。クリップボード404は、RAM203により実現されてもよい。   The file storage unit 401 may be the storage device 207. Applications 402 and 403 are examples of programs executed by the CPU 201. The clipboard 404 may be realized by the RAM 203.

ログ記憶部405は、RAM203、記憶装置207、またはその双方により実現されてもよい。ログ管理部406と監視部407は、いずれも、プログラムを実行するCPU201により実現されてもよい。   The log storage unit 405 may be realized by the RAM 203, the storage device 207, or both. Both the log management unit 406 and the monitoring unit 407 may be realized by the CPU 201 that executes a program.

クリップボードデータ記憶部408は、RAM203により実現されてもよい。時計409は、CPU201内のハードウェアタイマにより実現されてもよい。   The clipboard data storage unit 408 may be realized by the RAM 203. The clock 409 may be realized by a hardware timer in the CPU 201.

第1抽出部410、第2抽出部411、比較部412、およびリンク生成部413の各々は、プログラムを実行するCPU201により実現されてもよい。リンク記憶部414は、記憶装置207により実現されてもよい。   Each of the first extraction unit 410, the second extraction unit 411, the comparison unit 412, and the link generation unit 413 may be realized by the CPU 201 that executes a program. The link storage unit 414 may be realized by the storage device 207.

ところで、上述の第1および第2実施形態には、他の技術と比べて、いくつかの利点がある。以下ではそれらの利点について説明する。   By the way, the first and second embodiments described above have several advantages over other technologies. These advantages will be described below.

例えば、ユーザは、ある特定のファイルに関連する他のファイルを知りたいことがある。この場合、ユーザは、特定のファイルに含まれる文字列を検索タームとして指定して全文検索を実行することにより、特定のファイルに関連する他のファイルを探してもよい。   For example, a user may want to know other files associated with a particular file. In this case, the user may search for another file related to the specific file by executing a full text search by specifying a character string included in the specific file as a search term.

しかし、検索タームの選択にもよるが、全文検索では、実際には無関係なファイルが大量に見つかることもあり得る。逆に、実際には関係のあるファイルがうまく見つからないこともあり得る。つまり、全文検索による関連ファイルの検出には限界がある。   However, depending on the selection of search terms, a full-text search may find a large number of files that are actually irrelevant. On the other hand, it is possible that the relevant files are actually not found well. In other words, there is a limit to the detection of related files by full text search.

また、比較例の1つとして、ファイル中のテキスト情報に対して形態素解析を行い、形態素解析の結果に基づいてファイル同士を関連づける技術も考えられる。例えば、形態素を出現順または頻度順に並べた特徴ベクトルを用いて、類似度を算出する方法が、比較例の1つとして考えられる。また、ある種の指標(例えば、tf(term frequency)とidf(inverse document frequency))を用いて、ファイル同士の類似度を算出する方法も、比較例の1つとして考えられる。   Further, as one of comparative examples, a technique of performing morphological analysis on text information in a file and associating files based on the result of morphological analysis can be considered. For example, a method of calculating similarity using feature vectors in which morphemes are arranged in order of appearance or frequency is considered as one of comparative examples. A method of calculating the similarity between files using a certain index (for example, tf (term frequency) and idf (inverse document frequency)) is also considered as one of comparative examples.

しかしながら、大量のファイルが存在する場合は、単に形態素の出現頻度のみに注目するだけでは、ある特定のファイルに関連する他のファイルを精度よく検出することは難しい。実際には関連性の薄いファイルが検出されてしまうことも多い。また、大量のファイルが存在する場合に、各ファイルについて形態素解析を行うことは、処理負荷が大きい。   However, when there are a large number of files, it is difficult to accurately detect other files related to a specific file only by paying attention only to the appearance frequency of morphemes. In fact, often unrelated files are detected. Further, when a large number of files exist, performing a morphological analysis on each file has a large processing load.

したがって、ファイルの内容自体だけに基づいてファイル間の関連性を精度よく検出することには、困難がともなう。そこで、ユーザの振る舞いに基づいてファイル間の関連性の検出の精度を高める手法が考えられる。   Therefore, it is difficult to accurately detect the relationship between files based only on the contents of the files themselves. Therefore, a method for improving the accuracy of detecting the relationship between files based on the user's behavior can be considered.

例えば、ユーザがある特定のアプリケーションを使用することを前提に、当該特定のアプリケーションの文書間でのみ関連性を検出する手法が、比較例の1つとして考えられる。しかし、そのような手法には、「汎用性に欠ける」という欠点がある。   For example, on the assumption that the user uses a specific application, a method of detecting the relevance only between documents of the specific application is considered as one of comparative examples. However, such a method has a drawback of “lack of versatility”.

例えば、ユーザがある特定のアプリケーション(具体的にはクライアントアプリケーションまたはWebアプリケーション)を使用する場合がある。この場合、当該特定のアプリケーション上でのユーザの振る舞いを当該特定のアプリケーションが検出することで、当該特定のアプリケーションが管理する文書間での関連性が検出され得る。   For example, a user may use a specific application (specifically, a client application or a Web application). In this case, when the specific application detects the behavior of the user on the specific application, the relevance between documents managed by the specific application can be detected.

例えば、当該特定のアプリケーション上でユーザが文書を閲覧する順番や、ユーザが当該特定のアプリケーション上で文書間のどのリンクをたどったかという履歴などが、検出されてもよい。また、ユーザは、当該特定のアプリケーションが提供する検索メニューから文書を検索し、見つかった文書から一部のデータをコピー・アンド・ペーストして、当該特定のアプリケーションの新規文書を作成する場合もあり得る。当該特定のアプリケーションは、このようなユーザの一連の振る舞いを検出してもよい。   For example, the order in which the user browses the document on the specific application, a history of which link between the documents the user has followed on the specific application, and the like may be detected. In addition, the user may search for a document from a search menu provided by the specific application, and copy and paste some data from the found document to create a new document for the specific application. obtain. The particular application may detect such a series of user behaviors.

しかしながら、多くのユーザは、しばしば、特定のアプリケーションのファイル同士に限らず、異なるアプリケーション間のファイル同士の間でも、データを再利用する。よって、特定のアプリケーションが、当該特定のアプリケーション上でのユーザの振る舞いを検出するだけでは、ファイル間の関連性を十分に検出しきれない。つまり、特定の1つのアプリケーションのファイル間でのデータの再利用に基づくファイル間の関連性だけを検出する方法では、ユーザの求める任意のファイル間での関連づけは実現できない。   However, many users often reuse data not only between files of a specific application but also between files of different applications. Therefore, the relationship between files cannot be detected sufficiently if the specific application only detects the behavior of the user on the specific application. That is, the method of detecting only the relevance between files based on the reuse of data between files of a specific application cannot realize the association between arbitrary files requested by the user.

また、「ユーザの扱うファイル間の関連性を検出することを目的として、ユーザに特定のアプリケーションのみを使用するよう強制する」ということも、非現実的である。   It is also unrealistic to “force the user to use only a specific application for the purpose of detecting the relationship between files handled by the user”.

多くのユーザは、既に様々なアプリケーションを利用して様々な形式のファイルを作成している。それら様々な形式の既存のファイルを閲覧および編集するための既存の環境を、新たな環境(すなわち特定のアプリケーションのみを使用する環境)に移行することは、ユーザに多大なる不便を強いることになり、非現実的である。   Many users have already created various types of files using various applications. Moving an existing environment for viewing and editing existing files in these various formats to a new environment (that is, an environment that uses only a specific application) will be very inconvenient for the user. Is unrealistic.

そこで、特定のアプリケーションに依存せずにファイル間の関連性を検出することが望ましい。   Therefore, it is desirable to detect the relationship between files without depending on a specific application.

例えば、2つのファイル間でのデータの再利用においては、多くの場合、両ファイルは、ある時点でともに開かれている。そこで、比較例の1つとして、単純に、ユーザがクライアント上で同時に開いているファイル同士を関連づける手法も考えられる。この手法では、異なるアプリケーションのファイル同士でも関連づけが可能である。   For example, in the reuse of data between two files, in many cases both files are open at some point in time. Therefore, as one of comparative examples, a method of simply associating files opened simultaneously on the client by the user can be considered. With this method, files of different applications can be associated with each other.

しかしながら、ユーザは、互いに無関係な複数のファイルを、たまたま同時に開いていることも多い。したがって、単に同時に開かれていたファイル同士を関連づける手法では、精度の良い適切な関連づけは期待しがたい。   However, the user often happens to simultaneously open a plurality of unrelated files. Therefore, it is difficult to expect an accurate and appropriate association by simply associating files opened simultaneously.

しかし、第1・第2実施形態には、上記に例示したような他の技術と比べて、いくつもの利点がある。   However, the first and second embodiments have a number of advantages over other techniques as exemplified above.

例えば、第1・第2実施形態によれば、2つのファイルがたまたま同じ形態素を含むだけでは、2つのファイルは関連づけられない。第1・第2実施形態によれば、2つのファイル間で実際にコピー・アンド・ペーストによるデータの再利用が行われた蓋然性が高い場合に、2つのファイルが関連づけられる。   For example, according to the first and second embodiments, two files are not related if they just happen to contain the same morpheme. According to the first and second embodiments, two files are associated with each other when there is a high probability that data is actually reused by copying and pasting between the two files.

よって、第1・第2実施形態で検出されて記録される関連性の精度は、比較的高い。また、大量のファイルが存在する場合にも、大量のファイルに対して形態素解析を実行するよりも遥かに低い負荷で、ファイル間の関連性を検出してリンクテーブル303をリンク記憶部121に記憶することが可能である。   Therefore, the relevance accuracy detected and recorded in the first and second embodiments is relatively high. Even when a large number of files exist, the link table 303 is stored in the link storage unit 121 by detecting the relationship between the files with a much lower load than when performing morphological analysis on a large number of files. Is possible.

しかも、第1・第2実施形態によれば、ユーザは不便を強いられることもない。また、第1・第2実施形態のシステムは汎用性も高い。つまり、第1・第2実施形態では、OSにより提供されるクリップボードを介したデータの再利用が監視されるので、ユーザが利用可能なアプリケーションは、特定の1つのアプリケーションに限定されない。よって、ユーザは、慣れ親しんだ環境を使い続けることができる。   Moreover, according to the first and second embodiments, the user is not inconvenienced. The systems of the first and second embodiments are also highly versatile. In other words, in the first and second embodiments, the reuse of data via the clipboard provided by the OS is monitored, so the application that can be used by the user is not limited to one specific application. Therefore, the user can continue to use the familiar environment.

また、第1・第2実施形態によれば、たまたま同時に開かれていただけのファイル同士が関連づけられる可能性は、無視しても差し支えない。換言すれば、ファイルが開かれている時間帯だけでなく、ファイル中のテキスト情報とクリップボードデータの同一性(または類似性)が考慮されたうえでファイル同士が関連づけられるので、関連づけの信頼性は高い。   In addition, according to the first and second embodiments, the possibility that files that have been opened at the same time may be associated with each other can be ignored. In other words, not only the time period when the file is opened, but also the files are associated with each other after taking into account the identity (or similarity) between the text information in the file and the clipboard data. high.

なお、最近のある種のOSは、セキュリティ向上のため、「現在どのファイルが開かれているか」を第三者のアプリケーションから検知するためのAPIを提供しないことがある。なお、ここで、「第三者のアプリケーション」とは、当該ファイルを開いているアプリケーションとは別のアプリケーションのことである。つまり、クライアント130のOSによっては、「アプリケーション133または134によりどのファイルが開かれているか」ということをクライアント130上の第三者のアプリケーションが検出するためのAPIは、提供されないことがある。   Some recent OSs may not provide an API for detecting “which file is currently open” from a third-party application in order to improve security. Here, the “third party application” is an application different from the application that opens the file. That is, depending on the OS of the client 130, an API for detecting a file that is opened by the application 133 or 134 by a third party application on the client 130 may not be provided.

しかし、第1実施形態によれば、ファイル操作要求に応じてファイルを操作するファイル送受信部113からの通知を利用することで、ログ管理部115によりログ301が作成される。したがって、第1実施形態によれば、上記のごときOSがクライアント130で使われている場合にも、ファイル同士の関連づけが可能である。   However, according to the first embodiment, the log 301 is created by the log management unit 115 by using the notification from the file transmission / reception unit 113 that operates the file in response to the file operation request. Therefore, according to the first embodiment, even when the OS as described above is used in the client 130, the files can be associated with each other.

また、第1実施形態のシステム100はクライアントサーバシステムなので、ユーザが複数でもよい。よって、第1実施形態によれば、異なるユーザがそれぞれ作成したファイル間の関連性を検出し、記憶することも可能である。   Moreover, since the system 100 of the first embodiment is a client-server system, there may be a plurality of users. Therefore, according to the first embodiment, it is possible to detect and store the relationship between files created by different users.

例えば、第1のユーザが作成したファイルへの読み出しアクセスが、第2のユーザにも許可されていてもよい。この場合、第2のユーザは、第1のユーザが作成したファイルから、第2のユーザ自身の作成したファイルへと、データをコピー・アンド・ペーストすることで、当該データを再利用してもよい。このようなデータの再利用によるファイル間の関連性も、図8〜15に示した処理によれば、サーバ110において検出され、その検出結果がリンクテーブル303に記憶される。   For example, read access to a file created by the first user may be permitted to the second user. In this case, the second user can reuse the data by copying and pasting the data from the file created by the first user to the file created by the second user. Good. The relevance between files due to such data reuse is also detected by the server 110 according to the processing shown in FIGS. 8 to 15, and the detection result is stored in the link table 303.

例えば、第2のユーザが上記のようにデータを再利用して編集したファイルについて、第3のユーザが関心を持つこともあり得る。この場合、第3のユーザは、第3のユーザのクライアント130から図4のステップS6の検索要求を出すことで、第3のユーザが関心を持っているファイル内のデータの出所(すなわち第1のユーザが作成した上記ファイル)を知ることができる。以上のように複数のユーザをまたいで情報源が判明する機能は、第1実施形態の利点の1つである。   For example, the third user may be interested in a file that has been edited by reusing data as described above by the second user. In this case, the third user issues a search request in step S6 of FIG. 4 from the client 130 of the third user, so that the source of the data in the file that the third user is interested in (that is, the first user). The above-mentioned file created by the user can be known. As described above, the function of identifying the information source across a plurality of users is one of the advantages of the first embodiment.

もちろん、第1実施形態によれば、ある1人のユーザが、自分自身で作成した複数のファイルの中から、あるファイルに関連する別のファイルを検索し、関連ファイルを見つけ出すことも可能である。   Of course, according to the first embodiment, a certain user can search for another file related to a certain file from a plurality of files created by himself / herself and find out the related file. .

ところで、本発明は上記実施形態に限られるものではない。上記の説明においてもいくつかの変形について説明したが、上記実施形態は、さらに例えば下記の観点から様々に変形することもできる。上記および下記の変形は、相互に矛盾しない限り、任意に組み合わせることが可能である。   By the way, the present invention is not limited to the above embodiment. Although some modifications have been described in the above description, the above embodiment can be further modified variously from the following viewpoints, for example. The above and following modifications can be arbitrarily combined as long as they do not contradict each other.

上記の説明では、クリップボードデータがテキストデータである場合について詳しく述べた。しかし、クリップボードデータは、テキストデータのこともあるし、画像データのこともあるし、ベクタオブジェクトデータのこともある。よって、実施形態によっては、サーバ110(またはコンピュータ400)は、テキストデータの再利用に基づいてファイル同士を関連づけるだけでなく、さらに、画像データまたはベクタオブジェクトデータの再利用に基づいてファイル同士を関連づけてもよい。   In the above description, the case where the clipboard data is text data has been described in detail. However, the clipboard data may be text data, image data, or vector object data. Therefore, in some embodiments, the server 110 (or the computer 400) not only associates files based on reuse of text data, but also associates files based on reuse of image data or vector object data. May be.

サーバ110が、さらに画像データまたはベクタオブジェクトデータの再利用にも基づいてファイル同士を関連づける実施形態においては、抽出部118は、ファイルから画像データまたはベクタオブジェクトデータも抽出する。同様に、コンピュータ400の第1抽出部410も、実施形態に応じて、ファイルから画像データまたはベクタオブジェクトデータを抽出してもよい。そして、比較部119(または比較部412)は、画像データ同士の比較を行ってもよいし、ベクタオブジェクトデータ同士の比較を行ってもよい。   In an embodiment in which the server 110 further associates files based on reuse of image data or vector object data, the extraction unit 118 also extracts image data or vector object data from the file. Similarly, the first extraction unit 410 of the computer 400 may extract image data or vector object data from a file according to the embodiment. Then, the comparison unit 119 (or the comparison unit 412) may compare image data or may compare vector object data.

比較部119(または比較部412)は、例えば、ビットマップ画像データ同士を、個々の画素値を比較することにより、比較してもよい。もちろん、比較部119(または比較部412)は、画像検索分野で利用される画像同士の類似検索のための適宜の技術を用いて、画像データ同士を比較してもよい。   For example, the comparison unit 119 (or the comparison unit 412) may compare the bitmap image data by comparing individual pixel values. Of course, the comparison unit 119 (or the comparison unit 412) may compare image data using an appropriate technique for similarity search between images used in the image search field.

図8〜15には具体的なフローチャートを例示したが、ステップの順番は、矛盾が生じない限り、適宜入れ替えられてもよい。また、互いに入れ替え可能なステップ同士は、並列して実行されてもよい。   Although specific flowcharts are illustrated in FIGS. 8 to 15, the order of steps may be appropriately changed as long as no contradiction occurs. Moreover, the steps interchangeable with each other may be executed in parallel.

ところで、上記実施形態では、サーバ110(またはコンピュータ400)のモードは、選択可能である。しかし、サーバ110(またはコンピュータ400)のモードは、分離モードまたは一括モードの一方に固定的に定められていてもよい。   By the way, in the said embodiment, the mode of the server 110 (or computer 400) is selectable. However, the mode of the server 110 (or the computer 400) may be fixedly set to one of the separation mode and the collective mode.

また、上記のとおり、図14〜15の比較処理は、ファイル同士を関連づけるための条件として、条件(4a)と(4b)が使われる場合の例である。   Further, as described above, the comparison processing of FIGS. 14 to 15 is an example in which the conditions (4a) and (4b) are used as conditions for associating files with each other.

しかし、実施形態によっては、条件(3a)と(3b)が使われてもよい。つまり、ステップS501とS503が省略されてもよい(換言すれば、クリップボードデータDの文字列長Lによらず、ステップS502の完全一致検索が行われてもよい)。 However, depending on the embodiment, the conditions (3a) and (3b) may be used. That is, steps S501 and S503 may be omitted (in other words, the exact match search in step S502 may be performed regardless of the character string length L i of the clipboard data D i ).

また、実施形態によっては、条件(5a)と(5b)が使われてもよい。つまり、比較部119(または比較部412)は、ステップS511のようにクリップボードデータDの文字列長Lによらず完全一致検索を行う代わりに、次のように動作してもよい。すなわち、比較部119(または比較部412)は、L<Lのときには完全一致検索を行い、L≧Lのときには曖昧検索を行ってもよい。 Further, depending on the embodiment, the conditions (5a) and (5b) may be used. That is, the comparison unit 119 (or the comparison unit 412) may operate as follows instead of performing a complete match search regardless of the character string length L i of the clipboard data D i as in step S511. That is, the comparison unit 119 (or the comparison unit 412) may perform a complete match search when L i <L, and may perform an ambiguous search when L i ≧ L.

さらに、条件(4a)と(4b)が使われる場合(または条件(5a)と(5b)が使われる場合)に、比較部119(または比較部412)は、文字列長Lによらずに曖昧検索を行ってもよい。 Further, when the conditions (4a) and (4b) are used (or when the conditions (5a) and (5b) are used), the comparison unit 119 (or the comparison unit 412) does not depend on the character string length L i. An ambiguous search may be performed.

また、図11のステップS410〜S412から明らかなように、第1実施形態では、ファイルFが新規作成された場合は、ファイルFが最初にファイル記憶部111に保存される際に、ファイルFについてオープン時刻が推定され、記録される。しかし、実施形態によっては、ファイルFがセーブ・クローズ要求またはクローズ要求によって閉じられる際に、現在時刻よりも所定時間前の時刻がオープン時刻として推定されてもよい。その場合の「所定時間」は、図11のステップS412の所定時間よりも長めでもよい。   As is clear from steps S410 to S412 of FIG. 11, in the first embodiment, when a file F is newly created, when the file F is first saved in the file storage unit 111, The opening time is estimated and recorded. However, depending on the embodiment, when the file F is closed by a save / close request or a close request, a time that is a predetermined time before the current time may be estimated as the open time. In this case, the “predetermined time” may be longer than the predetermined time in step S412 of FIG.

また、上記実施形態に関して例示した各種のファイル操作要求の具体的実装も、実施形態に応じて様々であってよい。例えば、実施形態によっては、セーブ・クローズ要求が使われなくてもよい。つまり、セーブ要求とクローズ要求の組み合わせが、セーブ・クローズ要求の代わりに使われる実施形態も可能である。   In addition, specific implementations of various file operation requests exemplified with respect to the above-described embodiment may vary depending on the embodiment. For example, in some embodiments, the save / close request may not be used. That is, an embodiment in which a combination of a save request and a close request is used instead of the save / close request is possible.

最後に、上記の種々の実施形態に関して、さらに下記の付記を開示する。
(付記1)
複数のファイルを管理するファイル管理コンピュータに、
前記複数のファイルのうちの第1のファイルが閉じられるよりも前の期間の少なくとも一部においてはクリップボードに記憶されていたデータであるクリップボードデータと、前記クリップボードデータが前記クリップボードに書き込まれた時刻を示す時刻情報を取得し、
前記複数のファイルのうちで、前記時刻情報の示す前記時刻において開かれていた第2のファイルを特定し、
前記第1のファイルが、前記クリップボードデータを含むか、または、データ同士の類似性に関する所定の関係が前記クリップボードデータとの間で成立する第1の類似データを含み、かつ、前記第2のファイルが、前記クリップボードデータを含むか、または、前記クリップボードデータとの間で前記所定の関係が成立する第2の類似データを含む場合、前記第1のファイルと前記第2のファイルを関連づける
ことを含む関連づけ処理を実行させる関連づけプログラム。
(付記2)
前記クリップボードデータと前記時刻情報を取得する処理は、
前記第1のファイルを保存して閉じるための第1の要求、または、
前記第1のファイルを開いたままで保存するための第2の要求
を契機として実行される
ことを特徴とする付記1に記載の関連づけプログラム。
(付記3)
前記第1のファイルは既存のファイルであり、
取得される前記クリップボードデータは、前記第1のファイルが開かれてから、前記第1の要求または前記第2の要求の受領までの期間の少なくとも一部においては前記クリップボードに記憶されていたデータである
ことを特徴とする付記2に記載の関連づけプログラム。
(付記4)
前記第1のファイルは新規作成されたファイルであり、
取得される前記クリップボードデータは、前記第1の要求または前記第2の要求の受領から所定時間以内の過去の期間の少なくとも一部においては前記クリップボードに記憶されていたデータである
ことを特徴とする付記2に記載の関連づけプログラム。
(付記5)
1回以上前記第2の要求が発行された後で再度前記第2の要求が発行された場合、取得される前記クリップボードデータは、直近から2番目の前記第2の要求の受領から、直近の前記第2の要求の受領までの期間の少なくとも一部においては前記クリップボードに記憶されていたデータである
ことを特徴とする付記2から4のいずれか1項に記載の関連づけプログラム。
(付記6)
1回以上前記第2の要求が発行された後で前記第1の要求が発行された場合、取得される前記クリップボードデータは、直近の前記第2の要求の受領から前記第1の要求の受領までの期間の少なくとも一部においては前記クリップボードに記憶されていたデータである
ことを特徴とする付記2から5のいずれか1項に記載の関連づけプログラム。
(付記7)
前記第1のファイルと前記第2のファイルを関連づける処理は、
前記クリップボードデータと、前記第1の類似データと、前記第2の類似データのうち少なくとも1つと、
前記第1のファイルを識別する第1の識別情報と、
前記第2のファイルを識別する第2の識別情報
を含む関連づけ情報を、記憶装置に記憶することを含む
ことを特徴とする付記1から6のいずれか1項に記載の関連づけプログラム。
(付記8)
前記第1のファイルと関係のあるファイルを問い合わせる入力を受け付け、
前記入力に応じて、前記記憶装置を検索し、前記関連づけ情報のうち少なくとも前記第2の識別情報を出力する
ことを前記関連づけ処理がさらに含むことを特徴とする付記7に記載の関連づけプログラム。
(付記9)
前記ファイル管理コンピュータは、ネットワークを介して編集コンピュータと接続されており、
前記第1のファイルは、前記編集コンピュータのユーザに書き込みアクセスが許可されたファイルであり、
前記クリップボードは、前記編集コンピュータのクリップボードであり、
前記編集コンピュータは、前記クリップボードの更新を監視して記録し、
前記第2のファイルを特定する処理は、前記複数のファイルのうちで前記ユーザに読み出しアクセスが許可されている少なくとも一部のファイルの中から、前記時刻情報の示す前記時刻において前記編集コンピュータにより開かれていたファイルを、前記第2のファイルとして特定する処理であり、
前記関連づけ処理は、前記編集コンピュータに前記クリップボードデータと前記時刻情報を要求することを含む
ことを特徴とする付記1から8のいずれか1項に記載の関連づけプログラム。
(付記10)
前記クリップボードは、前記ファイル管理コンピュータのクリップボードであり、
前記関連づけ処理は、前記クリップボードの更新を監視し、前記クリップボードに新規データが書き込まれるたびに、前記新規データと、前記新規データが前記クリップボードに書き込まれた時刻を示す書き込み時刻情報との組を記憶装置に記憶することを含み、
前記クリップボードデータと前記時刻情報を取得する処理は、前記記憶装置から前記クリップボードデータと前記時刻情報を読み出すことを含む
ことを特徴とする付記1から8のいずれか1項に記載の関連づけプログラム。
(付記11)
前記クリップボードデータは、テキストデータ、画像データ、またはベクタオブジェクトデータであることを特徴とする付記1から10のいずれか1項に記載の関連づけプログラム。
(付記12)
複数のファイルを管理するコンピュータが、
前記複数のファイルのうちの第1のファイルが閉じられるよりも前の期間の少なくとも一部においてはクリップボードに記憶されていたデータであるクリップボードデータと、前記クリップボードデータが前記クリップボードに書き込まれた時刻を示す時刻情報を取得し、
前記複数のファイルのうちで、前記時刻情報の示す前記時刻において開かれていた第2のファイルを特定し、
前記第1のファイルが、前記クリップボードデータを含むか、または、データ同士の類似性に関する所定の関係が前記クリップボードデータとの間で成立する第1の類似データを含み、かつ、前記第2のファイルが、前記クリップボードデータを含むか、または、前記クリップボードデータとの間で前記所定の関係が成立する第2の類似データを含む場合、前記第1のファイルと前記第2のファイルを関連づける
ことを特徴とする関連づけ方法。
(付記13)
複数のファイルのうちの第1のファイルが閉じられるよりも前の期間の少なくとも一部においてはクリップボードに記憶されていたデータであるクリップボードデータと、前記クリップボードデータが前記クリップボードに書き込まれた時刻を示す時刻情報を取得する取得手段と、
前記複数のファイルのうちで、前記時刻情報の示す前記時刻において開かれていた第2のファイルを特定する特定手段と、
前記第1のファイルが、前記クリップボードデータを含むか、または、データ同士の類似性に関する所定の関係が前記クリップボードデータとの間で成立する第1の類似データを含み、かつ、前記第2のファイルが、前記クリップボードデータを含むか、または、前記クリップボードデータとの間で前記所定の関係が成立する第2の類似データを含む場合、前記第1のファイルと前記第2のファイルを関連づける関連づけ手段
を備えることを特徴とする情報処理装置。
Finally, the following additional notes are disclosed regarding the various embodiments described above.
(Appendix 1)
To a file management computer that manages multiple files,
Clipboard data that is data stored in the clipboard in at least a part of a period before the first file of the plurality of files is closed, and a time when the clipboard data is written to the clipboard Get the time information shown,
Among the plurality of files, the second file opened at the time indicated by the time information is specified,
The first file includes the clipboard data, or includes first similar data in which a predetermined relationship regarding the similarity between data is established with the clipboard data, and the second file Including the clipboard data or associating the second file with the first file if the clipboard data includes the second similar data that establishes the predetermined relationship with the clipboard data. Association program that executes association processing.
(Appendix 2)
The process of acquiring the clipboard data and the time information is as follows:
A first request to save and close the first file, or
The association program according to appendix 1, wherein the association program is executed in response to a second request for saving the first file in an open state.
(Appendix 3)
The first file is an existing file;
The acquired clipboard data is data stored in the clipboard during at least a part of the period from when the first file is opened to when the first request or the second request is received. The association program according to appendix 2, which is characterized in that it exists.
(Appendix 4)
The first file is a newly created file;
The acquired clipboard data is data stored in the clipboard in at least a part of a past period within a predetermined time from receipt of the first request or the second request. The association program according to attachment 2.
(Appendix 5)
When the second request is issued again after the second request is issued one or more times, the clipboard data to be acquired is the latest from the receipt of the second request from the latest. The association program according to any one of appendices 2 to 4, wherein the association program is data stored in the clipboard during at least a part of a period until receipt of the second request.
(Appendix 6)
If the first request is issued after the second request has been issued at least once, the acquired clipboard data is received from the most recent receipt of the second request. The association program according to any one of appendices 2 to 5, wherein the association program is data stored in the clipboard during at least a part of the period up to.
(Appendix 7)
The process of associating the first file with the second file is as follows:
At least one of the clipboard data, the first similar data, and the second similar data;
First identification information for identifying the first file;
The association program according to any one of appendices 1 to 6, further comprising storing association information including second identification information for identifying the second file in a storage device.
(Appendix 8)
Accepts an input asking for a file related to the first file;
The association program according to appendix 7, wherein the association process further includes searching the storage device in response to the input and outputting at least the second identification information of the association information.
(Appendix 9)
The file management computer is connected to an editing computer via a network,
The first file is a file to which write access is permitted by a user of the editing computer;
The clipboard is a clipboard of the editing computer;
The editing computer monitors and records the clipboard update;
The process of specifying the second file is performed by the editing computer at the time indicated by the time information from at least some of the plurality of files that are allowed to be read and accessed by the user. A process of identifying the file that has been stored as the second file,
The association program according to any one of appendices 1 to 8, wherein the association process includes requesting the clipboard data and the time information from the editing computer.
(Appendix 10)
The clipboard is a clipboard of the file management computer;
The association process monitors the update of the clipboard and stores a set of the new data and write time information indicating the time when the new data was written to the clipboard each time new data is written to the clipboard. Including storing in the device,
The association program according to any one of appendices 1 to 8, wherein the process of acquiring the clipboard data and the time information includes reading the clipboard data and the time information from the storage device.
(Appendix 11)
The association program according to any one of appendices 1 to 10, wherein the clipboard data is text data, image data, or vector object data.
(Appendix 12)
A computer that manages multiple files
Clipboard data that is data stored in the clipboard in at least a part of a period before the first file of the plurality of files is closed, and a time when the clipboard data is written to the clipboard Get the time information shown,
Among the plurality of files, the second file opened at the time indicated by the time information is specified,
The first file includes the clipboard data, or includes first similar data in which a predetermined relationship regarding the similarity between data is established with the clipboard data, and the second file Includes the clipboard data or includes the second similar data in which the predetermined relationship is established with the clipboard data, the first file and the second file are associated with each other. Association method.
(Appendix 13)
Indicates clipboard data that is data stored in the clipboard in at least a part of the period before the first file of the plurality of files is closed, and the time when the clipboard data is written to the clipboard Acquisition means for acquiring time information;
Among the plurality of files, specifying means for specifying a second file opened at the time indicated by the time information;
The first file includes the clipboard data, or includes first similar data in which a predetermined relationship regarding the similarity between data is established with the clipboard data, and the second file Including the clipboard data or the second similar data that establishes the predetermined relationship with the clipboard data, the association means for associating the first file with the second file An information processing apparatus comprising:

D1〜D5 クリップボードデータ
T1〜T8 時刻
1〜5 ファイル
6、135、404 クリップボード
100 システム
110 サーバ
111、401 ファイル記憶部
112、131 通信制御部
113、132 ファイル送受信部
114、405 ログ記憶部
115、406 ログ管理部
116、137、409 時計
117 クリップボードデータ受信部
118、139 抽出部
119、412 比較部
120、413 リンク生成部
121、414 リンク記憶部
130 クライアント
133、134、402、403 アプリケーション
136、407 監視部
138、408 クリップボードデータ記憶部
140 クリップボードデータ送信部
150、220 ネットワーク
200、240、260、400 コンピュータ
201、241 CPU
202、242 ROM
203、243 RAM
204、244 通信インタフェイス
205、245 入力装置
206、246 出力装置
207、247 記憶装置
208、248 駆動装置
209、249 バス
210、250 記憶媒体
230 プログラム提供者
301 ログ
302 クリップボードデータテーブル
303 リンクテーブル
410 第1抽出部
411 第2抽出部
D1 to D5 Clipboard data T1 to T8 Time 1 to 5 File 6, 135, 404 Clipboard 100 System 110 Server 111, 401 File storage unit 112, 131 Communication control unit 113, 132 File transmission / reception unit 114, 405 Log storage unit 115, 406 Log management unit 116, 137, 409 Clock 117 Clipboard data reception unit 118, 139 Extraction unit 119, 412 Comparison unit 120, 413 Link generation unit 121, 414 Link storage unit 130 Client 133, 134, 402, 403 Application 136, 407 Monitoring Unit 138, 408 Clipboard data storage unit 140 Clipboard data transmission unit 150, 220 Network 200, 240, 260, 400 Computer 201, 241 CPU
202, 242 ROM
203, 243 RAM
204, 244 Communication interface 205, 245 Input device 206, 246 Output device 207, 247 Storage device 208, 248 Drive device 209, 249 Bus 210, 250 Storage medium 230 Program provider 301 Log 302 Clipboard data table 303 Link table 410 1 extraction unit 411 second extraction unit

Claims (8)

複数のファイルを管理するファイル管理コンピュータに、
前記複数のファイルのうちの第1のファイルが閉じられるよりも前の期間の少なくとも一部においてはクリップボードに記憶されていたデータであるクリップボードデータと、前記クリップボードデータが前記クリップボードに書き込まれた時刻を示す時刻情報を取得し、
前記複数のファイルのうちで、前記時刻情報の示す前記時刻において開かれていた第2のファイルを特定し、
前記第1のファイルが、前記クリップボードデータを含むか、または、データ同士の類似性に関する所定の関係が前記クリップボードデータとの間で成立する第1の類似データを含み、かつ、前記第2のファイルが、前記クリップボードデータを含むか、または、前記クリップボードデータとの間で前記所定の関係が成立する第2の類似データを含む場合、前記第1のファイルと前記第2のファイルを関連づける
ことを含む関連づけ処理を実行させる関連づけプログラム。
To a file management computer that manages multiple files,
Clipboard data that is data stored in the clipboard in at least a part of a period before the first file of the plurality of files is closed, and a time when the clipboard data is written to the clipboard Get the time information shown,
Among the plurality of files, the second file opened at the time indicated by the time information is specified,
The first file includes the clipboard data, or includes first similar data in which a predetermined relationship regarding the similarity between data is established with the clipboard data, and the second file Including the clipboard data or associating the second file with the first file if the clipboard data includes the second similar data that establishes the predetermined relationship with the clipboard data. Association program that executes association processing.
前記クリップボードデータと前記時刻情報を取得する処理は、
前記第1のファイルを保存して閉じるための第1の要求、または、
前記第1のファイルを開いたままで保存するための第2の要求
を契機として実行される
ことを特徴とする請求項1に記載の関連づけプログラム。
The process of acquiring the clipboard data and the time information is as follows:
A first request to save and close the first file, or
The association program according to claim 1, wherein the association program is executed in response to a second request for saving the first file in an open state.
前記第1のファイルは既存のファイルであり、
取得される前記クリップボードデータは、前記第1のファイルが開かれてから、前記第1の要求または前記第2の要求の受領までの期間の少なくとも一部においては前記クリップボードに記憶されていたデータである
ことを特徴とする請求項2に記載の関連づけプログラム。
The first file is an existing file;
The acquired clipboard data is data stored in the clipboard during at least a part of the period from when the first file is opened to when the first request or the second request is received. The association program according to claim 2, wherein:
前記第1のファイルは新規作成されたファイルであり、
取得される前記クリップボードデータは、前記第1の要求または前記第2の要求の受領から所定時間以内の過去の期間の少なくとも一部においては前記クリップボードに記憶されていたデータである
ことを特徴とする請求項2に記載の関連づけプログラム。
The first file is a newly created file;
The acquired clipboard data is data stored in the clipboard in at least a part of a past period within a predetermined time from receipt of the first request or the second request. The association program according to claim 2.
1回以上前記第2の要求が発行された後で再度前記第2の要求が発行された場合、取得される前記クリップボードデータは、直近から2番目の前記第2の要求の受領から、直近の前記第2の要求の受領までの期間の少なくとも一部においては前記クリップボードに記憶されていたデータである
ことを特徴とする請求項2から4のいずれか1項に記載の関連づけプログラム。
When the second request is issued again after the second request is issued one or more times, the clipboard data to be acquired is the latest from the receipt of the second request from the latest. The association program according to any one of claims 2 to 4, wherein the association program is data stored in the clipboard during at least a part of a period until receipt of the second request.
1回以上前記第2の要求が発行された後で前記第1の要求が発行された場合、取得される前記クリップボードデータは、直近の前記第2の要求の受領から前記第1の要求の受領までの期間の少なくとも一部においては前記クリップボードに記憶されていたデータである
ことを特徴とする請求項2から5のいずれか1項に記載の関連づけプログラム。
If the first request is issued after the second request has been issued at least once, the acquired clipboard data is received from the most recent receipt of the second request. The association program according to any one of claims 2 to 5, wherein the association program is data stored in the clipboard during at least a part of the period up to.
複数のファイルを管理するコンピュータが、
前記複数のファイルのうちの第1のファイルが閉じられるよりも前の期間の少なくとも一部においてはクリップボードに記憶されていたデータであるクリップボードデータと、前記クリップボードデータが前記クリップボードに書き込まれた時刻を示す時刻情報を取得し、
前記複数のファイルのうちで、前記時刻情報の示す前記時刻において開かれていた第2のファイルを特定し、
前記第1のファイルが、前記クリップボードデータを含むか、または、データ同士の類似性に関する所定の関係が前記クリップボードデータとの間で成立する第1の類似データを含み、かつ、前記第2のファイルが、前記クリップボードデータを含むか、または、前記クリップボードデータとの間で前記所定の関係が成立する第2の類似データを含む場合、前記第1のファイルと前記第2のファイルを関連づける
ことを特徴とする関連づけ方法。
A computer that manages multiple files
Clipboard data that is data stored in the clipboard in at least a part of a period before the first file of the plurality of files is closed, and a time when the clipboard data is written to the clipboard Get the time information shown,
Among the plurality of files, the second file opened at the time indicated by the time information is specified,
The first file includes the clipboard data, or includes first similar data in which a predetermined relationship regarding the similarity between data is established with the clipboard data, and the second file Includes the clipboard data or includes the second similar data in which the predetermined relationship is established with the clipboard data, the first file and the second file are associated with each other. Association method.
複数のファイルのうちの第1のファイルが閉じられるよりも前の期間の少なくとも一部においてはクリップボードに記憶されていたデータであるクリップボードデータと、前記クリップボードデータが前記クリップボードに書き込まれた時刻を示す時刻情報を取得する取得手段と、
前記複数のファイルのうちで、前記時刻情報の示す前記時刻において開かれていた第2のファイルを特定する特定手段と、
前記第1のファイルが、前記クリップボードデータを含むか、または、データ同士の類似性に関する所定の関係が前記クリップボードデータとの間で成立する第1の類似データを含み、かつ、前記第2のファイルが、前記クリップボードデータを含むか、または、前記クリップボードデータとの間で前記所定の関係が成立する第2の類似データを含む場合、前記第1のファイルと前記第2のファイルを関連づける関連づけ手段
を備えることを特徴とする情報処理装置。
Indicates clipboard data that is data stored in the clipboard in at least a part of the period before the first file of the plurality of files is closed, and the time when the clipboard data is written to the clipboard Acquisition means for acquiring time information;
Among the plurality of files, specifying means for specifying a second file opened at the time indicated by the time information;
The first file includes the clipboard data, or includes first similar data in which a predetermined relationship regarding the similarity between data is established with the clipboard data, and the second file Including the clipboard data or the second similar data that establishes the predetermined relationship with the clipboard data, the association means for associating the first file with the second file An information processing apparatus comprising:
JP2012183047A 2012-08-22 2012-08-22 Association program, association method, and information processing apparatus Expired - Fee Related JP5974732B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012183047A JP5974732B2 (en) 2012-08-22 2012-08-22 Association program, association method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012183047A JP5974732B2 (en) 2012-08-22 2012-08-22 Association program, association method, and information processing apparatus

Publications (2)

Publication Number Publication Date
JP2014041451A true JP2014041451A (en) 2014-03-06
JP5974732B2 JP5974732B2 (en) 2016-08-23

Family

ID=50393676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012183047A Expired - Fee Related JP5974732B2 (en) 2012-08-22 2012-08-22 Association program, association method, and information processing apparatus

Country Status (1)

Country Link
JP (1) JP5974732B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293936A (en) * 2005-04-14 2006-10-26 Mitsubishi Electric Corp File relation acquisition device
JP2007234055A (en) * 2007-05-14 2007-09-13 Toshiba Corp Electronic document filing device, electronic document filing system, electronic document filing method and program
WO2010001465A1 (en) * 2008-07-01 2010-01-07 富士通株式会社 File editor, related file display device and program
JP2011022705A (en) * 2009-07-14 2011-02-03 Hitachi Ltd Trail management method, system, and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006293936A (en) * 2005-04-14 2006-10-26 Mitsubishi Electric Corp File relation acquisition device
JP2007234055A (en) * 2007-05-14 2007-09-13 Toshiba Corp Electronic document filing device, electronic document filing system, electronic document filing method and program
WO2010001465A1 (en) * 2008-07-01 2010-01-07 富士通株式会社 File editor, related file display device and program
JP2011022705A (en) * 2009-07-14 2011-02-03 Hitachi Ltd Trail management method, system, and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016022768; 大澤 亮 外3名: 'ユーザの動作履歴を基にしたデータ間関連度とデータ着目度算出機構の構築' 情報処理学会研究報告 第2005巻第48号, 20050527, p.37-44, 社団法人情報処理学会 *

Also Published As

Publication number Publication date
JP5974732B2 (en) 2016-08-23

Similar Documents

Publication Publication Date Title
US20210350070A1 (en) Distributed Document Co-Authoring and Processing
KR101002451B1 (en) Computer searching with associations
US9436744B2 (en) Combining internal and external search results
RU2573209C2 (en) Automatically finding contextually related task items
KR100705411B1 (en) Local computer search system and method using the same
RU2662636C2 (en) Information management and display in web browsers
US8965873B2 (en) Methods and systems for eliminating duplicate events
US8930368B2 (en) Categorizing data to perform access control
US20140006350A1 (en) Method for selecting storage cloud for storage of entity files from plurality of storage clouds, and computer and computer program therefor
JP2011065546A (en) File search system and program
JP2011191862A (en) File management apparatus, file management system, and file management program
WO2011052673A1 (en) Help information provision device, and help information provision method
US9514228B2 (en) Banning tags
US11436279B2 (en) Dynamically building file graph
JP2014219708A (en) Information processing device, information processing method, and program
JP5974732B2 (en) Association program, association method, and information processing apparatus
US11250084B2 (en) Method and system for generating content from search results rendered by a search engine
JP6349682B2 (en) Information management program, apparatus, and method
US9692804B2 (en) Method of and system for determining creation time of a web resource
CN111104690B (en) Document monitoring method and device, server and storage medium
JP2007148739A (en) File management system and its program
US20160259810A1 (en) Global file index
US20230289457A1 (en) Preventing Illicit Data Transfer and Storage
JP6683042B2 (en) Data processing device, system and program
KR100874989B1 (en) Recording medium recording audit device, method and program for terminal

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160615

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160704

R150 Certificate of patent or registration of utility model

Ref document number: 5974732

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees