(57)【特許請求の範囲】
【請求項１】
コンピュータ処理によって、電子化された構造化文書のスキーマによって定義される木構造に基づいて前記構造化文書の木構造を分割するための方法であって、
前記スキーマによって定義される木構造に含まれる１以上の要素のうちの少なくとも一部について、各要素をルートとする部分木のサイズの指標値を計算するステップと、
前記スキーマが適用される構造化文書の木構造を分割するために用いられる分割パターンであって、当該構造化文書の木構造を分割した場合に分割後の部分木のサイズが所定の基準を満たす分割パターンを、前記指標値を用いて決定するステップと、
前記スキーマによって定義される木構造に含まれる１以上の要素に係数を割り当てるステップとを含み、
前記計算するステップが、計算対象の要素の子要素の存在を判断するステップと、子要素が存在する場合に子要素のサイズを計算するステップと、サイズが計算された子要素のサイズと計算対象の要素自体のサイズの合計を計算するステップと、を含み、前記各要素をルートとする部分木のサイズの指標値が前記係数を用いて計算される、
方法。
【請求項２】
前記係数の少なくとも一部が、前記スキーマが適用される構造化文書の処理履歴に関する情報に基づいて計算される、請求項１に記載の方法。
【請求項３】
前記処理履歴に関する情報が、処理された構造化文書の前記スキーマの変数部分に関する情報である、請求項２に記載の方法。
【請求項４】
前記スキーマの変数部分が、子要素の出現頻度、テキスト部分のサイズのいずれか一方または両方を含む、請求項３に記載の方法。
【請求項５】
前記係数の少なくとも一部が、前記処理履歴に関する情報に基づいて２以上設定され、処理対象の構造化文書のタイプに応じていずれか一方が適用される、請求項２に記載の方法。
【請求項６】
前記構造化文書の処理履歴に関する情報が、あらかじめ準備された典型的な構造化文書を処理することで生成される、請求項１に記載の方法。
【請求項７】
前記係数の少なくとも一部が、前記スキーマの記述内容に基づいて計算される、請求項１に記載の方法。
【請求項８】
前記係数の少なくとも一部が、前記スキーマに含まれる要素名のサイズに基づいて決定される、請求項１に記載の方法。
【請求項９】
前記係数の少なくとも一部が、対応する要素の要素名と関連付けて記憶される、請求項１に記載の方法。
【請求項１０】
前記係数の少なくとも一部が、対応する要素の絶対パスと関連付けて記録される、請求項１に記載の方法。
【請求項１１】
前記各要素をルートとする部分木のサイズの指標値が、前記スキーマが適用される構造化文書の処理履歴を考慮して計算される、請求項１に記載の方法。
【請求項１２】
前記分割を決定するステップが、前記スキーマが適用される構造化文書の木構造を分割した場合に、分割後の部分木のサイズが均等となる分割パターンを決定するステップを含む、請求項１に記載の方法。
【請求項１３】
前記分割を決定するステップが、前記構造化文書の部分木の処理に使用される並列動作可能なプロセッサ単位の数に構造化文書の木構造を分割をするための分割パターンを決定するステップを含む、請求項１に記載の方法。
【請求項１４】
前記プロセッサ単位がデータ処理システムのマルチコア・プロセッサのコアである、請求項１３に記載の方法。
【請求項１５】
前記構造化文書が、ＳＧＭＬ、ＸＭＬ、ＨＴＭＬ、ＸＨＴＭＬのいずれかのようなメタ言語のフォーマットに従うものである、請求項１に記載の方法。
【請求項１６】
前記スキーマが、ＸＭＬ  Ｓｃｈｅｍａ、ＤＴＤ、ＲＥＬＡＸ、ＲＥＬＡＸ  ＮＧ、ＮＶＤＬ、Ｓｃｈｅｍａｔｒｏｎのいずれかのようなスキーマ言語のフォーマットに従うものである、請求項１に記載の方法。
【請求項１７】
請求項１〜１６のいずれかに記載の方法の各ステップをコンピュータに実行させる、プログラム。
【請求項１８】
電子的な構造化文書のスキーマによって定義される木構造に基づいて前記構造化文書の木構造を分割するためのシステムであって、
前記スキーマによって定義される木構造に含まれる１以上の要素のうちの少なくとも一部について、各要素をルートとする部分木のサイズの指標値を計算する計算部と、
前記スキーマが適用される構造化文書の木構造を分割するために用いられる分割パターンであって、当該構造化文書の木構造を分割した場合に分割後の部分木のサイズが所定の基準を満たす分割パターンを、前記指標値を用いて決定する決定部と、
前記スキーマによって定義される木構造に含まれる１以上の要素に係数を割り当てる割当部とを備え、
前記計算部が、計算対象の要素の子要素の存在を判断し、子要素が存在する場合に子要素のサイズを計算し、サイズが計算された子要素のサイズと計算対象の要素自体のサイズの合計を計算し、前記各要素をルートとする部分木のサイズの指標値が前記係数を用いて計算される、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、情報処理技術に関する。より詳細には、本発明は、構造化文書の木構造を分割するための方法、プログラム、およびシステムに関する。
【背景技術】
【０００２】
近年のコンピュータの普及により、企業や個人が電子データであるコンテンツを作成してインターネット上で交換したり、公開したりすることが日常的に行われている。多くのコンテンツは、ＳＧＭＬ、ＨＴＭＬ、ＸＭＬ、ＸＨＴＭＬのようなメタ言語のフォーマットに従う電子化された構造化文書として作成され、様々なコンピュータ上で処理される。また、かかる構造化文書については、ＸＭＬ  Ｓｃｈｅｍａ、ＤＴＤ、ＲＥＬＡＸ、ＲＥＬＡＸ  ＮＧ、ＮＶＤＬ、Ｓｃｈｅｍａｔｒｏｎのようなスキーマ言語に従って構造化文書の文書構造を定義するスキーマ・データが作成されることがある。
【０００３】
また、近年、インターナショナル・ビジネス・マシーンズ・コーポレーション（IBM）が提供するＰＯＷＥＲ（商標）７プロセッサのようなマルチコア・プロセッサが普及し、多くのコンピュータにおいて採用されている。一般的に、マルチコア・プロセッサは、それぞれが並列動作可能である複数のコア（演算ユニット）を有する。例えばＸＭＬ文書をこのようなマルチコア上で処理する場合、タスクをそれぞれのコアに適切に割り振ることが処理効率を向上させるために重要である。
【０００４】
業界の各社も、構造化文書を処理するための技術を開発している。背景技術として、例えば、特開２００７−０２７９９６４号公報（特許文献１）は、検索対象の候補であるブロックを含む情報をマークアップ言語に基づいて所要の大きさのブロックに分けるブロック分割手段と、検索対象の分野でユニークな複数のキーワードと対象キーワードの出現頻度を示す値とが一対で記憶される記憶媒体と、前記各ブロック内で使用されているキーワードと前記記憶媒体に記憶されている情報とに基づいて当該各ブロックに点数付けを行う点数付け手段と、前記点数が所定範囲内のブロックを検索対象とする検索対象特定手段とを備える、情報検索装置を開示する。
【０００５】
他の背景技術として、国際公開ＷＯ２００５／６１９２号公報（特許文献２）は、タグを含む構造化文書をテキストのままメモリ手段に保持する構造化文書保持ステップと、  該構造化文書の文書構造情報を、該構造化文書の各タグの位置と関連づけて該メモリ手段に保持する文書構造保持ステップと、処理要求に応じて、該文書構造情報に従って該構造化文書の木構造を辿って要素に関する情報を取得し、取得した情報に基づいて該構造化文書の一部を取得する処理ステップを含む構造化文書処理方法を開示する。該構造化文書保持ステップは、該構造化文書を予め決めたサイズの複数の分割部分に分割し、該構造化文書を該分割部分で保持することで、任意の分割部分の更新に伴う該任意の分割部分のサイズの変化を該分割部分の境界で吸収する。
【０００６】
他の背景技術として、特開２００７−０１９３６６０号公報（特許文献３）は、記憶装置の階層状の木構造の情報を管理する情報管理装置を開示する。装置は、記憶装置の木構造の情報を所定のマークアップ言語で記述した木構造ファイルを記憶可能な情報記憶手段と、記憶装置の木構造の状態及び情報管理装置の処理能力のうち少なくとも一つに基づいて木構造ファイルを分割する処理を実行するか否かを判定する分割判定手段と、分割判定手段によって木構造ファイルを分割する処理を実行しないと判定されたときには該木構造ファイルがそのまま情報記憶手段に保存されるよう情報記憶手段を制御し、分割判定手段によって木構造ファイルを分割する処理を実行すると判定されたときには該木構造の一部が含まれる所定の分割状態となるよう該木構造ファイルの分割処理を実行し該分割された木構造ファイルのそれぞれが情報記憶手段に保存されるよう情報記憶手段を制御する制御手段を備える。
【０００７】
他の背景技術として、特開２００２−０１０８８４４号公報（特許文献４）は、ＸＭＬデータを編集・検索する装置であって、入力元ＸＭＬデータのタグとタグの値に基づいて、該入力元ＸＭＬデータを解析してタグリストを生成する手段と、タグリストから選択された主キー対象タグと分割対象タグを用いてＸＭＬデータを分割する手段とを有することを特徴とするＸＭＬデータ分割編集装置を開示する。ＸＭＬデータ分割編集装置において、ＸＭＬデータを分割する際に、主キー対象タグの値と分割ＸＭＬデータとの関連付けを示した主キーインデックスと、分割対象タグの値をタグの値として階層化した分割対象タグツリー構造を作成する。
【０００８】
Wei Lu ほかによる「Parallel XML Processing by Work Stealing」（非特許文献１）は、以下の背景技術を開示する。
“[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」（非特許文献２）は、以下の背景技術を開示する。
“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」（非特許文献３）は、以下の背景技術を開示する。
“[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.”
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−０２７９９６４号公報
【特許文献２】国際公開第ＷＯ２００５／６１９２号パンフレット
【特許文献３】特開２００７−０１９３６６０号公報
【特許文献４】特開２００２−０１０８８４４号公報
【非特許文献】
【００１２】
【非特許文献１】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)
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ＸＭＬ文書のような構造化文書を効率的に処理するために、構造化文書の木構造を適切な所定のサイズの部分木に分割することが望ましい場合がある。例えば、構造化文書の木構造をほぼ均等のサイズの部分木に分割し、マルチコア・プロセッサの各コアに各部分木の処理を割り振れば、各コアの処理が平均的な時間で終了する可能性が高まり、待ち時間を減らしてより効率的な並列処理を期待することができる。
【００１４】
構造化文書の木構造を分割するためには、構造化文書自体を走査し、その木構造を調べて分割する手法が考えられる。しかし、構造化文書自体はサイズが大きい場合があるため、この手法はこの走査の完了に時間を要し構造化文書の処理効率を低下させる可能性がある。構造化文書の処理効率を低下させるこの課題は、いずれの背景技術によっても解決をすることができない。
【００１５】
したがって、本発明の目的の１つは、構造化文書の木構造を効果的に分割するためのシステム、ソフトウェア、および方法を提供することである。
【課題を解決するための手段】
【００１６】
上記の目的を達成するために、コンピュータ処理によって、電子化された構造化文書のスキーマによって定義される木構造に基づいて構造化文書の木構造を分割するための方法が提供される。方法は、スキーマによって定義される木構造に含まれる１以上の要素のうちの少なくとも一部について、各要素をルートとする部分木のサイズの指標値を計算するステップと、スキーマが適用される構造化文書の木構造を分割するために用いられる分割パターンであって、当該構造化文書の木構造を分割した場合に分割後の部分木のサイズが所定の基準を満たす分割パターンを、指標値を用いて決定するステップを含む。
【００１７】
方法は、スキーマによって定義される木構造に含まれる１以上の要素に係数を割り当てるステップをさらに含み、各要素をルートとする部分木のサイズの指標値が係数を用いて計算されることが好ましい。既定の係数の少なくとも一部が、スキーマが適用される構造化文書の処理履歴に関する情報に基づいて計算されることが好ましい。さらに、処理履歴に関する情報が、子要素の出現頻度、テキスト部分のサイズのような、処理された構造化文書のスキーマの変数部分に関する情報であることが好ましい。既定の係数の少なくとも一部が、処理履歴に関する情報に基づいて２以上設定され、処理対象の構造化文書のタイプに応じていずれか一方が適用されるようにすることができる。
【００１８】
係数の少なくとも一部が、スキーマの記述内容に基づいて計算されることができる。係数の少なくとも一部が、スキーマに含まれる要素名のサイズに基づいて決定されることができる。計算された係数の少なくとも一部が、対応する要素の要素名と関連付けて記憶されるようにすることができる。また、係数の少なくとも一部が、対応する要素の絶対パスと関連付けて記録されるようにすることができる。
【００１９】
前記各要素をルートとする部分木のサイズの指標値が、前記スキーマが適用される構造化文書の処理履歴を考慮して計算されることが好ましい。また、分割を決定するステップが、スキーマが適用される構造化文書の木構造を分割した場合に、分割後の部分木のサイズがほぼ均等となる分割パターンを決定するステップを含むことが好ましい。また、分割を決定するステップが、構造化文書の部分木の処理に使用される並列動作可能なプロセッサ単位の数に構造化文書の分割をするための分割パターンを決定するステップを含むことが好ましい。プロセッサ単位の一例は、データ処理システムのマルチコア・プロセッサのコアである。
【００２０】
構造化文書が、ＳＧＭＬ、ＸＭＬ、ＨＴＭＬ、ＸＨＴＭＬのいずれかのようなメタ言語のフォーマットに従うものであることが好ましい。また、スキーマが、ＸＭＬ  Ｓｃｈｅｍａ、ＤＴＤ、ＲＥＬＡＸ、ＲＥＬＡＸ  ＮＧ、ＮＶＤＬ、Ｓｃｈｅｍａｔｒｏｎのいずれかのようなスキーマ言語のフォーマットに従うものであることが好ましい。
【００２１】
以上、構造化文書を分割するための方法として本発明の概要を説明したが、本発明は、プログラム、プログラム製品、ソフトウェア、ソフトウェア製品、方法として把握することもできる。プログラム製品ないしソフトウェア製品は、例えば、前述のプログラム、ソフトウェアを格納した記憶媒体を含め、あるいはプログラム、ソフトウェアを伝送する媒体を含めることができる。
【００２２】
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態におけるデータ処理システムの機能ブロック図である。
【図２】本発明の実施形態におけるデータ処理システムの全体動作を表現するフローチャートである。
【図３】本発明の実施形態におけるデータ処理システムの係数を付加する動作を表現するフローチャートである。
【図４】本発明の実施形態におけるデータ処理システムの部分木のサイズを推測する動作を表現するフローチャートである。
【図５】本発明の実施形態におけるデータ処理システムの部分木のサイズを推測する動作のサブルーチンを表現するフローチャートである。
【図６】本発明の実施形態におけるデータ処理システムの分割パターンの生成動作を表現するフローチャートである。
【図７】本発明の実施形態におけるデータ処理システムのＸＭＬ文書の処理動作を表現するフローチャートである。
【図８】本発明の実施形態におけるＸＭＬスキーマの一例である。
【図９】本発明の実施形態における係数テーブルの一例である。
【図１０】本発明の実施形態における係数テーブルの他の例である。
【図１１】本発明の実施形態おけるデータ処理システムを実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。
【発明を実施するための形態】
【００２４】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２５】
また、本発明は多くの異なる態様で実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。また、実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らないことに留意されたい。実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
【００２６】
図１は、本発明の実施形態のデータ処理システム１００の機能ブロック図である。なお、図１の機能ブロック図に示す各要素は、後述する図１１に例示したハードウェア構成を有する情報処理装置において、ハードディスク装置１３などに格納されたオペレーティング・システムやオーサリング・ソフトウェアなどのコンピュータ・プログラムをメインメモリ４にロードした上でＣＰＵ１に読み込ませ、ハードウェア資源とソフトウェアを協働させることによって実現することができる。
【００２７】
本発明の実施形態のデータ処理システム１００は、ＸＭＬ文書記憶部１０５、ＸＭＬスキーマ記憶部１１０、係数付加部１１５、係数テーブル２２０、部分木サイズ計算部１２５、部分木分割生成部１３０、ＸＭＬ文書処理部１３５、および処理履歴記録部１４０の各構成要素を備える。
【００２８】
本発明の実施形態のＸＭＬ文書記憶部１０５、ＸＭＬスキーマ記憶部１１０はそれぞれＸＭＬスキーマと、処理対象のＸＭＬ文書のデータを格納する。ＸＭＬ文書は、メタ言語であるＸＭＬ言語を用いて作成された言語に従う電子的な構造化文書である。ＸＭＬスキーマは、ＸＭＬ文書の構造を記述する文書である。ＸＭＬ文書の内容は、ＸＭＬ言語の仕様および適用されるＸＭＬスキーマで定義された制約に従わなければならない。本明細書においてＸＭＬ文書およびＸＭＬスキーマの一例が説明されるが、当業者は非特許文献４、５、６等の標準によって定められた仕様に従って適宜ＸＭＬ文書およびＸＭＬスキーマを準備することができることに留意されたい。
【００２９】
本発明の実施形態の係数生成部１１５は、対象のＸＭＬスキーマの要素の少なくとも一部について、推測された要素のサイズの指標値を計算するために用いることができる係数および要素サイズを生成することができる。また、係数生成部１１５は、過去のＸＭＬ文書の処理履歴に関する情報に基づいて、係数を生成ないし更新することができる。係数付加部１１５によって生成された係数および要素サイズは、係数テーブル２２０に格納される。係数テーブル２２０の詳細は後述する。係数生成部１１５は、後述するフローチャート３００に含まれる各ステップを実行するためのサブモジュールないし手段を少なくとも有する。
【００３０】
本発明の実施形態の部分木サイズ計算部１２５は、処理対象のＸＭＬスキーマの要素である要素（<element>タグを用いて記述される）をルートとする部分木のサイズの指標値を、係数生成部１１５によって生成された係数を用いて計算する。部分木サイズ計算部１２５は、後述するフローチャート４００およびサブルーチン５００に含まれる各ステップを実行するためのサブモジュールないし手段を少なくとも有する。
【００３１】
本発明の実施形態の部分木分割生成部１３０は、部分木サイズ計算部１２５によって推測された部分木のサイズの指標値に基づいて、並列処理ないし分散処理に適するようにＸＭＬスキーマの要素をルートとする木構造を部分木に分割するための分割パターンを生成する。部分木分割生成部１３０は、後述するフローチャート４００およびサブルーチン５００に含まれる各ステップを実行するためのサブモジュールないし手段を少なくとも有する。
【００３２】
本発明の実施形態のＸＭＬ文書処理部１３５は、ＸＭＬ文書を処理する。本発明の実施形態では、ＸＭＬ文書処理部１３５によるＸＭＬ文書の処理は、Ｎ個のプロセッサ・コア（本明細書においては単に「コア」と証する）を有するマルチコア・プロセッサによって処理される。このマルチコア・プロセッサは、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供する最大８個のコアを備えるＰＯＷＥＲ（商標）７プロセッサを採用することができる。このとき、部分木分割生成部１３０によって生成された分割パターンを用いて、それぞれのコアに対して適切な大きさの処理すべき部分木が割り当てられる。ＸＭＬ文書処理部１３５は、後述するフローチャート６００に含まれる各ステップを実行するためのサブモジュールないし手段を少なくとも有する。
【００３３】
本発明の実施形態の履歴記憶部１４０は、ＸＭＬ文書がＸＭＬ文書処理部１３５によって処理された結果生じる処理履歴に関する情報をＸＭＬ文書処理部１３５から受けて記憶する。本発明の実施形態では、処理履歴に関する情報は、ＸＭＬスキーマの変数部分（子要素の出現頻度、テキスト部分のサイズなど）の実際に処理されたＸＭＬ文書における実績値を少なくとも含む。記憶された処理履歴に関する情報は、係数生成部１１５に渡され、係数テーブル２２０に格納された係数および要素サイズを更新するために使用される。
【００３４】
図３は、本発明の実施形態におけるデータ処理システムの全体動作を表現するフローチャート２００である。処理はステップ２０５でスタートし、ステップ２１０で対象のＸＭＬスキーマの要素（<element>タグを用いて定義される）の少なくとも一部について、スキーマの記述内容に基づいて対応する係数および要素サイズが生成される。生成された係数および要素サイズは、係数テーブル２２０に格納される。次に、ステップ２１５において、ＸＭＬスキーマの要素をルートとする部分木のサイズの指標値が、ステップ２１０において生成された係数および要素サイズを用いて計算される。
【００３５】
処理はステップ２２０に進み、推測された部分木のサイズの指標値に基づいて、並列処理に適するようにそれぞれの要素をルートとする木構造を部分木に分割するための分割パターンが生成される。次に、ステップ２２５において、ステップ２２０で得られた分割パターンを用いてＸＭＬ文書の木構造を分割し、マルチコア・プロセッサのそれぞれのコアが並列処理を行う。
【００３６】
処理はステップ２３０に進み、さらにＸＭＬスキーマが適用されるＸＭＬ文書を処理するかどうかが判断される。ステップ２３０においてさらにＸＭＬ文書の処理をすると判断された場合、処理はＹＥＳの矢印からステップ２３５に進み、既にステップ２２５において実行されたＸＭＬ文書の処理から得られた処理履歴に関する情報を記録する。既に述べた通り、本発明の実施形態では、処理履歴に関する情報は、ＸＭＬスキーマの変数部分（子要素の出現頻度、テキスト部分のサイズなど）の実際に処理されたＸＭＬ文書における実績値を少なくとも含む。
【００３７】
次にステップ２４０に進み、記憶された処理履歴に関する情報に基づいて係数および要素サイズが更新され、以降、更新された係数および要素サイズを用いてステップ２１０以降の処理が繰り返される。ステップ２３０においてさらにＸＭＬ文書の処理をしないと判断された場合、処理はＮＯの矢印からステップ２４５に進み終了する。
【００３８】
図３は、本発明の実施形態におけるデータ処理システムの係数を付加する動作を表現するフローチャート３００である。この動作はフローチャート２００のステップ２１０に相当する。処理はステップ３０５でスタートし、ステップ３１０で対象のＸＭＬスキーマが読み込まれる。以下にステップ３１０で読み込まれる本発明の実施形態におけるＸＭＬスキーマの一例について説明する。
【００３９】
図８は、本発明の実施形態におけるＸＭＬスキーマの一例である。ＸＭＬスキーマ８００は、Root”という名前の要素（<element>タグを用いて宣言される。以下「”Root”要素という）の構造が定義されている。
【００４０】
ＸＭＬスキーマの部分８０５は、”Root”要素の宣言である。部分８１０は、”Root”要素の最上位階層の構造を定義する。この例では、”Root”要素には、子要素”C”（８１５）、”A”（８２０）、”B”（８２５）がこの順序で出現することが記述されている。
【００４１】
さらに詳細には、部分８１５は、子要素”C”が１回以上（minOccurs（最小出現回数）の定義が無い場合、1回出現するものとされる）無限回（maxOccurs（最大出現回数）が”unbounded”のとき無限回の出現が許容される）出現することが記述されている。さらに、子要素”C”が下位の要素（便宜上、孫要素という）を有することも記述されている（type=”tns:C”）。
【００４２】
また、部分８２０には、子要素”B”が１回出現し（minOccursおよびmaxOccursの定義無し）、文字列が記述されさらなる下位の階層がないことが記述されている（type=”xsd:string”）。部分８２５には、子要素”C”が0回以上1回以下出現し（minOccurs=”0”およびmaxOccursの定義無し）、かつ、文字列が記述されこれ以上下位の階層がないことが記述されている（type=”xsd:string”）
【００４３】
部分８３０は、”C”要素の最上位階層の構造を定義する。この例では、”Root”要素には、子要素”C1”（８３５）が１回以上無限回出現し、整数が記述されさらなる下位の階層がないことが記述されている。
【００４４】
なお、”Root”要素は、スキーマ８００において独立した要素として<element>タグを用いて宣言されているので、ＸＭＬ文書において独立して出現することができる。これに対して、要素”A”、”B”、”C”、”C1”は他の要素の子要素として宣言されているので、ＸＭＬ文書において独立して使用することができず、ＸＭＬスキーマに記述された他の要素の子要素としてのみ出現することのみが許される。
【００４５】
図３のフローチャート３００に戻り、ステップ３１５でＸＭＬスキーマに最初に出現する要素（<element>タグにより特定される）を選択する。次にステップ３２０において、選択された要素に対して係数および要素サイズを計算して割り当てる。要素サイズは、当該要素が呼び出している下位の要素（子要素を含む）を考慮しない、当該要素の階層のみを考慮したその要素のサイズの指標値である。ステップ３２０では様々な手法に従って係数および要素サイズを割り当てることが考えられるが、本発明の実施形態では、以下の規則に従って係数および要素サイズが割り当てられるものとする。なお、本発明の実施形態では、割り当てられた係数および要素サイズは後述する係数テーブルに格納される。
【００４６】
規則１：<element>のタグによって定義される要素の要素サイズはｅとする。データタイプが”xsd:string”であるテキスト部分のサイズは２ｅとする。データタイプがxsd:string以外の単純型であるテキスト部分のサイズは０．５ｅとする。
規則２：<element>のタグによって定義される要素の係数は、要素の出現回数が固定値であるときはその固定値であるとする。例えば、minOccurs（要素の最小出現回数）、maxOccurs（要素の最大出現回数）の定義がない要素の出現回数は１回であるから、係数は１となる。
規則３：minOccursおよびmaxOccurs等により定義される出現回数に変動幅がある要素の係数は、当該要素の出現回数の変動幅の中間値とする。
規則４：maxOccurs=“unbounded”（要素の最大出現回数の制限が無いことを表す）である要素の係数は３とする。
【００４７】
また、ＸＭＬスキーマに出現する要素名の平均サイズに基づいてｅの値を決定して代入するようにしてもよい。例えば、 ｅの値を、（要素名の平均サイズ）＊２＋５とすることができる。なお、要素名の平均サイズはＸＭＬ文書の処理履歴に基づいて計算することができるが、処理履歴が無い場合はデフォルト値を代入するようにすることができる。
【００４８】
処理はステップ３２５に進み、対象のＸＭＬスキーマにいまだ係数および要素サイズが割り当てられていない要素が存在するかどうかが判断される。ステップ３２５で存在すると判断された場合、処理はＹＥＳの矢印からステップ３３０へ進み、いまだ係数および要素サイズおよび要素サイズが割り当てられていない要素のうち最初のものを選択する。続いて処理はステップ３２０に戻り、選択された要素に対して係数の割り当てが行われる。ステップ３２５で存在しないと判断された場合、処理はＮＯの矢印からステップ３３５へ進み終了する。
【００４９】
フローチャート３００に従って生成された係数および要素サイズは、係数テーブルに格納される。図９は、本発明の実施形態における、ＸＭＬスキーマ８００について生成された係数テーブルの一例である。この場合、要素名と係数および要素サイズが関連付けられて記憶されていることに留意されたい。また、図１０は、本発明の実施形態における、ＸＭＬスキーマ８００について生成された係数テーブルの他の例である。この場合、各要素の絶対パス（ＸＰａｔｈ表現）と係数および要素サイズが関連付けられて記憶されていることに留意されたい。なお、絶対パスを用いた係数テーブルを用いることによって、処理履歴に関する情報を用いたフィードバックを繰り返される要素のそれぞれごとに行うことができる。その結果、繰り返される要素それぞれごとに異なる係数および要素サイズを有することができるので、より精度の高い分割パターンを形成できる場合があることに留意されたい。
【００５０】
図４は、本発明の実施形態におけるデータ処理システムの部分木のサイズを推測する動作を表現するフローチャート４００である。この動作はフローチャート２００のステップ２１５に相当する。処理はステップ４０５でスタートし、ステップ４１０で対象のＸＭＬスキーマの最初の要素が選択される。処理はステップ４１５に進み、選択された要素に子要素が存在するかどうかが判断される。ステップ４１５で存在すると判断された場合、処理はステップ４２０に進み、サブルーチン５００が実行される。以下、図５を用いてサブルーチン５００を説明する。
【００５１】
図５は、本発明の実施形態におけるデータ処理システムの部分木のサイズを推測する動作のサブルーチン５００を表現するフローチャートである。処理はステップ５０５でスタートし、ステップ５１０で対象のＸＭＬ要素の子要素のうちサイズが確定していない最初のものが選択される。次にステップ５１５において、選択された子要素がスタックに存在するかどうかを判断する。
【００５２】
ステップ５１５において存在すると判断された場合は、処理はＹＥＳの矢印からステップ５６０へ進み選択された子要素のサイズをこの呼び出しでのみ０として仮確定する。この処理は、同じ子要素が再帰的に存在しているためにサイズが確定しない場合に対処するためである。その後処理はステップ５５０に進むことになる。
【００５３】
ステップ５１５において存在しないと判断された場合、処理はＮＯの矢印からステップ５２０に進み、選択された子要素がスタックに格納される。次にステップ５２５において選択された子要素にさらに下位の要素（便宜的に「孫要素」と呼ぶ）が存在するかどうかが判断される。ステップ５２５において孫要素が存在すると判断された場合、サブルーチン６００が再帰的に呼び出され、その結果得られた孫要素のサイズが代入された上でステップ５４０に進むこととなる。
【００５４】
ステップ５２５において孫要素が存在しないと判断された場合、処理はＮＯの矢印からステップ５４０に進む。ステップ５４０では、孫要素のサイズと選択された子要素自体のサイズの合計が計算され、選択された子要素の部分木のサイズが確定される。次にステップ５４５において選択された子要素がスタックから削除され、次にステップ５５０において、対象の要素にまだサイズが確定していない子要素が存在するかどうかが判断される。
【００５５】
ステップ５５０で存在すると判断された場合、処理はＹＥＳの矢印からステップ５５５へ進み、サイズが確定していない別の子要素が選択される。次いで、処理はステップ５１５に戻り、選択された子要素について同様の処理がなされる。ステップ５５０で存在しないと判断された場合、処理はＮＯの矢印からステップ５６５へ進み、子要素のサイズを合計してサブルーチンの最小要素のサイズとして結果を返す。処理はステップ５７０に進み、サブルーチン５００が終了する。
【００５６】
説明は図４に戻り、ステップ４２０でサブルーチン５００が実行された後、ステップ４２５においてサブルーチン５００から返された子要素のサイズの値が代入される。処理はステップ４３０に戻り、子要素のサイズと選択された要素自体のサイズの合計が計算され、選択された要素をルートとする部分木のサイズが確定される。次にステップ４３５において、ＸＭＬスキーマにまだサイズを確定していない要素が存在するかどうかが判断される。
【００５７】
ステップ４３５において存在すると判断された場合、処理はＹＥＳの矢印からステップ４４０に進み、サイズが確定していない要素が選択され、次いでステップ４１５以降の同様の処理が選択された要素に対して実行される。ステップ４３５において存在しないと判断された場合、処理はＮＯの矢印からステップ４４５へ進み終了する。
【００５８】
本発明の実施形態において、上述のフローチャート４００に従ってスキーマ８００を処理した場合、要素”Root”、”A”、”B”、”C”、”C1”をルートとする部分木のサイズの指標値は、それぞれ２２ｅ、３ｅ、３ｅ、５．５ｅ、１．５ｅとなる。
【００５９】
図６は、本発明の実施形態におけるデータ処理システムの分割パターンの生成動作を表現するフローチャート６００である。本発明の実施形態では、ＸＭＬ文書の木構造をＮ個（ＮはＸＭＬ文書の部分木の処理に使用される並列動作可能なプロセッサ単位であるマルチコア・プロセッサのコアの数である）に分割した場合に、分割後の部分木のサイズがほぼ均等となる分割パターンが生成される。この動作はフローチャート２００のステップ２２０に相当する。処理はステップ６０５でスタートし、ステップ６１０で最初の子要素が選択されて分割グループに入れられる。次にステップ６１５で選択された子要素の部分木のサイズを当該分割グループの合計サイズとしてセットする。
【００６０】
処理はステップ６２０に進み、要素全体のサイズ（Ｌ）を分割すべき部分木の数（Ｎ）で割った閾値（Ｌ／Ｎ）よりもステップ６１５でセットされた分割グループの合計サイズが小さいかどうかが判定される。Ｎは例えば、当該スキーマを呼び出すＸＭＬ文書の部分木を並列処理するプロセッサ（またはコア）の数とすることができる。
【００６１】
ステップ６２０において合計サイズが小さくないと判断された場合、処理はＮＯの矢印からステップ６２５に進み、選択された子要素にさらに下位の要素（孫要素という）が存在するかどうかが判断される。ステップ６２５で孫要素が存在すると判断された場合、処理はＹＥＳの矢印からステップ６３０に進み、分割グループから子要素を除外し代わりに孫要素を選択して分割グループに入れたで、ステップ６１５に戻る。ステップ６２５で孫要素が存在しないと判断された場合、処理はＮＯの矢印からステップ６５５に進む。
【００６２】
ステップ６２０において合計サイズが小さいと判断された場合、処理はステップ６３５に進み、同階層の要素が存在するかどうかが判断される。ステップ６３５において同階層の要素が存在しないと判断された場合は、処理はＮＯの矢印から７５５へ進む。他方、ステップ６３５で同階層の要素が存在すると判断された場合、処理はＹＥＳの矢印からステップ６４０に進み、当該同階層の要素を選択して分割グループに追加し合計サイズを加算する。次いで、ステップ６４５で合計サイズが閾値（Ｌ／Ｎ）を上回ったかどうかが判断される。
【００６３】
ステップ６４５で閾値を上回っていないと判断された場合、処理はＮＯの矢印からステップ６３５に戻り、さらなる同階層の要素の有無について同様の処理がなされる。ステップ６４５で閾値を上回ったと判断された場合、処理はＹＥＳの矢印からステップ６５０に進み、最後に選択された要素を除外して、ステップ６５５に進む。
【００６４】
ステップ６５５では、その時点での分割グループを出力される分割パターンに含まれる分割グループの１つとして確定する。次いで処理はステップ６６０へ進み、文書順で次の要素が存在するかどうかが判断される。ステップ６６０で存在すると判断された場合、処理はＹＥＳの矢印からステップ６６５に進み、文書順で次の要素が上位要素を飛び越える位置にあるとき、飛び越えた要素を最後に追加した分割グループに追加する。次いで、処理はステップ６７０に進み文書順で次の要素が選択され、ステップ６１０に戻り同様の処理が繰り返される。
【００６５】
ステップ６６０で存在しないと判断された場合、処理はＮＯの矢印からステップ６７５に進み、分割グループに含まれていない上位要素を最後に処理をした分割グループに追加する。その後処理はステップ６８０へ進み終了する。これらの処理によって対象の要素の分割パターンが得られることが理解される。
【００６６】
本発明の実施形態において、スキーマ８００を処理するうえで分割すべき部分木の数（Ｎ）が４であると仮定すると、”Root”要素のサイズ（Ｌ）は２２ｅであるから、閾値（Ｌ／Ｎ）は５．５ｅとなる。上述のフローチャート６００に従って、スキーマ８００を分割すると、「要素”Root”、”A”、”B”」の分割グループ（サイズ：５．５ｅ）が１つと、「要素”C”、”C1”」の分割グループ（サイズ：５．５ｅ）が３つ、という４つの分割グループからなる分割パターンが得られることとなる。
【００６７】
図７は、本発明の実施形態におけるデータ処理システムのＸＭＬ文書の処理動作を表現するフローチャート７００である。この動作はフローチャート２００のステップ２２５に相当する。このフローチャート７００の処理においては、ＸＭＬ文書に既に得られた分割パターンを適用し、木構造を適切に分割して並列処理を効果的に実行する。処理はステップ７０５でスタートし、ステップ７１０でそれぞれの分割部分の先頭の要素がルート要素からのパスとして準備される。次に、ステップ７１５において、対象のＸＭＬ文書の読み取りが開始され、ルート要素からのパスをチェックしながらＸＭＬ文書が読み込まれていくこととなる。
【００６８】
次いで、ステップ７２０において、分割の先頭のパスの位置に到達したかどうかが判断される。ステップ７２０において到達していないと判断された場合、処理はＮＯの矢印からステップ７１５に戻り、ＸＭＬ文書の読み込みが継続される。ステップ７２０において到達したと判断された場合、処理はＹＥＳの矢印からステップ７２５に進み、ルート要素からのパスをチェックしながらＸＭＬ文書が読み込まれる。
【００６９】
処理はステップ７３０に進み、次の分割の先頭または文書末へ到達したかどうかが判断される。ステップ７３０で到達していないと判断された場合、処理はＮＯの矢印からステップ７２５に進み、ＸＭＬ文書の読み込みが継続される。ステップ７３０で到達したと判断された場合、処理はＹＥＳの矢印からステップ７３５に進み、分割部分の取り出しが実行される。次いでステップ７４０に進み文書末かどうかが判断される。文書末でない場合は、処理はステップ７２０に戻り同様の処理が繰り返され、文書末である場合は、ステップ７４５に進み終了する。
【００７０】
なお、本発明の実施形態ではフローチャート７００における処理の履歴に関する情報が履歴記憶部に記憶され、この履歴情報に基づいて係数テーブル内の係数および要素サイズが更新される。この処理はフローチャート２００のステップ２３５、２４０に相当する。この手法は同じＸＭＬスキーマに従うＸＭＬ文書は木構造、データサイズなどが似ていることが多いと考えられるので効果的な手法である。なお、この履歴情報は、実際に処理しようとするＸＭＬ文書を用いて得ることもできるが、あらかじめ典型的なＸＭＬ文書を与えて得ることもできる。
【００７１】
既に述べた通り、本発明の実施形態では、処理履歴に関する情報は、ＸＭＬスキーマの変数部分（子要素の出現頻度、テキスト部分のサイズなど）の実際に処理されたＸＭＬ文書における実績値を少なくとも含む。具体的には、本発明の実施形態では少なくとも以下の情報が履歴として記録され、係数および要素サイズが更新される。
（１）要素の出現回数の頻度に変動幅がある要素について、実際のＸＭＬ文書でのその要素の出現頻度。例えば、”minOccurs=0”の要素が９０％出現する履歴がある場合は、当該要素の係数を０．９に更新する。また、例えば、”maxOccurs=”unbounded””の要素が平均１０回実際のＸＭＬ文書で出現している履歴がある場合は、係数を１０に更新する。
（２）テキスト部分の実際のサイズ。この履歴からテキスト部分のサイズの平均を計算してＸＭＬスキーマのテキスト部分のサイズの指標値を決定する。
（３）要素名の実際のサイズ。実際に出現した要素名のサイズの平均から要素名のサイズの指標値を決定する。
【００７２】
また、前記処理履歴に関する情報に基づいて、係数の少なくとも一部が２以上設定されるようにしてもよい。例えば、”maxOccurs=”unbounded”の要素について、３回出現することと７回出現することが多い処理履歴があるときに、それぞれの場合について別の係数を設定することが考えられる。そして、以降に処理するＸＭＬ文書における当該要素の出現回数に応じて処理対象の構造化文書ないし要素のタイプを分類し、タイプに応じていずれか一方が適用されるようにすることができる。このようにすることで、より精度の高い分割が可能となる。
【００７３】
以上、本発明の実施形態のＸＭＬスキーマの一例を用いて説明したが、詳細なＸＭＬ言語、ＸＭＬスキーマ言語の仕様は非特許文献４、５および６などに記載され当業者によく知られたものである。よって、本明細書を読んだ当業者はその内容を補足、追加、変更等をしてバリエーションを作成することができるので、さらなる詳細な説明は省略する。
【００７４】
図１３は、本発明の実施の形態によるデータ処理システム１００を実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。情報処理装置は、バス２に接続されたＣＰＵ（中央処理装置）１とメインメモリ４を含んでいる。本発明の実施形態におけるＣＰＵ１はマルチコアのプロセッサであるものとする。ＣＰＵ１の各コアに分割されたＸＭＬ文書内の部分が送られ、並列処理がなされるものとする。
【００７５】
ハードディスク装置１３、３０、およびＣＤ−ＲＯＭ装置２６、２９、フレキシブル・ディスク装置２０、ＭＯ装置２８、ＤＶＤ装置３１のようなリムーバブル・ストレージ（記録メディアを交換可能な外部記憶システム）がフロッピーディスクコントローラ１９、ＩＤＥコントローラ２５、ＳＣＳＩコントローラ２７などを経由してバス２へ接続されている。
【００７６】
フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置１３、３０、ＲＯＭ１４には、オペレーティング・システムと協働してＣＰＵ等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。メインメモリ４にロードされることによってコンピュータ・プログラムは実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
【００７７】
情報処理装置は、キーボード／マウス・コントローラ５を経由して、キーボード６やマウス７のような入力デバイスからの入力を受ける。情報処理装置は、視覚データをユーザに提示するための表示装置１１にＤＡＣ／ＬＣＤＣ１０を経由して接続される。
【００７８】
情報処理装置は、ネットワーク・アダプタ１８（イーサネット（Ｒ）・カードやトークンリング・カード）等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。図示はされていないが、パラレルポートを介してプリンタと接続することや、シリアルポートを介してモデムを接続することも可能である。
【００７９】
以上の説明により、本発明の実施の形態によるデータ処理システムを実現するのに好適な情報処理装置は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【００８０】
本発明の実施の形態において使用される情報処理装置の各ハードウェア構成要素を、複数のマシンを組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。
【００８１】
本発明の実施の形態のデータ処理システムは、マイクロソフト・コーポレーションが提供するＷｉｎｄｏｗｓ（Ｒ）オペレーティング・システム、アップル・コンピュータ・インコーポレイテッドが提供するＭａｃＯＳ（Ｒ）、Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍを備えるＵＮＩＸ（Ｒ）系システム（たとえば、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するＡＩＸ（Ｒ））のような、ＧＵＩ（グラフィカル・ユーザー・インターフェース）マルチウインドウ環境をサポートするオペレーティング・システムを採用する。
【００８２】
以上から、本発明の実施の形態において使用されるデータ処理システムは、特定のマルチウインドウ・オペレーティング・システム環境に限定されるものではないことを理解することができる。
【００８３】
以上、本発明の実施形態によれば、構造化文書であるＸＭＬ文書の木構造を効果的に分割するためのシステム、ソフトウェア、および方法を提供することができる。本発明の実施形態では、ＸＭＬスキーマから分割パターンを得る。その後、分割パターンに従ってＸＭＬ文書を分割してマルチコア・プロセッサの複数のコアが並列処理するので、効率よく適切にＸＭＬ文書を処理することができることが容易に理解できる。
【００８４】
また、本発明は、ハードウェア、ソフトウェア、またはハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実行において、所定のプログラムを有するデータ処理システムにおける実行が典型的な例として挙げられる。かかる場合、該所定プログラムが該データ処理システムにロードされ実行されることにより、該プログラムは、データ処理システムを制御し、本発明にかかる処理を実行させる。このプログラムは、任意の言語・コード・表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接、または１．他の言語・コード・表記への変換、２．他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。
【００８５】
もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、ハードディスク装置、ＲＯＭ、ＭＲＡＭ、ＲＡＭ等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。かかるプログラムは、記録媒体への格納のために、通信回線で接続する他のデータ処理システムからダウンロードしたり、他の記録媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、または複数に分割して、単一または複数の記録媒体に格納することもできる。また、様々な形態で、本発明を実施するプログラム製品を提供することも勿論可能であることにも留意されたい。
【００８６】
上記の実施の形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。例えば、本発明の実施形態では、マルチコア・プロセッサのコアによる並列処理を用いて説明をしたが、分割した部分木を別体のプロセッサによって並列処理をしてもよい。また、本発明の実施形態では、ＸＭＬ言語、ＸＭＬ  Ｓｃｈｅｍａに従うＸＭＬ文書およびＸＭＬスキーマを用いたが、ＳＧＭＬ、ＨＴＭＬ、ＸＨＴＭＬのいずれかのようなメタ言語に従う構造化文書や、ＤＴＤ、ＲＥＬＡＸ、ＲＥＬＡＸ  ＮＧ、ＮＶＤＬ、Ｓｃｈｅｍａｔｒｏｎのようなスキーマ言語に従うスキーマファイルを用いてもよい。そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
【図１】
0005480034.tif 000002
【図２】
0005480034.tif 000003
【図３】
0005480034.tif 000004
【図４】
0005480034.tif 000005
【図５】
0005480034.tif 000006
【図６】
0005480034.tif 000007
【図７】
0005480034.tif 000008
【図８】
0005480034.tif 000009
【図９】
0005480034.tif 000010
【図１０】
0005480034.tif 000011
【図１１】
0005480034.tif 000012