JP5480034B2 - 構造化文書の木構造を分割するための方法、プログラムおよびシステム - Google Patents

構造化文書の木構造を分割するための方法、プログラムおよびシステム Download PDF

Info

Publication number
JP5480034B2
JP5480034B2 JP2010143356A JP2010143356A JP5480034B2 JP 5480034 B2 JP5480034 B2 JP 5480034B2 JP 2010143356 A JP2010143356 A JP 2010143356A JP 2010143356 A JP2010143356 A JP 2010143356A JP 5480034 B2 JP5480034 B2 JP 5480034B2
Authority
JP
Japan
Prior art keywords
size
schema
structured document
tree structure
xml
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
JP2010143356A
Other languages
English (en)
Other versions
JP2012008754A (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 JP2010143356A priority Critical patent/JP5480034B2/ja
Priority to US13/154,823 priority patent/US8880557B2/en
Publication of JP2012008754A publication Critical patent/JP2012008754A/ja
Application granted granted Critical
Publication of JP5480034B2 publication Critical patent/JP5480034B2/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、一般的には、情報処理技術に関する。より詳細には、本発明は、構造化文書の木構造を分割するための方法、プログラム、およびシステムに関する。
近年のコンピュータの普及により、企業や個人が電子データであるコンテンツを作成してインターネット上で交換したり、公開したりすることが日常的に行われている。多くのコンテンツは、SGML、HTML、XML、XHTMLのようなメタ言語のフォーマットに従う電子化された構造化文書として作成され、様々なコンピュータ上で処理される。また、かかる構造化文書については、XML Schema、DTD、RELAX、RELAX NG、NVDL、Schematronのようなスキーマ言語に従って構造化文書の文書構造を定義するスキーマ・データが作成されることがある。
また、近年、インターナショナル・ビジネス・マシーンズ・コーポレーション(IBM)が提供するPOWER(商標)7プロセッサのようなマルチコア・プロセッサが普及し、多くのコンピュータにおいて採用されている。一般的に、マルチコア・プロセッサは、それぞれが並列動作可能である複数のコア(演算ユニット)を有する。例えばXML文書をこのようなマルチコア上で処理する場合、タスクをそれぞれのコアに適切に割り振ることが処理効率を向上させるために重要である。
業界の各社も、構造化文書を処理するための技術を開発している。背景技術として、例えば、特開2007−0279964号公報(特許文献1)は、検索対象の候補であるブロックを含む情報をマークアップ言語に基づいて所要の大きさのブロックに分けるブロック分割手段と、検索対象の分野でユニークな複数のキーワードと対象キーワードの出現頻度を示す値とが一対で記憶される記憶媒体と、前記各ブロック内で使用されているキーワードと前記記憶媒体に記憶されている情報とに基づいて当該各ブロックに点数付けを行う点数付け手段と、前記点数が所定範囲内のブロックを検索対象とする検索対象特定手段とを備える、情報検索装置を開示する。
他の背景技術として、国際公開WO2005/6192号公報(特許文献2)は、タグを含む構造化文書をテキストのままメモリ手段に保持する構造化文書保持ステップと、 該構造化文書の文書構造情報を、該構造化文書の各タグの位置と関連づけて該メモリ手段に保持する文書構造保持ステップと、処理要求に応じて、該文書構造情報に従って該構造化文書の木構造を辿って要素に関する情報を取得し、取得した情報に基づいて該構造化文書の一部を取得する処理ステップを含む構造化文書処理方法を開示する。該構造化文書保持ステップは、該構造化文書を予め決めたサイズの複数の分割部分に分割し、該構造化文書を該分割部分で保持することで、任意の分割部分の更新に伴う該任意の分割部分のサイズの変化を該分割部分の境界で吸収する。
他の背景技術として、特開2007−0193660号公報(特許文献3)は、記憶装置の階層状の木構造の情報を管理する情報管理装置を開示する。装置は、記憶装置の木構造の情報を所定のマークアップ言語で記述した木構造ファイルを記憶可能な情報記憶手段と、記憶装置の木構造の状態及び情報管理装置の処理能力のうち少なくとも一つに基づいて木構造ファイルを分割する処理を実行するか否かを判定する分割判定手段と、分割判定手段によって木構造ファイルを分割する処理を実行しないと判定されたときには該木構造ファイルがそのまま情報記憶手段に保存されるよう情報記憶手段を制御し、分割判定手段によって木構造ファイルを分割する処理を実行すると判定されたときには該木構造の一部が含まれる所定の分割状態となるよう該木構造ファイルの分割処理を実行し該分割された木構造ファイルのそれぞれが情報記憶手段に保存されるよう情報記憶手段を制御する制御手段を備える。
他の背景技術として、特開2002−0108844号公報(特許文献4)は、XMLデータを編集・検索する装置であって、入力元XMLデータのタグとタグの値に基づいて、該入力元XMLデータを解析してタグリストを生成する手段と、タグリストから選択された主キー対象タグと分割対象タグを用いてXMLデータを分割する手段とを有することを特徴とするXMLデータ分割編集装置を開示する。XMLデータ分割編集装置において、XMLデータを分割する際に、主キー対象タグの値と分割XMLデータとの関連付けを示した主キーインデックスと、分割対象タグの値をタグの値として階層化した分割対象タグツリー構造を作成する。
Wei Lu ほかによる「Parallel XML Processing by Work Stealing」(非特許文献1)は、以下の背景技術を開示する。
“[W]epresent a parallel processing model for the XML document…. The kernel of themodel is a stealing-based dynamic load-balancing mechanism, by which multiplethreads are able to process the disjointed parts of the XML document inparallel with balanced load distribution. The model also provides a novelmechanism to trace the stealing actions, thus the equivalent sequential resultcan be gotten by gluing the multiple parallel-running results together.”
WeiLu ほかによる「A Parallel Approach to XMLParsing」(非特許文献2)は、以下の背景技術を開示する。
“This paper presents our design and implementation ofparallel XML parsing. Our design consists of an initial preparsing phase todetermine the structure of the XML document, followed by a full, parallelparse. The results of the preparsing phase are used to help partition the XMLdocument for data parallel processing. Our parallel parsing phase is amodification of the libxml2 [1] XML parser, which shows that our approach appliesto real-world, production quality parsers.”
YunfeiPanほかによる「A Static Load-Balancing Schemefor Parallel XML Parsing on Multicore CPUs」(非特許文献3)は、以下の背景技術を開示する。
“[W]e introduce a new static partitioningand load-balancing mechanism. By using a static, global approach, we reducesynchronization and load-balancing overhead, thus improving performance overdynamic schemes for a large class of XML documents. Our approach leverageslibxml2 without modification, which reduces development effort and shows thatour approach is applicable to real-world, production parsers.”
特開2007−0279964号公報 国際公開第WO2005/6192号パンフレット 特開2007−0193660号公報 特開2002−0108844号公報
WeiLu et al.,"Parallel XML Processing by Work Stealing", HighPerformance Distributed Computing, Proceedings of the 2007 workshop onService-oriented computing performance: aspects, issues, and approaches, 2007,p.31-38, ISBN:978-1-59593-717-9 Wei Lu et al.,"A Parallel Approach to XML Parsing", InternationalConference on Grid Computing, Proceedings of the 7th IEEE/ACM InternationalConference on Grid Computing , 2006, p.223-230, ISBN:1-4244-0343-X Yunfei Pan etal., "A Static Load-Balancing Scheme for Parallel XML Parsing on Multicore CPUs",CCGRID, Proceedings of the Seventh IEEE InternationalSymposium on Cluster Computing and the Grid, 2007, p.351-362, ISBN:0-7695-2833-3 Tim Bray etal., "Extensible Markup Language (XML) 1.0 (Fifth Edition)", The World Wide WebConsortium (W3C), W3C Recommendation 26 November 2008, URL:http://www.w3.org/TR/xml/ (Retrieved June 9, 2010) Henry S.Thompson et al., "W3C XML Schema Definition Language (XSD) 1.1 Part 1:Structures", The World Wide Web Consortium (W3C), W3CWorking Draft 3 December 2009, URL: http://www.w3.org/TR/xmlschema11-1/(Retrieved June 9, 2010) David Petersonet al., "W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes ", TheWorld Wide Web Consortium, W3C Working Draft 3 December 2009, URL:http://www.w3.org/TR/xmlschema11-2/ (Retrieved June 9, 2010)
XML文書のような構造化文書を効率的に処理するために、構造化文書の木構造を適切な所定のサイズの部分木に分割することが望ましい場合がある。例えば、構造化文書の木構造をほぼ均等のサイズの部分木に分割し、マルチコア・プロセッサの各コアに各部分木の処理を割り振れば、各コアの処理が平均的な時間で終了する可能性が高まり、待ち時間を減らしてより効率的な並列処理を期待することができる。
構造化文書の木構造を分割するためには、構造化文書自体を走査し、その木構造を調べて分割する手法が考えられる。しかし、構造化文書自体はサイズが大きい場合があるため、この手法はこの走査の完了に時間を要し構造化文書の処理効率を低下させる可能性がある。構造化文書の処理効率を低下させるこの課題は、いずれの背景技術によっても解決をすることができない。
したがって、本発明の目的の1つは、構造化文書の木構造を効果的に分割するためのシステム、ソフトウェア、および方法を提供することである。
上記の目的を達成するために、コンピュータ処理によって、電子化された構造化文書のスキーマによって定義される木構造に基づいて構造化文書の木構造を分割するための方法が提供される。方法は、スキーマによって定義される木構造に含まれる1以上の要素のうちの少なくとも一部について、各要素をルートとする部分木のサイズの指標値を計算するステップと、スキーマが適用される構造化文書の木構造を分割するために用いられる分割パターンであって、当該構造化文書の木構造を分割した場合に分割後の部分木のサイズが所定の基準を満たす分割パターンを、指標値を用いて決定するステップを含む。
方法は、スキーマによって定義される木構造に含まれる1以上の要素に係数を割り当てるステップをさらに含み、各要素をルートとする部分木のサイズの指標値が係数を用いて計算されることが好ましい。既定の係数の少なくとも一部が、スキーマが適用される構造化文書の処理履歴に関する情報に基づいて計算されることが好ましい。さらに、処理履歴に関する情報が、子要素の出現頻度、テキスト部分のサイズのような、処理された構造化文書のスキーマの変数部分に関する情報であることが好ましい。既定の係数の少なくとも一部が、処理履歴に関する情報に基づいて2以上設定され、処理対象の構造化文書のタイプに応じていずれか一方が適用されるようにすることができる。
係数の少なくとも一部が、スキーマの記述内容に基づいて計算されることができる。係数の少なくとも一部が、スキーマに含まれる要素名のサイズに基づいて決定されることができる。計算された係数の少なくとも一部が、対応する要素の要素名と関連付けて記憶されるようにすることができる。また、係数の少なくとも一部が、対応する要素の絶対パスと関連付けて記録されるようにすることができる。
前記各要素をルートとする部分木のサイズの指標値が、前記スキーマが適用される構造化文書の処理履歴を考慮して計算されることが好ましい。また、分割を決定するステップが、スキーマが適用される構造化文書の木構造を分割した場合に、分割後の部分木のサイズがほぼ均等となる分割パターンを決定するステップを含むことが好ましい。また、分割を決定するステップが、構造化文書の部分木の処理に使用される並列動作可能なプロセッサ単位の数に構造化文書の分割をするための分割パターンを決定するステップを含むことが好ましい。プロセッサ単位の一例は、データ処理システムのマルチコア・プロセッサのコアである。
構造化文書が、SGML、XML、HTML、XHTMLのいずれかのようなメタ言語のフォーマットに従うものであることが好ましい。また、スキーマが、XML Schema、DTD、RELAX、RELAX NG、NVDL、Schematronのいずれかのようなスキーマ言語のフォーマットに従うものであることが好ましい。
以上、構造化文書を分割するための方法として本発明の概要を説明したが、本発明は、プログラム、プログラム製品、ソフトウェア、ソフトウェア製品、方法として把握することもできる。プログラム製品ないしソフトウェア製品は、例えば、前述のプログラム、ソフトウェアを格納した記憶媒体を含め、あるいはプログラム、ソフトウェアを伝送する媒体を含めることができる。
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
本発明の実施形態におけるデータ処理システムの機能ブロック図である。 本発明の実施形態におけるデータ処理システムの全体動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムの係数を付加する動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムの部分木のサイズを推測する動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムの部分木のサイズを推測する動作のサブルーチンを表現するフローチャートである。 本発明の実施形態におけるデータ処理システムの分割パターンの生成動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのXML文書の処理動作を表現するフローチャートである。 本発明の実施形態におけるXMLスキーマの一例である。 本発明の実施形態における係数テーブルの一例である。 本発明の実施形態における係数テーブルの他の例である。 本発明の実施形態おけるデータ処理システムを実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
また、本発明は多くの異なる態様で実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。また、実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らないことに留意されたい。実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
図1は、本発明の実施形態のデータ処理システム100の機能ブロック図である。なお、図1の機能ブロック図に示す各要素は、後述する図11に例示したハードウェア構成を有する情報処理装置において、ハードディスク装置13などに格納されたオペレーティング・システムやオーサリング・ソフトウェアなどのコンピュータ・プログラムをメインメモリ4にロードした上でCPU1に読み込ませ、ハードウェア資源とソフトウェアを協働させることによって実現することができる。
本発明の実施形態のデータ処理システム100は、XML文書記憶部105、XMLスキーマ記憶部110、係数付加部115、係数テーブル220、部分木サイズ計算部125、部分木分割生成部130、XML文書処理部135、および処理履歴記録部140の各構成要素を備える。
本発明の実施形態のXML文書記憶部105、XMLスキーマ記憶部110はそれぞれXMLスキーマと、処理対象のXML文書のデータを格納する。XML文書は、メタ言語であるXML言語を用いて作成された言語に従う電子的な構造化文書である。XMLスキーマは、XML文書の構造を記述する文書である。XML文書の内容は、XML言語の仕様および適用されるXMLスキーマで定義された制約に従わなければならない。本明細書においてXML文書およびXMLスキーマの一例が説明されるが、当業者は非特許文献4、5、6等の標準によって定められた仕様に従って適宜XML文書およびXMLスキーマを準備することができることに留意されたい。
本発明の実施形態の係数生成部115は、対象のXMLスキーマの要素の少なくとも一部について、推測された要素のサイズの指標値を計算するために用いることができる係数および要素サイズを生成することができる。また、係数生成部115は、過去のXML文書の処理履歴に関する情報に基づいて、係数を生成ないし更新することができる。係数付加部115によって生成された係数および要素サイズは、係数テーブル220に格納される。係数テーブル220の詳細は後述する。係数生成部115は、後述するフローチャート300に含まれる各ステップを実行するためのサブモジュールないし手段を少なくとも有する。
本発明の実施形態の部分木サイズ計算部125は、処理対象のXMLスキーマの要素である要素(<element>タグを用いて記述される)をルートとする部分木のサイズの指標値を、係数生成部115によって生成された係数を用いて計算する。部分木サイズ計算部125は、後述するフローチャート400およびサブルーチン500に含まれる各ステップを実行するためのサブモジュールないし手段を少なくとも有する。
本発明の実施形態の部分木分割生成部130は、部分木サイズ計算部125によって推測された部分木のサイズの指標値に基づいて、並列処理ないし分散処理に適するようにXMLスキーマの要素をルートとする木構造を部分木に分割するための分割パターンを生成する。部分木分割生成部130は、後述するフローチャート400およびサブルーチン500に含まれる各ステップを実行するためのサブモジュールないし手段を少なくとも有する。
本発明の実施形態のXML文書処理部135は、XML文書を処理する。本発明の実施形態では、XML文書処理部135によるXML文書の処理は、N個のプロセッサ・コア(本明細書においては単に「コア」と証する)を有するマルチコア・プロセッサによって処理される。このマルチコア・プロセッサは、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供する最大8個のコアを備えるPOWER(商標)7プロセッサを採用することができる。このとき、部分木分割生成部130によって生成された分割パターンを用いて、それぞれのコアに対して適切な大きさの処理すべき部分木が割り当てられる。XML文書処理部135は、後述するフローチャート600に含まれる各ステップを実行するためのサブモジュールないし手段を少なくとも有する。
本発明の実施形態の履歴記憶部140は、XML文書がXML文書処理部135によって処理された結果生じる処理履歴に関する情報をXML文書処理部135から受けて記憶する。本発明の実施形態では、処理履歴に関する情報は、XMLスキーマの変数部分(子要素の出現頻度、テキスト部分のサイズなど)の実際に処理されたXML文書における実績値を少なくとも含む。記憶された処理履歴に関する情報は、係数生成部115に渡され、係数テーブル220に格納された係数および要素サイズを更新するために使用される。
図3は、本発明の実施形態におけるデータ処理システムの全体動作を表現するフローチャート200である。処理はステップ205でスタートし、ステップ210で対象のXMLスキーマの要素(<element>タグを用いて定義される)の少なくとも一部について、スキーマの記述内容に基づいて対応する係数および要素サイズが生成される。生成された係数および要素サイズは、係数テーブル220に格納される。次に、ステップ215において、XMLスキーマの要素をルートとする部分木のサイズの指標値が、ステップ210において生成された係数および要素サイズを用いて計算される。
処理はステップ220に進み、推測された部分木のサイズの指標値に基づいて、並列処理に適するようにそれぞれの要素をルートとする木構造を部分木に分割するための分割パターンが生成される。次に、ステップ225において、ステップ220で得られた分割パターンを用いてXML文書の木構造を分割し、マルチコア・プロセッサのそれぞれのコアが並列処理を行う。
処理はステップ230に進み、さらにXMLスキーマが適用されるXML文書を処理するかどうかが判断される。ステップ230においてさらにXML文書の処理をすると判断された場合、処理はYESの矢印からステップ235に進み、既にステップ225において実行されたXML文書の処理から得られた処理履歴に関する情報を記録する。既に述べた通り、本発明の実施形態では、処理履歴に関する情報は、XMLスキーマの変数部分(子要素の出現頻度、テキスト部分のサイズなど)の実際に処理されたXML文書における実績値を少なくとも含む。
次にステップ240に進み、記憶された処理履歴に関する情報に基づいて係数および要素サイズが更新され、以降、更新された係数および要素サイズを用いてステップ210以降の処理が繰り返される。ステップ230においてさらにXML文書の処理をしないと判断された場合、処理はNOの矢印からステップ245に進み終了する。
図3は、本発明の実施形態におけるデータ処理システムの係数を付加する動作を表現するフローチャート300である。この動作はフローチャート200のステップ210に相当する。処理はステップ305でスタートし、ステップ310で対象のXMLスキーマが読み込まれる。以下にステップ310で読み込まれる本発明の実施形態におけるXMLスキーマの一例について説明する。
図8は、本発明の実施形態におけるXMLスキーマの一例である。XMLスキーマ800は、Root”という名前の要素(<element>タグを用いて宣言される。以下「”Root”要素という)の構造が定義されている。
XMLスキーマの部分805は、”Root”要素の宣言である。部分810は、”Root”要素の最上位階層の構造を定義する。この例では、”Root”要素には、子要素”C”(815)、”A”(820)、”B”(825)がこの順序で出現することが記述されている。
さらに詳細には、部分815は、子要素”C”が1回以上(minOccurs(最小出現回数)の定義が無い場合、1回出現するものとされる)無限回(maxOccurs(最大出現回数)が”unbounded”のとき無限回の出現が許容される)出現することが記述されている。さらに、子要素”C”が下位の要素(便宜上、孫要素という)を有することも記述されている(type=”tns:C”)。
また、部分820には、子要素”B”が1回出現し(minOccursおよびmaxOccursの定義無し)、文字列が記述されさらなる下位の階層がないことが記述されている(type=”xsd:string”)。部分825には、子要素”C”が0回以上1回以下出現し(minOccurs=”0”およびmaxOccursの定義無し)、かつ、文字列が記述されこれ以上下位の階層がないことが記述されている(type=”xsd:string”)
部分830は、”C”要素の最上位階層の構造を定義する。この例では、”Root”要素には、子要素”C1”(835)が1回以上無限回出現し、整数が記述されさらなる下位の階層がないことが記述されている。
なお、”Root”要素は、スキーマ800において独立した要素として<element>タグを用いて宣言されているので、XML文書において独立して出現することができる。これに対して、要素”A”、”B”、”C”、”C1”は他の要素の子要素として宣言されているので、XML文書において独立して使用することができず、XMLスキーマに記述された他の要素の子要素としてのみ出現することのみが許される。
図3のフローチャート300に戻り、ステップ315でXMLスキーマに最初に出現する要素(<element>タグにより特定される)を選択する。次にステップ320において、選択された要素に対して係数および要素サイズを計算して割り当てる。要素サイズは、当該要素が呼び出している下位の要素(子要素を含む)を考慮しない、当該要素の階層のみを考慮したその要素のサイズの指標値である。ステップ320では様々な手法に従って係数および要素サイズを割り当てることが考えられるが、本発明の実施形態では、以下の規則に従って係数および要素サイズが割り当てられるものとする。なお、本発明の実施形態では、割り当てられた係数および要素サイズは後述する係数テーブルに格納される。
規則1:<element>のタグによって定義される要素の要素サイズはeとする。データタイプが”xsd:string”であるテキスト部分のサイズは2eとする。データタイプがxsd:string以外の単純型であるテキスト部分のサイズは0.5eとする。
規則2:<element>のタグによって定義される要素の係数は、要素の出現回数が固定値であるときはその固定値であるとする。例えば、minOccurs(要素の最小出現回数)、maxOccurs(要素の最大出現回数)の定義がない要素の出現回数は1回であるから、係数は1となる。
規則3:minOccursおよびmaxOccurs等により定義される出現回数に変動幅がある要素の係数は、当該要素の出現回数の変動幅の中間値とする。
規則4:maxOccurs=“unbounded”(要素の最大出現回数の制限が無いことを表す)である要素の係数は3とする。
また、XMLスキーマに出現する要素名の平均サイズに基づいてeの値を決定して代入するようにしてもよい。例えば、 eの値を、(要素名の平均サイズ)*2+5とすることができる。なお、要素名の平均サイズはXML文書の処理履歴に基づいて計算することができるが、処理履歴が無い場合はデフォルト値を代入するようにすることができる。
処理はステップ325に進み、対象のXMLスキーマにいまだ係数および要素サイズが割り当てられていない要素が存在するかどうかが判断される。ステップ325で存在すると判断された場合、処理はYESの矢印からステップ330へ進み、いまだ係数および要素サイズおよび要素サイズが割り当てられていない要素のうち最初のものを選択する。続いて処理はステップ320に戻り、選択された要素に対して係数の割り当てが行われる。ステップ325で存在しないと判断された場合、処理はNOの矢印からステップ335へ進み終了する。
フローチャート300に従って生成された係数および要素サイズは、係数テーブルに格納される。図9は、本発明の実施形態における、XMLスキーマ800について生成された係数テーブルの一例である。この場合、要素名と係数および要素サイズが関連付けられて記憶されていることに留意されたい。また、図10は、本発明の実施形態における、XMLスキーマ800について生成された係数テーブルの他の例である。この場合、各要素の絶対パス(XPath表現)と係数および要素サイズが関連付けられて記憶されていることに留意されたい。なお、絶対パスを用いた係数テーブルを用いることによって、処理履歴に関する情報を用いたフィードバックを繰り返される要素のそれぞれごとに行うことができる。その結果、繰り返される要素それぞれごとに異なる係数および要素サイズを有することができるので、より精度の高い分割パターンを形成できる場合があることに留意されたい。
図4は、本発明の実施形態におけるデータ処理システムの部分木のサイズを推測する動作を表現するフローチャート400である。この動作はフローチャート200のステップ215に相当する。処理はステップ405でスタートし、ステップ410で対象のXMLスキーマの最初の要素が選択される。処理はステップ415に進み、選択された要素に子要素が存在するかどうかが判断される。ステップ415で存在すると判断された場合、処理はステップ420に進み、サブルーチン500が実行される。以下、図5を用いてサブルーチン500を説明する。
図5は、本発明の実施形態におけるデータ処理システムの部分木のサイズを推測する動作のサブルーチン500を表現するフローチャートである。処理はステップ505でスタートし、ステップ510で対象のXML要素の子要素のうちサイズが確定していない最初のものが選択される。次にステップ515において、選択された子要素がスタックに存在するかどうかを判断する。
ステップ515において存在すると判断された場合は、処理はYESの矢印からステップ560へ進み選択された子要素のサイズをこの呼び出しでのみ0として仮確定する。この処理は、同じ子要素が再帰的に存在しているためにサイズが確定しない場合に対処するためである。その後処理はステップ550に進むことになる。
ステップ515において存在しないと判断された場合、処理はNOの矢印からステップ520に進み、選択された子要素がスタックに格納される。次にステップ525において選択された子要素にさらに下位の要素(便宜的に「孫要素」と呼ぶ)が存在するかどうかが判断される。ステップ525において孫要素が存在すると判断された場合、サブルーチン600が再帰的に呼び出され、その結果得られた孫要素のサイズが代入された上でステップ540に進むこととなる。
ステップ525において孫要素が存在しないと判断された場合、処理はNOの矢印からステップ540に進む。ステップ540では、孫要素のサイズと選択された子要素自体のサイズの合計が計算され、選択された子要素の部分木のサイズが確定される。次にステップ545において選択された子要素がスタックから削除され、次にステップ550において、対象の要素にまだサイズが確定していない子要素が存在するかどうかが判断される。
ステップ550で存在すると判断された場合、処理はYESの矢印からステップ555へ進み、サイズが確定していない別の子要素が選択される。次いで、処理はステップ515に戻り、選択された子要素について同様の処理がなされる。ステップ550で存在しないと判断された場合、処理はNOの矢印からステップ565へ進み、子要素のサイズを合計してサブルーチンの最小要素のサイズとして結果を返す。処理はステップ570に進み、サブルーチン500が終了する。
説明は図4に戻り、ステップ420でサブルーチン500が実行された後、ステップ425においてサブルーチン500から返された子要素のサイズの値が代入される。処理はステップ430に戻り、子要素のサイズと選択された要素自体のサイズの合計が計算され、選択された要素をルートとする部分木のサイズが確定される。次にステップ435において、XMLスキーマにまだサイズを確定していない要素が存在するかどうかが判断される。
ステップ435において存在すると判断された場合、処理はYESの矢印からステップ440に進み、サイズが確定していない要素が選択され、次いでステップ415以降の同様の処理が選択された要素に対して実行される。ステップ435において存在しないと判断された場合、処理はNOの矢印からステップ445へ進み終了する。
本発明の実施形態において、上述のフローチャート400に従ってスキーマ800を処理した場合、要素”Root”、”A”、”B”、”C”、”C1”をルートとする部分木のサイズの指標値は、それぞれ22e、3e、3e、5.5e、1.5eとなる。
図6は、本発明の実施形態におけるデータ処理システムの分割パターンの生成動作を表現するフローチャート600である。本発明の実施形態では、XML文書の木構造をN個(NはXML文書の部分木の処理に使用される並列動作可能なプロセッサ単位であるマルチコア・プロセッサのコアの数である)に分割した場合に、分割後の部分木のサイズがほぼ均等となる分割パターンが生成される。この動作はフローチャート200のステップ220に相当する。処理はステップ605でスタートし、ステップ610で最初の子要素が選択されて分割グループに入れられる。次にステップ615で選択された子要素の部分木のサイズを当該分割グループの合計サイズとしてセットする。
処理はステップ620に進み、要素全体のサイズ(L)を分割すべき部分木の数(N)で割った閾値(L/N)よりもステップ615でセットされた分割グループの合計サイズが小さいかどうかが判定される。Nは例えば、当該スキーマを呼び出すXML文書の部分木を並列処理するプロセッサ(またはコア)の数とすることができる。
ステップ620において合計サイズが小さくないと判断された場合、処理はNOの矢印からステップ625に進み、選択された子要素にさらに下位の要素(孫要素という)が存在するかどうかが判断される。ステップ625で孫要素が存在すると判断された場合、処理はYESの矢印からステップ630に進み、分割グループから子要素を除外し代わりに孫要素を選択して分割グループに入れたで、ステップ615に戻る。ステップ625で孫要素が存在しないと判断された場合、処理はNOの矢印からステップ655に進む。
ステップ620において合計サイズが小さいと判断された場合、処理はステップ635に進み、同階層の要素が存在するかどうかが判断される。ステップ635において同階層の要素が存在しないと判断された場合は、処理はNOの矢印から755へ進む。他方、ステップ635で同階層の要素が存在すると判断された場合、処理はYESの矢印からステップ640に進み、当該同階層の要素を選択して分割グループに追加し合計サイズを加算する。次いで、ステップ645で合計サイズが閾値(L/N)を上回ったかどうかが判断される。
ステップ645で閾値を上回っていないと判断された場合、処理はNOの矢印からステップ635に戻り、さらなる同階層の要素の有無について同様の処理がなされる。ステップ645で閾値を上回ったと判断された場合、処理はYESの矢印からステップ650に進み、最後に選択された要素を除外して、ステップ655に進む。
ステップ655では、その時点での分割グループを出力される分割パターンに含まれる分割グループの1つとして確定する。次いで処理はステップ660へ進み、文書順で次の要素が存在するかどうかが判断される。ステップ660で存在すると判断された場合、処理はYESの矢印からステップ665に進み、文書順で次の要素が上位要素を飛び越える位置にあるとき、飛び越えた要素を最後に追加した分割グループに追加する。次いで、処理はステップ670に進み文書順で次の要素が選択され、ステップ610に戻り同様の処理が繰り返される。
ステップ660で存在しないと判断された場合、処理はNOの矢印からステップ675に進み、分割グループに含まれていない上位要素を最後に処理をした分割グループに追加する。その後処理はステップ680へ進み終了する。これらの処理によって対象の要素の分割パターンが得られることが理解される。
本発明の実施形態において、スキーマ800を処理するうえで分割すべき部分木の数(N)が4であると仮定すると、”Root”要素のサイズ(L)は22eであるから、閾値(L/N)は5.5eとなる。上述のフローチャート600に従って、スキーマ800を分割すると、「要素”Root”、”A”、”B”」の分割グループ(サイズ:5.5e)が1つと、「要素”C”、”C1”」の分割グループ(サイズ:5.5e)が3つ、という4つの分割グループからなる分割パターンが得られることとなる。
図7は、本発明の実施形態におけるデータ処理システムのXML文書の処理動作を表現するフローチャート700である。この動作はフローチャート200のステップ225に相当する。このフローチャート700の処理においては、XML文書に既に得られた分割パターンを適用し、木構造を適切に分割して並列処理を効果的に実行する。処理はステップ705でスタートし、ステップ710でそれぞれの分割部分の先頭の要素がルート要素からのパスとして準備される。次に、ステップ715において、対象のXML文書の読み取りが開始され、ルート要素からのパスをチェックしながらXML文書が読み込まれていくこととなる。
次いで、ステップ720において、分割の先頭のパスの位置に到達したかどうかが判断される。ステップ720において到達していないと判断された場合、処理はNOの矢印からステップ715に戻り、XML文書の読み込みが継続される。ステップ720において到達したと判断された場合、処理はYESの矢印からステップ725に進み、ルート要素からのパスをチェックしながらXML文書が読み込まれる。
処理はステップ730に進み、次の分割の先頭または文書末へ到達したかどうかが判断される。ステップ730で到達していないと判断された場合、処理はNOの矢印からステップ725に進み、XML文書の読み込みが継続される。ステップ730で到達したと判断された場合、処理はYESの矢印からステップ735に進み、分割部分の取り出しが実行される。次いでステップ740に進み文書末かどうかが判断される。文書末でない場合は、処理はステップ720に戻り同様の処理が繰り返され、文書末である場合は、ステップ745に進み終了する。
なお、本発明の実施形態ではフローチャート700における処理の履歴に関する情報が履歴記憶部に記憶され、この履歴情報に基づいて係数テーブル内の係数および要素サイズが更新される。この処理はフローチャート200のステップ235、240に相当する。この手法は同じXMLスキーマに従うXML文書は木構造、データサイズなどが似ていることが多いと考えられるので効果的な手法である。なお、この履歴情報は、実際に処理しようとするXML文書を用いて得ることもできるが、あらかじめ典型的なXML文書を与えて得ることもできる。
既に述べた通り、本発明の実施形態では、処理履歴に関する情報は、XMLスキーマの変数部分(子要素の出現頻度、テキスト部分のサイズなど)の実際に処理されたXML文書における実績値を少なくとも含む。具体的には、本発明の実施形態では少なくとも以下の情報が履歴として記録され、係数および要素サイズが更新される。
(1)要素の出現回数の頻度に変動幅がある要素について、実際のXML文書でのその要素の出現頻度。例えば、”minOccurs=0”の要素が90%出現する履歴がある場合は、当該要素の係数を0.9に更新する。また、例えば、”maxOccurs=”unbounded””の要素が平均10回実際のXML文書で出現している履歴がある場合は、係数を10に更新する。
(2)テキスト部分の実際のサイズ。この履歴からテキスト部分のサイズの平均を計算してXMLスキーマのテキスト部分のサイズの指標値を決定する。
(3)要素名の実際のサイズ。実際に出現した要素名のサイズの平均から要素名のサイズの指標値を決定する。
また、前記処理履歴に関する情報に基づいて、係数の少なくとも一部が2以上設定されるようにしてもよい。例えば、”maxOccurs=”unbounded”の要素について、3回出現することと7回出現することが多い処理履歴があるときに、それぞれの場合について別の係数を設定することが考えられる。そして、以降に処理するXML文書における当該要素の出現回数に応じて処理対象の構造化文書ないし要素のタイプを分類し、タイプに応じていずれか一方が適用されるようにすることができる。このようにすることで、より精度の高い分割が可能となる。
以上、本発明の実施形態のXMLスキーマの一例を用いて説明したが、詳細なXML言語、XMLスキーマ言語の仕様は非特許文献4、5および6などに記載され当業者によく知られたものである。よって、本明細書を読んだ当業者はその内容を補足、追加、変更等をしてバリエーションを作成することができるので、さらなる詳細な説明は省略する。
図13は、本発明の実施の形態によるデータ処理システム100を実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。情報処理装置は、バス2に接続されたCPU(中央処理装置)1とメインメモリ4を含んでいる。本発明の実施形態におけるCPU1はマルチコアのプロセッサであるものとする。CPU1の各コアに分割されたXML文書内の部分が送られ、並列処理がなされるものとする。
ハードディスク装置13、30、およびCD−ROM装置26、29、フレキシブル・ディスク装置20、MO装置28、DVD装置31のようなリムーバブル・ストレージ(記録メディアを交換可能な外部記憶システム)がフロッピーディスクコントローラ19、IDEコントローラ25、SCSIコントローラ27などを経由してバス2へ接続されている。
フレキシブル・ディスク、MO、CD−ROM、DVD−ROMのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置13、30、ROM14には、オペレーティング・システムと協働してCPU等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。メインメモリ4にロードされることによってコンピュータ・プログラムは実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
情報処理装置は、キーボード/マウス・コントローラ5を経由して、キーボード6やマウス7のような入力デバイスからの入力を受ける。情報処理装置は、視覚データをユーザに提示するための表示装置11にDAC/LCDC10を経由して接続される。
情報処理装置は、ネットワーク・アダプタ18(イーサネット(R)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。図示はされていないが、パラレルポートを介してプリンタと接続することや、シリアルポートを介してモデムを接続することも可能である。
以上の説明により、本発明の実施の形態によるデータ処理システムを実現するのに好適な情報処理装置は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
本発明の実施の形態において使用される情報処理装置の各ハードウェア構成要素を、複数のマシンを組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。
本発明の実施の形態のデータ処理システムは、マイクロソフト・コーポレーションが提供するWindows(R)オペレーティング・システム、アップル・コンピュータ・インコーポレイテッドが提供するMacOS(R)、X Window Systemを備えるUNIX(R)系システム(たとえば、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するAIX(R))のような、GUI(グラフィカル・ユーザー・インターフェース)マルチウインドウ環境をサポートするオペレーティング・システムを採用する。
以上から、本発明の実施の形態において使用されるデータ処理システムは、特定のマルチウインドウ・オペレーティング・システム環境に限定されるものではないことを理解することができる。
以上、本発明の実施形態によれば、構造化文書であるXML文書の木構造を効果的に分割するためのシステム、ソフトウェア、および方法を提供することができる。本発明の実施形態では、XMLスキーマから分割パターンを得る。その後、分割パターンに従ってXML文書を分割してマルチコア・プロセッサの複数のコアが並列処理するので、効率よく適切にXML文書を処理することができることが容易に理解できる。
また、本発明は、ハードウェア、ソフトウェア、またはハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実行において、所定のプログラムを有するデータ処理システムにおける実行が典型的な例として挙げられる。かかる場合、該所定プログラムが該データ処理システムにロードされ実行されることにより、該プログラムは、データ処理システムを制御し、本発明にかかる処理を実行させる。このプログラムは、任意の言語・コード・表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接、または1.他の言語・コード・表記への変換、2.他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。
もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、MO、CD−ROM、DVD、ハードディスク装置、ROM、MRAM、RAM等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。かかるプログラムは、記録媒体への格納のために、通信回線で接続する他のデータ処理システムからダウンロードしたり、他の記録媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、または複数に分割して、単一または複数の記録媒体に格納することもできる。また、様々な形態で、本発明を実施するプログラム製品を提供することも勿論可能であることにも留意されたい。
上記の実施の形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。例えば、本発明の実施形態では、マルチコア・プロセッサのコアによる並列処理を用いて説明をしたが、分割した部分木を別体のプロセッサによって並列処理をしてもよい。また、本発明の実施形態では、XML言語、XML Schemaに従うXML文書およびXMLスキーマを用いたが、SGML、HTML、XHTMLのいずれかのようなメタ言語に従う構造化文書や、DTD、RELAX、RELAX NG、NVDL、Schematronのようなスキーマ言語に従うスキーマファイルを用いてもよい。そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。

Claims (18)

  1. コンピュータ処理によって、電子化された構造化文書のスキーマによって定義される木構造に基づいて前記構造化文書の木構造を分割するための方法であって、
    前記スキーマによって定義される木構造に含まれる1以上の要素のうちの少なくとも一部について、各要素をルートとする部分木のサイズの指標値を計算するステップと、
    前記スキーマが適用される構造化文書の木構造を分割するために用いられる分割パターンであって、当該構造化文書の木構造を分割した場合に分割後の部分木のサイズが所定の基準を満たす分割パターンを、前記指標値を用いて決定するステップと、
    前記スキーマによって定義される木構造に含まれる1以上の要素に係数を割り当てるステップとを含み、
    前記計算するステップが、計算対象の要素の子要素の存在を判断するステップと、子要素が存在する場合に子要素のサイズを計算するステップと、サイズが計算された子要素のサイズと計算対象の要素自体のサイズの合計を計算するステップと、を含み、前記各要素をルートとする部分木のサイズの指標値が前記係数を用いて計算される、
    方法。
  2. 前記係数の少なくとも一部が、前記スキーマが適用される構造化文書の処理履歴に関する情報に基づいて計算される、請求項に記載の方法。
  3. 前記処理履歴に関する情報が、処理された構造化文書の前記スキーマの変数部分に関する情報である、請求項に記載の方法。
  4. 前記スキーマの変数部分が、子要素の出現頻度、テキスト部分のサイズのいずれか一方または両方を含む、請求項に記載の方法。
  5. 前記係数の少なくとも一部が、前記処理履歴に関する情報に基づいて2以上設定され、処理対象の構造化文書のタイプに応じていずれか一方が適用される、請求項に記載の方法。
  6. 前記構造化文書の処理履歴に関する情報が、あらかじめ準備された典型的な構造化文書を処理することで生成される、請求項に記載の方法。
  7. 前記係数の少なくとも一部が、前記スキーマの記述内容に基づいて計算される、請求項に記載の方法。
  8. 前記係数の少なくとも一部が、前記スキーマに含まれる要素名のサイズに基づいて決定される、請求項に記載の方法。
  9. 前記係数の少なくとも一部が、対応する要素の要素名と関連付けて記憶される、請求項に記載の方法。
  10. 前記係数の少なくとも一部が、対応する要素の絶対パスと関連付けて記録される、請求項に記載の方法。
  11. 前記各要素をルートとする部分木のサイズの指標値が、前記スキーマが適用される構造化文書の処理履歴を考慮して計算される、請求項1に記載の方法。
  12. 前記分割を決定するステップが、前記スキーマが適用される構造化文書の木構造を分割した場合に、分割後の部分木のサイズが均等となる分割パターンを決定するステップを含む、請求項1に記載の方法。
  13. 前記分割を決定するステップが、前記構造化文書の部分木の処理に使用される並列動作可能なプロセッサ単位の数に構造化文書の木構造を分割をするための分割パターンを決定するステップを含む、請求項1に記載の方法。
  14. 前記プロセッサ単位がデータ処理システムのマルチコア・プロセッサのコアである、請求項13に記載の方法。
  15. 前記構造化文書が、SGML、XML、HTML、XHTMLのいずれかのようなメタ言語のフォーマットに従うものである、請求項1に記載の方法。
  16. 前記スキーマが、XML Schema、DTD、RELAX、RELAX NG、NVDL、Schematronのいずれかのようなスキーマ言語のフォーマットに従うものである、請求項1に記載の方法。
  17. 請求項1〜16のいずれかに記載の方法の各ステップをコンピュータに実行させる、プログラム。
  18. 電子的な構造化文書のスキーマによって定義される木構造に基づいて前記構造化文書の木構造を分割するためのシステムであって、
    前記スキーマによって定義される木構造に含まれる1以上の要素のうちの少なくとも一部について、各要素をルートとする部分木のサイズの指標値を計算する計算部と、
    前記スキーマが適用される構造化文書の木構造を分割するために用いられる分割パターンであって、当該構造化文書の木構造を分割した場合に分割後の部分木のサイズが所定の基準を満たす分割パターンを、前記指標値を用いて決定する決定部と、
    前記スキーマによって定義される木構造に含まれる1以上の要素に係数を割り当てる割当部とを備え、
    前記計算部が、計算対象の要素の子要素の存在を判断し、子要素が存在する場合に子要素のサイズを計算し、サイズが計算された子要素のサイズと計算対象の要素自体のサイズの合計を計算し、前記各要素をルートとする部分木のサイズの指標値が前記係数を用いて計算される、
    システム。
JP2010143356A 2010-06-24 2010-06-24 構造化文書の木構造を分割するための方法、プログラムおよびシステム Expired - Fee Related JP5480034B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010143356A JP5480034B2 (ja) 2010-06-24 2010-06-24 構造化文書の木構造を分割するための方法、プログラムおよびシステム
US13/154,823 US8880557B2 (en) 2010-06-24 2011-06-07 Method, program, and system for dividing tree structure of structured document

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010143356A JP5480034B2 (ja) 2010-06-24 2010-06-24 構造化文書の木構造を分割するための方法、プログラムおよびシステム

Publications (2)

Publication Number Publication Date
JP2012008754A JP2012008754A (ja) 2012-01-12
JP5480034B2 true JP5480034B2 (ja) 2014-04-23

Family

ID=45353530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010143356A Expired - Fee Related JP5480034B2 (ja) 2010-06-24 2010-06-24 構造化文書の木構造を分割するための方法、プログラムおよびシステム

Country Status (2)

Country Link
US (1) US8880557B2 (ja)
JP (1) JP5480034B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254251A1 (en) * 2011-03-03 2012-10-04 The Governors Of The University Of Alberta SYSTEMS AND METHODS FOR EFFICIENT TOP-k APPROXIMATE SUBTREE MATCHING
US8788926B1 (en) * 2012-01-31 2014-07-22 Google Inc. Method of content filtering to reduce ink consumption on printed web pages
US9063959B2 (en) 2013-01-24 2015-06-23 International Business Machines Corporation Decomposing XML schema documents into subsets
DE102014110590A1 (de) * 2013-07-26 2015-01-29 Electronics And Telecommunications Research Institute Parallel-Baum-Etikettierungsvorrichtung und -verfahren zum Verarbeiten eines XML-Dokuments
US10387386B2 (en) * 2015-08-11 2019-08-20 International Business Machines Corporation Automatic attribute structural variation detection for not only structured query language database
US10579629B2 (en) * 2017-01-13 2020-03-03 International Business Machines Corporation Message parser runtime choices
US10592313B2 (en) 2017-01-13 2020-03-17 International Business Machines Corporation Graph optimized message model parser
CN112069794B (zh) * 2020-08-28 2024-04-30 北京百度网讯科技有限公司 文本预测方法、装置、设备以及存储介质
KR102571209B1 (ko) * 2021-08-13 2023-08-25 주식회사 신한디에스 문서비교방법 및 그 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108844A (ja) 2000-09-28 2002-04-12 Hitachi Software Eng Co Ltd Xmlデータ分割編集装置
FR2818409B1 (fr) * 2000-12-18 2003-03-14 Expaway Procede pour diviser des documents structures en plusieurs parties
JP2002312339A (ja) * 2001-04-09 2002-10-25 Nec Corp Wwwサーバ/クライアントシステム、そのシステムにおける構文解析方法及び構文解析のためのプログラム
JP3905851B2 (ja) * 2003-03-24 2007-04-18 株式会社東芝 構造化文書の分割方法及びプログラム
WO2005006192A1 (ja) 2003-07-10 2005-01-20 Fujitsu Limited 構造化文書処理方法及び装置並びに記憶媒体
JP2007027996A (ja) 2005-07-13 2007-02-01 Konica Minolta Holdings Inc ネットワークにおける論理接続方法および情報処理装置
JP2007193660A (ja) 2006-01-20 2007-08-02 Seiko Epson Corp 情報管理装置、情報管理方法及びそのプログラム
JP4489029B2 (ja) * 2006-02-01 2010-06-23 株式会社東芝 構造化文書検索システムおよび構造化文書検索方法
JP2009064392A (ja) * 2007-09-10 2009-03-26 Hitachi Ltd 構造化文書処理方法、構造化文書処理プログラム、および、構造化文書処理装置

Also Published As

Publication number Publication date
US8880557B2 (en) 2014-11-04
US20110320497A1 (en) 2011-12-29
JP2012008754A (ja) 2012-01-12

Similar Documents

Publication Publication Date Title
JP5480034B2 (ja) 構造化文書の木構造を分割するための方法、プログラムおよびシステム
JP4039484B2 (ja) XPath評価方法、これを用いたXML文書処理システム及びプログラム
Meyerovich et al. Fast and parallel webpage layout
US20220092256A1 (en) Method, system, and computing device for facilitating private drafting
JP5496853B2 (ja) 構造化文書を分類するためのルールを生成するための方法、並びにそのコンピュータ・プログラム及びコンピュータ
JP5256280B2 (ja) チーム環境におけるコラボレーション開発情報の使用
JP4625464B2 (ja) 文書処理装置
JP2005018776A (ja) クエリ中間言語の方法およびシステム
JP2006011739A (ja) オントロジを利用する装置、コンピュータシステムおよびデータ処理方法
US20070150493A1 (en) Structured document processing apparatus, method, and program
US7865481B2 (en) Changing documents to include changes made to schemas
US20080235193A1 (en) Apparatus, method, and computer program product for processing query
CN101295311A (zh) 一种大规模发布订阅系统的语义匹配算法
JP5398213B2 (ja) 生成装置、プログラムおよび生成方法
Bidoit et al. Processing XML queries and updates on map/reduce clusters
JP2008015558A (ja) コンテンツを作成するためのオーサリング・システム、ソフトウェア、および方法
US20140331120A1 (en) Document order management via binary tree projection
WO2006051869A1 (ja) 文書処理装置及び文書処理方法
WO2007081017A1 (ja) 文書処理装置
US9378301B2 (en) Apparatus, method, and computer program product for searching structured document
US20080276230A1 (en) Processing bundle file using virtual xml document
US20070244860A1 (en) Querying nested documents embedded in compound XML documents
US7953714B2 (en) Method for maintaining parallelism in database processing using record identifier substitution assignment
US7958440B2 (en) Bursting multiple elements in a single object in a content management system
JP2009059250A (ja) データ処理装置及びデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140213

R150 Certificate of patent or registration of utility model

Ref document number: 5480034

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees