(57)【要約】【課題】  EXIでデータ型に応じて符号化するには、予め文書のスキーマまたは部分スキーマから符号化規則を生成しておく必要がある。スキーマは、XMLデータ全体の文法を決めるものであり、各XMLデータから見ると関係ない記述も含まれる。よって、スキーマから符号化規則を生成するには、多くの処理時間やメモリサイズが必要になる。【解決手段】  スキーマから符号化規則を生成しない。その代わり、符号化規則の学習範囲を指定し、入力されたＸＭＬデータの構造位置に学習した符号化規則がなければ、指定された範囲内の間、入力されたデータの型に応じて符号化規則を学習する。学習した符号化規則は、当該データ以降の符号化に適用し、デコーダへの入力フォーマットに応じてエクスポートする。【選択図】  図５
2011146036.tif 000002
【特許請求の範囲】
【請求項１】
入力した構造化データを符号化規則に従い符号化する情報処理装置であって、
前記符号化規則の学習対象を指定する指定手段と、
入力した前記構造化データが前記指定手段により指定された学習対象に適合するときに前記符号化規則の学習開始と判定する開始判定手段と、
前記開始判定手段により学習開始と判定された場合に、前記構造化データの構造及びデータ型を認識して前記符号化規則の学習を行う学習手段と、
入力した前記構造化データに対し、前記指定手段により指定された学習対象に応じた終了条件が成立したときに前記符号化規則の学習終了と判定する終了判定手段と、
前記終了判定手段により学習終了と判定されるまで前記構造化データを保存する保存手段と、
前記終了判定手段により学習終了と判定されたとき、前記保存手段により保存された構造化データを、前記学習手段により学習した符号化規則に従い符号化する符号化手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記学習手段により学習した符号化規則を学習終了後に出力する出力手段を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記出力手段は、前記学習手段により学習した符号化規則の出力形式を設定する手段を含み、前記学習手段により学習した符号化規則を前記設定された出力形式で出力することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記指定手段は、前記符号化規則の学習対象とする要素名を指定し、
前記開始判定手段は、入力した前記構造化データの要素名が前記指定手段により指定された要素名に適合したときに学習開始と判定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記終了判定手段は、入力した前記構造化データが前記指定手段により指定された要素名の終了要素に適合したときに前記終了条件が成立し、学習終了と判定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記終了判定手段は更に、前記学習手段により学習した符号化規則のデータサイズが所定のデータサイズを超えたときに学習終了と判定することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記終了判定手段は更に、入力した前記構造化データのデータサイズと前記保存手段により保存されている構造化データのデータサイズとの和が所定のデータサイズを超えたときに学習終了と判定することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記学習手段は、前記構造化データのデータ型を推定する手段を含むことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記学習手段は、前記構造化データに記述されたtype属性からデータ型を解釈する手段を含むことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項１０】
前記構造化データはＸＭＬデータであることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記符号化手段は、前記保存手段により保存された構造化データを、前記学習手段により学習した符号化規則に従い、EXI（Efficient XML Interchange）に符号化することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
入力した構造化データを符号化規則に従い符号化する情報処理装置の制御方法であって、
指定手段が、前記符号化規則の学習対象を指定する指定ステップと、
開始判定手段が、入力した前記構造化データが前記指定ステップで指定された学習対象に適合するときに前記符号化規則の学習開始と判定する開始判定ステップと、
学習手段が、前記開始判定ステップで学習開始と判定された場合に、前記構造化データの構造及びデータ型を認識して前記符号化規則の学習を行う学習ステップと、
終了判定手段が、入力した前記構造化データに対し、前記指定ステップで指定された学習対象に応じた終了条件が成立したときに前記符号化規則の学習終了と判定する終了判定ステップと、
保存手段が、前記終了判定ステップで学習終了と判定されるまで前記構造化データを保存する保存ステップと、
符号化手段が、前記終了判定ステップで学習終了と判定されたとき、前記保存ステップで保存された構造化データを、前記学習ステップで学習した符号化規則に従い符号化する符号化ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１３】
コンピュータを請求項１乃至１１のいずれか１項に記載の情報処理装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化文書を生成するための技術に関する。
【背景技術】
【０００２】
XMLでは一般的に、UTF-8やUTF-16などの文字符号化方式を使って全てのデータを符号化していた。この場合、本来の情報量に比べると冗長性がありデータサイズが大きくなる。これに対しバイナリXML技術であるISO/IEC標準のFast Infoset（非特許文献１）では、整数や浮動小数点数などをデータ型に応じた符号化方式で符号化することで、冗長性を減らしデータサイズを小さくしていた。しかしFast Infosetは、符号化データ中に、各データの符号化方式の識別子を記述しなければならず、識別子分のデータサイズを必要としていた。これに対し同じくバイナリXML技術であるW3CのEXI（非特許文献２）では、各データのデータ型情報をXMLのスキーマから取得するようにした。これにより、符号化データ中に符号化方式の識別子を記述する必要をなくし、データサイズをさらに小さくすることを実現していた。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ISO/IEC 24824-1:2007 Information technology - Generic applications of ASN.1:Fast Infoset
【非特許文献２】Efficient XML Interchange (EXI) Format 1.0 - http://www.w3.org/TR/exi
【発明の概要】
【発明が解決しようとする課題】
【０００４】
EXIでデータ型に応じて符号化するには、予め文書のスキーマまたは部分スキーマから符号化規則を生成しておく必要がある。スキーマは、XMLデータ全体の文法を決めるものであり、各XMLデータから見ると関係ない記述も含まれる。よって、スキーマから符号化規則を生成するには、多くの処理時間やメモリサイズが必要になる。
【０００５】
本発明は、スキーマから符号化規則を生成する従来手法に比してより高効率な符号化規則の生成を実現することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、入力した構造化データを符号化規則に従い符号化する情報処理装置であって、前記符号化規則の学習対象を指定する指定手段と、入力した前記構造化データが前記指定手段により指定された学習対象に適合するときに前記符号化規則の学習開始と判定する開始判定手段と、前記開始判定手段により学習開始と判定された場合に、前記構造化データの構造及びデータ型を認識して前記符号化規則の学習を行う学習手段と、入力した前記構造化データに対し、前記指定手段により指定された学習対象に応じた終了条件が成立したときに前記符号化規則の学習終了と判定する終了判定手段と、前記終了判定手段により学習終了と判定されるまで前記構造化データを保存する保存手段と、前記終了判定手段により学習終了と判定されたとき、前記保存手段により保存された構造化データを、前記学習手段により学習した符号化規則に従い符号化する符号化手段とを有することを特徴とする情報処理装置が提供される。
【発明の効果】
【０００７】
本発明によれば、入力されるXMLデータ自体から符号化規則を生成するので、スキーマから生成する場合に比べて冗長性の少ない符号化規則を生成することができる。これにより、小さなメモリサイズでEXIの符号化処理を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態における情報処理装置の構成を示すブロック図。
【図２】実施形態における情報処理装置で処理されるデータの例を示す図。
【図３】実施形態における情報処理装置の動作を示すフローチャート。
【図４】実施形態における情報処理装置の符号化処理に係る機能構成及びこの情報処理装置で処理されるデータの例を示す図。
【図５】実施形態における情報処理装置の動作を示すフローチャート。
【図６】実施形態における情報処理装置で処理されるデータの例を示す図。
【図７】実施形態における情報処理装置の動作を示すフローチャート。
【図８】実施形態におけるＸＭＬスキーマの例を示す図。
【図９】実施形態における情報処理装置の動作を示すフローチャート。
【図１０】実施形態における情報処理装置で処理されるデータの例を示す図。
【図１１】実施形態における情報処理装置の動作を示すフローチャート。
【図１２】実施形態におけるＸＭＬデータの一例を示す図。
【図１３】実施形態における描画設計用のツールの表示画面の一例を示す図。
【図１４】学習によるGrammarの圧縮を説明する図。
【図１５】実施形態における学習対象の指定のための各描画入力の回数のカウントを説明する図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、本発明は以下の実施形態に限定されるものではなく、本発明の実施に有利な具体例を示すにすぎない。
【００１０】
＜実施形態１＞
本実施形態の情報処理装置の構成について、図１のブロック図を参照して説明する。本実施形態の情報処理装置は単一のコンピュータ装置で実現してもよいし、必要に応じた複数のコンピュータ装置で機能を分散して実現してもよい。複数のコンピュータ装置で構成される場合は、互いに通信可能なようにLocal Area Network(LAN)などで接続されうる。
【００１１】
図１において、１０１は情報処理装置１００全体を制御するCentral Processing Unit（ＣＰＵ）である。１０２は変更を必要としないプログラムやパラメータを格納するRead Only Memory（ＲＯＭ）である。１０３は外部装置などから供給されるプログラムやデータを一時記憶するRandom Access Memory（ＲＡＭ）である。１０４は情報処理装置１００に固定して設置された外部記憶装置である。外部記憶装置は例えば次のものを含む。ハードディスク、メモリカード、フレキシブルディスク（ＦＤ）、Compact Disk（ＣＤ）等の光ディスク、磁気カード、光カード、ＩＣカードなど。１０５はユーザの操作を受け、データを入力するポインティングデバイスやキーボード１０９などの入力デバイスとのインタフェイスである。１０６はインターネット１０３などのネットワーク回線に接続するためのネットワークインタフェイスである。１０７は１０１〜１０６の各ユニットを通信可能に接続するシステムバスである。
【００１２】
本実施形態では、描画データが記述されたXMLデータに、本発明を適用した場合の例を説明する。描画データには、座標情報など多くの数値データが記述される。数値データは、文字型ではなく数値型として符号化した方が、コンピュータの処理がしやすくデータサイズが小さい。バイナリXMLで符号化することで、数値データを数値型として符号化することができる。図２に本実施形態で使用する描画データが記述されたXMLデータの例を示す。XMLデータには、座標情報を表すｘ属性、ｙ属性に数値データ“100”が記述されている。
【００１３】
まず、図２のXMLデータをW3C標準のバイナリXMLであるEXI（Efficient XML Interchange）へ符号化する際の例を示す。スキーマからEXIへの符号化は、２０２に示すGrammarと呼ばれるProductionの集合を符号化規則として使う。例えば、XMLデータが開始要素であれば、Grammarの中からSE(*)のProductionを探し、event code 2.5へ符号化する。終了要素であれば、Grammarの中からEEのProductionを探し、event code 2.0へ符号化する。
【００１４】
EXIで数値型への符号化を行うには、schema informedという符号化オプションを使用する。schema informedは、図２に示すように、符号化前に符号化対象のXMLのスキーマ２０３からGrammar２０２を生成する。EXIでは、データ型情報をスキーマ側に持たせることで符号化データのサイズを小さくしている。
【００１５】
２０１がEXI符号化に係る機能ブロック図である。EXI符号化装置は、スキーマからGrammarを生成するGrammar生成部と、生成したGrammarを用いてXMLデータをEXI符号化するEXI符号化部からなる。
【００１６】
図３に、schema informedのEXI符号化処理のフローチャートを示す。まず、Ｓ３０１において、XMLデータの分割入力を受け付ける。次にＳ３０２において、入力されたXMLデータがスキーマに妥当であるかどうかを判定する。妥当であると判定された場合は、Ｓ３０３において、対応するProductionを使い符号化する。妥当でないと判定された場合は、Ｓ３０４において、invalid schemaのProductionを使い符号化する。
【００１７】
図２のXMLデータは、x属性の値として100という値を入力している。この値は文字以外であることを示すために、浮動小数点数であるdouble型として入力している。EXIのschema informedでは、効率よく符号化するにはスキーマと一致した型で入力する必要がある。double型として入力した場合は、スキーマに妥当であるため、AT(“x”)のproductionを使いevent code 0とdouble型の100として符号化される。仮に、integer型として入力した場合は、スキーマに妥当でないため、AT(“x”)[schema-invalid-value]のproductionを使い、event code2.4.0と文字列型の100として符号化される。
【００１８】
以上からわかるように、データ型に適した符号化が行えるschema informedでは、スキーマを事前に読み込むことや、生成したGrammarを符号化終了まで保持しなければいけないといったコストがかかる。さらに、スキーマは定義情報なので、図２に示すように、C要素、S要素、L要素といった入力されたXMLデータには含まれないGrammarも生成、保持しなければならない。入力されたXMLデータを一通り解析し、その後EXIへの符号化を行えば、Grammarの生成、保持を効率化することができるかもしれない。しかし本発明を適用すれば、XMLデータを一通り解析するコストを要さず、リアルタイムに効率的なGrammarの生成、保持を行うことができる。
【００１９】
図４は本実施形態におけるEXIへの符号化処理に係る機能を説明する図である。本発明では、符号化前に符号化対象のXMLのスキーマからGrammar生成を行うことはない。その代わりにGrammarの学習対象を指定する。ここでいう学習とは、EXIで定義されているBuilt-in Grammarからの学習とは異なり、従来であればスキーマから生成される部分の学習である。学習対象は、例えば、ある名前の要素、もしくはある一定区間に含まれる要素というように、XMLの構造を指定することができる。本実施形態では、Path要素、M要素、Ｃ要素、Ｓ要素、Ｌ要素を学習対象として指定する。他には、メモリリソースが少ない環境では、学習するGrammarのデータサイズを指定してもよい。本発明を適用すれば、Grammarは４０２のみ保持すればよくなる。
【００２０】
図４において、４０１は本実施形態における情報処理装置の符号化処理に係る機能構成図である。学習対象指定部４１１はGrammarの学習対象を指定する。学習開始判定部４１２及び学習終了判定部４１３はそれぞれ、学習対象の指定に従い入力データに対し学習の開始及び終了を判定する。Grammar学習部４１４はGrammarの学習を行う。構造化データ保存部４１５は、学習中に入力データを一時保存する。構造化データ符号化部４１６は、学習したGrammarを使い入力データを符号化する。Grammar出力部４１７は学習したGrammarを学習終了後に出力する。
【００２１】
図５は、本実施形態におけるEXIへの符号化処理を示すフローチャートである。まずＳ５０１において、ＸＭＬデータの分割入力を受け付ける。次にＳ５０２において、あらかじめ指定された条件に従い、入力された構造化データがGrammarの学習対象であるかを判定する。本実施形態では、学習対象としてPath要素、M要素、C要素、S要素、L要素を指定しているので、入力された構造化データの要素名が何れかに適合しているかどうかを判定する。
【００２２】
Ｓ５０２において学習対象であると判定された場合は、Ｓ５０３においてGrammarの学習を行う。図７は学習を行う際のフローチャートである。以下図７のフローチャートに従って説明する。まずＳ７０１において、既にGrammarが学習済みであるかどうかを判定する。本実施形態で行う学習は、従来符号化前にスキーマから生成される部分であり、EXIに準拠した符号化データを生成するには、一度学習したGrammarは同じものを使い続けなければならない。よって、学習済みと判定された場合は、学習を行わずリターンする。
【００２３】
Ｓ７０１において、学習済みでないと判定された場合は、Ｓ７０２において、入力されたXMLデータの構造と型をチェックし、対応するGrammarのProductionと型情報と階層位置を登録する。ここで既にProductionがある場合は登録しない。本実施形態では、M要素のx属性の値として“100”という値を入力している。文字ではなく浮動小数点数であることを示すためにdouble型として入力している。よって、M要素のGrammarに対応するAT(“x”)のProductionがないので、図６の６０１のGrammarにProductionを追加し、６０２のGrammarを作成する。同様に、M要素のy属性の値として“100”というdouble型の値を入力している。よって、図６の６０２のGrammarにAT(“y”)のProductionを追加し６０４のGrammarを作成する。また、図６の６０３、６０５に示すようにx属性、y属性の値の型情報としてdouble型を記録する。ここで仮に、その後M要素のx属性の値としてdouble型が入力された場合は、既にProductionがあるので追加を行わない。その後M要素のx属性の値としてinteger型が入力された場合は、スキーマにinvalidとみなし、AT(“x”){schema-invalid value}のProductionを使うものとし追加を行わない。
【００２４】
入力されるXMLデータの型は、インタフェースで明示的に指定してもよいが、符号化装置側が認識する方法もある。例えば、Ｊａｖａ（登録商標）のリフレクション機能を使えば、入力されたXMLデータのオブジェクトから型を推定することができる。また、型を示す識別子を予め符号化装置に記憶しておき、入力データ中の識別子を読むことで型を解釈することもできる。例えば、XMLスキーマのtype属性はデータ型を示す属性なので、符号化装置側が入力データに記述されたtype属性を認識することで型を解釈することができる。
【００２５】
次にＳ７０３において、Grammar学習の終了条件が成立しているかどうかを判定する。本実施形態では、学習対象としてPath要素、M要素、C要素、S要素、L要素を指定している。よって、M要素のGrammarについては、M要素の終了要素が入力された時点で終了条件が成立したと判定する。Ｍ要素のx属性の値が入力された時点やy属性の値が入力された時点では、M要素が終了していないので終了条件が成立していないと判定する。同様に、PathのGrammarについても、Path要素の終了要素が入力された時点で終了条件が成立したと判定する。あるいは、学習したGrammarのデータサイズの閾値として所定のデータサイズを指定することもできる。この場合は、学習したGrammarのデータサイズが、上記所定のデータサイズを超えたときに学習終了と判定してもよい。
【００２６】
Ｓ７０３において終了条件が成立していないと判定された場合は図７の処理を終了し、図５の処理へ戻りＳ５０４へ進む。終了条件が成立したと判定された場合は、Ｓ７０４において、学習したGrammarにevent codeを割り当てる。本実施形態では、EXIの仕様に沿って、図６の６０６に示すように追加したAT(“x”), AT(“y”)のProductionに対し順番にevent code 0, 1を割り当てる。追加前のProductionのevent codeには追加分を加算したevent codeを割り当てる。次にＳ７０５において、学習済みであることを示すために、６０６に示すように学習済みフラグをオンにする。そして図７の処理を終了し、図５の処理へ戻りＳ５０４へ進む。このフラグは、後述する入力データをEXIへ符号化する際に使われる。
【００２７】
Ｓ５０４では、学習中のGrammarがあるかどうかを判定する。Grammarが学習中であるかどうかは前述するフラグによって示されている。入力されたXMLデータは、学習したGrammarで符号化する。よって、学習中であればevent codeが確定していないので、学習終了するまで入力データを保存しておかなければならない。学習中のGrammarがあると判定された場合は、Ｓ５０５において、入力されたXMLデータを保存する。入力データ順に符号化することを期待する場合は、学習中のGrammarがあると判定された際には、例え学習対象ではない入力データであっても保存しておかなければならない。
Ｓ５０４において学習中のGrammarがないと判定された場合は、Ｓ５０６において、学習したGrammarを使って、一時保存されているデータと入力されたXMLデータを符号化する。
【００２８】
符号化したデータは復号装置により復号される。EXIのschema informedでは、符号化時と同様に、予めXMLのスキーマからGrammarを生成することで復号処理を行う。そこで、本発明に従い学習したGrammarをXMLのスキーマとして出力すれば、同様な復号装置で復号可能となる。または、復号装置側のGrammar設定フォーマットに従い学習したGrammarを出力すれば、スキーマを介さずに同様な復号装置で復号可能となる。したがって、Grammar出力部４１７は学習したGrammarの出力形式の設定ができ、学習したGrammarを、設定された出力形式で出力するように構成されるとよい。以下では、学習したGrammarの出力形式をスキーマとして出力する場合を詳細に説明する。
【００２９】
図８は出力したXMLスキーマの例である。本実施形態では、W3CのXML Schemaを用いて作成している。他のスキーマ言語を用いて作成してもよい。図９はスキーマを作成する際のフローチャートである。まずＳ９０１において、学習したGrammarの中で、スキーマ生成が行われていないものがあるかどうかを判定する。Ｓ９０１において、あると判定された場合は、Ｓ９０２において学習したGrammarの要素を定義するスキーマを生成する。本実施形態では、Path要素、M要素のGrammarがスキーマ生成の対象となる。よって、＜xsd: element name="Path" type="pathtype"/＞、＜xsd: element name="M" type="mtype"/＞を生成する。“pathtype”、“mtype”は参照のための識別子なので文字列自体に意味はない。
【００３０】
次にＳ９０３において、学習したProductionの中で、スキーマ生成が行われていないものがあるかどうかを判定する。Ｓ９０３において、あると判定された場合は、Ｓ９０４においてGrammarの要素の中身としてProductionと型情報に対応するスキーマを生成する。本実施形態では、図６の６０６、６０７より、double型のx属性、double型のy属性として次の記述を生成する。＜xsd: attribute name="x" type="xsd:double"/＞、＜xsd: attribute name="y" type="xsd:double"＞。本スキーマの生成は、符号化処理中に行ってもよいし、全入力データを符号化終了後に行ってもよい。
【００３１】
＜実施形態２＞
実施形態２では、記憶領域の少ない機器でも適用できるように、学習条件に、保存する入力データサイズの制限を指定した際の例を示す。図１０は、本実施形態で符号化するXMLデータの例である。本実施形態においても、実施形態１と同様に、Path要素、M要素、C要素、S要素、L要素を学習対象として指定する。このとき、Path要素のGrammarの学習が開始するのは、Pathの開始要素であるデータの先頭、学習が終了するのは、Pathの終了要素であるデータの末尾になる。順次符号化処理を行う場合、学習中の入力データは全て保持しなければならないので、記憶領域の少ない機器では符号化が難しくなる。そこで、Grammarの学習条件の指定で、保存する入力データサイズの閾値を設定しておく。
【００３２】
図１１は本実施形態のフローチャートである。符号化処理のうち、図５のＳ５０５へ進む前までの手順は実施形態１と同様である。Ｓ５０５へ進む際に、Ｓ１１０１において、既に保存されているデータと入力データのサイズの和が、予め指定された閾値を超えているかどうか判定する。超えていないと判定された場合は、Ｓ１１０２において入力されたXMLデータを保存しＳ５０１へ進む。超えていると判定された場合は、Ｓ１１０３において、学習中のGrammarに対し現時点でのProductionに対するevent codeを割り当てる。event codeの割り当て方法は実施形態１と同様である。さらにＳ１１０４において、Grammarの学習済みフラグを立て学習を完了させる。最後にＳ１１０５において、学習したGrammarを使って、一時保存されているデータと入力されたXMLデータを入力順に符号化しＳ５０１へ進む。
【００３３】
以上により、設定された閾値でPath要素のGrammarの学習が終了し、保存しなければならないデータは図１０のようにPath要素の一部で済む。但し、Grammarの学習がPath要素の途中で終了しているので、図１０のように学習終了後に出てきたL要素はschema invalidなGrammarのProductionが適用される。
【００３４】
＜実施形態３＞
スキーマを使ったバイナリXML符号化の目的として、スキーマという共通情報を使って各XMLインスタンスの圧縮効率を高めたいというものがある。しかしEXIではさらに、データ型適合符号化を行いたいという目的もある。データ型適合符号化は、整数値を文字列型ではなく整数型で符号化するというように、データ型に適した符号化を行うことで圧縮効率を高めるものである。
【００３５】
よって、後者のデータ型適合符号化だけを目的とする場合は、処理コストやGrammarのサイズを考えて、文字列型以外のデータだけschema informed grammarを作成したいという場合がある。実施形態１では、要素名で指定したが、本実施形態は階層数で指定する。図１２のＸＭＬにおいて、文字列型以外のデータを使っているのはx属性の値とy属性の値である。この属性はルート要素から数えて２番目の階層の要素に属する。そこで、階層数２を指定する。すると、図５に示すＳ５０２において階層数２のＭ要素がGrammarの学習対象になり、Ｓ５０３においてGrammarの学習を行う。実施形態１と同様に図６に示すGrammarが生成され、効率的にバイナリＸＭＬへの符号化が行われる。
【００３６】
＜実施形態４＞
以下の実施形態４では、ユーザの選択に応じたGrammar学習対象の指定について説明する。
【００３７】
図１３に示すように、ユーザはツールを使用しながら描画設計を行う。そして設計した描画結果を、例えばＸＭＬ形式に変換して保存する。図１４は、図１３の描画結果をＸＭＬに変換した結果を示す。図１３における丸や四角の図形部分はpath要素で記述され、テキスト部分はtext要素で記述される。本実施形態ではさらに、ＸＭＬのバイナリ符号化方式であるＥＸＩに変換できるものとする。
【００３８】
スキーマを使ったＥＸＩへの符号化では、スキーマを使わない場合よりも圧縮効率が高いが、図１４に示すようなscript要素やanimate要素など、図１４のXMLには出現しないタグまでGrammarが生成されてしまう。また、svg要素やtext要素といった繰り返しのない圧縮効果の小さいタグまでGrammarが生成されてしまう。
【００３９】
そこで、図１５に示すように、図形入力や文字入力といった各描画入力の回数をツール側でカウントする。各描画入力は、ツール側で一定のＳＶＧタグへ変換されるので、描画入力の回数は、あるＳＶＧタグの出現回数と同等になると予測することができる。そこで、EXIへエクスポートする際に、カウントした回数の多い描画入力を選択し、対応するＳＶＧタグを特定して学習対象として指定する。本実施形態では、丸と四角と直線の描画入力を選択し、path要素、m要素、ｌ要素を学習対象として指定する。ＥＸＩへの符号化では、指定されたpath要素、m要素、ｌ要素のみ学習しGrammarを生成する。学習や生成の方法については上述の実施形態と同様である。
【００４０】
これにより、頻繁に使われるタグについてのみGrammarが生成されるので、圧縮効率を落とすことなく符号化、復号化に要するメモリ使用量を小さくすることができる。
【００４１】
（他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011146036.tif 000003
【図２】
2011146036.tif 000004
【図３】
2011146036.tif 000005
【図４】
2011146036.tif 000006
【図５】
2011146036.tif 000007
【図６】
2011146036.tif 000008
【図７】
2011146036.tif 000009
【図８】
2011146036.tif 000010
【図９】
2011146036.tif 000011
【図１０】
2011146036.tif 000012
【図１１】
2011146036.tif 000013
【図１２】
2011146036.tif 000014
【図１３】
2011146036.tif 000015
【図１４】
2011146036.tif 000016
【図１５】
2011146036.tif 000017