(57)【特許請求の範囲】
【請求項１】
データ固有の構造とデータ間の関係とを表す構造化データを情報処理機器が処理できるデータ形式の情報に変換する場合に、変換したデータ形式の情報を記憶するデータ記憶領域の記憶領域量を予め求める記憶領域管理方式において、
処理を実行するセントラル・プロセッシング・ユニット（Ｃｅｎｔｏｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）と、
上記ＣＰＵが処理を行った結果を記憶する記憶部と、
構造化データを入力してＣＰＵにより解析して記憶領域量を推定するパラメータとなる解析結果情報を生成し、生成した解析結果情報をＣＰＵにより記憶部に記憶する解析処理部と、
記憶領域量を推定するパラメータを予め複数記憶するとともに、複数のパラメータそれぞれに対応させて、記憶領域量を推定する記憶領域推定情報を予め記憶する記憶領域推定情報記憶部と、
上記解析処理部が生成した解析結果情報を記憶部より入力して、入力した解析結果情報と適合するパラメータに対応する記憶領域推定情報を上記記憶領域推定情報記憶部から取得して、取得した記憶領域推定情報に基づいて上記記憶領域量を決定して、決定した記憶領域量をＣＰＵにより記憶部に記憶する記憶領域決定部と、
上記記憶領域決定部が決定した記憶領域量を記憶部より入力して、入力した記憶領域量に相当する記憶領域を、上記変換したデータ形式の情報を記憶するデータ記憶領域としてＣＰＵにより確保する記憶領域管理部と
を備えたことを特徴とする記憶領域管理方式。
【請求項２】
上記記憶領域管理方式は、さらに、
上記解析処理部により解析する構造化データのうち解析対象とするデータの範囲を指定する解析範囲情報を入力装置により入力して、入力した解析範囲情報をＣＰＵにより記憶部に記憶する入力部を備え、
上記解析処理部は、上記入力部が入力した解析範囲情報を記憶部より入力して、入力した解析範囲情報により指定された範囲の構造化データをＣＰＵにより解析する
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項３】
上記入力部が入力する解析範囲情報は、構造化データの全てを解析対象とすることを指定する情報と、
構造化データの先頭のデータから一部分までを解析対象とすることを指定する情報と、
構造化データの特定箇所のデータから一部分までを解析対象とすることを指定する情報とのいずれかの情報である
ことを特徴とする請求項２記載の記憶領域管理方式。
【請求項４】
上記構造化データは、データの構造を特徴付ける特定情報と、上記特定情報と対応した特定終了情報とを有し、
上記入力部は、上記構造化データの有する特定情報を示す情報を上記解析範囲情報として入力して、ＣＰＵにより記憶部に記憶し、
上記解析処理部は、上記入力部が入力した解析範囲情報を記憶部より入力して、構造化データの先頭のデータから特定情報を検出するまで構造化データの解析を行い、上記構造化データの特定情報を検出した場合は、検出した特定情報と対応する特定終了情報を検出するまで、構造化データを読み飛ばして、構造化データの特定終了情報を検出した場合は、検出した特定終了情報の次の構造化データから最後の構造化データまでをＣＰＵにより解析する
ことを特徴とする請求項２記載の記憶領域管理方式。
【請求項５】
上記構造化データは、データの構造を特徴付ける特定情報と、上記特定情報と対応する特定終了情報とを有し、
上記入力部は、上記構造化データの有する特定情報を示す情報を上記解析範囲情報として入力して、ＣＰＵにより記憶部に記憶し、
上記解析処理部は、所定の手順で構造化データを解析する第１の解析処理部と、上記第１の解析処理部とは異なる手順で構造化データを解析する第２の解析処理部とを備えて、上記入力部が入力した解析範囲情報を記憶部より入力して、構造化データの先頭のデータから特定情報を検出するまでの構造化データを上記第１の解析処理部により解析し、上記構造化データの特定情報を検出した場合は、検出した特定情報と対応する特定終了情報を検出するまで構造化データを上記第２の解析処理部により解析し、構造化データの特定終了情報を検出した場合は、検出した特定終了情報の次の構造化データから最後の構造化データまでを上記第１の解析処理部により解析する
ことを特徴とする請求項２記載の記憶領域管理方式。
【請求項６】
上記構造化データは、上記データ固有の構造を特徴付ける特徴データを有し、
上記解析処理部は、上記構造化データから特徴データを検出して、検出した結果から上記解析結果情報を生成する
ことを特徴とする請求項１から４のいずれかに記載の記憶領域管理方式。
【請求項７】
上記構造化データは、構造化データに関する基本情報を有し、
上記解析処理部は、上記構造化データの基本情報を上記解析結果情報とすることと、上記構造化データの基本情報を上記解析結果情報に含めることとのいずれかを行う
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項８】
上記基本情報は、構造化データの出所を示す出所情報と、構造化データの作成日時を示す作成日時情報と、構造化データの更新日時を示す更新日時情報との少なくともいずれかひとつの情報であることを特徴とする請求項７記載の記憶領域管理方式。
【請求項９】
上記解析処理部は、上記構造化データから特徴データを検出した結果について、検出した結果の解析対象とした構造化データに対する割合を求めて、求めた割合を上記解析結果情報とすることと、求めた割合を上記解析結果情報に含めることとのいずれかを行う
ことを特徴とする請求項６記載の記憶領域管理方式。
【請求項１０】
上記記憶領域推定情報記憶部が記憶する複数のパラメータはそれぞれ、１つの値であることと、所定の範囲を示す値であることとのいずれかである
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項１１】
上記記憶領域推定情報記憶部が記憶する記憶領域推定情報は、解析結果情報と記憶領域量とをそれぞれ軸とする座標平面に対して、過去に生成したＮ個（Ｎは整数であり、Ｎ≧１）の解析結果情報と解析結果情報を元にして得られた記憶領域量とを予めプロットして求めた関数を示す推定関数情報であり、
上記記憶領域決定部は、上記解析処理部が生成した解析結果情報を記憶部より入力して、入力した解析結果情報と適合するパラメータに対応する推定関数情報を上記記憶領域推定情報記憶部から取得して、取得した推定関数情報に基づいて上記記憶領域量を決定する
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項１２】
上記記憶領域推定情報記憶部は、過去に同一の解析結果情報が生成された複数の構造化データのうち実際に使用した記憶領域量が最大の記憶領域量を、上記同一の解析結果情報をパラメータとする記憶領域推定情報に含めて記憶し、
上記記憶領域決定部は、上記取得した記憶領域推定情報が最大の記憶領域量を含む場合、最大の記憶領域量を上記決定した記憶領域量としてＣＰＵにより記憶部に記憶する
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項１３】
上記記憶領域推定情報記憶部は、過去に同一の解析結果情報が生成された複数の構造化データのうち実際に使用した記憶領域量が最小の記憶領域量を、上記同一の解析結果情報をパラメータとする記憶領域推定情報に含めて記憶し、
上記記憶領域決定部は、上記取得した記憶領域推定情報が最小の記憶領域量を含む場合、最小の記憶領域量を上記決定した記憶領域量としてＣＰＵにより記憶部に記憶する
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項１４】
上記記憶領域推定情報記憶部は、過去に生成した解析結果情報と、解析結果情報を生成した構造化データが実際に使用した記憶領域量との統計に基づいて求めた記憶領域不足が発生しない記憶領域量を予め記憶領域推定情報に含めて記憶し、
上記記憶領域決定部は、上記取得した記憶領域推定情報が記憶領域不足が発生しない記憶領域量を含む場合、記憶領域不足が発生しない記憶領域量を上記決定した記憶領域量としてＣＰＵにより記憶部に記憶する
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項１５】
上記記憶領域管理部は、上記変換したデータ形式の情報を記憶するデータ記憶領域の使用状況を監視して、確保した記憶領域量が不足しているかいないかを検出し、不足していることが検出できた場合に、上記解析処理部に対して記憶領域量の不足を通知し、
上記解析処理部は、上記記憶領域管理部から記憶領域量が不足していることを受信すると、上記入力部が入力した解析範囲情報により指定された範囲以外の構造化データをＣＰＵにより解析し、上記解析結果情報を生成してＣＰＵにより記憶部に記憶し、
上記記憶領域決定部は、上記解析処理部が生成した解析結果情報を記憶部より入力して、入力した解析結果情報と適合するパラメータに対応する記憶領域推定情報を上記記憶領域推定情報記憶部から取得して、取得した記憶領域推定情報に基づいて新たに確保する記憶領域の記憶領域量を決定して、決定した新たに確保する記憶領域の記憶領域量をＣＰＵにより記憶部に記憶し、
上記記憶領域管理部は、上記記憶領域決定部が決定した記憶領域量を記憶部より入力して、入力した記憶領域量相当する記憶領域を、既に確保している記憶領域に対して追加で確保する
ことを特徴とする請求項３または４記載の記憶領域管理方式。
【請求項１６】
上記記憶領域管理部は、上記変換したデータ形式の情報を記憶するデータ記憶領域の使用状況を監視して、確保した記憶領域量が不足しているかいないかを検出し、不足していることが検出できた場合に、上記記憶領域決定部が決定した記憶領域量を記憶部より入力して、入力した記憶領域量に相当する記憶領域を、既に確保している記憶領域に対して追加で確保する
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項１７】
上記記憶領域管理方式は、さらに、既に確保している記憶領域量に対して追加で確保する記憶領域量を示す追加記憶領域量情報を予め記憶する追加記憶領域量記憶部を備え、
上記記憶領域管理部は、上記変換したデータ形式の情報を記憶するデータ記憶領域の使用状況を監視して、確保した記憶領域量が不足しているかいないかを検出し、不足していることが検出できた場合に、上記追加記憶領域量記憶部が記憶する追加記憶領域量情報をＣＰＵにより取得し、取得した追加記憶領域量情報に相当する記憶領域を、既に確保している記憶領域に対して追加で確保する
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項１８】
上記記憶領域管理部は、上記構造化データを変換したデータ形式の情報を記憶領域に記憶させる場合に、実際の記憶領域の使用量を管理して実使用量を求め、求めた実使用量をＣＰＵにより記憶部に記憶し、
上記記憶領域管理方式は、さらに、
上記記憶領域管理部が求めた実使用量を記憶部より入力するとともに、上記記憶領域決定部が決定した記憶領域量を記憶部より入力して、入力した実使用量と記憶領域量との差を求め、求めたに差に基づいて上記記憶領域推定情報記憶部が記憶する記憶領域推定情報を補正する推定情報補正部を備えた
ことを特徴とする請求項１記載の記憶領域管理方式。
【請求項１９】
請求項１に記載したＣＰＵと、記憶部と、解析処理部と、記憶領域推定情報記憶部と、記憶領域決定部と、記憶領域管理部とを１つの装置に備えることを特徴とする記憶領域管理装置。
【請求項２０】
請求項１に記載したＣＰＵと、記憶部と、解析処理部と、記憶領域推定情報記憶部と、記憶領域決定部とを備えた記憶領域推定装置と、
請求項１に記載したＣＰＵと、記憶部と、記憶領域管理部とを備えた記憶領域管理装置とをネットワークを介して接続する記憶領域管理システムであって、
上記記憶領域推定装置と記憶領域管理装置とはそれぞれ、上記ネットワークを介して通信装置により情報の通信を行う通信部を備えた
ことを特徴とする記憶領域管理システム。
【請求項２１】
データ固有の構造と、データ間の関係とを表す構造化データを記憶する構造化データ記憶部を備える構造化データ記憶装置と、
上記構造化データ記憶装置を第１のネットワークを介して接続して、構造化データ記憶装置から構造化データ記憶部が記憶する構造化データを上記第１のネットワークを介して取得して、取得した構造化データを情報処理機器が処理できるデータ形式の情報に変換する場合に、変換したデータ形式の情報を記憶するデータ記憶領域の記憶領域量を求めて、求めた記憶領域量を送信する記憶領域推定装置と、
上記記憶領域推定装置を第２のネットワークを介して接続して、上記記憶領域推定装置が送信した記憶領域量を上記第２のネットワークを介して受信する記憶領域管理装置と
を備え、
上記記憶領域管理装置は、
処理を実行するセントラル・プロセッシング・ユニット（Ｃｅｎｔｏｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）と、
上記ＣＰＵが処理を行った結果を記憶する記憶部と、
上記構造化データ記憶装置の構造化データ記憶部が記憶する構造化データを取得する指示を通信装置により送信するとともに、上記記憶領域推定装置が送信した記憶領域量を通信装置により受信して、受信した記憶領域量をＣＰＵにより記憶部に記憶する通信部と、
上記通信部が受信した記憶領域量を記憶部より入力して、入力した記憶領域量に相当する記憶領域を、上記変換したデータ形式の情報を記憶するデータ記憶領域にＣＰＵにより確保する記憶領域管理部と
を備え、
上記記憶領域推定装置は、
処理を実行するセントラル・プロセッシング・ユニット（Ｃｅｎｔｏｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）と、
上記ＣＰＵが処理を行った結果を記憶する記憶部と、
上記記憶領域管理装置が送信した構造化データを取得する指示を通信装置により受信して、受信した構造化データを取得する指示に基づいて上記構造化データ記憶装置の構造化データ記憶部から構造化データを通信装置により受信して記憶部にＣＰＵにより記憶するとともに、上記記憶領域量を通信装置により送信する通信部と、
上記通信部が入力した構造化データをＣＰＵにより解析して記憶領域量を推定するパラメータとなる解析結果情報を生成し、生成した解析結果情報をＣＰＵにより記憶部に記憶する解析処理部と、
上記記憶領域量を推定するパラメータを複数記憶するとともに、複数のパラメータそれぞれに対応させて、上記記憶領域量を推定する記憶領域推定情報を予め記憶する記憶領域推定情報記憶部と、
上記解析処理部が生成した解析結果情報を記憶部より入力して、入力した解析結果情報と適合するパラメータに対応する記憶領域推定情報を上記記憶領域推定情報記憶部から取得して、取得した記憶領域推定情報に基づいて上記記憶領域量を決定して、決定した記憶領域量をＣＰＵにより記憶部に記憶する記憶領域決定部と
を備えた
ことを特徴とする記憶領域管理システム。
【請求項２２】
上記記憶領域推定装置の通信部は、上記記憶領域管理装置が送信した構造化データを取得する指示に対する応答情報のヘッダ情報に上記記憶領域量を含めて、上記記憶領域管理装置へ送信することを特徴とする請求項２１記載の記憶領域管理システム。
【請求項２３】
上記記憶領域推定装置の通信部は、上記記憶領域管理装置が送信した構造化データを取得する指示に対する応答情報とは別の情報に上記記憶領域量を含めて、上記記憶領域管理装置へ送信することを特徴とする請求項２１記載の記憶領域管理システム。
【請求項２４】
上記記憶領域推定装置は、上記記憶領域管理装置が送信した構造化データを取得する指示を受信した場合に、上記記憶領域量を決定する処理を行うことを特徴とする請求項２１記載の記憶領域管理システム。
【請求項２５】
上記記憶領域管理装置の通信部は、構造化データを取得することを指示する要求情報のヘッダ情報に、上記指示を示す情報を含めて送信することを特徴とする請求項２１記載の記憶領域管理システム。
【請求項２６】
上記記憶領域管理装置の通信部は、構造化データの取得を指示する専用の要求情報を用いて、専用の要求情報に上記指示を示す情報を含めて送信することを特徴とする請求項２１記載の記憶領域管理システム。
【請求項２７】
データ固有の構造と、データ間の関係とを表す構造化データを情報処理機器が処理できるデータ形式の情報に変換する場合に、変換したデータ形式の情報を記憶するデータ記憶領域の記憶領域量を求める記憶領域管理方法において、
解析処理部が、構造化データを入力して、入力した構造化データをＣＰＵにより解析して記憶領域量を推定するパラメータとなる解析結果情報を生成し、生成した解析結果情報をＣＰＵにより記憶部に記憶する解析処理ステップと、
入力部が記憶領域量を推定する複数のパラメータと、複数のパラメータそれぞれに対応する記憶領域量を推定する記憶領域推定情報とを入力装置のより入力して、入力した複数のパラメータと複数のパラメータにそれぞれ対応する記憶領域推定情報を予め記憶領域推定情報記憶部に記憶する記憶領域推定情報記憶ステップと、
記憶領域決定部が、上記解析処理部により生成された解析結果情報を記憶部より入力して、入力した解析結果情報と適合するパラメータに対応する記憶領域推定情報を上記記憶領域推定情報記憶部から取得して、取得した記憶領域推定情報に基づいて上記記憶領域量を決定して、決定した記憶領域量をＣＰＵにより記憶部に記憶する記憶領域決定ステップと、
記憶領域管理部が、上記記憶領域決定部により決定された記憶領域量に基づく記憶領域を、上記変換したデータ形式の情報を記憶するデータ記憶領域としてＣＰＵにより確保する記憶領域管理ステップと
を有することを特徴とする記憶領域管理方法。
【請求項２８】
上記構造化データは、上記データ固有の構造を特徴付ける特徴データを有し、
上記解析処理ステップは、上記解析処理部が、上記構造化データから特徴データを検出して、検出した結果から上記解析結果情報を生成する
ことを特徴とする請求項２７記載の記憶領域管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ固有の構造とデータ間の関係とを表す構造化データを情報処理機器が処理できるデータ形式の情報に変換する場合に、変換したデータ形式の情報を記憶する記憶領域の記憶領域量を予め求めるものであり、特に、構造化データを解析した結果の解析結果情報に適合する記憶領域量を推定する記憶領域推定情報より記憶領域量を決定する記憶領域管理方式、記憶領域管理装置、記憶領域管理システム、及び、記憶領域管理方法に関する。
【背景技術】
【０００２】
ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等の構造化データを処理するデジタル回路やソフトウェアは、そのデータを一時的に保持しておくために、メモリを使用することが多い。その際に、構造化データをそのままメモリ上に展開するのではなく、そのデータを解析し、内部的に処理しやすい内部データ表現形式に変換し、メモリ上に展開するのが一般的である。
例えば、ＸＭＬの場合には、通常Ｗ３Ｃ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）で仕様策定されたＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）に基づいて、ＸＭＬの構造化データを内部データ表現形式に変換しメモリ上に展開する。展開する際に、データ内の各ノードは、タグはＥｌｅｍｅｎｔオブジェクト、属性はＡｔｔｒオブジェクト、テキストはＴｅｘｔオブジェクトと言った様に、ノード種別によって異なるオブジェクトのインスタンスで表現される。このように構造化データを内部データ表現形式に変換しメモリ上に展開する場合、必要となるメモリ領域をいかに効率的に確保するかは重要な課題であり、メモリ制約の厳しい組込機器への構造化データ適用のニーズが増えている現在において特に重要な課題となっている。
【０００３】
従来のメモリ確保の方法（従来方法１）では、構造化データの解析中、随時必要最低限のメモリ量（記憶領域量）を確保する方法が取られていた。この方法は、理論上解析終了時に余分に確保されたメモリが存在しない利点がある。
その他の従来の方法（従来方法２）として、構造化データのデータサイズに基づいて解析前に必要となるメモリ量（記憶領域量）を推定する方法がある。この方法では、必要となると推定されたメモリ量（記憶領域量）を一度に確保するため、その領域を消費するまではメモリ確保処理が不要となるため、前期方法よりも高速に処理可能な利点がある。
また、例えば、特開平５−１０１１１１号公報（特許文献１、従来方法３）には、データのファイルサイズを求め、そのファイルサイズに応じて使用される記憶領域サイズを決定し、記憶領域を確保する技術が記載されている。
【特許文献１】特開平５−１０１１１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来方法１では、メモリが必要となるたびにメモリ確保処理を行う必要があるため、処理速度が遅くなる問題や、アドレスバウンダリの影響により、理論上のメモリ量（記憶領域量）よりも多くのメモリ領域を消費する問題がある。
また、従来方法２，３では、構造化データはデータサイズが同じでも、内部構造の複雑さは千差万別であり、必要となるメモリ量（記憶領域量）には大きな開きが生じる。このため、内部構造が非常に簡単な場合には、実際に必要となるメモリ量（記憶領域量）よりも極端に多くのメモリ量（記憶領域量）を確保してしまう。また逆に、内部構造が非常に複雑な場合には、実際に必要となるメモリ量（記憶領域量）よりも少ないメモリ量（記憶領域量）しか確保できず、メモリ確保処理を繰り返し行う必要が生じる問題がある。
【０００５】
前記従来技術の課題を鑑みて、本発明は、従来技術よりも推定するメモリ量（記憶領域量）と実際に必要となるメモリ量（記憶領域量）の誤差を少なくする事を可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るデータ固有の構造とデータ間の関係とを表す構造化データを情報処理機器が処理できるデータ形式の情報に変換する場合に、変換したデータ形式の情報を記憶するデータ記憶領域の記憶領域量を予め求める記憶領域管理方式は、
処理を実行するセントラル・プロセッシング・ユニット（Ｃｅｎｔｏｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）と、
上記ＣＰＵが処理を行った結果を記憶する記憶部と、
構造化データを入力してＣＰＵにより解析して記憶領域量を推定するパラメータとなる解析結果情報を生成し、生成した解析結果情報をＣＰＵにより記憶部に記憶する解析処理部と、
記憶領域量を推定するパラメータを予め複数記憶するとともに、複数のパラメータそれぞれに対応させて、記憶領域量を推定する記憶領域推定情報を予め記憶する記憶領域推定情報記憶部と、
上記解析処理部が生成した解析結果情報を記憶部より入力して、入力した解析結果情報と適合するパラメータに対応する記憶領域推定情報を上記記憶領域推定情報記憶部から取得して、取得した記憶領域推定情報に基づいて上記記憶領域量を決定して、決定した記憶領域量をＣＰＵにより記憶部に記憶する記憶領域決定部と、
上記記憶領域決定部が決定した記憶領域量を記憶部より入力して、入力した記憶領域量に相当する記憶領域を、上記変換したデータ形式の情報を記憶するデータ記憶領域としてＣＰＵにより確保する記憶領域管理部と
を備えたことを特徴とする。
【発明の効果】
【０００７】
この発明の記憶領域管理方式は、解析処理部が構造化データを入力してＣＰＵにより解析して記憶領域量を推定するパラメータとなる解析結果情報を生成し、記憶領域推定情報記憶部が記憶領域量を推定するパラメータを予め複数記憶するとともに、複数のパラメータそれぞれに対応させて、記憶領域量を推定する記憶領域推定情報を予め記憶し、記憶領域決定部が上記解析処理部が生成した解析結果情報を入力して、入力した解析結果情報と適合するパラメータに対応する記憶領域推定情報を上記記憶領域推定情報記憶部から取得して、取得した記憶領域推定情報に基づいて上記記憶領域量を決定して、決定した記憶領域量をＣＰＵにより記憶部に記憶する。このため、例えばオブジェクトの出現回数を解析結果情報とし、記憶領域推定情報はオブジェクトの出現回数から取得したり、ある１つのオブジェクトの出現回数から他のオブジェクトの出現回数を予測して記憶領域推定情報を取得するようにすると、構造化データの内部構造が複雑であっても、記憶領域推定情報を取得する処理時間を高速にできる効果がある。また、記憶領域推定情報を取得する処理は複雑でないため、高速に行える効果がある。また、例えば、記憶領域推定情報は、オブジェクトの単一サイズにそのオブジェクトの出現回数を掛けたり、複数のオブジェクトの出現回数を合計した数に複数のオブジェクトの平均サイズを掛けたりして、オブジェクトの出現回数から記憶領域量を推定するようにすると、推定した記憶領域量と実際に必要となる記憶領域量との差を小さくできる効果がある。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、この実施の形態の記憶領域管理方式を実行する構造化データメモリ管理装置の機能ブロック図である。
図２は、図１の記憶領域管理方式を実現する構造化データメモリ管理装置を含むシステム構成を示す図である。
図３は、図２の構造化データメモリ管理装置を含むシステムのハードウェア資源の一例を示す図である。
【０００９】
図１〜図３の構造化データメモリ管理装置の要素について説明を行う前に、本実施の形態、及び、他の実施の形態で説明する構造化データと内部データ形式について説明する。
構造化データとは、情報処理機器で処理可能なように、既存の知識の延長線上、またはある集団・組織内に浸透する一般的な意味を交換可能なデータ固有の構造や関係をデータ自身に組み込んだデータの事である。例えば、ＸＭＬ、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等が代表的な構造化データである。
図４（ａ）は、構造化データの一例としてのＨＴＭＬコンテンツを示す図である。例えば、図４（ａ）の「＜ｈｔｍｌ＞」、「＜ｔｉｔｌｅ＞」、「＜ｂｏｄｙ＞」、「＜ｂ＞」、「＜ｂｒ＞」は、タグの持つ意味を表現するＥｌｅｍｅｎｔオブジェクトである。また、「ｓａｍｐｌｅ１」、「ｓａｍｐｌｅ」は、テキストの持つ意味を表現するＴｅｘｔオブジェクトである。
【００１０】
また、内部データ形式とは、前記構造化データを情報処理機器でより容易に取り扱える様に情報処理機器に都合のよい形式に変換した内部表現形式のことである。例えば、ＸＭＬやＨＴＭＬ等であれば標準仕様であるＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）に準拠した内部表現形式から、固有に策定した内部表現形式までを指す。一般的に内部データ形式は、前記構造化データの保持するデータ固有の構造や関係・意味を保持可能とするため、それぞれのデータに適した複数の内部表現形式を持つ。例えば、ＤＯＭであれば、ＸＭＬドキュメントを表現するＤｏｃｕｍｅｎｔオブジェクトがあり、タグの持つ意味を表現するためのオブジェクトとしてＥｌｅｍｅｎｔオブジェクトがあり、テキストの持つ意味を表現するためにＴｅｘｔオブジェクトがある。それぞれのオブジェクトの構造関係を表現するために各オブジェクトをノードとした木構造で表現する。図４（ｂ）は、図４（ａ）のＨＴＭＬコンテンツをＤＯＭに準拠した内部データ形式で表現した場合のブロック図の例である。四角形のブロックはＤｏｃｕｍｅｎｔオブジェクト、六角形のブロックはＥｌｅｍｅｎｔオブジェクト、楕円のブロックはＴｅｘｔオブジェクトを表現している。ブロック間の縦方向の矢印は木構造の親子関係を、横方向の矢印は兄弟関係を表現している。兄弟関係はコンテンツ内の同一階層のオブジェクト同士で結ばれ、親子関係は隣接する階層構造間のオブジェクト同士で結ばれる関係構造である。
【００１１】
また、情報処理機器とは、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、Ｗｏｒｋｓｔａｔｉｏｎと言った据え置き型の情報処理機器から、携帯電話、カーナビゲーションシステム、デジタルテレビや情報家電といった、組込機器と呼ばれる情報機器が含まれる。
【００１２】
次に、図１の記憶領域管理方式を実行する構造化データメモリ管理装置について説明する。
図１において、構造化データメモリ管理装置１０は、記憶領域管理方式を実行する装置の一例であり、記憶領域管理装置の一例である。また、構造化データメモリ管理装置１０は、記憶領域管理方法を実行する装置の一例である。構造化データメモリ管理装置１０は、構造化データを入力してＣＰＵにより解析して記憶領域量を推定するパラメータとなる解析結果情報を生成し、生成した解析結果情報をＣＰＵにより記憶部に記憶する解析処理部の一例の前解析処理部１３を備える。また、記憶領域量を推定するパラメータを予め複数記憶するとともに、複数のパラメータそれぞれに対応させて、記憶領域量を推定する記憶領域推定情報を予め記憶する記憶領域推定情報記憶部の一例の記憶領域推定情報格納部１６を備える。また、前解析処理部１３が生成した解析結果情報を記憶部より入力して、入力した解析結果情報と適合するパラメータに対応する記憶領域推定情報を上記記憶領域推定情報格納部１６から取得して、取得した記憶領域推定情報に基づいて上記記憶領域量を決定して、決定した記憶領域量をＣＰＵにより記憶部に記憶する記憶領域決定部１５を備える。また、上記記憶領域決定部１５が決定した記憶領域量を記憶部より入力して、入力した記憶領域量に相当する記憶領域を、上記変換したデータ形式の情報を記憶するデータ記憶領域としてＣＰＵにより確保する記憶領域管理部１７を備える。また、従来のメモリ管理方式によるメモリ管理を行う構造化データ解析部１４を備える。また、構造化データを記憶する構造化データ記憶部の一例である構造化データ格納部１１を備える。また、解析の対象とする構造化データの解析対象範囲を指定する解析範囲情報１００を入力する入力部１８を備える。また、構造化データメモリ管理装置１０の前記した各要素の動作を制御する解析処理制御部１２を備える。
【００１３】
以下に、構造化データメモリ管理装置１０の前記した各要素の動作を、解析処理制御部１２の動作を中心にして説明する。動作の説明において、図５のシーケンス図を参照する。図５は、解析処理制御部１２を中心としたシーケンス図である。
構造化データ格納部１１（構造化データ記憶部の一例）は、少なくとも一つ以上の構造化データの実体もしくは実体を参照する情報（ＵＲＬ、ポインタ、その他の参照情報等）を永続的、もしくは一時的に格納する記憶領域である。具体的にはＲＡＭやＲＯＭなどの内部メモリ、ハードディスク、ＦＤＤ（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、メモリーカード、ＣＤＲＯＭ、ＤＶＤ等が考えられる。構造化データ格納部１１に格納されている構造化データは、通常のファイルシステムによって管理する方法、データベースの様に各構造化データにキーを設定し、そのキーを利用して管理する方法、解析処理を要求されている構造化データがリクエスト順に列挙されているリストやキュー、リングバッファ形式で管理する方法等が考えられる。また、各構造化データに付随する関連情報を一緒に格納し管理する事も考えられる。その場合の関連情報は、構造化データの取得元情報（ＵＲＬ等）やこの構造化データの作成日時情報、更新日時情報、作成作者情報、更新作者情報等が考えられる。
【００１４】
解析処理制御部１２は、構造化データの解析処理の制御を行う中央制御部である。解析処理制御部１２は、上位モジュールより構造化データ解析要求を受けると、その要求に対応した構造化データを構造化データ格納部１１より取得する。適切に取得できなかった場合には、解析処理制御部１２は上位モジュールに対してコンテンツ取得不正応答を返す。
正常に取得できた場合には、解析処理制御部１２はそのコンテンツを前解析するため前解析処理部１３に対して、前解析要求を発行する。また、構造化データを前解析する範囲の指定がある場合には、入力部１８より、解析範囲を示す解析範囲情報１００を入力して、入力した解析範囲情報１００を前解析要求に含めて、前解析処理部１３に発行する。前解析が正常に終了しなかった場合には、解析処理制御部１２は上位モジュールに対して前解析不正応答を返すか、もしくは、従来通りのメモリ管理方式で解析を継続するため、構造化データ解析部１４に対して、従来解析要求を発行する。この「解析を継続する」とは、万が一、前解析が正常終了できなかった場合に、そこで処理を中断させないために、記憶領域管理方式による記憶領域量の推定は行わないで、従来からのメモリ管理方式を行う構造化データ解析部１４を利用して構造化データの解析を実行するように、構造化データ解析部１４に命令するものである。つまり、前解析処理部１３による解析結果情報は生成されないため、記憶領域量を推定して推定した記憶領域量の記憶領域をデータ記憶領域に確保する処理は、構造化データ解析部１４が独自に行う事になる。構造化データ解析部１４による記憶領域の確保は、多くの場合、解析前にコンテンツに関係なく一定量の記憶領域量の記憶領域をデータ記憶領域に確保する、或いは、記憶領域が必要になった時に、必要な記憶領域量の記憶領域をデータ記憶領域に毎回確保する方式になる。
【００１５】
前解析処理部１３による前解析が正常に終了した場合には、解析処理制御部１２は解析結果情報を元にして、前解析の対象とした構造化データを内部データ形式に変換する際に必要となる記憶領域サイズ（記憶領域量）を決定するために、記憶領域決定部１５に領域決定要求を発行する。記憶領域決定部１５による領域決定が正常に終了しなかった場合には、解析処理制御部１２は上位モジュールに対して領域決定不正応答を返すか、もしくは、従来通りのメモリ管理方式で解析を継続するため、構造化データ解析部１４に対して、従来解析要求を発行する。この「解析を継続する」とは、前述した前解析処理部１３による解析結果情報の生成が正常に行われなかった場合の「解析を継続する」ことと、同様の動作をいう。
記憶領域決定部１５による領域決定が正常に終了した場合には、解析処理制御部１２は決定された領域サイズ（記憶領域量）の記憶領域をデータ記憶領域に確保するため、記憶領域管理部１７に対して、領域確保要求を発行する。記憶領域管理部１７による領域確保に失敗した場合には、解析処理制御部１２は上位モジュールに対して領域確保不正応答を返すか、もしくは、従来通りのメモリ管理方式で解析を継続するため、構造化データ解析部１４に対して、従来解析要求を発行する。この「解析を継続する」とは、前述した前解析処理部１３による解析結果情報の生成が正常に行われなかった場合の「解析を継続する」ことと、同様の動作をいう。
記憶領域管理部１７による領域確保に成功した場合には、確保されたメモリ領域（記憶領域量）を使用して構造化データの解析を行うために、解析処理制御部１２は構造化データ解析部１４に対して解析要求を発行し、解析結果を上位モジュールに返す。
【００１６】
前解析処理部１３は、解析処理制御部１２からの前解析要求を受け、要求に対応する構造化データを前解析するモジュールである。解析する構造化データは、構造化データ格納部１１をアクセスして取得する場合と、ネットワークを介して外部装置より受信する場合とがある。前解析を行った結果生成する解析結果情報は、構造化データを解析し、内部データ形式を構成する内部データオブジェクトを生成するために必要となる記憶領域サイズ（記憶領域量）を決定するためのパラメータとして利用される。
【００１７】
記憶領域決定部１５は、解析処理制御部１２からの領域決定要求を受け、要求に含まれる解析結果情報を元に、構造化データを内部データ形式で表現した場合に、内部データを構成する内部データオブジェクトを生成するために必要となる記憶領域サイズ（記憶領域量）を決定するモジュールである。また、記憶領域決定部１５が記憶領域サイズ（記憶領域量）を決定する際にアクセスする記憶領域推定情報格納部１６には、記憶領域サイズ（記憶領域量）を決定する際に必要となる記憶領域推定情報を、記憶領域量を推定する複数のパラメータ毎に対応させて格納している。記憶領域決定部１５は必要に応じて記憶領域推定情報格納部１６から、解析結果情報に適合するパラメータに対応する記憶領域推定情報を取得して、記憶領域量を決定する記憶領域決定処理を遂行する。決定された記憶領域量は、オブジェクトの区別をしないで一括したサイズで求める場合や、オブジェクトの区別を行い、各オブジェクトでどれだけのサイズの領域が必要となるかを求める場合が考えられる。例えば、前記したように構造化データがＸＭＬドキュメントである場合は、ＥｌｅｍｅｎｔオブジェクトとＴｅｘｔオブジェクトとが存在するので、これらのオブジェクトを区別することなく１つの記憶領域量を決定する場合と、これらのオブジェクト毎に対応する記憶領域量を求める場合とがある。なお、それぞれのオブジェクトに対応する記憶領域量を求める場合には、前解析処理部１３によりオブジェクト毎の解析結果情報を生成することが必要となる。さらに、オブジェクト毎の解析結果情報を生成する場合には、解析結果情報を生成するオブジェクトを指定する情報を入力部１８より入力するとともに、指定したオブジェクト毎に解析結果情報を生成することを指示する情報を入力部１８より入力することが必要となる。
【００１８】
記憶領域管理部１７は、解析処理制御部１２からの領域確保要求を受け、要求に応じた記憶領域サイズ（記憶領域量）の記憶領域をデータ記憶領域に確保する。また、記憶領域管理部１７は、構造化データ解析部１４が構造化データを内部データ形式に変換するための解析処理の途中に、変換した内部データ形式の内部データを格納するために必要となった記憶領域要求に対して、適切な記憶領域を参照するための情報を返す。その際に、データ記憶領域に確保した記憶領域が枯渇した場合には、構造化データ解析部１４に領域不足応答を返す。
記憶領域決定部１５が決定した記憶領域サイズ（記憶領域量）が、オブジェクトの区別を行わずに一括した記憶領域サイズ（記憶領域量）で求めている場合には、記憶領域管理部１７では、記憶領域の確保方法は、その記憶領域サイズ（記憶領域量）の記憶領域を一つ確保する事になる。一方、オブジェクトの区別を行って記憶領域サイズ（記憶領域量）を決定した場合には、各オブジェクト毎に決定された記憶領域量の記憶領域をそれぞれ独立して確保する。
【００１９】
また、記憶領域管理部１７による記憶領域の確保が正常に終了した場合、構造化データ解析部１４では、解析処理制御部１２の解析要求に応じて、要求に対応する構造化データの解析を行う。その際に構造化データを解析し、内部データとして表現する処理を行う際に必要となる記憶領域の記憶領域サイズ（記憶領域量）は、記憶領域管理部１７に対して、構造化データ解析部１４が要求する事によって、記憶領域管理部１７が、要求された記憶領域サイズ（記憶領域量）の記憶領域について他からの使用を禁止することによって構造化データ解析部１４による使用を保証する。そして、記憶領域管理部１７は、構造化データ解析部１４から要求された内容に適合した記憶領域サイズ（記憶領域量）の記憶領域を確保できたことを通知する情報を、構造化データ解析部１４に応答として返す。さらに、確保した記憶領域を使用するための必要となる情報も構造化データ解析部１４に通知する。また、その際にメモリ領域が不足した場合には、記憶領域管理部１７は構造化データ解析部１４に対して、エラー通知を行う。
【００２０】
入力部１８は、構造化データの解析対象とする範囲を指定する解析範囲情報１００を入力して、解析範囲情報１００を解析処理制御部１２に通知する。解析範囲情報１００は、例えば、構造化データ全てを解析対象として指定する情報や、構造化データの一部を解析対象として指定する情報である。また、構造化データの有する特定の情報を解析対象とするように、特定の情報を解析範囲情報１００に含めて指定する。解析範囲情報１００の具体的な内容は後で説明する。
以上が、図１の構造化データメモリ管理装置１０の備える要素の概略である。
【００２１】
次に、構造化データメモリ管理装置１０の外観を説明する。構造化データメモリ管理装置１０は、例えば図２のような機器構成をしているものとする。図２において、構造化データメモリ管理装置１０は、クライアント装置９０９、サーバ装置９１０、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
サーバ装置９１０及びクライアント装置９０９とは、コンピュータであり、サーバ装置９１０とクライアント装置９０９とはケーブルで接続されている。また、クライアント装置９０９は、サーバ装置９１０を介してデータベース９０８に記憶されている情報に対してアクセスすることが出来る。データベース９０８は、例えば構造化データ格納部１１に相当し、クライアント装置９０９はサーバ装置９１０を介して、データベース９０８が記憶する構造化データを取得する。サーバ装置９１０とデータベース９０８とはケーブルで接続され、また、ローカルエリアネットワーク９４２（ＬＡＮ）、ゲートウェイ９４１を介してインターネット９４０に接続されている。インターネット９４０の右側には、別のコンピュータシステムが接続されている。クライアント装置９０９は、サーバ装置９１０、ＬＡＮ９４２、ゲートウェイ９４１、インターネット９４０を介して、インターネット９４０の右側にある別のコンピュータシステムの記憶装置に記憶された情報をアクセスすることが出来る。
【００２２】
図３において、構造化データメモリ管理装置１０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置ともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。ＣＰＵ９１１は、解析処理制御部１２、前解析処理部１３、記憶領域決定部１５、記憶領域管理部１７、構造化データ解析部１４、入力部１８の動作を制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリーカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、記憶装置、格納部、あるいは記憶部の一例であって、情報処理機器が処理できるデータ形式（内部データ形式）の情報に変換した情報を記憶するデータ記憶領域を備える。
通信ボード９１５、キーボード９０２、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信ボード９１５、表示装置９０１出力部、出力装置の一例である。
【００２３】
通信ボード９１５は、ＬＡＮ９４２に接続されている。通信ボード９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００２４】
上記プログラム群９２３には、実施の形態で説明する構造化データメモリ管理装置１０の備える「〜部」と、構造化データメモリ管理装置１０により動作する「〜ステップ」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、実施の形態の説明において、「解析結果情報」、「記憶領域量」、「解析範囲情報」、「〜の解析結果」、「〜決定した結果」、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明するデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
また、実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２５】
また、実施の形態の説明において「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」、「〜ステップ」の手順をコンピュータに実行させるものである。
【００２６】
以下では前解析処理部１３の処理の具体例を挙げて説明を行う。この実施の形態では、前解析処理部１３で構造化データの前解析を行い、解析結果情報を生成して、記憶領域決定部１５により構造化データを内部データ形式で表現する際に必要となるデータ記憶領域の記憶領域量を、解析結果情報から求める。
その前解析処理の具体例として、構造化データが有するデータ固有の構造を特徴付ける特徴データについて解析を行った場合を説明する。例えば、構造化データの構造を特徴付ける情報を特徴データとして構造化データから抽出し、その個数を前解析結果とするものである。
構造化データがＸＭＬの場合には、タグの開始記号となる”＜”や、タグの終了記号となる”／＞”、属性への値代入を示す”＝”等が、特徴データの一例として挙げられる。
【００２７】
図１の説明において、入力部１８は、解析範囲情報１００として、例えば、構造化データ全てを解析対象として指定する情報や、構造化データの一部を解析対象として指定する情報や、解析対象データの有する特定の情報を解析対象とするように、特定の情報を解析範囲情報１００に含めて指定すると説明した。ここでは、入力部１８は、全ての構造化データを解析範囲として指定するとともに、特定の情報のみを解析対象とする場合について、例えば特徴データであるタグの開始記号となる”＜”、タグの終了記号となる”／＞”、属性への値代入を示す”＝”について前解析処理部１３で解析を行い、その出現回数を解析結果情報として生成することについて説明する。すなわち、解析範囲情報１００は、構造化データの全データを解析対象にして、”＜”，”／＞”，”＝”の出現回数を解析することを指定する情報となる。  図６は、構造化データがＸＭＬの場合における特徴データとしてタグ開始記号のみを利用した場合の前解析処理部１３の処理フロー図である。
【００２８】
図５のシーケンスではＳ５の構造化データ取得ステップが、解析処理の開始であり、はじめに、解析処理制御部１２は、解析対象とする構造化データを指定する情報を入力する。例えば、構造化データ格納部１１に予め複数の構造化データが記憶されて、それぞれの構造化データが構造化データを識別するファイル名によって区別されている場合には、入力部１８によりファイル名を入力する。また、解析する構造化データが構造化データメモリ管理装置１０に記憶されていない場合は、解析する構造化データそのものを入力部１８より入力する。入力部１８は、例えば通信ボード９１５、キーボード９０２、ＦＤＤ９０４であるので、通信ボード９１５の場合には、解析処理制御部１２は、ネットワークを介して通信ボード９１５が受信したファイル名や構造化データそのものを入力する。キーボード９０２である場合には、解析処理制御部１２は、キーボード９０２が入力したファイル名を入力する。ＦＤＤ９０４である場合には、解析処理制御部１２は、ＦＤＤ９０４のフレキシブルディスクをＣＰＵによりアクセスして記憶されたファイル名、或いは、解析データそのものを入力する。ファイル名が入力された場合には、解析処理制御部１２は、構造化データ格納部１１からファイル名から特定される構造化データをＣＰＵにより取り出す。
【００２９】
解析処理制御部１２は、解析対象の構造化データを取得できたら、次は、解析範囲情報１００を入力する。この実施の形態では、前述のように、構造化データの全データを解析対象にして、”＜”，”／＞”，”＝”の出現回数を解析するため、解析範囲情報１００は、構造化データの全データを解析対象とすることを指定する情報、及び、”＜”，”＜”，”／＞”，”＝”の出現回数を解析することを指定する情報とを有する。前述のように入力部１８は、例えば通信ボード９１５、キーボード９０２、ＦＤＤ９０４であるので、通信ボード９１５の場合には、解析処理制御部１２は、ネットワークを介して通信ボード９１５が受信した解析範囲情報１００を入力する。キーボード９０２である場合には、解析処理制御部１２は、キーボード９０２が入力した解析範囲情報１００を入力する。ＦＤＤ９０４である場合には、解析処理制御部１２は、ＦＤＤ９０４のフレキシブルディスクに記憶された解析範囲情報１００をＣＰＵによりアクセスして取り出す。
ここでは、解析対象とする構造化データの指定（或いは、入力）と、解析範囲情報１００の指定（或いは、入力）とを、解析処理制御部１２が動作を開始する処理開始要求の入力とする。
解析処理制御部１２は、前述の処理開始要求を入力すると、前解析処理を開始する指示と、解析対象の構造化データと、解析範囲情報１００とを前解析要求として、ＣＰＵにより記憶部に記憶して、前解析処理部１３を動作させる。すなわち、前解析処理を開始する指示と、解析対象の構造化データと、解析範囲情報１００とを前解析要求として、ＣＰＵにより前解析処理部１３に出力する。以下の説明において、解析処理制御部１２から他の「〜部」へ情報を送信、通知、出力する処理は、送信、通知、出力する情報をＣＰＵにより記憶部に記憶して、解析処理制御部１２が他の「〜部」を動作させてことをいうものとする。また、他の「〜部」が、解析処理制御部１２から受信、入力、取得する情報は、解析処理制御部１２がＣＰＵにより記憶部に記憶した情報を読み取る動作をいうものとする。すなわち、解析処理制御部１２と他の「〜部」との間の情報のやり取りは、記憶部を介して行うものである。
【００３０】
Ｓ１の解析処理ステップでは、前解析処理部１３は、解析処理制御部１２より前解析要求を入力すると、前述の解析範囲情報１００をＣＰＵにより解析して、解析対象の範囲が全データであることを判断する。さらに、前解析処理部１３は、前述の解析範囲情報１００をＣＰＵにより解析して、解析を行う内容が、構造化データ中の”＜”，”＜”，”／＞”，”＝”の出現回数を求めることであることを判断する。前解析処理部１３は、図６のフロー図に従い、構造化データ中の”＜”  ，”＜”，”／＞”，”＝”の出現回数をＣＰＵにより求める動作を開始する。図６では、はじめにタグ開始記号の個数を記憶する変数ｔ＿ｃｏｕｎｔに０を代入し初期化を行う。この処理は、前解析処理開始直前であるため、抽出された特徴データは０個である事を意味する。また、構造化データの先頭文字を現在文字とする。
次に、現在文字が終端文字であるかどうかを判別する。この処理は、構造化データ全ての前解析が終了したかどうかを判定するための処理であり、終端文字であった場合には前解析が全て終了した事を意味する。終端文字でない場合には、前解析を必要としているデータが残っている事を意味する。この時に終端文字であった場合には、前解析を終了し、その時点のｔ＿ｃｏｕｎｔの値が前解析を行った構造化データに対する前解析の結果である解析結果情報となる。
逆に現在文字が終端文字でなかった場合には、次の処理へと移行する。次の処理では、終端文字ではない現在文字が”＜”，”／＞”，”＝”のいずれかであるかどうかを判別する。この処理は現在文字が特徴データと一致するかを判別する処理であり、特徴データと一致した場合には変数ｔ＿ｃｏｕｎｔに１を加算し、特徴データが一つ発見された事を変数ｔ＿ｃｏｕｎｔに反映させ、次の処理へ移行する。逆に現在文字が特徴データと一致しなかった場合には、ｔ＿ｃｏｕｎｔには何も影響を及ぼさずに次の処理へ移行する。
次の処理は現在文字を現在の文字位置から一文字進める。この処理は、前解析を終了した文字からその隣接する前解析を終了していない文字に現在文字を移動させるための処理である。この処理を終了後、現在文字が終端文字かどうかの判別処理から繰り返す。
【００３１】
以上の処理を前解析処理部１３がＣＰＵにより行う事によって、構造化データに幾つのタグ開始記号と、タグの終了記号となる”／＞”と、属性への値代入を示す”＝”とがあるかを解析できる。この出現回数をカウントした情報を用いる事によって、構造化データであるＸＭＬコンテンツをＤＯＭの内部データ形式で表現する際に、オブジェクトが幾つ必要となるかを推定する事が可能となる。
ただし、この方法では構造化データに含まれるタグ開始記号と、タグの終了記号と、属性への値代入との合計数を前解析しているため、異なるオブジェクトの合計数を解析結果情報とすることになる。オブジェクトの単一サイズは、オブジェクトの種類によりそれぞれ異なるので、異なるオブジェクトの合計数を解析結果情報とすると、記憶領域決定部１５の動作の説明は後述するが、例えば、記憶領域決定部１５が、異なるオブジェクトの単一サイズを合計して、その合計から求めた平均のサイズを使用して記憶領域量を求めると仮定する。属性への値代入の出現回数が合計数の８割を占め、属性への値代入のオブジェクトの単一サイズと、他のオブジェクトの単一サイズとの差が大きい場合は、平均のサイズが属性への値代入のオブジェクトの単一サイズよりも小さくなるので、平均サイズを使用して推定した記憶領域量は、実際に必要とする記憶領域量よりも少なくなることが予想される。
また、例えば構造化データに含まれるタグ開始記号のみの出現回数を解析するように解析範囲情報１００に指定することができる。この方法では、タグの個数を推定する事は可能であるが、その他の要素の個数に関して推定する事ができない。このため、前述のように、属性への値代入のオブジェクトの単一サイズと、他のオブジェクトの単一サイズとの差が大きく、属性への値代入のオブジェクトの数がタグ開始記号のオブジェクトの数よりも多い場合には、タグ開始記号のオブジェクトの出現回数を解析結果情報として記憶領域量を求めると、実際に必要とする記憶領域量よりも少ない記憶領域量が求められてしまう。
そこで、タグの個数と、属性値の個数と、テキスト文字数とをそれぞれ別々に解析する前解析処理の処理フローの一例を説明する。なお、解析範囲情報１００は、”＜”，”＜”，”／＞”，”＝”の出現回数を解析することを指定する情報に替えて、タグの個数と、属性値の個数と、テキスト文字数とのそれぞれの出現回数を別々に解析することを指定する情報となる。
【００３２】
図７は、構造化データがＸＭＬの場合における特徴データとしてタグの開始・終了記号、属性設定記号、テキスト文字数のそれぞれによる特徴抽出処理フロー図である。前解析処理部１３が解析処理制御部１２から前解析要求を受けた後の解析範囲情報１００の内容を判断する処理は同様であるため省略する。前解析処理部１３が、構造化データの全データについて、タグの開始・終了記号、属性設定記号、テキスト文字数のそれぞれの出現回数について解析を行い、解析結果情報を生成する処理について説明する。
（１）変数ｔ＿ｃｏｕｎｔ、ａ＿ｃｏｕｎｔ、ｓ＿ｃｏｕｎｔに０を代入する事で初期化を行う。この３変数はそれぞれ、前解析を行う構造化データに存在するタグ数、属性数、テキスト文字数の推定値を保持するための変数である。また、同時に現在文字として構造化データの先頭文字を設定する。
（２）次に現在文字が終端文字であるか判別する。もし終端文字である場合には、前解析を行っている構造化データは全て前解析を終了した事を意味するため、前解析を終了し、その時点のｔ＿ｃｏｕｎｔ、ａ＿ｃｏｕｎｔ、ｓ＿ｃｏｕｎｔの値がそれぞれタグ数、属性数、テキスト文字数の出現値を表している。終端文字でない場合には次の処理へ移行する。
（３）次の処理では現在文字が”＜”であるか判別する。もし”＜”である場合には現在文字はタグの開始記号である事を意味するため、ｔ＿ｃｏｕｎｔに１加算する事で解析結果を変数に反映し、現在文字を１文字先に進める。”＜”でない場合には、その文字はテキストである事を意味するのでｓ＿ｃｏｕｎｔに１加算し、現在文字を１文字先に進め、（２）の処理へ移行する。”＜”の場合には次の処理へ移行する。
（４）この処理では、タグの内部の前解析を行う処理であるため、現在文字が属性への値代入を意味する”＝”であるか判別する。”＝”の場合には、属性がある事を示すため、ａ＿ｃｏｕｎｔに１加算し、現在文字を１文字先に進め（４）の処理を繰り返す。”＝”でない場合には、次の処理へ進む。
（５）この処理では、タグが終了しているかどうかを判別する処理となる。そのため、現在文字が”／”であり、かつ現在文字の次の文字が”＞”であるか判別し、タグの終了記号の判別を行う。この条件を満たさない場合には、タグ終了記号ではないため、現在文字を１文字先に進め、（４）の処理へ移行する。この条件を満たす場合には、タグが終了した事を意味するため、現在文字を２文字先に進め、（２）へ処理を移行する。
【００３３】
以上の処理を行う事によって、構造化データに存在するタグ数、属性数、テキスト文字数をそれぞれ個別に推定する事が可能である。これらの情報を用いる事によって、構造化データであるＸＭＬコンテンツをＤＯＭの内部データ形式で表現する際に、Ｅｌｅｍｅｎｔオブジェクト（タグに対応）、Ａｔｔｒオブジェクト（属性に対応）が幾つ必要となるか、そしてテキスト領域として何文字分確保する必要があるかを個別に推定する事が可能となる。
前述した例では、前解析処理部１３は解析した”＜”，”＜”，”／＞”，”＝”の出現回数や、タグの開始・終了記号、属性設定記号、テキスト文字数のそれぞれの出現回数を、記憶部に解析結果情報として記憶し、前解析処理部１３が解析処理の終了を解析処理制御部１２に通知する。そして、解析処理制御部１２は、解析処理の終了通知を受けて、記憶部から解析結果情報を取り出して、記憶領域決定部１５に対して解析結果情報とともに、領域決定要求を出力する。
【００３４】
以上の方法では、属性数の推定に属性への値代入記号である”＝”を利用しているため、属性へ値を代入していない場合には実際の属性数と異なる推定値が求まる事となる。しかし、本技術では各オブジェクトの個数を正確に求める事が目的ではなく、いかに簡単な方法で各オブジェクトの個数の推定値を求め、その推定値からより誤差の少ない記憶領域量の決定を行う事が目的であるため、これは本質的な問題ではない。もし、より正確な個数を前解析で求めたいのであれば、実際に構造化データの有する全ての要素に対する前解析を行う事によって求める事が可能である。事実、この前解析で全ての要素に対して正確な個数を求めてしまっても構わない。
【００３５】
前解析で、前述の様な構造化データから特徴データを抽出した解析結果に加えて、構造化データ全体のデータサイズやファイルサイズ、ファイルの作成日時情報、更新情報、作成者情報、更新者情報等の構造化データの基本情報を解析結果情報に含めても構わない。また、前述の様な構造化データから特徴データを抽出した解析結果に替えて、構造化データ全体のデータサイズやファイルサイズ、ファイルの作成日時情報、更新情報、作成者情報、更新者情報等の構造化データの基本情報を解析結果情報としても構わない。この場合、入力部１８により入力する解析範囲情報１００に、基本情報を解析結果情報とする、或いは、基本情報を解析結果情報に含めるという指示を示す情報を含める。
【００３６】
以下では、前解析処理部１３が生成した解析結果情報と記憶領域推定情報格納部１６に記憶した記憶領域推定情報とを元に、記憶領域決定部１５が必要となる記憶領域のサイズ（記憶領域量）を決定するＳ２の記憶領域決定ステップの動作を、具体的な例を挙げて説明する。
記憶領域推定情報格納部１６は、前解析を行った構造化データを内部データ形式で表現した場合に、各内部データオブジェクトを生成するのに必要となるメモリ量（記憶領域量）を決定するための情報を予め格納する。ここで言うメモリ量（記憶領域量）は、実際に必要となる物理メモリの領域サイズでもよいし、必要となる各内部データオブジェクト数でもよい。
図８は、記憶領域推定情報格納部１６に格納されている情報の具体例の一つであり、（ａ）はパラメータが所定の範囲の値を示す例であり、（ｂ）はパラメータが１つの値を示す例である。パラメータは解析結果情報と対応し、複数のパラメータのそれぞれに対応して記憶領域量を推定するための記憶領域推定情報を記憶する。パラメータは、図８（ａ）のように、所定の範囲の値を設定してもいいし、図８（ｂ）のように１つの値を設定してもよい。前解析処理部１３が異なる構造化データを解析した場合、解析する内容が同じであっても、構造化データの有するデータの内容により異なる解析結果が求まる。このため、図８のように、パラメータに所定の範囲の値を設定することと、１つの値を設定することとを可能にしている。また、同じ構造化データを解析しても、解析する内容が異なれば、異なる解析結果が求まる。このため、パラメータは異なる解析内容に対応して複数種類の設定を行うことを可能にする。例えば、図８は前述した”＜”，”＜”，”／＞”，”＝”の出現回数を解析する場合に使用するパラメータと記憶領域推定情報との組であり、後で説明する図１０は、前述したタグの開始・終了記号、属性設定記号、テキスト文字数のそれぞれの出現回数について解析する場合に使用するパラメータと記憶領域推定情報との組である。記憶領域推定情報格納部１６は、図８（ａ），（ｂ）と図１０（ａ），（ｂ），（ｃ）とをそれぞれ異なるテーブルとして記憶する。構造化データメモリ管理装置１０を使用する利用者は、どのような構造化データを解析対象として、それぞれの構造化データをどのような解析内容で解析を行うのかを予め予想して、解析結果情報として求められると予想される値をパラメータとして記憶領域推定情報格納部１６に予め設定するとともに、そのパラメータの値に対応させて、記憶領域量を求める計算式や、関数、或いは、記憶領域量そのものを予め設定する。また、計算式や、関数、或いは、記憶領域量そのものは、過去に解析を行って実際に必要となって確保した記憶領域量の統計を取り、統計の結果から計算式や、関数を求めてもいいし、或いは、実際に確保した記憶領域量そのものを設定してもよい。
【００３７】
図８（ａ）は、解析結果情報が第一列（パラメータ）のどの要素の範囲内に収まるかで、記憶領域量がいくつになるかを示した対応情報である。この例では、特徴データとして”＜”，”＜”，”／＞”，”＝”を指定し、それらの合計の出現回数を解析することを仮定している。記憶領域決定部１５は、前解析処理部１３が生成した解析結果情報が、記憶領域推定情報格納部１６の有するテーブルの第一列のどの範囲に適合するかを検索し、適合したパラメータに対応する記憶領域推定情報を取得する。記憶領域推定情報の「Ｓ」は複数のオブジェクトの平均記憶領域サイズを示し、記憶領域推定情報は平均記憶領域サイズにパラメータに示した値の範囲のうち上限の値を掛ける計算式を、記憶領域量を推定する計算式とすることを示している。
【００３８】
ここで、記憶領域推定情報格納部１６へパラメータと記憶領域推定情報とを設定する手順を説明する。図９は、記憶領域推定情報格納部１６へパラメータと記憶領域推定情報とを設定する手順のフローチャート図である。構造化データメモリ管理装置１０の入力部１８は、パラメータを入力する（Ｓ１１）。ここで入力部１８は前述したように、キーボード９０２や通信ボード９１５やＦＤＤ９０４等である。続いて、入力部１８は、パラメータに対応する記憶領域推定情報を入力する（Ｓ１２）。そして、入力部１８は、入力したパラメータと記憶領域推定情報とをＣＰＵにより記憶領域推定情報格納部１６に記憶する（Ｓ１３）。全パラメータについての入力が終了するまで、Ｓ１１〜Ｓ１３を繰り返す（Ｓ１４）。Ｓ１１〜Ｓ１４は記憶領域推定情報記憶ステップＳ１である。
記憶するパラメータと記憶領域推定情報とは、過去に構造化データを解析した結果を分析して、パラメータとなる値とパラメータに対応する記憶領域推定情報とをあらかじめ決めておき、それをユーザが入力部１８より入力する。あるいは、過去に解析した構造化データとその解析した結果からパラメータと記憶領域推定情報とを導き出して、記憶領域推定情報格納部１６に書き込みを行う処理をコンピュータに実行させるプログラムをあらかじめユーザが作成して、プログラム群９２３に記憶させておき、そのプログラムを実行するようにしてもかまわない。また、パラメータと記憶領域推定情報とは、構造化データ毎にそれぞれ記憶領域推定情報格納部１６に記憶してもかまわない。また、パラメータと記憶領域推定情報とは、前解析処理部１３が行う解析内容毎にそれぞれ記憶領域推定情報格納部１６に記憶してもかまわない。
【００３９】
図１０は、（ａ）はタグ数、（ｂ）は属性数、（ｃ）は文字数それぞれについてパラメータと記憶領域推定情報とを記憶する記憶領域推定情報格納部１６の例を示す図である。
前解析処理部１３がタグの開始・終了記号、属性設定記号、テキスト文字数のそれぞれの出現回数を解析した場合は、３つの解析結果情報を生成する。記憶領域決定部１５は、図１０（ａ）の対応表より、タグの開始・終了記号の出現回数の解析結果情報に適合する記憶領域推定情報を取得する。次に、図１０（ｂ）の対応表より属性設定記号の出現回数の解析結果情報に適合する記憶領域推定情報を取得する。次に、図１０（ｃ）の対応表より、テキスト文字数の出現回数の解析結果情報に適合する記憶領域推定情報を取得する。
また、前解析処理部１３が１つの解析内容について、例えば、タグの開始・終了記号の出現回数を解析した場合は、１つの解析結果情報を生成する。記憶領域決定部１５は、図１０（ａ）の対応表より、タグの開始・終了記号の出現回数の解析結果情報に適合する記憶領域推定情報を取得する。そして、属性設定記号の記憶領域推定情報と、テキスト文字数の記憶領域推定情報とは、タグの開始・終了記号の出現回数から求める。これは、図１０（ｂ）の対応表と図１０（ｃ）の対応表の前解析結果が、タグの開始・終了記号の出現回数であり、タグの開始・終了記号の出現回数から属性設定記号の記憶領域推定情報と、テキスト文字数の記憶領域推定情報とを推測する場合に適用できる。記憶領域決定部１５は、図１０（ａ）の対応表からタグの開始・終了記号の出現回数の解析結果情報に適合する記憶領域推定情報を取得したあと、図１０（ｂ）の対応表よりタグの開始・終了記号の出現回数に適合する属性設定記号の記憶領域推定情報を取得する。さらに、図１０（ｃ）の対応表より、タグの開始・終了記号の出現回数に適合するテキスト文字数の記憶領域推定情報を取得する。これは、タグの開始・終了記号の出現回数と、属性設定記号やテキスト文字数との出現回数の関連性を分析して、関連性がわかっている場合に有効である。このように、タグの開始・終了記号の出現回数に対応させて属性やテキストの記憶領域推定情報を記憶領域推定情報格納部１６に記憶させておくと、実際には解析しなかった属性やテキストの記憶領域推定情報を取得できる。
例えば、記憶領域決定部１５は、この構造化データを解析し内部データ形式で表現した場合、必要となるオブジェクト数はそれぞれタグの開始・終了記号（Ｅｌｅｍｅｎｔオブジェクト）が２４個だった場合、Ａｔｔｒオブジェクトは図１０（ｂ）の属性数の対応情報より３２個、テキスト文字数は図１０（ｃ）の文字数の対応情報より、１２４文字と決定する。なお、図１０の「ｘ」、「ｙ」、「ｚ」はそれぞれのオブジェクトの単一の記憶領域サイズを示している。このように記憶領域推定情報格納部１６は、一つの解析結果情報で全ての内部データオブジェクトの個数との対応付けを行ってもよいし、内部データオブジェクト毎に一つの対応情報を作成しても構わない。オブジェクト毎に対応情報を作成する事で、前解析処理部１３の解析内容をオブジェクト単位で指定する事が可能となる。
【００４０】
また、前解析の範囲指定は、範囲で表現せずに離散値の集合でも、単独の値で表現しても構わない。単独で表現した場合の例は、図８である。離散地で表現した場合の例は図１０と図１１である。図１０の前解析結果の間隔は１０間隔であったが、図１１は、前解析結果の間隔が属性の場合は１０間隔であるが、文字数の場合は４間隔としている。このように、間隔を変えることで、実際にそのオブジェクトで必要とする記憶領域量に近い記憶領域量の推定情報を設定できる。なお、図１１では、「属性数」、「文字数」に対する記憶領域推定情報は、記憶領域量ではなくオブジェクトの数を記憶領域推定情報としているため、「＊ｙ」、「＊ｚ」の表示がない。
また図１０、図１１では３つのオブジェクトを例に説明したが、実際にはこれ以上に多くのオブジェクトが必要となる場合がある。この場合は、それらのオブジェクトと記憶領域推定情報との対応情報を作成することになる。また、この例では前解析の結果と各オブジェクト数のみの対応情報となっているが、前解析の結果と、ある特定のオブジェクト数の組からその他のオブジェクトの必要数の対応情報の様に複数の検索キーとなる情報から一つの結果を導き出す対応情報でもよい。
【００４１】
記憶領域決定部１５は、取得した記憶領域推定情報を記憶部に記憶する。この時、記憶領域推定情報が図８や図９、図１０のように記憶領域量を計算する式である場合には、これを計算した結果を記憶部に記憶する。オブジェクトごとの単一のサイズを示す変数の値は、記憶領域推定情報格納部１６に変数用のテーブルとして記憶されているものとする。記憶領域決定部１５は、この変数用のテーブルから記憶領域量の計算に使用する変数を取得し、ＣＰＵにより記憶領域量を計算して記憶部に記憶する。そして、解析処理制御部１２に処理の終了を通知する。以上の処理が、図５のＳ２の記憶領域決定ステップである。
【００４２】
Ｓ３の記憶領域管理ステップにおいて、解析処理制御部１２は、記憶領域決定部１５が記憶した記憶領域量をＣＰＵにより記憶部より取り出して、記憶領域管理部１７に出力する。記憶領域管理部１７は、記憶領域量を入力して、記憶領域量に相当するデータ記憶領域を、記憶部に確保する。ここで記憶部とは、前述したように、例えばＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の不揮発性の記憶媒体である。確保されたデータ記憶領域が他からアクセスされないように、記憶領域管理部１７は、ＣＰＵにより排他制御をかける。記憶領域管理部１７は、領域の確保が行えたら、そのことを解析処理制御部１２にＣＰＵにより通知する。
【００４３】
解析処理制御部１２は、領域の確保が行えたことを記憶領域管理部１７より通知されると、Ｓ４の実解析処理ステップにおいて、構造化データ解析部１４に対して、構造化データの解析要求と、解析する構造化データとをＣＰＵにより出力する。「構造化データを出力する」とは、構造化データそのものを出力するのではなく、例えば構造化データが記憶されている記憶部のアドレスを渡すことである。構造化データ解析部１４は、解析要求と構造化データを入力すると、構造化データを解析する処理を開始する。このとき、記憶領域管理部１７が確保したデータ記憶領域を使用する。
構造化データ解析部１４の動作は従来の構造化データ処理部と同様である。
【００４４】
この実施の形態では、以下の手段を備えた構造化データメモリ管理方式の一例を説明した。
一つまたは複数の構造化データを一時的または永続的に格納・管理する構造化データ格納手段（構造化データ格納部１１）
構造化データを前解析し、内部データ形式に変換するために必要な記憶領域量を推定するための前解析パラメータを導出する前解析処理手段（前解析処理部１３）
記憶領域の推定基準となる記憶領域推定情報を格納する記憶領域推定情報格納手段（記憶領域推定情報格納部１６）
前解析パラメータと記憶領域推定情報を元に、前解析パラメータを導出するのに利用した構造化データを内部データ形式に変換するために必要な記憶領域量を推定する記憶領域決定手段（記憶領域決定部１５）
記憶領域決定手段が推定した記憶領域量に基づき、記憶領域を確保・管理する記憶領域管理手段（記憶領域管理部１７）。
【００４５】
また、前解析処理手段（前解析処理部１３）で、構造化データの全てを前解析することを説明した。
【００４６】
また、前解析処理手段（前解析処理部１３）で、構造化データから構造を特徴付ける構造化データ特徴データを検出する事で前解析を行うことを説明した。例えば、ＸＭＬで記述された構造化データの場合、”＜”（タグの開始記号）、”＝”（属性値の代入記号）、＜−−（コメント開始記号）等を、構造を特徴付けるデータと言い、その個数などが前解析結果となることを説明した。
【００４７】
また、記憶領域推定情報格納部は、前解析処理手段（前解析処理部１３）から得られる前解析結果の値または、前解析結果の値の集合と、記憶領域推定量が対応付けられた対応表であることを説明した。例えば、記憶領域推定情報が離散的な取り扱いがなされている事が特徴。精度が劣る反面、推定量を求める処理が高速であることを説明した。
【００４８】
また、前解析処理手段（前解析処理部１３）、記憶領域推定情報格納手段（記憶領域推定情報格納部１６）、構造化データ格納手段（構造化データ格納部１１）、記憶領域決定手段（記憶領域決定部１５）を有する装置が、解析手段（構造化データ解析部）、記憶領域管理手段（記憶領域管理部１７）を有する装置と同一あることを説明した。例えば、メモリ量（記憶領域量）推定を行う装置が、メモリを実際に確保する装置と同一であることを説明した。例えば、構造化データメモリ管理装置１０を、Ｎｅｔｗｏｒｋシステムに例えると、ＸＭＬコンテンツを取得するクライアントにあたる。
【００４９】
この実施の形態の記憶領域管理方式を実行する記憶領域管理装置の一例である構造化データメモリ管理装置１０は、構造化データの特徴データ、例えばオブジェクトの出現回数を解析結果情報とし、記憶領域推定情報はオブジェクトの出現回数から取得するようにした。また、記憶領域推定情報は、オブジェクトの単一サイズにそのオブジェクトの出現回数を掛けたり、複数のオブジェクトの平均サイズを複数のオブジェクトの出現回数を合計した数に掛けた。また、ある１つのオブジェクトの出現回数から他のオブジェクトの出現回数を予測して記憶領域推定情報を取得するようにした。このため、構造化データの内部構造が複雑であっても、記憶領域推定情報を取得する処理時間を高速にできる効果がある。また、構造化データの特徴データ、例えばオブジェクトの出現回数から記憶領域量を推定するので、推定した記憶領域量と実際に必要となる記憶領域量との差を小さくできる効果がある。また、オブジェクト出現回数をパラメータとして、そのパラメータに記憶領域推定情報を対応させた。このため、記憶領域推定情報を取得する処理は複雑でないため、高速に行える効果がある。
【００５０】
また、この実施の形態では、記憶領域決定部が決定する構造化データを内部データ形式に変換したものを記憶するでーた記憶領域の記憶領域量と、実際に使用する記憶領域量との差が少なくなるので、コンピュータの有限なメモリ資源を有効に活用したいという課題に対して、コンピュータのメモリの使用効率が向上するという効果が得られる。すなわち、この実施の形態で説明した記憶領域管理方式は、前述したコンピュータのハードウェア資源のうち特にメモリ等に確保する記憶領域量を、実際に使用する記憶領域量に近い量とする処理をする記憶領域決定部を用いている点が特徴である。
【００５１】
実施の形態２．
この実施の形態では、上記実施の形態１とは別の記憶領域推定情報を記憶領域推定情報格納部１６が記憶する一例を説明する。
図１２は、過去に行った前解析処理部１３の解析結果情報に基づいて記憶領域決定部１５が推定した記憶領域量と、実際に構造化データ解析部１４が使用した記憶領域量とを利用して、メモリ使用推定量関数を求めるグラフを示す図である。
ここで「推定関数」とは、過去に行った前解析結果の解析結果情報に基づいて記憶領域決定部１５が推定した記憶領域量と、実際に構造化データ解析部１４が使用したメモリ量（記憶領域量）とを利用して、メモリ使用量推定関数を数学的に求めたものである。図１２のグラフはその一例である。このグラフは、インターネット上に存在するＨＴＭＬコンテンツを前解析した解析結果情報（図１２ではＨＴＭＬコンテンツに含まれるタグを解析して、そのタグの出現回数を解析結果情報とする）をｘ軸とし、実際に使用する事になったメモリサイズ（記憶領域量）をｙ軸としたグラフである。グラフ上のひし形の小さい点は、実際の解析結果情報と使用メモリサイズ（使用記憶領域量）のデータであり、プロット情報の一例である。またグラフ上に表示されている線分が、ひし形の点を元に推定関数として求めた近似関数（「推定関数」のことである）である。この近似関数を利用して、記憶領域量を推定する。図１２の例では、グラフ右上に示した「ｙ＝０．０９ｘ＋１．２３４５」が推定関数である。ｘが解析結果情報であるので、記憶領域決定部１５は、前解析処理部１３が生成した解析結果情報をこの推定関数のｘに当てはめて、記憶領域量（ｙ）を求める。このように、推定関数は、得られたプロット情報からの線形近似や対数近似など、数学的な近似関数が具体的な推定方法となる。また、Ｒの２乗（精度情報）は、推定関数で求めた値ｙがどのぐらい正しいかを示すものであり、１に近いほど精度が高いことを示している。このため、推定関数と精度情報とを記憶領域推定情報として記憶しておくと、推定関数が複数あるとき、制度情報の高い順に推定関数を採用することができる。
また、推定関数を記憶領域推定情報とする場合、パラメータはオブジェクトの種類や、コンテンツの種類（例えば、ＨＴＭＬコンテンツであるか、ＸＭＬコンテンツであるかなどである）となる。この場合、前解析処理部１３は、解析結果情報に解析したオブジェクトの種類を含める。また、コンテンツの種類を解析して、解析できたコンテンツの種類を含める。
【００５２】
実施の形態１で説明した図１０は、解析結果情報と各オブジェクト数の離散的な対応情報を構成していた。しかし、図１３のように解析結果情報を入力とし、各オブジェクトの出現回数を出力とする、連続近似関数を記憶領域推定情報としてもかまわない。図１３（ａ）はタグの出現回数が解析結果情報である場合の連続近似関数ｆ（ｘ）を示し、（ｂ）は属性の出現回数が解析結果情報である場合の連続近似関数ｆ（ｙ）を示し、（ｃ）は文字の出現回数が解析結果情報である場合の連続近似関数ｆ（ｚ）を示す。単純に近似関数を記憶領域推定情報として取り扱ってもよく、その近似関数を求めるための近似パラメータを記憶領域推定情報として取り扱ってもよい。この場合の記憶領域推定情報に対応するパラメータはタグや属性や文字数等のオブジェクトの種類であり、前解析処理部１３は、解析結果情報に解析したオブジェクトの種類を含める。一例を図１４、図１５に示す。図１４は、図１３の連続近似関数に対応する記憶領域推定情報格納部１６の一例を示し、図１５は、解析結果情報の値の範囲によって対応する連続近似関数が異なるとともに、オブジェクト別に解析結果情報と記憶領域推定情報との対応表を設けた例を示す図である。図１４の「混合」は複数のオブジェクトを区別することなくまとめて出現回数を解析した場合を示している。図１５の「ｘ１」、「ｘ２」・・・「ｘｎ」は、解析結果情報の値が適合する範囲によって、記憶領域量を計算する関数が異なることを示している。また、「ｙ１」、「ｙ２」・・・「ｙｎ」及び「ｚ１」、「ｚ２」・・・「ｚｎ」ついても同様である。
記憶領域決定部１５は、各オブジェクトに対応する近似関数に解析結果情報を入力する事で、内部データ表現に変換した場合に必要となる特定のオブジェクトの近似数を求めることが出来る。そして、求まったオブジェクトの近似数にそのオブジェクトの単一のサイズを掛けて、記憶領域量を求める。図１０の記憶領域推定情報から求められる記憶領域量と、図１２の記憶領域推定情報から求められる記憶領域量との差異は、図１０の場合にはある特定の範囲の前解析結果情報では、求められるオブジェクト数が同一となり、記憶領域量が同一となるが、近似関数の場合には図１０よりも細かいオブジェクト数の近似が可能となるので、このようなオブジェクト数から計算する記憶領域量は実際に必要とする記憶領域量に近い量となる。
【００５３】
この実施の形態では、記憶領域推定情報が、前解析結果および、実際に必要となったメモリ量（記憶領域量）を軸とした平面にプロットされたＮ個の事前に前解析結果および実際に必要となったメモリ量（記憶領域量）の結果を元に推定された推定関数である事を特徴とする記憶領域管理方式を実行する構造化データメモリ管理装置１０、および、記憶領域管理装置の一例である構造化データメモリ管理装置１０について説明した。
例えば、記憶領域推定情報が連続的な取り扱いがなされている事を説明した。
【００５４】
この実施の形態の構造化データメモリ管理装置１０は、記憶領域推定情報が連続的な取り扱いがなされている。このため、記憶領域決定部１５が決定する記憶領域量の精度は、離散的な取り扱いよりも高くなるという効果がある。
【００５５】
実施の形態３．
この実施の形態では、構造化データに関する基本情報を解析結果とする場合の、記憶領域量の決定について一例を説明する。
図１６は、記憶領域推定情報格納部１６に格納されている付加情報の具体例の一つを示す図である。
図１７は、図１６の付加情報を利用した記憶領域決定ステップ（Ｓ２）のフローチャート図である。
図１６に示す情報は、過去に解析を行った事のある構造化データに関する付加情報を記録する記憶領域推定情報格納部１６が記憶するテーブルの一例である。記憶領域推定情報格納部１６は、パラメータに対応するものとして、過去解析を行った構造化データの識別情報としてのＵＲＩと、その構造化データを過去に解析した時の更新日時情報とを記憶する。そして、その構造化データを過去に解析した時に必要となった内部データオブジェクトの実際の個数をオブジェクト別に要素数１６ｘ、属性数１６ｙ、文字数１６ｚとして保持している。なお、記憶領域推定情報格納部１６は、図１６に示した情報の他に、実施の形態１〜２で説明した例えば図１０に示した情報を図１６とは別のテーブルとして記憶しているものとする。
以下で、この情報を利用した記憶領域決定部１５による記憶領域決定ステップを説明する。
解析処理制御部１２は記憶領域決定部１５に対して処理要求を出力する際に、処理要求に少なくとも、構造化データ、構造化データの解析結果情報を含める。また、その解析結果情報の一つとして、解析を行った構造化データの更新日時情報を含める。ＵＲＩは、構造化データ自身が自身の識別情報として有している。また、更新日時情報は、構造化データ格納部１１に構造化データに対する付加情報として記憶されている。更新日時情報は前解析処理部１３或いは、解析処理制御部１２が、構造化データ格納部１１より取得する。また、構造化データ自身に自身の識別情報としてのＵＲＩが含まれていない場合には、構造化データ格納部１１に付加情報の１つとして記憶されているので、前解析処理部１３或いは、解析処理制御部１２が、構造化データ格納部１１より取得する。そして解析処理制御部１２が、解析結果情報の一つに、構造化データに対するＵＲＩを含める。
【００５６】
以下は、図１７のフローチャート図に従い説明する。
解析処理制御部１２から処理要求を受けた記憶領域決定部１５は、処理要求に含まれている構造化データの識別情報としてＵＲＩを取り出す。記憶領域決定部１５は、このＵＲＩと、記憶領域推定情報格納部１６が記憶する図１６に示したテーブルから構造化データのＵＲＩの値を比較し、一致する値が存在するか検索する。検索の結果、一致するＵＲＩが存在しない場合には、記憶領域決定部１５は、図１０に示したような解析結果情報とオブジェクト毎の記憶領域量の対応表や、図１５のような記憶領域推定情報に近似関数を用いた、実施の形態１や実施の形態２で説明した決定方法を実施して、記憶領域量を決定する。
逆に一致するＵＲＩが存在した場合には、記憶領域決定部１５は、次に処理要求に含まれる更新日時情報と図１６のテーブルの更新日時の値を比較する。比較の結果、双方の更新日時が一致するかチェックする。チェックの結果、一致した場合、前解析処理部１３が前解析を行った構造化データは、過去に解析した結果と同一構造を有する構造化データであると判明した。このため、記憶領域決定部１５は、過去のオブジェクト数をテーブルから取得し、取得したオブジェクト数を記憶領域量として利用する。一致しなかった場合には、ＵＲＩが存在しない場合と同様に、記憶領域決定部１５は、図１０に示したような解析結果情報とオブジェクト毎の記憶領域量の対応表や、図１５のような記憶領域推定情報に近似関数を用いた、実施の形態１や実施の形態２で説明した決定方法を実施する。
【００５７】
図１６では、一つの構造化データに対して、一つの更新日時、オブジェクト数の組が対応付けられているが、一つの構造化データに対して更新日時、オブジェクト数の組を複数対応付ける事も可能である。その場合には、同一ＵＲＩがあった場合には、そのＵＲＩに対応付けられている全ての組の更新日時と解析結果情報に含まれた更新日時を比較し、同一日時の情報がないか検索する事になる。
【００５８】
また、図１６では、要素数、属性数、文字数とに対してそれぞれ別々にオブジェクト数を設定した。このため、記憶領域決定部１５は、オブジェクト毎の単一サイズを、それぞれのオブジェクト数に掛けて、オブジェクト毎の記憶領域量を決定する。これは図１０や図１５の記憶領域推定情報格納部１６を使用して記憶領域量を決定した場合も同様である。このように、オブジェクト毎に記憶領域量を決定すると、解析処理制御部１２は、記憶領域決定部１５が決定したオブジェクト毎の記憶領域量を、記憶領域管理部１７に出力する。オブジェクト毎の記憶領域量を入力した記憶領域管理部１７は、データ記憶領域にオブジェクト毎の記憶領域量の記憶領域を確保する。
【００５９】
以上までで説明した実施の形態１〜３では、記憶領域量決定の具体的な例を挙げてきたが、以上の様な処理で求まる、構造化データの解析前に必要となる各内部データオブジェクト数の推定値や、全体で必要となるメモリサイズ（記憶領域量）の推定値を利用して、記憶領域管理部１７がデータ記憶領域の確保を行い、その確保した領域を構造化データ解析部１４が使用できるように、確保した領域を参照するための情報を、記憶領域管理部１７が解析処理制御部１２に返す。記憶領域管理部１７がデータ記憶領域の確保を行う場合には、記憶領域決定部１５が記憶領域推定情報に従い記憶領域量を求めることを説明した。しかし、内部データオブジェクト数の推定値を利用する場合には、記憶領域管理部１７がその推定値に従って各オブジェクトの配列を作成してもよいし、記憶領域管理部１７が全オブジェクトで必要となるメモリ量（記憶領域量）を算出して、データ記憶領域を一括確保してもよい。
【００６０】
この実施の形態では、前解析処理部１３で、前解析を行う構造化データに関する基本情報を前解析の結果の全てまたは一部とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０について説明した。
また、構造化データの基本情報は、例えばある構造化データの出所情報（ＵＲＬ等）、構造化データの作成日時情報、更新日時情報として説明した。
【００６１】
この実施の形態の構造化データメモリ管理装置１０は、過去に解析を行った構造化データと、今回解析する構造化データの構造が一致する場合、過去に解析した際の記憶領域量を今回の記憶領域量として使用するため、実際に使用する記憶領域量を確保できるので、記憶部の使用効率を向上できる効果がある。
【００６２】
実施の形態４．
実施の形態１〜３では、構造化データの全データを解析していた。この実施の形態では、構造化データのデータのうち、一部のデータを解析する例を説明する。
前解析処理部１３は、構造化データの全てを解析するのではなく、先頭からある特定の条件が満たされる箇所までを前解析の対象データとして前解析を行うようにしてもよい。
例えば前解析を行う前に、前解析を行う構造化データのファイルサイズを取得し、そのファイルサイズの特定の割合までを解析処理対象とする方法がある。この方法を利用すると、例えばＸＭＬコンテンツなどであれば、構造化データの最後のあたりでは終了タグの記述が多くなり、実質その部分はＤＯＭオブジェクトとして生成されないため、解析対象からはずした方が、メモリ使用量の推定は精度が高くなる可能性がある。このため、その最後の領域を削除する事が可能となる。このように、先頭からある特定の条件が満たされる箇所までを前解析の対象データとする場合は、解析対象とするデータサイズを、解析範囲情報１００として指定し、入力部１８よりデータサイズを指定した解析範囲情報１００を入力する。
【００６３】
また、コンテンツサイズを利用した方法以外には、構造化データの構造自身を利用した方法が考えられる。
この方法の場合には、例えばＨＴＭＬコンテンツであれば、＜ＨＥＡＤ＞の終了タグ＜／ＨＥＡＤ＞もしくは＜ＢＯＤＹ＞タグが出現する前までを前解析の対象であるとして、前解析の終了箇所を指定する事により、それ以降にメモリサイズの推定にあまり貢献できない記述が並ぶ場合には、その箇所以降を前解析の対象からはずす事が可能となる効果がある。このように、前解析の終了箇所を指定する場合には、その終了する箇所を判定するための情報を解析範囲情報１００として指定し、入力部１８より終了する箇所を判定するための情報を指定した解析範囲情報１００を入力する。
【００６４】
また、構造化データの途中の一部分を解析の対象として指定するようにしてもよい。
例えば、構造化データのファイルサイズを取得し、そのファイルサイズの特定の割合までを前解析の対象からはずし、それ以降からのデータから前解析を開始する方法がある。この場合には、指定したファイルサイズに相当する構造化データの部分は、解析対象としないことを、解析範囲情報１００して指定して、入力部１８より入力する。
【００６５】
その他に、構造化データの構造自身を利用した方法も考えられる。
この場合には、例えばＨＴＭＬコンテンツであれば＜ＢＯＤＹ＞タグ以降を前解析の対象とすることによって、それ以前のコンテンツ内容を前解析からはずすと言った方法が考えられる。この場合、＜ＢＯＤＹ＞タグと、＜ＢＯＤＹ＞タグ以降を前解析の対象とすることを解析範囲情報１００に指定して、入力部１８より入力する。
このように先頭から数えて一部分を前解析の対象からはずす事によって、先頭にある不要なヘッダ情報などを前解析の対象からはずす事が可能となり、より精度よく記憶領域量の推定が可能となる効果がある。
【００６６】
また、ＨＴＭＬの場合を例に挙げると、例えば＜ＦＯＲＭ＞タグ以下の全要素はそれ以外のタグの場合と比較して、メモリ使用量が統計的に多い事が分かっているとする。その場合には、前解析を開始し、＜ＦＯＲＭ＞タグを検出するまでは通常の前解析を行い、＜ＦＯＲＭ＞タグ以降の要素を前解析する場合には、通常の前解析よりも、メモリ量（記憶領域量）が多くなるような結果を出力する前解析処理に切り替え、前解析を継続する。そして＜ＦＯＲＭ＞タグ以下の前解析が終了（＜／ＦＯＲＭ＞タグを検出）した後は、通常の前解析に戻る。最終的に全ての前解析が完了した後で、二つの前解析の結果を統合する事で、一つの前解析結果とする。図１８は、前解析処理部１３が第１と第２の前解析処理部を備えて、記憶領域管理方式を実行する構造化データメモリ管理装置の機能ブロック図である。前解析処理部１３は、図１８のように、第１の解析処理部１３１と第２の解析処理部１３２とを備えて、前述した通常の前解析は、第１の解析処理部１３１により実行し、前述のメモリ量（記憶領域量）が多くなるような結果を出力する前解析処理は、第２の解析処理部１３２により実行する。
【００６７】
前述のように、前解析処理部１３は、構造化データ全てを同一の前解析アルゴリズム（第１の解析処理部１３１）で前解析するのではなく、一部を別の前解析アルゴリズム（第２の解析処理部１３２）で処理するとしてもよい。
例えば、ＨＴＭＬコンテンツを前解析する場合、＜ＦＯＲＭ＞タグの全要素は、通常の前解析アルゴリズムを適用するよりも、他の前解析アルゴリズムを適用した方が精度が高くなることが分かっている場合、前解析で＜ＦＯＲＭ＞タグを発見した場合には、その終了タグが発見されるまでは別の前解析アルゴリズムを適用し、終了タグ以降はまた通常の前解析アルゴリズムを適用して、全てを前解析してもよい。このようにアルゴリズムを変更する場合には、構造化データの特別な構造に関しては、他の構造と比較して明らかに異なるメモリ消費が分かっている場合には、有効な前解析方法となる。
【００６８】
また、ＨＴＭＬコンテンツを前解析する場合、例えば＜ＦＯＲＭ＞タグは、＜ＦＯＲＭ＞タグの終了を示す＜／ＦＯＲＭ＞タグと対で記述される。このため、＜ＦＯＲＭ＞タグから＜／ＦＯＲＭ＞タグまでを、解析対象とすることも可能である。この場合、＜ＦＯＲＭ＞タグを特定情報として解析範囲情報１００に指定して、入力部１８より入力すると、前解析処理部１３は、特定情報である＜ＦＯＲＭ＞タグに対応する終了情報が＜／ＦＯＲＭ＞タグであることを判断して、＜ＦＯＲＭ＞タグから＜／ＦＯＲＭ＞タグまでを、解析対象とする。なお、＜／ＦＯＲＭ＞タグを＜ＦＯＲＭ＞タグに対応する情報として、解析範囲情報１００に指定してもいいし、予め構造化データメモリ管理装置１０の備えるファイル群９２４に特定情報と特定情報に対応する終了情報とを対にして記憶させておき、これを前解析処理部１３が参照するようにしてもかまわない。
【００６９】
この実施の形態では、前解析処理部１３で、構造化データの先頭から一部分までを前解析する事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
また、前解析処理部１３で、構造化データのある特定箇所から前解析を開始し、構造化データの一部分を前解析する事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
また、前解析処理部１３で、前解析処理中に特定情報が検出された場合に、その特定情報に対応する特定終了情報が検出されるまで前解析処理をすることなく、構造化データを読み飛ばす事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
【００７０】
また、前解析処理部１３で、前解析処理中に特定情報が検出された場合に、その特定情報に対応する特定終了情報が検出されるまで前解析処理を異なる処理体系とする事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
【００７１】
この実施の形態の構造化データメモリ管理装置１０は、解析対象の範囲を指定することによって、構造化データを構成するデータの特徴を、記憶領域量の推定に反映させることが出来るので、精度よく記憶領域量の推定が可能となる効果がある。
【００７２】
実施の形態５．
この実施の形態では、構造化データに含まれる特徴データの密度を解析結果情報の１つにすることを説明する。
解析結果情報として構造化データが含む特徴データの個数だけではなく、その密度を利用してもよい。密度とは、ある特定の領域のメモリサイズで、その特定の領域に含まれる各構造化データの特徴データの個数を割った値（割合）である。密度を利用する場合としては、全体としての個数を利用する場合よりも、特定領域の密度を利用した方が精度のよい推定が行える場合等が考えられる。
【００７３】
例えば、「構造化データの特徴データ」とは、ＸＭＬで言えば”＜”（タグの開始記号）、”＝”（属性値の代入記号）、”＜−−”（コメント開始記号）等の、構造を特徴付けるデータの事を言う。「構造化データの特徴データの密度」とは、コンテンツ内に含まれる全文字数で、”＜”（タグの開始記号）、”＝”（属性値の代入記号）、”＜−−”（コメント開始記号）等の各構造化データの特徴データの個数を割って求めた数値である。全文字数ではなく、実施の形態４で説明した、解析対象とする構造化データの一部分の特定領域に含まれる文字数に対する各構造化データの特徴データの個数を割って求めた数値とすることでもかまわない。
この値を利用する事によって、全体で特徴となる情報が何個あるかよりも、ある特定領域での密度や分布を調べる事の方がより正確に推定できる場合等に有効となる。
【００７４】
前解析処理部１３は、前述した密度を解析結果情報とする。或いは、前解析処理部１３は、実施の形態１〜３のように、オブジェクトの数とともに、前述した密度を解析結果情報とする。解析結果情報にオブジェクトの数と密度とが含まれる場合には、記憶領域決定部１５は、それぞれの解析結果に基づいて、記憶領域量を決定し、決定した記憶領域量のうち、大きい方を解析処理制御部１２に出力する。或いは、小さい方を解析処理制御部１２に出力する。どちらを出力するかは、最低限必要とする記憶領域量を確保するか、余裕を持って記憶領域量を確保するかのシステムのポリシーによって異なる。このため、記憶領域決定部１５は、これらの記憶領域量を表示装置９０１に表示して、利用者がいずれかの記憶領域量を入力部１８より選択することを可能にする。
【００７５】
この実施の形態では、前解析処理部１３で、構造化データの特徴データの密度を解析結果情報とする事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
【００７６】
この実施の形態の構造化データメモリ管理装置１０は、全体で特徴となる情報が何個あるかよりも、ある特定領域での密度や分布を調べる事の方がより正確に推定できる場合に有効となる効果がある。
【００７７】
実施の形態６．
この実施の形態では、記憶領域決定部１５が、最大記憶領域量と、最小記憶領域量と、統計により確保した記憶領域量が不足しないことが保障された棄却可能記憶領域量とのいずれかを、記憶領域量として決定する構造化データメモリ管理装置１０の一例を説明する。
図１９は、最大記憶領域量と、最小記憶領域量と、棄却可能記憶領域量とを、複数のオブジェクト毎にそれぞれ記憶する記憶領域推定情報格納部１６の一例であり、（ａ）はＥｌｅｍｅｎｔに対応し、（ｂ）はａｔｔｒオブジェクトに対応し、（ｃ）はテキストオブジェクトに対応する例を示す図である。
【００７８】
記憶領域推定情報格納部１６は、図１９に示したように、最大記憶領域量と、最小記憶領域量と、棄却可能記憶領域量とを記憶する。記憶領域決定部１５は、構造化データの記憶領域を決定した際に、決定した記憶領域量と、記憶領域推定情報格納部１６が記憶する最大記憶領域量と比較して、記憶領域量＞最大記憶領域量である時、記憶領域推定情報格納部１６の最大記憶領域量を記憶領域量により更新する。また、決定した記憶領域量と、記憶領域推定情報格納部１６が記憶する最小記憶領域量と比較して、記憶領域量＜最小記憶領域量である時、記憶領域推定情報格納部１６の最小記憶領域量を記憶領域量により更新する。
【００７９】
また、棄却可能記憶領域量は以下のようにして統計により求める。
ある構造化データＡに対して解析結果がＲｅｓ（Ａ）となったと仮定した場合、その時に解析結果情報の値または、解析結果情報の値の集合と、記憶領域量が対応付けられた記憶領域推定情報格納部１６に記憶された対応表で、Ｒｅｓ（Ａ）が分類された区分Ｐａｔｔｅｒｎ（ｋ）に含まれる前解析結果とそれに対する実際に使用されたメモリサイズの組を要素とする集合  Ｓ  ＝  ｛  （ｘ，ｙ）  ｜  ｘ  ∈  Ｐａｔｔｅｒｎ（ｋ）  ，  ｙ  ｉｓ  ａｃｔｕａｌ  ｍｅｍｏｒｙ  ｓｉｚｅ  ｝
に対して、Ｓのｙに関する情報を統計的に検定する事で、棄却域となるｙ’が求まり、そのｙ’を「メモリ不足が発生する事をＰａｔｔｅｒｎ（ｋ）において棄却可能な量」として使用する。
【００８０】
【数１】
0004750581.tif 000002
【００８１】
記憶領域決定部１５は、余裕があるように記憶領域量を決定する場合には、記憶領域推定情報格納部１６より最大記憶領域量を取得して、解析処理制御部１２に出力する。また、最低限必要となる記憶領域量を決定する場合には、記憶領域推定情報格納部１６より最小記憶領域量を取得して、解析処理制御部１２に出力する。また、記憶領域不足にならない程度の記憶領域量を決定する場合には、記憶領域推定情報格納部１６より棄却可能記憶領域量を取得して、解析処理制御部１２に出力する。
前述の余裕があるように記憶領域量を決定するか、最低限必要となる記憶領域量を決定するか、記憶領域不足にならない程度の記憶領域量を決定するかは、利用者が構造化データメモリ管理装置１０に入力部１８より予め設定しておき、ファイル群９２４に記憶する。記憶領域決定部１５はファイル群９２４に記憶された情報を参照して、記憶領域推定情報格納部１６より最大記憶領域量と、最小記憶領域量と、棄却可能記憶領域量との何れを取得するかを決定する。
【００８２】
また、最大記憶領域量と、最小記憶領域量と、棄却可能記憶領域量は、図１６のような付加情報とともに設定することも可能である。
図２０は、記憶領域推定情報格納部１６に格納されている付加情報に最大記憶領域量と、最小記憶領域量と、棄却可能記憶領域量を設定した例を示す図である。
記憶領域決定部１５は、解析結果情報に基本情報が含まれている場合、或いは、解析結果情報が基本情報である場合、ファイル群９２４に記憶された情報を参照して、記憶領域推定情報格納部１６より最大記憶領域量と、最小記憶領域量と、棄却可能記憶領域量との何れを取得するかを決定する。
【００８３】
この実施の形態では、記憶領域決定部１５で、記憶領域推定情報を元に求める前記記憶領域量を、同一の解析結果情報が過去得られた複数の構造化データの内、実際に必要となったメモリ量（記憶領域量）が最大となったメモリ量（記憶領域量）とする事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
これは、極力、メモリ不足を発生させない方針であるときに有効である。
【００８４】
この実施の形態では、記憶領域決定部１５で、記憶領域推定情報を元に求める前記記憶領域量を、同一の解析結果情報が過去得られた複数の構造化データの内、実際に必要となったメモリ量（記憶領域量）が最小となったメモリ量（記憶領域量）とする事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
これは、極力、メモリ確保する量を減らす方針であるときに有効である。
【００８５】
この実施の形態では、記憶領域決定部１５で、前記記憶領域推定情報を元に求める前記記憶領域量を、同一の解析結果情報が過去得られた複数の構造化データの中で、統計的にメモリ不足が発生する事を棄却可能な量から選出する事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
これは、メモリ不足の発生率を減らしつつも、メモリを確保する量を減らす方針の場合に有効であるという効果がある。
【００８６】
この実施の形態の構造化データメモリ管理装置１０は、極力、メモリ不足を発生させない方針であるとき、または、極力、メモリ確保する量を減らす方針であるとき、または、メモリ不足の発生率を減らしつつも、メモリを確保する量を減らす方針であるとき、のいずれかの方針に有効である。
【００８７】
実施の形態７．
以上までで説明した実施の形態１〜６の記憶領域決定部１５が求める記憶領域量は、システム全体のポリシーにも依存する。具体的には、記憶領域決定部１５で求める記憶領域量は、解析結果情報から分類される状況において、全ての構造化データで記憶領域量の不足が発生しないとするポリシーで算出する場合（ポリシー１）と、全ての構造化データで最低限必要となる記憶領域量のみを確保するポリシーで算出する場合（ポリシー２）とでは、同じ解析結果情報から算出される記憶領域量は異なってくる。そのポリシーの違いは、記憶領域推定情報格納部１６に格納されている記憶領域推定情報および記憶領域決定部１５のアルゴリズムに反映される。
次に、以下では構造化データ解析部１４が行う、構造化データ解析処理について説明する。
記憶領域管理部１７は、記憶部にデータ記憶領域を確保した後、構造化データ解析部１４から、確保したデータ記憶領域のうち、構造化データ解析部１４が使用する記憶領域量、すなわち、構造化データ解析部１４が内部データ形式に変換したデータを記憶するために必要な記憶領域量の要求を受け付ける。記憶領域管理部１７は、構造化データ解析部１４から要求された分の記憶領域量が、確保したデータ記憶領域に未使用領域として残っていれば、構造化データ解析部１４に対して、使用を許可する通知を出力するとともに、使用を許可する記憶領域を構造化データ解析部１４が使用するためのデータ記憶領域のアドレス情報等を通知する。一方、確保したデータ記憶領域に構造化データ解析部１４が使用を要求している分の未使用領域が残っていなければ、データ記憶領域の不足を構造化データ解析部１４に通知する。さらに、解析処理制御部１２にも、データ記憶領域の不足を通知する。このようにして、記憶領域管理部１７は、確保したデータ記憶領域の残量を管理する。
【００８８】
解析処理制御部１２は、解析対象となる構造化データと、記憶領域管理部１７がデータ記憶領域に確保した記憶領域を参照するための情報とを含む、解析処理要求を構造化データ解析部１４に対して出力する。その要求を受け取った構造化データ解析部１４は、解析対象となる構造化データの解析を開始する。構造化データ解析部１４は、内部データ形式に変換したデータを記憶するために記憶領域が必要となった時に、必要な分を、記憶領域管理部１７に要求する。構造化データ解析部１４は、記憶領域管理部１７から、使用を許可する通知を受け取ると、記憶領域管理部１７から通知されたアドレス情報により示されるデータ記憶領域に、内部データ形式に変換したデータを記憶する。解析処理が終了すると、その時生成された内部データ形式のルート要素、ＤＯＭの場合にはＤｏｃｕｍｅｎｔオブジェクトの参照を解析処理制御部１２に出力する。
【００８９】
次に、構造化データ解析部１４が解析処理中に、記憶領域管理部１７が確保した記憶領域だけでは全ての構造化データを内部データ形式で表現する事ができない場合の具体的な対処例について説明する。
図２１は、確保した記憶領域が不足した場合に発生する対処処理の処理シーケンスの一例を示す図である。
Ｓ２０の不足通知ステップにおいて、記憶領域不足を検知した記憶領域管理部１７は、構造化データ解析部１４に対して、記憶領域不足通知を行う。この不足通知に対して、構造化データ解析部１４は、構造化データのどの位置まで解析できているのかを示す解析位置情報、例えば、次に解析を開始するデータ位置の参照、解析が終了したデータサイズ、解析されていないデータサイズ等を、記憶領域管理部１７に通知する。そして、記憶領域管理部１７は、解析処理制御部１２に対して、記憶領域不足通知を行う。その通知には、構造化データのどの位置まで解析できているのかを示す解析位置情報、例えば、次に解析を開始するデータ位置の参照、解析が終了したデータサイズ、解析されていないデータサイズ等が含まれる。
記憶領域不足通知を受けた解析処理制御部１２は、追加で記憶領域を確保するための再前解析要求を前解析処理部１３に発行する。この要求には前述した構造化データのどの位置まで解析できているのかを示す解析位置情報が含まれる。
【００９０】
再解析処理ステップＳ２１では、再前解析要求を受けた前解析処理部１３は、解析位置情報から解析が終っている構造化データの位置を判断して、解析が終了していない部分を構造化データから抽出する。そして、抽出した構造化データの解析が終了していない部分の前解析処理を行い、解析結果情報を求める。この時に、図５の解析処理ステップＳ１と同等の処理を行ってもよいし、異なる処理方式の前解析処理を行ってもよい。例えば、構造化データ全体に対して未解析のデータが占める割合を求める。そして、図５の解析処理ステップＳ１と同様の解析処理を行って求めた解析結果情報に対して、前述の割合をかけて、かけた結果を再前解析処理を行って求めた解析結果情報とする、などの方法を採用してもよい。また他に、同一の前解析処理に対して、解析位置情報に応じて、バイアスを加える方法でもよい。この「バイアスを加える」とは、その直前に記載した「図５の解析処理ステップＳ１と同様の解析処理を行って求めた解析結果情報に対して、前述の割合をかけて、かけた結果を再前解析処理を行って求めた解析結果情報とする」との説明のなかで、割合をかけている処理を、掛け算から、足し算に変えた方法を指す。具体的には、未解析のデータの割合に応じて決まる値（一般には負の値）を、図５の解析処理ステップＳ１と同様の解析処理を行って求めた解析結果情報の値に足すという処理に変えたものである。前解析処理部１３は、再前解析終了後に、再前解析処理を行って求めた解析結果情報を解析処理制御部１２に返す。
【００９１】
記憶領域再決定ステップＳ２２において、Ｓ２１で求めた解析結果情報を受けた解析処理制御部１２は、その結果と共に再決定要求を記憶領域決定部１５に発行する。
再決定要求を受けた記憶領域決定部１５は、Ｓ２１で求めた解析結果情報を利用して、追加で確保する記憶領域量を決定する。この時に図５の記憶領域決定ステップＳ２で行った記憶領域量決定処理と同一の処理を利用してよい。また、同一の記憶領域量決定情報を記憶領域推定情報格納部１６から取得して決定処理に利用してもよい。逆に、記憶領域量を再度決定するための、再決定専用の記憶領域量決定処理方式や異なる記憶領域量決定情報を準備して、再決定時にはそれらを利用してもよい。決定処理終了後、決定した記憶領域量を解析処理制御部１２に返す。
【００９２】
記憶領域再管理ステップＳ２３において、記憶領域量を受けた解析処理制御部１２は、その記憶領域量と共に再確保要求を記憶領域管理部１７に発行する。
再確保要求を受けた記憶領域管理部１７は、記憶領域量を元に追加でデータ記憶領域を確保し、その領域を参照するための情報を解析処理制御部１２に返す。
【００９３】
実解析処理ステップＳ２４において、追加記憶領域を参照するための情報を受けた解析処理制御部１２は、その参照するための情報を構造化データ解析部１４に返す。その参照をするための情報を受けた事をトリガーとして、構造化データ解析部１４は、受け取った参照先のデータ記憶領域を利用して解析処理を再開する。
【００９４】
また、前述の記憶領域再決定ステップＳ２２において、記憶領域管理部１７が記憶領域を各オブジェクトの配列で領域管理を行っている場合には、どのオブジェクトが不足したのかを示す情報を構造化データ解析部１４が記憶領域管理部１７に通知し、記憶領域管理部１７が、さらに解析処理制御部１２に通知し、解析処理制御部１２は、その通知された情報を利用して、前解析処理部１３、記憶領域決定部１５、記憶領域管理部１７がそのオブジェクトに対してのみ処理を行うように制御してもよい。
【００９５】
また、解析範囲情報によって前解析処理を行う範囲を指定した場合は、構造化データ中に前解析処理をしていない部分が残っている。解析処理制御部１２は、データ領域の不足通知を受けた場合、前回の前解析処理で解析対象外となった構造化データの部分を解析することを、前解析処理部１３に要求してもかまわない。前解析処理部１３は、前述の要求を解析処理制御部１２から受けると、解析範囲情報１００から解析対象外とした構造化データの部分を判定して、再解析処理を開始する。
【００９６】
この実施の形態では、記憶領域決定部１５が求めた記憶領域量に基づき、記憶領域管理部１７がデータ記憶領域を確保し、構造化データを解析処理中にその確保したデータ記憶領域にメモリ不足が発生した場合、その構造化データの内、構造化データ解析部１４による解析が行われていない部分を、再度前解析処理部１３により前解析処理して、その前解析処理の結果生成した解析結果情報から記憶領域決定部１５で再度確保する記憶領域量を決定し、その決定した記憶領域量に基づき記憶領域管理部１７が再度データ記憶領域を確保して、その再度確保したデータ記憶領域を使用して、構造化データ解析部１４が解析処理を再開する事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
【００９７】
この実施の形態の構造化データメモリ管理装置１０は、一旦確保したデータ記憶領域が、構造化データ解析中に不足する状態になっても、再度データ記憶領域を追加で確保するので、記憶領域不足によって構造化データの解析処理が出来なくなることを防ぐ効果がある。
【００９８】
実施の形態８．
この実施の形態では、再度データ記憶領域に確保する内部データ形式に変換したデータを記憶する記憶領域の記憶領域量を、再前解析処理することなく確保する例を説明する。
記憶領域管理部１７は、記憶領域の不足が発生すると、図５の記憶領域管理ステップＳ３で確保した記憶領域量と同じ記憶領域量のデータ記憶領域を、記憶部に再度確保する。すなわち、図２１の不足通知ステップＳ２０において、記憶領域管理部１７は、記憶領域の不足の通知を解析処理制御部１２に通知せずに、前回確保した記憶領域量と同じ量のデータ記憶領域の再確保を行い、再確保したデータ記憶領域を参照するための情報を解析処理制御部１２に通知する。そして、実解析処理ステップＳ２４が開始される。この場合、前回の記憶領域量は、記憶領域決定部１５が記憶部に或いは、ファイル群９２４に記憶しておき、記憶領域管理部１７が記憶部やファイル群９２４に記憶されたものを取得する。
【００９９】
また、再度確保する記憶領域量を予め記憶しておく追加記憶量記憶部を構造化データメモリ管理装置１０が備えるようにしてもかまわない。
図２２は、追加記憶量記憶部を備える構造化データメモリ管理装置１０のブロック図を示す図である。
図２２において、追加記憶量記憶部１９は、再度データ記憶領域を確保する際の再確保する記憶領域量を予め記憶する。その他の要素は、図１と同様である。
記憶領域管理部１７からデータ記憶領域の不足を通知された解析処理制御部１２は、記憶領域決定部１５に対して再度確保する記憶領域量を決定することを要求する。すなわち、図２１のように、前解析処理部１３による再解析処理ステップＳ２１を行わずに、記憶領域決定部１５が追加記憶量記憶部１９から再度確保する記憶領域量を取得する。
【０１００】
前述のように、図５の記憶領域管理ステップＳ３で確保した記憶領域量と同じ記憶領域量のデータ記憶領域を確保したり、或いは、追加記憶量記憶部１９から再度確保する記憶領域量を取得することにより、前解析処理部１３による前解析処理が不要となるため、構造化データ解析部１４による処理を早く再開できる効果がある。
【０１０１】
また、実施の形態７に記載した記憶領域量を再度決定するための、再決定専用の記憶領域量決定処理方式や異なる記憶領域量決定情報を、追加記憶量記憶部１９に記憶するようにしてもかまわない。
この場合、データ記憶領域量の不足が発生した際の処理手順は、図２１の処理手順となる。ただし、記憶領域決定部１５は、記憶領域再決定ステップＳ２２で、記憶領域推定情報格納部１６をアクセスする代わりに、追加記憶量記憶部１９をアクセスする。
【０１０２】
この実施の形態では、データ記憶領域に不足が発生した後、記憶領域決定部１５が使用する記憶領域推定情報は初回に使用した前記記憶領域推定情報と同一であるとして、初回に確保した記憶領域量と同じ記憶領域量を再度確保することを特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
【０１０３】
また、データ記憶領域に不足が発生した後、記憶領域決定部１５が使用する記憶領域推定情報は初回に使用した記憶領域推定情報とは異なる物であることを特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。例えば、データ記憶領域が不足した場合には、再度確保する記憶領域量を予め記憶する追加記憶量記憶部を備える。また、不足時用の推定情報を別に記憶する追加記憶量記憶部を備える。
【０１０４】
この実施の形態の構造化データメモリ管理装置１０は、データ記憶領域に不足が発生した場合、前解析処理部１３による前解析処理が不要となるため、構造化データ解析部１４による処理を早く再開できる効果がある。
【０１０５】
実施の形態９．
この実施の形態では、構造化データ解析部１４による解析処理で実際に必要となった記憶領域量を、記憶領域量の推定に反映する一例を説明する。
図２３は、推定情報補正部２０を備える構造化データメモリ管理装置１０を示すブロック図である。
図２３の構造化データメモリ管理装置１０は、記憶領域推定情報格納部１６が記憶する記憶領域推定情報を補正する推定情報補正部２０を備える。他の要素は、図１と同様である。
推定情報補正部２０は、構造化データ解析部１４による解析処理終了後に、解析前に決定した領域サイズと実際に必要となった領域サイズの誤差を記憶領域推定情報に反映する。補正する手順は、はじめに、解析処理制御部１２が、構造化データ解析部１４から解析処理の終了通知を受信する。そして、解析処理制御部１２は、記憶領域管理部１７に対して、構造化データ解析部１４が実際に使用したデータ記憶領域に確保した内部データ形式に変換したデータを記憶する記憶領域の記憶領域量を記憶領域推定情報に反映させることを要求する。記憶領域管理部１７は、実際に使用した記憶領域量をデータ記憶領域を調査して、実際に使用した記憶領域量を取得する。さらに、記憶領域管理部１７は、図５の記憶領域管理ステップＳ３で確保した記憶領域量、及び、図２１の記憶領域再管理ステップＳ２３で再度確保した記憶領域量とを合わせてた推定した記憶領域量を求めて、推定した記憶領域量と、実際に使用した記憶領域量とを、解析処理制御部１２に通知する。通知を受けた解析処理制御部１２は、推定した記憶領域量と、実際に使用した記憶領域量とを推定情報補正部２０に通知するとともに、記憶領域推定情報の補正を要求する。推定情報補正部２０は、推定した記憶領域量と、実際に使用した記憶領域量との差を算出し、その算出した値を利用して、次回以降の解析前の記憶領域量確保の精度を上げるために、記憶領域推定情報格納部１６が記憶する記憶領域推定情報の更新を行う。
【０１０６】
例えば、記憶領域推定情報格納部１６が記憶領域推定情報として近似関数を記憶している場合、関数は数学的、統計的に推定されるので、この近似関数をどのように変更するかは、その数学上のアルゴリズムに依存する。しかし、数学的に定まったアルゴリズムになっているので、入力となるｘ軸の解析結果情報と、出力となるｙ軸の実際の使用量が決定され、その組を近似に利用するデータ集合に加えて再近似処理を行えば、新たな近似関数が決定する。
【０１０７】
この実施の形態では、構造化データ解析部１４による解析終了後に実際に必要となったデータ記憶領域量と記憶領域決定部１５が求めた記憶領域量との差を用いて、記憶領域推定情報を補正する推定情報補正部２０を有する事を特徴とする記憶領域管理方式を実行する記憶領域管理装置の一例の構造化データメモリ管理装置１０を説明した。
【０１０８】
この実施の形態の構造化データメモリ管理装置１０は、記憶領域推定情報が静的ではなく、動的に更新される事で個別の環境に適応可能とする効果がある。
【０１０９】
実施の形態１０．
以上までで説明した実施の形態の具体例は、説明した全ての処理が単独の情報端末内で実施される事を前提としている。すなわち、構造化データメモリ管理装置１０が全ての「〜部」を備えていた。しかし、実際には、一部の処理部をネットワーク上のコンテンツサーバやプロキシサーバに実装してもよい。図２４は、記憶領域管理システムの一例を示すブロック図である。例えば、図２４はプロキシサーバである記憶領域推定装置１０１に前解析処理部１３、制御部１０４（解析処理制御部１２の機能の一部を有する）、記憶領域決定部１５および記憶領域推定情報格納部１６を実装し、解析処理制御部１２、構造化データ格納部１１、記憶領域管理部１７および構造化データ解析部１４を、利用者が使用する情報端末である記憶領域管理装置１０３に実装する。記憶領域推定装置１０１と記憶領域管理装置１０３とは、ＬＡＮ９４２、ゲートウェイ９４１を介してインターネット９４０に接続され、２つの装置は例えばインターネットを介して接続されている。また、記憶領域推定装置１０１と記憶領域管理装置１０３とは、通信部１０１１と通信部１０３１とを介して、情報の通信を行う。通信部１０１１、通信部１０３１とは、通信ボード９１５により通信を行う。
【０１１０】
構造化データ格納部１１は、記憶領域管理装置１０３が備えている。このため、記憶領域管理装置１０３の解析処理制御部１２は、構造化データ解析部１４が解析しようとする構造化データを構造化データ格納部１１より取得して、通信部１０３１により構造化データを記憶領域推定装置１０１に送信する。記憶領域推定装置１０１は、通信部１０１１により記憶領域管理装置１０３が送信した構造化データを受信して、制御部１０４に出力する。制御部１０４は、入力した構造化データを前解析処理部１３に出力するとともに、前解析処理の要求を通知する。この後の処理は、図５のＳ１，Ｓ２と同じである。記憶領域決定部１５が決定した記憶領域量は、制御部１０４を介して通信部１０１１により記憶領域管理装置１０３へ送信する。通信部１０３１は、記憶領域推定装置１０１が送信した記憶領域量を受信して、解析処理制御部１２に出力する。この後の処理は、図５のＳ３，Ｓ４の処理と同様である。
【０１１１】
また、構造化データ解析部１４による解析処理中にデータ記憶領域の不足が発生すると、解析処理制御部１２から通信部１０３１を介して、記憶領域推定装置１０１にデータ記憶領域の不足を通知する。この後の記憶領域推定装置１０１における処理は、図２１のＳ２０〜Ｓ２２までと同じである。再確保する記憶領域量が決定すると、記憶領域推定装置１０１から通信部１０１１を介して、記憶領域管理装置１０３へ再確保する記憶領域量を送信する。記憶領域管理装置１０３は、通信部１０３１により再確保する記憶領域量を受信して、ず２１のＳ２３，Ｓ２４の処理を行う。
【０１１２】
この実施の形態では、前解析処理部１３、記憶領域推定情報格納部１６、記憶領域決定部１５を有する装置が、構造化データ解析部１４、記憶領域管理部１７を有する装置とは異なりことの一例を説明した。また、構造化データ解析部１４を有する記憶領域管理装置１０３および前解析処理部１３を有する記憶領域推定装置１０１は、互いに通信するための通信部１０１１，１０３１を有し、記憶領域管理装置１０３は記憶領域推定装置１０１が推定した記憶領域量を、通信部１０１１，１０３１を介して取得することを特徴とする記憶領域管理システムの一例を説明した。
【０１１３】
この実施の形態の記憶領域管理システムは、記憶領域量を推定する処理と、構造化データを実際に解析する処理とを別々の装置により実現する。このため、構造化データを実際に解析する処理を行う情報端末（記憶領域管理装置１０３）が複数あった場合に、その情報端末（記憶領域管理装置１０３）を推定装置（記憶領域推定装置１０１）にネットワークを介して接続して、複数の推定装置（記憶領域推定装置１０１）を設置するコストを省ける効果がある。また、記憶領域推定情報を一元管理できる効果がある。
【０１１４】
実施の形態１１．
この実施の形態では、解析する構造化データが、記憶領域管理装置１０３と記憶領域推定装置１０１以外の他の装置に記憶されている記憶領域管理システムの一例を説明する。
図２５は、記憶領域管理システムの図２４とは別の一例を示すブロック図である。図２５の記憶領域管理システムは、情報端末（記憶領域管理装置１０３）がプロキシサーバ（記憶領域推定装置１０１）を経由して、コンテンツサーバである構造化データ記憶装置１０２に存在する構造化データを通信して取得し、解析処理を行う場合の一つの具体例である。構造化データがコンテンツサーバ（構造化データ記憶装置１０２）に記憶されている点以外は、図２５は図２４の記憶領域管理システムは同じ装置構成をしており、それぞれの装置は図５及び図２１の各処理ステップを、実施の形態１０の説明と同じように、いずれかの装置でそれぞれ実行する。
プロキシサーバ（記憶領域推定装置１０１）はコンテンツサーバ（構造化データ記憶装置１０２）と情報端末（記憶領域管理装置１０３）と通信するための通信部１０５を備え、情報端末（記憶領域管理装置１０３）はプロキシサーバ（記憶領域推定装置１０１）との通信を行うための通信部１０３１を備える。記憶領域推定装置１０１と記憶領域管理装置１０３とコンテンツサーバ（構造化データ記憶装置１０２）とは、ＬＡＮ９４２、ゲートウェイ９４１を介してインターネット９４０に接続され、３つの装置は例えばインターネットを介して接続されている（図２５の第１のネットワーク１０７と第２のネットワーク１０８とは、例えば、ＬＡＮ９４２、ゲートウェイ９４１、インターネット９４０とする）。通信部１０５、通信部１０３１とは、通信ボードにより通信を行う。また、通信部１０５とコンテンツサーバ（構造化データ記憶装置１０２）とが通信する情報、及び、通信部１０５と通信部１０３１とが通信する情報とは、ヘッダ部とボディ部とを有するものとする。
【０１１５】
情報端末（記憶領域管理装置１０３）は、入力部１８よりコンテンツサーバ（構造化データ記憶装置１０２）の構造化データを取得するコンテンツ取得リクエストを入力して、入力したコンテンツ取得リクエストをプロキシサーバ（記憶領域推定装置１０１）を経由して、コンテンツサーバ（構造化データ記憶装置１０２）へ送信して、構造化データを取得する事が可能である。情報端末（記憶領域管理装置１０３）から通信部１０３１と通信部１０５とを介してコンテンツ取得リクエストを受けたプロキシサーバ（記憶領域推定装置１０１）は、リクエストしているコンテンツサーバ（構造化データ記憶装置１０２）に通信部１０５を介してそのリクエストを転送する。そして、プロキシサーバ（記憶領域推定装置１０１）は、コンテンツサーバ（構造化データ記憶装置１０２）からの応答が到着するまで待機する。コンテンツサーバ（構造化データ記憶装置１０２）からの応答を通信部１０５により受信すると、プロキシサーバ（記憶領域推定装置１０１）は、その応答からボディ部が構造化データを有する場合には、ボディを取り出し、前解析処理部１３に前解析処理を実行させ、生成した解析結果情報から記憶領域決定部１５に必要となる記憶領域量を算出させる。算出された記憶領域量をコンテンツサーバ（構造化データ記憶装置１０２）から受け取った応答のヘッダに追加し、記憶領域量を追加した応答を通信部１０５を介して情報端末（記憶領域管理装置１０３）に送信する。
【０１１６】
プロキシサーバ（記憶領域推定装置１０１）から応答を受信した情報端末（記憶領域管理装置１０３）の通信部１０３１は、受信した応答を解析処理制御部１２に渡す。応答を受け取った解析処理制御部１２は、応答のボディ部から構造化データを取り出し、構造化データ格納部１１に格納する。次に応答のヘッダ部から記憶領域量を取得し、その情報を記憶領域管理部１７に渡し、記憶領域管理部１７は記憶領域量のデータ記憶領域を確保する。そして、記憶領域管理部１７は確保したことを解析処理制御部１２に通知する。解析処理制御部１２は、その後、構造化データ解析部１４に対して、構造化データの解析要求を発行し、構造化データ解析部１４は記憶領域管理部１７が確保した記憶領域を使用して、構造化データ格納部１１に記憶した構造化データの解析処理を実行する。
【０１１７】
このようなプロキシサーバ（記憶領域推定装置１０１）を利用した場合、情報端末（記憶領域管理装置１０３）にマシンパワーがなく、前解析処理や記憶領域量決定処理が大きな負荷となってしまう場合には有効であり、その負荷をプロキシサーバ（記憶領域推定装置１０１）で代行する事が可能である。
また、コンテンツサーバ（構造化データ記憶装置１０２）が前述した具体例のプロキシサーバ（記憶領域推定装置１０１）が保持する機能を備えて同等の機能を果たす事も可能である。その場合には、コンテンツサーバ（記憶領域推定装置１０１）が情報端末（記憶領域管理装置１０３）からの構造化データリクエストを受信した事をトリガーとして、前解析処理、記憶領域量決定処理を実行し、その結果を応答のヘッダ部に付加して情報端末（記憶領域管理装置１０３）に送信する。この場合の情報端末（記憶領域管理装置１０３）の処理はプロキシサーバ（記憶領域推定装置１０１）を利用した場合と同等である。
この方法の場合、同一コンテンツに対して複数のリクエストがきた場合に、それぞれの場合で、コンテンツサーバ（記憶領域推定装置１０１）側で前解析処理および記憶領域量決定処理を実行するのは非効率であるため、一旦算出された結果をキャッシュしておく機構を持たせてもよい。
【０１１８】
また、記憶領域量は、最初に情報端末（記憶領域管理装置１０３）が送信した構造化データリクエストに対する応答のヘッダ部に含めて、最終的に情報端末（記憶領域管理装置１０３）へ通知された。しかし、記憶領域量を情報端末（記憶領域管理装置１０３）に通知するための専用の情報を設けて、その専用の情報に含めて通知するようにしてもかまわない。
また、プロキシサーバ（記憶領域推定装置１０１）は、情報端末（記憶領域管理装置１０３）からコンテンツ取得リクエストを受けたことを、前解析処理の指示と判断していたが、情報端末（記憶領域管理装置１０３）からコンテンツ取得リクエストを要求する情報とは別に、前解析処理の指示を行う情報を情報端末（記憶領域管理装置１０３）からプロキシサーバ（記憶領域推定装置１０１）へ送信するようにしてもかまわない。
【０１１９】
この実施の形態では、前解析処理部１３、記憶領域推定情報格納部１６、記憶領域決定部１５を有するのが、構造化データ解析部１４、記憶領域管理部１７を有する装置とは異なることを説明した。また、構造化データ解析部１４を有する管理装置（記憶領域管理装置１０３）および前解析処理部１３を有する推定装置（記憶領域推定装置１０１）は、通信するための通信部１０５，１０３１を有し、管理装置（記憶領域管理装置１０３）は解析する構造化データを構造化データ格納装置から通信部１０５を介して取得する際に、管理装置（記憶領域管理装置１０３）と構造化データ格納装置の通信経路の間に、推定装置（記憶領域推定装置１０１）を配し、管理装置（記憶領域管理装置１０３）が構造化データ格納装置から構造化データを取得する通信中に推定装置（記憶領域推定装置１０１）が構造化データ格納装置からの応答を解析し、記憶領域量を求め、管理装置（記憶領域管理装置１０３）に通信手段を介して転送する事を特徴とする記憶領域管理システムの一例を説明した。
【０１２０】
また、推定装置（記憶領域推定装置１０１）が求めた記憶領域量を応答のヘッダ情報として付加することにより管理装置（記憶領域管理装置１０３）に転送する事を特徴とする記憶領域管理システムの一例を説明した。
【０１２１】
また、推定装置（記憶領域推定装置１０１）が求めた記憶領域量を専用の応答情報として管理装置（記憶領域管理装置１０３）に転送する事を特徴とする記憶領域管理システムの一例を説明した。
【０１２２】
また、推定装置（記憶領域推定装置１０１）は管理装置（記憶領域管理装置１０３）から解析要求を、通信部を介して転送された場合にのみ推定処理を行い、推定結果を返す事を特徴とする。
【０１２３】
また、構造化データの転送要求のヘッダ情報に記憶領域量を推定することを要求する情報を付加する事を特徴とする記憶領域管理システムの一例を説明した。
【０１２４】
また、記憶領域量を推定することを要求する専用の情報を、通信部を介して推定装置に転送する事を特徴とする。
【０１２５】
この実施の形態の記憶領域管理システムは、構造化データを一元管理するコンテンツサーバ（構造化データ記憶装置１０２）を備えたので、複数の情報端末（記憶領域管理装置１０３）で重複して同じ構造化データを管理することがないので、情報端末（記憶領域管理装置１０３）の記憶部を有効に使用できる効果がある。
【０１２６】
また、記憶領域量を通知する情報は、コンテンツの要求に対する応答に含めたので、記憶領域推定装置１０１と記憶領域管理装置１０３との間の通信量を抑える効果がある。
【０１２７】
また、記憶領域量を算出することを要求する情報は、コンテンツを取得する要求と兼用としたので、記憶領域推定装置１０１と記憶領域管理装置１０３との間の通信量を抑える効果がある。
【０１２８】
また、記憶領域量を算出することを要求する情報は、コンテンツの要求に対する応答とは別の専用の情報としたので、コンテンツだけを取得したい場合に対処できる効果がある。
【０１２９】
また、記憶領域量を通知する情報は、コンテンツの要求に対する応答とは別の専用の情報にしたので、コンテンツだけを取得したい装置に、不要に記憶領域量を通知することを防ぐ効果がある。このため、記憶領域量を受信することに対応していない情報端末が、不要に記憶領域量を受信して不正動作を起こす事を防ぐ効果がある。
【図面の簡単な説明】
【０１３０】
【図１】記憶領域管理方式を実行する構造化データメモリ管理装置の機能ブロック図である。
【図２】は、図１の記憶領域管理方式を実現する構造化データメモリ管理装置を含むシステム構成を示す図である。
【図３】図２の構造化データメモリ管理装置を含むシステムのハードウェア資源の一例を示す図である。
【図４】（ａ）は構造化データの一例としてのＨＴＭＬコンテンツを示す図である。（ｂ）は、（ａ）のＨＴＭＬコンテンツをＤＯＭに準拠した内部データ形式で表現した場合のブロック図の例である。
【図５】実施の形態１の解析処理制御部１２を中心とする処理のシーケンスを示す図である。
【図６】構造化データがＸＭＬの場合における特徴データとしてタグ開始・終了記号および属性設定記号による記号のみを利用した場合の前解析処理部の処理フロー図である。
【図７】構造化データがＸＭＬの場合における特徴データとしてタグの開始・終了記号、属性設定記号、テキスト文字数のそれぞれによる特徴抽出処理フロー図である。
【図８】記憶領域推定情報格納部１６に格納されている情報の具体例を示す図であり、（ａ）はパラメータが所定の範囲の値を示す例であり、（ｂ）はパラメータが１つの値を示す例である。
【図９】記憶領域推定情報格納部１６へパラメータと記憶領域推定情報とを設定する手順のフローチャート図である。
【図１０】（ａ）はタグ数、（ｂ）は属性数、（ｃ）は文字数それぞれについてパラメータと記憶領域推定情報とを記憶する記憶領域推定情報格納部１６の例を示す図である。
【図１１】は、（ａ）は前解析結果の間隔が属性の場合で１０間隔である例を示し、（ｂ）は前解析結果の間隔が文字数の場合で４間隔である例を示している。
【図１２】過去に行った前解析処理部１３の解析結果情報に基づいて記憶領域決定部１５が推定した記憶領域量と、実際に構造化データ解析部１４が使用した記憶領域量とを利用して、メモリ使用推定量関数を求めるグラフを示す図である。
【図１３】（ａ）はタグの出現回数が解析結果情報である場合の連続近似関数ｆ（ｘ）を示し、（ｂ）は属性の出現回数が解析結果情報である場合の連続近似関数ｆ（ｙ）を示し、（ｃ）は文字の出現回数が解析結果情報である場合の連続近似関数ｆ（ｚ）を示す図である。
【図１４】図１３の連続近似関数に対応する記憶領域位置情報格納部１６の一例を示す図である。
【図１５】解析結果情報の値の範囲によって対応する連続近似関数が異なるとともに、オブジェクト別に解析結果情報と記憶領域推定情報との対応表を設けた例を示す図である。
【図１６】記憶領域推定情報格納部１６に格納されている付加情報の具体例の一つを示す図である。
【図１７】図１６の付加情報を利用した記憶領域決定ステップ（Ｓ２）のフローチャート図である。
【図１８】第１と第２の前解析処理部を備えて記憶領域管理方式を実行する構造化データメモリ管理装置の機能ブロック図である。
【図１９】最大記憶領域量と、最小記憶領域量と、棄却可能記憶領域量とを、複数のオブジェクト毎にそれぞれ記憶する記憶領域推定情報格納部１６の一例であり、（ａ）はＥｌｅｍｅｎｔに対応し、（ｂ）はａｔｔｒオブジェクトに対応し、（ｃ）はテキストオブジェクトに対応する例を示す図である。
【図２０】記憶領域推定情報格納部１６に格納されている付加情報に最大記憶領域量と、最小記憶領域量と、棄却可能記憶領域量を設定した例を示す図である。
【図２１】確保した記憶領域が不足した場合に発生する対処処理の処理シーケンスの一例を示す図である。
【図２２】追加記憶量記憶部１９を備える構造化データメモリ管理装置１０を示すブロック図である。
【図２３】推定情報補正部２０を備える構造化データメモリ管理装置１０を示すブロック図である。
【図２４】記憶領域管理システムの一例を示すブロック図である。
【図２５】記憶領域管理システムの図２４とは別の一例を示すブロック図である。
【符号の説明】
【０１３１】
１０  構造化データメモリ管理装置、１１  構造化データ格納部、１２  解析処理制御部、１３  前解析処理部、１４  構造化データ解析部、１５  記憶領域決定部、１６  記憶領域推定情報格納部、１６ｘ  要素数、１６ｙ  属性数、１６ｚ  文字数、１７  記憶領域管理部、１８  入力部、１９  追加記憶量記憶部、２０  推定情報補正部、１０４  制御部、１０５  通信部、１００  解析範囲情報、１０１  記憶領域推定装置、１０２  構造化データ記憶装置、１０３  記憶領域管理装置、１０７  第１のネットワーク、１０８  第２のネットワーク、１３１  第１の解析処理部、１３２  第２の解析処理部、１６１  最大、１６２  最小、１６３  棄却可能、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０８  データベース、９０９  クライアント装置、９１０  サーバ装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ、１０１１，１０３１  通信部。
【図１】
0004750581.tif 000003
【図２】
0004750581.tif 000004
【図３】
0004750581.tif 000005
【図４】
0004750581.tif 000006
【図５】
0004750581.tif 000007
【図６】
0004750581.tif 000008
【図７】
0004750581.tif 000009
【図８】
0004750581.tif 000010
【図９】
0004750581.tif 000011
【図１０】
0004750581.tif 000012
【図１１】
0004750581.tif 000013
【図１２】
0004750581.tif 000014
【図１３】
0004750581.tif 000015
【図１４】
0004750581.tif 000016
【図１５】
0004750581.tif 000017
【図１６】
0004750581.tif 000018
【図１７】
0004750581.tif 000019
【図１８】
0004750581.tif 000020
【図１９】
0004750581.tif 000021
【図２０】
0004750581.tif 000022
【図２１】
0004750581.tif 000023
【図２２】
0004750581.tif 000024
【図２３】
0004750581.tif 000025
【図２４】
0004750581.tif 000026
【図２５】
0004750581.tif 000027