JP2019133534A - Merging method, merging device, and merging program - Google Patents

Merging method, merging device, and merging program Download PDF

Info

Publication number
JP2019133534A
JP2019133534A JP2018016890A JP2018016890A JP2019133534A JP 2019133534 A JP2019133534 A JP 2019133534A JP 2018016890 A JP2018016890 A JP 2018016890A JP 2018016890 A JP2018016890 A JP 2018016890A JP 2019133534 A JP2019133534 A JP 2019133534A
Authority
JP
Japan
Prior art keywords
data
change
structured document
sentence data
change sentence
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
JP2018016890A
Other languages
Japanese (ja)
Other versions
JP7073756B2 (en
Inventor
駿人 西村
Hayato Nishimura
駿人 西村
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 JP2018016890A priority Critical patent/JP7073756B2/en
Publication of JP2019133534A publication Critical patent/JP2019133534A/en
Application granted granted Critical
Publication of JP7073756B2 publication Critical patent/JP7073756B2/en
Active 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

To appropriately merge a plurality of documents generated by mutually different updates.SOLUTION: A merging method of the present invention is executed by a merging device and includes a difference acquisition process and a merge process. With respect to a first and a second structured document generated by separate updates on a structured document, the difference acquisition process acquires first difference information indicating a difference between the first structured document and the structured document and second difference information indicating a difference between the second structured document and the structured document. The merge process determines the order of application of first changed statement data included in the first difference information and second changed statement data included in the second difference information, and when applying the first changed statement data to the structured document on the basis of the order of application, applies the second changed statement data having second phrase data belonging to a second hierarchy equal to a first hierarchy as applicable, to the structured document as well, and merges the first and the second structured documents.SELECTED DRAWING: Figure 1

Description

本発明は、併合方法、併合装置、および併合プログラムに関する。   The present invention relates to a merging method, a merging apparatus, and a merging program.

従来、データ記述言語等を用いるソフトウェア開発において、複数の開発者がデータを共有しながら、開発を進める場合がある。この際に、データ記述言語等により記述された構造化文書に対し、それぞれ異なる更新が行われることがある。この場合に、更新後の複数の構造化文書の併合処理が行なわれる場合がある。   Conventionally, in software development using a data description language or the like, a plurality of developers may advance development while sharing data. At this time, the structured document described in the data description language or the like may be updated differently. In this case, a merge process of a plurality of structured documents after update may be performed.

特開2013−65181号公報JP2013-65181A 特開2006−163912号公報JP 2006-163912 A 特開2004−46745号公報JP 2004-46745 A

構造化文書である共有データに対し、互いに競合する更新が行われる可能性がある。互いに競合する更新が行なわれた複数の構造化文書が併合された場合、併合後の構造化文書の構造が破壊される可能性がある。併合後の構造化文書の構造が破壊された場合、適切でない併合結果が出力されることとなる。   There is a possibility that updates that conflict with each other may be performed on shared data that is a structured document. When a plurality of structured documents that have been updated in conflict with each other are merged, the structure of the merged structured document may be destroyed. If the structure of the structured document after merging is destroyed, an inappropriate merging result will be output.

また更新後の複数の構造化文書の各々の併合処理を行う場合、各更新を実行するための命令の実行順序によっては、適切でない併合結果が出力されることとなる。   Further, when the merge processing of each of the plurality of structured documents after update is performed, an inappropriate merge result is output depending on the execution order of instructions for executing each update.

本発明の一つの側面に係る目的は、互いに異なる更新により生成される複数の構造化文書を適切に併合することを目的とする。   An object according to one aspect of the present invention is to appropriately merge a plurality of structured documents generated by different updates.

本発明の1つの態様の併合方法は、併合装置により実行され、差分取得処理と併合処理とを含む。差分取得処理は、構造化文書に対する別個の更新により生成される第1の構造化文書および第2の構造化文書について、第1の構造化文書と構造化文書との差分を示す第1の差分情報、および第2の構造化文書と構造化文書との差分を示す第2の差分情報を取得する。併合処理は、第1の変更文データおよび第2の変更文データの適用順序を決定する。適用順序は、第1の差分情報が含む第1の変更文データの適用対象の第1の語句データの構造化文書における第1の階層と、第2の差分情報が含む第2の変更文データの適用対象の第2の語句データの構造化文書における第2の階層の各々の深さに基づき決定される。併合部は、適用順序に基づき第1の変更文データの構造化文書への適用の際に、第1の階層と等しい第2の階層に所属する第2の語句データを適用対象とする第2の変更文データも併せて構造化文書に適用し、第1の構造化文書および第2の構造化文書を併合する。   The merging method of one aspect of the present invention is executed by a merging device and includes a difference acquisition process and a merging process. The difference acquisition process includes a first difference indicating a difference between the first structured document and the structured document with respect to the first structured document and the second structured document generated by separate updates to the structured document. Information and second difference information indicating a difference between the second structured document and the structured document are acquired. In the merging process, the application order of the first change statement data and the second change statement data is determined. The application order includes the first hierarchy in the structured document of the first phrase data to be applied to the first change sentence data included in the first difference information, and the second change sentence data included in the second difference information. Is determined based on the depth of each of the second hierarchies in the structured document of the second phrase data to be applied. The merging unit applies the second phrase data belonging to the second hierarchy equal to the first hierarchy to the application target when applying the first change sentence data to the structured document based on the application order. The changed sentence data is also applied to the structured document, and the first structured document and the second structured document are merged.

上述の態様によれば、互いに異なる更新により生成される複数の構造化文書を適切に併合できる。   According to the above aspect, a plurality of structured documents generated by different updates can be appropriately merged.

本実施形態に係る併合装置の機能ブロックを例示する図である。It is a figure which illustrates the functional block of the merge apparatus which concerns on this embodiment. 変更対象の文書データと、文書データの変更について変更履歴から抽出される変更文データを例示する図である。It is a figure which illustrates change text data extracted from change history about change of document data and change of document data. 変更文データの適用により変更された文書データと変更文データを例示する図である。It is a figure which illustrates the document data and change sentence data which were changed by application of change sentence data. 変更文データの適用により変更された文書データを例示する図である。It is a figure which illustrates the document data changed by application of change sentence data. 集約について例示的に説明するための図である。It is a figure for demonstrating an example about aggregation. 互いに異なる更新結果を得る2つの変更文データを、1つの語句データへ適用する場合における併合部の処理内容を例示する図である。It is a figure which illustrates the processing content of the merge part in the case of applying the two change sentence data which obtain mutually different update results to one word data. 1つの語句データを変更対象とする変更命令が1つだけである場合における併合部の処理方法を例示する図である。It is a figure which illustrates the processing method of the merge part in case there is only one change command which changes one word data. 選択部からの表示指示に応じた、入出力部による表示内容を例示する図である。It is a figure which illustrates the display content by the input-output part according to the display instruction from a selection part. 併合部による併合処理が行われるまでの、本実施形態に係る併合装置による処理のフローを例示する図である。It is a figure which illustrates the flow of the process by the merge apparatus which concerns on this embodiment until the merge process by a merge part is performed. 2つの変更命令があった場合における差分情報の抽出処理について具体的に説明するための図(その1)である。FIG. 11 is a diagram (No. 1) for specifically explaining a difference information extraction process when there are two change commands. 2つの変更命令があった場合における差分情報の抽出処理について具体的に説明するための図(その2)である。FIG. 10 is a diagram (No. 2) for specifically explaining differential information extraction processing when there are two change commands. 2つの変更命令があった場合における差分情報の抽出処理について具体的に説明するための図(その3)である。FIG. 14 is a diagram (No. 3) for specifically explaining the difference information extraction processing when there are two change instructions. ソート部による処理内容の一例を示す図である。It is a figure which shows an example of the processing content by a sort part. 集約部による処理の詳細を例示する図である。It is a figure which illustrates the detail of the process by an aggregation part. 前処理のフローの一部を例示する図である。It is a figure which illustrates a part of flow of pre-processing. 集約部による処理についての詳細を例示するフローチャートである。It is a flowchart which illustrates the detail about the process by an aggregation part. 集約部による前処理の実行前後の変更文データの具体例を示す図である。It is a figure which shows the specific example of the change sentence data before and behind execution of the preprocessing by an aggregation part. 集約処理の詳細を例示するフローチャートである。It is a flowchart which illustrates the detail of an aggregation process. 集約処理について具体的に説明するための図である。It is a figure for demonstrating concretely an aggregation process. 後処理の詳細を例示するフローチャートである。It is a flowchart which illustrates the detail of post-processing. 併合部による処理のフローを例示する図である。It is a figure which illustrates the flow of the process by a merge part. 併合部による処理方法を例示する図(その1)である。It is a figure (the 1) which illustrates the processing method by a merge part. 併合部による処理方法を例示する図(その2)である。It is FIG. (The 2) which illustrates the processing method by a merge part. 併合部による処理方法を例示する図(その3)である。It is FIG. (The 3) which illustrates the processing method by a merge part. 併合部による処理方法を例示する図(その4)である。It is FIG. (The 4) which illustrates the processing method by a merge part. 本実施形態に係る併合装置のハードウェア構成を例示する図である。It is a figure which illustrates the hardware constitutions of the merge apparatus which concerns on this embodiment.

図1は、本実施形態に係る併合装置1の機能ブロックの一例を示す。併合装置1は、例えば、所定のコンピュータであってもよい。また、併合装置1は、例えば、ソフトウェア開発におけるテストを行なうモックアップサーバであってもよい。   FIG. 1 shows an example of functional blocks of the merging apparatus 1 according to the present embodiment. The merging device 1 may be a predetermined computer, for example. The merging device 1 may be a mockup server that performs a test in software development, for example.

併合装置1は、記憶部10、入出力部11、差分取得部12、集約部13、ソート部14、ソース取得部15、併合部16、および選択部17等を含む。   The merging apparatus 1 includes a storage unit 10, an input / output unit 11, a difference acquisition unit 12, an aggregation unit 13, a sorting unit 14, a source acquisition unit 15, a merging unit 16, a selection unit 17, and the like.

記憶部10は、JSON(JavaScript Object Notation,「JavaScript」は登録商標)等による構造化文書のデータ(文書データとも記載する)を記憶する。本実施形態における文書データには、ネスト構造に基づいて整理された、名詞等の単語や複合語や語句等のデータ(語句データとも記載する)が含まれる。なお、ネスト構造以外にも木構造等に基づいて整理された語句データを文書データは含んでもよい。文書データは、後述する入出力部11を介して変更可能である。記憶部10は、変更前の文書データを記憶し、変更後の文書データや変更前後の各文書データの差分に係るデータや文書データを変更するための変更命令等のデータを記憶する。変更前後の各文書データの差分に係るデータ、文書データを変更するための変更命令等を、以下では変更履歴データと記載する場合もあるとする。   The storage unit 10 stores structured document data (also referred to as document data) such as JSON (Java Script Object Notation, “Java Script” is a registered trademark). The document data in this embodiment includes words such as nouns, data such as compound words and phrases (also referred to as phrase data) arranged based on a nested structure. In addition to the nested structure, the document data may include word data arranged based on a tree structure or the like. The document data can be changed via the input / output unit 11 described later. The storage unit 10 stores document data before the change, and stores data such as a change instruction for changing the document data after the change, data relating to the difference between the document data before and after the change, and document data. Hereinafter, data related to the difference between the document data before and after the change, a change command for changing the document data, and the like may be described as change history data below.

入出力部11は、開発者等のユーザからの文書データの入力、文書データの変更のための変更命令、2つ以上の文書データの併合指示等を受け付ける。なお、図1には、1つの入出力部11が示されているが、併合装置1は、複数のユーザのそれぞれから文書データの変更命令を受け付けるために、複数の入出力部11を備えていてもよい。入出力部11は、複数のユーザの各々に与えられたアカウントを通じて、複数の変更命令を受け付けてもよい。併合装置1は、不図示の通信部を介して他の装置においてユーザが入力した変更命令を受け付けてもよい。記憶部10は、複数のユーザや装置からの変更命令に係るデータを、ユーザ毎、アカウント毎、又は装置毎に記憶する。   The input / output unit 11 accepts input of document data from a user such as a developer, a change command for changing document data, an instruction to merge two or more document data, and the like. Although one input / output unit 11 is shown in FIG. 1, the merging apparatus 1 includes a plurality of input / output units 11 in order to accept document data change commands from a plurality of users. May be. The input / output unit 11 may accept a plurality of change commands through an account given to each of a plurality of users. The merging device 1 may accept a change command input by a user in another device via a communication unit (not shown). The memory | storage part 10 memorize | stores the data which concern on the change command from a some user or apparatus for every user, every account, or every apparatus.

入出力部11は、併合部16および選択部17による処理結果を、例えば、ディスプレイ等の表示装置に出力し、該表示装置に、処理結果を表示させてもよい。   The input / output unit 11 may output the processing results obtained by the merging unit 16 and the selection unit 17 to a display device such as a display, for example, and cause the display device to display the processing results.

差分取得部12は、入出力部11を介して上記併合指示を受け付けると、記憶部10に記憶された変更履歴データを読み込む。差分取得部12は、変更履歴データから、変更前後の各文書データ間の差分に係るデータであって、変更対象の語句データがネスト構造上どの語句データの配下にあるかを示す所属情報と、変更前後の各語句データとを抽出する。このデータを以下では、変更文データとも記載する。所属情報は、データの存在する位置までを示すための文字列等の情報(パス)である。本実施形態における変更文データは、所属情報が示す所在における変更前の語句データを変更後の語句データに変更する際に用いられる。   When receiving the merge instruction via the input / output unit 11, the difference acquisition unit 12 reads the change history data stored in the storage unit 10. The difference acquisition unit 12 is data relating to a difference between the document data before and after the change from the change history data, and belonging information indicating which word data is subordinate to the word data to be changed in the nested structure; Extract each phrase data before and after the change. Hereinafter, this data is also referred to as change sentence data. The affiliation information is information (path) such as a character string for indicating up to the position where the data exists. The changed sentence data in the present embodiment is used when changing the word data before the change at the location indicated by the affiliation information to the word data after the change.

変更文データを含むデータであって、文書全体に対し変更を行うためのデータを、差分情報とも記載する。本実施形態において差分情報は、1つの変更命令に対し1つ生成されるものとする。   Data including change sentence data and data for changing the entire document is also referred to as difference information. In the present embodiment, one difference information is generated for one change command.

差分情報の総数がN(Nは2以上の自然数)の場合に、各差分情報を第nの差分情報(nは1以上でN以下の自然数)と記載する場合もあるとする。第nの差分情報に含まれる変更文データを、第nの変更文データを記載する場合もあるとする。第nの変更文データの適用対象の語句データを、第nの語句データと記載する場合もあるとする。文書データに対し、第nの差分情報を適用することに生成される構造化文書を、第nの構造化文書と記載する場合もあるとする。   When the total number of difference information is N (N is a natural number of 2 or more), each difference information may be described as nth difference information (n is a natural number of 1 or more and N or less). Assume that the change statement data included in the nth difference information may be written as the nth change statement data. Assume that the phrase data to which the nth modified sentence data is applied is sometimes referred to as the nth phrase data. Assume that the structured document generated by applying the nth difference information to the document data may be described as the nth structured document.

図2は、変更対象の文書データと、当該文書データの変更について変更履歴データから抽出される変更文データを例示する。図2には、JSONによる文書データが一例として示されているが文書データはJSONによるものに限定されない。JSONには、「名前」のデータ(名前データとも記載する)と「値」のデータ(値データとも記載する)が含まれる。なお、名前データと値データは語句データの例である。   FIG. 2 exemplifies change target document data and change sentence data extracted from change history data regarding the change of the document data. FIG. 2 shows document data by JSON as an example, but the document data is not limited to that by JSON. The JSON includes “name” data (also described as name data) and “value” data (also described as value data). Name data and value data are examples of phrase data.

図2に示す一例においては、「books」、「book」は名前データであり、「a」、「b」、「c」は値データである。「book」は「books」に属するデータであり、「a」、「b」、および「c」は「book」の各具体例となるデータである。一般名詞「book」(本)に対し、例えば本のタイトルである固有名詞「a」、「b」、「c」が関連付けられている。値データは、その一般的概念を表す名前データと、例えば「:」を用いて関連付けられ、「:」に隣接して順番に示される。これらの値データ「a」等は、「book」によりラベリングされる集合に属するものといえることから、名前データ「book」に属する。   In the example shown in FIG. 2, “books” and “book” are name data, and “a”, “b”, and “c” are value data. “Book” is data belonging to “books”, and “a”, “b”, and “c” are specific examples of “book”. For example, proper nouns “a”, “b”, and “c” that are book titles are associated with the general noun “book” (book). The value data is associated with name data representing the general concept using, for example, “:”, and is sequentially shown adjacent to “:”. Since these value data “a” and the like belong to a set labeled by “book”, they belong to name data “book”.

図2には、2つの変更文データ(変更文データX、Y)が例示されている。「path」は、変更対象の語句データの、構造化文書における所属先を示す所属情報(パス)を指す。ネスト構造において、ある語句データ(語句データAとする)に別の語句データ(語句データBとする)が直接的に属する場合、語句データBの階層は語句データAの階層よりも1つ下である。この場合、所属情報において、語句データAと語句データBとの間には「/」が付される。例えば、図2に示される「/books/book」は、文書データに名前データ「books」が属し、且つ名前データ「books」に名前データ「book」が属することを表す。「/」が2つであることから、「book」の階層の深さは2である。   FIG. 2 illustrates two change sentence data (change sentence data X and Y). “Path” indicates affiliation information (path) indicating the affiliation destination in the structured document of the phrase data to be changed. In the nested structure, when another phrase data (referred to as phrase data B) directly belongs to a certain phrase data (referred to as phrase data A), the hierarchy of the phrase data B is one level lower than that of the phrase data A. is there. In this case, “/” is added between the phrase data A and the phrase data B in the affiliation information. For example, “/ books / book” shown in FIG. 2 indicates that the name data “books” belongs to the document data, and the name data “book” belongs to the name data “books”. Since there are two “/”, the depth of the “book” hierarchy is two.

値データ「a」等の所在は、名前データ「book」の所属情報と、名前データ「book」における順番により表される。図2に示す変更文データXにおける「/books/book/3」は、名前データ「books」に属する名前データ「book」の3番目の要素の値データを指す所属情報である。この所属情報の「/」は3つであるため、対応する所属情報により所在が示される値データは、深さ3の階層にある。図2の変更対象の文書データを参照すると、上記パスにより所在が示される、深さ3の階層にある値データは「c」である。   The location of the value data “a” and the like is represented by the belonging information of the name data “book” and the order in the name data “book”. “/ Books / book / 3” in the changed sentence data X shown in FIG. 2 is affiliation information indicating the value data of the third element of the name data “book” belonging to the name data “books”. Since there are three “/” in this affiliation information, the value data whose location is indicated by the corresponding affiliation information is in a hierarchy of depth 3. Referring to the document data to be changed in FIG. 2, the value data in the depth 3 hierarchy whose location is indicated by the path is “c”.

変更文データにおいて、「src」、「dst」は、それぞれ変更対象の語句データの変更前のデータ、変更対象の文言データの変更後のデータを指す。図2の2つの変更文データのうち「“src”:“book”,“dst”:“manual”」を含む変更文データXは、名前データを「book」から「manual」に変更させるための変更文データである。   In the changed sentence data, “src” and “dst” indicate data before the change of the phrase data to be changed and data after the change of the word data to be changed, respectively. The change statement data X including ““ src ”:“ book ”,“ dst ”:“ manual ”” of the two change statement data in FIG. 2 is used for changing the name data from “book” to “manual”. Change statement data.

同様に、「“src”:“c”,“dst”:“d”」を含む変更文データYは、名前データ「book」に属する3番目の値データ「c」を、値データ「d」に変更させるための変更文データである。   Similarly, the change statement data Y including ““ src ”:“ c ”,“ dst ”:“ d ””, the third value data “c” belonging to the name data “book” is changed to the value data “d”. This is change sentence data for changing to.

以下、図3、4を参照し、文書データに対し、図2に示す変更文データX、Yが、この順番で適用される場合について説明する。   Hereinafter, with reference to FIGS. 3 and 4, the case where the change sentence data X and Y shown in FIG. 2 are applied to the document data in this order will be described.

図3は、変更文データXを適用することにより変更された文書データと変更文データを示す。変更文データXの適用により、文書データにおいて名前データ「books」に属する名前データ「book」は、名前データ「manual」へ変更される。また、この変更文データXにより、変更文データYに含まれる所属情報における「book」は「manual」へ変更される。   FIG. 3 shows document data and change sentence data that have been changed by applying the change sentence data X. By applying the change sentence data X, the name data “book” belonging to the name data “books” in the document data is changed to the name data “manual”. Also, with this change sentence data X, “book” in the affiliation information included in the change sentence data Y is changed to “manual”.

図4は、変更文データYの適用により変更された文書データを示す。この変更文データYの適用により、文書データにおいて名前データ「book」に属する値データ「c」は値データ「d」へと変更される。この変更文データYは値データを変更するものであり、値データは所属情報には含まれない。このため、変更文データYの適用により他の変更文データの所属情報の変更は行われない。   FIG. 4 shows the document data changed by applying the changed sentence data Y. By applying the change sentence data Y, the value data “c” belonging to the name data “book” in the document data is changed to the value data “d”. The change statement data Y changes the value data, and the value data is not included in the affiliation information. For this reason, the change information of other change statement data is not changed by the application of the change statement data Y.

図1を参照すると、集約部13は、差分取得部12が抽出した差分情報中の変更文データを集約する。集約部13による変更文データの集約は、変更命令毎に行われる。ある変更命令において、2つ以上の変更文データであって推移的な変更を指示するための変更文データが存在する場合に、集約部13は、これら2つ以上の変更文データを1つに集約する。   Referring to FIG. 1, the aggregating unit 13 aggregates the changed sentence data in the difference information extracted by the difference obtaining unit 12. Aggregation of change sentence data by the aggregation unit 13 is performed for each change instruction. In a certain change command, when there are two or more pieces of change statement data and change statement data for instructing a transitive change, the aggregation unit 13 combines the two or more pieces of change statement data into one. Summarize.

図5は、集約について例示的に説明するための図である。図5に示す変更文データP「“path”:“/website/user/3”,“src”:“C”,“dst”:“None”」は、「website」に属する「user」に属する3番目の「C」を消去するための変更文データである。また図5に示す変更文データQ「“path”:“/website/user/3”,“src”:“None”,“dst”:“D”」は、「website」に属する「user」において、3番目の値データとして「D」を追加するための変更文データである。これらの変更文データが上記の順番で用いられることにより、「website」に属する「user」に属する3番目の値データは、「C」から、「None」に対応する状態を経て、「D」へと推移することがわかる。「None」に対応する状態とは、何も語句が含まれない空の状態を指す。以下、該空のデータを、文言データとする場合がある。   FIG. 5 is a diagram for exemplifying the aggregation. The change sentence data P ““ path ”:“ / website / user / 3 ”,“ src ”:“ C ”,“ dst ”:“ None ”shown in FIG. 5 belongs to“ user ”belonging to“ website ”. This is change sentence data for erasing the third “C”. In addition, the change sentence data Q ““ path ”:“ / website / user / 3 ”,“ src ”:“ None ”,“ dst ”:“ D ”” shown in FIG. 5 is stored in “user” belonging to “website”. This is change sentence data for adding “D” as the third value data. By using these change sentence data in the above order, the third value data belonging to “user” belonging to “website” is changed from “C” to “Done” through a state corresponding to “None”. It turns out that it changes to. The state corresponding to “None” indicates an empty state in which nothing is included. Hereinafter, the empty data may be referred to as word data.

図5において、変更文データS、Tのこの順番の組み合わせは、変更文データR「“path”:“/website/user/3”,“src”:“C”,“dst”:“D”」と同等である。集約部13は、変更文データS、Tのような1つにまとめることができる複数の変更文データをまとめ、1つの変更文データに書き換える。このように複数の変更文データをまとめる処理を、以下では、集約処理と記載する。   In FIG. 5, the combination of the change sentence data S and T in this order is the change sentence data R ““ path ”:“ / website / user / 3 ”,“ src ”:“ C ”,“ dst ”:“ D ”. Is equivalent to. The aggregating unit 13 collects a plurality of pieces of change sentence data that can be combined into one, such as the change sentence data S and T, and rewrites the change sentence data into one piece of change sentence data. Hereinafter, the process of collecting a plurality of pieces of change sentence data is referred to as an aggregation process.

図1を参照すると、ソート部14は、1つの文書データに対する1以上の変更命令の各々から取得される変更文データであって、集約部13による処理後の変更文データを、適用対象の語句データの所在の階層の深さに応じて並び替える。本実施形態においては、ソート部14は、階層の昇順に変更文データを並び替える。   Referring to FIG. 1, the sorting unit 14 is changed sentence data acquired from each of one or more change instructions for one document data, and the changed sentence data after processing by the aggregation unit 13 is applied to a word / phrase to be applied. Sort according to the depth of the data location. In the present embodiment, the sorting unit 14 rearranges the changed sentence data in the ascending order of the hierarchy.

ソース取得部15は、入出力部11を介して併合指示を受け付けると、記憶部10から、更新対象となる元の文書データを取得する。   When receiving the merge instruction via the input / output unit 11, the source acquisition unit 15 acquires the original document data to be updated from the storage unit 10.

併合部16は、ソース取得部15が取得した文書データに対し、1以上の変更命令に係る各変更文データを、ソート部14において並び替えられた順序に従って適用することにより、文書データを更新する。   The merging unit 16 updates the document data by applying each change sentence data related to one or more change commands to the document data acquired by the source acquisition unit 15 in the order rearranged by the sort unit 14. .

併合部16は、2つ以上の差分情報の各変更文データを、ソート部14により並び替えられた順序に基づき、適用する。これにより、元の文書データにおいて、パスの階層が浅い語句データから順に更新されていく。   The merging unit 16 applies each change sentence data of two or more pieces of difference information based on the order rearranged by the sorting unit 14. Thus, in the original document data, the path hierarchy is updated in order from the phrase data.

ここで、本実施形態において、パスの階層が浅い語句データに対する変更文データから順に適用される理由は、以下の通りである。もし併合装置1が、パスの階層がより深い語句データに対する変更文データを先に適用する場合、併合装置1は、最初に、最も深い階層のパスの語句データを探索する。この場合、ネスト構造が複雑であれば、先に実行される語句データの更新が遅延する可能性がある。一方、階層の浅いパスの語句データの更新が先に行われる場合、併合装置1は、ネスト構造を浅い階層から追跡し、その追跡結果を一時的に記憶するなどすることにより、次の更新対象となる語句データの所在の把握にその追跡結果を用いることができる。これにより、更新のための時間が短縮される。また、浅い階層のパスの語句データが更新により消去される場合、この語句データに属するデータに対し更新を先に行うことは更新時間を無駄に消費することになる。このため、本実施形態に係る併合装置1においては、階層が浅いパスの語句データから順に更新する。ただし、階層の深いパスの語句データの更新から先に行なわれてもよい。   Here, in this embodiment, the reason why the change sentence data is applied in order from the phrase data with a shallow path hierarchy is as follows. If the merging apparatus 1 applies the change sentence data for the phrase data having a deeper path hierarchy first, the merging apparatus 1 first searches for the phrase data of the path having the deepest hierarchy. In this case, if the nesting structure is complicated, there is a possibility that the update of the phrase data executed first is delayed. On the other hand, when the phrase data of the shallow path is updated first, the merging apparatus 1 tracks the nest structure from the shallow hierarchy and temporarily stores the tracking result, thereby performing the next update target. The tracking result can be used to grasp the location of the phrase data. Thereby, the time for update is shortened. In addition, when the phrase data of the path of the shallow hierarchy is deleted by updating, updating the data belonging to the phrase data first consumes update time. For this reason, in the merging apparatus 1 according to the present embodiment, the word / phrase data of the path having a shallow hierarchy is updated in order. However, the update may be performed first after the word / phrase data of the deep path is updated.

併合部16は、2つ以上の変更命令における各変更文データが、同じ語句データを変更対象とし、これら変更文データによる更新後の各語句データが互いに異なる場合、更新後の文書データに、これら変更文による更新後の各語句データを含ませる。このようにすることで、2つ以上の変更命令の活用が図られ、また更新後の文書データにおける、2つ以上の変更命令による更新後の各語句データの確認と選択の機会を、ユーザに与えることができる。   The merging unit 16 changes the changed sentence data in two or more change instructions to the same word / phrase data, and when the updated word / phrase data by the changed sentence data are different from each other, Include each phrase data after update by change sentence. In this way, two or more change commands can be used, and the user is given an opportunity to check and select each phrase data after update by two or more change commands in the updated document data. Can be given.

図6は、互いに異なる更新結果を得る2つの変更文データを、1つの語句データへ適用する場合における併合部16の処理内容を例示する図である。元の文書データにおいて変更対象となる語句データは、「books」に属する「author」である。この文書データから互いに異なる更新結果を生成する2つの変更命令による各結果を、変更結果A、変更結果Bとする。変更結果Aにおいては、「author」が「editor」に書き換えられている。変更結果Bにおいては、「author」が「doctor」に書き換えられている。併合部16は、パスが同一の語句データを変更対象とし、互いに異なる変更結果を生成する、2つ以上の変更命令の各々から取得される変更文データによる変更結果のいずれをも活用する。図6は、併合部16が、「author」を「(“editor” or “doctor”)」へ書き換え、変更結果A、Bを活用し、更新後のデータに「editor」も「doctor」も含ませていることを示す。   FIG. 6 is a diagram exemplifying the processing contents of the merging unit 16 when two pieces of changed sentence data that obtain different update results are applied to one word / phrase data. The phrase data to be changed in the original document data is “author” belonging to “books”. The results of two change commands that generate different update results from this document data are referred to as change result A and change result B. In the change result A, “author” is rewritten to “editor”. In the change result B, “author” is rewritten to “doctor”. The merging unit 16 uses word / phrase data having the same path as a change target and uses any of the change results based on the change sentence data acquired from each of two or more change instructions that generate different change results. In FIG. 6, the merging unit 16 rewrites “author” to “(“ editor ”or“ doctor ”)”, uses the change results A and B, and includes “editor” and “doctor” in the updated data. Indicates that it is not.

併合部16は、1つの変更命令においてある語句データが変更対象とされ、他の変更命令においてはこの語句データが変更対象とされない場合には、この語句データを変更対象とする変更命令に応じて、この語句データを書き換える。   When the word data in one change command is to be changed and the word data is not to be changed in another change command, the merging unit 16 responds to the change command to change the word data. Rewrite this word data.

図7は、複数の変更命令のうち、ある語句データを変更対象とする変更命令が1つだけである場合における併合部16の処理方法を例示する。   FIG. 7 exemplifies the processing method of the merging unit 16 in the case where there is only one change command for changing a certain phrase data among a plurality of change commands.

併合部16は、1つの変更命令に係る変更文データが、あるパスにおける語句データを変更する場合、同じパスにおける語句データを変更する他の変更命令に係る変更文データがないか判定する。併合部16は、あるパスの語句データを変更する変更文データが1つしかない場合に、この変更文データを当該語句データに適用する。併合部16は、1つの文書データに対する2つ以上の変更命令に係る各変更文データであって、同じパスの語句データを変更する変更文データをまとめてもよい。まとめた変更文データが1つの場合に、併合部16は、当該変更文データを文書データへ適用してもよい。併合部16は、ソート部14が並べ替えた順に従って変更文データを適用し、変更前後の各語句データを候補として文書データに含ませていき、変更が1つの場合に、変更文データに基づいた語句データに更新してもよい。   When the change sentence data related to one change command changes the phrase data in a certain path, the merging unit 16 determines whether there is any change sentence data related to another change instruction that changes the phrase data in the same path. When there is only one change sentence data that changes the phrase data of a certain path, the merging unit 16 applies the change sentence data to the phrase data. The merging unit 16 may combine change sentence data related to two or more change commands for one document data, and change the phrase data of the same path. When there is a single piece of change sentence data, the merging unit 16 may apply the change sentence data to the document data. The merging unit 16 applies the changed sentence data in the order in which the sorting unit 14 rearranges them, includes each word / phrase data before and after the change as a candidate in the document data, and based on the changed sentence data when there is one change. The word data may be updated.

図7は、名前データ「author」を「editor」へ更新する変更命令(変更命令Aと記載する)と、値データ「foo」を「bar」へ更新する変更命令(変更命令Bと記載する)がある場合の併合部16による処理を示す。   FIG. 7 shows a change instruction (described as change instruction A) for updating the name data “author” to “editor” and a change instruction (described as change instruction B) for updating the value data “foo” to “bar”. The processing by the merging unit 16 in the case where there is a data is shown.

図7に示す例においては、併合部16は、ソート部14が並べ替えた順に従い変更文データを適用する中で、変更命令Aに対応する変更文データに従い変更された文書データ「editor」を、元の語句データ「author」と共に文書データに含ませる。そして、併合部16は、この語句データに対する他の変更文データがないことから、変更後の「editor」を選択し、文書データから「author」を消去する。   In the example shown in FIG. 7, the merging unit 16 applies the changed sentence data in the order in which the sorting unit 14 has rearranged the document data “editor” changed according to the changed sentence data corresponding to the change instruction A. The original word data “author” is included in the document data. The merging unit 16 selects “editor” after the change and deletes “author” from the document data because there is no other change sentence data for the phrase data.

図7に示す例においては、併合部16は、1つの語句データに適用する変更文データが1つであるか、同じ語句データに適用する他の変更文データがないか判定する。「foo」を変更する変更文データは、変更命令Bに係る変更文データ以外にはないため、併合部16は、この変更文データに従って、「foo」を「bar」に変更する。   In the example illustrated in FIG. 7, the merging unit 16 determines whether there is one change sentence data to be applied to one phrase data or another change sentence data to be applied to the same phrase data. Since there is no change sentence data for changing “foo” other than the change sentence data related to the change instruction B, the merging unit 16 changes “foo” to “bar” according to the change sentence data.

図7に示す例では、併合部16は、名前データについては、更新前後のデータを候補として含ませ、値データについては、変更文が1つであることを確認後、更新を行っているが、併合部16による変更方法はこれに限らない。   In the example shown in FIG. 7, the merging unit 16 includes the data before and after the update as the candidate for the name data, and updates the value data after confirming that there is one change sentence. The changing method by the merging unit 16 is not limited to this.

本実施形態においては、1つの語句データに対し、1つの変更文データがあった場合に、この変更文データに基づく変更が行われる。これにより、語句データについての変更命令が反映されると共に、ユーザが適切な語句データを選択する手間を省くことができる。しかし、併合部16による変更命令の実行後の文書データは、変更前後の語句データを含んでいてもよい。別のユーザによる予期しない変更を防ぐためである。   In this embodiment, when there is one change sentence data for one word / phrase data, the change based on the change sentence data is performed. As a result, the change instruction for the phrase data is reflected, and the user can save time and effort for selecting appropriate phrase data. However, the document data after execution of the change instruction by the merging unit 16 may include word data before and after the change. This is to prevent an unexpected change by another user.

併合部16による処理結果は、記憶部10に記憶されてもよい。
選択部17は、各々が同じ語句データを互いに異なる語句データへ変更する2つ以上の変更文データに応じて併合部16が候補として文書データに含ませた2つ以上の変更後の語句データの選択に係る処理を行う。選択部17は、更新後の語句データに2つ以上の候補がある場合に、ユーザに2つ以上の候補のうちのいずれかを選択させるため、入出力部11に対し表示指示を行う。
The processing result by the merging unit 16 may be stored in the storage unit 10.
The selecting unit 17 selects two or more changed phrase data that the merging unit 16 includes as candidates in the document data in accordance with two or more changed sentence data that change the same phrase data to different phrase data. Processing related to selection is performed. When there are two or more candidates in the updated phrase data, the selection unit 17 issues a display instruction to the input / output unit 11 in order to cause the user to select one of the two or more candidates.

図8は、選択部17からの表示指示に応じた、入出力部11による表示内容を例示する。図8には、入出力部11において、Graphical User Interface(GUI)、Character user interface(GUI)が用いられる場合における各表示内容が例示される。この例においては、図6に示された「or」で連結される2つの名前データ「editor」、「doctor」が選択肢として示されている。GUIが用いられる場合には、ユーザは、これらの選択肢のうちのいずれかのラジオボタンに対し、選択のための入力を行うことができ、「OK」ボタンのクリックにより、入力内容が確定される。またGUIが用いられる場合においては、ユーザは、「>>」の後に、「editor」を選択する場合には「1」、「doctor」を選択する場合には「2」を入力し、Enterキーを押すことにより、入力内容が確定される。   FIG. 8 illustrates the display contents by the input / output unit 11 in response to a display instruction from the selection unit 17. FIG. 8 illustrates each display content when Graphical User Interface (GUI) and Character user interface (GUI) are used in the input / output unit 11. In this example, two name data “editor” and “doctor” connected by “or” shown in FIG. 6 are shown as options. When the GUI is used, the user can make an input for selection with respect to one of these options, and the input content is confirmed by clicking the “OK” button. . When the GUI is used, the user inputs “1” after selecting “editor” after “>>”, and “2” when selecting “doctor”, and press the Enter key. By pressing, the input content is confirmed.

図9は、併合部16による併合処理が行われるまでの、本実施形態に係る併合装置1による処理のフローを例示する。   FIG. 9 illustrates a processing flow by the merging apparatus 1 according to the present embodiment until the merging process by the merging unit 16 is performed.

図9に示すように、併合装置1における差分取得部12は、記憶部10に記憶される複数の変更命令の各々に係る情報から、各変更命令についての差分情報を抽出する(ステップS100)。   As illustrated in FIG. 9, the difference acquisition unit 12 in the merging apparatus 1 extracts difference information for each change command from information related to each of the plurality of change commands stored in the storage unit 10 (step S <b> 100).

図10〜12は、2つの変更命令があった場合における差分情報の抽出処理について具体的に説明するための図である。なお、2つの変更命令のうちの一方を変更命令A、他方を変更命令Bとする。また元の文書データを文書データSとする。   10 to 12 are diagrams for specifically explaining the difference information extraction processing when there are two change commands. One of the two change instructions is a change instruction A, and the other is a change instruction B. The original document data is referred to as document data S.

図10には、変更命令Aによる差分情報の抽出処理の具体例が示される。図10に示されるように、文書データSは、変更命令Aにより、文書データA1から文書データA2、文書データA2から文書データA3へと書き換えられる。   FIG. 10 shows a specific example of the difference information extraction process by the change instruction A. As shown in FIG. 10, the document data S is rewritten from the document data A1 to the document data A2 and from the document data A2 to the document data A3 by the change command A.

図10に示されるように、差分取得部12は、文書データSから文書データA1への変更のための変更文データを抽出する。この変更文データは、文書データSにおいて「website」に属する「usar」を、「user」へ書き換えるためのものである。   As shown in FIG. 10, the difference acquisition unit 12 extracts change sentence data for changing from the document data S to the document data A1. This change sentence data is for rewriting “user” belonging to “website” to “user” in the document data S.

差分取得部12は、文書データA1から文書データA2への変更のための変更文データを抽出する。この場合の変更文データは2つである。当該2つの変更文データのうちの一方は、文書データA1における「website」に属する「user」に属する、2番目の値データ「B」を「C」に変更する。他方は、同じく「user」に属する、3番目の値データ「C」を削除する。   The difference acquisition unit 12 extracts change sentence data for changing from the document data A1 to the document data A2. In this case, there are two change sentence data. One of the two changed sentence data changes the second value data “B” belonging to “user” belonging to “website” in the document data A1 to “C”. The other deletes the third value data “C” that also belongs to “user”.

差分取得部12は、文書データA2から文書データA3への変更のための変更文データを抽出する。この変更文データは、文書データA2において「website」に属する「user」を、「account」へ変更する。   The difference acquisition unit 12 extracts change sentence data for changing from the document data A2 to the document data A3. The change statement data changes “user” belonging to “website” to “account” in the document data A2.

図11には、変更命令Bによる差分情報の抽出処理の具体例が示される。文書データSは、変更命令Bにより、文書データB1から文書データB2、文書データB2から文書データB3へと書き換えられる。   FIG. 11 shows a specific example of the difference information extraction process by the change instruction B. The document data S is rewritten from the document data B1 to the document data B2 and from the document data B2 to the document data B3 by the change command B.

差分取得部12は、文書データSから文書データB1への変更のための変更文データを抽出する。この場合の変更文データは3つである。このうちの1つ目は、「website」に属する「usar」に属する、1番目の値データ「A」を「B」に変更する。2つ目は、同じく「usar」に属する、2番目の値データ「B」を「C」に変更する。3つ目は、同じく「usar」に属する、3番目の値データ「C」を削除する。   The difference acquisition unit 12 extracts change sentence data for changing from the document data S to the document data B1. The change sentence data in this case is three. The first of these changes the first value data “A” belonging to “usar” belonging to “website” to “B”. Second, the second value data “B”, which also belongs to “usar”, is changed to “C”. Third, the third value data “C” belonging to “usar” is deleted.

差分取得部12は、文書データB1から文書データB2への変更のための変更文データを抽出する。この変更文データは、文書データB1において「website」に属する「usar」を、「users」へ変更する。   The difference acquisition unit 12 extracts change sentence data for changing from the document data B1 to the document data B2. The change statement data changes “user” belonging to “website” to “users” in the document data B1.

差分取得部12は、文書データB2から文書データB3への変更のための変更文データを抽出する。この変更文データは、文書データB2において「website」に属する「users」に属する3番目の値データとして、「D」を追加する。   The difference acquisition unit 12 extracts change sentence data for changing from the document data B2 to the document data B3. In the change sentence data, “D” is added as the third value data belonging to “users” belonging to “website” in the document data B2.

図12には、変更命令Aに係る差分情報における変更文データ、変更命令Bに係る差分情報における変更文データが例示される。差分取得部12により抽出された変更文データは、文書データの変更の順に差分情報に含まれる。   FIG. 12 illustrates change sentence data in the difference information related to the change instruction A and change sentence data in the difference information related to the change instruction B. The change sentence data extracted by the difference acquisition unit 12 is included in the difference information in the order of change of the document data.

図12に示す例によれば、変更命令Aによる差分情報において、文書データSを文書データA1に変更する変更文データ(変更文データA−1とする)が最初に含まれる。この差分情報において、次に、文書データA1を文書データA2に変更する2つの変更文データが含まれる。なお、この2つの変更文データの差分情報における順序は、どちらが先であってもよい。ここでは、上記の「B」を「C」に変更する変更文データを変更文データA−2、「C」を削除する変更文データを変更文データA−3とし、差分情報はこの順序でこれらの変更文データを含むものとする。また、この差分情報において、最後に、文書データA2を文書データA3に変更する変更文データ(変更文データA−4とする)が含まれる。   According to the example shown in FIG. 12, in the difference information based on the change instruction A, the changed sentence data (changed sentence data A-1) for changing the document data S to the document data A1 is first included. In the difference information, next, two pieces of change sentence data for changing the document data A1 to the document data A2 are included. Note that the order of the difference information between the two pieces of change sentence data may be the first. Here, the change statement data for changing “B” to “C” is the change statement data A-2, the change statement data for deleting “C” is the change statement data A-3, and the difference information is in this order. These change sentence data shall be included. Further, the difference information finally includes change sentence data (changed sentence data A-4) for changing the document data A2 to the document data A3.

図12に示す例によれば、変更命令Bによる差分情報において、文書データSを文書データB1に変更する3つの変更文データが最初に含まれる。なお、この3つの変更文データの差分情報における順序は、任意である。ここでは、上記の「A」を「B」に変更する変更文データを変更文データB−1、「B」を「C」に変更する変更文データを変更文データB−2、「C」を削除する変更文データを変更文データB−3とし、差分情報はこの順序でこれらの変更文を含むものとする。また、この差分情報において、次に、文書データB1を文書データB2に変更する変更文データ(変更文データB−4とする)が含まれる。また、この差分情報において、最後に、文書データB2を文書データB3に変更する変更文データ(変更文データB−5)が含まれる。   According to the example shown in FIG. 12, in the difference information based on the change instruction B, three change sentence data for changing the document data S to the document data B1 are first included. In addition, the order in the difference information of these three change sentence data is arbitrary. Here, the change statement data for changing the above-mentioned “A” to “B” is the change statement data B-1, the change statement data for changing “B” to “C” is the change statement data B-2, and “C”. The change sentence data to be deleted is the change sentence data B-3, and the difference information includes these change sentences in this order. In addition, the difference information includes change sentence data (referred to as change sentence data B-4) for changing the document data B1 to the document data B2. In addition, the difference information finally includes change sentence data (change sentence data B-5) for changing the document data B2 to the document data B3.

図9のフローチャートに示されるように、集約部13は、差分情報に含まれる2つの変更文データについて、以下の条件が満たされる場合に、集約処理を行う(ステップS101)。以下の条件は、2つの変更文データの各適用対象の語句データが同一パスであることと、差分情報に先に含まれる変更文データによる変更後の語句データと、後に含まれる変更文データによる変更前の語句データが等しいことである。集約処理の詳細については後述する。   As shown in the flowchart of FIG. 9, the aggregating unit 13 performs an aggregation process when the following conditions are satisfied for two pieces of changed sentence data included in the difference information (step S101). The following conditions are based on the fact that the application target phrase data of two pieces of change sentence data have the same path, the phrase data after the change sentence data included in the difference information, and the change sentence data included later The phrase data before change is equal. Details of the aggregation processing will be described later.

ソート部14は、集約部13による集約処理後の変更文データを、その変更文データの適用対象の語句データのパスの階層に基づき並び替える(ステップS102)。この並べ替えは、上述したように、階層の深さの昇順になるように行われる。   The sorting unit 14 rearranges the changed sentence data after the aggregation processing by the aggregating unit 13 based on the path hierarchy of the phrase data to which the changed sentence data is applied (step S102). As described above, this rearrangement is performed in the ascending order of the depth of the hierarchy.

本実施形態においては、集約部13によるステップS101の処理が、ソート部14によるステップS102の処理に先立って実行されるが、この順番は逆であってもよい。   In the present embodiment, the processing in step S101 by the aggregation unit 13 is executed prior to the processing in step S102 by the sorting unit 14, but this order may be reversed.

図13は、ソート部14による処理内容の一例を示す。ここに示す変更命令Aに係る変更文データと変更命令Bに係る変更文データは、それぞれ図12に例示された各変更文データに対し集約処理を行ったものである。図12における変更文データA−1、A−4は集約されており、これらの集約処理後の変更文は、図13において変更文データA−1’である。また変更文データB−3、B−5は集約されており、これらの集約処理後の変更文データは、図13においてB−3’である。   FIG. 13 shows an example of the processing content by the sorting unit 14. The change statement data related to the change command A and the change statement data related to the change command B shown here are obtained by performing aggregation processing on each change statement data illustrated in FIG. The change statement data A-1 and A-4 in FIG. 12 are aggregated, and the change statement after the aggregation processing is the change statement data A-1 ′ in FIG. The change sentence data B-3 and B-5 are aggregated, and the change sentence data after the aggregation process is B-3 'in FIG.

図13に示されるように、変更文データA−1’、A−2、A−3における、変更対象の語句データのパスの階層は、それぞれ2、3、3である。   As shown in FIG. 13, the hierarchies of the path of the phrase data to be changed in the changed sentence data A-1 ', A-2, and A-3 are 2, 3, and 3, respectively.

同様に、変更文データB−1、B−2、B−3’、B−4における、変更対象の語句データのパスの階層は、それぞれ3、3、3、2である。   Similarly, in the changed sentence data B-1, B-2, B-3 ', and B-4, the hierarchy of the path of the phrase data to be changed is 3, 3, 3, and 2, respectively.

変更命令Aに係る各変更文データは、差分情報において、変更対象の語句データのパスの階層の昇順にソート前から並んでいる。このため、ソート前後で、変更文データA−1’、A−2、A−3の順番は変わらない。   Each change sentence data related to the change instruction A is arranged in the difference information from before the sort in ascending order of the path hierarchy of the word / phrase data to be changed. For this reason, the order of the change sentence data A-1 ', A-2, and A-3 does not change before and after sorting.

変更命令Bに係る各変更文データは、ソート部14により、変更対象の語句データのパスの階層の昇順に、変更文データB−4、B−1、B−2、B−3’の順に並べ替えられる。   Each change sentence data related to the change instruction B is sorted by the sort unit 14 in ascending order of the hierarchy of the path of the phrase data to be changed, in the order of the change sentence data B-4, B-1, B-2, B-3 ′. Rearranged.

図9を参照すると、併合部16は、ソース取得部15が取得した変更前の文書データに対し、ステップS102において並び替えられた順序に基づいて変更文データを適用する(ステップS103)。これにより、併合部16は、1つの文書データに対し複数の変更命令を適用して生成される複数の文書データを併合する。   Referring to FIG. 9, the merging unit 16 applies the changed sentence data to the document data before change acquired by the source acquisition unit 15 based on the order rearranged in step S102 (step S103). Thereby, the merging unit 16 merges a plurality of document data generated by applying a plurality of change commands to one document data.

図14は、ステップS101における集約部13による処理の詳細を例示する。ここでは、集約部13により、2つの変更命令の各々に係る変更文データの集約処理を行う場合を例に挙げ説明する。この2つの変更命令を変更命令A、変更命令Bと記載する。集約部13は、変更命令A、Bの各々について、ステップS200〜S202までの処理を実行する。例えば、集約部13は、変更命令Aに係る差分情報における変更文データについて、ステップS200〜S202の処理を実行し、その後に変更命令Bに係る差分情報における変更文データについて、ステップS200〜S202の処理を実行する。   FIG. 14 illustrates the details of the processing by the aggregation unit 13 in step S101. Here, a case will be described as an example where the aggregation unit 13 performs an aggregation process of change sentence data related to each of two change instructions. These two change instructions are referred to as change instruction A and change instruction B. The aggregating unit 13 executes the processes from step S200 to S202 for each of the change instructions A and B. For example, the aggregating unit 13 executes the processes of steps S200 to S202 for the change sentence data in the difference information related to the change instruction A, and then executes the processes of steps S200 to S202 for the change sentence data in the difference information related to the change instruction B. Execute the process.

ステップS200において、集約部13は、変更文データの集約化のための前処理を行う。前処理は、集約の際に変更文データにおけるパスの指定の誤りを防ぐための処理である。本実施形態における前処理は、ある変更文データの適用による名前データの変更に基づく、別の変更文データにおけるパスの変更がある場合、この変更後の当該別の変更文データにおけるパスを当該変更前のパスへ書き換える処理である。   In step S200, the aggregating unit 13 performs preprocessing for aggregating change sentence data. The preprocessing is processing for preventing an error in specifying a path in the change sentence data at the time of aggregation. In the preprocessing in the present embodiment, when there is a path change in another change sentence data based on a change in name data by applying a certain change sentence data, the path in the other change sentence data after the change is changed. This is a process of rewriting to the previous path.

図15は、前処理のフローの一部を例示する。iは、差分情報における変更文データの順序に対応する1からNまでの自然数である。またNは1以上の自然数である。i=1の変更文データは、差分情報における最初の変更文データであり、i=Nの変更文データは、差分情報における最後の変更文データである。集約部13は、1番目からN番目までの各変更文データに対し、この順番に、ステップS300の処理を実行する。   FIG. 15 illustrates a part of the pre-processing flow. i is a natural number from 1 to N corresponding to the order of the change sentence data in the difference information. N is a natural number of 1 or more. The changed sentence data with i = 1 is the first changed sentence data in the difference information, and the changed sentence data with i = N is the last changed sentence data in the difference information. The aggregating unit 13 executes the process of step S300 in this order for each change sentence data from the first to the Nth.

集約部13は、i番目の変更文データが、名前データを変更対象としているか否かを判定する(ステップS300)。なお、本実施形態では、名前データが変更対象であるかを判定し、値データが変更対象であるかを判定しない。本実施形態における変更文データには値データは含まれないが、名前データはパスの一部として含まれるからである。ただし、これに限定されず、名前データ以外にも値データがパスに含まれる場合、集約部13は、ステップS300における判定処理を行わず、ステップS301における処理を行ってもよい。   The aggregating unit 13 determines whether or not the i-th change sentence data is subject to name data change (step S300). In the present embodiment, it is determined whether the name data is to be changed, and it is not determined whether the value data is to be changed. This is because the change sentence data in this embodiment does not include value data, but name data is included as part of the path. However, the present invention is not limited to this, and when value data other than name data is included in the path, the aggregating unit 13 may perform the process in step S301 without performing the determination process in step S300.

i番目の変更文データが、名前データを変更対象としない場合(ステップS300:No)、集約部13は、i番目の変更文データに対する前処理を終了し、i+1をiに置き換え、ステップS300の処理を行う。i=Nの場合における変更文データが名前データを変更対象としない場合、集約部13は、図14に示す集約処理を実行する(ステップS201)。この集約処理については後述する。 集約部13は、i番目の変更文データが名前データを変更対象とする場合(ステップS300:Yes)、i+1〜N番目の各変更文データに対し、ステップS301の処理を実行する。集約部13は、ステップS301の処理の終了後、i<Nの場合には、i+1をiに置き換え、ステップS300へと処理を戻し、i=Nの場合には、図14に示す集約処理を実行する(ステップS201)。   When the i-th change statement data does not change the name data (step S300: No), the aggregation unit 13 ends the pre-processing for the i-th change statement data, replaces i + 1 with i, and performs step S300. Process. When the change statement data in the case of i = N does not change the name data, the aggregating unit 13 executes the aggregation process shown in FIG. 14 (step S201). This aggregation process will be described later. When the i-th change sentence data has the name data as a change target (step S300: Yes), the aggregation unit 13 performs the process of step S301 on each of the i + 1 to N-th change sentence data. After completing the process of step S301, the aggregation unit 13 replaces i + 1 with i if i <N and returns the process to step S300. If i = N, the aggregation unit 13 performs the aggregation process shown in FIG. Execute (Step S201).

図16は、上記ステップS301における集約部13による処理についての詳細を例示するフローチャートである。集約部13は、i+1番目からN番目の各変更文データについて、図16に示される、以下のステップS400以降の処理を実行する。   FIG. 16 is a flowchart illustrating details of the processing by the aggregation unit 13 in step S301. The aggregating unit 13 performs the following processing from step S400 shown in FIG. 16 on each of the i + 1th to Nth change sentence data.

集約部13は、i番目の変更文データの適用後の名前データのパスを、j番目(i+1≦j≦N)の変更文データにおけるパスが含むか否かを判定する(ステップS400)。i番目の変更文データの適用後の名前データのパスを、j番目の変更文データにおけるパスが含まず(ステップS400:No)、且つjがNより小さい場合、集約部13は、j+1をjに置き換え、ステップS400へ処理を戻す。j=Nの場合には、集約部13は、前処理を終了し、図14に示すステップS201の集約処理を実行する。   The aggregating unit 13 determines whether or not the path of the j-th (i + 1 ≦ j ≦ N) modified sentence data includes the name data path after application of the i-th modified sentence data (step S400). When the path of the name data after application of the i-th change sentence data does not include the path in the j-th change sentence data (step S400: No), and j is smaller than N, the aggregating unit 13 sets j + 1 to j And the process returns to step S400. In the case of j = N, the aggregating unit 13 ends the preprocessing, and executes the aggregation process in step S201 illustrated in FIG.

ステップS400における判定条件が満たされた場合(ステップS400:Yes)、集約部13は、j番目の変更文データが、i番目の変更文データの適用後の名前データを更に変更するかを判定する(ステップS401)。   When the determination condition in step S400 is satisfied (step S400: Yes), the aggregation unit 13 determines whether the j-th change sentence data further changes the name data after application of the i-th change sentence data. (Step S401).

j番目の変更文データの適用により、i番目の変更文データの適用後の名前データが更に変更されない場合(ステップS401:No)、集約部13は、j番目の変更文データにおけるパスをi番目の変更文データ適用前のものへ書き換える(ステップS402)。   If the name data after application of the i-th change statement data is not further changed by the application of the j-th change statement data (step S401: No), the aggregating unit 13 sets the path in the j-th change statement data to the i-th change data. Are rewritten to those before application of the change sentence data (step S402).

集約部13は、j番目の変更文の識別子と書き換え前後の各パスを、互いに関連付けて一時的に記憶する(ステップS403)。このステップS403の処理は、後述する後処理のためである。なお、識別子は、差分情報における各変更文に対し一意的に与えられている数値、文字、又は記号等を含む値であり、上記A−1等もこの識別子の一例である。なお、以下ではステップS403において一時的に記憶される情報を書換情報とも記載する。また、書換情報の一時的な記憶とは、例えば、後述する後処理の終了まで期間を指す。   The aggregating unit 13 temporarily stores the identifier of the j-th change sentence and each path before and after rewriting in association with each other (step S403). The process in step S403 is for post-processing described later. The identifier is a value including a numerical value, a character, a symbol, or the like uniquely given to each change sentence in the difference information, and the above A-1 is an example of this identifier. Hereinafter, information temporarily stored in step S403 is also referred to as rewrite information. The temporary storage of rewrite information refers to a period until the end of post-processing described later, for example.

なお、本実施形態においては、ステップS403の処理は、ステップS402の処理後に実行されているが、この順序は逆でもよい。   In this embodiment, the process of step S403 is executed after the process of step S402, but this order may be reversed.

ステップS403の処理の実行後であって、jがNより小さい場合、集約部13は、j+1をjに置き換え、ステップS400へ処理を戻す。j=Nの場合には、集約部13は、前処理を終了し、図14に示すステップS201の集約処理を実行する。   After execution of the process of step S403, if j is smaller than N, the aggregating unit 13 replaces j + 1 with j, and returns the process to step S400. In the case of j = N, the aggregating unit 13 ends the preprocessing, and executes the aggregation process in step S201 illustrated in FIG.

j番目の変更文データの適用により、i番目の変更文データの適用後の名前データが更に変更される場合(ステップS401:Yes)、集約部13は、j+1番目からN番目の各変更文データについて、ステップS404の処理を実行する。このステップS404の処理は、図16に詳細が示されるステップS301の処理と同様である。   When the name data after application of the i-th change statement data is further changed by the application of the j-th change statement data (step S401: Yes), the aggregation unit 13 causes each of the j + 1-th to N-th change statement data. For step S404, the process of step S404 is executed. The processing in step S404 is the same as the processing in step S301 whose details are shown in FIG.

ステップS404のサブルーチン処理について、図12に示す変更文データA−1から変更文データA−4に対し集約部13による処理が行われる場合を例に挙げて説明する。このとき差分情報において、変更文データA−4の後に、「/website/account」を含むパスを有する変更文データA−5が含まれているケースを想定して説明する。すなわち、変更文データA−5は、名前データ「website」における名前データ「account」に含まれる語句データを変更対象とする。   The subroutine processing in step S404 will be described by taking as an example a case where the processing by the aggregation unit 13 is performed on the changed sentence data A-1 to the changed sentence data A-4 shown in FIG. In this case, the difference information will be described assuming a case in which changed sentence data A-5 having a path including “/ website / account” is included after the changed sentence data A-4. That is, the change sentence data A-5 is subject to change in the phrase data included in the name data “account” in the name data “website”.

集約部13は、図15におけるステップS300において変更文データA−1の変更対象が名前データであると判定し、ステップS301の処理を開始し、変更文データA−2から変更文データA−4に対し、ステップS400以降の処理を実行する。   The aggregation unit 13 determines in step S300 in FIG. 15 that the change target of the change sentence data A-1 is name data, starts the process of step S301, and changes the change sentence data A-2 to the change sentence data A-4. On the other hand, the process after step S400 is performed.

この際に、変更文データA−2、A−3は名前データを変更するものではないので、これらの変更文データについては、ステップS401の処理の後、ステップS402の処理とステップS403の処理が行われる。このとき、変更文データA−2、A−3の各パスに含まれる「user」は、ステップS402において「usar」へと書き換えられ、ステップS403において、各識別子と書き換え前後の各パスが関連付けられ書換情報として記憶される。このとき変更文データA−2の場合においては、書換情報に含まれる書き換え前後のパスはそれぞれ「/website/user/2」、「/website/usar/2」である。   At this time, since the change sentence data A-2 and A-3 do not change the name data, the process of step S402 and the process of step S403 are performed for these change sentence data after the process of step S401. Done. At this time, “user” included in each path of the changed sentence data A-2 and A-3 is rewritten to “usar” in step S402, and each identifier is associated with each path before and after rewriting in step S403. Stored as rewrite information. At this time, in the case of the change sentence data A-2, the paths before and after rewriting included in the rewriting information are “/ website / user / 2” and “/ website / user / 2”, respectively.

集約部13は、ステップS401において変更文データA−4の適用により、変更文データA−1の適用後の名前データが更に変更されると判定する。具体的に、変更文データA−1の適用により「/website/usar」で示されるパスにおける名前データ「usar」は「user」に変更され、この「user」は変更文データA−4の適用により「account」に変更される。   In step S401, the aggregation unit 13 determines that the name data after application of the change sentence data A-1 is further changed by the application of the change sentence data A-4. Specifically, application of the change sentence data A-1 changes the name data “usar” in the path indicated by “/ website / user” to “user”, and this “user” is applied to the change sentence data A-4. To “account”.

このため、変更文データA−4については、集約部13は、ステップS401の処理後、ステップS404の処理を実行する。変更文データA−5におけるパスは、変更文データA−4により変更された名前データのパスを含むため、ステップS402において、パスにおける「/website/account」は、「/website/usar」に書き換えられる。   For this reason, with respect to the change sentence data A-4, the aggregation unit 13 executes the process of step S404 after the process of step S401. Since the path in the changed sentence data A-5 includes the path of the name data changed by the changed sentence data A-4, “/ website / account” in the path is rewritten to “/ website / usar” in step S402. It is done.

なお、本実施形態においてステップS404におけるステップS402の処理において書き換え後のパスとされるものは、i番目の変更文データの適用前の名前データのパスを含むものである。   In the present embodiment, the path after rewriting in step S402 in step S404 includes the path of name data before application of the i-th changed sentence data.

ステップS404におけるステップS403の処理により、変更文データA−5について書き換え前後の各パスとして、「/website/account」を含むパスと、「/website/usar」を含むパスが記憶される。書換情報には、変更文データA−2、A−3における各パスに含まれる「/website/user」と、変更文データA−5におけるパスに含まれる「/website/account」が、それぞれ同じ「/website/usar」に対応付けられる。   By the process of step S403 in step S404, a path including “/ website / account” and a path including “/ website / usar” are stored as the paths before and after the rewriting of the changed sentence data A-5. In the rewrite information, “/ website / user” included in each path in the modified sentence data A-2 and A-3 and “/ website / account” included in the path in the modified sentence data A-5 are the same. Corresponding to “/ website / usar”.

この場合、後の集約処理(ステップS201)と後処理(ステップS202)における文書データの整合等のために、集約部13は、パスにおける「/website/usar」を「/website/account」とを関連付ける。これに伴い、集約部13は、変更文データA−2、A−3についての書換情報における、書き換え前のパスに含まれる「/website/user」を「/website/account」へと置き換える。   In this case, the aggregating unit 13 sets “/ website / usar” to “/ website / account” in the path for document data matching in the subsequent aggregation processing (step S201) and postprocessing (step S202). Associate. Accordingly, the aggregating unit 13 replaces “/ website / user” included in the path before rewriting with “/ website / account” in the rewrite information of the change sentence data A-2 and A-3.

図17は、集約部13による前処理の実行前後の変更文データの具体例を示す図である。図17を参照し、変更命令Bに係る変更文データに対し実行される前処理について説明する。図17に示されるように、変更文データB―1から変更文データB−3は、パスの変更を伴わない、値データの変更に係るものである。一方、変更文データB−4は、名前データ「usar」を「users」へ変更するものであり、この変更に伴い、この名前データを指定するパスは「/website/usar」から「/website/users」になる。   FIG. 17 is a diagram illustrating a specific example of the change sentence data before and after execution of the preprocessing by the aggregation unit 13. With reference to FIG. 17, the pre-processing executed for the change statement data related to the change instruction B will be described. As shown in FIG. 17, the change sentence data B-1 to the change sentence data B-3 relate to the change of the value data without the change of the path. On the other hand, the change statement data B-4 is to change the name data “usar” to “users”. With this change, the path for specifying the name data is changed from “/ website / usar” to “/ website / users ".

差分情報において、変更文データB−4の次の変更文データB−5のパスには、変更文データB−4の適用後の名前データを指定するパス「/website/users」が含まれている。変更文データB−5は、変更文データB−4の変更対象の名前データの更なる変更を行うためのものではない。   In the difference information, the path of the change sentence data B-5 next to the change sentence data B-4 includes a path “/ website / users” that specifies name data after application of the change sentence data B-4. Yes. The change sentence data B-5 is not for further changing the name data to be changed in the change sentence data B-4.

集約部13は、変更文データB−5における「/website/users」を、変更文データB−4の適用前の「/website/usar」へ書き換える。   The aggregation unit 13 rewrites “/ website / users” in the change sentence data B-5 to “/ website / user” before the change sentence data B-4 is applied.

図14に示されるように、集約部13は、上述した前処理(ステップS200)の実行後に集約処理を実行する(ステップS201)。   As illustrated in FIG. 14, the aggregation unit 13 executes the aggregation process after the execution of the above-described preprocessing (step S200) (step S201).

図18は、ステップS201の集約処理の詳細を例示するフローチャートである。集約部13は、差分情報におけるi番目とj番目の各変更文データにおけるパスが一致し、且つ、i番目の変更文データの適用後の語句データと、j番目の変更文データの適用前の語句データが等しいかを判定する(ステップS500)。iは、1からNまでの自然数である。Nは、差分情報において含まれる変更文データの総数であり、1以上の自然数である。またjは、i+1からNの間の自然数である。集約部13は、ステップS500の処理に先立ち、iに1を格納し、jに2(=i+1)を格納し、ステップS201の処理を開始する。   FIG. 18 is a flowchart illustrating details of the aggregation processing in step S201. The aggregating unit 13 matches the path in each of the i-th and j-th change sentence data in the difference information, and the phrase data after application of the i-th change sentence data and before application of the j-th change sentence data. It is determined whether the phrase data are equal (step S500). i is a natural number from 1 to N. N is the total number of change sentence data included in the difference information, and is a natural number of 1 or more. J is a natural number between i + 1 and N. Prior to the processing in step S500, the aggregation unit 13 stores 1 in i, stores 2 (= i + 1) in j, and starts the processing in step S201.

集約部13は、i番目とj番目の各変更文データにおけるパスが不一致、又は、i番目の変更文データの適用後の語句データと、j番目の変更文データの適用前の語句データが等しくない場合(ステップS500:No)、j+1をjに置き換える。この場合、処理は、ステップS500の処理へ戻る。なお、j=Nの場合で、且つiがNより小さい場合、集約部13は、i+1をiに置き換え、ステップS500の処理に戻る。i=Nの場合、集約部13は、図14に示すステップS201の処理を終了し、ステップS202の後処理を実行する。   The aggregation unit 13 does not match the paths in the i-th and j-th change sentence data, or the phrase data after application of the i-th change sentence data and the phrase data before application of the j-th change sentence data are equal. If not (step S500: No), j + 1 is replaced with j. In this case, the process returns to the process of step S500. If j = N and i is smaller than N, the aggregating unit 13 replaces i + 1 with i, and returns to the process of step S500. When i = N, the aggregating unit 13 ends the process of step S201 illustrated in FIG. 14 and performs the post-process of step S202.

集約部13は、i、j番目の各変更文データにおけるパスが一致し、i番目の変更文データの適用後の語句データとj番目の変更文データの適用前の語句データが等しい場合(ステップS500:Yes)、i番目の変更文データを変更する(ステップS501)。詳細には、集約部13は、i番目の変更文データにおいて、例えば図2に示されるように、「dst」として示される変更後の語句データを、j番目の変更文データにおいて「dst」として示される変更後の語句データへ変更する。   The aggregating unit 13 matches the paths in the i-th and j-th change sentence data, and the phrase data after application of the i-th change sentence data is equal to the phrase data before application of the j-th change sentence data (step S500: Yes), the i-th change sentence data is changed (step S501). Specifically, the aggregation unit 13 sets the changed phrase data indicated as “dst” as “dst” in the j-th changed sentence data, as shown in FIG. 2, for example, in the i-th changed sentence data. Change to the changed phrase data shown.

2つ以上の変更文データの組み合わせが、あるパスで指定される語句データを推移的に変更するに対応する場合には、集約部13は、これらを1つにまとめる。1つにまとめられた変更文データは、この組み合わせのうち1つも変更文の適用がされない場合の語句データから、この変更文データの組み合わせの適用がされた場合の語句データへの変更を指示するものとなる。この集約処理により、複数回の変更文データの適用を1回にまとめることができ、後の併合処理等の処理時間が短縮される。   When the combination of two or more pieces of change sentence data corresponds to changing the phrase data specified by a certain path in a transitive manner, the aggregating unit 13 combines them into one. The change text data combined into one indicates a change from the phrase data when no change sentence is applied to one of the combinations to the phrase data when the change sentence data combination is applied. It will be a thing. By this aggregation processing, it is possible to combine a plurality of times of application of the change sentence data at one time, and the processing time for subsequent merge processing and the like is shortened.

集約部13は、j番目の変更文データを差分情報から削除する(ステップS502)。i番目の変更文データにより、文書データにおいて、j番目の変更文データによる変更結果が得られるからである。   The aggregation unit 13 deletes the jth change sentence data from the difference information (step S502). This is because the i-th change statement data can be used to obtain the change result of the j-th change statement data in the document data.

図19は、集約処理について具体的に説明するための図である。図19に示されるように、差分情報において3番目の変更文データB−3と5番目の変更文データB−5の各パスは一致している。また変更文データB−3の適用後(dst)の語句データ「None」(語句データ「None」は、削除された空のデータを指すものとする)と、変更文データB−5の適用前の語句データ「None」とが等しい。   FIG. 19 is a diagram for specifically explaining the aggregation processing. As shown in FIG. 19, in the difference information, the third change sentence data B-3 and the fifth change sentence data B-5 have the same path. Further, the phrase data “None” after application of the modified sentence data B-3 (dst) (the phrase data “None” indicates the deleted empty data) and before the application of the modified sentence data B-5 Is identical to the phrase data “None”.

このため、集約部13は、ステップS500における判定条件が満たされているものとして、ステップS501において、変更文データB−3における変更後の語句データ「None」を、変更文データB−5における変更後の語句データ「D」に変更する。この変更後の変更文データB−3の識別子は、B−3’へ置き換えられる。変更文データB−5は、ステップS502において削除される。   Therefore, the aggregation unit 13 assumes that the determination condition in step S500 is satisfied, and changes the phrase data “None” after the change in the change sentence data B-3 to the change in the change sentence data B-5 in step S501. Change to the later phrase data “D”. The identifier of the changed sentence data B-3 after the change is replaced with B-3 '. The change sentence data B-5 is deleted in step S502.

また不図示であるが、変更文データA−1と変更文データA−4も集約化され、集約後の変更文データA−1’におけるパスは「/website/usar」、変更文データA−1’の適用前後の語句データはそれぞれ「usar」、「account」となる。   Although not shown, the change sentence data A-1 and the change sentence data A-4 are also aggregated, and the path in the change sentence data A-1 ′ after aggregation is “/ website / usar”, and the change sentence data A−. The phrase data before and after the application of 1 ′ are “usar” and “account”, respectively.

集約部13は、ステップS201の処理後、前処理において書き換えた情報を元に戻す後処理を実行する(ステップS202)。   After the process of step S201, the aggregating unit 13 executes a post process for restoring the information rewritten in the pre process (step S202).

図20は、ステップS202の後処理の詳細を例示するフローチャートである。図20において、集約部13は、差分情報に含まれる変更文データの順番に、ステップS600以降の処理を実行する。集約部13は、ステップS202の開始の際にiに1を格納する。   FIG. 20 is a flowchart illustrating details of the post-processing in step S202. In FIG. 20, the aggregating unit 13 executes the processes after step S600 in the order of the change sentence data included in the difference information. The aggregation unit 13 stores 1 in i at the start of step S202.

集約部13は、書換情報を参照し、差分情報中のi番目の変更文データの識別子が含まれているかを判定する(ステップS600)。   The aggregation unit 13 refers to the rewrite information and determines whether the identifier of the i-th changed sentence data in the difference information is included (step S600).

i番目の変更文データの識別子が書換情報に含まれていない場合で(ステップS600:No)、iがN’未満である場合には、集約部13は、i+1をiに置き換え、ステップS600の処理へ戻る。N’は、集約処理後の、差分情報に含まれる変更文データの総数である。i=N’の場合には、図14に示されるように、集約部13による、1つの差分情報に対する処理は終了する。図14におけるある差分情報に対する後処理(ステップS202)の後であって、他の差分情報について後処理が終了していない場合、集約部13は、他の差分情報についてステップS200以降の処理を実行する。他の差分情報についてステップS202の処理が終了に伴い、集約部13は、処理を終了する。   When the identifier of the i-th changed sentence data is not included in the rewrite information (step S600: No), and i is less than N ′, the aggregating unit 13 replaces i + 1 with i, and in step S600 Return to processing. N ′ is the total number of changed sentence data included in the difference information after the aggregation process. In the case of i = N ′, as shown in FIG. 14, the processing for one difference information by the aggregation unit 13 ends. After post-processing (step S202) for certain difference information in FIG. 14, when post-processing has not been completed for other difference information, the aggregating unit 13 executes the processing after step S200 for the other difference information. To do. As the process of step S202 ends for the other difference information, the aggregation unit 13 ends the process.

i番目の変更文データの識別子が書換情報に含まれる場合(ステップS600:Yes)、集約部13は、この識別子に関連付けられ記憶されている、ステップS402の書き換え前後の各パスを参照する。集約部13は、この記憶されている各パスに基づき、書き換え後のパスを書き換え前のパスへ変更する(ステップS601)。これにより、例えば、変更文データA−2におけるパス「/website/usar/2」は、変更文データA−1’の適用による変更に基づいた「/website/account/2」となる。   When the identifier of the i-th changed sentence data is included in the rewrite information (step S600: Yes), the aggregation unit 13 refers to each path before and after the rewrite in step S402, which is stored in association with the identifier. The aggregating unit 13 changes the rewritten path to the pre-rewritten path based on each stored path (step S601). Thereby, for example, the path “/ website / usar / 2” in the change sentence data A-2 becomes “/ website / account / 2” based on the change by the application of the change sentence data A-1 ′.

図21は、併合部16による処理のフローを例示する。図21に示す処理の際に、差分情報は、変更対象の語句データを指定するパスの階層の昇順に変更文データがソートされている。ここでは、2つの差分情報を用いて、併合処理を行う場合を例に挙げて説明する。2つの差分情報の一方を差分情報A、他方を差分情報Bとする。2つの差分情報A、Bにおける変更文データに含まれるパスの階層のうちの最も深い階層をMとする。Mは1以上の自然数である。   FIG. 21 illustrates a processing flow by the merging unit 16. In the process shown in FIG. 21, the difference information is sorted in the ascending order of the hierarchy of the path specifying the phrase data to be changed. Here, a case where a merge process is performed using two pieces of difference information will be described as an example. One of the two pieces of difference information is set as difference information A, and the other is set as difference information B. Let M be the deepest hierarchy of the path hierarchy included in the change sentence data in the two pieces of difference information A and B. M is a natural number of 1 or more.

併合部16は、差分情報Aにおいて、パスの階層がkの変更文データがあるかを判定する(ステップS700)。なお、ステップS700に先立ち、kには、最初に1が格納される。パスの階層がkの変更文データが差分情報A、Bに存在しない場合(ステップS700:No)、併合部16は、k+1をkに置き換え、ステップS700の処理に戻る。パスの階層がkの変更文が差分情報A、Bに存在する場合(ステップS700:Yes)、併合部16は、パスの階層がkの変更文データの1つを処理対象として選択する(ステップS701)。ステップS701において併合部16が選択した変更文データを変更文データPと記載する。以下、変更文データPが差分情報Aに含まれる場合について説明する。   The merging unit 16 determines whether there is change sentence data with a path hierarchy of k in the difference information A (step S700). Prior to step S700, 1 is first stored in k. When the change sentence data whose path hierarchy is k does not exist in the difference information A and B (step S700: No), the merging unit 16 replaces k + 1 with k, and returns to the process of step S700. When the change sentence with the path hierarchy k exists in the difference information A and B (step S700: Yes), the merging unit 16 selects one of the change sentence data with the path hierarchy k as the processing target (step S700). S701). The change sentence data selected by the merging unit 16 in step S701 is referred to as change sentence data P. Hereinafter, a case where the change sentence data P is included in the difference information A will be described.

併合部16は、差分情報Bにおいて、パスの階層がkの変更文データであって、変更文データPのパスと同一のパスを含む変更文データがあるか否かを判定する(ステップS702)。ここで、パスの階層がkで、変更文データPのパスと同一のパスを含む、差分情報Bにおける変更文データを変更文データQとする。変更文データQがある場合(ステップS702:Yes)、併合部16は、変更文データP、Qの適用後(dst)の各語句データが等しいか判定する(ステップS703)。変更文データP、Qの適用後の各語句データが等しい場合(ステップS703:Yes)、併合部16は、変更文データBを削除し(ステップS704)、差分情報A、Bの適用対象の文書データに対し、変更文Pを適用する(ステップS705)。このとき、併合部16は、変更文データP適用後の文書データに、変更文データP適用後の語句データ以外に、変更文データP適用前の語句データを含ませてもよい。なお、以下では差分情報A、Bの適用対象の文書データを文書データSと記載する。   In the difference information B, the merging unit 16 determines whether there is changed sentence data whose path hierarchy is k and includes the same path as the path of the changed sentence data P (step S702). . Here, the change sentence data in the difference information B including the same path as the path of the change sentence data P with the path hierarchy being k is assumed to be the change sentence data Q. When there is the change sentence data Q (step S702: Yes), the merging unit 16 determines whether each word data after application of the change sentence data P and Q (dst) is equal (step S703). When the phrase data after application of the changed sentence data P and Q are equal (step S703: Yes), the merging unit 16 deletes the changed sentence data B (step S704), and the documents to which the difference information A and B are applied. The change sentence P is applied to the data (step S705). At this time, the merging unit 16 may include the phrase data before application of the change sentence data P in addition to the phrase data after application of the change sentence data P in the document data after application of the change sentence data P. Hereinafter, the document data to which the difference information A and B is applied is referred to as document data S.

変更文データP、Q適用後の各語句データが異なる場合(ステップS703:No)、併合部16は、文書データSに対し変更文データP、Qの各適用後の語句データを、変更後の文書データSに候補として含ませる(ステップS706)。これらの候補は、例えば、図6において例示したように、互いに「or」で結び付けられる。   When the phrase data after application of the changed sentence data P and Q is different (step S703: No), the merging unit 16 converts the phrase data after application of the changed sentence data P and Q to the document data S after the change. It is included as a candidate in the document data S (step S706). These candidates are connected to each other by “or” as illustrated in FIG.

ここで、変更文データP、Qのいずれか一方が語句データを削除するためのものである場合、本実施形態においては、当該変更文データの適用はされず、他方の変更文データが適用される。   Here, when either one of the change sentence data P and Q is for deleting the phrase data, in the present embodiment, the change sentence data is not applied and the other change sentence data is applied. The

併合部16が、差分情報A、Bの各変更文データの適用の際に、同一のパスについてステップS703〜S706の処理を行うことにより、1つの語句データに対する競合する複数の変更命令のいずれをも活用することができる。これにより、複数のユーザによる1つの語句データの更新において、一方のユーザによる更新のために他方のユーザによる更新結果が消去等される事態や、望まない更新結果が得られる事態を防ぐことができる。 併合部16は、ステップS705又はステップS706による変更文データが、名前データを変更するためのものか否かを判定する(ステップS707)。併合部16は、ステップS705、S706による変更文データが、名前データの変更に係るものでない場合(ステップS707:No)、ステップ700へ処理を戻す。   When the merging unit 16 applies each change sentence data of the difference information A and B, by performing the processing of steps S703 to S706 for the same path, any one of a plurality of change instructions competing for one phrase data is selected. Can also be used. Thereby, in the update of one phrase data by a plurality of users, it is possible to prevent a situation in which an update result by the other user is deleted due to an update by one user or a situation in which an undesired update result is obtained. . The merging unit 16 determines whether or not the changed sentence data in step S705 or step S706 is for changing the name data (step S707). The merger 16 returns the process to step 700 when the changed sentence data in steps S705 and S706 is not related to the change of the name data (step S707: No).

ステップS705、S706における変更文データP、Qが、名前データの変更に係る場合(ステップS707:Yes)、併合部16は、変更前の名前データを指定するパスを、他の変更文データにおけるパスが含むか判定する(ステップS708)。併合部16は、変更文データP、Q適用前における名前データを指定するパスを含む他の変更文データが存在しない場合(ステップS708:No)、ステップ700へ処理を戻す。   When the change sentence data P and Q in steps S705 and S706 relate to the change of the name data (step S707: Yes), the merging unit 16 uses the path for specifying the name data before the change as the path in the other change sentence data. (Step S708). The merger 16 returns the processing to Step 700 when there is no other changed sentence data including a path for designating the name data before application of the changed sentence data P and Q (Step S708: No).

変更文データP、Q適用前における名前データを指定するパスを含む他の変更文データが存在する場合(ステップS708:Yes)、併合部16は、この他の変更文データにおけるパスに対し、変更文データP又は変更文データQを適用する(ステップS709)。この際に、併合部16は、この他の変更文データにおける、変更文データP、Qの適用前の各パスと、適用後の各パスとを対応付け、一時的に記憶する。例えば、ステップS706において、変更文データP、Qの適用により名前データが変更され、これによりステップS709において、他の変更文データにおけるパスが変更される場合を考える。この場合、差分情報Aにおいてパスが変更された変更文データと、差分情報Bにおいてパスが変更された変更文データが、変更前は同じパスであったにも関わらず、異なるパスとなっている可能性がある。このため、変更前には同じパスで、変更後は互いに異なるパスとなる、差分情報A、Bの各変更文データにおけるパスについては、互いに関連付けておく。これにより、以降のステップS702において、差分情報A、Bの各変更文において、本来同一であるはずのパスが異なるものとして扱われることが防止できる。   When there is other change statement data including a path for specifying the name data before application of the change statement data P and Q (step S708: Yes), the merging unit 16 changes the path in the other change statement data. The sentence data P or the changed sentence data Q is applied (step S709). At this time, the merging unit 16 associates and temporarily stores each path before the application of the change sentence data P and Q and each path after the application in the other change sentence data. For example, consider a case where the name data is changed by applying the changed sentence data P and Q in step S706, and the path in the other changed sentence data is changed in step S709. In this case, the changed sentence data in which the path is changed in the difference information A and the changed sentence data in which the path is changed in the difference information B are different paths even though they were the same path before the change. there is a possibility. For this reason, the paths in the change statement data of the difference information A and B, which are the same path before the change and different paths after the change, are associated with each other. As a result, in the subsequent step S702, it is possible to prevent the changed sentences of the difference information A and B from being treated as different paths that should be the same.

ステップS700〜S709の処理において、併合部16は、2以上の差分情報における各変更文データを、パスの浅いものから順番に、併せて適用する。これにより、文書データにおいて、浅いパスで指定される語句データから深いパスで指定される語句データまでを、順番に、2つ以上の変更命令を活かしつつ、変更していくことができる。このため2つ以上の変更命令の活かした併合結果を得ることができる。   In the processing of steps S700 to S709, the merging unit 16 applies each change sentence data in two or more pieces of difference information in order from the shallowest path. As a result, in the document data, the phrase data specified by the shallow path to the phrase data specified by the deep path can be sequentially changed using two or more change commands. Therefore, it is possible to obtain a merge result utilizing two or more change instructions.

このことについて、図13を参照して具体的に説明する。例えば、変更命令Aにおいては階層が浅いパスを含む変更文データから適用され、変更命令Bにおいては階層が深いパスから適用される場合を考える。変更命令Aにおいては変更文データA−1、A−3がこの順番で適用されるとし、変更命令Bにおいては変更文データB−3’、B−4がこの順番で適用されるとする。このときに変更文データB−3’が変更文データA−3より先に適用されると、変更文データA−3の適用対象の語句データ「C」が存在しなくなる。もし変更文データA−3が「C」を「E」に変更するためのものである場合には、変更文データA−3は活用されなくなる。同様に例えば、変更文データA−1’を変更文データB−4より先に適用することにより、変更文データB−4の適用対象である語句データ「usar」がなくなってしまい、変更文データB−4を活かすことができなくなる。このようにパスの階層が揃っていない変更文データが適用されると、構造化文書の併合が適切にされず、ユーザにとっては意図しない結果を招くことになる。しかし、パスの階層が揃っている変更文データを適用する場合には、例えば浅い階層のパスで指定される語句データから順番に、変更命令A、Bを活かしながら更新可能となり、変更結果も整合性が満たされる。その結果、構造化文書の併合が適切に行なわれる。   This will be specifically described with reference to FIG. For example, consider a case where the change instruction A is applied from change sentence data including a path having a shallow hierarchy, and the change instruction B is applied from a path having a deep hierarchy. In the change instruction A, the change sentence data A-1 and A-3 are applied in this order, and in the change instruction B, the change sentence data B-3 'and B-4 are applied in this order. At this time, if the changed sentence data B-3 'is applied before the changed sentence data A-3, the phrase data "C" to be applied to the changed sentence data A-3 does not exist. If the change sentence data A-3 is for changing “C” to “E”, the change sentence data A-3 is not used. Similarly, for example, by applying the change sentence data A-1 ′ before the change sentence data B-4, the phrase data “usar” to which the change sentence data B-4 is applied disappears, and the change sentence data B-4 cannot be utilized. In this way, when change sentence data in which the path hierarchy is not complete is applied, merging of structured documents is not appropriate, and an unintended result for the user is caused. However, when applying change sentence data with a uniform path hierarchy, for example, the phrase data specified in the shallow hierarchy path can be updated in order using the change instructions A and B, and the change results are also consistent. Sex is satisfied. As a result, merging of structured documents is performed appropriately.

併合部16は、変更後の文書データSにおいて、不要な語句データの候補が存在する場合に、これを消去する(ステップS711)。例えば、ステップS705において、変更文データAの適用前の語句データが候補として、変更後の文書データSに含まれるような場合に、併合部16は、この語句データを削除する。   The merging unit 16 deletes unnecessary word / phrase data candidates in the document data S after the change (step S711). For example, in step S705, when the phrase data before application of the changed sentence data A is included as a candidate in the document data S after the change, the merging unit 16 deletes the phrase data.

併合部16は、入出力部11を介して、文書データにおける複数の候補の語句データの中から適切なものをユーザに選択させるための処理の実行を選択部17に指示する(ステップS712)。   The merging unit 16 instructs the selection unit 17 to execute processing for causing the user to select an appropriate item from among a plurality of candidate word / phrase data in the document data via the input / output unit 11 (step S712).

図22〜25は、併合部16による処理方法を例示する。この例において併合部16は、図13に例示した、ソート処理後の変更文データを用いて併合処理を行う。変更文データA−1’、A−2、A−3を含む差分情報を差分情報Aとし、変更文データB−1、B−2、B−3’、B−4を含む差分情報を差分情報Bとする。   22 to 25 illustrate a processing method by the merging unit 16. In this example, the merging unit 16 performs the merging process using the changed sentence data after the sort process illustrated in FIG. Difference information including the change statement data A-1 ′, A-2, and A-3 is set as difference information A, and difference information including the change statement data B-1, B-2, B-3 ′, and B-4 is set as a difference. Let it be information B.

この例において、差分情報A、Bには、パスの階層が1の変更文データが存在せず、階層が2の変更文データが存在する。ここでは、最初のステップS701において、変更文データA−1’が選択される場合について説明する。   In this example, in the difference information A and B, there is no change statement data with a path hierarchy of 1, and there is change statement data with a hierarchy of 2. Here, a case where the changed sentence data A-1 ′ is selected in the first step S701 will be described.

ステップS702において、併合部16は、階層2のパスで、変更文データA−1’におけるパスと同一のパスの変更文B−4があることから、ステップS703の処理を実行する。ステップS703において、併合部16は、変更文データA−1’と変更文データB−4の各々の適用後の語句データが異なると判定する。この判定結果に応じて、併合部16は、ステップS706において、変更対象の文書データ(文書データSとする)に対し、変更文A−1’、B−4を適用する。   In step S702, the merging unit 16 executes the process of step S703 because there is a change sentence B-4 in the same path as that in the change sentence data A-1 'in the hierarchy 2 path. In step S703, the merging unit 16 determines that the phrase data after application of the modified sentence data A-1 'and the modified sentence data B-4 are different. In accordance with this determination result, the merging unit 16 applies the changed sentences A-1 'and B-4 to the document data to be changed (referred to as document data S) in step S706.

図22に、変更対象の文書データSを示す。ステップS706における変更文データA−1’、B−4の適用により、文書データSにおける語句データ「usar」は、2つの語句データの候補「account」、「users」を含むデータ「“account” or “users”」に変更される。これにより、文書データSは、文書データS1へと変更される。   FIG. 22 shows the document data S to be changed. By applying the changed sentence data A-1 ′ and B-4 in step S706, the phrase data “usar” in the document data S is data “account” or “2” including two candidate phrase data “account” and “users”. Changed to “users”. Thereby, the document data S is changed to the document data S1.

ステップS707において、併合部16は、ステップS706において適用した変更文データが名前データの変更に係るものであると判定する。併合部16は、ステップS708において、図22に示すように、変更文データB−4の適用前の名前データ「usar」のパスを含む、変更文データB−1、B−2、B−3が存在すると判定し、ステップS709の処理を実行する。併合部16は、ステップS709において、変更文データB−1、B−2、B−3の各々のパスにおける「usar」を、「users」に変更する。   In step S707, the merging unit 16 determines that the changed sentence data applied in step S706 relates to the change of the name data. In step S708, the merging unit 16 changes the changed sentence data B-1, B-2, B-3 including the path of the name data “usar” before application of the changed sentence data B-4 as shown in FIG. Is determined, and the process of step S709 is executed. In step S709, the merging unit 16 changes “usar” in each path of the changed sentence data B-1, B-2, and B-3 to “users”.

なお、後の処理のために、併合部16は、パス「/website/account」とパス「/website/users/」とを対応付けて一時的に記憶する。   Note that the merging unit 16 temporarily stores the path “/ website / account” and the path “/ website / users /” in association with each other for later processing.

併合部16は、階層が2のパスを含む変更文データが他にないことから、階層が3の場合についてステップS700以降の処理を行う。この処理について、図21と図23〜25を参照し、説明する。なお、図23以降においては既に適用済みの変更文データを記載しない。   The merging unit 16 performs the processing from step S700 onward when the hierarchy is 3 because there is no other change sentence data including a path with a hierarchy of 2. This process will be described with reference to FIG. 21 and FIGS. In FIG. 23 and subsequent figures, already applied change sentence data is not described.

併合部16は、ステップS701において変更文A−2を選択するものとする。図23を参照すると、変更文データA−2におけるパスの階層は、変更文データB−2におけるパスの階層と等しい。ここで併合部16は、「/website/account」と「/website/users/」を互いに対応付けて記憶している。このため併合部16は、ステップS702において、変更文データA−2におけるパス「/website/account/2」と同一のパス「/website/users/」を含む変更文データB−2があると判定する。   The merging unit 16 selects the change sentence A-2 in step S701. Referring to FIG. 23, the path hierarchy in the change sentence data A-2 is equal to the path hierarchy in the change sentence data B-2. Here, the merging unit 16 stores “/ website / account” and “/ website / users /” in association with each other. Therefore, in step S702, the merging unit 16 determines that there is the change sentence data B-2 including the same path “/ website / users /” as the path “/ website / account / 2” in the change sentence data A-2. To do.

変更文データA−2、B−2の適用後の各語句データは互いに等しく、「C」であるため、併合部16は、変更文データB−2を削除し、ステップS705において文書データS1に対し変更文データA−2を適用する。なお、この変更は、値データの変更であり、名前データの変更ではない。このため、差分情報における他の変更文データのパスの変更はされない。   Since the phrase data after application of the changed sentence data A-2 and B-2 are equal to each other and “C”, the merging unit 16 deletes the changed sentence data B-2 and changes it to the document data S1 in step S705. On the other hand, the change sentence data A-2 is applied. This change is a change of value data, not name data. For this reason, the path of other change sentence data in the difference information is not changed.

図23に示される文書データS1は、3つの値データのうちの2番目の「B」が「C」へと変更され、文書データS2に変更される。   In the document data S1 shown in FIG. 23, the second “B” of the three value data is changed to “C” and changed to the document data S2.

次に、併合部16はステップS701において変更文データA−3を選択する場合を考える。図24を参照すると、変更文データA−3におけるパスの階層は、変更文データB−3’におけるパスの階層と等しい。上記の「/website/account」と「/website/users/」の対応から、変更文データA−3、B−3’における各パス「/website/account/3」、「/website/users/3」は、ステップS702で一致する。   Next, consider the case where the merging unit 16 selects the change sentence data A-3 in step S701. Referring to FIG. 24, the path hierarchy in the modified sentence data A-3 is equal to the path hierarchy in the modified sentence data B-3 '. From the correspondence between the above “/ website / account” and “/ website / users /”, the paths “/ website / account / 3” and “/ website / users / 3” in the changed sentence data A-3 and B-3 ′ "Matches in step S702.

変更文データA−3は、値データ「C」を削除するためのもので、変更文データB−3’は、この値データ「C」を「D」に変更するためのものである。このため、併合部16は、ステップS706において、文言データS2に対し変更文データB−3’を適用する。これにより、図24に示されるように文書データS2は文書データS3に変更され、文書データS2における値データ「C」は、文書データS3においては値データ「D」に変更されていることがわかる。   The change statement data A-3 is for deleting the value data “C”, and the change statement data B-3 ′ is for changing the value data “C” to “D”. For this reason, the merging unit 16 applies the changed sentence data B-3 ′ to the wording data S2 in step S706. Accordingly, as shown in FIG. 24, the document data S2 is changed to the document data S3, and the value data “C” in the document data S2 is changed to the value data “D” in the document data S3. .

併合部16は、未だ適用されていない変更文データB−1をステップS701において選択し、ステップS705において変更文データB−1を文書データS3に適用する。変更文データB−1の適用により、図25に示すように、文書データS3における値データ「A」は「B」に変更され、文書データS3は文書データS4に変更される。   The merging unit 16 selects the changed sentence data B-1 that has not been applied yet in step S701, and applies the changed sentence data B-1 to the document data S3 in step S705. By applying the change sentence data B-1, the value data “A” in the document data S3 is changed to “B” and the document data S3 is changed to the document data S4 as shown in FIG.

図26は、本実施形態に係る併合装置1のハードウェア構成を例示する。ここでは、併合装置1は、一般的なコンピュータとしてハードウェアを有し、併合装置1による処理は、以下に示すハードウェア2を具体的に利用することにより実行される。   FIG. 26 illustrates a hardware configuration of the merging apparatus 1 according to the present embodiment. Here, the merging apparatus 1 has hardware as a general computer, and the processing by the merging apparatus 1 is executed by specifically using the hardware 2 shown below.

ハードウェア2は、互いにバス24によって接続されたプロセッサ20、メモリ21、記憶装置22、およびユーザインターフェース回路23等を備える。   The hardware 2 includes a processor 20, a memory 21, a storage device 22, a user interface circuit 23, and the like connected to each other by a bus 24.

プロセッサ20は、例えばシングルコア、デュアルコア、またはマルチコアのプロセッサである。   The processor 20 is, for example, a single core, dual core, or multi-core processor.

メモリ21は、例えばROM(Read Only Memory)、RAM(Random Access Memory)、若しくは半導体メモリ等、又はこれらの組み合わせである。   The memory 21 is, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), a semiconductor memory, or a combination thereof.

プロセッサ20が、メモリ21に記憶された各種プログラム(併合プログラムを含む)等を実行することにより、上記の差分取得部12、集約部13、ソート部14、ソース取得部15、併合部16、および選択部17の各機能が実現され得る。   The processor 20 executes various programs (including a merge program) stored in the memory 21, so that the difference acquisition unit 12, the aggregation unit 13, the sort unit 14, the source acquisition unit 15, the merge unit 16, Each function of the selection unit 17 can be realized.

記憶装置22は、例えばハードディスクドライブ、光ディスク装置等、又はこれらの組み合わせであり、また可搬型記憶媒体等が含まれてもよい。当該記憶装置22により、上述した記憶部10の機能が実現され得る。   The storage device 22 is, for example, a hard disk drive, an optical disk device, or a combination thereof, and may include a portable storage medium. The function of the storage unit 10 described above can be realized by the storage device 22.

ユーザインターフェース回路23は、例えば液晶やCRT(Cathode Ray Tube)等を用いる表示装置などの出力装置や、キーボードやマウス等の入力装置を、併合装置1に接続するための回路である。ユーザインターフェース回路23と、これに接続された入力装置と出力装置等により、上記入出力部11の機能が実現され得る。   The user interface circuit 23 is a circuit for connecting an output device such as a display device using a liquid crystal or CRT (Cathode Ray Tube) or the like, or an input device such as a keyboard or a mouse, to the merging device 1. The function of the input / output unit 11 can be realized by the user interface circuit 23 and the input device and output device connected thereto.

なお、上述した場合以外にも、図1に示す併合装置1の機能ブロックの全て、又はその一部の機能は、適宜、専用のハードウェアにより実現されてもよい。   In addition to the case described above, all or some of the functional blocks of the merging apparatus 1 shown in FIG. 1 may be realized by dedicated hardware as appropriate.

本実施形態に係る併合装置1は、複数の変更命令における各変更文データにおけるパスの階層に応じ、変更文データを並べ替える。併合装置1は、2以上の差分情報における各変更文データを、パスの浅い(又は深い)ものから順番に、併せて適用する。これにより、文書データにおいて、浅いパスで指定される語句データから深いパスで指定される語句データまでを、順番に、2つ以上の変更命令を活かしつつ、変更していくことができる。このため文書データの構造に即し、且つ2つ以上の変更命令の活かした併合結果を得ることができる。また、併合装置1は、2以上の差分情報の各々において、同一のパスの語句データを変更する変更文データがある場合に、これらの変更文データの適用結果のいずれも、変更後の文書データに盛り込むことにより活用する。これにより競合する2つ以上の変更命令がある場合でも、文書データを破壊せずに、これら変更命令を活かすことができる。   The merging device 1 according to the present embodiment rearranges the change sentence data in accordance with the path hierarchy in each change sentence data in a plurality of change instructions. The merging apparatus 1 applies each change sentence data in two or more pieces of difference information in order from the shallowest (or deeper) path. As a result, in the document data, the phrase data specified by the shallow path to the phrase data specified by the deep path can be sequentially changed using two or more change commands. For this reason, it is possible to obtain a merged result that conforms to the structure of the document data and uses two or more change commands. In addition, when there is change sentence data that changes the phrase data of the same path in each of the two or more pieces of difference information, the merging apparatus 1 uses any of the application results of these change sentence data as the document data after the change. Use it by incorporating it into As a result, even when there are two or more change commands competing, these change commands can be utilized without destroying the document data.

また、併合装置1は、文書データの或る位置における文言データに対する変更文が1つの差分情報中に2つ以上存在し、これらの変更文を用いる変更が推移的なものである場合に、これらの変更文を集約する。これにより併合処理のための時間の短縮が図られる。   The merging apparatus 1 can also be used when there are two or more change sentences for the word data at a certain position of the document data in one difference information and changes using these change sentences are transitive. Aggregate change statements. This shortens the time for the merge process.

本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態および変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。特許請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形も、本発明の範囲内とみなされる。   Various embodiments and modifications can be made to the present invention without departing from the broad spirit and scope of the present invention. Further, the above-described embodiment is for explaining the present invention, and does not limit the scope of the present invention. Various modifications within the scope of the claims and within the scope of the equivalent invention are also considered within the scope of the present invention.

1 併合装置
2 ハードウェア
10 記憶部
11 入出力部
12 差分取得部
13 集約部
14 ソート部
15 ソース取得部
16 併合部
17 選択部
20 プロセッサ
21 メモリ
22 記憶装置
23 ユーザインターフェース回路
DESCRIPTION OF SYMBOLS 1 Merge apparatus 2 Hardware 10 Storage part 11 Input / output part 12 Difference acquisition part 13 Aggregation part 14 Sort part 15 Source acquisition part 16 Merge part 17 Selection part 20 Processor 21 Memory 22 Storage apparatus 23 User interface circuit

Claims (12)

構造化文書に対する別個の更新により生成される第1の構造化文書および第2の構造化文書について、前記第1の構造化文書と前記構造化文書との差分を示す第1の差分情報、および前記第2の構造化文書と前記構造化文書との差分を示す第2の差分情報を取得し、
前記第1の差分情報に含まれる第1の変更文データの適用対象の第1の語句データが前記構造化文書において所属している第1の階層、および前記第2の差分情報に含まれる第2の変更文データの適用対象の第2の語句データが前記構造化文書において所属している第2の階層のそれぞれの深さに基づいて、前記第1の変更文データおよび前記第2の変更文データの適用順序を決定し、
前記適用順序に基づいて前記第1の変更文データを前記構造化文書へ適用する際に、前記第1の階層と等しい第2の階層に所属する第2の語句データを適用対象とする第2の変更文データも併せて前記構造化文書に適用して、前記第1の構造化文書および前記第2の構造化文書を併合する
処理を併合装置が実行することを特徴とする併合方法。
First difference information indicating a difference between the first structured document and the structured document for the first structured document and the second structured document generated by separate updates to the structured document; and Obtaining second difference information indicating a difference between the second structured document and the structured document;
The first hierarchy data to which the first word / phrase data to be applied to the first change sentence data included in the first difference information belongs in the structured document, and the first hierarchy included in the second difference information. The second change sentence data to which the second change phrase data is applied is based on the respective depths of the second hierarchy to which the second phrase data belongs in the structured document. Determine the order in which statement data is applied,
When applying the first change sentence data to the structured document based on the application order, a second word / phrase data belonging to a second hierarchy equal to the first hierarchy is applied. The merged apparatus executes the process of merging the first structured document and the second structured document by also applying the change sentence data of the above to the structured document and merging the first structured document and the second structured document.
前記第1の差分情報に含まれる前記第1の変更文データを前記第1の階層に基づいて並び替え、前記第2の差分情報に含まれる前記第2の変更文データを前記第2の階層に基づいて並び替え、
並び替えられた順番に基づき、前記第1の変更文データと前記第2の変更文データの前記構造化文書への適用順序を決定する、
処理を前記併合装置が実行することを特徴とする請求項1に記載の併合方法。
The first change sentence data included in the first difference information is rearranged based on the first hierarchy, and the second change sentence data included in the second difference information is changed to the second hierarchy. Sort based on
Determining an application order of the first change sentence data and the second change sentence data to the structured document based on the rearranged order;
The merging method according to claim 1, wherein the merging device executes processing.
前記適用順序は、前記第1の階層および前記第2の階層の昇順であることを特徴とする請求項1又は2に記載の併合方法。   The merging method according to claim 1 or 2, wherein the application order is an ascending order of the first hierarchy and the second hierarchy. 前記第1の変更文データは、適用対象の前記第1の語句データの前記構造化文書における所属関係を示す第1の所属情報を含み、前記第2の変更文データは、適用対象の前記第2の語句データの前記構造化文書における所属関係を示す前記第2の所属情報を含み、前記第1の所属情報と前記第2の所属情報が等しい場合に、前記第1の変更文データの前記構造化文書への適用の際に、前記第2の変更文データも前記構造化文書に適用する
処理を併合装置が実行することを特徴とする請求項1から3のいずれか1項に記載の併合方法。
The first change sentence data includes first affiliation information indicating an affiliation relationship in the structured document of the first phrase data to be applied, and the second change sentence data is the first change sentence data to be applied. And the second affiliation information indicating the affiliation relationship of the two phrase data in the structured document, and when the first affiliation information and the second affiliation information are equal, the first change sentence data 4. The merger according to claim 1, wherein the merger executes a process of applying the second change sentence data to the structured document when applied to the structured document. 5. Merge method.
前記第1の所属情報と前記第2の所属情報が等しい場合であって、前記第1の変更文データの適用後の前記第1の語句データが、前記第2の変更文データの適用後の前記第2の語句データと異なる場合、前記第1の構造化文書と前記第2の構造化文書の併合後の構造化文書に前記第1の変更文データの適用後の第1の語句データと、前記第2の変更文データの適用後の第2の語句データを含ませる
処理を併合装置が実行することを特徴とする請求項4に記載の併合方法。
The first affiliation information is the same as the second affiliation information, and the first word / phrase data after application of the first change sentence data is applied after the application of the second change sentence data. If the first phrase data is different from the second phrase data, the first phrase data after the first modified sentence data is applied to the structured document after merging the first structured document and the second structured document; The merging method according to claim 4, wherein the merging device executes a process of including the second word / phrase data after application of the second change sentence data.
前記第1の所属情報と前記第2の所属情報が等しい場合に、前記第1の変更文データの適用後の第1の語句データと、前記第2の変更文データの適用後の第2の語句データを出力する
処理を併合装置が実行することを特徴とする請求項5に記載の併合方法。
When the first affiliation information and the second affiliation information are equal, the first phrase data after application of the first change sentence data and the second after application of the second change sentence data 6. The merging method according to claim 5, wherein the merging device executes a process of outputting the phrase data.
前記第1の所属情報と前記第2の所属情報とが一致する場合であって、前記第1の変更文データの適用後の前記第1の語句データと、前記第2の変更文データの適用後の前記第2の語句データとが等しい場合、前記第1の変更文データと前記第2の変更文データのいずれか一方を前記構造化文書に適用する
処理を併合装置が実行することを特徴とする請求項4から6のいずれか1項に記載の併合方法。
When the first affiliation information and the second affiliation information match, the first phrase data after application of the first change sentence data and application of the second change sentence data The merge device executes a process of applying one of the first modified sentence data and the second modified sentence data to the structured document when the second phrase data after the second phrase data is equal. The merging method according to any one of claims 4 to 6.
前記第1の所属情報と前記第2の所属情報とが一致する場合であって、前記第1の変更文データの適用により前記第1の語句データが別の語句データへ変更され、前記第2の変更文データの適用により前記第2の語句データが削除される場合、前記第1の変更文データを前記構造化文書に適用し、前記第2の変更文データを前記構造化文書には適用せずに、前記第1の構造化文書および前記第2の構造化文書を併合する
処理を併合装置が実行することを特徴とする請求項4から7のいずれか1項に記載の併合方法。
In the case where the first affiliation information and the second affiliation information match, the first phrase data is changed to another phrase data by applying the first change sentence data, and the second When the second phrase data is deleted by applying the modified sentence data, the first modified sentence data is applied to the structured document, and the second modified sentence data is applied to the structured document. The merging method according to any one of claims 4 to 7, wherein the merging device executes a process of merging the first structured document and the second structured document without performing the process.
前記第1の変更文データの適用により、前記第1の所属情報が変更される場合で、前記第1の差分情報において前記第1の所属情報を含む第1の他の所属情報により所属関係が示される他の語句データを変更対象とする第1の他の変更文データがある場合、前記第1の他の所属情報に含まれる前記第1の所属情報を、前記第1の変更文データの適用後の前記第1の所属情報へ変更し、
前記第2の変更文データの適用により、前記第2の所属情報が変更される場合で、前記第2の差分情報において前記第2の所属情報を含む第2の他の所属情報により所属関係が示される他の語句データを変更対象とする第2の他の変更文データがある場合、前記第2の他の所属情報に含まれる前記第2の所属情報を、前記第2の変更文データの適用後の前記第2の所属情報へ変更する
処理を併合装置が実行することを特徴とする請求項4から8のいずれか1項に記載の併合方法。
When the first affiliation information is changed by the application of the first change sentence data, the affiliation relationship is determined by the first other affiliation information including the first affiliation information in the first difference information. When there is a first other change sentence data whose change target is the other word / phrase data shown, the first affiliation information included in the first other affiliation information is changed to the first change sentence data. Change to the first affiliation information after application,
When the second affiliation information is changed by application of the second change sentence data, the affiliation relationship is determined by the second other affiliation information including the second affiliation information in the second difference information. When there is a second other change sentence data whose change target is the other word data shown, the second affiliation information included in the second other affiliation information is changed to the second change sentence data. The merging method according to any one of claims 4 to 8, wherein the merging device executes a process of changing to the second affiliation information after application.
前記第1の差分情報において、前記第1の語句データを推移的に更新するための2つ以上の前記第1の変更文データがある場合に、前記2つ以上の第1の変更文データを集約して新たな1つの第1の変更文に書き換え、
前記第2の差分情報において、前記第2の語句データを推移的に更新するための2つ以上の前記第2の変更文データがある場合に、前記2つ以上の第2の変更文データを集約して新たな1つの第2の変更文に書き換え、
前記適用順序を、前記新たな1つの第1の変更文と前記新たな1つの第2の変更文を用いて決定する
処理を併合装置が実行することを特徴とする請求項1から9のいずれか1項に記載の併合方法。
In the first difference information, when there are two or more first change sentence data for transitively updating the first word / phrase data, the two or more first change sentence data are Aggregate and rewrite to one new first change sentence,
In the second difference information, when there are two or more second change sentence data for transitively updating the second phrase data, the two or more second change sentence data are Aggregate and rewrite to a new second change sentence,
The merger executes a process of determining the application order using the one new first change sentence and the one new second change sentence. The merge method according to claim 1.
構造化文書に対する別個の更新により生成される第1の構造化文書および第2の構造化文書について、前記第1の構造化文書と前記構造化文書との差分を示す第1の差分情報、および前記第2の構造化文書と前記構造化文書との差分を示す第2の差分情報を取得する差分取得部と、
前記第1の差分情報に含まれる第1の変更文データの適用対象の第1の語句データが前記構造化文書において所属している第1の階層、および前記第2の差分情報に含まれる第2の変更文データの適用対象の第2の語句データが前記構造化文書において所属している第2の階層のそれぞれの深さに基づいて、前記第1の変更文データおよび前記第2の変更文データの適用順序を決定し、前記適用順序に基づいて前記第1の変更文データを前記構造化文書へ適用する際に、前記第1の階層と等しい第2の階層に所属する第2の語句データを適用対象とする第2の変更文データも併せて前記構造化文書に適用して、前記第1の構造化文書および前記第2の構造化文書を併合する併合部と
を備えることを特徴とする併合装置。
First difference information indicating a difference between the first structured document and the structured document for the first structured document and the second structured document generated by separate updates to the structured document; and A difference acquisition unit that acquires second difference information indicating a difference between the second structured document and the structured document;
The first hierarchy data to which the first word / phrase data to be applied to the first change sentence data included in the first difference information belongs in the structured document, and the first hierarchy included in the second difference information. The second change sentence data to which the second change phrase data is applied is based on the respective depths of the second hierarchy to which the second phrase data belongs in the structured document. When an application order of sentence data is determined and the first change sentence data is applied to the structured document based on the application order, a second hierarchy belonging to a second hierarchy equal to the first hierarchy A second modification sentence data to which word data is applied is also applied to the structured document, and a merging unit for merging the first structured document and the second structured document is provided. Features merger.
構造化文書に対する別個の更新により生成される第1の構造化文書および第2の構造化文書について、前記第1の構造化文書と前記構造化文書との差分を示す第1の差分情報、および前記第2の構造化文書と前記構造化文書との差分を示す第2の差分情報を取得し、
前記第1の差分情報に含まれる第1の変更文データの適用対象の第1の語句データが前記構造化文書において所属している第1の階層、および前記第2の差分情報に含まれる第2の変更文データの適用対象の第2の語句データが前記構造化文書において所属している第2の階層のそれぞれの深さに基づいて、前記第1の変更文データおよび前記第2の変更文データの適用順序を決定し、
前記適用順序に基づいて前記第1の変更文データを前記構造化文書へ適用する際に、前記第1の階層と等しい第2の階層に所属する第2の語句データを適用対象とする第2の変更文データも併せて前記構造化文書に適用して、前記第1の構造化文書および前記第2の構造化文書を併合する
処理を併合装置に実行させること特徴とする併合プログラム。
First difference information indicating a difference between the first structured document and the structured document for the first structured document and the second structured document generated by separate updates to the structured document; and Obtaining second difference information indicating a difference between the second structured document and the structured document;
The first hierarchy data to which the first word / phrase data to be applied to the first change sentence data included in the first difference information belongs in the structured document, and the first hierarchy included in the second difference information. The second change sentence data to which the second change phrase data is applied is based on the respective depths of the second hierarchy to which the second phrase data belongs in the structured document. Determine the order in which statement data is applied,
When applying the first change sentence data to the structured document based on the application order, a second word / phrase data belonging to a second hierarchy equal to the first hierarchy is applied. A merged program that causes the merger to execute a process of merging the first structured document and the second structured document by applying the change sentence data of the above to the structured document.
JP2018016890A 2018-02-02 2018-02-02 Merge method, merge device, and merge program Active JP7073756B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018016890A JP7073756B2 (en) 2018-02-02 2018-02-02 Merge method, merge device, and merge program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018016890A JP7073756B2 (en) 2018-02-02 2018-02-02 Merge method, merge device, and merge program

Publications (2)

Publication Number Publication Date
JP2019133534A true JP2019133534A (en) 2019-08-08
JP7073756B2 JP7073756B2 (en) 2022-05-24

Family

ID=67546215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018016890A Active JP7073756B2 (en) 2018-02-02 2018-02-02 Merge method, merge device, and merge program

Country Status (1)

Country Link
JP (1) JP7073756B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112784527A (en) * 2020-09-30 2021-05-11 北京金山办公软件股份有限公司 Document merging method and device and electronic equipment
CN116302078A (en) * 2023-05-19 2023-06-23 深圳前海环融联易信息科技服务有限公司 Code file merging method and device, storage medium and computer equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010224820A (en) * 2009-03-23 2010-10-07 Honda Motor Co Ltd File update system
JP2013065181A (en) * 2011-09-16 2013-04-11 Nec Corp Information processing device, information processing method, information processing program and information processing system
JP2015518206A (en) * 2012-03-30 2015-06-25 マイクロソフト コーポレーション Tracking collaboration conflicts using document comments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010224820A (en) * 2009-03-23 2010-10-07 Honda Motor Co Ltd File update system
JP2013065181A (en) * 2011-09-16 2013-04-11 Nec Corp Information processing device, information processing method, information processing program and information processing system
JP2015518206A (en) * 2012-03-30 2015-06-25 マイクロソフト コーポレーション Tracking collaboration conflicts using document comments

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112784527A (en) * 2020-09-30 2021-05-11 北京金山办公软件股份有限公司 Document merging method and device and electronic equipment
CN116302078A (en) * 2023-05-19 2023-06-23 深圳前海环融联易信息科技服务有限公司 Code file merging method and device, storage medium and computer equipment
CN116302078B (en) * 2023-05-19 2023-08-01 深圳前海环融联易信息科技服务有限公司 Code file merging method and device, storage medium and computer equipment

Also Published As

Publication number Publication date
JP7073756B2 (en) 2022-05-24

Similar Documents

Publication Publication Date Title
Kaliszyk et al. Holstep: A machine learning dataset for higher-order logic theorem proving
US11561772B2 (en) Low-code development platform
US9405532B1 (en) Integrated cloud platform translation system
US9886245B2 (en) Software development tool using a workflow pattern that describes software applications
US6571247B1 (en) Object oriented technology analysis and design supporting method
Kiesl et al. Extended resolution simulates DRAT
US20140156282A1 (en) Method and system for controlling target applications based upon a natural language command string
JP7502283B2 (en) System and method for auto-completion of ICS flows using artificial intelligence/machine learning
CN104969188A (en) A method for modeling source code having code segments that lack source location
JP2008299723A (en) Program verification method and device
JP7073756B2 (en) Merge method, merge device, and merge program
US20240061653A1 (en) Collaborative industrial integrated development and execution environment
JP7279524B2 (en) Data management program, data management method and data management system
WO2017072872A1 (en) Business program generation assistance system and business program generation assistance method
US20230409956A1 (en) Machine learning prediction of additional steps of a computerized workflow
US8887136B2 (en) Context-based evaluation of equations
Settle et al. aMatReader: Importing adjacency matrices via Cytoscape Automation
JP7340952B2 (en) Template search system and template search method
JP6511793B2 (en) Test case generation program, test case generation method and test case generation apparatus
KR102046567B1 (en) Real-time DDL generation method for standard dictionary-based metadata change management
de Brock et al. From Conceptual Specification to OO Specification
JP6993573B2 (en) Program analysis method, program analysis device and program analysis program
El Hamlaoui et al. A Model-Driven Approach to align Heterogeneous Models of a Complex System.
Toms et al. ArcPy and ArcGIS
US20240296350A1 (en) Computed values for knowledge graph

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211217

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20211217

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20211217

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: 20220412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220425

R150 Certificate of patent or registration of utility model

Ref document number: 7073756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150