JP4236055B2 - 構造化文書処理装置、方法、プログラム - Google Patents

構造化文書処理装置、方法、プログラム Download PDF

Info

Publication number
JP4236055B2
JP4236055B2 JP2005374990A JP2005374990A JP4236055B2 JP 4236055 B2 JP4236055 B2 JP 4236055B2 JP 2005374990 A JP2005374990 A JP 2005374990A JP 2005374990 A JP2005374990 A JP 2005374990A JP 4236055 B2 JP4236055 B2 JP 4236055B2
Authority
JP
Japan
Prior art keywords
automaton
state transition
structured document
document
state
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
JP2005374990A
Other languages
English (en)
Other versions
JP2007179170A (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 JP2005374990A priority Critical patent/JP4236055B2/ja
Priority to CNB2006101647029A priority patent/CN100495401C/zh
Priority to US11/567,242 priority patent/US7707491B2/en
Publication of JP2007179170A publication Critical patent/JP2007179170A/ja
Priority to US12/061,747 priority patent/US8181105B2/en
Application granted granted Critical
Publication of JP4236055B2 publication Critical patent/JP4236055B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、構造化文書処理装置、方法、プログラムに関する。更に詳しくは、電子データ化された構造化文書の構文解析処理を高速化する構造化処理装置、処理方法、および処理プログラムに関する。
近年、オブジェクト指向技術の発展に伴い電子データ化された構造化文書は様々な分野で利用されている。特に、インターネットの普及、Webサービスの進歩によって、構造化文書の一つであるXML(Extensible Markup Language)はますます普及してきている。XMLは、SOA(Service Oriented Architecture)や、グリッド・コンピューティングなどのソフトウェア基盤上でも広く使われ、それを処理するXMLパーサ(XMLプロセッサともいう)がいくつかのベンダから提供されている。XMLパーサは、XML文書を構文解析し、アプリケーションがXML文書を利用しやすくするための処理を行うためのXMLの基本技術であり、XMLの更なる性能向上を追及することは極めて重要である。
そこで、特許文献1のように解析済み構造化文書とこれから解析しようとする構造化文書の差分解析に基づいてXMLパーサの処理を高速化する試みがなされている。特許文献1にて発案されたXMLパーサの高速化はメッセージの類似性を利用している。ここで、類似性を検知する機構としてはオートマトンを採用し、実行時にXML文書から動的に状態遷移列(オートマトン)を形成する。また、バイト列レベルでの比較を行うことで効率的かつ高速にメッセージを比較し、差分だけを処理することで高速化を実現している。
特願2004−314713号
本発明では、特許文献1において提案されたXMLパーサ(以下、Deltarserと呼ぶ)の更なる向上を目指すために、以下の課題を解決することを目的とする。
Deltarserで提案されたオートマトンは、SAX(Simple Application Program Interface for XML)イベントの粒度で状態が定義され、その状態遷移列(状態遷移図情報)として形成される。ここで、SAXイベントは、XML文書を解析しながら、要素(Element)の始まりや終わりなどを検出するごとにアプリケーション・プログラムに対してイベントを通知するインターフェイスである。
しかし、上記の状態遷移はバイト列比較と比べるとコスト(時間)がかかる処理であり、従来の手法では状態数または遷移数の増大による性能低下が見られる。状態遷移を定義する上で状態の粒度が細かければ、バイト列比較のときの成功率が高くなるが、その反面、ドキュメント全体にかかるバイト列比較の時間は増大する。よって、高速なXMLパーサを構築するために、如何に最適な粒度で状態を定義し、オートマトンを形成するかが課題である。
また別の課題は、差分解析のために必要なオートマトンの新たな状態列を作るコストである。状態を作る際には、部分処理するために必要なコンテキストを保存する、バイト列のコピーをする、などを伴いそのコストがオーバヘッドとなる。よって、如何に実行時に新しい状態遷移を作ることを避けるかが課題となる。
上述の本発明が解決する課題を更に詳しく述べる。
<状態遷移数の増加による性能低下>
特許文献1の発明では、オートマトンの構成方法としては、SAXイベントを一つの状態として表現していた。図1のグラフは、状態遷移数に伴う処理時間の変化を実験により計測したグラフである。図1は、同一のドキュメント(64KBのファイルサイズ)を用意し、構成する状態数(x軸)を変化させたときの、バイト列マッチングにかかる平均処理時間(ms)を示す。このグラフからわかるように、状態遷移数が多いほど、処理時間が単調に増加することがわかる。例えば、空白を一つの状態として表現したときと、空白を他の状態に統合した場合は、状態数が12000から8000と4000程少なくなり、バイト列マッチングだけにかかるコストも3.25(ms)から2.4(ms)とその性能差は約30%になる。この実験からもわかるように、状態遷移は少なければ少ないほど差分処理によるオーバヘッドが少ない。
しかし、逆に状態数が少なければいいというものではない。状態数が少ないと、それだけ、ミスマッチの確率が高くなり、結果として状態を新たに作るコストがオーバヘッドとなる。状態遷移数をできるだけ少なく、かつマッチするようなオートマトンに最適化していくことが重要である。
<状態遷移を作るコストが大きい>
特許文献1の発明は、構造化文書間の差分解析を行うことによって高速化されたXMLパーサであるDeltarserの基本処理を開示したものである。Deltarserは、差分検出を効率的に行うために、ドキュメント(文書)から実行時に動的にオートマトンを生成する。ここで、オートマトンの一つの状態遷移はSAXイベントの単位であるが、通常のXMLパーサの処理と比較して、状態を作るコストは高く、その処理が頻繁に起こらないようにすることが全体としての性能向上につながる。
図2は、横軸に解析するXML文書数、縦軸に解析時間をとって、Deltarserと既存のXMLパーサ(XercesやPiccolo)を比較したものである。例えば、DeltarserとXercesを比較すると、入力数が25を超えるまでは、Xercesの方が高速であることがわかる。スキーマ情報を用いて、あらかじめオートマトンを構築することができれば、この部分のコストを削減し、全域でDeltarserの優位性を示すことが可能になる。
以上に述べた課題を解決すべく、本発明ではインスタンス文書の統計情報と、スキーマ情報を用いることによるオートマトンの最適化手法を提案する。スキーマ情報は、あらかじめ状態遷移列を作るのに要するコストを削減でき、更にオートマトンの状態数/遷移数を最適化することができる。これらの最適化によってXMLパーサなどの構文解析処理を高速化することができる。
なお、構造化文書の例としては、XMLの他、XHTML(Extensible Hyper Text Markup Language)、SGML(Standard Generalized Markup Language)があげられる。
具体的には以下の解決手段を有する構造化文書の処理装置、処理方法、処理プログラムを提供する。これらの装置、方法、プログラムは実施形態が異なるのみで実質的な技術内容は同一であるので、以下では代表して構造化文書処理装置における解決手段について説明する。
(1)電子データ化された構造化文書を構文解析する構造化文書処理装置であって、本装置は、オートマトン生成部によって、構造化文書を区分化可能とする複数の状態の状態遷移列を生成する。この状態遷移列(オートマトン)の生成の際、構造化文書の実体であるインスタンス文書の統計情報を用いて状態遷移状態列における遷移状態の統合と前記統計情報を用いて遷移状態の反復的要素が出現する回数のパターンを統計的に求めるインスタンス文書解析部を本装置は備える。また、本装置は構造化文書から状態遷移列を生成の際、構造化文書の情報の構造や形式を定義するスキーマ情報を用いて状態遷移列における状態遷移の統合を行うスキーマ情報解析部を備える。更に、インスタンス文書解析部とスキーマ情報解析部が生成したオートマトンを相互に最適化するオートマトン最適化部とを備える。インスタンス文書解析部とスキーマ情報解析部は共にオートマトンを最適化するが、一方で最適化したオートマトンを他方で更に最適化することができる。
(2)前記の構造化文書がXML文書であり、前記の区分化可能とする複数の状態がSAXイベントで定義される、(1)に記載の構造化文書処理装置を提供する。(1)の装置は、構造化文書として特にXMLに限定しないが、本明細書の実施形態では、構造化文書がXML、状態を特定するのがSAXイベントの場合を想定して記述する。
(3)前記のインスタンス文書解析部における前記状態遷移の統合において、前記状態遷移ごとにIDを付加し、連続的にマッチする状態遷移をIDのリストとして記憶し、このIDのリストを用いて連続的にマッチする状態遷移の回数をカウントする連続状態遷移計数部を更に備える、(1)に記載の構造化文書処理装置を提供する。これは、状態遷移の統合の具体的手段を示したものである。
(4)前記のオートマトン最適化部は、インスタンス文書解析部が検知する反復的要素に対して、反復的要素が入れ子になっている場合にも最適化する、(1)に記載の構造化文書処理装置を提供する。
(5)前記のインスタンス文書解析部において、構造化文書の中の要素間に出現する任意の数の空白文字のパターンを統計情報によって同定する、(1)に記載の文書構造解析装置を提供する。
上記の(3)〜(5)は、状態遷移の統合の具体的手段を示したものである。詳しくは後述する。
以上のような解決手段を備えた構造化文書処理装置は、構造化文書を状態解析した結果生成する状態遷移列をインスタンス文書やスキーマ情報を用いて統合する。インスタンス文書を用いたオートマトンの最適化とスキーマ情報を用いた最適化は、前述したように互いに離反的なものでなく一方の最適化の後、更に最適化することも可能である。このような処理によって、後に構文解析が必要な状態数を減らす作用を奏し、状態遷移にかかるコストを削減することができる。
本発明によれば、XMLなどの構造化文書処理において、入力としているインスタンス文書から動的に統計情報を取得し、高速な解析を行う技術と、スキーマ情報という静的な情報を組み合わせることで、既に述べた課題を解消することができる。したがって、Deltarserなどの構造化文書処理装置の適用範囲を広げることが可能となる。
以下、本発明を実施形態に即して図を参照しながら説明する。
図3は、本発明の一つの実施形態に係る構造化文書処理装置10の機能ブロックの概略を示したものである。ただし、以下の説明に示される構成は一例であり、本発明はかかる構成に限定されるものではない。
構造化文書処理装置10は、操作員等の入力を受付ける入力部1、処理された結果を出力する出力部2、入出力データや中間データを記憶する記憶部4を含む。更に、構造化文書処理装置10は、入力されたインスタンス文書を解析するインスタンス文書解析部5、あらかじめ定められたスキーマ言語によって定義されたスキーマ情報を解析するスキーマ情報解析部6、状態遷移列(オートマトン)を生成するオートマトン生成部7a、およびインスタンス文書解析部5とスキーマ情報解析部が統合した状態遷移列を相互に最適化するオートマトン最適化部7、構造化文書をさまざまな構文を解析する文書構文解析部8、および構文解析処理された結果を、必要とするアプリケーション・プログラムに通知し、アプリケーション・プログラムとのインターフェイスとなるAPI部9とを備える。
入力部1は、キーボードやマウスなどの一般的な入力装置の他、データをファイルとして受付ける入力手段を含む。出力部2は、CRTや液晶装置のような表示装置の他、データをファイルとして出力する出力手段を含む。また、オプションとして通信部3を備え、外部のシステムとデータの入出力を通信で行うようにしてもよい。
本処理装置の入力データである構造化文書20には、インスタンス文書21とスキーマ情報22が含まれる。ただしスキーマ情報は省略され得る。スキーマ情報が省略された場合は、あらかじめ定められたDefaultが使用される。インスタンス文書21は、構造化文書20の実体であり、入力部を介してインスタンス文書解析部5によって、状態解析される。状態解析されたデータ(状態遷移列)はインスタンス文書統計情報4aとして記憶部4に蓄積される。この状態解析された文書は解析済み元構造化文書4bとして、次に解析されるべき構造化文書の差分解析のために利用される。
また、インスタンス文書解析部5は、複数の状態遷移を統合させるために、状態遷移ごとにIDを付加し、連続的にマッチする状態遷移をIDのリストとして記憶し、そのIDリストを用いて連続的にマッチする状態遷移の回数をカウントする処理を行う機能を持つ連続状態遷移計数部(図示せず)を含む。
スキーマ情報解析部6は、例えば、DTD(Document Type Definition)やW3C(World Wide Web Consortium) XML Schemaなどのスキーマ言語によって作成されたXML文書の構造や形式を定義するスキーマ情報を解析する。
インスタンス文書の統計情報やスキーマ情報を用いた処理の詳細については、後述する。
文書構文解析部8は、構造化文書20の構文の中身を実際に解析する。例えばXML文書では要素や内容を解析して、SAXイベントやDOMツリーといったアプリケーション・プログラムが利用しやすい形に変換する。この際に新たに解析すべき構造化文書20の状態遷移列と、記憶部4に蓄積した既に解析済みの解析済み元構造化文書4b群の状態遷移列との差分を検知し、差分のみを解析することによって処理効率をあげている。本明細書では後述するように、この状態遷移列を表現したものとして状態遷移図を示している。
なお、差分解析の具体的方法については特許文献1に示されているので本明細書では記載を省略する。
アプリケーション・プログラム30は、APIを通して本構造化文書解析装置にアクセスする。API部(Application Program Interface)9は、例えばXML文書の場合、DOMや、SAXといった標準的なインターフェイスを提供する。なお、API部9は、特に図示していないが、広義の入出力部としての役割も果たす。
上記の説明によって明らかなように、構造化文書処理装置10は、パーソナルコンピュータやサーバのようなコンピュータであってよく、必要な機能を備えたコンピュータプログラムをインストールすることで実現される。以下、構造化文書処理装置10が行う処理手法の内容について説明する。
前述の課題で述べたように、オートマトンの状態遷移に伴うパフォーマンスへの影響は小さくない。この課題を解決するために、本発明ではオートマトンを最適化することによる状態遷移数を減らす手法を提供する。例としては、状態遷移の分岐がほとんどなく、ある一定の状態遷移のパス(道筋)しか通らない場合には、そのパスを複数の状態として表す意味がない場合などである。このような場合には、それらの複数の状態を一つの状態に統合することで、状態遷移数を減らすことができる。
本発明では、XMLインスタンス文書に関する以下の2つの情報を活用して、オートマトンを最適化する。
(A)インスタンス文書の統計情報
(B)スキーマの情報
各手法は相反的なものではなく、一方の手法を補完するものである。つまり、(A)の統計情報を使って最適化したオートマトンに更に、(B)のスキーマ情報を使うことによって、十分な統計情報の取得に必要な文書セットを処理する前に、最適化されたオートマトンが早く得ることができる。また、(B)によって最適化したオートマトンに、(A)の統計情報を用いることによって、スキーマには記述されていない、実行時の傾向を反映することができる。次に(A)、(B)のそれぞれの情報を用いた最適化について述べる。
(A)インスタンス文書の統計情報を活用した最適化
本手法は、インスタンス文書の統計情報を用いてオートマトンを最適化し、XMLパーサの高速化を実現する手法である。具体的には、以下の2つの手法を提供する。
(A−1)複数の状態遷移の統合
(A−2)反復的な要素の出現回数のパターンに適応したオートマトンの作成
以下に各手法の詳細について述べる。
(A−1)複数の状態遷移の統合
前述したように、特許文献1に開示されたDeltarserの更なる高速化には状態遷移に伴うコストは無視できない。よって、バイト列マッチングの際に、高い確率で連続してマッチする状態遷移が存在すれば、それらの状態を別々に表現するのではなく、一つの状態遷移として表現した方が良い。例えば、<name> IBM </name>と言ったXMLの文字列を処理する際、通常、“<name>”,“IBM”,“</name>”といった状態遷移が作成されるが、毎回すべてこれらの状態にマッチするのであれば、”<name> IBM </name>”と統合して表現した方が良い。この統合を統計的な情報を用いて行う。
まず、連続してマッチ(一致)する状態遷移列を発見する必要がある。各状態遷移を識別するため、各状態遷移にID(識別子)を付与する。既に存在する状態遷移にマッチするたびに、その状態遷移のIDを記録し、IDのリスト(以後、IDリストと呼ぶ)に追加する。マッチが終了した時点で位置する状態(状態Snと表す。ただしnは自然数。)で、IDの記録を終了する。
連続してマッチし、IDリストの長さが2以上になる時、IDリストに含まれる状態遷移群は、状態遷移統合(複数の状態遷移を一つの状態遷移としてまとめること)の対象候補となる。また、IDリストには、カウンターが設けられる。カウンターは、処理対象のインスタンス文書セットの中で、状態遷移列の出現頻度を統計的に解析するために用いられる。IDリストとカウンターは状態S1に格納されて管理される。同一のIDリストのカウント方法には様々な方法が考えられるが、例えば、適切なハッシュ関数を作り、IDリストのハッシュ値をキーとして、その値としてカウンターを持つようにすることで実現できる。
例えば、<A><B>1</B></A>,<A><B>2</B></A>というように、<B>のテキストノードの値が変化するような文書を扱うケースを考える。この時、図4のようなオートマトンが作成され、それぞれの状態遷移にはIDが付与される。
この例では、100文書を処理する際に、状態遷移のIDが1と2が連続してマッチし、IDが4と5の状態遷移が連続してマッチする文書が80文書出現するとする。このとき、IDリストをカウントするためのハッシュ表は、状態3と状態6に格納される。
この仕組みによって、十分な統計情報を得たところで、連続して出現する状態遷移列が統計的にどのくらいの頻度で出現するかがわかり、ある閾値を設けることで、その閾値を越えた頻度を持つ状態遷移列は一つの状態遷移に統合することが可能である。この際、基本的には、統合前の状態遷移群は残される。これは万が一、統合前の状態遷移を必要とするような文書が来たとき(例えば、<A><C>$C</C></A>などの文書)に、再び、<A>を表す状態遷移を作ることを避けるためである。ただし、このような文書が統計上ほとんどないような場合には、消去するような仕組みを作ることも可能である。
上記の例を挙げると、閾値を仮に80%以上の確率で同一のIDリストが出現する際には状態統合をするとする。また、統合前の状態は消去することにする。この場合、図4のオートマトンは、図5のようなオートマトンに最適化される。
(A−2)反復的な要素の出現回数のパターンに適応したオートマトンの作成
ある要素が反復的に(注:この文書では繰り返しと反復の2つの用語が出てくるが、どちらも同じ意味である)出現するケースを考える。Deltarserではこのようなケースを表現するオートマトンとして、以下の2つタイプのオートマトンが作成可能である。
1)ループ型オートマトン
繰り返しの要素が出現する際、その要素を表す状態が既に作られている場合は、その状態に戻り、1回目と同じ状態遷移が行われる。図6に、これによって繰り返しがループ型の状態遷移となる場合のオートマトンを示した。
2)展開型オートマトン
繰り返しの要素が出現する際、既にその要素を表す状態が既に作られたとしても、別途状態遷移を作る。図7に、この場合の繰り返しが1直線型の状態遷移となる場合のオートマトンを示した。
前者のオートマトンの利点は、余分な状態遷移が作成されず、オートマトンがコンパクトであり、状態数/遷移数に伴うメモリ使用量に関する懸念も後者の方法と比べて少ない。しかし、状態S3から状態S2に遷移した後、次にどの状態に遷移すべきかを判断する際に、S1とS3の2つの候補があり、遷移の判断に伴うコスト(バイト列マッチング及びコンテキスト(要素スタックや名前空間など)の計算)が後者より大きい。
一方、後者の方法は、状態数が多くなるが、状態遷移の先の候補が一つであるので、状態遷移にかかるコストは前者より小さい。ただ、要素の繰り返しの回数が常にランダムなときには、出現する繰り返しの数だけ要素が現れてしまうので、その場合には後者の方法は向かない。この場合、前者のオートマトンを選択することが賢明である。
この2つのタイプのオートマトンのどちらを選択するかを統計的に選択する方法を述べる。基本的な方針は、まず前者の方法でオートマトンを構成していく。次に、処理の対象となるインスタンス文書の集合に対して、繰り返しを検知し、その繰り返しの回数を数える。回数が統計的にある固定の数であったと判断され、その回数がある閾値を越えていない場合に、後者の展開型オートマトンに最適化される。また、統計的に回数にちりばりがあり、ランダムであった場合は、前者のループ型オートマトンを使用する。
(1)繰り返しの検知方法
図6のループ型オートマトンを例に取ると、同じ経路を辿って状態S2に戻っていることをまず検知する必要がある。これには通過した状態遷移のIDを記録することで実現する。つまり、図6の場合、IDが{2,3,4}と言った経路が状態2に追加される。このIDリストは、前述した連続した状態遷移列(連続状態遷移列と呼ぶ)とは別のものであり、繰り返しを検知するために記録される状態遷移列を反復状態遷移列と呼ぶことにする。反復状態遷移列は、連続状態遷移列と異なり、マッチするかどうかにかかわらず、通過した状態遷移を記録するものである。
例えば、<X><A>1</A><A>2</A><A>3</A></X>の文書の場合を考える。この場合<X>の後に、<A>$A</A>のセットが3回出現するので、状態遷移IDが2,3,4の列が状態S2に3回記録される。この反復回数のパターンを見出すために、処理する対象の文書セットに対して同じように記録し、統計的な手法で、その回数がある程度ランダムなものか、ある固定値の回数が多いなどの情報が得られる。これらの情報を元に、例えば固定回数の場合、前述の後者の展開型オートマトンに最適化し、ランダムと判断した場合には、前者のループ型オートマトンをそのまま使用する。
(2)反復の要素が入れ子になる場合への対処
反復は入れ子の構造として出現することがある。例えば、図8のXMLインスタンス文書では、最も内側の<C>要素が任意の回数で出現し、その外側の<B>の要素は2回出現するような文書である。この文書をオートマトンとして表現すると、図9のループ型オートマトンになる。ここで、タグ<A>などによって発生する状態遷移をID番号と共に、Tid=1[<A>]のように表すものとする。このような入れ子で反復の要素が出現した場合でも、(1)の反復の回数を数えられるようにすることが必要である。
本手法は、ループの中に更にループがある入れ子構造に関して、以下の手順でそれぞれの繰り返し回数を数える。
以下、図10のフローチャートを参照して説明する。
まず、最も内側のループを検出し、それを初期の「内側ループ」とする(ステップS1)。
次に、内側ループに関して(1)の方法を用いて繰り返し回数を記録する(ステップS2)。
更に、内側ループを囲む最も近い外側ループを検出した場合(ステップS3:Yes)、内側ループの回数が1回以上であっても、1回のループのIDリストのみを通過した状態遷移列として記録する(ステップS4)。外側ループに関しては、そのIDリストのカウンターを用いて繰り返し回数を数える(ステップS5)。このステップS3で外側ループが検出されない場合は(ステップS3:No)、終了する。
更に、外側ループを内側ループにし(ステップS6)、ステップS3、ステップS4、ステップS5の処理を実行する。
例えば、図8をXMLのインスタンス文書として考える。この場合、IDリスト{3,4,5}の状態遷移列がS3に記録される。Cの要素は繰り返し出現するので、IDリスト{3,4,5}の状態遷移はループとなる。C要素の繰り返しが終了し、要素Bの終了タグが現れると、状態S2に遷移するが、(1)の繰り返し検知方法のみを述べると、{1,2,3,4,5,3,4,5,3,4,5,3,4,5,6,7}というIDリストができる。このIDリスト内の3,4,5というID列に関しては任意の回数が現れる回数が出現する場合があり、(2)の手法はこれを避けるためにある。(2)の手法を適用すると、{3,4,5}はループ構造であるのでその外側のループでは1回のループとみなして、{1,2,3,4,5,6,7}というIDリストとして表現され、繰り返しを適切に数えることができる。
図9に、図8に示したインスタンス文書の最適化前のオートマトンを示す。また、(2)によって最適化した後は、図11のように内側はループ型オートマトンにし、外側は展開型オートマトンとなる。
他のケースでも同様のことが実現できることを示すために、図12のインスタンス文書の例を示す。このケースでは、最も内側のCの要素のループは固定回数であるが、Bの要素が任意の回数のループである場合である。このケースでも上記の手法を用いて適切に繰り返しの回数を数えることができる。その結果、図13のようなオートマトンに展開される。
(B)スキーマ情報を活用したオーマトンの最適化と事前構築
オートマトンの最適化に活用できるスキーマ情報を本開示書ではW3Cで規定されたXML Schemaを用いるが、DTD、RELAX(REgular LAnguage description for XML) NG等の他のスキーマ言語も利用できる。
最適化に伴うフローを図14に示す。まず始めに、処理する要素が属性を持つかどうかに分類され(図14左側)、更に、その要素が単純型か複合型かに分類される(図14右側)。単純型とは単純内容モデルで属性を持たない要素を指す。また、単純内容モデルとは子要素としてテキストノードのみを受け入れるものである。それ以外のすべての要素(属性を持つ単純内容やその他の内容モデル)は複合型として定義されている。この他にテキストノードと子要素の両方が混在する混在内容も存在するが、本明細書では考慮しない。
以下にそれぞれの場合の最適化方法を述べる。
(B−1)単純型要素の場合
(1)単純内容の要素が固定値を持つ場合
xsd:elementでは、fixed属性が指定されると、単純内容の要素はこの属性を使って特定の値に固定できる。
例)
XML Schema: <xsd:element name=“name” type=“xsd:string” fixed=“IBM”/>
XML インスタンス: <name> IBM </name>
スキーマの情報がなければ、“<name>”,“IBM”,“</name>”とそれぞれ状態として定義し、図15のように3つの状態列ができるが、スキーマの情報を用いることによって、図16に示すように、3つの状態を一つの状態に統合することができる。このように、スキーマ情報を用いることで、状態数を統合し処理を高速化することができる。
(2)値の候補が指定されている場合
スキーマに属性値または要素間の値の候補が指定されている場合、その情報を用いて、あらかじめ、それらの状態遷移を作ることができる(オートマトンの事前構築)。
(B−2)複合型要素の場合
(1)ある要素の次に出現する要素が確定している場合
XML Schemaのxsd:sequenceが指定されている場合、minOccursが0以外であれば、ある要素の次に出現する要素が決まっている。Xsd:sequenceは要素の順序付きグループを定義するコンポジタである。この情報を用いることによって、2つの別々の状態を一つの状態に統合することが可能である。
例として、図17のXML Schemaを用いた以下のXMLインスタンスについて見てみる。
XMLインスタンス
<X><A>1</A><B>2</B><C>3</C></X>
このXMLインスタンスは、通常以下の11回の状態遷移となるが、(“<X>”,“<A>”,1,“</A>”,“<B>”,2,“</B>”,“<C>”,3,“</C>”,“</X>”)スキーマ情報を用いれば、以下のように7回の状態数に削減できる。
“<X><A>”,1,“</A><B>”,2,“</B><C>”,3,“</C></X>”
(2)ある要素の次に出現する要素の候補が確定している場合
Xsd:choiceで指定されている場合、ある要素の次に出現する要素の候補があらかじめわかる。この情報を用いることによって、あらかじめ、状態遷移を作ることができ、状態遷移を作るコストを減らすことができる。Xsd:choiceは排他的な(どれか1つだけを選択できる)要素またはコンポジタのグループを定義するコンポジタである。Xsd:choiceはちなみに、maxOccursをunbounded、または回数を限定して指定することができる。
(3)順不同の要素グループを記述するコンポジタ
Xsd:allは、その出現回数が0回または1回であるような順不同の要素グループを記述するために使う。図18に例を示す。
このスキーマは、A,B,Cが順不同で1回ずつ出現することを示している(minOccur=1がdefault)。この場合、状態数の削減の観点からは、<A>,<B>,<C>のすべての組み合わせ(例えば、<A/><B/><C/>を1つの状態で表現)を事前構築すればよい。オートマトンのサイズを考慮する場合は、実行後、実際にはある一定期間以上使われないノードを削減するなどの手法が考えられる。
(4)繰り返しの場合
maxOccursがunboundedと指定されているときは、様々な回数の要素が来るとわかるので、(自信を持って)、繰り返し専用の状態遷移が作成される。
(B−3)要素が属性を持つ場合
(1)属性値が固定の場合
スキーマに属性値または要素間の値が固定値として指定されている場合、その情報を用いて、前後の状態と統合することが可能である。xsd:attributeでfixed属性を指定すると、その属性の値は固定され、ここで指定された値に等しくなければならない。以下にXML SchemaとXMLインスタンスの例を示す。
XML Schema: <xsd:attribute name=“year” type=“xsd:date” fixed=“2004”/>
XMLインスタンス <item year=“2004”>
(2)属性値の候補が指定されている場合
候補値を用いて、状態遷移を事前構築できる。以下のようなXML Schemaの場合、id属性値としては、red,blue,greenのみが出現することが定義されている。この情報を用いて、事前に状態遷移を作成することができる。例としてXML Schemaを図19に示す。
(C)空白が出現したときの対処方法
XMLは要素間に任意の数の空白の出現を許す。これまでに説明した状態遷移の最適化は、いずれも空白が含まれない場合のみを例に挙げていた。しかしながら、XMLでは空白文字の出現に対する制約が緩く、要素間に任意の数の空白が出現することや、要素名の中に空白が出現することもあり得る。本発明はこのような空白の揺らぎに対しては、(A)のインスタンス文書の統計情報を活用して解決する。
図20に空白による状態遷移の例を示す。空白による状態遷移はコンテキスト上変わりなく、図中のID=2,2’の状態遷移のようにループの状態遷移が作られる。ID=2の状態遷移は、<A>と<B>の間に空白が3回現れたケース(<A>□□□<B>)であり、ID=2’は、<A>と<B>の間に空白が5回現れるケース(<A>□□□□□<B>)だとする。この場合、(A)の統計情報を用いると、どちらの状態遷移が統計的に多く遷移するかを検知することができる。これによって、空白の数のパターンが同定でき、同じように他の状態遷移と統合することができる。
図21、22に本発明の実施例の結果を示す。ここでは、IBMの既存のXMLパーサ製品Aを基に本発明の手法を実装した例について行った実験結果を示している。XMLパーサ製品Aは、スキーマを中間表現(Intermediate Representation)に変換し、仮想機械上で実行することでスキーマの検証を行うアーキテクチャとなっている。本実験では、xsd:sequenceを処理する命令であるReadOneインストラクションが、次に出現すべき要素が一つに決定していることを利用して、本発明で提案したオートマトンの最適化を行った。実験環境および、使用したXML Schemaファイル、XMLインスタンスファイルの例は以下の通りである。
<実験環境>
−Think Pad(登録商標) T43 2668−72J(Pentium(登録商標) M 760,2.0GHz,1GB RAM)
−Windows(登録商標) XP Professional
−Java(登録商標) VM:Sun JVM 1.4.2
−比較対象
1)Deltarser:特許文献1の発明を実装したXMLパーサ
2)Schema−aware Deltarser:本発明の手法を適用したDeltarser
−比較方法
1)1万回のウォーミングアップの後、1万回実行し、その平均時間を算出した。
2)すべてのテキスト要素は(同じテキストであっても)部分処理を行った。
−テスト文書
1)図21に記載のXML Schemaファイル
2)図22に記載のXMLインスタンス文書
<実験結果>
様々なサイズのXMLインスタンスを用いて本手法(Schema−aware Deltarser)の効果を測定した。実験結果を図23、図24に示す。これらの図においてはXMLインスタンスのファイル名(xxx.xml)が、そのドキュメントサイズ(バイト数)を表している。また、処理結果の計測時間をmsecで示している。
図23、図24から明らかなように、どのドキュメントに対しても、13%から30%の高速化が図られている。本実験では、xsd:sequenceの場合の最適化のみ測定を行ったが、他の最適化ケースであっても、スキーマ情報を用いて状態遷移の数を減らすことによって、高速化できることは本実験により自明である。また、本実験により、状態遷移を統合することによる高速化は示せたので、インスタンス文書の統計的な文書を用いた最適化を用いた方法も効果があることがあると言える。
XML解析処理が必要なアプリケーションに対して、インスタンス文書の統計情報とスキーマ情報が付与されていれば、本手法が適用できる。例えば、特定のXMLマークアップ言語の処理系や、Webサービスを処理するミドルウエアで本発明を用いることができる。
また、統計情報を用いたオートマトンの最適化による効果は本明細書では示していない。しかし、スキーマ情報を用いた手法と同等の効果か、それ以上が期待できる。なぜなら、実行時の文書のパターンをオートマトンに反映させることにより、スキーマ情報に現れる情報と現れない情報の両者をオートマトン最適化に使用できるからである。また、スキーマ情報にはない状態統合化のための多くの情報がインスタンス文書の統計処理によって得られるからである。ただし、統計情報を用いる手法は、適切な統計情報を得るまでに試行回数が必要であるのでその時間は余分にかかるということには注意が必要である。
以上、本発明を実施形態、および実施例を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲に限定されない。上記実施形態に、多様な変更または改良を加えることが可能である。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
本発明における一つの実施形態として説明した構造化文書処理装置、または構造化文書処理方法は、コンピュータ上のシステムまたはコンピュータにその機能を実行させるプログラムによって実現可能である。また、上記プログラムを格納するコンピュータ可読の記録媒体は、電子的、磁気的、光学的、電磁的、赤外線または半導体システム(または、装置または機器)であることができる。コンピュータ可読の記録媒体の例には、半導体またはソリッド・ステート記憶装置、磁気テープ、取り外し可能なコンピュータ可読の媒体の例には、半導体またはソリッド・ステート記憶装置、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、リードオンリー・メモリ(ROM)、リジッド磁気ディスクおよび光ディスクが含まれる。現時点における光ディスクの例には、コンパクト・ディスク−リードオンリー・メモリ(CD−ROM)、コンパクト・ディスク−リード/ライト(CD−R/W)およびDVDが含まれる。
状態数の変化に伴う平均処理時間の増加を示した図である。 Deltarserと既存のXMLパーサの状態遷移の作成オーバヘッドの比較を示した図である。 本発明の一実施形態としての構造化文書処理装置の機能ブロック図を示した図である。 各状態遷移へのIDの付加と反復要素のカウント方法を示した図である。 最適化後のオートマトンを示した図である。 ループ型オートマトンを示した図である。 展開型オートマトンを示した図である。 XMLインスタンス文書1を示した図である。 XMLインスタンス文書1の最適化前オートマトンの構成を示した図である。 反復要素が入れ子になる場合の処理フローを示した図である。 XMLインスタンス文書1の最適化後オートマトンの構成を示した図である。 XMLインスタンス文書2を示した図である。 XMLインスタンス文書2の最適化後オートマトンの構成を示した図である。 最適化処理の分類図を示した図である。 単純型要素の場合の最適化前オートマトンを示した図である。 単純型要素の場合の最適化後オートマトンを示した図である。 XML Schema例1を示した図である。 コンポジタを示した図である。 XML Schema例2を示した図である。 空白による状態遷移例を示した図である。 実施例1における実験用XML Schemaを示した図である。 実施例1における実験用XMLインスタンス文書の例を示した図である。 実施例1の実験結果を示した図である。 実施例1の実験結果グラフを示した図である。
符号の説明
1 入力部
2 出力部
3 通信部
4 記憶部
4a インスタンス文書統計情報
4b 解析済み元構造化文書
5 インスタンス文書解析部
6 スキーマ情報解析部
7 オートマトン最適化部
8 構文解析部
9 API部
10 構造化文書処理装置
20 構造化文書
21 インスタンス文書
22 スキーマ情報
30 アプリケーション・プログラム

Claims (19)

  1. 電子データ化された構造化文書を構文解析する構造化文書処理装置であって、
    前記構造化文書を複数のノードに区分化可能とする複数の状態の状態遷移列を生成するオートマトン生成部と、
    前記構造化文書の実体であるインスタンス文書を状態解析した結果を示す状態遷移間のマッチングを調べて、連続してマッチングする状態遷移の出現頻度を示すデータである統計情報を得て、前記統計情報で示される前記出現頻度が所定の頻度閾値を超えた場合に、前記オートマトン生成部で生成された状態遷移列について前記マッチングした状態遷移を一つの状態遷移として統合し、さらに、前記状態遷移において反復的に現れる反復的要素を検知して当該反復的要素が出現する反復回数を求め、該反復回数が所定の反復閾値を超えたか否かに応じてオートマトンの型を選択してオートマトンを最適化するインスタンス文書解析部と、
    前記構造化文書の情報の構造や形式を定義するスキーマ情報を解析して処理すべき要素が属性を有しているかに応じて、前記オートマトン生成部が生成した前記状態遷移列についてその状態遷移を統合してオートマトンを最適化するスキーマ情報解析部と、
    前記インスタンス文書解析部が最適化したオートマトンと前記スキーマ情報解析部が最適化したオートマトンとを互いに補完してさらに最適化するオートマトン最適化部と、
    を備える、構造化文書処理装置。
  2. 前記構造化文書がXML文書である、請求項1に記載の構造化文書処理装置。
  3. 前記区分化可能とする複数の状態がSAXイベントで定義される、請求項1に記載の構造化文書処理装置。
  4. 前記インスタンス文書解析部には、前記状態遷移ごとにIDを付加し、同一の状態遷移が存在するか否かを調べて存在すると、当該状態遷移をマッチングしたと判定し、IDリストに当該IDを記録し、該IDリストを用いて連続的にマッチングする状態遷移の回数をカウントする連続状態遷移計数部が備えられる、請求項1に記載の構造化文書処理装置。
  5. 前記オートマトン最適化部は、前記インスタンス文書解析部が検知する前記反復的要素に対して、前記反復的要素が入れ子になっている場合にも最適化する、請求項1に記載の構造化文書処理装置。
  6. 前記インスタンス文書解析部において前記構造化文書の中の要素間に出現する任意の数の空白文字のパターンを前記統計情報によって同定する、請求項1に記載の文書構造解析装置。
  7. コンピュータによって電子データ化された構造化文書を構文解析する構造化文書処理方法であって、
    前記コンピュータが
    オートマトン生成手段によって前記構造化文書を複数のノードに区分化可能とする複数の状態の状態遷移列を生成する第1のステップと、
    インスタンス文書解析手段によって前記構造化文書の実体であるインスタンス文書を状態解析した結果を示す状態遷移間のマッチングを調べて、連続してマッチングする状態遷移の出現頻度を示すデータである統計情報を得て、前記統計情報で示される前記出現頻度が所定の頻度閾値を超えた場合に、前記オートマトン生成手段で生成された状態遷移列について前記マッチングした状態遷移を一つの状態遷移として統合し、さらに、前記状態遷移において反復的に現れる反復的要素を検知して当該反復的要素が出現する反復回数を求め、該反復回数が所定の反復閾値を超えたか否かに応じてオートマトンの型を選択してオートマトンを最適化する第2のステップと、
    スキーマ情報解析手段によって前記構造化文書の情報の構造や形式を定義するスキーマ情報を解析して処理すべき要素が属性を有しているかに応じて、前記オートマトン生成手段が生成した前記状態遷移列についてその状態遷移を統合してオートマトンを最適化する第3のステップと、
    オートマトン最適化手段によって、前記インスタンス文書解析手段が最適化したオートマトンと前記スキーマ情報解析手段が最適化したオートマトンとを互いに補完してさらに最適化する第4のステップと、
    を実行する構造化文書処理方法。
  8. 前記構造化文書がXML文書である、請求項7に記載の構造化文書処理方法。
  9. 前記区分化可能とする複数の状態がSAXイベントで定義される、請求項7に記載の構造化文書処理方法。
  10. 前記第2のステップでは、前記状態遷移ごとにIDを付加し、同一の状態遷移が存在するか否かを調べて存在すると、当該状態遷移をマッチングしたと判定し、IDリストに当該IDを記録し、該IDリストを用いて連続的にマッチングする状態遷移の回数をカウントする請求項7に記載の構造化文書処理方法。
  11. 前記第2のステップにおいて、前記反復的要素に対して、前記反復的要素が入れ子になっている場合にも最適化する、請求項7に記載の構造化文書処理方法。
  12. 前記第2のステップにおいて前記構造化文書の中の要素間に出現する任意の数の空白文字のパターンを前記統計情報によって同定する、請求項7に記載の文書構造解析方法。
  13. コンピュータによって実行され、電子データ化された構造化文書を構文解析するコンピュータ・プログラムであって、
    前記コンピュータに、
    オートマトン生成手段によって前記構造化文書を複数のノードに区分化可能とする複数の状態の状態遷移列を生成する第1のステップと、
    インスタンス文書解析手段によって前記構造化文書の実体であるインスタンス文書を状態解析した結果を示す状態遷移間のマッチングを調べて、連続してマッチングする状態遷移の出現頻度を示すデータである統計情報を得て、前記統計情報で示される前記出現頻度が所定の頻度閾値を超えた場合に、前記オートマトン生成手段で生成された状態遷移列について前記マッチングした状態遷移を一つの状態遷移として統合し、さらに、前記状態遷移において反復的に現れる反復的要素を検知して当該反復的要素が出現する反復回数を求め、該反復回数が所定の反復閾値を超えたか否かに応じてオートマトンの型を選択してオートマトンを最適化する第2のステップと、
    スキーマ情報解析手段によって前記構造化文書の情報の構造や形式を定義するスキーマ情報を解析して処理すべき要素が属性を有しているかに応じて、前記オートマトン生成手段が生成した前記状態遷移列についてその状態遷移を統合してオートマトンを最適化する第3のステップと、
    オートマトン最適化手段によって、前記インスタンス文書解析手段が最適化したオートマトンと前記スキーマ情報解析手段が最適化したオートマトンとを互いに補完してさらに最適化する第4のステップと、
    を実行させるコンピュータ・プログラム。
  14. 前記構造化文書がXML文書である、請求項13に記載のコンピュータ・プログラム。
  15. 前記区分化可能とする複数の状態がSAXイベントで定義される、請求項13に記載のコンピュータ・プログラム。
  16. 前記第2のステップでは、前記状態遷移ごとにIDを付加し、同一の状態遷移が存在するか否かを調べて存在すると、当該状態遷移をマッチングしたと判定し、IDリストに当該IDを記録し、該IDリストを用いて連続的にマッチングする状態遷移の回数をカウントする請求項13に記載のコンピュータ・プログラム。
  17. 前記第2のステップにおいて、前記反復的要素に対して、前記反復的要素が入れ子になっている場合にも最適化する、請求項13に記載のコンピュータ・プログラム。
  18. 前記第2のステップにおいて前記構造化文書の中の要素間に出現する任意の数の空白文字のパターンを前記統計情報によって同定するステップを更に実行させる請求項13に記載のコンピュータ・プログラム。
  19. 請求項13乃至請求項18のいずれか1項に記載のコンピュータ・プログラムを記録する記録媒体。
JP2005374990A 2005-12-27 2005-12-27 構造化文書処理装置、方法、プログラム Expired - Fee Related JP4236055B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005374990A JP4236055B2 (ja) 2005-12-27 2005-12-27 構造化文書処理装置、方法、プログラム
CNB2006101647029A CN100495401C (zh) 2005-12-27 2006-11-14 结构化文档处理装置和方法
US11/567,242 US7707491B2 (en) 2005-12-27 2006-12-06 Optimizing differential XML processing by leveraging schema and statistics
US12/061,747 US8181105B2 (en) 2005-12-27 2008-04-03 Apparatus, method, and program that performs syntax parsing on a structured document in the form of electronic data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005374990A JP4236055B2 (ja) 2005-12-27 2005-12-27 構造化文書処理装置、方法、プログラム

Publications (2)

Publication Number Publication Date
JP2007179170A JP2007179170A (ja) 2007-07-12
JP4236055B2 true JP4236055B2 (ja) 2009-03-11

Family

ID=38214094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005374990A Expired - Fee Related JP4236055B2 (ja) 2005-12-27 2005-12-27 構造化文書処理装置、方法、プログラム

Country Status (3)

Country Link
US (2) US7707491B2 (ja)
JP (1) JP4236055B2 (ja)
CN (1) CN100495401C (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7920180B2 (en) * 2004-04-06 2011-04-05 Hewlett-Packard Development Company, L.P. Imaging device with burst zoom mode
FR2914759B1 (fr) * 2007-04-03 2009-06-05 Canon Kk Procede et dispositif de codage d'un document hierarchise
US8140582B2 (en) * 2008-10-07 2012-03-20 International Business Machines Corporation Service oriented architecture aggregation
FR2939535B1 (fr) * 2008-12-10 2013-08-16 Canon Kk Procede et systeme de traitement pour la configuration d'un processseur exi
IL198017A (en) * 2009-04-05 2015-02-26 Rafael Advanced Defense Sys Means and method of protecting a fighter cell in a wheeled vehicle against explosives
CN102207936B (zh) * 2010-03-30 2013-10-23 国际商业机器公司 用于提示电子文档内容变更的方法和系统
JP5618797B2 (ja) * 2010-12-02 2014-11-05 三菱電機株式会社 データ処理装置及びプログラム
CN102184239B (zh) * 2011-05-16 2013-02-27 复旦大学 Xml无线数据广播模式下基于访问概率的文档分片方法
CN102306191A (zh) * 2011-08-31 2012-01-04 飞天诚信科技股份有限公司 基于嵌入式平台的xml报文解析方法
US9626368B2 (en) * 2012-01-27 2017-04-18 International Business Machines Corporation Document merge based on knowledge of document schema
CN102708155B (zh) * 2012-04-20 2015-02-18 西安电子科技大学 基于回溯自动机语法分析的jsax解析器和解析方法
CN103885972B (zh) * 2012-12-20 2017-02-08 北大方正集团有限公司 一种文档内容结构化的方法及装置
US10114804B2 (en) * 2013-01-18 2018-10-30 International Business Machines Corporation Representation of an element in a page via an identifier
CN104391836B (zh) * 2014-11-07 2017-07-21 百度在线网络技术(北京)有限公司 处理用于句法分析的特征模板的方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4241402A (en) * 1978-10-12 1980-12-23 Operating Systems, Inc. Finite state automaton with multiple state types
JP3566457B2 (ja) 1996-05-31 2004-09-15 株式会社日立製作所 構造化文書の版管理方法および装置
US6470362B1 (en) * 1997-05-16 2002-10-22 Compaq Computer Corporation Extracting ordered list of words from documents comprising text and code fragments, without interpreting the code fragments
JP2003084987A (ja) * 2001-09-11 2003-03-20 Internatl Business Mach Corp <Ibm> Xml文書の妥当性を検証するためのオートマトンの生成方法、xml文書の妥当性検証方法、xml文書の妥当性を検証するためのオートマトンの生成システム、xml文書の妥当性検証システムおよびプログラム
JP3888621B2 (ja) * 2002-02-21 2007-03-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 文書処理システム、文書処理方法及びプログラム
JP3907187B2 (ja) 2002-07-31 2007-04-18 インターナショナル・ビジネス・マシーンズ・コーポレーション Saxパーサー、saxパーサー用方法、及びプログラム
US7493603B2 (en) * 2002-10-15 2009-02-17 International Business Machines Corporation Annotated automaton encoding of XML schema for high performance schema validation
JP2004314713A (ja) 2003-04-14 2004-11-11 Suzuki Motor Corp シフトレバーブーツの取付構造
JP4716709B2 (ja) * 2004-06-10 2011-07-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化文書処理装置、構造化文書処理方法、及びプログラム
US7630997B2 (en) * 2005-03-23 2009-12-08 Microsoft Corporation Systems and methods for efficiently compressing and decompressing markup language
US7665015B2 (en) * 2005-11-14 2010-02-16 Sun Microsystems, Inc. Hardware unit for parsing an XML document
US7596745B2 (en) * 2005-11-14 2009-09-29 Sun Microsystems, Inc. Programmable hardware finite state machine for facilitating tokenization of an XML document
EP2219117A1 (en) * 2009-02-13 2010-08-18 Siemens Aktiengesellschaft A processing module, a device, and a method for processing of XML data

Also Published As

Publication number Publication date
US8181105B2 (en) 2012-05-15
CN100495401C (zh) 2009-06-03
US20080288858A1 (en) 2008-11-20
US7707491B2 (en) 2010-04-27
JP2007179170A (ja) 2007-07-12
CN1991837A (zh) 2007-07-04
US20070150493A1 (en) 2007-06-28

Similar Documents

Publication Publication Date Title
JP4236055B2 (ja) 構造化文書処理装置、方法、プログラム
Lam et al. XML document parsing: Operational and performance characteristics
JP3832830B2 (ja) XPath評価方法、これを用いたXPath評価装置及び情報処理装置
US7725923B2 (en) Structured-document processing
US6941521B2 (en) Method for dynamically generating a user interface from XML-based documents
US7519903B2 (en) Converting a structured document using a hash value, and generating a new text element for a tree structure
Barbosa et al. Efficient incremental validation of XML documents
US6990632B2 (en) Method and system for inferring a schema from a hierarchical data structure for use in a spreadsheet
JP4365162B2 (ja) 構造化文書のデータを検索する装置および方法
US7941417B2 (en) Processing structured electronic document streams using look-ahead automata
US20050223017A1 (en) XML processor having function for filtering tree path, method of filtering tree path and recording medium storing a program to implement the method
US20080301545A1 (en) Method and system for the intelligent adaption of web content for mobile and handheld access
US9208140B2 (en) Rule based apparatus for modifying word annotations
US7499931B2 (en) Method and apparatus for approximate projection of XML documents
JP2008052662A (ja) 構造化文書管理システム及びプログラム
US8543898B2 (en) Techniques for more efficient generation of XML events from XML data sources
US7810024B1 (en) Efficient access to text-based linearized graph data
US20080005662A1 (en) Server Device and Name Space Issuing Method
US7774699B2 (en) Parallel data transformation
US20100049727A1 (en) Compressing xml documents using statistical trees generated from those documents
US20050262129A1 (en) Method and system for creating and loading data warehouse from semi-structured document
Borsotti et al. General parsing with regular expression matching
JP2010186412A (ja) 文書管理方法及び管理装置
US8522133B2 (en) Incrementally tokenizing and/or parsing a style sheet
Møller Document Structure Description 2.0

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071205

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20071226

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080602

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080925

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081106

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081210

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111226

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121226

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121226

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131226

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees