(57)【要約】本発明は、構造化文書の階層構造に適用されるパスの符号化および復号化方法に関し、パスは、ソースノードと宛先ノードとをつなぐ一連のセグメントによって定義される。各ノードは少なくとも１つの情報型に関連付けされる文書情報要素を表す。本発明の方法は、構造の中の各ノードに、ノードに直接帰属されると思われる全ノードによって表される、情報要素の名前と型からなる組のリストを関連付けさせ、２進コードを各情報要素の名前と型の組に関連付けさせる前段階と、符号化されるパスセグメント毎に、セグメントの宛先ノードの名前−型の組を表す２進ノードコードを決定し（２１、２２）、該ノードコードをパスコードに挿入する（２３）パス符号化段階とを含む。
2004536481.tif 000002
【特許請求の範囲】
【請求項１】
文書の構造スキーマによって定義された構造化文書の階層構造におけるパスの符号化方法であって、上記パスは一連のセグメントによって定義され、各セグメントはソースノードと宛先ノードとをつなぎ、各ノードは文書内の情報要素を表し、各情報要素は構造スキーマにおける少なくとも１つの情報型に関連付けされている上記符号化方法において、
上記符号化方法は、
考慮されるノードに直接帰属されると思われる全ノードによって表される、情報要素の名前と型からなる組のリストを、構造スキーマにおいて上記考慮される各ノードに関連付けさせ、２進コードを各情報要素の名前と型の組に関連付けさせる前段階と、
符号化されるパスセグメント毎に、セグメントの宛先ノードの名前−型の組に関連付けされた２進ノードコード（１２）を決定し、該ノードコードをパスコードに挿入するステップを含むパス符号化段階とを含むことを特徴とする符号化方法。
【請求項２】
上記パス符号化段階は、セグメントの宛先ノードの２進位置コード（１３）を決定して、セグメントのソースノードに直接帰属すると考えられる他のノードに対して位置を定義するステップをさらに含むことを特徴とする請求項１に記載の符号化方法。
【請求項３】
上記パス符号化段階は、一連のセグメントコード（１１）を含むパスコード（１０）を生成するステップをさらに含み、各セグメントコードはセグメントの宛先ノードに対する２進ノードコード（１２）と、セグメントの宛先ノードに対する２進位置コード（１３）とを含むことを特徴とする請求項１または２に記載の符号化方法。
【請求項４】
上記パス符号化段階は、一連のセグメントコード（１１）を含むパスコード（１０）を生成するステップをさらに含み、各セグメントコードはセグメントの宛先ノードに対する２進ノードコード（１２）と、一連のセグメントコードにおいて参照される全ノードの位置を示す一連の位置コード（１３）とを含むことを特徴とする請求項１または２に記載の符号化方法。
【請求項５】
上記前段階は、考慮されるノードに直接帰属すると思われるノードの最大数を判断して、ノードの２進位置コード（１３）の大きさを判断するステップをさらに含むことを特徴とする請求項１から４のいずれか１項に記載の符号化方法。
【請求項６】
文書構造の情報要素のうち少なくとも１つは、属性を有し、上記符号化されるパスは宛先要素としての属性を有し、上記符号化段階は、各セグメントコード（１１）に、セグメント型コード（１４）を挿入して、セグメントの宛先ノードが属性か、または情報要素であるかを示すステップをさらに含むことを特徴とする請求項１から５のいずれか１項に記載の符号化方法。
【請求項７】
上記符号化段階は、パスコード（１０）にパスコードの終点（１４’）を挿入するステップをさらに含むことを特徴とする請求項１から６のいずれか１項に記載の符号化方法。
【請求項８】
上記パスコードの終点（１４’）は、所定の値を有する、セグメント型コード（１４）であることを特徴とする請求項７に記載の符号化方法。
【請求項９】
各セグメントのソースノードは、文書の構造スキーマにおける宛先ノードよりも上位の階層レベルに位置付けされ、上記符号化段階は、所定の値を有する少なくとも１つのセグメント型コード（１４）をパスコードに挿入して、次のセグメントの符号化されるソースノードがその前のセグメントの符号化される宛先ノードであることを示すステップをさらに含むことを特徴とする請求項６から８のいずれか１項に記載の符号化方法。
【請求項１０】
上記符号化段階は、コードをパスコード（１０）に挿入し、符号化されたパスが文書のルートノードから始まる絶対パスか、または文書の構造スキーマの任意のノードから始まる相対パスであるかを示すステップをさらに含むことを特徴とする請求項１から９のいずれか１項に記載の符号化方法。
【請求項１１】
文書の構造スキーマによって定義された、階層構造を持つ文書構造におけるパスコード（１０）の復号化方法であって、上記パスコードは、一連のセグメントコード（１１）を含み、各セグメントはソースノードと、次のセグメントのソースノードを成す宛先ノードとをつなぎ、各ノードは文書の情報要素を表し、各情報要素は構造スキーマにおける少なくとも１つの情報型に関連付けされている上記復号化方法において、
各セグメントは、セグメントの宛先ノードによって表される情報要素に対して、情報要素の名前と型からなる名前−型の組に関連付けされた少なくとも１つの２進ノードコード（１２）によってパスコード（１０）において定義され、
上記復号化方法は、
考慮されるノードに直接帰属されると思われる全ノードによって表される、情報要素の名前と型からなる情報要素の名前−型の組のリストを、構造スキーマにおいて考慮された各ノードに関連付け、各情報要素の名前−型の組に対応する２進コードを関連付ける前段階と、
セグメントコードの宛先ノードの名前−型の組を表すノードコード（１２）を、復号化されるセグメントのパスコード（１０）毎に設けられる、宛先ノードの名前−型の組のリストを用いて復号化するパスコード復号化段階とを含むことを特徴とする復号化方法。
【請求項１２】
各セグメントは、復号化されるパスコード（１０）の中に、セグメントのソースノードに直接つながると思われる他のノードに対して宛先ノードの位置コード（１３）をさらに含み、上記復号化段階は、セグメント毎に、セグメントのソースノードに直接帰属すると思われる全ノードの対応位置の関数として、セグメントの宛先ノードの２進位置コード（１３）を復号化するステップをさらに含むことを特徴とする請求項１１に記載の復号化方法。
【請求項１３】
情報要素の名前−型の組を表す２進ノードコード（１２）の復号化は、ビット数としての２進コードの大きさを判断して、セグメントのソースノードに対する名前−型の組のリストにおいてこのコードを検索するステップを含むことを特徴とする請求項１１または１２に記載の復号化方法。
【請求項１４】
セグメントの宛先ノードの２進位置コード（１３）の復号化は、セグメントのソースノードに直接帰属すると思われるノードの最大数の関数として、ビット数として該２進位置コードの大きさを判断するステップを含むことを特徴とする請求項１１から１３のいずれか１項に記載の復号化方法。
【請求項１５】
各セグメントコード（１１）は、セグメント型コード（１４）を含み、上記パス復号化段階はセグメント毎に行われるセグメント型コードの復号化をさらに含むことを特徴とする請求項１１から１４のいずれか１項に記載の復号化方法。
【請求項１６】
パスコード（１０）における各セグメントコード（１１）のセグメント型コード（１４）は、セグメントの宛先ノードが情報要素か、またはセグメントのソースノードの属性であるかを判断するのに用いられることを特徴とする請求項１５に記載の復号化方法。
【請求項１７】
上記復号化方法は、第１の所定値を有するセグメント型コード（１４’）によって示す、パスコードの終点を判断するステップを含むことを特徴とする請求項１５または１６記載の復号化方法。
【請求項１８】
セグメント型コード（１４）が第２の所定値を有する場合、パスコード（１０）において復号化される次のセグメントコード（１１）は、復号化されるその前のセグメントのソースノードと同じ宛先ノードを有することを特徴とする請求項１５または１７記載の復号化方法。
【発明の詳細な説明】
【０００１】
本発明は、構造化文書の木のような構造におけるパスの符号化および復号化方法に関する。
【０００２】
上記方法は、排他的ではないが特に、構造化文書のある部分の圧縮／復元に対して適用される。例えば、このタイプの文書は構造化されたマルチメディアデータ、画像データまたは映像やデジタル画像のデータ列、映画や映像プログラム、あるいはこのような情報を記述するデータから構成されることがある。
【０００３】
構造化文書は、情報セットの集合体であり、情報セットはそれぞれ型と属性に関連付けされ、主に階層的関係によって互いに関わり合っている。これらの文書は、異なる情報サブセットによって文書が構成されていることを特に特徴とする、ＳＧＭＬ，ＨＴＭＬ，ＸＭＬ等の構造化言語を使用している。これに対して、いわゆる、線形文書では、文書内容を示す情報は、提示情報とタイプセット情報とで混合されている。
【０００４】
構造化文書は、その中に異なる情報セットを分離するためのマーカを含む。ＳＧＭＬ、ＸＭＬ、またはＨＴＭＬ形式の場合、これらのマーカは「タグ」と呼ばれ、“＜ＸＸＸＸ＞”と“＜／ＸＸＸＸ＞”という形をとっており、前のタグは情報セット“＜ＸＸＸＸ＞”の開始を示し、後のタグはこの情報セットの終了を示す。情報セットは、幾つかの下位レベルの情報セットから構成されていてもよい。このように、構造化文書は階層構造、または木のような構造スキーマを有し、各ノードは情報セットを表し、下位レベルの情報セットを含む情報セットを表す上位の階層レベルにあるノードとつながっている。この木のような構造の枝の先端に位置するノードは、情報サブセットに分解できない所定のタイプのデータを含む情報セットを表す。
【０００５】
このように、構造化文書はテキスト、または２進データの形で表される分離タグを含み、これらのタグは、タグで区切られた他の情報サブセットを含み得る情報セットまたは情報サブセットを区切っている。
【０００６】
また、構造化文書は、規定の形式をとり、文書中の各情報セットにおける情報の構造と型を定義する、いわゆる構造スキーマと関連している。スキーマは、ネストされた情報セット構造のグループから構成され、これらのグループは順序付け済みシーケンス、あるいは順序付け済み、または順序付けされていない選択要素や必須要素のグループであることがあり得る。
【０００７】
現在、構造化文書を送信する必要がある場合、まず圧縮して送信するデータ量を最小限にするのが好ましい。文書を構成しているデータも圧縮してこのタイプの圧縮処理の効率を向上させられ、文書の受信者はその文書の構造スキーマを予め知っていることになっており、このスキーマを用いて上記受信者はあらゆる特定の時点でどの情報セットを受信するか判断を行うことができることがわかる。したがって、送信された文書の構造が、文書の受信者がその文書を受信して復号化するのに用いようとしている構造スキーマと正確に対応されることは必要不可欠であり、もしそうでなければ、具体的には受信者が送信されたデータのタイプを判断することができず、その結果送信されたデータの復号化ができず元の文書を再生することができなくなる。
【０００８】
送信される構造化文書のデータ量は、増加する傾向にある。例えばこの手段は、映画やテレビ番組の内容全てを送信したり、放送したりするために使用されることが考慮されている。
【０００９】
このような状況において、文書の送信中に送信エラーが発生すると、文書の受信者は現在どのサブセットが送信中なのか判断することが全くできず、この場合、文書全体を再送信しなければならなくなる。さらに、映画用のシーケンスの送信、およびスクリーン上への表示を同時に行う場合、そのシーケンスにおける異なる要素を送信するためのタイムスロットに留意する必要があり得る。また、シーケンスにおける要素の一部を何度か送信して、シーケンスの送信のはじめに接続されていなかった受信者がその最後を受信して表示できるようにする必要がある。
【００１０】
また、文書の一部を別の文書によって、同じ構造スキーマを有する２つの部分に置き換える必要がある。
【００１１】
文書全体を再送信することによる解決策では送信する情報量がかなり増加することになる。したがって、文書を別々の使用や送信が可能な部分に分割することが望ましい。しかしながら、文書の一部を復元できるようにするためには、文書のこの部分が文書の構造スキーマにおいてどこに位置するのか、正確に判断できることが必要となる。
【００１２】
このため、文書のルートノードから開始し、文書の必要とされる部分のメインノードで終了する、文書の木構造におけるパスを記述することによる解決策が幾つか存在する。木構造におけるパスを記述する方法は、この目的を果たすために生み出されたものである。しかしながら、これらの方法は、そのようなパスを記述するために必要な情報要素の数の点からいって最大限に利用されない。さらに、これらの方法では、再構築されたパスが元のパスと同じになる保証が常にあるわけではないといった、文書の構造スキーマの定義において起こり得る事態全てを考慮することができない。この結果、文書の木構造における文書の一部の位置を判断する際にエラーが起こるというリスクがあり、したがって、文書のこの部分を復号化する際にエラーが起こるというリスクにつながり、あるいは復号化さえも不可能となり得る。
【００１３】
このように、現在構造化文書において使用されるＸＭＬスキーマ言語により、いわゆるポリモーフィズム（多態性：polymorphism）、言い換えれば構造化されたデータ型のサブ型を定義することが可能となり、サブ型は型に対応するデータの特別な場合となる。例えば、「文字列」型には、「月（month of the year）」サブ型があってもよい。この場合、その構造モデルは、木構造のノードが「文字列」型のものであることを示してもよく、文書がこのノードにセットされた情報の「月」型を含んでもよい。また、この言語によって情報セットの名前の置き換えが可能となる。しかし、既存のパス符号化方法では、これらの起こり得る事態に対処することはできない。
【００１４】
本発明の目的は、これらの不便な点を解消することにある。この目的は、文書の構造スキーマによって定義された構造化文書の階層構造におけるパスの符号化方法であって、上記パスは一連のセグメントによって定義され、各セグメントはソースノードと宛先ノードとをつなぎ、各ノードは文書内の情報要素を表し、各情報要素は構造スキーマにおける少なくとも１つの情報型に関連付けされている上記符号化方法において、
上記符号化方法は、
考慮されるノードに直接帰属されると思われる全ノードによって表される、情報要素の名前と型からなる組のリストを、構造スキーマにおいて上記考慮される各ノードに関連付けさせ、２進コードを各情報要素の名前と型の組に関連付けさせる前段階と、
符号化されるパスセグメント毎に、セグメントの宛先ノードの名前−型の組に関連付けされた２進ノードコードを決定し、該ノードコードをパスコードに挿入するステップを含むパス符号化段階とを含むことを特徴とする符号化方法を供することで実現される。
【００１５】
望ましくは、上記パス符号化段階は、セグメントの宛先ノードの２進位置コードを決定して、セグメントのソースノードに直接帰属すると考えられる他のノードに対して位置を定義するステップをさらに含む。
【００１６】
本発明の一特徴によると、上記パス符号化段階は、一連のセグメントコードを含むパスコードを生成するステップをさらに含み、各セグメントコードはセグメントの宛先ノードに対する２進ノードコードと、セグメントの宛先ノードに対する２進位置コードとを含む。
【００１７】
本発明の他の特徴によると、上記パス符号化段階は、一連のセグメントコードを含むパスコードを生成するステップをさらに含み、各セグメントコードはセグメントの宛先ノードに対する２進ノードコードと、一連のセグメントコードにおいて参照される全ノードの位置を示す一連の位置コードとを含む。
【００１８】
好ましくは、上記前段階は、考慮されるノードに直接帰属すると思われるノードの最大数を判断して、ノードの２進位置コードの大きさを判断するステップをさらに含む。
【００１９】
本発明の他の特徴によると、文書構造の情報要素のうち少なくとも１つは、属性を有し、上記符号化されるパスは宛先要素としての属性を有し、上記符号化段階は、各セグメントコードに、セグメント型コードを挿入して、セグメントの宛先ノードが属性か、または情報要素であるかを示すステップをさらに含む。
【００２０】
本発明の他の特徴によると、上記符号化段階は、パスコードにパスコードの終点を挿入するステップをさらに含む。
【００２１】
好ましくは、上記パスコードの終点は、所定の値を有する、セグメント型コードである。
【００２２】
本発明のさらに他の特徴によると、各セグメントのソースノードは、文書の構造スキーマにおける宛先ノードよりも上位の階層レベルに位置付けされ、上記符号化段階は、所定の値を有する少なくとも１つのセグメント型コードをパスコードに挿入して、次のセグメントの符号化されるソースノードがその前のセグメントの符号化される宛先ノードであることを示すステップをさらに含む。
【００２３】
本発明のさらに他の特徴によると、上記符号化段階は、コードをパスコードに挿入し、符号化されたパスが文書のルートノードから始まる絶対パスか、または文書の構造スキーマの任意のノードから始まる相対パスであるかを示すステップをさらに含む。
【００２４】
また、本発明の目的は、文書の構造スキーマによって定義された、階層構造を持つ文書構造におけるパスコードの復号化方法であって、上記パスコードは、一連のセグメントコードを含み、各セグメントはソースノードと、次のセグメントのソースノードを成す宛先ノードとをつなぎ、各ノードは文書の情報要素を表し、各情報要素は構造スキーマにおける少なくとも１つの情報型に関連付けされている上記復号化方法において、
各セグメントは、セグメントの宛先ノードによって表される情報要素に対して、情報要素の名前と型からなる名前−型の組に関連付けされた少なくとも１つの２進ノードコードによってパスコードにおいて定義され、
上記復号化方法は、
考慮されるノードに直接帰属されると思われる全ノードによって表される、情報要素の名前と型からなる情報要素の名前−型の組のリストを、構造スキーマにおいて考慮された各ノードに関連付け、各情報要素の名前−型の組に対応する２進コードを関連付ける前段階と、
セグメントコードの宛先ノードの名前−型の組を表すノードコードを、復号化されるセグメントのパスコード毎に設けられる、宛先ノードの名前−型の組のリストを用いて復号化するパスコード復号化段階とを含むことを特徴とする復号化方法に関する。
【００２５】
望ましくは、各セグメントは、復号化されるパスコードの中に、セグメントのソースノードに直接つながると思われる他のノードに対して宛先ノードの位置コードをさらに含み、上記復号化段階は、セグメント毎に、セグメントのソースノードに直接帰属すると思われる全ノードの対応位置の関数として、セグメントの宛先ノードの２進位置コードを復号化するステップをさらに含む。
【００２６】
本発明の一特徴によると、情報要素の名前−型の組を表す２進ノードコードの復号化は、ビット数としての２進コードの大きさを判断して、セグメントのソースノードに対する名前−型の組のリストにおいてこのコードを検索するステップを含む。
【００２７】
本発明の他の特徴によると、セグメントの宛先ノードの２進位置コードの復号化は、セグメントのソースノードに直接帰属すると思われるノードの最大数の関数として、ビット数として該２進位置コードの大きさを判断するステップを含む。
【００２８】
好ましくは、各セグメントコードは、セグメント型コードを含み、上記パス復号化段階はセグメント毎に行われるセグメント型コードの復号化をさらに含む。
【００２９】
有利なことに、パスコードにおける各セグメントコードのセグメント型コードは、セグメントの宛先ノードが情報要素か、またはセグメントのソースノードの属性であるかを判断するのに用いられる。
【００３０】
本発明の他の特徴によると、上記復号化方法は、第１の所定値を有するセグメント型コードによって示す、パスコードの終点を判断するステップを含む。
【００３１】
好ましくは、セグメント型コードが第２の所定値を有する場合、パスコードにおいて復号化される次のセグメントコードは、復号化されるその前のセグメントのソースノードと同じ宛先ノードを有する。
【００３２】
本発明の好適な実施形態を、添付の図面を参照して非制限的な例として示す。
【００３３】
図１ａは、必ずしも文書のルートノードではないノードｘを含む構造化文書の構造スキーマを示す。このノードｘは３つのノードから構成されるが、そのうちの２番目のノードのみを図示している。そして、ノードｙは３つのノードに分かれ、２番目のノードはＴであり、ノードＴ自体は図１のボックス１の中にある４つのノードａ、ｂ、ｂ、ｃを含む。
【００３４】
ノードＴに対応する情報セットは以下の構造スキーマで定義される。すなわち、
【００３５】
【数１】
2004536481.tif 000003
【００３６】
これは、複合型（complex type）Ｔが、選択要素（「選択」型）のグループの２つ、または３つの事象を含み、選択要素は型ｔｃのうち１つまでの要素ａ、１つの要素ｂ、および１つの要素ｃを含んでいることを意味する。また、この構造は次のようにより簡潔に表してもよい。
【００３７】
【数２】
2004536481.tif 000004
【００３８】
要素ａ、ｂを入れたフィールドは、文書の構造スキーマにおいて後に出てくる、以下の型におけるこれらの要素の定義について言及している。
【００３９】
【数３】
2004536481.tif 000005
【００４０】
そして、構造スキーマは、Ｔ型と同様に定義される型ｔａ、ｔｂ、ｔｃの定義を含む。また、構造スキーマは以下に示す要素置換命令を含んでもよい。
【００４１】
【数４】
2004536481.tif 000006
【００４２】
この命令では、要素ａの代わりに型ｔａ１の要素ａ１が置き換えられてもよいことを示す。この場合、型ｔａ１はｔａのサブ型を成す。同様に、型ｔｂはサブ型ｔｄを含んでもよい。これらのサブ型は、この目的を規定する「制限」タグ、または「拡張」タグを用いて、次のような構造スキーマにおいて定義される。
【００４３】
【数５】
2004536481.tif 000007
【００４４】
ＸＭＬ−Ｘｐａｔｈ標準によると、ノードＴにつながっている２番目のノードｂは次のように示される。
【００４５】
【数６】
2004536481.tif 000008
【００４６】
この表記法では、ノードＴにつながっている１番目のノードｂを参照している。
【００４７】
この表記法はそれを表すのに必要な２進ワードのサイズの点からいうと最適ではないとともに、ポリモーフィズム（polymorphism）（情報要素型のサブ型を定義する可能性）や１つの型の要素を同じ型の別の要素、または同じ型のサブ型に取り替える可能性等、ＸＭＬスキーマ言語によって許可された固有な特徴を全て考慮に入れているわけではないことがわかる。
【００４８】
本発明に係る方法によると、第１ステップは、参照したい、ノードＴとノードｂをつなぐセグメント２のソースノードの複合型Ｔの構造スキーマを解析することである。この解析の目的は、複合型構造Ｔに属すると考えられる全要素、およびこれらの要素の可能な全ての型のリストを含む表を構築することにある。型Ｔに対して、次に示す表が得られる。
【００４９】
【表１】
2004536481.tif 000009
【００５０】
この表は、ＸＭＬにおけるスキーマの定義によって、要素ａ１が要素ａの代わりに置き換えられることを示す。
【００５１】
この表から始まり、複合型Ｔの全ての組（要素、型）のリストが決定され、これらの組は所定の順番、例えば情報要素名や情報要素型名のアルファベット順で記憶される。そして、２進コードは、各組と対応しており、例えば、各組が記憶される順番で順次ナンバリングすることで、以下の表が得られる。
【００５２】
【表２】
2004536481.tif 000010
【００５３】
一般に、オブジェクトの数が２k-1と２kとの間の数である場合、ｋビットのコードがオブジェクトをナンバリングするのに必要となる。逆に、Ｎが組数である場合、これらの組はＥ（ｌｏｇ2（Ｎ））ビット（Ｅ（ｘ）が「整数部分」関数である）で符号化されてもよい。ナンバリングに使用されないコードは、パスを復号化する際、認証作業を行うために取っておいてもよい。
【００５４】
最後に、セグメントのソースノードに含まれる、可能な要素の数Ｍを定義することを目的とする。一般に、「シーケンス」型要素グループ（順序付けされた要素グループ）、「選択」型要素グループ（選択要素グループ）、「全部」型要素グループ（順序付けされた、もしくは順序付けされていない必須要素）、または単純要素のいずれかを処理する必要があるかによって区別しなければならない。各要素は、明らかにおそらく下位の階層レベルを有する要素グループ、あるいは単純要素を表している。
【００５５】
要素ｅ１、ｅ２、…ｅｎの「シーケンス」型グループ（順序付けされた要素リスト）は、以下のように表されてもよい。
【００５６】
【数７】
2004536481.tif 000011
【００５７】
ただし、“ｍｉｎi”“ｍａｘi”は、要素ｅｉの最小出現数および最大出現数を表す。
【００５８】
最大出現数ｍａｘiの１つが無定義または無制限である場合、そのようなグループの可能な位置の最大数Ｍには制限がない。
【００５９】
もしそうでなければ、次の数式を用いて求められる。
【００６０】
【数８】
2004536481.tif 000012
【００６１】
最小出現数ｍは次の数式を用いて求められる。
【００６２】
【数９】
2004536481.tif 000013
【００６３】
「選択」型要素グループ（選択要素グループ）は次のように表される。
【００６４】
【数１０】
2004536481.tif 000014
【００６５】
最大出現数ｍａｘiの１つが無定義または無制限である場合、このグループの可能な位置の最大数Ｍには制限がない。
【００６６】
もしそうでなければ、次の数式を用いて求められる。
【００６７】
【数１１】
2004536481.tif 000015
【００６８】
ただし、ｍａｘ（）はパラメータにおける全ての値の最大値を表す関数である。
【００６９】
「選択」型グループの最小出現回数ｍは次の数式によって求められる。
【００７０】
【数１２】
2004536481.tif 000016
【００７１】
ただし、ｍｉｎ（）はパラメータにおける全ての値の最小値を表す関数である。
【００７２】
「全部」型要素グループ（順序付けされていない要素のリスト）は、次のように表される。
【００７３】
【数１３】
2004536481.tif 000017
【００７４】
最大出現回数Ｍ、およびこのグループの最小出現回数ｍは、シーケンス型要素グループに関する同じ数式（１）および（２）を用いて得られる。
【００７５】
単純要素ｅｋの場合、要素の最大出現回数Ｍと最小出現回数ｍは文書の構造スキーマによって直接与えられる。
【００７６】
上記で求められた要素の最大出現回数Ｍが制限されたり、所定の限度に満たない場合、例えば２16の場合、要素の位置を符号化するのにＥ（ｌｏｇ2（Ｍ））ビットが必要となる。
【００７７】
もしそうでなければ、任意の整数を符号化できる符号化システムを採用しなければならない。このように、例えば、この数を所定のビット数、例えば、５ビットのグループによって符号化することができ、グループの最初のビットは、後ろの４ビットがその数の最後の符号化ビットであるかどうかを示す。
【００７８】
図１ｂに示す前述の例では、要素Ｔと、型ｔｄのｂという、ノードＴの３番目の要素（ボックス３で示す）をつなぐセグメント２を参照することが必要とされる。表２を参照し、ノードＴの下位側における最大可能位置数と、これらの可能な位置の中でノードｂ（３番目のノード）を考慮すると、セグメント２は、
【００７９】
【数１４】
2004536481.tif 000018
【００８０】
とナンバリングされる。
【００８１】
６つの要素（表２を参照）をコード化するのに必要なビット数は３ビットである。さらに、要素Ｔの下位側おける最大可能位置数（ボックス１内）は４であり、従って２ビットで符号化しなければならない。
【００８２】
シーケンス型グループの場合、２つの方法を用いてこの符号化を有利に最も効果的にしてもよく、列の中の要素全てが任意でない時に、グループ内でのそれらの位置は固定して定義されることを知ることができる。
【００８３】
第１の方法によると、要素の位置をコード化するのに必要なビット数を減らすために、シーケンスにおける各要素ｅiの位置がその間で変化する限度を計算する。
【００８４】
要素ｅi（１≦ｉ≦ｎ、ただしｎはシーケンス内の要素数）のこれらの位置限度ＰminとＰmaxは、次の数式を用いて求めてもよい。
【００８５】
【数１５】
2004536481.tif 000019
【００８６】
第２の方法によると、シーケンス内の各要素ｅiの可能位置の値は、シーケンス内の各出現ｊ（ｍｉｎseq≦ｊ≦ｍａｘseq）のために、次の数式を用いて計算される。
【００８７】
【数１６】
2004536481.tif 000020
【００８８】
次の表は、グループＳＥＱ［１，３］（ａ［１，１］，ｂ［１，１］）のために作成されたものである。この表に、各符号化方法およびグループ内の各要素についての可能な位置数を、要素の位置を符号化するのに必要なビット数と共に示す。
【００８９】
【表３】
2004536481.tif 000021
【００９０】
この表は、第２の最適化方法によってシーケンスグループ内の要素の位置コードにおいて１ビット抑えられることを示す。
【００９１】
さらに、構造内の「父親」ノードに帰属する「息子」ノードの位置が、１つのみの可能性が許可されるように定義される場合、位置の符号化を最適化するための上記の方法によって、対応するセグメントコードのこの位置コードの必要がなくなる。例えば、これは全ての要素が一度だけ現れる一連の要素の場合である。
【００９２】
【数１７】
2004536481.tif 000022
【００９３】
選択型グループの場合、またこの符号化によって、グループ内の各要素ｅiの位置の最大限度を計算することを最適化されてもよい。この要素ｅi（１≦ｉ≦ｎ、ただしｎはグループ内の要素数）の最大限度Ｐmaxは、次の数式を用いて求めてもよい。
【００９４】
【数１８】
2004536481.tif 000023
【００９５】
図２では、構造スキーマツリーにおけるパスセグメントの定義は、ノードコード１２、すなわち（要素、型の）組数と、セグメントのソースノードＴに帰属する他のノードと関係する、セグメントの宛先ノードの位置コード１３、すなわち要素の中に含まれる他の要素を含む。
【００９６】
なお、ノードの位置はノードの種類とは関係なく符号化される。この点は、この位置をノードの種類に対して特定するＸＭＬ規格と異なる。例えば、“．．．／Ｔ／ｂ［１］”では、ｂがノードＴの１番目のノードｂだが、ｂが必ずしもノードＴの１番目の要素でなくてもよい。
【００９７】
したがって、構造スキーマの木構造におけるパス１０は、一連のセグメント１１によって定義され、各セグメントは、少なくとも１つのノードコード１２と、場合によって位置コード１３とを含む。
【００９８】
この点で、セグメントコード１１と位置コード１３とをパスコード１０で参照される全ノードから取り出して、パスコードにおいてこの目的を規定する領域に別々に配置するのが有利なこともある。
【００９９】
区切りコード１４’が文書構造におけるパスを定義する一連のセグメントの終了を示し、そして、パスによって参照される文書要素について符号化された情報の開始が挿入される必要がある。
【０１００】
さらに、ＸＭＬ言語は、属性を文書における様々な情報要素に関連付けする手段である。これに関連して、要素の属性へのパスの定義を許可する必要もある場合、各セグメントコード１１がセグメントの型コード１４（図２）に関連付けされ、セグメントの宛先オブジェクトがセグメントのソースノードの「息子」要素と呼ばれる別の要素、あるいはソースノードの属性であるかが判断できる。
【０１０１】
前述のように、情報要素とこの情報要素の属性との間のセグメント１１のコードは、要素について可能な属性を全てナンバリングすることによって得られる属性コードを含む。一方、要素の属性は順序付けされないので、要素と属性との間のセグメントコードに、位置フィールドを設ける必要がない。
【０１０２】
さらに、要素、または要素属性に対するセグメントコードを次の表に定義する。
【０１０３】
【表４】
2004536481.tif 000024
【０１０４】
上記例（図１ａ、図１ｂ）において、要素Ｔと３番目の要素ｂとの間のセグメントは次に示すコードｄによって完全に定義されている。
【０１０５】
【数１９】
2004536481.tif 000025
【０１０６】
したがって、図２に示すような本発明によると、木構造におけるパスは、パスの型コード１４’の終了によって終結する、上記定義したコードのような一連のセグメントコード１１、すなわち表４の“１１”からなる。
【０１０７】
また、表４において、コード“００”は、前に処理された要素に関連する構造化文書における要素の位置を定義する手段である。このように、コード“００”は、前の要素のソースノードにつながっている別の要素のセグメントノード、あるいはこのノードの属性を入力する手段を提供する。また、このコードの後に他の同一のコードが続き、文書の構造スキーマの木構造内の幾つかのノードを上昇してもよい。
【０１０８】
図３は、本発明によるパスをコード化するようプログラミングされたコンピュータによって行われる処理のフローチャートを示す。
【０１０９】
この図では、符号化処理は、文書構造を解析して表２の内容を判断する前段階と、構造情報要素毎に設けられる、要素属性のリストと、要素に含まれる「息子」要素の最大数とを含む。
【０１１０】
まず、前述のようにＸＭＬパスの形で表すことができる、符号化するパスから始まり、本発明に係る符号化コンピュータは、符号化するパスの第１セグメントのソース要素の名前を読み出すステップ２１を実行する。ステップ２２で、符号化コンピュータは、現セグメントの宛先オブジェクトが属性、または情報要素であるかを判断する。ステップ２３で、符号化コンピュータは、セグメントの型コード１４を判断されるべきパスコード１０に挿入する。このセグメントの型コードは、現セグメントの宛先オブジェクトが属性または要素であるかどうかによって、“０１”または“１０”と等しくなる。それから符号化コンピュータは、ステップ２４を実行し、現在符号化されているセグメントのソース要素に対応した、表２から読める属性コード、または組コード（要素、型）１２を挿入する。
【０１１１】
現セグメントの宛先オブジェクトが属性である場合、符号化処理は終了する。
【０１１２】
宛先オブジェクトが情報要素である場合、符号化コンピュータは符号化するパスから始まる現セグメントの宛先要素の位置を判断し、この位置の２進コードを、セグメントのソース要素につながった要素の最大数についての関数として判断する。ステップ２６では、符号化コンピュータは判断された位置コード１３を、組コード１２（要素、型）の後ろに、パスコードの中に挿入する。
【０１１３】
ステップ２７で符号化されるパスが別のセグメントを含む場合、符号化コンピュータは、ステップ２１からステップ２７までを次のセグメントで実行する。言い換えれば、符号化されるセグメントのソースノードは前に符号化されたセグメントの宛先ノードであることを前提とする。もしそうでない場合、符号化コンピュータは、セグメント型“１１”のコード１４’を挿入し、パスコードの終了を表す（ステップ２８）。
【０１１４】
前述のように、符号化されるパスは、前に符号化されたパスの宛先情報要素に対して、相対語で定義されてもよい。この場合、相対モードで符号化される新しいパスはまず、“００”と等しい１以上のセグメントの型コードを含み、これらのコードの数は、符号化される新しいパスによって参照されるノードに到着するのに上昇することが必要な構造スキーマの階層構造におけるレベルの数を示している。
【０１１５】
図４は、本発明によるパスを復号化するようプログラミングされたコンピュータによって行われる処理のフローチャートを示す。
【０１１６】
このタイプのコンピュータは、文書の構造スキーマの先行解析も行い、属性テーブルおよび要素に含まれる「息子」要素の最大数を、構造における情報要素毎に含む表２を得る。
【０１１７】
ステップ３１において、復号化コンピュータは符号化されたパス１０の最初の２ビットを読出して、表４で定義されているセグメントの型コード１４を出す。
【０１１８】
セグメントコードが、パスにおける次のオブジェクトは情報要素であることを示す“１０”と等しい場合（ステップ３２からステップ３４）、復号化コンピュータは１番目の要素に対応する表２を読出し、ステップ３８において、要素の組（要素、型）をコード化するのに用いられるビット数を判断する。絶対パスの場合、１番目の要素は文書構造のルート要素である。
【０１１９】
ステップ３９において、復号化コンピュータは、パスコードにおいて、このようにして判断されたビット数で１番目の要素のコード１２を読み出し、読み出されたコードと、１番目の要素に対応する表２を用いて、１番目のセグメントの宛先要素に対応する要素の名前と型を判断する。復号化コンピュータは１番目の要素に含まれる「息子」要素の最大数を用いて、復号化されるパスコード１０において後で読み出されるビット数を判断し（ステップ４０）、パスコードにおける要素の位置コード１３を、このようにして判断されたビット数で読み出す（ステップ４１）。そして、複合化コンピュータは、復号化されるパスコード１０における次のセグメントコード１１のためにステップ３１からステップ４１を実行し、前に復号化されたセグメントの宛先ノードは復号化される新しいセグメントのソースノードになる。
【０１２０】
ステップ３２からステップ３４で復号化されるパスコードにおいて読み出されるセグメントの型コード１４が“０１”と等しい場合、復号化されるセグメントの宛先オブジェクトは現要素の属性である。この場合、復号化コンピュータは、現要素の属性テーブルを読み出してパスコードにおいて属性数が符号化されるビット数を判断し（ステップ３６）、パスコードにおいてこのように判断されたビット数を読み出して属性数が得られる（ステップ３７）。属性数は、現要素の属性テーブルを用いて現セグメントの宛先属性を判断するのに用いられる。そして、パスの復号化処理が終了する。
【０１２１】
ステップ３２からステップ３４で復号化されるパスコードにおいて読み出されるセグメントコード１４が“１１”と等しい場合、パスコードの復号化も終了する。セグメントコードが“００”と等しい場合、これは復号化されるパスが相対モードで符号化されたとともに、復号化されたばかりのセグメントソース情報要素まで上昇させる（ステップ３５）必要があることを意味する。このコードが再び現れると、復号化コンピュータは木構造において別のレベルを上げ、現ノードの上にあるノードに位置を移す。
【０１２２】
言い換えると、コード“００”が現れる度に、復号化される次のセグメントの宛先情報要素はその前にある復号化されるセグメントのソースノードとなる。
【０１２３】
パスコード１０のパスコード１４’の終了は、このように復号化された最後のセグメントの宛先情報要素に含まれる符号化済み情報の開始を示す。
【０１２４】
また、パスコード１０の始めに位置する特定のコードを考慮して、後に続くパスが相対モードで符号化されるか絶対モードで符号化されるかを示すことが可能である。絶対モードでは、１番目のセグメントの情報要素が文書の木構造におけるルートノードである。パスが相対モードで符号化される場合、復号化コンピュータは現要素の「父親」要素に位置付けられる。
【図面の簡単な説明】
【０１２５】
【図１ａ】図１ａおよび図１ｂは、構造化文書の木構造の一部を表し、各ノードは情報セットまたは情報サブセットを表し、２つのノード間における枝の定義前、定義後をそれぞれ表している。
【図１ｂ】図１ａおよび図１ｂは、構造化文書の木構造の一部を表し、各ノードは情報セットまたは情報サブセットを表し、２つのノード間における枝の定義前、定義後をそれぞれ表している。
【図２】図２は、文書の木構造における本発明に係るパスの一般的な構造を示す。
【図３】図３は、本発明に係るパス符号化コンピュータによって実行される処理のフローチャートを示す。
【図４】図４は、本発明に係る復号化コンピュータによって実行される処理のフローチャートを示す。
【図２】
2004536481.tif 000026
【図３】
2004536481.tif 000027
【図４】
2004536481.tif 000028
【国際公開パンフレット】
2004536481.tif 000029
2004536481.tif 000030
2004536481.tif 000031
2004536481.tif 000032
2004536481.tif 000033
2004536481.tif 000034
2004536481.tif 000035
2004536481.tif 000036
2004536481.tif 000037
2004536481.tif 000038
2004536481.tif 000039
2004536481.tif 000040
2004536481.tif 000041
2004536481.tif 000042
2004536481.tif 000043
2004536481.tif 000044
2004536481.tif 000045
2004536481.tif 000046
2004536481.tif 000047
2004536481.tif 000048
2004536481.tif 000049
2004536481.tif 000050
2004536481.tif 000051
2004536481.tif 000052
2004536481.tif 000053
2004536481.tif 000054
【国際調査報告】
2004536481.tif 000055
2004536481.tif 000056
2004536481.tif 000057
2004536481.tif 000058
2004536481.tif 000059
2004536481.tif 000060