JP2004348341A - Structured document processing system, structured document processing method, and program - Google Patents
Structured document processing system, structured document processing method, and program Download PDFInfo
- Publication number
- JP2004348341A JP2004348341A JP2003143315A JP2003143315A JP2004348341A JP 2004348341 A JP2004348341 A JP 2004348341A JP 2003143315 A JP2003143315 A JP 2003143315A JP 2003143315 A JP2003143315 A JP 2003143315A JP 2004348341 A JP2004348341 A JP 2004348341A
- Authority
- JP
- Japan
- Prior art keywords
- node
- group
- similarity
- nodes
- inter
- 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.)
- Pending
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、構造化文書の持つ木構造にかかわる処理を行うための構造化文書処理システム、構造化文書処理方法及びプログラムに関する。
【0002】
【従来の技術】
XML文書やSGML文書に代表される構造化文書は、DTDなどのスキーマ言語を用いて独自の構造化文書のフォーマットが定義できる。そのため構造化文書でデータを表現した場合、同じ内容を示しているXML文書にも関わらずフォーマットが異なってくる(例えば、同じ「住所録」のデータを表していても、タグの名前が異る場合があるなど)。
【0003】
こうしたフォーマットの違いがあると、データの相互運用性が低くなる。フォーマットの違いを吸収するためには構造化文書間でフォーマット変換が行われる。その際、どのように変換を行うかを記述したものが変換ルールである。変換ルールを直接人手で記述するのは煩雑であるため、記述を支援するツールを利用するのが一般的である。
【0004】
変換ルール記述支援ツールでは、変換を直感的に理解しやすいように、GUI上で変換前、変換後の構造化文書の木構造を示しており、ユーザは、変換前、変換後の木構造のノード間に「マッピング」を作成することで変換ルールを生成する(例えば、特許文献1参照)。「マッピング」とは、変換前のノードがフォーマット変換により変換後のどのノードに変換されるかを示すものである。
【0005】
ユーザは記述支援ツール上でマッピングを作成するが、全てのマッピングを人手で作成するのは煩雑である。そのため、記述支援ツールの中にはマッピングの自動生成機能を有するものがある(例えば、非特許文献1参照)。マッピングの自動生成機能とは、ノード間の距離(近似度)を評価関数にて計算し、距離が近いと判定したノード同士を結ぶマッピングを自動生成するものである。しかし、マッピング自動生成機能は、評価関数によるノード間の距離を算出しているだけなので、完全にユーザの意図するマッピングを生成することは不可能である。そのため、自動生成されたマッピングに対してユーザによるマッピングの修正が必要となる。
【0006】
【特許文献1】
特開2003−58530
【0007】
【非特許文献1】
「流通分野におけるXML変換方式の研究」,鳥海幸輝,春日史朗,坂田哲夫,小林伸幸,芳西祟、NTTサイバースペース研究所、DEWS2002
【0008】
【発明が解決しようとする課題】
上記のように自動生成されたマッピングにはユーザによる修正が必要であるが、従来は、ユーザが自分の欲しいものと異なるマッピングに対して、一つ一つ修正を行っていた。
【0009】
しかしながら、これでは修正が必要なマッピングの全てに対して人手による修正の操作が必要となってしまう。修正が必要なマッピングが増えると、修正の操作を行う量が膨大になり、非常に煩雑な作業となり、人手によるミスが発生しやすくなる。特に、ノード間の距離の算出の精度があまり高くない場合は、ユーザが欲しいものに反するマッピングが大量に自動生成されるため、修正の操作を行う回数が非常に多くなる。
【0010】
そこで、自動生成されたマッピングに対して、少ない修正操作で効率の良い修正を可能とする方法が望まれている。
【0011】
本発明は、上記事情を考慮してなされたもので、第1の構造化文書の有する第1の木構造を構成する各ノードと第2の構造化文書の有する第2の木構造を構成する各ノードとの間の対応付けをより効率良くできるようにする構造化文書処理システム、構造化文書処理方法及びプログラムを提供することを目的とする。
【0012】
【課題を解決するための手段】
本発明に係る構造化文書処理システムは、第1の構造化文書の有する第1の木構造を構成する各ノードと第2の構造化文書の有する第2の木構造を構成する各ノードとの間のノード間類似度をそれぞれ求める第1の類似度処理手段と、前記第1の木構造からその一部分を構成するノードの第1のグループを抽出するとともに、前記第2の木構造からその一部分を構成するノードの第2のグループを抽出する抽出手段と、前記ノード間類似度に基づいて、前記第1のグループと、前記第2のグループとの間のグループ間類似度を求める第2の類似度処理手段と、前記グループ間類似度に基づいて、前記第1のグループと前記第2のグループとの対応付けを行う第1の対応処理手段と、前記第1の対応処理手段により対応付けられた前記グループ対について、前記ノード間類似度に基づき、前記第2のグループを構成する各ノードに対する、前記第1のグループを構成するノードの対応付けを行う第2の対応処理手段とを備えたことを特徴とする。
【0013】
また、本発明に係る構造化文書処理方法は、第1の構造化文書の有する第1の木構造を構成する各ノードと第2の構造化文書の有する第2の木構造を構成する各ノードとの間のノード間類似度をそれぞれ求める第1の類似度処理ステップと、前記第1の木構造からその一部分を構成するノードの第1のグループを抽出するとともに、前記第2の木構造からその一部分を構成するノードの第2のグループを抽出する抽出ステップと、前記ノード間類似度に基づいて、前記第1のグループと、前記第2のグループとの間のグループ間類似度を求める第2の類似度処理ステップと、前記グループ間類似度に基づいて、前記第1のグループと前記第2のグループとの対応付けを行う第1の対応処理ステップと、前記第1の対応処理ステップにより対応付けられた前記グループ対について、前記ノード間類似度に基づき、前記第2のグループを構成する各ノードに対する、前記第1のグループを構成するノードの対応付けを行う第2の対応処理ステップとを有することを特徴とする。
【0014】
また、本発明は、構造化文書処理装置としてコンピュータを機能させるためのプログラムであって、第1の構造化文書の有する第1の木構造を構成する各ノードと第2の構造化文書の有する第2の木構造を構成する各ノードとの間のノード間類似度をそれぞれ求める第1の類似度処理機能と、前記第1の木構造からその一部分を構成するノードの第1のグループを抽出するとともに、前記第2の木構造からその一部分を構成するノードの第2のグループを抽出する抽出機能と、前記ノード間類似度に基づいて、前記第1のグループと、前記第2のグループとの間のグループ間類似度を求める第2の類似度処理機能と、前記グループ間類似度に基づいて、前記第1のグループと前記第2のグループとの対応付けを行う第1の対応処理機能と、前記第1の対応処理機能により対応付けられた前記グループ対について、前記ノード間類似度に基づき、前記第2のグループを構成する各ノードに対する、前記第1のグループを構成するノードの対応付けを行う第2の対応処理機能とをコンピュータに実現させるためのプログラムである。
【0015】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【0016】
本発明では、第1の構造化文書の有する第1の木構造を構成する各ノードと第2の構造化文書の有する第2の木構造を構成する各ノードとの間の対応関係を生成してユーザに提示することができ、かつ、第1の木構造と第2の木構造が持つ局所的類似性を利用することで、自動生成した対応関係に対するユーザの修正を効率的に行うことを可能がになる。これにより、ユーザはより少いインタラクションで所望の変換ルールを生成することが可能である。
【0017】
本発明によれば、第1の構造化文書の有する第1の木構造を構成する各ノードと第2の構造化文書の有する第2の木構造を構成する各ノードとの間の対応付けがより効率良くできるようになる。
【0018】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0019】
本実施形態では、構造化文書の具体例としてXML文書を用いて説明する。XML文書とは、WWWに関する技術の標準化団体W3Cにて規定された文書形式で広く利用されている(例えば、Extensible Markup Language(XML) 1.0 (Second Edition)W3C Recommendation 6 October 2000参照)。最初に、構造化文書の一例としてのXML文書について説明する。
【0020】
次に例示するXML文書(<Address>から</Address>まで)は、住所録データを表現した例である。
【0021】
このデータは、ある男性に関する氏名(△△太郎)、電話番号(044−000−0000)及び勤務先会社名(株式会社□□)と、ある女性に関する氏名(○○花子)及び電話番号(044−000−1111)を示した住所録データの例である。このように、XML文書では、テキストデータに対して、記号<と、記号>とで囲まれた文字列でマークアップすることで、そのテキストデータが何のデータを指しているかを示しており、マークアップされたテキストデータで階層構造をなすことで、木構造を表現している。
【0022】
このようにXML文書に代表される構造化文書は、その構造が木状になっている。木構造のデータは、ノードの相対関係を示すためにしばしば「親」「子」「子孫」「祖先」といった表現を用いる。
【0023】
「親」とは、現在注目しているノードの一つ上位のノードのことを指す。上記のXML文書例では、Nameノードの親ノードは、Personノードである。
【0024】
「子」とは、現在注目しているノードの一つ下位のノードのことを指す。上記のXML文書例では、Addressノードの子ノードと、Personノードである。
【0025】
「祖先」ノードとは、注目しているノードよりも上位にあるノード全てのことを指し、「子孫」ノードとは注目しているノードよりも下位にあるノード全てのことを指す。
【0026】
なお、「子」を持たないノード(末端のノード)を「葉ノード(若しくはリーフノード)」と呼ぶこともある。また、「親」を持たないノード(頂天のノード)を「根ノード(若しくはルートノード)」と呼ぶこともある。
【0027】
次に、XML文書のフォーマット指定について説明する。
【0028】
XML文書には、フォーマットを規定するためのスキーマ言語が存在する。これは、XML文書がどのようなフォーマットを順守しているかを示している。一般に利用されているXML文書のスキーマ言語はDTD(Document Type Definition)である。
【0029】
DTDは、XML文書中にどのような順序で親子間のノードが成立しているかを示す。例えば、上記のXML文書例では、Addressノードの子としてPersonノードが複数個あり、Personノードの子としてMaleノード又はFemaleノードが一回出現し、NameノードとTelノードが一回ずつ出現し、OfficeNameノードは高々一回出現する。また、NameノードとTelノードとOfficeNameノードは、テキストデータを持つ。
【0030】
こうしたフォーマット規定をDTDで表現すると次のようになる。
【0031】
<!ELEMENT Adderss (Person)*>
<!ELEMENT Person ((Male|Female), Name, Tel, Office?)>
<!ELEMENT Male (EMPTY)>
<!ELEMENT Female (EMPTY)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Tel (#PCDATA)>
<!ELEMENT Office (#PCDATA)>
“<!ELEMENT”で始まる行には、第一フィールドに親ノードの名前を記述し、第二フィールドにその子ノードとして出現するノードの名前を記述する。子ノードが記号|で区切られているものは、そのうちの一つが出現することを意味する。これを排他的宣言と呼ぶ。また、記号,で区切られているものは、子ノードがその順番で出現することを意味する。また、記号?,*,+が付いているものはそれらが出現する回数に制約条件があることを意味する。記号?は高々一回、記号*は0回以上、記号+は1回以上現れることを意味する。#PCDATAとは、そのノードの値としてテキストデータが入ることを意味し、EMPTYとは、そのノードの値としては何も入らないことを意味する。
【0032】
以下、本発明の一実施形態に係る文書処理システムについて詳しく説明する。
【0033】
図1に、本実施形態の文書処理システムの構成例を示す。
【0034】
図1に示されるように、本文書処理システム1は、変換前木構造入力部(図示せず)、変換後木構造入力部(図示せず)、ノード間距離管理部11、グループ間距離管理部12、マッピング生成部13、マッピング情報管理部14、変換ルール生成部15、修正情報入力部16、変換ルール出力部(図示せず)を備えている。
【0035】
変換前木構造入力部は、変換前の木構造の情報を入力する。変換後木構造入力部は、変換後の木構造の情報を入力する。なお、変換前木構造入力部や変換後木構造入力部が木構造を入力する手段としては、例えば、GUI等からユーザが手入力する手段、記録媒体から読み込み手段、通信媒体を介して読み込む手段など、種々のものが採用可能である。
【0036】
ノード間距離管理部11は、ノード抽出部111とノード間距離計算部112とノード間距離記憶部113を含む。
【0037】
ノード抽出部111は、入力された変換前の木構造及び変換後の木構造についてそれぞれ当該木構造を構成するノードを抽出する。
【0038】
ノード間距離計算部112は、変換前の木構造を構成するノードと変換後の木構造を構成するノードとの全ての組み合わせに対して、所定の評価関数を用いて、当該組合せに係る2つのノード間の類似度(本実施形態では、ノード間の距離とする)を計算する。なお、距離がより小さいものほどが、より類似している(より類似度が大きい)ものとする。
【0039】
各組合せについて求められたノード間距離は、当該組合せに係る2つのノードを識別する識別情報に対応付けて、ノード間距離記憶部113に格納される。
【0040】
グループ間距離管理部12は、グループ抽出部121とグループ間距離計算部122とグループ間距離記憶部123とグループ指定情報入力部(図示せず)を含む。
【0041】
グループ抽出部121は、必要時に又は事前にグループ指定情報入力部から入力されたグループ指定情報に基づき、入力された変換前の木構造及び変換後の木構造についてそれぞれ当該木構造のノードからグループ(部分木構造)を構成するノード群を抽出して、グループを抽出する。
【0042】
なお、グループ抽出方法を予め決定しておいて、グループ指定情報入力部を省いた構成も可能である。
【0043】
グループ間距離計算部122は、変換前の木構造から抽出されたグループと変換後の木構造から抽出されたグループとの全ての組み合わせに対して、所定の評価関数を用いて、当該組合せに係る2つのグループ間の類似度(本実施形態では、ノード間の距離とする)を計算する。
【0044】
各組合せについて求められたグループ間距離は、当該組合せに係る2つのグループを識別する識別情報に対応付けて、グループ間距離記憶部123に格納される。
【0045】
マッピング生成部13は、まず、グループ間距離記憶部123に格納されているグループ間距離を参照し、最も近い(最も小さい)グループ間距離を持つグループ同士でグループのペア(変換前の木構造に含まれる一つのグループと、変換後の木構造に含まれる一つのグループとからなるペア)を作成する。次に、各グループ・ペアについて、変換前の木構造に係るグループを構成するノードと、変換後の木構造に係るグループを構成するノードとに対して、ノード間距離記憶部113に格納されているノード間距離を参照し、最も近いノード間距離を持つノード同士を対応付け、この対応を示す情報をマッピングの情報として生成する。
【0046】
マッピング情報管理部14は、マッピング生成部13により生成されたマッピング情報を保持し、所定の表示装置(図示せず)の表示画面に表示するためのGUI(グラフィカルユーザインタフェイス)部である。
【0047】
ユーザは、同じくGUI(グラフィカルユーザインタフェイス)部である修正情報入力部16を通じて修正情報を入力し、マッピング生成部13にて生成されたマッピングの情報を修正する。このとき、ユーザが修正情報入力部16を通じて修正情報を入力すると、その修正情報に応じて、マッピング情報管理部14が管理しているマッピング情報が修正されるとともに、ノード間距離記憶部113に格納されているノード間距離およびグループ間距離記憶部123に格納されているグループ間距離がそれぞれ更新される。
【0048】
変換ルール生成部15は、マッピング情報管理部14が保持しているマッピング情報をもとに、変換前の木構造を変換後の木構造へと変換するための変換ルールを生成する。
【0049】
変換ルール出力部は、生成された変換ルールを出力する。なお、変換ルール出力部が変換ルールを出力する手段としては、例えば、GUI等へ表示する手段、記録媒体へ保存する手段、通信媒体を介して送出する手段など、種々のものが採用可能である。
【0050】
以下、本実施形態についてより詳しく説明する。
【0051】
まず、変換前の木構造の入力データと変換後の木構造の入力データについて説明する。
【0052】
木構造の入力方法としては、木構造を入力する方法と、XML文書もしくはフォーマットを規定しているDTDを入力し、それらにより表現されている木構造を生成する方法とがあり得る。後者の場合について説明する。
【0053】
まず、XML文書が入力された場合について説明する。
【0054】
XML文書が入力された場合は、変換前木構造入力部や変換後木構造入力部は、全てのテキストノードを削除し、同じ深さにあるノードのうち同じ名前のノードが複数存在する場合には、それらを一つに集約する。
【0055】
例えば、次のXML文書(<Address>から</Address>まで)が入力されたとする。
【0056】
この場合、この文書に対して、全てのテキスノードを削除する。この結果を次に示す。
【0057】
次に、同じ深さにあるノードのうち同じ名前のノードが複数存在する“Person”,“Name”,“Tel”を一つに集約する。この結果を次に示す。
【0058】
このようにして作成される木構造が、XML文書から作成される木構造である。
【0059】
次に、DTDが入力された場合について説明する。
【0060】
DTDが入力された場合は、DTDが宣言している親子関係を展開する。展開する際、子ノードの出現回数が複数以上宣言されている場合は、一回だけ展開する。また、子ノードが排他的宣言されている場合は、生成する木構造のノード中の排他的宣言されているノードに対して、一組の排他的宣言をされているノード群を識別するためのIDと、一組の排他的宣言をされているノード群の中の一つの要素を識別するためのIDをノードの属性として付加する。
【0061】
具体例として、次のDTDを用いる。
【0062】
<!ELEMENT Adderss (Person)*>
<!ELEMENT Person ((Male|Female), Name, Tel, (cellular|PHS))>
<!ELEMENT Male (EMPTY)>
<!ELEMENT Female (EMPTY)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Tel (#PCDATA)>
<!ELEMENT cellular (#PCDATA)>
<!ELEMENT PHS (#PCDATA)>
この場合、この入力に対して親子関係を展開する。すなわち、まず、DTDの中の全親子宣言の中で子として宣言されていないノードを検出する。子として宣言されていないノードが一つの場合は、それを根として木構造を展開する。子として宣言されていないノードが複数ある場合は、例えば、ユーザにどれを根として展開するかを問い合わせる。
【0063】
この例では、Adressノードのみが子として宣言されていない。そのため、Addressノードを根として展開する。そして、Adressノードの子ノードがPerson,Personノードの子ノードがMaleもしくはFemale、Name、Tel、CellularもしくはPHSなので、その順番に展開する。MaleノードとFemaleノードは一組の排他的ノードとして宣言されているので、choice_id=“1”属性を付加し、Maleノード、Femaleノードがそれぞれ排他的宣言されている組の一つの要素なので、Maleノードにchoice_item_id=“1”を、Femaleノードにchoice_item_id=“2”を付加する。Cellularノード、PHSノードについても同様である。
【0064】
展開した結果を次に示す。
【0065】
次に、ノード間距離管理部11について説明する。
【0066】
ノード間距離管理部11は、ノード間距離を計算し、保持する部分である。ノード間距離管理部11は、変換前木構造、変換後木構造を読み込み、ノード抽出部111にて全てのノードを取り出す。次に、取り出したノードに対して、変換前のノードと変換後のノードのペアを全ての組み合わせ通り生成する。生成したノード・ペアに対して、所定の評価関数を用いて、ノード間距離を算出する。全てのノード・ペアについてノード間距離を求め、それらをノード間距離記憶部113に保存する。
【0067】
例えば、変換前木構造が図2(a)のようであり、変換後木構造が図2(b)のようであるとすると、図3に示すような16通りのノード・ペアの全てについてノード間距離を求め、それらを図4に例示するようにノード間距離記憶部113に保存する。
【0068】
ノード間距離を求める方法については、種々の方法がある。例えば、その一つに、ノードの名前の文字列の間のエディットディスタンスにより求める方法がある。文字列のエディットディスタンスとは、一方の文字列に対して、文字の挿入、削除、変更という操作を最小何回行うことによってもう一方の文字列になるかという回数より二つの文字列間の距離を計算する手法である。以下、エディットディスタンスを求める方法について説明する。
【0069】
エディットディスタンスを求めるには、まず、変換前文字列の長さプラス1の列数、変換後文字列の長さプラス1の行数の行列を作成する。そして、この行列に対して一行目の各要素に列の順番と同じ数を入れる。次に、行列の一列目の各要素に行の順番の数と同じ値を入れる。
【0070】
次に、残り全ての行列の要素に対して、
(i)「一つ前の行の要素の値プラス1」と、
(ii)「一つ前の列の要素の値プラス1」と、
(iii)「要素に対して、その要素の列の順番と同じ文字数目の変換前の文字列の文字と、その要素の行の順番と同じ文字数目の変換後の文字列の文字との比較を行い、等しい場合は、一つ前の列の一つ前の行の要素の値、等しくない場合は、一つ前の行の一つ前の列の要素の値プラス1」とを求め、
それらのうち最も小さい値を入れる。
【0071】
このようにして作成された行列の最後の列の最後の行の要素の値が、求めるべきエディットディスタンスになる。
【0072】
以下、“Mobile”と“Misc”の文字列のエディットディスタンスを求める場合を例にとって説明する。
【0073】
図5(a)に示すように、“Mobile”の文字列の長さプラス1の列数と“Misc”の文字列の長さプラス1の行数を持つ行列、すなわち5行7列の行列を作成する。次に、その行列の1行目の各要素に、列の順番と同じ値を入れる。ただし、このときの順番のカウントは0から始める。同様に、行列の1列目の各要素に行の順番と同じ値を入れる。ここまでの操作の結果が図5(a)に示されている。
【0074】
次に、残りの全て要素に対して(計算可能になったものから適宜の順番で良い)、次の三つの項目の値を計算し、そのうちで最も小さい値をその要素の値とする。
【0075】
(i)「一つ前の行の要素の値プラス1」
(ii)「一つ前の列の要素の値プラス1」
(iii)「要素に対して、その要素の列の順番と同じ文字数目の変換前の文字列の文字と、その要素の行の順番と同じ文字数目の変換後の文字列の文字との比較を行い、等しい場合は、一つ前の列の一つ前の行の要素の値、等しくない場合は、一つ前の行の一つ前の列の要素の値プラス1」
例えば、図5(a)1行1列の要素に対しては、
(i)「一つ前の行の要素(=0行1列)の値(=1)プラス1」の値は『2』
(ii)「一つ前の列の要素(=1行0列)の値(=1)プラス1」の値は『2』
(iii)「要素(=1行1列)に対して、その要素の列の順番と同じ文字数目の変換前の文字列の文字(=M)と、その要素の行の順番と同じ文字数目の変換後の文字列の文字(=M)との比較を行い、等しい場合は、一つ前の列の一つ前の行の要素(=0行0列)の値(=0)、等しくない場合は、一つ前の行の一つ前の列の要素の値プラス1」は『0』(一行一列の要素に対応する変換前文字列の文字、および変換後文字列の文字がともに“M”だから)、
となる。
【0076】
(i)〜(iii)で求められた値のうちで最も小さい値は0であるので、1行1列の値は0になる。この様子を図5(b)に示す。
【0077】
以下、同様に、他の全ての行列の要素を計算すると図5(c)のようになる。
この行列の最後の行の最後の列(=7行7列)の値(=4)がエディットディスタンスを与えるので、“Mobile”ノードと“Misc” ノードとのノード間距離は4となる。
【0078】
次に、グループ間距離管理部12について説明する。
【0079】
前述したように、グループ間距離管理部12は、グループ抽出部121、グループ間距離計算部122、グループ間距離記憶部123を含む。
【0080】
グループ抽出部121は、予め定められたグループ指定情報あるいはグループ指定情報入力部から入力されたグループ指定情報に基づいて、グループの抽出を行う。
【0081】
グループの指定としては種々の方法が考えられるが、次に具体例を4つ示す。
【0082】
(1)排他的ノードのマークアップされているノードのうち、自分の子孫ノードに排他的ノードとマークアップされているノードを含まないノードからなるサブツリー、およびそのサブツリーに含まれないノード群をグループとして抽出する。図6に、この場合のグループ抽出例を示す。なお、図中、1つの閉じた線で囲まれた範囲が1つのグループに相当する(後で示す図7〜図9についても同様である)。
【0083】
(2)グループ指定情報入力部1211からグループ指定情報として、パラメータnを入力し、リーフノードから高さnのノード以下のサブツリーをグループとして抽出する。ただし、高さnのノードの祖先に他の高さnのノードがある場合は、より祖先のノードを優先する。図7に、この場合のグループ抽出例を示す。図7は、パラメータが2のときの例である。
【0084】
(3)グループ指定情報入力部1211からグループ指定情報としてパラメータnを入力し、根ノードから深さnのノード以下のサブツリーをグループとして抽出する。図8に、この場合のグループ抽出例を示す。図8は、パラメータが2のときの例である。
【0085】
(4)グループ指定情報入力部1211からグループ指定情報としてノードを特定する情報を入力し、指定されたノード以下のサブツリーと、そのいずれにも属さないノード群からなるグループを抽出する。図9に、この場合のグループ抽出例を示す。図9は、ノードを特定する情報が、“/Addr/Office,/Addr/Home/Address”の場合の例である。ただし、ここで用いている表記法は、XMLのパス表現と呼ばれるもので、親子のノード関係を、「親ノード/子ノード」として表現するものである。
【0086】
なお、上記で示した方法以外の方法も可能である。また、複数の方法を備えておき、例えばグループ指定情報入力部からいずれの方法を用いるかを指定する情報を入力するようにしてもよい。
【0087】
グループ間距離計算部122は、グループ抽出部121が抽出したグループに対して、変換前のグループと変換後のグループのペアを全ての組み合わせ通り生成し、グループ間距離を算出する。
【0088】
例えば、変換前グループが図10(a)のようであり、変換後グループが図10(b)のようであるとすると、図11に示すような12通りのノード・ペアの全てについてノード間距離を求め、それらを図12に例示するようにグループ間距離記憶部123に保存する。
【0089】
グループ間距離を求める方法については、種々の方法がある。以下、その一例について説明する。
【0090】
(1)対象となるグループ・ペアについて、変換前グループを構成するノードと変換後グループを構成するノードとの全ての組み合わせを求める。
【0091】
(2)求められたノードの組み合わせに対してノード間距離をノード間距離記憶部113から取り出す。
【0092】
(3)ノード間距離が最小となるノード・ペアを求めていく。
【0093】
(4)求められたノード・ペアの距離の和を、ノード・ペアの数で割った値を、グループ間距離とする。
【0094】
なお、(3)においては、ノード・ペアの距離の和が最小となるようなノード・ペアを求めるようにしてもよい。
【0095】
マッピング生成部13は、グループ間距離記憶部123に保持されているグループ間距離とノード間距離記憶部113に保持されているノード間距離とを参照しながらマッピングの情報を作成する。
【0096】
マッピング情報を作成する方法については、種々の方法がある。以下、その一例について説明する。
【0097】
(1)グループ間距離記憶部123からグループ間距離を取り出す。
【0098】
(2)グループ間距離が最も小さいグループのペアを求める。このとき、グループ間距離が−1になっているグループ同士は無条件にグループ・ペアとし、それ以外のグループについては、変換後のグループについて一対一になるようにグループのペアを作成する。
【0099】
作成された各々のグループ・ペアについて、次の(3)〜(5)を行う。
【0100】
(3)当該グループ・ペアの中から変換前グループを構成するノードと変換後グループを構成するノードとの全ての組み合わせを求める。
【0101】
(4)求められたノードの組み合わせに対してノード間距離をノード間距離記憶部113から取り出す。
【0102】
(5)ノード間距離が最も小さい組合せに係るノード同士を対応付け、これを示すマッピング情報を生成する。このとき、ノード間距離が−1になっているノード同士は無条件に対応付ける(マッピングする)。それ以外のノードについては、変換後のノードについて一対一になるようにノードのマッピングを作成する。
【0103】
マッピング情報管理部14は、マッピング生成部13が生成したマッピングをGUIにて表現しそれをユーザに提示する。
【0104】
図13に、この場合の表示例を示す。画面左部に変換前木構造のツリービューを示し、画面右部に変換後木構造のツリービューを示す(矩形の画像がノードを示し、矩形間の線の画像がノード間のリンクを示す)。ツリービュー間にある(片方向)矢印の画像がマッピングを示す。変換前木構造における矢印の始点にあたるノードが、変換後木構造では該矢印の終点にあたるノードに対応していることが示されている。
【0105】
ユーザは、この矢印を新規作成することで新規のマッピングの作成を指示し、矢印を削除することでマッピングの削除を指示し、矢印の元ノード及び又は着ノードを変更することでマッピングの変更を指示する。この指示(修正情報)に応じて、マッピング情報管理部14が管理しているマッピング情報が、ノード間距離記憶部113に格納されているノード間距離、グループ間距離記憶部123に格納されているグループ間距離のうちが更新される。
【0106】
変換ルール生成部15は、マッピング情報管理部14が管理しているマッピングを反映させた変換ルールを生成する。この変換ルールをXSLT(XSL Transformations)で表現する場合には、マッピングを反映させたXSLTを生成する(XSLTは、XML文書の変換を行うための変換ルール記述言語として広く利用されている)。
【0107】
変換ルール生成部15は、マッピング情報管理部14からマッピング情報を取り出し、マッピング情報が表現している変換前ノードと変換後ノードとの対応関係一つ一つに対応するXSLTの変換ルールの最小単位である「テンプレートルール」を生成する。
【0108】
例えば、変換前Addressノードと変換後Addrノードとがマッピングで結ばれている場合には、次のようなXSLTのテンプレートルールを生成する。
【0109】
ただし、上記例の中で、.....で示した箇所は、変換前Addressノードの子ノードに対するマッピングと対応するテンプレートルールを参照する式が入る。例えば、変換前Addressノードの子ノードがPersonノードであるとすると、Personノード用のテンプレートを参照する式<xsl:apply−templates select=“Person”/>が入る。
【0110】
次に、本実施形態の処理の流れについて説明する。
【0111】
図14に、本実施形態の処理手順の一例を示す。
【0112】
変換前木構造入力部と変換後木構造入力部から、それぞれ、変換前木構造と変換後木構造を入力する(ステップS1)。
【0113】
次に、変換前のノード群と変換後のノード群との間の全てのノードの組み合わせに対して、ノード間距離を算出する(ステップS2)。各ノード間距離は、例えば、当該2つのノードの名前を比較して名前の文字列のエディットディスタンスを計算することなどにより求めることができる。算出したノード間距離をノード間距離記憶部113に格納する(ステップS2)。
【0114】
次に、グループ抽出部121は、グループ指定情報を入力し、どのサブツリーでグループ抽出を行うかを設定し、変換前、変換後の木構造からグループを抽出する(ステップS3)。
【0115】
次に、抽出を行った変換前、変換後の各々のグループに対する全ての組み合わせについてグループ間距離を計算する(ステップS4)。グループ間距離は、例えば、各グループを構成するノードを抽出し、全てのノード間の組み合わせについてノード間距離を計算し、ノード間距離の和が最も小さくなるノードの組み合わせを求め、その組み合わせにおけるノード間距離の平均値を求め、これをグループ間距離とする。算出したグループ間距離をグループ間距離記憶部123に格納する(ステップS4)。
【0116】
このようにして得られたノード間距離とグループ間距離とをもとにマッピング生成部13がマッピングの情報を生成する。
【0117】
まず、マッピング生成部13は、グループ間距離の最も近いもの同士でグループのペアを形成する(ステップS5)。このとき、グループ間距離が−1になってグループ同士については、無条件にグループ・ペアにする。
【0118】
次に、マッピング生成部13は、各グループ・ペア内で最もノード間距離の近いものを求め、それらをマッピングとして自動生成する(ステップS6)。このときノード間距離が−1になっているノード間については、無条件にマッピングとする(ステップS6)。
【0119】
生成されたマッピングの情報をマッピング情報管理部14にてGUI表示する(ステップS7)。
【0120】
ここで、ユーザは、自動生成されたマッピングに対して、それらが全部自分の欲しいマッピングかどうかを判断することができる。ユーザは、その自動生成結果で良い場合には、修正情報入力部16を通じて、自動生成されたマッピングが全て正しい旨の指示を入力し、修正操作を行う場合には、修正情報入力部16を通じて、修正操作を行う旨(自動生成されたマッピングが全て正しくはない旨)の指示を入力する。
【0121】
修正情報入力部16は、ステップS8において、ユーザから、修正操作を行う旨(自動生成されたマッピングが全て正しくはない旨)の指示が入力された場合には、ユーザからの修正情報を入力する(ステップS9)。
【0122】
「マッピングの削除」に関する修正情報の入力は、例えば、削除すべきノード対に関するマッピングを示す画像(例えば、矢印)の選択と、マッピングを削除すべき旨の指示、あるいはマッピングを示す画像の移動、又はこれと等価な入力方法により行われる。
【0123】
「マッピングの追加」に関する修正情報の入力は、例えば、追加すべき2つのノードの選択と、マッピングを追加すべき旨の指示、あるいはマッピングを示す画像の追加、又はこれと等価な入力方法により行われる。
【0124】
「マッピングの変更」に関する修正情報の入力は、例えば、変更すべきノード対のうち変更する前のノードと、それを変更した後のノードの選択と、マッピングを変更すべき旨の指示、又はこれと等価な入力方法により行われる。
【0125】
入力された修正情報(ユーザにより行われた修正)が「マッピングの削除」であった場合は(ステップS10)、削除されたマッピングが示していたノード・ペアのノード間距離を再計算する(ステップS11)。そして、削除されたマッピングが結んでいたグループ間を結ぶノード・ペアのマッピングのうち、ノード間距離が−1であるものが他に存在しないなら、グループ間距離を再計算し、存在するなら、該グループ間距離を−1のままにする(ステップS12)。
【0126】
入力された修正情報が「マッピングの追加」の場合は(ステップS10)、追加したマッピングが示すノード・ペアのノード間距離を−1に設定する(ステップS13)。そして、修正したマッピングが結ぶグループ・ペアのグループ間距離を−1に設定する(ステップS14)。
【0127】
入力された修正情報が「マッピングの変更」の場合は(ステップS10)、変更前のマッピングが示していたノード・ペアのノード間距離を再計算する(ステップS15)。次に、変更後のマッピングが示すノード・ペアのノード間距離を−1に設定する(ステップS16)。次に、変更前のマッピングが結んでいたグループ・ペア内で他にノード間距離が−1であるノード・ペアのマッピングが存在しないなら、そのグループ・ペアのグループ間距離を再計算し、存在するなら、該グループ間距離を−1のままにする(ステップS17)。そして、変更後のマッピングが結ぶグループ・ペアのグループ間距離を−1に設定する(ステップS18)。
【0128】
このようにして、グループ間距離、ノード間距離を再計算して再度自動生成のプロセスを繰り返す。
【0129】
しかして、ステップS8において、ユーザから、マッピングが全て正しい旨の指示が入力された場合には、この時点で得られているマッピング情報をもとに変換ルールを生成する(ステップS19)。
【0130】
さて、以下では、具体例を用いて本実施形態について説明する。
【0131】
本具体例では、次に示すDTDを変換前用DTDとする。
【0132】
<!ELEMENT Address (Person)*>
<!ELEMENT Person (Name, Office, Home)>
<!ELEMENT Office (Tel, Fax)>
<!ELEMENT Home (Tel, Mobile)
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Tel (#PCDATA)>
<!ELEMENT Fax (#PCDATA)>
<!ELEMENT Mobile (#PCDATA)>
他方、次のDTDを変換後用DTDとする。
【0133】
<!ELEMENT Addr (Member)*>
<!ELEMENT Member (Name, Phone)>
<!ELEMENT Phone (Tel, Misc)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Tel (#PCDATA)>
<!ELEMENT Misc (#PCDATA)>
変換前木構造入力部と変換後木構造入力部は、それぞれを、木構造情報入力として受け取る。
【0134】
この場合、変換前のDTDからは次に例示する木構造が生成される。
【0135】
他方、変換後のDTDからは次に例示する木構造が生成される。
【0136】
次に、ノード間距離計算部112にてノードを取り出し、変換前木構造のノードと変換後木構造のノードとの全ての組み合わせを求め、そのノード間の距離を求める。本具体例では、ノード間距離には、ノードの文字の比較から算出されるエディットディスタンスを用いるものとする。
【0137】
図15に、全てのノードの組み合わせに対してエディットディスタンスを求めた結果を含むテーブルを示す。
【0138】
これらノード間距離は、ノード間距離記憶部113に格納される。
【0139】
次に、変換前木構造と変更後木構造からグループ抽出部121にてグループを抽出する。
【0140】
本具体例では、グループ指定情報として、変換前木構造に対しては、「/Address/Person/Name/Officeもしくは/Address/Person/Home」と指定されているとし、変換後木構造に対しては、「/Addr/Member/Name/Phone」と指定されているとする。
【0141】
この場合、変換前木構造のグループは、
Group1(変換前):Address,Person,Name
Group2(変換前):Office,Tel,Fax
Group3(変換前):Home,Tel,Mobile
となる。
【0142】
ただし、Group2(変換前)のTelは、Officeの子ノードのTelであり、Group3(変換前)のTelは、Homeの子ノードのTelである。
【0143】
変換後木構造のグループは
Group1(変換後):Addr,Member,Name
Group2(変換後):Phone,Tel,Misc
となる。
【0144】
次に、抽出したグループに対して、グループ間距離計算部122にてグループ間距離を算出する。
【0145】
ここで、Group3(変換前)とGroup2(変換後)のペアについてのグループ間距離を求める場合について説明する。
【0146】
まず、Group3(変換前)のノードとGroup2(変換後)のノードからなる組のうち、最もノード間距離の近いノード・ペアを求める。
【0147】
ノード間距離記憶部113に管理されているノード間距離より、
・Group3(変換前)のHomeノードとGroup2(変換後)のPhoneノードとの距離が『3』、
・Group3(変換前)のTelノードとGroup2(変換後)のTelノードとの距離が『0』、
・Group3(変換前)のMobileノードとGroup2(変換後)のMiscノードとの距離が『4』、
となる。
【0148】
Group3(変換前)とGroup2(変換後)のペアについては、上記の3組のノード・ペアが、最もノード間距離が小さい。ここで、本具体例では、各ノード・ペアのノード間距離の和を、ペアの数で割った値を、求めるグループ間距離にするものとする。従って、このGroup3(変換前)とGroup2(変換後)のペアについては、ノード間距離の和が7、ペアの数が3であることから、グループ間距離は『2.3』となる。
【0149】
同様にして、全てのグループの組み合わせに対してグループ間距離を求める。
【0150】
図16に、全てのグループの組み合わせに対してグループ間距離を求めた結果を含むテーブルを示す。
【0151】
これらグループ間距離は、グループ間距離記憶部123に格納される。
【0152】
次に、マッピング生成部13は、グループ間距離記憶部123に格納されているグループ間距離から最も距離が近いグループ同士のペアを作成する。まず、グループ間距離が−1になっているものを探す。本具体例では、グループ間距離が−1であるものは無い。次に、変換後のグループに対して最も距離の近い変換前のグループと一対一のグループのペアを作成する。変換後のグループは、Group1(変換後)とGroup2(変換後)であるので、それぞれに対して最も距離が近い変換前のグループを求め、それぞれとペアを作成する。本具体例では、Group3(変換前)とGroup2(変換後)、およびGroup1(変換前)とのGroup1(変換後)が、最も近いグループのペアとなる。
【0153】
次に、求めたグループ・ペア内で最も距離の近いノード同士をマッピングとして生成する。まず、ノード間の距離が−1になっているノードのペアを探す。本具体例では、ノード間距離が−1であるものは無い。次に、変換後のノードに対して最も距離の近い変換前のノードと一対一のノードのペアを作成する。変換前Group3と変換後Group2からなるグループ・ペア内で最も近いノードのペアは、HomeノードとPhoneノード、TelノードとTelノード、MobileノードとMiscノードの各ペアとなる。変換前Group1と変換後Group1では、AddressノードとAddrノード、PersonノードとMemberノード、NameノードとNameノードの各ペアとなる。
【0154】
このようにして生成されたマッピングの情報は、マッピング情報管理部14に渡され、GUIとして画面に描画される。図17に、この場合の表示例を示す。
【0155】
さて、GUI上でユーザが、MobileノードからMiscノードへのマッピングを修正して、FaxノードからMiscノードへのマッピングに変更したとする。この様子を、図18に例示する。
【0156】
この変更を受けて、ノード間距離管理部11が管理しているノード間距離のうち、FaxノードとMiscノードとのペアに対応するノード間距離を−1に設定する。
【0157】
図19に、図15のテーブルを更新した状態を示す。
【0158】
また、グループ間距離管理部12が管理しているグループ間距離のうち、MobileノードとMiscノードをそれぞれ含んでいるグループGroup2(変更前)とGroup2(変更後)とのペアに対応するグループ間距離を−1に設定する。
【0159】
図20に、図16のテーブルを更新した状態を示す。
【0160】
次いで、上記のようなグループ間距離およびノード間距離の変更に応じて、マッピング生成部13は、マッピングを再計算する。
【0161】
まず、グループのペアを再計算する。先ほどのユーザの修正によりGroup2(変換前)とGroup2(変換後)のグループ間距離が−1になっているので、Group2(変換前)とGroup2(変換後)とのペアを作成する。次に、残りのGroup1(変換後)に対して、最も距離が近いものはGroup1(変換前)であるので、グループペアGroup1(変更前)とGroup1(変更後)とのペアが作成される。
【0162】
次に、Group1(変更前)とGroup1(変更後)とのペア、およびGroup2(変更前)とGroup2(変更後)とのペアのそれぞれについて、当該ペア内で最も距離が近いノードのペアをマッピングとして生成する。Group1(変更前)とGroup1(変更後)とのペアについては、マッピングの修正によるノード間距離への影響がないので、ノード・ペアは不変である(AddressノードとAddrノードとのペア、PersonノードとMemberノードとのペア、NameノードとNameノードとのペアのままである)。Group2(変更前)とGroup2(変更後)とのペアについては、FaxノードとMiscノードとのノード間距離が−1になっているので、FaxノードからMiscノードへのマッピングが作成される。残りのGroup2(変更後)のノードについて、Phoneノードと最も近いGroup2(変更前)のノードはOfficeノード、Telノードと最も近いノードはTelノードであるので、結果として、OfficeノードからPhoneノードへのマッピング、TelノードからTelノードへのマッピング、FaxノードからMiscノードへのマッピングが生成される。
【0163】
これらマッピングを示す情報がマッピング情報管理部14に渡されると、図21に例示するような画面が表示される。
【0164】
ユーザがマッピング情報管理部14にあるマッピングで良いと判断し、その旨を示す指示が入力されると、変換ルール生成部15が変換ルールを生成する。
【0165】
変換ルール生成部15は、マッピングが示している変更前のノードを変更後のノードに変換する変換ルールを生成する。この例では、変換前のAddressノードを変換後のAddrノードに、変換前のPersonノードを変換後のMemberノードに、変換前のNameノードを変換後のNameノードに、変換前のOfficeノードを変換後のPhoneノードに、変換前のTelノードを変換後のPhoneノードの子ノードのTelノードに、変換前のFaxノードを変換後のPhoneノードの子ノードのFaxノードに変換するXSLTを生成する。
【0166】
図22に、この場合のXSLTを例示する。
【0167】
なお、マッピングが示している変更前のノードを変更後のノードに変換する変換ルールを生成する方法としては、既存の方法を用いても構わない。例えば、特開2003−58530に開示されている方法を用いてもよい。
【0168】
なお、以上の各機能は、ソフトウェアとして記述し適当な機構をもったコンピュータに処理させても実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【0169】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0170】
【発明の効果】
本発明によれば、第1の構造化文書の有する第1の木構造を構成する各ノードと第2の構造化文書の有する第2の木構造を構成する各ノードとの間の対応付けがより効率良くできるようになる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る文書処理システムの構成例を示す図
【図2】ノード間距離について説明するための図
【図3】ノード間距離について説明するための図
【図4】ノード間距離について説明するための図
【図5】エディットディスタンスについて説明するための図
【図6】グループの抽出について説明するための図
【図7】グループの抽出について説明するための図
【図8】グループの抽出について説明するための図
【図9】グループの抽出について説明するための図
【図10】グループ間距離について説明するための図
【図11】グループ間距離について説明するための図
【図12】グループ間距離について説明するための図
【図13】生成されたマッピングのGUIによる表示例を示す図
【図14】同実施形態に係る文書処理システムの処理手順の一例を示すフローチャート
【図15】ノード間距離の算出例を示す図
【図16】グループ間距離の算出例を示す図
【図17】生成されたマッピングのGUIによる表示例を示す図
【図18】GUI上でマッピングが修正される例を示す図
【図19】ノード間距離の更新例を示す図
【図20】グループ間距離の更新例を示す図
【図21】修正を反映して再生成されたマッピングのGUIによる表示例を示す図
【図22】生成された変換ルールの一例を示す図
【符号の説明】
11…ノード間距離管理部、111…ノード抽出部、112…ノード間距離計算部、113…ノード間距離記憶部、12…グループ間距離管理部、121…グループ抽出部、1211…グループ指定情報入力部、122…グループ間距離計算部、123…グループ間距離記憶部、13…マッピング生成部、14…マッピング情報管理部、15…変換ルール生成部、16…修正情報入力部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a structured document processing system, a structured document processing method, and a program for performing a process related to a tree structure of a structured document.
[0002]
[Prior art]
For a structured document represented by an XML document or an SGML document, a unique structured document format can be defined using a schema language such as DTD. For this reason, when data is represented by a structured document, the format is different irrespective of the XML document indicating the same content (for example, even if the data of the same “address book” is expressed, the tag names are different) Etc.)
[0003]
These format differences reduce data interoperability. To absorb format differences, format conversion is performed between structured documents. At this time, a conversion rule describes how to perform the conversion. Since it is complicated to directly describe the conversion rule by hand, it is common to use a tool that supports the description.
[0004]
The conversion rule description support tool shows the tree structure of the structured document before and after conversion on the GUI so that the conversion can be intuitively understood. A conversion rule is generated by creating a “mapping” between nodes (for example, see Patent Document 1). “Mapping” indicates which node after conversion is converted to a node after conversion by format conversion.
[0005]
The user creates mappings on the description support tool, but it is cumbersome to create all mappings manually. Therefore, some description support tools have an automatic mapping generation function (for example, see Non-Patent Document 1). The automatic mapping generation function is to calculate a distance between nodes (degree of approximation) using an evaluation function and automatically generate a mapping that connects nodes determined to be close to each other. However, since the mapping automatic generation function only calculates the distance between nodes by the evaluation function, it is impossible to completely generate the mapping intended by the user. Therefore, the mapping needs to be corrected by the user for the automatically generated mapping.
[0006]
[Patent Document 1]
JP-A-2003-58530
[0007]
[Non-patent document 1]
"Study on XML Conversion Method in Distribution Field", Yuki Toriumi, Shiro Kasuga, Tetsuo Sakata, Nobuyuki Kobayashi, Takashi Yoshinishi, NTT Cyber Space Laboratories, DEWS2002
[0008]
[Problems to be solved by the invention]
The mapping automatically generated as described above requires modification by the user, but conventionally, the user has modified each of the mappings different from what the user wants.
[0009]
However, this requires manual correction operations for all mappings that require correction. When the number of mappings requiring correction increases, the amount of correction operation becomes enormous, the operation becomes very complicated, and a human error easily occurs. In particular, when the accuracy of calculating the distance between nodes is not very high, a large number of mappings that are contrary to what the user wants are automatically generated, so that the number of times of performing the correction operation becomes extremely large.
[0010]
Therefore, there is a need for a method that enables efficient correction of automatically generated mapping with a small number of correction operations.
[0011]
The present invention has been made in consideration of the above circumstances, and configures each node forming a first tree structure of a first structured document and a second tree structure of a second structured document. It is an object of the present invention to provide a structured document processing system, a structured document processing method, and a program that enable more efficient association with each node.
[0012]
[Means for Solving the Problems]
The structured document processing system according to the present invention is configured such that each of the nodes constituting the first tree structure of the first structured document and each of the nodes constituting the second tree structure of the second structured document. First similarity processing means for respectively obtaining an inter-node similarity between the first tree structure, extracting a first group of nodes constituting a part of the first tree structure, and extracting a first group of the nodes from the second tree structure Extracting means for extracting a second group of nodes constituting the second group, and obtaining a second group similarity between the first group and the second group based on the similarity between the nodes. Similarity processing means, first correspondence processing means for associating the first group with the second group based on the inter-group similarity, and correspondence by the first correspondence processing means Said group And a second correspondence processing unit for associating each of the nodes constituting the second group with the nodes constituting the first group based on the similarity between the nodes. I do.
[0013]
Further, in the structured document processing method according to the present invention, each node constituting the first tree structure of the first structured document and each node constituting the second tree structure of the second structured document A first similarity processing step for respectively obtaining an inter-node similarity between the first tree structure, extracting a first group of nodes constituting a part of the first tree structure from the first tree structure, and extracting from the second tree structure An extracting step of extracting a second group of nodes constituting a part thereof; and a step of obtaining an inter-group similarity between the first group and the second group based on the inter-node similarity. 2 similarity processing steps, a first correspondence processing step of associating the first group with the second group based on the inter-group similarity, and a first correspondence processing step. Correspondence A second correspondence processing step of associating the nodes forming the first group with the nodes forming the second group based on the inter-node similarity between the group pairs thus obtained. It is characterized by having.
[0014]
Further, the present invention is a program for causing a computer to function as a structured document processing device, the program having each node constituting a first tree structure included in a first structured document and a second structured document. A first similarity processing function for respectively obtaining an inter-node similarity between each node constituting the second tree structure, and extracting a first group of nodes constituting a part of the first tree structure from the first tree structure And extracting the second group of nodes constituting a part of the second tree structure from the second tree structure, and extracting the first group and the second group based on the inter-node similarity. A second similarity processing function for calculating a similarity between groups between the first group and a first correspondence processing function for associating the first group with the second group based on the similarity between groups And before For the group pair associated by the first correspondence processing function, the nodes constituting the first group are associated with the nodes constituting the second group based on the inter-node similarity. This is a program for causing a computer to realize the second corresponding processing function.
[0015]
Note that the present invention relating to the apparatus is also realized as an invention relating to a method, and the present invention relating to a method is also realized as an invention relating to an apparatus.
Further, the present invention according to an apparatus or a method has a function for causing a computer to execute a procedure corresponding to the present invention (or for causing a computer to function as means corresponding to the present invention, or a computer having a function corresponding to the present invention). The present invention is also realized as a program (for realizing the program), and is also realized as a computer-readable recording medium on which the program is recorded.
[0016]
According to the present invention, a correspondence between each node forming a first tree structure included in a first structured document and each node forming a second tree structure included in a second structured document is generated. By using the local similarity of the first tree structure and the second tree structure, the user can efficiently correct the automatically generated correspondence. It becomes possible. This allows the user to generate a desired conversion rule with less interaction.
[0017]
According to the present invention, the correspondence between each node constituting the first tree structure of the first structured document and each node constituting the second tree structure of the second structured document is determined. You can do it more efficiently.
[0018]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the invention will be described with reference to the drawings.
[0019]
In the present embodiment, an explanation will be given using an XML document as a specific example of the structured document. The XML document is widely used in a document format defined by a WWW technology standardization organization W3C (for example, see Extensible Markup Language (XML) 1.0 (Second Edition)
[0020]
The following XML document (from <Address> to </ Address>) is an example of address book data.
[0021]
This data includes the name (Taro @), telephone number (044-000-0000) and company name (□□) of a certain man, and the name (Hanako OO) and telephone number (044) of a certain woman. -000-1111). As described above, in the XML document, the text data is marked up with a character string surrounded by the symbols <and the symbols> to indicate what data the text data points to. The tree structure is expressed by forming a hierarchical structure with the marked-up text data.
[0022]
As described above, a structured document represented by an XML document has a tree-like structure. Tree-structured data often uses expressions such as "parent", "child", "descendant", and "ancestor" to indicate the relative relationship between nodes.
[0023]
“Parent” refers to a node one level higher than the node currently focused on. In the above XML document example, the parent node of the Name node is a Person node.
[0024]
The “child” refers to a node one level below the node of interest. In the above example of the XML document, it is a child node of the Address node and a Person node.
[0025]
The “ancestor” node refers to all nodes higher than the node of interest, and the “descendant” node refers to all nodes lower than the node of interest.
[0026]
A node having no “child” (terminal node) may be referred to as a “leaf node (or leaf node)”. A node having no “parent” (a top node) may be called a “root node (or a root node)”.
[0027]
Next, the format specification of the XML document will be described.
[0028]
An XML document has a schema language for defining a format. This indicates what format the XML document conforms to. The schema language of a commonly used XML document is DTD (Document Type Definition).
[0029]
The DTD indicates in what order the nodes between the parent and child are established in the XML document. For example, in the above XML document example, there are a plurality of Person nodes as children of the Address node, a Male node or a Female node appears once as a child of the Person node, a Name node and a Tel node appear once, and an OfficeName Nodes appear at most once. The Name node, the Tel node, and the OfficeName node have text data.
[0030]
Expressing such a format specification in DTD is as follows.
[0031]
<! ELEMENT Adders (Person) *>
<! ELEMENT Person ((Male | Female), Name, Tel, Office?)>
<! ELEMENT Male (EMPTY)>
<! ELEMENT Female (EMPTY)>
<! ELEMENT Name (#PCDATA)>
<! ELEMENT Tel (#PCDATA)>
<! ELEMENT Office (#PCDATA)>
In the line starting with “<! ELEMENT”, the name of the parent node is described in the first field, and the name of the node appearing as its child node is described in the second field. A child node separated by the symbol | means that one of them appears. This is called an exclusive declaration. In addition, what is separated by a symbol means that child nodes appear in that order. Also a sign? , *, + Mean that there is a constraint on the number of times they appear. symbol? Means at most once, symbol * means zero or more times, and symbol + means one or more times. #PCDATA means that text data is entered as the value of the node, and EMPTY means that nothing is entered as the value of the node.
[0032]
Hereinafter, a document processing system according to an embodiment of the present invention will be described in detail.
[0033]
FIG. 1 shows a configuration example of the document processing system of the present embodiment.
[0034]
As shown in FIG. 1, the
[0035]
The pre-conversion tree structure input unit inputs information on the pre-conversion tree structure. The converted tree structure input unit inputs the information of the converted tree structure. The means for inputting the tree structure by the pre-conversion tree structure input unit or the post-conversion tree structure input unit may be, for example, a unit manually input by a user from a GUI or the like; For example, various types can be adopted.
[0036]
The inter-node
[0037]
The
[0038]
The inter-node
[0039]
The inter-node distance obtained for each combination is stored in the inter-node
[0040]
The group
[0041]
The
[0042]
A configuration in which the group extraction method is determined in advance and the group designation information input unit is omitted is also possible.
[0043]
The inter-group
[0044]
The inter-group distance obtained for each combination is stored in the inter-group
[0045]
The
[0046]
The mapping
[0047]
The user inputs correction information through a correction
[0048]
The conversion
[0049]
The conversion rule output unit outputs the generated conversion rule. As the means for outputting the conversion rule by the conversion rule output unit, various means such as a means for displaying on a GUI or the like, a means for saving on a recording medium, a means for sending out via a communication medium, and the like can be adopted. .
[0050]
Hereinafter, the present embodiment will be described in more detail.
[0051]
First, input data having a tree structure before conversion and input data having a tree structure after conversion will be described.
[0052]
As a method of inputting a tree structure, there are a method of inputting a tree structure, and a method of inputting an XML document or a DTD defining a format and generating a tree structure represented by the input. The latter case will be described.
[0053]
First, a case where an XML document is input will be described.
[0054]
When an XML document is input, the pre-conversion tree structure input unit and the post-conversion tree structure input unit delete all text nodes, and when there are a plurality of nodes having the same name among nodes at the same depth. Consolidates them into one.
[0055]
For example, assume that the following XML document (from <Address> to </ Address>) has been input.
[0056]
In this case, all text nodes are deleted from this document. The results are shown below.
[0057]
Next, “Person”, “Name”, and “Tel” in which there are a plurality of nodes having the same name among the nodes at the same depth are aggregated into one. The results are shown below.
[0058]
The tree structure created in this way is a tree structure created from the XML document.
[0059]
Next, a case where a DTD is input will be described.
[0060]
When a DTD is input, the parent-child relationship declared by the DTD is expanded. When expanding, if multiple occurrences of the child node are declared, expand only once. Further, when the child node is exclusively declared, a set of exclusively declared nodes is identified with respect to the exclusively declared node in the node of the tree structure to be generated. An ID and an ID for identifying one element in a set of nodes that have been exclusively declared are added as attributes of the node.
[0061]
As a specific example, the following DTD is used.
[0062]
<! ELEMENT Adders (Person) *>
<! ELEMENT Person ((Male | Female), Name, Tel, (cellular | PHS))>
<! ELEMENT Male (EMPTY)>
<! ELEMENT Female (EMPTY)>
<! ELEMENT Name (#PCDATA)>
<! ELEMENT Tel (#PCDATA)>
<! ELEMENT Cellular (#PCDATA)>
<! ELEMENT PHS (#PCDATA)>
In this case, a parent-child relationship is developed for this input. That is, first, nodes that are not declared as children in all parent-child declarations in the DTD are detected. If one node is not declared as a child, the tree structure is expanded with that as the root. If there are a plurality of nodes that are not declared as children, for example, the user is inquired about which of the nodes is to be expanded.
[0063]
In this example, only the Address node is not declared as a child. Therefore, expansion is performed with the Address node as a root. Since the child node of the Address node is Person, and the child node of the Person node is Male or Male, Name, Tel, Cellular, or PHS, the child nodes are expanded in that order. Since the Male node and the Female node are declared as a set of exclusive nodes, a choice_id = "1" attribute is added, and since the Male node and the Female node are each one element of a set that is exclusively declared, Male Choice_item_id = “1” is added to the node, and choice_item_id = “2” is added to the female node. The same applies to the Cellular node and the PHS node.
[0064]
The expanded result is shown below.
[0065]
Next, the inter-node
[0066]
The inter-node
[0067]
For example, assuming that the pre-conversion tree structure is as shown in FIG. 2A and the post-conversion tree structure is as shown in FIG. 2B, the node pairs for all of the 16 node pairs shown in FIG. The inter-distances are obtained and stored in the inter-node
[0068]
There are various methods for obtaining the distance between nodes. For example, as one of the methods, there is a method of obtaining an edit distance between character strings of node names. The edit distance of a character string is the distance between two character strings based on the number of times that one character string must be inserted, deleted, or changed to create another character string. Is a method of calculating Hereinafter, a method of obtaining the edit distance will be described.
[0069]
In order to obtain the edit distance, first, a matrix of the length of the character string before conversion plus one column and the length of the character string after conversion plus one row is created. Then, the same number as the order of the columns is put in each element of the first row in this matrix. Next, the same value as the number of the row order is put in each element of the first column of the matrix.
[0070]
Next, for all remaining matrix elements,
(I) "the value of the element in the previous row plus 1"
(Ii) “the value of the element in the previous column plus 1”;
(Iii) "For the element, a comparison between the character of the character string before conversion having the same number of characters as the order of the column of the element and the character of the converted character string having the same number of characters as the order of the line of the element" And if equal, the value of the element in the previous row of the previous column, if not, the value of the element in the previous column of the previous row plus 1 "
Enter the smallest value among them.
[0071]
The value of the element in the last row of the last column of the matrix created in this manner is the edit distance to be obtained.
[0072]
Hereinafter, a case where the edit distance of the character strings of “Mobile” and “Misc” is obtained will be described as an example.
[0073]
As shown in FIG. 5A, a matrix having a character string length of “Mobile” plus one column and a character string length of “Misc” plus one row number, that is, a matrix having five rows and seven columns Create Next, the same value as the order of the column is put in each element of the first row of the matrix. However, the counting of the order at this time starts from 0. Similarly, the same value as the order of the row is put in each element of the first column of the matrix. The result of the operation so far is shown in FIG.
[0074]
Next, the values of the following three items are calculated for all the remaining elements (the order in which calculation becomes possible is appropriate), and the smallest value among them is set as the value of the element.
[0075]
(I) "Value of element of previous row plus 1"
(Ii) "Value of element of previous column plus 1"
(Iii) "For the element, a comparison between the character of the character string before conversion having the same number of characters as the order of the column of the element and the character of the converted character string having the same number of characters as the order of the line of the element" And if they are equal, the value of the element in the previous row of the previous column, if not, the value of the element in the previous column of the previous row plus 1 "
For example, for an element of FIG.
(I) The value of “the value (= 1) of the element of the previous row (= 0 row and 1 column) plus 1” is “2”
(Ii) The value of “the value (= 1) of the element of the previous column (= 1 row and 0 column) plus 1” is “2”
(Iii) For the element (= 1 row and 1 column), the character (= M) of the character string before conversion having the same number of characters as the order of the column of the element and the same number of characters as the order of the line of the element Is compared with the character (= M) of the converted character string, and if they are equal, the value (= 0) of the element (= 0
It becomes.
[0076]
Since the smallest value among the values obtained in (i) to (iii) is 0, the value of one row and one column is zero. This state is shown in FIG.
[0077]
Hereinafter, similarly, when the elements of all other matrices are calculated, the result is as shown in FIG.
Since the value (= 4) of the last column (= 7 rows and 7 columns) of the last row of the matrix gives an edit distance, the inter-node distance between the “Mobile” node and the “Misc” node is 4.
[0078]
Next, the inter-group
[0079]
As described above, the group
[0080]
The
[0081]
Various methods are conceivable for designating a group. Four specific examples are shown below.
[0082]
(1) Among nodes marked up as exclusive nodes, a subtree consisting of nodes that do not include nodes marked as exclusive nodes in their own descendant nodes and a group of nodes not included in the subtree are grouped. Extract as FIG. 6 shows an example of group extraction in this case. In the drawing, a range surrounded by one closed line corresponds to one group (the same applies to FIGS. 7 to 9 described later).
[0083]
(2) A parameter n is input as group specification information from the group specification
[0084]
(3) The parameter n is input as group designation information from the group designation
[0085]
(4) Information for specifying a node is input as group specification information from the group specification
[0086]
Note that a method other than the method described above is also possible. A plurality of methods may be provided, and information specifying which method is to be used may be input from, for example, a group specification information input unit.
[0087]
The group
[0088]
For example, if the group before conversion is as shown in FIG. 10 (a) and the group after conversion is as shown in FIG. 10 (b), the inter-node distances for all 12 types of node pairs as shown in FIG. Are stored in the inter-group
[0089]
There are various methods for obtaining the distance between groups. Hereinafter, an example will be described.
[0090]
(1) For a target group / pair, all combinations of nodes constituting a group before conversion and nodes constituting a group after conversion are obtained.
[0091]
(2) The distance between nodes for the determined combination of nodes is extracted from the inter-node
[0092]
(3) Find a node pair that minimizes the distance between nodes.
[0093]
(4) A value obtained by dividing the obtained sum of the distances of the node pairs by the number of the node pairs is defined as an inter-group distance.
[0094]
In (3), a node pair that minimizes the sum of the distances of the node pairs may be obtained.
[0095]
The
[0096]
There are various methods for creating mapping information. Hereinafter, an example will be described.
[0097]
(1) The inter-group distance is extracted from the inter-group
[0098]
(2) Find a pair of groups with the smallest group distance. At this time, groups whose group distance is −1 are unconditionally group pairs, and the other groups are group pairs so that the converted groups are one-to-one.
[0099]
The following (3) to (5) are performed for each created group / pair.
[0100]
(3) Obtain all combinations of the nodes constituting the pre-conversion group and the nodes constituting the post-conversion group from the group pair.
[0101]
(4) The distance between the nodes for the determined combination of nodes is extracted from the distance between
[0102]
(5) The nodes related to the combination having the smallest inter-node distance are associated with each other, and mapping information indicating this is generated. At this time, nodes whose inter-node distance is -1 are unconditionally associated (mapped). For other nodes, node mapping is created so that the converted nodes are one-to-one.
[0103]
The mapping
[0104]
FIG. 13 shows a display example in this case. The tree view of the tree structure before conversion is shown on the left part of the screen, and the tree view of the tree structure after conversion is shown on the right part of the screen (rectangular images show nodes, and lines between rectangles show links between nodes) . The image of the (one-way) arrow between the tree views indicates the mapping. It is shown that the node corresponding to the start point of the arrow in the pre-conversion tree structure corresponds to the node corresponding to the end point of the arrow in the post-conversion tree structure.
[0105]
The user instructs creation of a new mapping by newly creating this arrow, instructs deletion of the mapping by deleting the arrow, and changes the mapping by changing the source node and / or destination node of the arrow. Instruct. In response to this instruction (correction information), mapping information managed by the mapping
[0106]
The conversion
[0107]
The conversion
[0108]
For example, when the pre-conversion Address node and the post-conversion Addr node are connected by mapping, the following XSLT template rule is generated.
[0109]
However, in the above example,. . . . . In the portion indicated by, an expression for referencing a template rule corresponding to mapping of a pre-conversion Address node to a child node is entered. For example, if the child node of the pre-conversion Address node is a Person node, the expression <xsl: apply-templates select = "Person"/> that refers to a template for the Person node is entered.
[0110]
Next, a processing flow of the present embodiment will be described.
[0111]
FIG. 14 shows an example of the processing procedure of the present embodiment.
[0112]
The pre-conversion tree structure and the post-conversion tree structure are input from the pre-conversion tree structure input unit and the post-conversion tree structure input unit, respectively (step S1).
[0113]
Next, an inter-node distance is calculated for all combinations of nodes between the node group before the conversion and the node group after the conversion (step S2). The distance between the nodes can be determined, for example, by comparing the names of the two nodes and calculating the edit distance of the character string of the name. The calculated inter-node distance is stored in the inter-node distance storage unit 113 (step S2).
[0114]
Next, the
[0115]
Next, the inter-group distances are calculated for all the combinations for each of the extracted groups before and after the conversion (step S4). The inter-group distance is calculated, for example, by extracting nodes constituting each group, calculating inter-node distances for all combinations of nodes, finding a combination of nodes that minimizes the sum of inter-node distances, and determining a node in the combination. The average value of the inter-distance is obtained, and this is set as the inter-group distance. The calculated inter-group distance is stored in the inter-group distance storage unit 123 (step S4).
[0116]
The
[0117]
First, the
[0118]
Next, the
[0119]
The generated mapping information is displayed on the GUI by the mapping information management unit 14 (step S7).
[0120]
Here, the user can determine whether or not all of the automatically generated mappings are the mappings that the user wants. The user inputs an instruction indicating that all the automatically generated mappings are correct through the correction
[0121]
The correction
[0122]
The input of the correction information regarding “deletion of mapping” includes, for example, selection of an image (for example, an arrow) indicating a mapping relating to a node pair to be deleted, an instruction to delete the mapping, or movement of the image indicating the mapping Alternatively, the input is performed by an equivalent input method.
[0123]
The input of the correction information relating to “addition of mapping” is performed by, for example, selecting two nodes to be added, specifying that mapping should be added, adding an image indicating mapping, or an input method equivalent thereto. Is
[0124]
The input of the correction information on “change of mapping” includes, for example, selection of a node before change from a pair of nodes to be changed, a node after changing it, and an instruction to change mapping, or It is performed by an input method equivalent to.
[0125]
If the input correction information (correction performed by the user) is "deletion of mapping" (step S10), the distance between nodes of the node pair indicated by the deleted mapping is recalculated (step S10). S11). Then, among the mappings of the node pairs connecting the groups to which the deleted mappings are connected, if there is no other one having the inter-node distance of −1, the inter-group distance is recalculated. The inter-group distance is kept at -1 (step S12).
[0126]
If the input correction information is "add mapping" (step S10), the inter-node distance of the node pair indicated by the added mapping is set to -1 (step S13). Then, the inter-group distance of the group pair connected by the corrected mapping is set to −1 (step S14).
[0127]
If the input modification information is "change of mapping" (step S10), the distance between nodes of the node pair indicated by the mapping before the change is recalculated (step S15). Next, the inter-node distance of the node pair indicated by the changed mapping is set to −1 (step S16). Next, if there is no other mapping of the node pair having the inter-node distance of −1 in the group pair to which the mapping before the change is connected, the inter-group distance of the group pair is recalculated, and the If so, the inter-group distance is kept at -1 (step S17). Then, the inter-group distance of the group pair connected by the changed mapping is set to −1 (step S18).
[0128]
In this way, the distance between groups and the distance between nodes are recalculated, and the automatic generation process is repeated again.
[0129]
If the user inputs an instruction indicating that all mappings are correct in step S8, a conversion rule is generated based on the mapping information obtained at this time (step S19).
[0130]
Now, the present embodiment will be described below using a specific example.
[0131]
In this specific example, the following DTD is set as the pre-conversion DTD.
[0132]
<! ELEMENT Address (Person) *>
<! ELEMENT Person (Name, Office, Home)>
<! ELEMENT Office (Tel, Fax)>
<! ELEMENT Home (Tel, Mobile)
<! ELEMENT Name (#PCDATA)>
<! ELEMENT Tel (#PCDATA)>
<! ELEMENT FAX (#PCDATA)>
<! ELEMENT Mobile (#PCDATA)>
On the other hand, the next DTD is referred to as a post-conversion DTD.
[0133]
<! ELEMENT Addr (Member) *>
<! ELEMENT Member (Name, Phone)>
<! ELEMENT Phone (Tel, Misc)>
<! ELEMENT Name (#PCDATA)>
<! ELEMENT Tel (#PCDATA)>
<! ELEMENT Misc (#PCDATA)>
The pre-conversion tree structure input unit and the post-conversion tree structure input unit receive each as tree structure information input.
[0134]
In this case, a tree structure exemplified below is generated from the DTD before conversion.
[0135]
On the other hand, the following DTD is generated from the converted DTD.
[0136]
Next, the inter-node
[0137]
FIG. 15 shows a table including the result of obtaining the edit distance for all combinations of nodes.
[0138]
These inter-node distances are stored in the inter-node
[0139]
Next, a group is extracted by the
[0140]
In this specific example, it is assumed that “/ Address / Person / Name / Office or / Address / Person / Home” is specified as the group designation information for the pre-conversion tree structure. Is specified as “/ Addr / Member / Name / Phone”.
[0141]
In this case, the group of the pre-transform tree structure is
Group1 (before conversion): Address, Person, Name
Group2 (before conversion): Office, Tel, Fax
Group3 (before conversion): Home, Tel, Mobile
It becomes.
[0142]
However, Tel of Group2 (before conversion) is Tel of a child node of Office, and Tel of Group3 (before conversion) is Tel of a child node of Home.
[0143]
The group of the transformed tree structure is
Group1 (after conversion): Addr, Member, Name
Group2 (after conversion): Phone, Tel, Misc
It becomes.
[0144]
Next, an inter-group distance is calculated for the extracted groups by the inter-group
[0145]
Here, a case where the inter-group distance for a pair of Group3 (before conversion) and Group2 (after conversion) will be described.
[0146]
First, a node pair having the shortest inter-node distance is obtained from a group consisting of a Group 3 (before conversion) node and a Group 2 (after conversion) node.
[0147]
From the distance between nodes managed by the
The distance between the Home node of Group3 (before conversion) and the Phone node of Group2 (after conversion) is "3";
The distance between the Tel node of Group 3 (before conversion) and the Tel node of Group 2 (after conversion) is “0”;
The distance between the Mobile node of Group3 (before conversion) and the Misc node of Group2 (after conversion) is "4",
It becomes.
[0148]
Regarding the pair of Group3 (before conversion) and Group2 (after conversion), the above three node pairs have the smallest inter-node distance. Here, in this specific example, it is assumed that the value obtained by dividing the sum of the inter-node distances of each node pair by the number of pairs is the inter-group distance to be obtained. Therefore, for the pair of Group3 (before conversion) and Group2 (after conversion), the sum of the distances between nodes is 7, and the number of pairs is 3, so that the distance between groups is "2.3".
[0149]
Similarly, the distance between groups is obtained for all combinations of groups.
[0150]
FIG. 16 shows a table including the result of obtaining the inter-group distance for all combinations of groups.
[0151]
These inter-group distances are stored in the inter-group
[0152]
Next, the
[0153]
Next, nodes that are closest to each other in the obtained group / pair are generated as mappings. First, a node pair in which the distance between nodes is -1 is searched. In this specific example, there is no one in which the distance between nodes is -1. Next, a pair of a one-to-one node with the pre-conversion node closest to the post-conversion node is created. The closest pair of nodes in the group pair consisting of
[0154]
The mapping information generated in this way is passed to the mapping
[0155]
Now, it is assumed that the user has modified the mapping from the Mobile node to the Misc node on the GUI and changed the mapping from the Fax node to the Misc node. This is illustrated in FIG.
[0156]
In response to this change, among the inter-node distances managed by the inter-node
[0157]
FIG. 19 shows a state in which the table of FIG. 15 has been updated.
[0158]
Further, among the inter-group distances managed by the inter-group
[0159]
FIG. 20 shows a state in which the table of FIG. 16 has been updated.
[0160]
Next, the
[0161]
First, the group pairs are recalculated. Since the group distance between Group2 (before conversion) and Group2 (after conversion) is -1 due to the user's correction, a pair of Group2 (before conversion) and Group2 (after conversion) is created. Next, since the closest distance to Group 1 (after conversion) is Group 1 (before conversion), a pair of group pair Group 1 (before change) and Group 1 (after change) is created.
[0162]
Next, for each of the pair of Group1 (before change) and Group1 (after change) and the pair of Group2 (before change) and Group2 (after change), the pair of the closest nodes in the pair is mapped. Is generated as For the pair of Group1 (before change) and Group1 (after change), there is no effect on the inter-node distance due to the modification of the mapping, so the node pair remains unchanged (a pair of an Address node and an Addr node, a Person node). And a Member node and a Name node and a Name node). For the pair of Group2 (before change) and Group2 (after change), since the inter-node distance between the Fax node and the Misc node is -1, a mapping from the Fax node to the Misc node is created. Regarding the remaining Group2 (after change) nodes, the Group2 (before change) node closest to the Phone node is an Office node, and the node closest to the Tel node is a Tel node. As a result, from the Office node to the Phone node, Mapping, Tel node to Tel node mapping, and Fax node to Misc node mapping are generated.
[0163]
When the information indicating these mappings is passed to the mapping
[0164]
When the user determines that the mapping in the mapping
[0165]
The conversion
[0166]
FIG. 22 illustrates an XSLT in this case.
[0167]
An existing method may be used as a method for generating a conversion rule for converting a node before change indicated by the mapping into a node after change. For example, a method disclosed in JP-A-2003-58530 may be used.
[0168]
Each of the above functions can also be realized by being described as software and processed by a computer having an appropriate mechanism.
Further, the present embodiment can also be implemented as a program for causing a computer to execute predetermined means, for causing a computer to function as predetermined means, or for causing a computer to realize predetermined functions. In addition, the present invention can be implemented as a computer-readable recording medium on which the program is recorded.
[0169]
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying constituent elements in an implementation stage without departing from the scope of the invention. Various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the above embodiments. For example, some components may be deleted from all the components shown in the embodiment. Further, components of different embodiments may be appropriately combined.
[0170]
【The invention's effect】
According to the present invention, the correspondence between each node constituting the first tree structure of the first structured document and each node constituting the second tree structure of the second structured document is determined. You can do it more efficiently.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration example of a document processing system according to an embodiment of the present invention.
FIG. 2 is a diagram for explaining a distance between nodes;
FIG. 3 is a diagram for explaining a distance between nodes;
FIG. 4 is a diagram for explaining a distance between nodes;
FIG. 5 is a diagram for explaining an edit distance.
FIG. 6 is a diagram for explaining group extraction;
FIG. 7 is a diagram for explaining extraction of a group;
FIG. 8 is a diagram for explaining extraction of a group;
FIG. 9 is a diagram for explaining group extraction;
FIG. 10 is a diagram for explaining a distance between groups.
FIG. 11 is a diagram for explaining a distance between groups.
FIG. 12 is a diagram illustrating a distance between groups.
FIG. 13 is a diagram showing a display example of a generated mapping by a GUI.
FIG. 14 is an exemplary flowchart illustrating an example of a processing procedure of the document processing system according to the embodiment.
FIG. 15 is a diagram showing an example of calculating a distance between nodes;
FIG. 16 is a diagram showing an example of calculating a distance between groups.
FIG. 17 is a diagram showing a display example of a generated mapping by a GUI.
FIG. 18 is a diagram showing an example in which a mapping is modified on a GUI.
FIG. 19 is a diagram showing an example of updating an inter-node distance.
FIG. 20 is a diagram showing an example of updating a distance between groups.
FIG. 21 is a view showing a display example of a mapping regenerated by reflecting a correction by a GUI;
FIG. 22 is a diagram illustrating an example of a generated conversion rule.
[Explanation of symbols]
11: Inter-node distance management unit, 111: Node extraction unit, 112: Inter-node distance calculation unit, 113: Inter-node distance storage unit, 12: Inter-group distance management unit, 121: Group extraction unit, 1211: Group designation information input Unit, 122: group distance calculation unit, 123: group distance storage unit, 13: mapping generation unit, 14: mapping information management unit, 15: conversion rule generation unit, 16: correction information input unit
Claims (13)
前記第1の木構造からその一部分を構成するノードの第1のグループを抽出するとともに、前記第2の木構造からその一部分を構成するノードの第2のグループを抽出する抽出手段と、
前記ノード間類似度に基づいて、前記第1のグループと、前記第2のグループとの間のグループ間類似度を求める第2の類似度処理手段と、
前記グループ間類似度に基づいて、前記第1のグループと前記第2のグループとの対応付けを行う第1の対応処理手段と、
前記第1の対応処理手段により対応付けられた前記グループ対について、前記ノード間類似度に基づき、前記第2のグループを構成する各ノードに対する、前記第1のグループを構成するノードの対応付けを行う第2の対応処理手段とを備えたことを特徴とする構造化文書処理システム。A first method for calculating an inter-node similarity between each of the nodes forming the first tree structure of the first structured document and each of the nodes forming the second tree structure of the second structured document. Similarity processing means,
Extracting means for extracting, from the first tree structure, a first group of nodes forming a part thereof, and extracting a second group of nodes forming a part thereof from the second tree structure;
Second similarity processing means for obtaining an inter-group similarity between the first group and the second group based on the inter-node similarity;
First correspondence processing means for associating the first group with the second group based on the inter-group similarity;
For the group pair associated by the first association processing unit, the association of the node configuring the first group with each node configuring the second group based on the similarity between the nodes. A structured document processing system comprising: a second correspondence processing unit for performing the processing.
入力された前記修正情報に基づいて前記ノード間類似度及び前記グループ間類似度を更新する手段を更に備え、
前記第1及び第2の対応処理手段はそれぞれ更新された前記グループ間類似度又は前記ノード間類似度に基づいて前記対応付けをあらためて行い、前記表示手段は前記第2の対応処理手段によりあらためて行われた前記対応付けの結果を示す情報を前記表示画面に表示させることを特徴とする請求項2に記載の構造化文書処理システム。Means for inputting correction information for correcting information indicating the result of the association displayed on the display screen,
Further comprising means for updating the inter-node similarity and the inter-group similarity based on the input correction information,
The first and second correspondence processing means re-performs the correspondence based on the updated inter-group similarity or the inter-node similarity, respectively, and the display means re-executes the second correspondence processing means. 3. The structured document processing system according to claim 2, wherein information indicating a result of the association is displayed on the display screen.
前記第1の修正に関する修正情報の入力は、対応付けの追加を行うべき前記ノード対に係る各ノードを特定可能な情報及び追加すべき旨の前記表示画面での入力により行われ、
前記第2の修正に関する修正情報の入力は、対応付けの解除を行うべき前記ノード対のうち変更する前のノード及び変更した後のノードを特定可能な情報及び変更すべき旨の前記表示画面での入力により行われ、
前記第3の修正に関する修正情報の入力は、対応付けの解除を行うべき前記ノード対を特定可能な情報及び解除すべき旨の前記表示画面での入力により行われることを特徴とする請求項4に記載の構造化文書処理システム。The modification is a first modification that newly adds a correspondence of a node belonging to the first tree structure to a node belonging to the second tree structure, and a specific modification associated with the second correspondence processing unit. A second modification for changing one node of the node pair to another node belonging to the tree structure to which the node belongs, or a specific node pair associated by the second correspondence processing unit. Including a third amendment to release,
The input of the correction information related to the first correction is performed by inputting the information that can specify each node of the node pair to which the association should be added and the input on the display screen indicating that the node should be added,
The input of the correction information relating to the second correction is performed on the display screen for specifying the node before the change and the node after the change among the node pairs for which the association is to be released and the display screen for the change. Is performed by inputting
The input of correction information on the third correction is performed by inputting information on the display screen indicating that the node pair to be released from association can be specified and that the node pair should be released. Structured document processing system according to 1.
前記第1の対応処理手段は、前記グループ間類似度が前記旨を示す値に設定されているグループ対については、それらグループの対応付けを無条件に行い、前記第2の対応処理手段は、前記ノード間類似度が前記旨を示す値に設定されているノード対については、それらノードの対応付けを無条件に行うことを特徴とする請求項5に記載の構造化文書処理システム。When correction information on the first or second correction is input, the inter-node similarity of the node pair related to the first correction or the node pair after the change related to the second correction is changed. The degree is set to a value indicating that the nodes related to the node pair should be unconditionally associated with each other, and the group similarity between the groups of the group to which the nodes related to the node pair belong is determined. , Set to a value indicating that the groups should be unconditionally associated,
The first correspondence processing means unconditionally associates the group pairs for which the group similarity is set to a value indicating the above, with the second correspondence processing means comprising: 6. The structured document processing system according to claim 5, wherein, for the node pairs for which the inter-node similarity is set to a value indicating the above, the correspondence between the nodes is unconditionally performed.
前記第2の類似度処理手段は、一方のグループを構成するノードと他方のグループを構成するノードとから形成されるノード対の前記ノード間類似度の総和に基づいて当該グループ対の前記グループ間類似度を求めるものであることを特徴とする請求項1に記載の構造化文書処理装置。The first similarity processing means calculates the inter-node similarity of the node pair based on a character string representing a name of one node and a character string representing a name of the other node,
The second similarity processing means is configured to determine whether or not the inter-group similarity of the group pair is based on a sum of the inter-node similarities of a node pair formed from a node configuring one group and a node configuring the other group. 2. The structured document processing apparatus according to claim 1, wherein similarity is obtained.
前記第2の対応処理手段は、前記ノード間類似度をより大きくするノード同士を対応付けるものであることを特徴とする請求項1に記載の構造化文書処理装置。The first correspondence processing means is for associating groups for increasing the similarity between groups with each other,
2. The structured document processing apparatus according to claim 1, wherein the second correspondence processing unit associates the nodes that increase the similarity between the nodes with each other.
前記第1の木構造からその一部分を構成するノードの第1のグループを抽出するとともに、前記第2の木構造からその一部分を構成するノードの第2のグループを抽出する抽出ステップと、
前記ノード間類似度に基づいて、前記第1のグループと、前記第2のグループとの間のグループ間類似度を求める第2の類似度処理ステップと、
前記グループ間類似度に基づいて、前記第1のグループと前記第2のグループとの対応付けを行う第1の対応処理ステップと、
前記第1の対応処理ステップにより対応付けられた前記グループ対について、前記ノード間類似度に基づき、前記第2のグループを構成する各ノードに対する、前記第1のグループを構成するノードの対応付けを行う第2の対応処理ステップとを有することを特徴とする構造化文書処理方法。A first method for calculating an inter-node similarity between each of the nodes forming the first tree structure of the first structured document and each of the nodes forming the second tree structure of the second structured document. A similarity processing step of
An extracting step of extracting a first group of nodes forming a part thereof from the first tree structure and extracting a second group of nodes forming a part thereof from the second tree structure;
A second similarity processing step of calculating an inter-group similarity between the first group and the second group based on the inter-node similarity;
A first correspondence processing step of associating the first group with the second group based on the inter-group similarity;
For the group pairs associated by the first correspondence processing step, the correspondence of the nodes constituting the first group to the nodes constituting the second group is determined based on the similarity between the nodes. And a second corresponding processing step to be performed.
第1の構造化文書の有する第1の木構造を構成する各ノードと第2の構造化文書の有する第2の木構造を構成する各ノードとの間のノード間類似度をそれぞれ求める第1の類似度処理機能と、
前記第1の木構造からその一部分を構成するノードの第1のグループを抽出するとともに、前記第2の木構造からその一部分を構成するノードの第2のグループを抽出する抽出機能と、
前記ノード間類似度に基づいて、前記第1のグループと、前記第2のグループとの間のグループ間類似度を求める第2の類似度処理機能と、
前記グループ間類似度に基づいて、前記第1のグループと前記第2のグループとの対応付けを行う第1の対応処理機能と、
前記第1の対応処理機能により対応付けられた前記グループ対について、前記ノード間類似度に基づき、前記第2のグループを構成する各ノードに対する、前記第1のグループを構成するノードの対応付けを行う第2の対応処理機能とをコンピュータに実現させるためのプログラム。A program for causing a computer to function as a structured document processing device,
A first method for calculating an inter-node similarity between each of the nodes forming the first tree structure of the first structured document and each of the nodes forming the second tree structure of the second structured document. Similarity processing function,
An extraction function for extracting a first group of nodes constituting a part thereof from the first tree structure, and extracting a second group of nodes constituting a part thereof from the second tree structure;
A second similarity processing function for calculating an inter-group similarity between the first group and the second group based on the inter-node similarity;
A first correspondence processing function of associating the first group with the second group based on the inter-group similarity;
For the group pair associated by the first correspondence processing function, the correspondence between the nodes constituting the first group and the nodes constituting the second group is determined based on the similarity between the nodes. A program for causing a computer to realize a second corresponding processing function to be performed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003143315A JP2004348341A (en) | 2003-05-21 | 2003-05-21 | Structured document processing system, structured document processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003143315A JP2004348341A (en) | 2003-05-21 | 2003-05-21 | Structured document processing system, structured document processing method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004348341A true JP2004348341A (en) | 2004-12-09 |
Family
ID=33531134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003143315A Pending JP2004348341A (en) | 2003-05-21 | 2003-05-21 | Structured document processing system, structured document processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004348341A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007052556A (en) * | 2005-08-16 | 2007-03-01 | Tokyo Institute Of Technology | Similarity detection method and system for two or more xml documents and integration method for two or more xml documents |
JP2008304985A (en) * | 2007-06-05 | 2008-12-18 | Hitachi Systems & Services Ltd | Automatic classification designation document format conversion device |
JP2009122933A (en) * | 2007-11-14 | 2009-06-04 | Nec Corp | Definition information-reconstructing device for xml document conversion, method and program for the same |
US7870490B2 (en) * | 2005-11-15 | 2011-01-11 | Microsoft Corporation | On-the-fly device configuration and management |
JP4878624B2 (en) * | 2006-03-31 | 2012-02-15 | 株式会社ジャストシステム | Document processing apparatus and document processing method |
KR101494486B1 (en) | 2007-11-07 | 2015-02-17 | 가부시키가이샤 카테나스 | Structured document drawing system, and method and computer readable recording medium having program therefor |
US9311730B2 (en) | 2013-03-29 | 2016-04-12 | International Business Machines Corporation | Aggregating graph structures |
US10437857B2 (en) | 2012-07-10 | 2019-10-08 | Fujitsu Limited | Mapping device, mapping method, and recording medium |
-
2003
- 2003-05-21 JP JP2003143315A patent/JP2004348341A/en active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007052556A (en) * | 2005-08-16 | 2007-03-01 | Tokyo Institute Of Technology | Similarity detection method and system for two or more xml documents and integration method for two or more xml documents |
US7870490B2 (en) * | 2005-11-15 | 2011-01-11 | Microsoft Corporation | On-the-fly device configuration and management |
JP4878624B2 (en) * | 2006-03-31 | 2012-02-15 | 株式会社ジャストシステム | Document processing apparatus and document processing method |
JP2008304985A (en) * | 2007-06-05 | 2008-12-18 | Hitachi Systems & Services Ltd | Automatic classification designation document format conversion device |
KR101494486B1 (en) | 2007-11-07 | 2015-02-17 | 가부시키가이샤 카테나스 | Structured document drawing system, and method and computer readable recording medium having program therefor |
JP2009122933A (en) * | 2007-11-14 | 2009-06-04 | Nec Corp | Definition information-reconstructing device for xml document conversion, method and program for the same |
US10437857B2 (en) | 2012-07-10 | 2019-10-08 | Fujitsu Limited | Mapping device, mapping method, and recording medium |
US9311730B2 (en) | 2013-03-29 | 2016-04-12 | International Business Machines Corporation | Aggregating graph structures |
US9563974B2 (en) | 2013-03-29 | 2017-02-07 | International Business Machines Corporation | Aggregating graph structures |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7197510B2 (en) | Method, system and program for generating structure pattern candidates | |
US7523394B2 (en) | Word-processing document stored in a single XML file that may be manipulated by applications that understand XML | |
US8140596B2 (en) | System and method for the derivation and application of sub-iteration contexts in a transformation operation in a data integration system | |
US20020111964A1 (en) | User controllable data grouping in structural document translation | |
US20050039119A1 (en) | Presentation generator | |
JPWO2007020850A1 (en) | Information processing method, information processing apparatus, and information processing program | |
JP2002024211A (en) | Method and system for document management and storage medium having processing program stored thereon | |
WO2018113532A1 (en) | Information extraction method and system | |
JPWO2005119516A1 (en) | Array generation method, information processing apparatus, and program | |
JPH07319917A (en) | Document data base managing device and document data base system | |
JPH0830620A (en) | Structure retrieving device | |
WO2011069903A1 (en) | Method and system for on-line editing electronic documents | |
JP3797821B2 (en) | Ontology construction support device | |
CN110308907B (en) | Data conversion method and device, storage medium and electronic equipment | |
JP5555550B2 (en) | Data conversion method, apparatus and program | |
JP2004348341A (en) | Structured document processing system, structured document processing method, and program | |
JPWO2005098662A1 (en) | Document processing apparatus and document processing method | |
JPWO2005098661A1 (en) | Document processing apparatus and document processing method | |
JP3788956B2 (en) | Structured document display method, structured document display device, and program | |
JPH09282218A (en) | Html document book form shaping method and device therefor | |
US11036729B2 (en) | Document creation support system | |
JP2013218627A (en) | Method and device for extracting information from structured document and program | |
JP3842576B2 (en) | Structured document editing method and structured document editing system | |
JPWO2005098659A1 (en) | Document processing apparatus and document processing method | |
CN110738022B (en) | HTML real-time collaborative editing method based on operation conversion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050620 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060424 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060523 |