JP4418620B2 - データ処理方法、これを用いた指示情報生成システム及びプログラム - Google Patents

データ処理方法、これを用いた指示情報生成システム及びプログラム Download PDF

Info

Publication number
JP4418620B2
JP4418620B2 JP2002206202A JP2002206202A JP4418620B2 JP 4418620 B2 JP4418620 B2 JP 4418620B2 JP 2002206202 A JP2002206202 A JP 2002206202A JP 2002206202 A JP2002206202 A JP 2002206202A JP 4418620 B2 JP4418620 B2 JP 4418620B2
Authority
JP
Japan
Prior art keywords
document
update
tree structure
structure data
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002206202A
Other languages
English (en)
Other versions
JP2004046745A (ja
Inventor
麻里 安部
光生 小柳
康一 小野
雅洋 堀
卓也 仲池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2002206202A priority Critical patent/JP4418620B2/ja
Priority to US10/612,786 priority patent/US7530014B2/en
Publication of JP2004046745A publication Critical patent/JP2004046745A/ja
Application granted granted Critical
Publication of JP4418620B2 publication Critical patent/JP4418620B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Description

【0001】
【発明の属する技術分野】
本発明は、XML(Extensible Markup Language)やHTML(Hypertext Markup Language)などで記述された文書の要素を指示する方法に関し、特に文書が変更された場合に要素の指示表現を更新する方法に関する。
【0002】
【従来の技術】
インターネットなどのデータ交換に用いられるXMLやHTMLなどで記述された構造化された文書(以下、構造化文書)に対し、この構造化文書中の特定の要素(エレメント)を指示してアノテーション(annotation:注釈)などのメタ情報を付す場合がある。また、構造化文書に予め変形ルールを記述しておき、この変形ルールに基づいて構造化文書を変形させる場合がある。このようなメタ情報や変形ルールを構造化文書に付加する場合、XPath(XML Path Language)を用いて当該構造化文書における所定の位置を指示し、外部文書から参照することが行われる。
【0003】
XPathは、構造化文書の特定の部分を指し示すための言語であり、XPathを指示情報として利用することによって、構造化文書中におけるアノテーションを付したり変形を行ったりする位置を任意に特定することができる。以下の説明では、XPathによる記述も単にXPathと記す。
具体的なXPathの表記は、次のように行われる。
図18は、構造化文書であるXML文書の構成例を示す図である。XPathでは、ルート要素をスラッシュ「/」で表す。したがって、図18のXML文書に対し、要素aは、ルートの子供要素であるため、「/a」と表現される。また、要素bや要素dは、「/a/b」や「/a/b/d」と表される。さらに、「//p[id="foo"]」は、あるXML文書中に存在する全てのp要素の中で、その要素のid属性が「foo」であるものを選択するXPathの表記例である。
【0004】
【発明が解決しようとする課題】
上述したように、XPathによれば、XML文書やHTML文書といった構造化文書の特定の要素を任意に指示することができる。しかし、指示対象である構造化文書が変更されてしまうと、構造化文書中の要素やその位置が変わってしまうことにより、XPathによる位置の指定が外れ、所望の要素を適切に指示できなくなる場合があった。
従来、このような場合に構造化文書中の所望の要素を適切に指示し続けるためには、人手を介してXPathの記述を修正しなければならず、多大な手間を要し、この構造化文書を利用するシステムの開発者にとって大きな負担となっていた。
【0005】
そこで、本発明は、構造化文書中の所定の要素が指示されている場合に、この構造化文書が変更されても所望の要素を適切に指示し続けることができるようにすることを目的とする。
また本発明は、XPathを用いて所定の要素が指示されている構造化文書が変更された場合に、この構造化文書の変更に応じてXPathを自動的に更新する手段を提供することを目的とする。
【0006】
【課題を解決するための手段】
上記の目的を達成する本発明は、構造化文書の所定の要素を指示する、次のようなデータ処理方法として実現される。すなわち、このデータ処理方法は、所定の指示情報により要素を指示された構造化文書が変更された場合に、この構造化文書を入力して変更内容を解析するステップと、解析された構造化文書の変更内容に応じて、変更後の構造化文書中の対応する要素を指示するように指示情報を更新するステップとを含むことを特徴とする。
【0007】
より詳細には、この構造化文書の変更内容を解析するステップは、変更前後の構造化文書をツリー構造データに変換する処理と、このツリー構造データの差分を計算する処理とを含む。そして、このツリー構造データの差分を用いて指示情報を更新する。
さらに詳しくは、このツリー構造データの差分を計算する処理では、この構造化文書の変更に応じて変形されたツリー構造データの構成要素のうちで、このツリー構造データの変形に要する操作において移動された構成要素を追跡するようにこのツリー構造データの差分を計算する。
【0008】
また好ましくは、構造化文書中の要素を指示する指示情報としてXPathを用いることができる。
そして、指示情報を更新する処理では、変更前後の構造化文書の差分に基づいて、指示情報が記述されたXPathを構成するロケーションステップを再生成することにより、XPathの記述を更新する。
【0009】
また、上記の目的を達成する他の本発明は、このようなデータ処理を実行する指示情報生成システムとしても実現される。すなわち、この指示情報生成システムは、複数の構造化文書の差分を計算する差分計算部と、この差分計算部により計算された差分に関する情報に基づいて所定の構造化文書における所定の部分を指示する指示情報から他の構造化文書中の対応する部分を指示する指示情報を生成する指示情報生成部とを備えることを特徴とする。
より好ましくは、この指示情報生成システムは、構造化文書の構造を解析してツリー構造データに変換する文書解析部をさらに備え、差分計算部は、この文書解析部にて変換された複数の構造化文書に対応する複数のツリー構造データを比較して差分を計算する。
【0010】
また、本発明は、このような指示情報の更新を実現するため、次のような2つのツリー構造データの差分計算方法として実現することができる。すなわち、この差分計算方法は、メモリから処理対象である2つのツリー構造データを読み出して比較し、一方のツリー構造データから他方のツリー構造データに変形するための操作をツリー構造の構成要素に対する所定の操作の組合せで表現した操作列のリストを作成するステップと、この操作列のリストのうちで、ツリー構造の構成要素の移動として把握できる操作列を移動の操作に変更するステップとを含むことを特徴とする。
ここで、ツリー構造の構成要素とは、ツリーのノード及び部分的なサブツリーを含む。また、ツリー構造の構成要素に対する所定の操作の組合せとは、例えばこれらの構成要素を追加し、削除し、または変更する操作の組合せといった、基本操作である。
【0011】
また、より詳細には、このリスト中の操作列を変更するステップでは、このリスト中に、ツリー構造データにおける同一の構成要素を削除する操作と追加する操作とが存在する場合に、これらの操作に替えて構成要素を移動する操作をこのリストに加える。
さらに、このリスト中に、ツリー構造データにおける所定の構成要素を変更する操作が存在する場合に、所定の規則に基づいて、この操作を構成要素の移動を含む別の操作に置き替える。
【0012】
また、上記の目的を達成するさらに他の本発明は、所定のHTML文書に対して設定されたアノテーションデータを管理する、次のようなアノテーションサーバとしても実現される。このアノテーションサーバは、アノテーションデータが設定されたHTML文書が変更された場合に、変更前後のかかるHTML文書の差分を計算する差分計算手段と、この差分計算手段の計算により得られた差分情報に基づいて、アノテーションデータをHTML文書の所定の部分に対応付けるXPathを更新するXPath更新手段とを備えることを特徴とする。
【0013】
さらにまた、本発明は、コンピュータを制御して上記のデータ処理方法や差分計算方法における各ステップに対応する処理を実行させるプログラム、あるいは上述した指示情報更新システムやアノテーションサーバとしてコンピュータを機能させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
【0014】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
図1は、本実施の形態によるXPath更新方法を実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図1に示すコンピュータ装置は、演算手段であるCPU(Central Processing Unit:中央処理装置)101と、M/B(マザーボード)チップセット102及びCPUバスを介してCPU101に接続されたメインメモリ103と、同じくM/Bチップセット102及びAGP(Accelerated Graphics Port)を介してCPU101に接続されたビデオカード104と、PCI(Peripheral Component Interconnect)バスを介してM/Bチップセット102に接続されたハードディスク105、ネットワークインターフェイス106及びUSBポート107と、さらにこのPCIバスからブリッジ回路108及びISA(Industry Standard Architecture)バスなどの低速なバスを介してM/Bチップセット102に接続されたフロッピーディスクドライブ109及びキーボード/マウス110とを備える。
なお、図1は本実施の形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施の形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード104を設ける代わりに、ビデオメモリのみを搭載し、CPU101にてイメージデータを処理する構成としても良いし、ATA(AT Attachment)などのインターフェイスを介してCD−ROM(Compact Disc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)のドライブを設けても良い。
【0015】
図2は、図1に示したコンピュータ装置にて実現される本実施の形態によるXPath更新システムの構成を示す図である。
図2に示すように、本実施の形態によるXPath更新システムは、構造化文書の構造を解析する文書解析部10と、文書解析部10の解析結果に基づいて構造化文書に対してなされた変更を調べる差分計算部20と、差分計算部20の計算結果に基づいて指示情報としてのXPathの記述を更新するXPath更新部30とを備えている。
【0016】
上記の各構成要素は、図1に示したメインメモリ103に展開されたプログラムにてCPU101を制御することにより実現される仮想的なソフトウェアブロックである。CPU101を制御してこれらの機能を実現させる当該プログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記憶媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供される。本実施の形態では、図1に示したネットワークインターフェイス106やフロッピーディスクドライブ109、図示しないCD−ROMドライブなどを介して当該プログラムを入力し、ハードディスク105に格納する。そして、ハードディスク105に格納されたプログラムをメインメモリ103に読み込んで展開し、CPU101にて実行することにより、図2に示した各構成要素の機能を実現する。
また、処理対象である構造化文書やXPathは、例えばハードディスク105の所定の領域に格納されており、本実施の形態によるXPathの更新処理を実行するために、CPU101によって読み出される。
【0017】
図2に示した本実施の形態において、文書解析部10は、構造化文書を解析し、DOMツリーなどのツリー構造の形をしたデータ(以下、単にツリーと記す)に変換する。変換対象は、変更が行われた構造化文書における変更前後の各文書である。すなわち、文書解析部10は、ハードディスク105等の記憶手段に格納されている処理対象の構造化文書(変更が行われた構造化文書)に関して、変更前の文書(以下、変更前文書)Pと変更後の文書(以下、変更後文書)P’とを読み出して解析し、それぞれツリーT(変更前文書Pに対応)とツリーT’(変更後文書P’に対応)を生成し出力する。出力されたツリーT、T’は、メインメモリ103等の記憶手段に一時的に保持され、差分計算部20にて利用される。構造化文書のツリーを生成する変換アルゴリズムとしては、既存の従来技術を利用することができる。
【0018】
差分計算部20は、文書解析部10により変換された、変更前後の各構造化文書(ツリー)の差分を計算する。これにより、処理対象である構造化文書に対してなされた変更の内容が認識される。本実施の形態では、差分の計算方法として、後に行うXPathの更新に適した新規な方法を提案する。以下、この差分計算アルゴリズムについて説明する。
まず、前提として、従来の一般的な差分計算のアルゴリズムを説明する。2つのツリーの差分を計算するアルゴリズムとしては、従来から種々のアルゴリズムが提案されているが、典型的な差分計算アルゴリズムに、最小コスト操作列を算出するものがある。
【0019】
図16、17は、ツリーの差分計算の例を示す図である。
図16に示すように、ノードaを親とし、ノードb、c、dを子とするツリー構造で、ノードb、dの位置が入れ替わった2つのツリー161、162の差分を計算する場合を考える。なお、ツリーを変形する操作における処理コストは、基本操作である所定のノードを削除するRemoveNode、所定のノードを追加するInsertNode、ノードの内容を変更するModifyにおいて、それぞれ1とする。
このとき、最小コスト操作列を算出するアルゴリズムでは、ツリー161からツリー162へ変形するためには、ノードbの内容をノードdの内容に変更し(Modify(b→d))、ノードdの内容をノードbの内容に変更する(Modify(d→b))という操作が行われると計算する。これは、上記の処理コストの値から、処理コスト2でツリー161からツリー162へ変形することができ、これが最小の値だからである。
【0020】
また、図17に示すように、ノードaを親とし、ノードb、c、dを子とするツリー構造で、ノードc、dに対するノードbの位置が異なる2つのツリー171、172の差分を計算する場合を考える。
このとき、最小コスト操作列を算出するアルゴリズムでは、ツリー171からツリー172へ変形するためには、ツリー171からノードbを削除し(RemoveNode(b))、ツリー172における図示の位置にノードbを追加する(InsertNode(b))という操作が行われると計算する。これも、上記の処理コストの値から、最小の処理コスト2でツリー171からツリー172へ変形することができるためである。
【0021】
これに対し、本実施の形態では、この差分計算がXPathの自動更新のために行われることから、かかる最小コスト操作列を算出するアルゴリズムは好適な手法とは言えない。図16の例では、ツリー161に対してXPathがノードbを指していたと仮定すると、ノードの内容が(bからdへ)変更されたという情報のみでは、XPathの指示先を適切に変更することはできない。この例の場合、ツリー161からツリー162への変換は、ノードbとノードdとを入れ替えるように移動する操作が行われたと見ることができ、この情報に基づけば、ノードbを指すXPathの記述を適切に変更することが可能である。したがって、XPathを更新するための情報として用いるには、ツリー161からツリー162への変換を表す操作列は、ノードを移動する操作のMoveNodeを用いてMoveNode(b)、MoveNode(d)と表す方が適している。しかしながら、MoveNodeは、上述した基本操作RemoveNode、InsertNodeの組合せ(ノードを削除し、追加する操作)であるため、ツリー161からツリー162への変換に要するトータルコストは4となる。したがって、最小コスト操作列を算出するアルゴリズムではMoveNodeを検出することはできない。
【0022】
同様に、図17の例においても、ノードbを削除する操作またはノードbを追加する操作の一方の情報からXPathの指示先を適切に変更することはできない。そして、ツリー171からツリー172への変換は、ノードbをノードcの左からノードdの右へ移動する操作が行われたと見ることができ、この情報に基づけば、ノードbを指すXPathの記述を適切に変更することが可能である。したがって、ツリー171からツリー172への変換を表す操作列は、MoveNode(b)と表す方が適している。この例では、MoveNodeは、RemoveNode、InsertNodeの組合せであることからトータルコストは2で変わらない。しかし、最小コスト操作列を算出するアルゴリズムでMoveNodeを検出できる保証はなく、やはり本実施の形態には適さない。
なお、以上の考察は、サブツリー(ツリー中の部分的なツリー構造)を移動する操作のMoveTreeについても同様である。以下では簡単のため、個々のノードに対する処理についてのみ説明するが、同様の解析をMoveTreeに対しても行うことができるのは言うまでもない。
【0023】
以上のことを踏まえて、差分計算部20にて実行される、本実施の形態に好適な差分計算アルゴリズムを説明する。本実施の形態で用いられる差分計算アルゴリズムは、ツリーの変形において移動されたもの(ノードやサブツリー)を追跡することを方針とする。
図3乃至図6は、本実施の形態に好適な差分計算アルゴリズムによる処理を説明するフローチャートである。
差分計算部20は、メインメモリ103等の記憶手段に一時的に保持されている、変更前文書Pに対応するツリーTと変更後文書P’に対応するツリーT’とを入力し、基本操作である3つの操作RemoveNode、InsertNode及びModifyを用いて、ツリーTからツリーT’へ変形するために必要な操作を解析し、得られた操作列のリストLを生成する。この解析には、上述した最小コスト操作列を算出するアルゴリズムなど、既存の手法を用いることができる。生成された操作列のリストLは、メインメモリ103等の記憶手段に一時的に保持される。そして次に、差分計算部20は、メインメモリ103等に保持された操作列のリストLに対して図3乃至図6に示す解析を行って、MoveNodeを検出する。
【0024】
図3に示すInsertNode解析において、差分計算部20は、まずリストL中の所定のInsertNode(InsertNode(n))に着目する(ステップ301)。そして、着目したInsertNodeの対象ノード(図示の例ではノードn)と同一のノードに対する操作RemoveNodeがリストL中に存在するかどうかを調べる(ステップ302)。このとき、対応するRemoveNode(すなわち、RemoveNode(n))が存在しないならば、ノードnは、ツリーT’において新たに追加されたノードであるので、そのまま処理を終了する。
一方、RemoveNode(n)が存在する場合は、これとInsertNode(n)との組合せによりMoveNode(n)が構成されるので、リストLにMoveNode(n)を追加し(ステップ303)、リストLからInsertNode(n)とRemoveNode(n)とを削除する(ステップ304)。差分計算部20は、以上の処理をリストL中の全てのInsertNodeに対して行う。
【0025】
図4に示すRemoveNode解析において、差分計算部20は、まずリストL中の所定のRemoveNode(RemoveNode(n))に着目する(ステップ401)。そして、着目したRemoveNodeの対象ノード(図示の例ではノードn)と同一のノードに対する操作InsertNodeがリストL中に存在するかどうかを調べる(ステップ402)。このとき、対応するInsertNode(すなわち、InsertNode(n))が存在しないならば、ノードnは、ツリーT’において削除されたノードであるので、そのまま処理を終了する。
一方、InsertNode(n)が存在する場合は、これとRemoveNode(n)との組合せによりMoveNode(n)が構成されるので、リストLにMoveNode(n)を追加し(ステップ403)、リストLからRemoveNode(n)とInsertNode(n)とを削除する(ステップ404)。差分計算部20は、以上の処理をリストL中の全てのRemoveNodeに対して行う。
【0026】
図5及び図6に示すModify解析において、差分計算部20は、まずリストL中のノードn1の内容を変更する操作Modify(n1→nx)に着目する(ステップ501)。そして、反対にノードの内容をn1にする変更を行う操作Modify(ny→n1)がリストL中に存在するかどうかを調べる(ステップ502)。
Modify(ny→n1)が存在するならば、次にノードnxの内容とノードnyの内容とが同一(すなわち、nx=ny)かどうかを調べる(ステップ503)。nx=nyである場合、ノードn1とノードnx(=ny)の位置が入れ替わったと解釈できるので、リストLにMovenode(n1) 、Movenode(ny)を追加し(ステップ504)、リストLからModify(n1→nx)とModify(ny→n1)とを削除する(ステップ513)。
一方、nx=nyでない場合、ノードn1がツリーTにおけるノードnyのあった位置に移動し、当該ノードnyは削除され、元のノードn1の位置に他のノードnxが新たに追加されたと解釈できる。そこで、リストLにInsertNode(nx)、RemoveNode(ny)、Movenode(n1)を追加し(ステップ505)、さらに図3、4に示したInsertNode解析、RemoveNode解析を実行する(ステップ506)。この後、リストLからModify(n1→nx)とModify(ny→n1)とを削除する(ステップ513)。
【0027】
また、ステップ502でModify(ny→n1)が存在しない場合、次に差分計算部20は、ノードn1に対する操作InsertNode(n1)がリストL中に存在するかどうかを調べる(図6、ステップ507)。存在するならば、ノードn1が他の所定の位置に移動し、元のノードn1の位置に他のノードnxが新たに追加されたと解釈できる。そこで、リストLにInsertNode(nx)、Movenode(n1)を追加し(ステップ508)、さらに図3に示したInsertNode解析、を実行する(ステップ509)。この後、リストLからModify(n1→nx)とInsertNode(n1)とを削除する(図5、ステップ513)。
【0028】
さらに、ステップ507でInsertNode(n1)がリストL中に存在しない場合、次に差分計算部20は、ノードn1に対する操作RemoveNode(nx)がリストL中に存在するかどうかを調べる(図6、ステップ510)。存在するならば、ノードn1が削除され、同じ位置にノードnxが移動されたと解釈できる。そこで、リストLにRemoveNode(n1)、Movenode(nx)を追加し(ステップ511)、さらに図3に示したRemoveNode解析、を実行する(ステップ512)。この後、リストLからModify(n1→nx)とRemoveNode(nx)とを削除する(図5、ステップ513)。
【0029】
ステップ510においてRemoveNode(nx)がリストL中に存在しない場合、単にノードn1の内容がnxに変更されたと解釈できるので、そのまま処理を終了する。差分計算部20は、以上の処理をリストL中の全てのModifyに対して行う。
以上のようにして、ツリーT、T’の差分が計算される。得られた差分データは、メインメモリ103等の記憶手段に一時的に保持され、XPath更新部30にて利用される。上記の3種類の解析にて実現されるように、本実施の形態では、ツリーTからツリーT’への変形において、ノードの移動として解釈できる操作はできるだけ移動操作moveとして検出することにより、後のXPathの更新処理に利用できるようにする。
【0030】
XPath更新部30は、差分計算部20によるツリーTとツリーT’との差分の計算結果と、変更前文書Pに対応するXPath(以下、XPath(P)と記す)とを入力し、これらに基づいて変更後文書P’に対応するXPath(以下、XPath(P’)と記す)を生成し出力する。
図7は、XPath更新部30の機能構成を説明する図である。
図7を参照すると、指示情報生成手段であるXPath更新部30は、XPathを解釈する機能(XPath解釈器31)と、変更前後の構造化文書におけるノードの対応に関する情報を保持する機能(ノード対応表32)と、XPathを生成する機能(XPath生成器33)とを備える。そして、メインメモリ103やハードディスク105等の記憶手段から処理対象である更新前文書P、更新後文書P’、更新前文書Pと更新後文書P’との間の差分D、XPath(P)を入力し、上記の各機能を用いてXPath(P’)を生成する。生成されたXPath(P’)は、ハードディスク105等の記憶手段に格納される。
【0031】
以下、XPath更新部30によるXpathの更新処理を詳細に説明する。
図8は、更新前文書Pと更新後文書P’との間のノード対応関係を示す図である。
XPath(P)は、各パスの階層(ロケーションステップ:LocationStep)Ls(i)(i=0、1、2、・・・、n)によって構成される。更新前文書Pにおいて、ロケーションステップLs(i)の指示対象となるノードの集合(ノードセット:NodeSet)S(i)が、XPath解釈器31の処理によって計算される。同様に、更新後文書P’において、ロケーションステップLs(i)の指示対象となるノードセットS(i)’が計算される。
一方、更新前文書P、更新後文書P’、更新前文書Pと更新後文書P’との間の差分Dから、更新前文書Pと更新後文書P’との間のノード対応関係を表すノード対応表32が作成される。作成されたノード対応表32は、図1に示したコンピュータ装置におけるCPUの101のレジスタやメインメモリ103等に保持される。ノード対応表32の例を図10に示す。図示のノード対応表32によれば、例えば、更新前文書PのノードN0が更新後文書P’のノードN'0に対応しており、更新前文書PのノードN0は更新後文書P’に対応するノードがない(すなわち構造化文書の変更によって削除された)ことがわかる。
【0032】
このノード対応表32と、更新前文書PにおけるロケーションステップLs(i)の指示対象であるノードセットS(i)とに基づいて、ノードセットS(i)”が求まる。
図9は、ノードセットS(i)とノードセットS(i)”との対応関係を示す図である。
ノードセットS(i)’とノードセットS(i)”との違いは、ノードセットS(i)’が単純にパスのパターンを更新後文書P’に適用させて求めたノードセットであるのに対し、ノードセットS(i)”は、差分情報により変更を追跡して求めたノードセットであるということである。また、ノードセットS(i)’、S(i)”ともに変更後文書P’におけるノードセットである。
【0033】
次に、XPath生成器33により、このノードセットS(i)’、S(i)”を比較して、XPath(P)におけるロケーションステップLs(i)を更新する。更新処理の詳細は後述する。この手順をi=0〜nまで繰り返すことによりロケーションステップLs(j)’(j=0,1,2...m)を得る。このロケーションステップLs(j)’は直接、更新されたXPath(P’)を表す。
図11は、XPath生成器33によるXPath(ロケーションステップ)の生成手順を示すフローチャートである。
図11を参照すると、XPath生成器33は、まず、ノードセットS(i)’、S(i)”を比較する(ステップ1101)。そして、ノードセットS(i)’とノードセットS(i)”とが等しいか、またはノードセットS(i)’がノードセットS(i)”に含まれるのであれば、ロケーションステップLs(i)は変更する必要はなく、そのままロケーションステップLs(j)’として出力する(ステップ1102、1103)。
一方、ノードセットS(i)”がノードセットS(i)’に含まれる場合、XPath生成器33は、次にロケーションステップLs(j-1)’で示されるノードから、ノードセットS(i)”に含まれる各ノードへのロケーションステップを生成する(ステップ1103、1104)。
以上のようにして、変更後文書P’に対応したロケーションステップが生成され、XPath(P)がXPath(P’)へ更新される。
【0034】
ところで、XPathの表記方法によっては、ステップ1104で生成されたロケーションステップを、所定の一般化ルールに基づいて一般化することにより、簡明な表現に集約することができる。もし、用意された一般化ルールによってはロケーションステップLs(j)’が生成できない場合は、警告を知らせるウィンドウや修正を促すウィンドウを表示するなど、エラー処理を行うと共に、ステップ1104で生成されたロケーションステップをそのまま出力することができる。
なお、ステップ1104におけるロケーションステップの生成は、例えば、下記文献1に開示された既知の戦略によって行うことができる。また、上記のロケーションステップの集約は、例えば、下記文献2に開示された既知の戦略によって行うことができる。
文献1:2001/11/08: A Visual Approach to Authoring XPath Expressions Accepted for Markup Languages: Theory and Practice, Vol.3, No.2 (to appear). This is a paper originally published in the Proceedings Extreme Markup Languages 2001, pp.1-15, Montreal, Canada (14-17, August 2001).
http://ares.trl.ibm.com/freedom/doc/extml2001/abe0114.html
文献2:2001/07/13: XSLT Stylesheet Generation by Example with WYSIWYG Editing Accepted for the presentation at International Symposium on Applications and the Internet (SAINT 2002)
http://ares.trl.ibm.com/freedom//doc/saint2002/saint2002.html
【0035】
次に、具体的なツリーの変形例に基づいてXPathの更新方法を説明する。
図12乃至図14は、更新前文書Pと更新後文書P’の例を示す図である。なお、図には当該構造化文書P、P’のツリー構造が記載されている。
図12を参照すると、変更前文書Pは、ルートノードaが3つの子ノードbを持ち、そのうちの一番左のノードbが2つの子ノードcを持ち、そのうちの右側のノードcが子ノードbを持つツリー構造となっている。これに対し、変更後文書P’は、ノードcの下に位置するノードbがノードaの子に移動した構造となっている。
【0036】
ここで、変更前文書Pに対して、ノードaの子の2つのノードbを指すXPath(P)「/a/b」が存在するものとする。「/a/b」という表現は、ノードaの子にある全てのノードbを指す。変更前文書Pが変更後文書P’に変更された場合、この「/a/b」をそのまま用いると、変更後文書P’においてノードaの子にある4つのノードbを指すこととなる。しかし、変更によってノードaの子に移動したノードbは、変更前文書Pにおいても存在し、かつこの時点では「/a/b」によっては指されていないノードであったので、変更後文書P’においても「/a/b」によって指されるべきではない。
【0037】
本実施の形態においてXPath更新部30は、差分計算部20により計算された差分Dに基づいて作成されたノード対応表32により、図13に示すように、変更前文書PにおいてXPath(P)に指されていた3つのノードbが変更後文書P’における4つのノードbのうち左から数えて1番目から3番目までのノードbであることがわかる。そこで、XPath生成器33により、これらのノードb(すなわち変更前文書Pにおいても同じ位置に存在したノードb)のみを指すように、XPath(P’)を生成する。すなわち、「/a/b」という表現を「/a/b[position() >= 3]」という表現に更新する。
【0038】
また、図14を参照すると、図12と同様の変更前文書Pに対し、変更後文書P’は、ノードaの子の3つのノードbのうち、1つが削除されている。この場合、変更後文書P’において「/a/b」という表現で指し示されるノードの集合は、変更前文書Pにおいてかかる表現で指し示されるノードの集合に含まれる。すなわち、余分なノードを指してはいない。したがって、XPathの表現は変更する必要はない。なお、本実施の形態を用いた実施態様によっては、変更後文書P’において、指示するノードbの1つが削除されたことをユーザに通知するようにしても良い。
【0039】
以上説明したように、本実施の形態は、構造化文書が変更された場合に、変更前後の構造化文書の差分を検出し、これに基づいて対応するXPathを自動的に更新することを実現する。しかしながら、実際には、構造化文書やXPathを用いたシステムの開発者等の意図通りにXPathが更新されるとは限らない。また、XPathが自動的に更新された後、さらに修正を施したいと考える場合もあり得る。そこで、対話的に処理を進めるXPath更新ツールとして実施することも可能である。
図15は、このようなXPath更新ツールを備えたアノテーションシステムの例を示す図である。
図15において、アノテーションサーバ1500は、本実施の形態による文書解析部10、差分計算部20及びXPath更新部30に相当する機能を備えるものとする。これらの機能は、アノテーションサーバ1500を構成するコンピュータシステムにおいて、プログラム制御されたCPUの機能として実現される。アノテーション開発者が操作するコンソール1510のディスプレイ装置には、処理対象である構造化文書(例えばHTML文書)1511とXPathを更新するための対話用ウィンドウ1512とが表示されている。
【0040】
アノテーションサーバ1500は、自身の管理下でアノテーションを付した所定の構造化文書1511が変更されると、コンソール1510のディスプレイに変更前後の構造化文書1511を表示すると共に、対話用ウィンドウ1512を表示して、この構造化文書1511の変更に応じてXPathを更新するかどうかをアノテーション開発者に問い合わせる。そして、対話用ウィンドウ1512の「Yes」ボタンがクリックされたならば、アノテーションサーバ1500の文書解析部10、差分計算部20及びXPath更新部30に相当する機能により、XPathが自動的に更新される。また、「Delete」ボタンがクリックされたならば、当該XPathが削除され、構造化文書1511のアノテーションが消去されることとなる。さらに、構造化文書1511において単に削除されたり変更されたりしたエレメント(ノード)に対するXPathは、参照不可能となる。この場合、アノテーションを付けたエレメントが削除されたことをアノテーション開発者に通知し、当該アノテーションを他のエレメントに付するかどうかを訪ねるメッセージを出力させるようにしても良い。
【0041】
なお、以上の説明においては、XPathを用いてXMLやHTMLなどの構造化文書の要素を指示する場合について説明したが、本実施の形態は、XPath以外の任意の手段を用いて構造化文書の要素を指示する場合にも応用することが可能である。すなわち、構造化文書が変更された場合、本実施の形態に示した差分計算部20に相当する機能にて当該構造化文書の変更前後の差分を取り、当該構造化文書の要素を指示する手段(指示情報等)に応じた変形を行うことにより、かかる構造化文書の変更に対応してその要素の指示内容を適切に更新することが可能である。
【0042】
【発明の効果】
以上説明したように、本発明によれば、構造化文書中の所定の要素が指示されている場合に、この構造化文書が変更されても所望の要素を適切に指示し続けることができる。
また、本発明によれば、XPathを用いて所定の要素が指示されている構造化文書が変更された場合に、この構造化文書の変更に応じてXPathを自動的に更新する手段を提供することができる。
【図面の簡単な説明】
【図1】 本実施の形態によるXPath更新方法を実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図2】 図1に示したコンピュータ装置にて実現される本実施の形態によるXPath更新システムの構成を示す図である。
【図3】 本実施の形態に好適な差分計算アルゴリズムによる処理を説明するフローチャートであり、InsertNode解析を説明する図である。
【図4】 本実施の形態に好適な差分計算アルゴリズムによる処理を説明するフローチャートであり、RemoveNode解析を説明する図である。
【図5】 本実施の形態に好適な差分計算アルゴリズムによる処理を説明するフローチャートであり、Modify解析を説明する図である。
【図6】 本実施の形態に好適な差分計算アルゴリズムによる処理を説明するフローチャートであり、Modify解析を説明する図である。
【図7】 本実施の形態におけるXPath更新部の機能構成を説明する図である。
【図8】 本実施の形態における更新前文書Pと更新後文書P’との間のノード対応関係を示す図である。
【図9】 本実施の形態におけるノードセットS(i)とノードセットS(i)”との対応関係を示す図である。
【図10】 本実施の形態にて用いられるノード対応表の例を示す図である。
【図11】 本実施の形態のXPath生成器によるXPathの生成手順を示すフローチャートである。
【図12】 更新前文書Pと更新後文書P’の例を示す図である。
【図13】 更新後文書P’に対応させてXPathを更新した様子を示しす図である。
【図14】 更新前文書Pと更新後文書P’の他の例を示す図である。
【図15】 本実施の形態を用いたXPath更新ツールを備えたアノテーションシステムの例を示す図である。
【図16】 一般的なツリーの差分計算の例を示す図である。
【図17】 一般的なツリーの差分計算の他の例を示す図である。
【図18】 XML文書の例を示す図である。
【符号の説明】
10…文書解析部、20…差分計算部、30…XPath更新部、31…XPath解釈器、32…ノード対応表、33…XPath生成器、101…CPU、102…M/Bチップセット、103…メインメモリ、105…ハードディスク

Claims (13)

  1. コンピュータによるデータ処理方法であって、
    前記コンピュータの差分計算手段が、構造化文書である更新前文書および当該更新前文書を更新して得られた更新後文書のツリー構造データを比較し、当該更新前文書のツリー構造データから当該更新後文書のツリー構造データに変形するための操作をツリー構造の構成要素に対する所定の操作の組合せで表現した操作列のリストを作成し、メモリに格納する第1のステップと、
    前記差分計算手段が、前記メモリから前記操作列のリストを読み出し、当該操作列のリストのうちで、前記構成要素の移動として把握できる操作列を移動の操作に変更してメモリに格納する第2のステップと、
    前記コンピュータの指示情報更新手段が、
    前記メモリから操作列の変更後の前記操作列のリストを読み出し、
    当該リストと前記更新前文書のツリー構造データおよび前記更新後文書のツリー構造データとに基づいて、前記更新前文書のツリー構造データの構成要素と前記更新後文書のツリー構造データの構成要素との対応関係を示す対応情報を作成し、
    当該更新前文書のツリー構造データの構成要素を指示する指示情報により指示される当該更新前文書のツリー構造データの構成要素を求め、
    当該対応情報と当該指示情報により指示される当該更新前文書のツリー構造データの構成要素の情報とに基づいて、当該指示情報により指示される当該更新前文書のツリー構造データの構成要素に対応する更新後文書のツリー構造データの構成要素を求め、
    当該更新後文書のツリー構造データの構成要素を指示する当該指示情報の要素を再生成することにより、当該更新後文書のツリー構造データの構成要素を指示する指示情報を生成する第3のステップと、
    を含むことを特徴とするデータ処理方法。
  2. 前記指示情報は、XPathで記述され、
    前記指示情報更新手段による前記第3のステップでは、操作列の変更後の前記操作列のリストと前記更新前文書に対する前記指示情報であるXPathとに基づいて、XPathを構成する要素であるロケーションステップを再生成することにより、前記更新後文書に対する前記指示情報であるXPathを生成することを特徴とする請求項1に記載のデータ処理方法。
  3. 前記差分計算手段による前記第1のステップでは、前記ツリー構造データを変形するための操作を、ツリー構造のノードまたはサブツリーの追加、削除、変更の組合せで表現した操作列のリストを作成することを特徴とする請求項1または請求項2に記載のデータ処理方法。
  4. 処理対象の構造化文書を解析し、当該構造化文書の要素を指示する指示情報を生成する指示情報生成システムであって、
    前記構造化文書である更新前文書および当該更新前文書を更新して得られた更新後文書のツリー構造データを比較し、当該更新前文書のツリー構造データから当該更新後文書のツリー構造データに変形するための操作をツリー構造の構成要素に対する所定の操作の組合せで表現した操作列を求め、求まった当該操作列のうちで当該構成要素の移動として把握できる操作列を当該構成要素の移動の操作に変換することにより、当該更新前文書と当該更新後文書の差分を求める差分計算部と、
    変換された前記操作列と前記更新前文書のツリー構造データおよび前記更新後文書のツリー構造データとに基づいて、前記更新前文書のツリー構造データの構成要素と前記更新後文書のツリー構造データの構成要素との対応関係を示す対応情報を作成し、当該更新前文書のツリー構造データの構成要素を指示する指示情報により指示される当該更新前文書のツリー構造データの構成要素を求め、当該対応情報と当該指示情報により指示される当該更新前文書のツリー構造データの構成要素の情報とに基づいて、当該指示情報により指示される当該更新前文書のツリー構造データの構成要素に対応する更新後文書のツリー構造データの構成要素を求め、当該更新後文書のツリー構造データの構成要素を指示する当該指示情報の要素を再生成することにより、当該更新後文書のツリー構造データの構成要素を指示する指示情報を生成する指示情報生成部と、
    を備えることを特徴とする指示情報生成システム。
  5. 構造化文書の構造を解析してツリー構造データに変換する文書解析部をさらに備え、
    前記差分計算部は、前記文書解析部にて変換された前記更新前文書および前記更新後文書のツリー構造データを比較して差分を計算することを特徴とする請求項4に記載の指示情報生成システム。
  6. 前記指示情報は、XPathで記述され、
    前記指示情報生成部は、前記更新前文書と前記更新後文書との差分と、当該更新前文書に対する前記指示情報であるXPathとに基づいて、XPathを構成する要素であるロケーションステップを再生成することにより、当該更新後文書に対する前記指示情報であるXPathを生成することを特徴とする請求項4または請求項5に記載の指示情報生成システム。
  7. コンピュータを、
    構造化文書である更新前文書および当該更新前文書を更新して得られた更新後文書のツリー構造データを比較し、当該更新前文書のツリー構造データから当該更新後文書のツリー構造データに変形するための操作をツリー構造の構成要素に対する所定の操作の組合せで表現した操作列を求め、求まった当該操作列のうちで当該構成要素の移動として把握できる操作列を当該構成要素の移動の操作に変換することにより、当該更新前文書と当該更新後文書の差分を求める差分計算手段と、
    変換された前記操作列と前記更新前文書のツリー構造データおよび前記更新後文書のツリー構造データとに基づいて、前記更新前文書のツリー構造データの構成要素と前記更新後文書のツリー構造データの構成要素との対応関係を示す対応情報を作成し、当該更新前文書のツリー構造データの構成要素を指示する指示情報により指示される当該更新前文書のツリー構造データの構成要素を求め、当該対応情報と当該指示情報により指示される当該更新前文書のツリー構造データの構成要素の情報とに基づいて、当該指示情報により指示される当該更新前文書のツリー構造データの構成要素に対応する更新後文書のツリー構造データの構成要素を求め、当該更新後文書のツリー構造データの構成要素を指示する当該指示情報の要素を再生成することにより、当該更新後文書のツリー構造データの構成要素を指示する指示情報を生成する指示情報生成手段として、機能させることを特徴とするプログラム。
  8. 前記コンピュータを、さらに前記構造化文書をツリー構造データに変換する文書解析手段として機能させ、
    前記差分計算手段の処理として、前記コンピュータに、変換された前記更新前文書および前記更新後文書のツリー構造データを比較して差分を計算させることを特徴とする請求項7に記載のプログラム。
  9. 前記指示情報は、XPathで記述され、
    前記指示情報生成手段による処理として、前記コンピュータに、前記更新前文書と前記更新後文書との差分と、当該更新前文書に対する前記指示情報であるXPathとに基づいて、XPathを構成する要素であるロケーションステップを再生成することにより、当該更新後文書に対する前記指示情報であるXPathを生成する処理を実行させることを特徴とする請求項7または請求項8に記載のプログラム。
  10. コンピュータに、
    構造化文書である更新前文書および当該更新前文書を更新して得られた更新後文書のツリー構造データを比較し、当該更新前文書のツリー構造データから当該更新後文書のツリー構造データに変形するための操作をツリー構造の構成要素に対する所定の操作の組合せで表現した操作列のリストを作成し、メモリに格納する第1の処理と、
    前記メモリから前記操作列のリストを読み出し、当該操作列のリストのうちで、前記構成要素の移動として把握できる操作列を移動の操作に変更し、当該構成要素およびその移動の操作の情報をメモリに格納する第2の処理と、
    前記メモリから前記構成要素およびその操作の情報を読み出し、当該情報と前記更新前文書のツリー構造データおよび前記更新後文書のツリー構造データとに基づいて、前記更新前文書のツリー構造データの構成要素と前記更新後文書のツリー構造データの構成要素との対応関係を示す対応情報を作成し、当該更新前文書のツリー構造データの構成要素を指示する指示情報により指示される当該更新前文書のツリー構造データの構成要素を求め、当該対応情報と当該指示情報により指示される当該更新前文書のツリー構造データの構成要素の情報とに基づいて、当該指示情報により指示される当該更新前文書のツリー構造データの構成要素に対応する更新後文書のツリー構造データの構成要素を求め、当該更新後文書のツリー構造データの構成要素を指示する当該指示情報の要素を再生成することにより、当該更新後文書のツリー構造データの構成要素を指示する指示情報を生成する第3の処理と
    を実行させることを特徴とするプログラム。
  11. 前記第2の処理では、前記操作列のリスト中に、前記ツリー構造データにおける同一の構成要素を削除する操作と追加する操作とが存在する場合に、これらの操作に替えて当該構成要素を移動する操作を当該操作列のリストに加える処理を前記コンピュータに実行させることを特徴とする請求項10に記載のプログラム。
  12. 前記第2の処理では、前記操作列のリスト中に、前記ツリー構造データにおける所定の構成要素を変更する操作が存在する場合に、所定の規則に基づいて、当該操作を構成要素の移動を含む別の操作に置き替える処理を前記コンピュータに実行させることを特徴とする請求項10または請求項11に記載のプログラム。
  13. 所定のHTML文書に対して設定されたアノテーションデータを管理するアノテーションサーバにおいて、
    アノテーションデータが設定された前記HTML文書が更新された場合に、更新前後の当該HTML文書を比較し、更新前のHTML文書から更新後のHTML文書に変形するための操作をHTML文書の構成要素に対する所定の操作の組み合わせで表現した操作列のリストを作成し、当該操作列のリストのうちで、前記構成要素の移動として把握できる操作列を移動の操作に変更する変換することにより、当該2つのHTML文書の差分を求める差分計算手段と、
    前記操作列のリストと前記更新前のHTML文書および前記更新後のHTML文書とに基づいて、前記更新前のHTML文書の構成要素と前記更新後のHTML文書の構成要素との対応関係を示す対応情報を作成し、当該更新前のHTML文書に対するXPathにより指示される当該更新前のHTML文書の構成要素を求め、当該対応情報と当該XPathにより指示される当該更新前のHTML文書の構成要素の情報とに基づいて、当該XPathにより指示される当該更新前のHTML文書の構成要素に対応する更新後のHTML文書の構成要素を求め、
    当該更新後のHTML文書の構成要素を指示する当該XPathのロケーションステップを再生成することにより、当該更新後のHTML文書の構成要素を指示するXPathを生成するXPath更新手段と、
    を備えることを特徴とするアノテーションサーバ。
JP2002206202A 2002-07-15 2002-07-15 データ処理方法、これを用いた指示情報生成システム及びプログラム Expired - Fee Related JP4418620B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002206202A JP4418620B2 (ja) 2002-07-15 2002-07-15 データ処理方法、これを用いた指示情報生成システム及びプログラム
US10/612,786 US7530014B2 (en) 2002-07-15 2003-07-02 Data processing and difference computation for generating addressing information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002206202A JP4418620B2 (ja) 2002-07-15 2002-07-15 データ処理方法、これを用いた指示情報生成システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2004046745A JP2004046745A (ja) 2004-02-12
JP4418620B2 true JP4418620B2 (ja) 2010-02-17

Family

ID=31711291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002206202A Expired - Fee Related JP4418620B2 (ja) 2002-07-15 2002-07-15 データ処理方法、これを用いた指示情報生成システム及びプログラム

Country Status (2)

Country Link
US (1) US7530014B2 (ja)
JP (1) JP4418620B2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
EP2458511A3 (en) * 2000-06-21 2014-08-13 Microsoft Corporation System and method for integrating spreadsheets and word processing tables
US7624356B1 (en) 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7275216B2 (en) 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7296017B2 (en) 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7451392B1 (en) 2003-06-30 2008-11-11 Microsoft Corporation Rendering an HTML electronic form by applying XSLT to XML using a solution
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
EP1510942A1 (en) * 2003-08-27 2005-03-02 Hewlett-Packard Development Company, L.P. Compatibility of tree-structured data
US8819072B1 (en) * 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7958132B2 (en) * 2004-02-10 2011-06-07 Microsoft Corporation Voting based scheme for electronic document node reuse
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US20060074933A1 (en) * 2004-09-30 2006-04-06 Microsoft Corporation Workflow interaction
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7721190B2 (en) 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7904801B2 (en) 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7725834B2 (en) 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7761786B2 (en) * 2005-12-06 2010-07-20 International Business Machines Corporation Reusable XPath validation expressions
US7505994B2 (en) * 2005-12-28 2009-03-17 Microsoft Corporation XPath expression binding using XPath tracker with dynamic or static path evaluation
US9183321B2 (en) * 2006-10-16 2015-11-10 Oracle International Corporation Managing compound XML documents in a repository
WO2009152499A2 (en) * 2008-06-13 2009-12-17 Skribel, Inc. Methods and systems for handling annotations and using calculation of addresses in tree-based structures
WO2010147114A1 (ja) * 2009-06-15 2010-12-23 日本電気株式会社 検索式生成システム
WO2011108618A1 (ja) * 2010-03-01 2011-09-09 日本電気株式会社 検索式更新装置、検索式更新方法
JP5712496B2 (ja) * 2010-03-29 2015-05-07 富士通株式会社 アノテーション復元方法、アノテーション付与方法、アノテーション復元プログラム及びアノテーション復元装置
US9262390B2 (en) * 2010-09-02 2016-02-16 Lexis Nexis, A Division Of Reed Elsevier Inc. Methods and systems for annotating electronic documents
US9720675B2 (en) * 2010-10-27 2017-08-01 Hewlett Packard Enterprise Development Lp Version mismatch delay and update for a distributed system
JP5765452B2 (ja) * 2014-01-20 2015-08-19 富士通株式会社 アノテーション付与復元方法及びアノテーション付与復元装置
JP6357827B2 (ja) * 2014-03-26 2018-07-18 日本電気株式会社 キャッシュ更新制御装置、キャッシュ更新制御方法、及び、キャッシュ更新制御プログラム
US10025762B2 (en) * 2016-06-10 2018-07-17 International Business Machines Corporation Generating a document object model (DOM) differential

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10307818A (ja) * 1997-05-08 1998-11-17 Nec Corp 文書変換システム、文書変換方法および文書変換用プログラムを記録した記録媒体
US6785673B1 (en) * 2000-02-09 2004-08-31 At&T Corp. Method for converting relational data into XML
US6826726B2 (en) * 2000-08-18 2004-11-30 Vaultus Mobile Technologies, Inc. Remote document updating system using XML and DOM
US20020054090A1 (en) * 2000-09-01 2002-05-09 Silva Juliana Freire Method and apparatus for creating and providing personalized access to web content and services from terminals having diverse capabilities
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing

Also Published As

Publication number Publication date
JP2004046745A (ja) 2004-02-12
US20040088652A1 (en) 2004-05-06
US7530014B2 (en) 2009-05-05

Similar Documents

Publication Publication Date Title
JP4418620B2 (ja) データ処理方法、これを用いた指示情報生成システム及びプログラム
JP5613118B2 (ja) 変換規則生成支援装置、方法、およびプログラム
US20080263101A1 (en) Data Processing Device and Data Processing Method
JP2004234354A (ja) 構造パターン候補を生成する方法、システムおよびプログラム
US20090021767A1 (en) Document processing device
JP2008097215A (ja) データ処理装置
EP1768034A1 (en) Document processing device and document processing method
EP1744255A1 (en) Document processing device and document processing method
WO2006051869A1 (ja) 文書処理装置及び文書処理方法
JPWO2006051712A1 (ja) 文書処理装置及び文書処理方法
JPWO2006051716A1 (ja) 文書処理装置及び文書処理方法
EP1744256A1 (en) Document processing device and document processing method
EP1744253A1 (en) Document processing device and document processing method
WO2006051974A1 (ja) 文書処理装置および文書処理方法
EP1821220A1 (en) Data processing device, document processing device, and document processing method
JPWO2007052680A1 (ja) 文書処理装置及び文書処理方法
JP3788956B2 (ja) 構造化文書表示方法、構造化文書表示装置及びプログラム
WO2006001393A1 (ja) 文書処理方法および装置
JP2007183849A (ja) 文書処理装置
JPWO2006051717A1 (ja) 文書処理装置及び文書処理方法
US20070240036A1 (en) Document Processing Device and Document Processing Method
US20090199084A1 (en) Document processing device and document processing method
JP4719743B2 (ja) グラフ処理装置
WO2006118287A1 (ja) 文書処理装置及び文書処理方法
JP2009223882A (ja) データ処理装置及びデータ処理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050303

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060131

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060203

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091023

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20091126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091130

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121204

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121204

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131204

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees