JP4547954B2 - Server device - Google Patents

Server device Download PDF

Info

Publication number
JP4547954B2
JP4547954B2 JP2004084801A JP2004084801A JP4547954B2 JP 4547954 B2 JP4547954 B2 JP 4547954B2 JP 2004084801 A JP2004084801 A JP 2004084801A JP 2004084801 A JP2004084801 A JP 2004084801A JP 4547954 B2 JP4547954 B2 JP 4547954B2
Authority
JP
Japan
Prior art keywords
change
document
fragment
data
post
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.)
Expired - Fee Related
Application number
JP2004084801A
Other languages
Japanese (ja)
Other versions
JP2005275565A (en
Inventor
太郎 寺尾
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2004084801A priority Critical patent/JP4547954B2/en
Publication of JP2005275565A publication Critical patent/JP2005275565A/en
Application granted granted Critical
Publication of JP4547954B2 publication Critical patent/JP4547954B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

本発明は、ウエブサーバ等、ドキュメントをクライアント側装置に提供するサーバ装置に関する。   The present invention relates to a server device that provides a document to a client side device such as a web server.

従来から、一つのドキュメントを多数の利用者によって生成する場合に、各利用者によって行われた改訂の履歴を保持させるプログラム等が知られている(非特許文献1)。   2. Description of the Related Art Conventionally, when a single document is generated by a large number of users, a program that holds a history of revisions made by each user is known (Non-Patent Document 1).

なお、ハッシュ値を用いてリストデータを管理する方式のLisp言語について非特許文献2に、ハッシュ値を用いたデータ管理について特許文献1にそれぞれ記載がある。
エクスメディア著、「超図解(R)Word 2000 forWindows(R) 応用編」、初版、2002年8月10日、152ページから153ページ E.Goto、"Monocopy andAssociate Algorithms in an Extended Lisp", Report TR 74-3, May 1974, University of Tokyo 米国特許第5978792号明細書
Note that Non-Patent Document 2 describes the Lisp language that manages list data using hash values, and Patent Document 1 describes data management that uses hash values.
Exmedia, "Super Illustrated (R) Word 2000 for Windows (R) Application", first edition, August 10, 2002, pages 152 to 153 E. Goto, "Monocopy and Associate Algorithms in an Extended Lisp", Report TR 74-3, May 1974, University of Tokyo U.S. Pat. No. 5,977,792

しかしながら、上記従来のプログラム等では、利用者の改訂操作を常に監視し、改訂操作の内容を順次記録しているため、例えばサーバ装置上に保持されているドキュメントを改訂する際には、改訂操作を行うクライアント側で改訂操作の履歴を生成しておき、これをドキュメントとともにサーバ装置側にアップロードする必要があったため、改訂履歴つきのドキュメントを提供できるようにするには、利用者側の環境が、改訂操作の履歴を生成できる環境に限定されてしまうという問題点があった。   However, in the above conventional programs and the like, the user's revision operation is constantly monitored and the contents of the revision operation are sequentially recorded. For example, when the document held on the server device is revised, the revision operation is performed. In order to be able to provide a document with revision history, it is necessary to generate a revision operation history on the client side and upload it to the server device side along with the document. There is a problem that the environment is limited to an environment that can generate revision history.

本発明は上記実情に鑑みて為されたもので、利用者側で改訂操作(ドキュメントに対する変更操作)の履歴を生成する必要なく、改訂履歴つきのドキュメントを提供できるサーバ装置を提供することを、その目的の一つとする。   The present invention has been made in view of the above circumstances, and provides a server device that can provide a document with a revision history without generating a history of revision operations (change operations for documents) on the user side. One of the purposes.

上記従来例の問題点を解決するための本発明は、少なくとも一つのドキュメントを保持するデータベースにアクセス可能に接続されたサーバ装置であって、前記ドキュメントのうち処理対象となった変更前ドキュメントに対して変更操作を行って得られた変更後ドキュメントを受け入れる受入手段と、前記変更前ドキュメントと変更後ドキュメントとの差分の情報を生成する差分情報生成手段と、前記差分の情報に基づいて、前記変更後ドキュメントを、前記変更前ドキュメントからの変更操作の種類ごとのデータフラグメントに分割する分割手段と、前記差分の情報に基づいて、前記分割して得られたデータフラグメントのうち、その内容がそのまま前記変更前ドキュメントに含まれているデータフラグメントについては、当該データフラグメントに対応する部分を含む変更前ドキュメントの少なくとも一部を特定する情報に関連づけて当該データフラグメントを前記データベースに登録する登録手段と、を含むことを特徴としている。   The present invention for solving the problems of the above-described conventional example is a server device that is connected to a database that holds at least one document, and is for a pre-change document to be processed among the documents. Receiving the changed document obtained by performing the changing operation, difference information generating means for generating difference information between the pre-change document and the changed document, and the change based on the difference information Dividing means for dividing the subsequent document into data fragments for each type of change operation from the pre-change document, and based on the information on the difference, the content of the data fragment obtained by the division is the same as above For data fragments included in the pre-change document, the data fragment Is characterized by comprising registration means for registering the data fragments in the database in association with information identifying at least a portion of the pre-change documents that contain portions corresponding to the instrument, the.

このように、差分の情報から変更操作の内容を特定するので、利用者側でドキュメントに対する変更操作の履歴を生成する必要なく、改訂履歴つきのドキュメントを提供できる。   As described above, since the content of the change operation is specified from the difference information, it is possible to provide a document with a revision history without requiring the user to generate a history of the change operation for the document.

また前記登録手段は、前記分割手段により得られたデータフラグメントのうち、その内容が前記変更前ドキュメントに含まれておらず、変更後ドキュメントに追加されたデータフラグメントについては、当該追加の変更操作に関する操作関係情報に関連づけて当該データフラグメントを前記データベースに登録することとしてもよい。   In addition, the registration unit is related to the additional change operation for the data fragment that is not included in the pre-change document among the data fragments obtained by the dividing unit and is added to the post-change document. The data fragment may be registered in the database in association with the operation relation information.

これによって、ドキュメントに対する新たな記述の追加等の変更操作が特定され、利用者側でドキュメントに対する変更操作の履歴を生成する必要なく、改訂履歴つきのドキュメントを提供できる。   As a result, a change operation such as adding a new description to the document is specified, and a document with a revision history can be provided without the user having to generate a history of the change operation for the document.

さらに前記登録手段は、前記分割手段により得られたデータフラグメントのうち、その内容が前記変更前ドキュメントに含まれ、変更後ドキュメントで削除されたデータフラグメントについては、当該削除の変更操作に関する操作関係情報に関連づけて当該データフラグメントを前記データベースに登録することとしてもよい。   Further, the registration means includes, among the data fragments obtained by the dividing means, the contents included in the pre-change document, and for data fragments deleted in the post-change document, operation relation information related to the change operation of the deletion The data fragment may be registered in the database in association with.

これによって、ドキュメントの一部を削除する等の変更操作が特定され、利用者側でドキュメントに対する変更操作の履歴を生成する必要なく、改訂履歴つきのドキュメントを提供できる。   Thus, a change operation such as deleting a part of the document is specified, and a document with a revision history can be provided without requiring the user to generate a history of the change operation on the document.

ここで前記操作関係情報には、前記変更操作を行った利用者を特定する情報と、前記変更操作が行われた日時に関する情報とを含むこととしてもよい。   Here, the operation-related information may include information for specifying a user who has performed the change operation and information regarding the date and time when the change operation was performed.

これにより、変更操作をした利用者やその日時を特定する情報を提供できるようになる。   As a result, it is possible to provide information specifying the user who performed the change operation and the date and time.

さらに前記ドキュメントから分割して得られたデータフラグメントをクライアント装置側に提供する提供手段を含み、前記提供手段が、当該ドキュメントを分割して得られたデータフラグメントごとに、当該データフラグメントに係る変更操作の種類ごとに異なる情報を関連づけて、前記クライアント装置側に提供することとしてもよい。   The data processing apparatus further includes a providing unit that provides the client apparatus with the data fragment obtained by dividing the document, and the providing unit performs a change operation related to the data fragment for each data fragment obtained by dividing the document. Different types of information may be associated with each other and provided to the client device side.

これにより、改訂履歴つきのドキュメントを提供できる。   Thereby, a document with a revision history can be provided.

また、上記従来例の問題点を解決するための本発明は、少なくとも一つのドキュメントを保持するデータベースにアクセス可能に接続されたサーバ装置を制御する方法であって、前記ドキュメントのうち処理対象となった変更前ドキュメントに対して変更操作を行って得られた変更後ドキュメントを受け入れさせる工程と、前記変更前ドキュメントと変更後ドキュメントとの差分の情報を生成させる工程と、前記差分の情報に基づいて、前記変更後ドキュメントを、前記変更前ドキュメントからの変更操作の種類ごとのデータフラグメントに分割させる工程と、前記差分の情報に基づいて、前記分割して得られたデータフラグメントのうち、その内容がそのまま前記変更前ドキュメントに含まれているデータフラグメントについては、当該データフラグメントに対応する部分を含む変更前ドキュメントの少なくとも一部を特定する情報に関連づけて当該データフラグメントを前記データベースに登録させる工程と、を含むことを特徴としている。   The present invention for solving the problems of the conventional example is a method for controlling a server device connected to a database holding at least one document so as to be processed among the documents. A step of accepting a post-change document obtained by performing a change operation on the pre-change document, a step of generating difference information between the pre-change document and the post-change document, and based on the difference information , Dividing the post-change document into data fragments for each type of change operation from the pre-change document, and based on the difference information, the content of the data fragments obtained by the division is For the data fragment contained in the document before change, It is characterized by comprising a step of registering the data fragments in the database in association with information identifying at least a portion of the pre-change documents that contain portions corresponding to data fragments,.

このように、差分の情報から変更操作の内容を特定するので、利用者側でドキュメントに対する変更操作の履歴を生成する必要なく、改訂履歴つきのドキュメントを提供できる。   As described above, since the content of the change operation is specified from the difference information, it is possible to provide a document with a revision history without requiring the user to generate a history of the change operation for the document.

さらに上記従来例の問題点を解決するための本発明は、少なくとも一つのドキュメントを保持するデータベースにアクセス可能に接続されたサーバ装置を制御するプログラムであって、前記ドキュメントのうち処理対象となった変更前ドキュメントに対して変更操作を行って得られた変更後ドキュメントを受け入れる手順と、前記変更前ドキュメントと変更後ドキュメントとの差分の情報を生成する手順と、前記差分の情報に基づいて、前記変更後ドキュメントを、前記変更前ドキュメントからの変更操作の種類ごとのデータフラグメントに分割する手順と、前記差分の情報に基づいて、前記分割して得られたデータフラグメントのうち、その内容がそのまま前記変更前ドキュメントに含まれているデータフラグメントについては、当該データフラグメントに対応する部分を含む変更前ドキュメントの少なくとも一部を特定する情報に関連づけて当該データフラグメントを前記データベースに登録する手順と、をサーバ装置に実行させることを特徴としている。   Furthermore, the present invention for solving the problems of the above-described conventional example is a program for controlling a server device that is connected to a database holding at least one document, and is a processing target among the documents. Based on the procedure for accepting the changed document obtained by performing the change operation on the pre-change document, the procedure for generating the difference information between the pre-change document and the changed document, and the difference information, The procedure of dividing the post-change document into data fragments for each type of change operation from the pre-change document, and the content of the data fragments obtained by the division based on the information of the difference is the same as the above For data fragments included in the pre-change document, the data It is characterized in that to perform the procedure for registering the data fragments in the database in association with information identifying at least a portion of the pre-change documents that contain portions corresponding to the fragment, to the server device.

このように、差分の情報から変更操作の内容を特定するので、利用者側でドキュメントに対する変更操作の履歴を生成する必要なく、改訂履歴つきのドキュメントを提供できる。   As described above, since the content of the change operation is specified from the difference information, it is possible to provide a document with a revision history without requiring the user to generate a history of the change operation for the document.

本発明の実施の形態について図面を参照しながら説明する。本実施の形態に係るサーバ装置は、例えばウエブサーバ1として実装でき、図1に示すように、制御部11と記憶部12と通信部13とを含んで構成され、データベースサーバ2とクライアント装置3とにネットワークを介して接続されている。なお、データベースサーバ2に対してはネットワークを介さずに直接接続されてもよい。   Embodiments of the present invention will be described with reference to the drawings. The server device according to the present embodiment can be implemented as, for example, the web server 1, and includes a control unit 11, a storage unit 12, and a communication unit 13 as shown in FIG. And connected via a network. The database server 2 may be directly connected without going through a network.

ウエブサーバ1の制御部11は、記憶部12に格納されているプログラムに従って動作しており、基本的にはクライアント装置3からネットワークを介して受信される要求に応答して、当該要求に係るドキュメントを要求元のクライアント装置3に送信する動作を行っている。また、この制御部11は、提供したドキュメントを変更前ドキュメントとし、これに対して変更処理を施した変更後ドキュメントを受け入れて、変更前ドキュメントと変更後ドキュメントとを関連付する所定処理(履歴管理処理)を行う。さらに本実施の形態においては、この制御部11は、ドキュメントを提供する際に、当該ドキュメントに関連づけられている変更前ドキュメントに関する情報を併せて提供する処理(情報提供処理)を行っている。これら履歴管理処理や情報提供処理については後に詳しく述べる。   The control unit 11 of the web server 1 operates in accordance with a program stored in the storage unit 12 and basically responds to a request received from the client device 3 via the network, and a document related to the request. Is transmitted to the requesting client apparatus 3. The control unit 11 sets the provided document as a pre-change document, accepts the post-change document that has been subjected to the change process, and associates the pre-change document with the post-change document (history management). Process). Further, in the present embodiment, when providing the document, the control unit 11 performs a process (information providing process) for providing information related to the pre-change document associated with the document. These history management processing and information provision processing will be described in detail later.

記憶部12は、制御部11によって実行されるプログラムを格納するハードディスクデバイスと、制御部11の実行中に生成されるデータを格納するメモリ装置とを含んでなる。通信部13は、制御部11からの指示に従ってデータをネットワークを介して送信する。またこの通信部13は、ネットワークを介して到来するデータを受信して制御部11に出力している。   The storage unit 12 includes a hard disk device that stores a program executed by the control unit 11 and a memory device that stores data generated during the execution of the control unit 11. The communication unit 13 transmits data via a network in accordance with an instruction from the control unit 11. Further, the communication unit 13 receives data coming via the network and outputs the data to the control unit 11.

本実施の形態においてデータベースサーバ2は、ウエブサーバ1が提供するドキュメントを保持している。このデータベースサーバ2に格納されているドキュメントは、フラグメントの列として表現される。例えばあるドキュメントが「これはドキュメントの一例です。」という文字列を含むとき、この文字列を「これはドキュメントの」とのフラグメントと、「一例です」とのフラグメントとの2つのフラグメントに分割され、データベースサーバ2は、各フラグメントの文字列を含むフラグメントデータと、フラグメントの列を規定するドキュメントデータd=[f1,f2]として表現されたドキュメントとを格納している。ここで、f1,f2などは、フラグメントを特定するポインタとなっている。また、このデータベースサーバ2は、利用者名と時刻情報とを含む操作関係情報をヘッダデータとして格納している。   In the present embodiment, the database server 2 holds a document provided by the web server 1. The document stored in the database server 2 is expressed as a sequence of fragments. For example, if a document contains the string "This is an example of a document," this string is split into two fragments: a fragment "This is a document" and a fragment "An example." The database server 2 stores fragment data including a character string of each fragment and a document expressed as document data d = [f1, f2] that defines the fragment string. Here, f1, f2, etc. are pointers for specifying the fragments. The database server 2 stores operation relation information including user name and time information as header data.

ここでデータベースサーバ2に格納されたフラグメントデータは、さらに各フラグメントデータの生成や削除の操作に関係した利用者及びその操作時刻の時刻情報を含むヘッダデータを特定するポインタと、当該フラグメントが表示可能な状態にあるか否かを表すフラグ(可視フラグ)に関連づけられている。本実施の形態では、これらドキュメントデータと、フラグメントデータと、ヘッダデータとを図2に示すようなデータフォーマットで管理している。   Here, the fragment data stored in the database server 2 can further display a pointer for specifying header data including time information of the user and the operation time related to the operation of generating and deleting each fragment data, and the fragment can be displayed. It is associated with a flag (visible flag) indicating whether or not the current state is in a state. In the present embodiment, these document data, fragment data, and header data are managed in a data format as shown in FIG.

このデータフォーマットには、ドキュメントデータ、フラグメントデータ、ヘッダデータのいずれかを含むデータ部分(D)と、ポインタ部分(P)とが含まれる。ここでデータベースサーバ2は、このデータフォーマットで表される各データに基づいて、ハッシュ値など特徴量を演算して各データに関連づけて保持し(図3)、この特徴量としてのハッシュ値をポインタとして用いることとしてもよいので、以下、ポインタがハッシュ値である場合を例として説明する。なお、ハッシュ値を用いる場合は、各データが互いに識別できる程度のデータ長さ(例えば20バイト程度)としておく。   This data format includes a data portion (D) including any one of document data, fragment data, and header data, and a pointer portion (P). Here, the database server 2 calculates a feature value such as a hash value based on each data represented in this data format and stores it in association with each data (FIG. 3), and the hash value as this feature value is a pointer. In the following, a case where the pointer is a hash value will be described as an example. In addition, when using a hash value, it is set as the data length (for example, about 20 bytes) which can identify each data mutually.

つまり概念的には図4に示すように、ドキュメントd1が、ドキュメントデータ[f1,f2]と、ハッシュ値hとを関連づけたものとなり、そのハッシュ値は「d1」であるとする。そしてハッシュ値f1に対応するフラグメントは、フラグメントデータとしての文字列「これはドキュメントの」と、ハッシュ値hとを関連づけたものとなり、ハッシュ値f2に対応するフラグメントは、フラグメントデータとしての文字列「一例です」と、ハッシュ値hとを関連づけたものとなる。なお、当初はこれらのフラグメントデータに対応する可視フラグは「表示可能」である旨を表す値(例えば「True」)に設定されている。   That is, conceptually, as shown in FIG. 4, it is assumed that the document d1 is obtained by associating the document data [f1, f2] with the hash value h, and the hash value is “d1”. The fragment corresponding to the hash value f1 is obtained by associating the character string “This is a document” as fragment data with the hash value h, and the fragment corresponding to the hash value f2 is the character string “ It is an example "and the hash value h is associated. Initially, the visibility flag corresponding to these fragment data is set to a value (for example, “True”) indicating that “display is possible”.

また、ハッシュ値hに対応する操作関係情報には、利用者名「aaaa」と、操作の行われた時刻「t」とを含み、この操作関係情報にはポインタとして「何もない」状態を表す「nil」が関連づけられている。なおここでの例において、「これはドキュメントの一例です」とのドキュメントが新規に登録される場合、これら文字列全体をフラグメントデータとし、ハッシュ値hにを関連づけられたデータが生成されてもよい(その場合ドキュメントデータは、当該フラグメントへのハッシュ値[f]となる)が、ここでは以下の説明の便宜のため、フラグメントが2つに分割された場合を例示している。   Further, the operation relation information corresponding to the hash value h includes the user name “aaaa” and the time “t” at which the operation was performed, and this operation relation information has a “nothing” state as a pointer. The “nil” that represents is associated. In addition, in the example here, when a document “This is an example of a document” is newly registered, the data associated with the hash value h may be generated using the entire character string as fragment data. (In this case, the document data is a hash value [f] for the fragment). Here, for convenience of the following description, a case where the fragment is divided into two is illustrated.

クライアント装置3は、一般的なパーソナルコンピュータで構わない。このパーソナルコンピュータにはウエブクライアントとしてのブラウザプログラムがインストールされている。   The client device 3 may be a general personal computer. A browser program as a web client is installed in this personal computer.

ここで制御部11によって実行される履歴管理処理と情報提供処理とについて説明する。制御部11によって実行されるこれらの処理のためのプログラムは例えばCGI(Common Gateway Interface)を介して起動されるプログラムとして実装されてもよい。   Here, the history management process and the information provision process executed by the control unit 11 will be described. The program for these processes executed by the control unit 11 may be implemented as a program that is activated via a CGI (Common Gateway Interface), for example.

まず、履歴管理処理について説明する。制御部11は、クライアント装置3側から変更操作の対象となるドキュメントを提供するべき旨の指示(この指示には、対象となるドキュメントの格納場所を特定する情報(URL(Uniform Resource Locator)等)が含まれる)を受け入れると、当該指示を行う利用者名を入力させるウエブページを配信する。ここで利用者名が受信されると、制御部11は、変更操作の対象となったドキュメントをデータベースサーバ2から取り出して、HTML(Hyper Text Markup Language)ドキュメントとして配信する。なお、ここで利用者名を用いて認証を行うこととしてもよい。   First, the history management process will be described. The control unit 11 instructs the client device 3 to provide the document to be changed (information for specifying the storage location of the target document (URL (Uniform Resource Locator) or the like). Is received), a web page for inputting the name of the user who performs the instruction is distributed. When the user name is received here, the control unit 11 takes out the document subjected to the change operation from the database server 2 and distributes it as an HTML (Hyper Text Markup Language) document. In addition, it is good also as authenticating using a user name here.

具体的に図4に概念的に示したドキュメント(そのハッシュ値はd1であるとする)が変更操作の対象となった場合、制御部11は、当該ドキュメントをデータベースサーバ2から読み出す。このドキュメントには、既に述べたように、ドキュメントデータとしてのフラグメントへのハッシュ値の組が含まれている。制御部11は、この組に含まれるハッシュ値を順番に読出して、各ハッシュ値に対応するフラグメントをデータベースサーバ2から取得し、それぞれを連結して、編集可能な状態でクライアント装置3に対して送信する。   Specifically, when the document conceptually shown in FIG. 4 (has a hash value of d1) is the target of the change operation, the control unit 11 reads the document from the database server 2. As described above, this document includes a set of hash values for fragments as document data. The control unit 11 sequentially reads out the hash values included in the set, acquires fragments corresponding to the hash values from the database server 2, concatenates them, and sends them to the client device 3 in an editable state. Send.

つまり、この例では、ドキュメントデータとしてフラグメントへのハッシュ値f1,f2が含まれているので、制御部11は、このハッシュ値に対応するフラグメントをデータベースサーバ2から順次取得する。ここではハッシュ値f1,f2に対応するフラグメントに文字列「これはドキュメントの」及び「一例です」が含まれるので、これらを連結して「これはドキュメントの一例です」を得る。そして制御部11は、この文字列を編集可能な状態とするため、例えばHTMLのテキストエリア(TEXTAREA)タグ中のデフォルト文字列としてこの文字列を設定し、当該HTML記述部分を含むHTML文書を生成して、クライアント装置3に送信する。   That is, in this example, since the hash values f1 and f2 to the fragment are included as the document data, the control unit 11 sequentially acquires the fragments corresponding to the hash value from the database server 2. Here, since the character strings “This is a document” and “an example” are included in the fragments corresponding to the hash values f1 and f2, these are concatenated to obtain “this is an example of a document”. Then, in order to make this character string editable, the control unit 11 sets this character string as a default character string in, for example, an HTML text area (TEXTAREA) tag, and generates an HTML document including the HTML description part. Then, it is transmitted to the client device 3.

また、制御部11は、クライアント装置3から当該送信した文字列の変更結果が送信されると、当該変更結果(変更後ドキュメント)と、上記フラグメントデータに含まれる文字列を連結して得た変更前ドキュメントとを比較して、差分の情報を生成する。   Further, when the change result of the transmitted character string is transmitted from the client device 3, the control unit 11 changes the change result obtained by concatenating the change result (the document after change) and the character string included in the fragment data. Compare with the previous document to generate difference information.

ここで差分の情報は、例えばUNIX(登録商標)において広く用いられているdiffコマンドを用いて生成してもよいが、一般的なdiffコマンドでは行単位の差分となるので、粒度を高めたい場合には、単語単位(形態素解析処理を用いて単語ごとに分離した状態)での差分を生成するdiffコマンドや、文字単位での差分を生成するdiffコマンドが知られているので、それらを利用してもよい。   Here, the difference information may be generated using, for example, a diff command widely used in UNIX (registered trademark). However, in the case of a general diff command, the difference is in line units. There are known diff commands for generating differences in word units (states separated for each word using morphological analysis processing) and diff commands for generating differences in character units. May be.

例えば文字単位での差分を生成するdiffを用いる場合に、上に例示した「これはドキュメントの一例です」を、「これらはドキュメントの例です」と変更した場合には、差分の出力結果は、図5に示すような状態とすることができる。ここで変更を受けた部分のうち、変更後ドキュメントで新たに追加された「ら」の前には「+」記号が付され、変更後ドキュメントで削除された「一」の前には「−」記号が付されている。   For example, when using diff to generate character-by-character differences, if you change “This is an example of a document” as shown above to “This is an example of a document”, the output result of the difference is A state as shown in FIG. 5 can be obtained. Of the changed parts, “+” is added in front of “La” newly added in the changed document, and “−” is added in front of “One” deleted in the changed document. "Symbol.

制御部11は、この出力の各行を新たなフラグメントとする。つまり(1)追記された部分、(2)削除された部分、(3)変更されていない部分のそれぞれ互いに異なる変更操作に対応する連続部分に分割して新たなフラグメントを定めるのである。ここでは、「これ」、「ら」、「はドキュメントの」、「一」、「例です」の5つのフラグメントに分離される。そして、変更されていないフラグメントについては、変更前のフラグメントのハッシュ値を関連づける。ここでは「これ」及び「はドキュメントの」は、変更前の「これらはドキュメントの」(ハッシュ値:f1)に対応するので、文字列「これ」とハッシュ値f1とを関連づけたフラグメントデータと、文字列「はドキュメントの」とハッシュ値f1とを関連づけたフラグメントデータとを生成し、これらのフラグメントデータに対するハッシュ値を演算し(f′1及びf′3とする)、各ハッシュ値に関連づけてフラグメントデータをデータベースサーバ2に登録する。つまり、これら変更のないデータフラグメントの部分は、当該データフラグメントに対応する部分を含む変更前ドキュメントの少なくとも一部を特定する情報に関連づけてデータベースサーバ2に登録しておく。   The control unit 11 sets each line of the output as a new fragment. That is, a new fragment is determined by dividing into (1) an added part, (2) a deleted part, and (3) an unaltered part, each of which is a continuous part corresponding to a different change operation. Here, it is separated into five fragments of “this”, “ra”, “is a document”, “one”, and “example”. For a fragment that has not been changed, the hash value of the fragment before the change is associated. Here, “this” and “is a document” correspond to “these are a document” (hash value: f1) before the change, and therefore, fragment data in which the character string “this” is associated with the hash value f1, Fragment data in which the character string “has a document” and hash value f1 are associated with each other is generated, hash values for these fragment data are calculated (referred to as f′1 and f′3), and associated with each hash value. The fragment data is registered in the database server 2. That is, the data fragment part without change is registered in the database server 2 in association with information for identifying at least a part of the pre-change document including the part corresponding to the data fragment.

なお、追記・削除されたデータに関するフラグメントについては、どちらの変更操作であったかを表す情報をさらに関連づけておいてもよい。例えば「ら」の前に「+」記号を付しておく等とすればよい。   It should be noted that the information regarding the change operation may be further associated with the fragment relating to the additionally written / deleted data. For example, a “+” symbol may be added before “ra”.

また、「ら」のように追記等、変更された部分がある場合は、変更を行った利用者名(最初に取得した利用者名)と変更後ドキュメントを受信した日時の情報とを合わせて操作関係情報を生成し、これに「nil」を関連づけて、ヘッダデータとし、さらにこのヘッダデータのハッシュ値を演算し(ここではh2とする)、このハッシュ値h2とヘッダデータとを関連づけてデータベースサーバ2に登録する。   In addition, when there is a changed part such as “R”, the name of the user who made the change (the name of the user who was first acquired) and the date and time information when the changed document was received are combined. Operation-related information is generated, “nil” is associated with this to make header data, a hash value of this header data is further calculated (here, h2), and the hash value h2 and header data are associated with each other in the database. Register with server 2.

一方、制御部11は、上記追記部分について、その文字列「ら」と当該文字列の変更を行った利用者名を含む操作関係情報に係るハッシュ値(h2)とを関連づけて新たなフラグメントデータとし、このフラグメントデータのハッシュ値(f′2とする)を演算して、当該フラグメントデータとハッシュ値とを関連づけてデータベースサーバ2に登録する。なお、削除部分である文字列「一」についても当該文字列の変更を行った利用者名を含む操作関係情報に係るハッシュ値(h2)を関連づけて新たなフラグメントデータとし、このフラグメントデータのハッシュ値(f′4とする)を演算して、当該フラグメントデータとハッシュ値とを関連づけてデータベースサーバ2に登録する。この削除されたフラグメントデータについては、その可視フラグを、表示可能でないことを表す値(「false」)に設定する。   On the other hand, the control unit 11 associates the character string “ra” with the hash value (h2) related to the operation relation information including the name of the user who changed the character string, and adds new fragment data for the additional portion. The hash value (f′2) of the fragment data is calculated, and the fragment data and the hash value are associated with each other and registered in the database server 2. It is to be noted that the character string “1” which is the deleted portion is also associated with the hash value (h2) related to the operation relation information including the user name who has changed the character string to obtain new fragment data, and the hash of this fragment data A value (referred to as f′4) is calculated, and the fragment data and the hash value are associated with each other and registered in the database server 2. For the deleted fragment data, the visibility flag is set to a value (“false”) indicating that it cannot be displayed.

また「例です」の部分は、変更がないので、元のフラグメントのハッシュ値f2に関連づけられてフラグメントデータが生成され、このフラグメントデータに対するハッシュ値(f′5とする)が演算されて、この当該フラグメントデータとハッシュ値とを関連づけてデータベースサーバ2に登録されることになる。   In addition, since there is no change in the “example” part, fragment data is generated in association with the hash value f2 of the original fragment, and a hash value (referred to as f′5) is calculated for this fragment data. The fragment data and the hash value are associated with each other and registered in the database server 2.

そして制御部11は、これらf′1からf′5を配列したドキュメントデータを生成し、このドキュメントデータに元のドキュメントデータに対するハッシュ値d1を関係づけたデータを生成する。そしてこのデータに対するハッシュ値を演算し(d2とする)、この演算したハッシュ値とデータとを関連づけて、データベースサーバ2に登録する。   The control unit 11 generates document data in which these f′1 to f′5 are arranged, and generates data in which the hash value d1 for the original document data is related to the document data. The hash value for this data is calculated (denoted as d2), and the calculated hash value and data are associated with each other and registered in the database server 2.

これにより、図4に対応するデータの関係は、図6に示すようになる(なお、変更を行った利用者名は「bbbb」、変更に関する日時は「t′」であるとする)。   Accordingly, the relationship of data corresponding to FIG. 4 is as shown in FIG. 6 (note that the name of the user who made the change is “bbbb” and the date and time related to the change is “t ′”).

次に情報提供処理について説明する。制御部11は、クライアント装置3からドキュメントを要求する指示としてドキュメントに関連するハッシュ値の入力を受けて、次のように動作する。入力されたハッシュ値に関連するデータをデータベースサーバ2から取得し、当該データに含まれるドキュメントデータとしてのフラグメントのハッシュ値を取得し、各フラグメントのハッシュ値に対応するフラグメントデータをデータベースサーバ2からさらに取得し、各フラグメントデータに含まれる文字列を連結して、クライアント装置3に提供する。   Next, the information providing process will be described. The control unit 11 receives the input of the hash value related to the document as an instruction to request the document from the client device 3, and operates as follows. Data related to the input hash value is acquired from the database server 2, a hash value of a fragment as document data included in the data is acquired, and fragment data corresponding to the hash value of each fragment is further acquired from the database server 2. Acquired, concatenated character strings included in each piece of fragment data, and provides them to the client device 3.

具体的に図4に示したデータがデータベースサーバ2に格納されているときに、クライアント装置3からハッシュ値d1のドキュメントの要求が受け入れられると、このハッシュ値d1に対応するデータがデータベースサーバ2から読み出される。ここでデータにはドキュメントデータとしてフラグメントへのハッシュ値f1,f2が含まれているので、制御部11は、このハッシュ値に対応するフラグメントをデータベースサーバ2から順次取得する。ここではハッシュ値f1,f2に対応するフラグメントに文字列「これはドキュメントの」及び「一例です」が含まれるので、これらを連結して「これはドキュメントの一例です」を得る。そして制御部11は、この文字列を含むHTML文書を生成して、クライアント装置3に送信する。   Specifically, when the data shown in FIG. 4 is stored in the database server 2, when a request for a document having the hash value d1 is accepted from the client device 3, the data corresponding to the hash value d1 is received from the database server 2. Read out. Here, since the data includes hash values f1 and f2 for the fragments as document data, the control unit 11 sequentially acquires fragments corresponding to the hash values from the database server 2. Here, since the character strings “This is a document” and “an example” are included in the fragments corresponding to the hash values f1 and f2, these are concatenated to obtain “this is an example of a document”. Then, the control unit 11 generates an HTML document including this character string and transmits it to the client device 3.

なお、制御部11はこのとき、各データ(ここではフラグメントデータ)に含まれているハッシュ値hを読み出して、このハッシュ値hに関連づけられているヘッダデータをデータベースサーバ2から取得し、当該ヘッダデータに含まれる利用者名や日時の情報をHTML文書に含めてもよい。この場合、例えばクライアント装置3側で各フラグメントデータに対応する文字列部分にマウスカーソルを重ね合わせたときに、これら利用者名や日時の情報が提供されるようにするため、特殊なタグ(SPANタグなど)を利用することができる。   At this time, the control unit 11 reads the hash value h included in each data (here, fragment data), obtains the header data associated with the hash value h from the database server 2, and the header User name and date / time information included in the data may be included in the HTML document. In this case, for example, when the mouse cursor is overlaid on the character string portion corresponding to each fragment data on the client device 3 side, a special tag (SPAN Tag).

つまり制御部11は、取得したデータに含まれるハッシュ値がnilになるまで、当該ハッシュ値に関連づけられたデータをデータベースサーバ2から読み出す処理を繰り返し、ハッシュ値がnilとなったところで、当該ハッシュ値nilに関連づけられた情報を読み出すことで、利用者名や日時といった操作関係情報(ヘッダデータに含まれる情報)を取得することができる。   That is, the control unit 11 repeats the process of reading the data associated with the hash value from the database server 2 until the hash value included in the acquired data becomes nil, and when the hash value becomes nil, the hash value By reading the information associated with nil, it is possible to acquire operation related information (information included in the header data) such as the user name and date.

さらに図6に示したようなデータがデータベースサーバ2に格納されているときに、クライアント装置3からハッシュ値d2のドキュメントの要求が受け入れられると、このハッシュ値d2に対応するデータがデータベースサーバ2から読み出される。ここでデータにはドキュメントデータとしてフラグメントへのハッシュ値f′1からf′5が含まれているので、制御部11は、これらのハッシュ値に対応するフラグメントをデータベースサーバ2から順次取得する。ここではハッシュ値f′1からf′5に対応するフラグメントに文字列「これ」「ら」「はドキュメントの」及び「一」「例です」が含まれるので、これらを連結して「これらはドキュメントの一例です」を得る。そして制御部11は、この文字列を含むHTML文書を生成して、クライアント装置3に送信する。   Further, when the data as shown in FIG. 6 is stored in the database server 2 and a request for a document having the hash value d2 is accepted from the client device 3, the data corresponding to the hash value d2 is received from the database server 2. Read out. Here, since the data includes the hash values f′1 to f′5 as the document data, the control unit 11 sequentially obtains the fragments corresponding to these hash values from the database server 2. Here, the strings corresponding to the hash values f′1 to f′5 include the character strings “this”, “ra”, “is a document”, “one”, and “is an example”. This is an example of a document. Then, the control unit 11 generates an HTML document including this character string and transmits it to the client device 3.

本実施の形態において特徴的なことの一つは、制御部11が、各フラグメントに関する変更操作の種類ごとに異なる情報を関連づけてこのHTML文書を生成することである。具体的に本実施の形態において制御部11は、ドキュメントのハッシュ値d2に対応するヘッダデータを取り出すべく、d2→d1→hと辿って、ドキュメントの元の生成者である利用者名aaaa、及びその日時tを取得する。   One characteristic of the present embodiment is that the control unit 11 generates this HTML document by associating different information for each type of change operation regarding each fragment. Specifically, in the present embodiment, the control unit 11 traces d2 → d1 → h to extract header data corresponding to the hash value d2 of the document, and the user name aaaa that is the original creator of the document, and The date and time t is acquired.

一方、ハッシュ値f′1に対応するフラグメントについては、文字列「これ」に関するヘッダデータを取得するため、対応付けられているハッシュ値f1を読み出し、データベースサーバ2からハッシュ値f1に対応するデータ(フラグメントデータ)を読み出し、それに含まれるハッシュ値がnilではなくhであるので、さらにハッシュ値hに対応するデータ(ヘッダデータ)を取得して、利用者名「aaaa」等を取得し、これを例えばSPANタグのタイトル属性として関連づける。   On the other hand, for the fragment corresponding to the hash value f′1, in order to obtain the header data related to the character string “this”, the associated hash value f1 is read, and the data corresponding to the hash value f1 is read from the database server 2 ( Fragment data) is read, and the hash value included in it is h instead of nil, so further data (header data) corresponding to the hash value h is obtained, the user name “aaaa”, etc. is obtained, For example, it is related as the title attribute of the SPAN tag.

また、ハッシュ値f′2に対応するフラグメントについては、文字列「ら」が追記されたものであり、また、それに含まれるハッシュ値h2にはヘッダデータとして利用者名「bbbb」を含むものが関連づけられているので、利用者名「bbbb」等を取得し、INSタグ等を用いて文字列「ら」を第1の方法で強調表示(例えば太字、下線など)するとともに、利用者名等をその属性として関連づける。   The fragment corresponding to the hash value f′2 is a character string “R” added, and the hash value h2 included in the fragment includes the user name “bbbb” as header data. Since it is associated, the user name “bbbb” or the like is acquired, and the character string “ra” is highlighted (for example, bold, underline) using the INS tag etc. As the attribute.

さらにハッシュ値f′4に対応するフラグメントについては、文字列「一」に関連付けられた可視フラグが「表示可能でない」ことを表す値に設定されているので、DELタグなどを用いて文字列「一」を第2の方法で強調表示(例えば打ち消し線などで打ち消す表示)をする。また、このハッシュ値f′4に対応するフラグメントに含まれるハッシュ値h2には、ヘッダデータとして利用者名「bbbb」を含むものが関連づけられているので、利用者名「bbbb」等を取得し、利用者名等をその属性として関連づける。   Further, for the fragment corresponding to the hash value f′4, since the visible flag associated with the character string “one” is set to a value indicating “not displayable”, the character string “ “1” is highlighted by the second method (for example, the display is canceled by a strike line). Further, since the hash value h2 included in the fragment corresponding to the hash value f'4 is associated with the header data including the user name "bbbb", the user name "bbbb" is acquired. The user name is associated as the attribute.

そうして生成されたHTML文書は、例えば図7に示すようなものとなり、この図7に示されたHTML文書を受信したクライアント装置3がこれを表示すると、そのブラウザの機能にも依存するが、一般的には図8に示すような状態となって、追記部分に下線が引かれるとともに、削除部分に「X」マークが重ね合わせられるか、又は打消し線が引かれる。またブラウザの機能によっては、利用者がこれらの文字列のうち、「これ」や「はドキュメントの」や「例です」など、SPANタグで囲まれた部分にマウスカーソルを重ねると、「aaaa,t」などと、関連づけられている利用者名や変更日時の情報が提供される。同様に、追記部分や削除部分にマウスカーソルを重ねると、「bbbb,t′」といったように、CITEやDATETIME属性で関連づけられた情報が提供される。   The generated HTML document is as shown in FIG. 7, for example. When the client device 3 that has received the HTML document shown in FIG. 7 displays the HTML document, it depends on the function of the browser. In general, the state as shown in FIG. 8 is obtained, and an underline is drawn in the additional writing portion, and an “X” mark is superimposed on the deletion portion or a strike-through line is drawn. Also, depending on the browser function, if the user moves the mouse cursor over a part of these strings that is surrounded by SPAN tags, such as “this”, “is a document”, or “example”, “aaa, t ”and the like, information on the associated user name and modification date are provided. Similarly, when the mouse cursor is over the added part or the deleted part, information associated with the CITE or DATETIME attribute is provided, such as “bbbb, t ′”.

このように本実施の形態によると、利用者側でドキュメントに対する変更操作の履歴を生成する必要なく、変更履歴つきのドキュメントを提供できる。   As described above, according to the present embodiment, it is possible to provide a document with a change history without the user having to generate a history of change operations for the document.

なお、本実施の形態の説明では、ヘッダデータに含める情報として利用者名と変更に係る日時としていたが、これに限らず、変更者のコメントなど、他の情報を含めても構わない。また、ここではウエブサーバ1とデータベースサーバ2とを別体の装置であるように記載しているが、これらは一体の装置であっても構わない。さらに、ここではウエブサーバを例として説明したが、本発明のサーバ装置は、他のサーバ装置、例えば一般的なファイルサーバなどであってもよい。   In the description of the present embodiment, the user name and the date / time related to the change are included as information to be included in the header data. However, the present invention is not limited to this, and other information such as a changer's comment may be included. Although the web server 1 and the database server 2 are described as separate devices here, they may be integrated devices. Furthermore, although the web server has been described here as an example, the server device of the present invention may be another server device, such as a general file server.

上記実施の形態に記載した制御部11によって実行される処理について、具体的に既読判定処理、ドキュメント更新処理、ドキュメント表示処理に分けて説明する。まず、既読判定処理について説明する。既読判定の処理では、注目フラグメントfについて利用者が過去に閲覧したか否かを判定する。すなわち制御部11は、利用者が過去に閲覧したフラグメントの配列F(利用者ごとに例えば利用者側のクライアント装置にクッキーとして登録しておく)を取得して、図9に示す処理を開始し、当該注目フラグメントfがフラグメント配列Fに含まれているか否かを調べる(S1)。そして注目フラグメントfがフラグメント配列Fに含まれているならば(Yesならば)、「既読である」旨を表す値「true」を出力して処理を終了する(S2)。   The processing executed by the control unit 11 described in the above embodiment will be described specifically by dividing it into already-read determination processing, document update processing, and document display processing. First, the read determination process will be described. In the already-read determination process, it is determined whether or not the user has viewed the target fragment f in the past. That is, the control unit 11 acquires an array F of fragments that the user has viewed in the past (registered as a cookie for each user, for example, in a client device on the user side), and starts the processing illustrated in FIG. Then, it is checked whether or not the fragment of interest f is included in the fragment sequence F (S1). If the fragment of interest f is included in the fragment array F (if Yes), the value “true” representing “read” is output and the process is terminated (S2).

また、注目フラグメントfがフラグメント配列Fに含まれていなければ(Noならば)、次に注目フラグメントfに関連付けられたハッシュ値(参照;Reference)があるか否かを調べ(S3)、参照を有していなければ(Noならば)、「既読でない」旨を表す値「false」を出力して処理を終了する(S4)。   If the target fragment f is not included in the fragment array F (if No), then it is checked whether or not there is a hash value (reference) associated with the target fragment f (S3). If not (No), a value “false” indicating “not read” is output and the process is terminated (S4).

一方、処理S3で参照を有してれば(Yesならば)、参照によって特定されるフラグメントを新たな注目フラグメントfとして(fを参照に置換;S5)、処理S1に戻って処理を続ける。   On the other hand, if there is a reference in the process S3 (if Yes), the fragment specified by the reference is set as a new target fragment f (replace f with a reference; S5), and the process returns to the process S1 to continue the process.

また、ドキュメントが更新されたときには制御部11は、図10に示す処理を開始し、doldを元のドキュメント、hnewを更新者や更新日時を表す情報、tnewを更新されたテキストとして、元ドキュメントにおいて可視と設定されているフラグメントを取り出し、取り出したフラグメント内のテキストを連結して、変更前のテキストtoldを生成する(S11)。   Further, when the document is updated, the control unit 11 starts the processing shown in FIG. 10, and in the original document, dod is the original document, hnew is the information indicating the updater and update date, and tnew is the updated text. The fragment set to be visible is taken out, and the text in the taken out fragment is concatenated to generate the text tod before change (S11).

そして、toldと、tnewとの差分配列Dを生成する(S12)。ここで差分配列Dの要素は、(1)追記された部分、(2)削除された部分、(3)変更されていない部分を特定する情報要素を含み、例えば追記された部分については「+」符号を付して、[+,テキスト]のようなデータを生成し、削除された部分については「−」符号を付して、[-,テキスト]のようなデータを生成し、変更されていない部分については符号を付さずにnilとして、[nil,テキスト]のようなデータを生成する。   Then, a difference array D between "told" and "tnew" is generated (S12). Here, the elements of the difference array D include (1) an added part, (2) a deleted part, and (3) an information element that specifies an unaltered part. "] Is added to generate data such as [+, text], and deleted parts are marked with"-"to generate data such as [-, text]. For the part that is not, the data such as [nil, text] is generated with nil without adding a sign.

次に制御部11は、元のドキュメントdoldを構成するフラグメント配列Foldを取得する(S13)。これはデータベースサーバ2から取得することができる。そしてFoldと、差分配列Dとの共通細分Fnewを生成する(S14)。ここで共通細分とは次のようなものである。すなわち、元のドキュメントdoldは「これはドキュメントの一例です」であり、そのフラグメント配列としては、「これは」とのフラグメントf1と、「ドキュメントの一例です」とのフラグメントf2との2つのフラグメントを含むことになる(Fold=[f1,f2]の場合)。   Next, the control unit 11 obtains a fragment array Fold constituting the original document dold (S13). This can be acquired from the database server 2. Then, a common subdivision Fnew between Fold and the difference array D is generated (S14). Here, the common subdivision is as follows. That is, the original document “dold” is “this is an example of a document”, and the fragment array includes two fragments of a fragment f1 “this is” and a fragment f2 “an example of a document”. (Fold = [f1, f2]).

ここで、変更後のテキストtnewが「これらはドキュメントの例です」である場合、変更前のテキストtold「これはドキュメントの一例です」との間の差分配列Dは、
[nil,これ]
[+,ら]
[nil,はドキュメントの]
[-,一]
[nil,例です]
の5つの要素を含むものとなる。
Here, when the text tnew after the change is “these are examples of documents”, the difference array D between the text “told” before the change “this is an example of documents” is
[nil, this]
[+, Ra]
[nil, is the document]
[-,one]
[nil, example]
These five elements are included.

ここでもとのフラグメント配列Foldと、差分配列Dとの分割位置をすべて含む、最小の分割を共通細分として生成すると、Foldでは、「これは」と、「ドキュメント」との間で分割されているので、当該位置での分割を含め、
[nil,これ]
[+,ら]
[nil,は]
[nil,ドキュメントの]
[-,一]
[nil,例です]
の6つの要素を含むものとなる。
Here, when the minimum division including all the division positions of the original fragment array Fold and the difference array D is generated as a common subdivision, in Fold, “this is” and “document” are divided. So, including the division at that position,
[nil, this]
[+, Ra]
[nil]
[nil, document]
[-,one]
[nil, example]
The six elements are included.

また、元のフラグメント配列Foldが「これはドキュメントの」と、「一例です」とに分けられていた場合、差分配列Dとの共通細分は、
[nil,これ]
[+,ら]
[nil,はドキュメントの]
[-,一]
[nil,例です]
の5つの要素を含むものとなる。
In addition, when the original fragment array Fold is divided into “this is a document” and “an example”, the common subdivision with the difference array D is
[nil, this]
[+, Ra]
[nil, is the document]
[-,one]
[nil, example]
These five elements are included.

制御部11は、こうして生成した共通細分Fnewをデータ部に含み、元のドキュメントのハッシュ値(参照)を参照部に含むドキュメントdnewを生成して(S15)、処理を終了する。   The control unit 11 generates the document dnew including the common subdivision Fnew thus generated in the data unit and the hash value (reference) of the original document in the reference unit (S15), and ends the process.

さらに制御部11は、ドキュメントの表示処理として、図11に示す処理を開始する。ここでは指定されたドキュメントdnewから、利用者が既に閲覧した(既読の)ドキュメントdoldを見いだす(dnewから順に参照を辿りつつ、利用者側にクッキーなどとして登録した情報から、利用者が過去に閲覧したドキュメントを見つけ出す)。   Further, the control unit 11 starts the process shown in FIG. 11 as the document display process. Here, the document dold that the user has already viewed (read) is found from the specified document dnew (from the information registered as a cookie or the like on the user side while following the reference in order from dnew) Find the documents you ’ve viewed).

そして、doldからフラグメント配列Foldを取り出し、dnewからフラグメント配列Fnewを取り出す(S21)。そしてFnewに未処理のフラグメントがあるか否かを調べる(S22)。当初はすべてのフラグメントが未処理になっている。この処理S22において、未処理のフラグメントがなければ(Noならば)、処理を終了する。また未処理のフラグメントがあれば(Yesならば)、未処理のフラグメントの一つを注目フラグメントfとして取り出す(S23)。そして、注目フラグメントfのヘッダhを取り出す(S24)。次に、注目フラグメントfが、Fold(利用者が過去に閲覧したフラグメントの配列)に含まれ、既に閲覧されたものであるか否かを判断する(S25)。この処理S25の判断において、図9に示した既読判定の処理が行われる。処理S25において、注目フラグメントfがFoldに対して既読であった(既に閲覧された)と判断された場合(Yesの場合)、注目フラグメントfが可視であるか否かを判断し(S26)、可視でなければ(Noならば)、処理S22に移行して処理を続ける。   Then, the fragment array Fold is extracted from dold, and the fragment array Fnew is extracted from dnew (S21). Then, it is checked whether there is an unprocessed fragment in Fnew (S22). Initially all fragments are unprocessed. In this process S22, if there is no unprocessed fragment (if No), the process is terminated. If there is an unprocessed fragment (if Yes), one of the unprocessed fragments is taken out as the target fragment f (S23). Then, the header h of the target fragment f is extracted (S24). Next, it is determined whether the target fragment f is included in Fold (an array of fragments browsed by the user in the past) and has already been browsed (S25). In the determination in step S25, the already-read determination process shown in FIG. 9 is performed. In the process S25, when it is determined that the target fragment f has been read (already viewed) with respect to Fold (in the case of Yes), it is determined whether or not the target fragment f is visible (S26). If it is not visible (if No), the process proceeds to step S22 to continue the process.

一方、処理S26において注目フラグメントfが可視であれば(Yesならば)、注目フラグメントfのテキストにヘッダhを付与して出力(テキストを囲むspanタグの属性として付与する)し(S27)、処理S22に移行する。   On the other hand, if the fragment of interest f is visible in processing S26 (if Yes), the header h is added to the text of the fragment of interest f and output (provided as an attribute of the span tag surrounding the text) (S27). The process proceeds to S22.

また、処理S25が注目フラグメントfがFoldに対して既読でなかった(未だ閲覧されていない)と判断されると(Noであると)、次に注目フラグメントfが可視であるか否かを判断し(S28)、可視でなければ(Noならば)、注目フラグメントfのテキストにヘッダhを付与し、削除されたことを表す強調修飾を行って出力(テキストを囲むdelタグを設定し、その属性とヘッダの情報を付与する)し(S29)、処理S22に移行する。   If it is determined in step S25 that the target fragment f has not been read with respect to Fold (has not been browsed yet) (No), it is next determined whether the target fragment f is visible. Judgment is made (S28), if it is not visible (if No), a header h is given to the text of the fragment of interest f, emphasis modification is performed to indicate that it has been deleted, and output (a del tag surrounding the text is set) (Attributes and header information are added) (S29), and the process proceeds to S22.

一方、処理S28において注目フラグメントfが可視であれば(Yesならば)、注目フラグメントfのテキストにヘッダhを付与し、追記されたことを表す強調修飾を行って出力(テキストを囲むinsタグを設定し、その属性としてヘッダの情報を付与する)し(S30)、処理S22に移行する。   On the other hand, if the fragment of interest f is visible (if Yes) in step S28, a header h is added to the text of the fragment of interest f, and emphasis modification is performed to indicate that it has been added (the ins tag surrounding the text is output) Set and assign header information as the attribute) (S30), and the process proceeds to S22.

これにより、ドキュメントを、利用者が過去に参照してからの変更状況に応じて、図8に示したような状態で提示できるようになる。   As a result, the document can be presented in a state as shown in FIG. 8 according to the change status since the user referred to it in the past.

本発明の実施の形態に係るサーバ装置の構成とそのネットワーク接続例を表すブロック図である。It is a block diagram showing the structure of the server apparatus which concerns on embodiment of this invention, and its network connection example. データベースサーバ内で管理されるデータ構造の一例を表す説明図である。It is explanatory drawing showing an example of the data structure managed within a database server. データベースサーバが管理するテーブルの一例を表す説明図である。It is explanatory drawing showing an example of the table which a database server manages. データベースサーバ内で管理されるデータ間の関係の例を表す説明図である。It is explanatory drawing showing the example of the relationship between the data managed within a database server. ドキュメントの差分を生成した例を表す説明図である。It is explanatory drawing showing the example which produced | generated the difference of the document. データベースサーバ内で管理されるデータ間の関係の別の例を表す説明図である。It is explanatory drawing showing another example of the relationship between the data managed within a database server. サーバ装置が生成するHTML文書の一部の例を表す説明図である。It is explanatory drawing showing the example of a part of HTML document which a server apparatus produces | generates. サーバ装置から提供されるHTML文書を表示した例を表す説明図である。It is explanatory drawing showing the example which displayed the HTML document provided from a server apparatus. 本発明の実施例に係るプログラムの実例を表すフローチャート図である。It is a flowchart figure showing the example of the program which concerns on the Example of this invention. 本発明の実施例に係るプログラムの実例を表すフローチャート図である。It is a flowchart figure showing the example of the program which concerns on the Example of this invention. 本発明の実施例に係るプログラムの実例を表すフローチャート図である。It is a flowchart figure showing the example of the program which concerns on the Example of this invention.

符号の説明Explanation of symbols

1 ウエブサーバ、2 データベースサーバ、3 クライアント装置、11 制御部、12 記憶部、13 通信部。
1 web server, 2 database server, 3 client device, 11 control unit, 12 storage unit, 13 communication unit.

Claims (7)

少なくとも一つのドキュメントを保持するデータベースにアクセス可能に接続されたサーバ装置であって、
前記ドキュメントのうち処理対象となった変更前ドキュメントに対して変更操作を行って得られた変更後ドキュメントを受け入れる受入手段と、
前記変更前ドキュメントを複数の変更前文字列に分割し、それぞれの変更前文字列に、操作関係情報のハッシュ値を対応づけたフラグメントを、変更前フラグメントとして前記データベースに登録する登録手段と、
前記変更後ドキュメントを、前記変更前ドキュメントからの変更操作の種類ごとに変更後文字列に分割する分割手段と、
を含み、
前記登録手段は、前記変更後文字列のうち、その内容がそのまま前記変更前ドキュメントに含まれている変更後文字列については、当該変更後文字列に対応する部分を含む前記変更前フラグメントのハッシュ値に関連づけたフラグメントを、変更後フラグメントとして生成し、当該変更後フラグメントを前記データベースに登録することを特徴とするサーバ装置。
A server device connected to a database that holds at least one document,
An accepting unit for accepting a post-change document obtained by performing a change operation on a pre-change document to be processed among the documents;
A registration unit that divides the pre-change document into a plurality of pre-change character strings, and registers a fragment in which the hash value of the operation relation information is associated with each pre-change character string in the database as the pre-change fragment;
Dividing means for dividing the post- change document into post-change character strings for each type of change operation from the pre-change document;
Including
Said registration means, out of the after-string, the changes after a character string, the content of which is included as is to the pre-change document, hash of the before-fragment containing the portion corresponding to the character string after the change A server device , wherein a fragment associated with a value is generated as a modified fragment, and the modified fragment is registered in the database.
請求項1に記載のサーバ装置であって、
前記登録手段は、前記分割手段により得られた変更後文字列のうち、その内容が前記変更前ドキュメントに含まれておらず、変更後ドキュメントに追加された変更後文字列については、当該追加の変更操作に関する操作関係情報のハッシュ値を関連づけたフラグメントを、変更後フラグメントとして生成し、当該生成した変更後フラグメントを前記データベースに登録することを特徴とするサーバ装置。
The server device according to claim 1,
The registration means includes the additional character string added to the post-change document, the content of which is not included in the pre-change document among the post-change character strings obtained by the dividing means. A server device , wherein a fragment associated with a hash value of operation related information related to a change operation is generated as a post-change fragment, and the generated post-change fragment is registered in the database.
請求項1または2に記載のサーバ装置であって、
前記登録手段は、前記変更前文字列のうち、その内容が前記変更前ドキュメントに含まれ、変更後ドキュメントで削除された変更前文字列については、当該削除の変更操作に関する操作関係情報のハッシュ値を関連づけたフラグメントを、変更後フラグメントとして生成し、当該生成した変更後フラグメントを前記データベースに登録することを特徴とするサーバ装置。
The server device according to claim 1 or 2, wherein
Said registration means, out of the pre-change string, the content of which is included in the pre-change documents for deleted before-string after change document, hash value of the operation related information related to the deletion of the change operation the association was fragments, generated as post-change fragment, the server apparatus characterized by registering the changes after fragment thus generated in the database.
請求項2または3に記載のサーバ装置であって、
前記操作関係情報には、前記変更操作を行った利用者を特定する情報と、前記変更操作が行われた日時に関する情報との少なくとも一方を含むことを特徴とするサーバ装置。
The server device according to claim 2 or 3, wherein
The server apparatus according to claim 1, wherein the operation-related information includes at least one of information for identifying a user who has performed the changing operation and information regarding a date and time when the changing operation is performed.
請求項1から4のいずれか一項に記載のサーバ装置であって、
前記ドキュメントから分割して得られたフラグメントをクライアント装置側に提供する提供手段を含み、
前記提供手段が、当該ドキュメントを分割して得られたフラグメントごとに、当該フラグメントに係る変更操作の種類ごとに異なる情報を関連づけて、前記クライアント装置側に提供することを特徴とするサーバ装置。
The server device according to any one of claims 1 to 4, wherein
Providing means for providing a fragment obtained by dividing the document to the client device side;
The server device, wherein the providing means associates different information for each type of change operation related to the fragment for each fragment obtained by dividing the document, and provides the information to the client device side.
請求項1から5のいずれか一項に記載のサーバ装置であって、  The server device according to any one of claims 1 to 5,
前記変更前ドキュメントは、前記変更前ドキュメントのハッシュ値のセットとして表現され、当該変更前ドキュメントの操作を行った利用者を示す操作関係情報のハッシュ値に関連づけて前記データベースに登録されていることを特徴とするサーバ装置。  The pre-change document is expressed as a set of hash values of the pre-change document, and is registered in the database in association with a hash value of operation relation information indicating a user who has operated the pre-change document. A server device as a feature.
少なくとも一つのドキュメントを保持するデータベースにアクセス可能に接続されたコンピュータを
前記ドキュメントのうち処理対象となった変更前ドキュメントに対して変更操作を行って得られた変更後ドキュメントを受け入れる受入手段と、
前記変更前ドキュメントを複数の変更前文字列に分割し、それぞれの変更前文字列に、操作関係情報のハッシュ値を対応づけたフラグメントを、変更前フラグメントとして前記データベースに登録する登録手段と、
前記変更後ドキュメントを、前記変更前ドキュメントからの変更操作の種類ごとに変更後文字列に分割する分割手段と、
として機能させ、
前記登録手段として、前記変更後文字列のうち、その内容がそのまま前記変更前ドキュメントに含まれている変更後文字列については、当該変更後文字列に対応する部分を含む前記変更前フラグメントのハッシュ値に関連づけたフラグメントを、変更後フラグメントとして生成し、当該変更後フラグメントを前記データベースに登録させることを特徴とするプログラム。
A computer connected to a database holding at least one document,
An accepting unit for accepting a post-change document obtained by performing a change operation on a pre-change document to be processed among the documents;
A registration unit that divides the pre-change document into a plurality of pre-change character strings, and registers a fragment in which the hash value of the operation relation information is associated with each pre-change character string in the database as the pre-change fragment;
Dividing means for dividing the post- change document into post-change character strings for each type of change operation from the pre-change document;
Function as
Examples registration means, out of the after-string, the changes after a character string, the content of which is included as is to the pre-change document hash of the before-fragment containing the portion corresponding to the character string after the change A program that generates a fragment associated with a value as a modified fragment and registers the modified fragment in the database.
JP2004084801A 2004-03-23 2004-03-23 Server device Expired - Fee Related JP4547954B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004084801A JP4547954B2 (en) 2004-03-23 2004-03-23 Server device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004084801A JP4547954B2 (en) 2004-03-23 2004-03-23 Server device

Publications (2)

Publication Number Publication Date
JP2005275565A JP2005275565A (en) 2005-10-06
JP4547954B2 true JP4547954B2 (en) 2010-09-22

Family

ID=35175208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004084801A Expired - Fee Related JP4547954B2 (en) 2004-03-23 2004-03-23 Server device

Country Status (1)

Country Link
JP (1) JP4547954B2 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020370A (en) * 1998-06-29 2000-01-21 Sharp Corp Data synchronous processor
JP2000148691A (en) * 1998-11-17 2000-05-30 Fujitsu Ltd Information synchronization system and recording medium
JP2000231506A (en) * 1999-02-12 2000-08-22 Nec Corp Method and device for outputting tree structure finite difference in tree structure data editing system
JP2001117801A (en) * 1999-10-22 2001-04-27 Sharp Corp Database synchronizing processor and recording medium recorded with database synchronizing process program
JP2001521251A (en) * 1997-10-24 2001-11-06 マイクロソフト コーポレイション Email object synchronization between desktop computers and mobile devices
JP2002024211A (en) * 2000-06-30 2002-01-25 Hitachi Ltd Method and system for document management and storage medium having processing program stored thereon
JP2002055864A (en) * 2000-08-09 2002-02-20 Seiko Epson Corp Data updating method and information processor
JP2003280967A (en) * 2002-03-22 2003-10-03 Fujitsu Ltd Data management apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04270458A (en) * 1991-02-26 1992-09-25 Matsushita Electric Ind Co Ltd Document processing method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001521251A (en) * 1997-10-24 2001-11-06 マイクロソフト コーポレイション Email object synchronization between desktop computers and mobile devices
JP2000020370A (en) * 1998-06-29 2000-01-21 Sharp Corp Data synchronous processor
JP2000148691A (en) * 1998-11-17 2000-05-30 Fujitsu Ltd Information synchronization system and recording medium
JP2000231506A (en) * 1999-02-12 2000-08-22 Nec Corp Method and device for outputting tree structure finite difference in tree structure data editing system
JP2001117801A (en) * 1999-10-22 2001-04-27 Sharp Corp Database synchronizing processor and recording medium recorded with database synchronizing process program
JP2002024211A (en) * 2000-06-30 2002-01-25 Hitachi Ltd Method and system for document management and storage medium having processing program stored thereon
JP2002055864A (en) * 2000-08-09 2002-02-20 Seiko Epson Corp Data updating method and information processor
JP2003280967A (en) * 2002-03-22 2003-10-03 Fujitsu Ltd Data management apparatus

Also Published As

Publication number Publication date
JP2005275565A (en) 2005-10-06

Similar Documents

Publication Publication Date Title
JP3860347B2 (en) Link processing device
JP3998706B2 (en) Document data management method, management system, and computer software
KR20140048139A (en) Dynamically updating a running page
US7720814B2 (en) Repopulating a database with document content
JP4398454B2 (en) Annotation management program, annotation management device, annotation editing program, and annotation editing device
JP2007141123A (en) Link of same character strings in different files
JP2008090404A (en) Document retrieval apparatus, method and program
US20090265615A1 (en) Data processing server and data processing method
EP1768034A1 (en) Document processing device and document processing method
TW201333725A (en) New HTML tag for improving page navigation user experience
JP2002215519A (en) Method and system for web page generation, web page generating program, and recording medium
US20090287994A1 (en) Document processing device and document processing method
JP2007179347A (en) Program verification support system
JP7014958B2 (en) Editing program, editing device, and editing method
JP4547954B2 (en) Server device
JP2006134102A (en) Program, method and apparatus for supporting directory edition
JP2005327297A (en) Knowledge information collecting system and knowledge information collecting method
JP2005190458A (en) Provision method of electronic document with function, its program, and its device and system
JP2022175871A (en) Computer program, server device, terminal device and method
JP2017220104A (en) Client device, information processing system, and program
KR100573091B1 (en) Personal banner creating program
Good et al. iHOPerator: user-scripting a personalized bioinformatics Web, starting with the iHOP website
JP3478195B2 (en) Database search result display system, method and recording medium
JP4752020B2 (en) Character string acquisition method and character string acquisition system
JP2000222326A (en) Learning supporting method and its system and storage medium for storing learning supporting program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070221

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071112

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100615

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100628

R150 Certificate of patent or registration of utility model

Ref document number: 4547954

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140716

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees