(57)【要約】【課題】構造化文書の抽出、編集、検索を行う構造化文書処理システムに関し、ＣＰＵの負荷とメモリ使用量を低減する。【解決手段】構造化文書（１０）中の枝である特定タグの位置情報を位置情報保持部（１２）に事前に取出しておき，これをもとに構造化文書（１０）から要素，属性，要素内容という部分文書を抽出する。オリジナルの構造化文書から一部を抽出するだけなので，従来の木構造として取得する方法と比較して、ＣＰＵ負荷を低減でき、メモリ使用量も少なくできる。又、抽出したものと文書変換用テンプレート（２０）に直接当てはめて、他の構造化文書生成する。【選択図】図１
2005234837.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書保持部に保持された構造化文書を処理する構造化文書処理方法において、
構造化文書中の木の位置情報を位置情報保持部に保持するステップと、
指示された前記構造化文書の部分文書を、前記保持した木の位置情報を使用して、抽出するステップとを有する
ことを特徴とする構造化文書処理方法。
【請求項２】
前記抽出した部分文書を部分文書保持部に保持するステップと、
抽出する部分文書が前記部分文書保持部に保持されているかを判定するステップと、
前記抽出する部分文書が前記部分文書保持部に保持されている時は、前記部分文書保持部から前記部分文書を抽出し、前記抽出する部分文書が前記部分文書保持部に保持されていない時は、前記木の位置情報を使用して、前記構造化文書から前記部分文書を抽出するステップとを更に有する
ことを特徴とする請求項１の構造化文書処理方法。
【請求項３】
前記部分文書保持部に、前記構造化文書中の編集された部分文書を保持するステップを更に有する
ことを特徴とする請求項２の構造化文書処理方法。
【請求項４】
前記構造化文書保持部の前記構造化文書の編集が無かった部分をコピーし、前記部分文書保持部の編集された部分文書と合わせて、変更後の部分文書を生成するステップを更に有する
ことを特徴とする請求項３の構造化文書処理方法。
【請求項５】
文書化構造変換用テンプレートに、前記抽出した部分文書を当てはめ、構造化文書の変換を行うステップを更に有する
ことを特徴とする請求項１の構造化文書処理方法。
【請求項６】
前記抽出ステップは、前記位置保持部の位置情報に従い、特定のタグで囲われた領域、タグの属性、開始タグの終端と終了タグの先端に挟まれた領域の少なくとも１つを、前記部分文書として、抽出するステップからなる
ことを特徴とする請求項１の構造化文書処理方法。
【請求項７】
構造化文書保持部に保持された構造化文書を処理する構造化文書処理システムにおいて、
前記構造化文書保持部の構造化文書中の木の位置情報を保持する位置情報保持部と、
指示された前記構造化文書の部分文書を、前記保持した木の位置情報を使用して、抽出する処理部とを有する
ことを特徴とする構造化文書処理システム。
【請求項８】
前記抽出した部分文書を保持する部分文書保持部を更に有し、
前記処理部は、抽出する部分文書が前記部分文書保持部に保持されているかを判定し、前記抽出する部分文書が前記部分文書保持部に保持されている時は、前記部分文書保持部から前記部分文書を抽出し、前記抽出する部分文書が前記部分文書保持部に保持されていない時は、前記木の位置情報を使用して、前記構造化文書から前記部分文書を抽出する
ことを特徴とする請求項７の構造化文書処理システム。
【請求項９】
前記処理部は、前記部分文書保持部に、前記構造化文書中の編集された部分文書を保持する
ことを特徴とする請求項９の構造化文書処理システム。
【請求項１０】
構造化文書保持部に保持された構造化文書を処理するプログラムであって、
構造化文書中の木の位置情報を位置情報保持部に保持するステップと、指示された前記構造化文書の部分文書を、前記保持した木の位置情報を使用して、抽出するステップとをコンピュータに実行させる
ことを特徴とするコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、SGML(Standard Generated Markup Language)，XML( eXtensible Markup Language)，HTML(Hyper Text Markup Language)文書などの構造化文書を処理，または元の構造を変換する構造化文書処理方法、構造化文書処理システム及びそのプログラムに関する。
【背景技術】
【０００２】
インターネットの目覚しい普及に伴い、インターネットを通じて複数のシステム、サービス間で連携するデータを、構造化文書で記述するケースが増えてきた。これは、データの連携が多様化するに連れ、データ構造を容易に決定、拡張できるようにする必要が生じたことによる。
【０００３】
構造化文書としては、SGML(Standard Generated Markup Language)，XML( eXtensible Markup Language)，HTML(Hyper Text Markup Language)文書が知られており、この構造化文書は、データのみならずデータの意味を表わすタグを持つ。
【０００４】
例えば、ＸＭＬは、１９９８年２月に、Ｗ３Ｃ（World Wide Web Consortium)によって、正式に勧告されたものである。ＸＭＬ規格では、「＜」と「＞」で囲まれた文字列をタグ、「＜文字列＞」を開始タグ、「＜／文字列＞」を、終了タグ、開始タグと終了タグで挟まれた文字列を要素、タグ内に記述された要素の名前を、要素名、要素に対する付加情報を、属性と呼ぶ。
【０００５】
各システム、サービスは、このタグを元に、データの意味を理解して、自動的に処理する。この構造化文書は、単なるテキスト文書であるため，データを追加したい場合などは、そのデータをタグで囲んで挿入すればよい。
【０００６】
このように、データ構造をタグとして、文書に埋め込む構成をとることにより、データ構造の柔軟性と拡張性の高さを持ち、且つタグを人間が見て、意味あるテキストで記述することにより、独立のシステムで取り扱っていたデータを、他のシステムでも、容易に取り扱うことが可能となる。
【０００７】
例えば、構造化文書中のタグ、データを処理解析して、その一部をユーザアプリケーションに渡すことができる。ユーザアプリケーションは渡された文書をもとにデータ処理を行い、各種サービスなどを提供する。
【０００８】
ＸＭＬ処理は、このＸＭＬ文書から要素名、要素内容、属性、文字列などの内容を取得し、ユーザアプリケーションに渡す、又は内容を変更、追加、削除する。このＸＭＬ処理では、ＤＯＭ(Document Object Model)プロセッサが、Ｗ３ＣのXML標準API(Application Programming Interface)として定められ，広く使われている。
【０００９】
図１６及び図１７は、従来技術の説明図であり、前述のＤＯＭプロセッサの説明図である。ＤＯＭプロセッサの特徴として、データの編集が容易なことがあげられる。これは、図１６に示すように、ＤＯＭプロセッサが、ＸＭＬ文書１０００の全データを、メモリ１１００上に、木構造状に展開するためである。
【００１０】
従来のＤＯＭプロセッサの検索や編集時の手順は、先ず、ＸＭＬ文書１０００の全データを、一旦メモリ１１００中に、木構造状に展開し、次に、メモリ１１００上の木構造を辿って、指定されたデータを検索、編集するものである。
【００１１】
また、XML文書をWebなどから公開する際には、図１７に示すように、ＤＯＭプロセッサで、前述の図１６のように、データを検索，編集した後に、ユーザがXML文書中のデータを理解できるように、サーバーサイド１２００で、HTMLやPDFに変換する。この変換には、XSLTを用いられてきた。XSLTは、ＤＯＭプロセッサで解析された木構造をもとに、必要な木のみを、HTMLや他の構造をもつXMLに変換するものである。
【００１２】
このＤＯＭプロセッサによる構造化文書処理は、全データを、木構造状に、メモリ上に展開するため、メモリ展開時のＣＰＵ負荷が高く、例えば、ＸＭＬ文書の4〜6倍のメモリ量が必要となる。
【００１３】
また，HTMLへの変換時も、XSLTが木構造を解析しつつ、変換処理を行うので，木構造が大きい場合は、ＤＯＭプロセッサによるデータ処理のみならず、HTML変換処理のＣＰＵ負荷が高く，メモリ消費量が多くなり，ユーザの問合せに対する応答に時間が掛かる。
【００１４】
このような全データを木構造にするＤＯＭプロセッサの問題を改善するため、木構造を部分木に分けて、管理し、参照された部分木に対応する構造化文書の一部を展開し、変換する方法が、提案されている（例えば、特許文献１、２）。
【特許文献１】特開２００３−１７８０４９号公報
【特許文献２】特開２００３−０６７４０３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
この提案された従来の方法では、部分木に展開するため、全データを木構造に展開する方法に比し、ＣＰＵの負荷が少なくなり、メモリ使用量は少なくなるが、やはり、木構造に展開する必要があるため、部分木展開時のＣＰＵ負荷が高く、しかもメモリ使用量の削減も充分でないという問題が生じる。
【００１６】
また，ＨＴＭＬへの変換時も、ＸＳＬＴが木構造を解析しつつ、変換処理を行うので，ＤＯＭによるデータ処理のみならず、ＨＴＭＬ変換処理のＣＰＵ負荷が高く、メモリ消費量が多くなる。
【００１７】
このため，ユーザの問合せに対する応答に時間が掛かるようになり、特に、構造化文書の検索処理に時間がかかるという問題があった。
【００１８】
従って、本発明の目的は、ユーザの問い合わせに対し、構造化文書から高速に必要な要素を抽出して、応答時間を短縮するための構造化文書の処理方法、構造化文書処理システム及びそのプログラムを提供することにある。
【００１９】
又、本発明の他の目的は、木構造に展開することなく、構造化文書から高速に必要な要素を抽出して、応答時間を短縮するための構造化文書の処理方法、構造化文書処理システム及びそのプログラムを提供することにある。
【００２０】
更に、本発明の他の目的は、構造化文書の処理のためのＣＰＵの負荷を軽減するための構造化文書の処理方法、構造化文書処理システム及びそのプログラムを提供することにある。
【課題を解決するための手段】
【００２１】
この目的の達成のため、本発明は、構造化文書保持部に保持された構造化文書を処理する構造化文書処理方法において、構造化文書中の木の位置情報を位置情報保持部に保持するステップと、指示された前記構造化文書の部分文書を、前記保持した木の位置情報を使用して、抽出するステップとを有する。
【００２２】
又、本発明は、構造化文書保持部に保持された構造化文書を処理する構造化文書処理システムにおいて、前記構造化文書保持部の構造化文書中の木の位置情報を保持する位置情報保持部と、指示された前記構造化文書の部分文書を、前記保持した木の位置情報を使用して、抽出する処理部とを有する。
【００２３】
又、本発明は、構造化文書保持部に保持された構造化文書を処理するプログラムであって、構造化文書中の木の位置情報を位置情報保持部に保持するステップと、指示された前記構造化文書の部分文書を、前記保持した木の位置情報を使用して、抽出するステップとをコンピュータに実行させる。
【００２４】
更に、本発明では、好ましくは、前記抽出した部分文書を部分文書保持部に保持するステップと、抽出する部分文書が前記部分文書保持部に保持されているかを判定するステップと、前記抽出する部分文書が前記部分文書保持部に保持されている時は、前記部分文書保持部から前記部分文書を抽出し、前記抽出する部分文書が前記部分文書保持部に保持されていない時は、前記木の位置情報を使用して、前記構造化文書から前記部分文書を抽出するステップとを更に有する。
【００２５】
更に、本発明では、好ましくは、前記部分文書保持部に、前記構造化文書中の編集された部分文書を保持するステップを更に有する。
【００２６】
更に、本発明では、好ましくは、前記構造化文書保持部の前記構造化文書の編集が無かった部分をコピーし、前記部分文書保持部の編集された部分文書と合わせて、変更後の部分文書を生成するステップを更に有する。
【００２７】
更に、本発明では、好ましくは、前記部分文書保持部に保持された部分文書から、前記位置保持部の位置情報を使用して、前記部分文書の内部データを抽出するステップを更に有する。
【００２８】
更に、本発明では、好ましくは、文書化構造変換用テンプレートに、前記抽出した部分文書を当てはめ、構造化文書の変換を行うステップを更に有する。
【００２９】
更に、本発明では、好ましくは、前記抽出ステップは、前記位置保持部の位置情報に従い、特定のタグで囲われた領域、タグの属性、開始タグの終端と終了タグの先端に挟まれた領域の少なくとも１つを、前記部分文書として、抽出するステップからなる。
【００３０】
更に、本発明では、好ましくは、前記編集された部分文書と、前記位置保持部で保持された位置情報とを、前記構造化文書保持部に保存するステップを更に有する。
【発明の効果】
【００３１】
本発明では、構造化文書中の枝である特定タグの位置情報を事前に取出しておき，これをもとに構造化文書から要素，属性，要素内容という枝を抽出する。オリジナルの構造化文書から一部を抽出するだけなので，従来の木構造として取得する方法と比較して、ＣＰＵ負荷を低減でき、メモリ使用量も少なくできる。
【００３２】
又、抽出したものと文書変換用テンプレートに直接当てはめて、他の構造化文書生成する。直接当てはめにより、ＸＬＳＴ変換が不要となり，更にCPU負荷が低くなる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施の形態を、構造化文書処理システム、第１の実施の形態、第２の実施の形態、第３の実施の形態、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
【００３４】
［構造化文書処理システム］
図１は、本発明の構造化文書処理システムの一実施の形態の構成図、図２は、図１の構造化文書の説明図、図３は、図１の位置情報の説明図、図４は、図１のシステムの動作説明図である。
【００３５】
図１に示すように、構造化文書処理システムは、構造化文書ファイル（ここでは、ＸＭＬ文書ファイル）１０を有するサーバ１に、クライアント３が、構造化文書を参照、検索、編集を依頼する。
【００３６】
サーバ１は、構造化文書１０中の特定タグの位置情報を事前に取出しておき，位置情報保持部（メモリ）１２に保持する。サーバ１は、この位置情報をもとに、ＸＭＬ文書１０から要素，属性，要素内容を抽出する。
【００３７】
このように、オリジナルのＸＭＬ文書１０から一部を抽出するだけなので，従来の木構造として取得する方法と比較して，サーバ１のＣＰＵ負荷が低くなる。
【００３８】
又、クライアント３に送信するため、サーバ１で、ＨＴＭＬ変換用テンプレート２０と、テンプレートの定義体２２を設け、抽出した要素内容を、ＨＴＭＬ変換用テンプレート２０に直接当てはめて，ＨＴＭＬを生成する。この直接の当てはめにより、従来のＸＬＳＴ変換が不要となり、更に、サーバ１のＣＰＵ負荷が低くなる。
【００３９】
具体的に説明する。図１の構造化文書１０では、木構造で表現すると、開始タグ＜製品リスト＞から終了タグ＜／製品リスト＞までが、木（親）であり、その間の開始タグ＜製品＞から終了タグ＜／製品＞までが、部分木（子）であり、更に、その間の開始タグ＜型名＞から終了タグ＜／型名＞までが、枝（孫）となる。
【００４０】
この枝は、図２に示すように、要素と呼ばれ、要素内に、属性と、要素内容（ここでは、ＰＣ）が、記述される。即ち、実際の文字列データは、属性、要素内容であり、タグで、これらの文字列の定義をする。図１の構造化文書１０の例では、図３の数字に示すように、位置情報（文字列の位置又は構造化文書の文字列の格納位置）が与えられる。
【００４１】
このように定義された位置情報（図１では、枝である型名タグ）を、構造化文書１０から事前の取得し、位置保持部１２に保持し、次の手順で変換を行う。
【００４２】
（１）ユーザが指定した特定タグの位置情報を、位置保持部１２から取出す。
【００４３】
（２）位置情報をもとに，もとのＸＭＬ文書１０から枝である要素，属性，要素内容を抽出する。
【００４４】
（３）抽出した要素，属性又は要素内容を、ＨＴＭＬテンプレート２０に当てはめる。
【００４５】
（４）当てはめて作成したＨＴＭＬをユーザ（クライアント）３に返信する。
【００４６】
このように、構造化文書１０のなかで、必要な要素，属性又は要素内容のみを抽出，管理する。又、位置情報を取出しておくことにより，２回目以降は、その位置情報をもとに、部分文書（要素等）を高速に抽出できる。
【００４７】
又、通常のＤＯＭなどは、木構造状に展開するために、内部的に要素，属性，要素内容を分解して保持しておく。そのため、もとのＸＭＬ文書に戻すには、分解したものをマージ（併合）する処理が必要となる。しかし，本発明では、部分文書を出力する際には、元の構造化文書の一部を抽出するだけなので，マージ処理が存在しない。このため高速に抽出することが可能となる。
【００４８】
更に、位置情報は単なる数値データなので，木構造より少ないメモリ量ですむ。更に、ユーザアプリケーション側でのＣＰＵ負荷を軽減できる。即ち、ユーザアプリケーションでは，構造化文書の一部の構造化文書（要素）ではなく，部分文書(要素の内容である要素内容や，要素の属性)のみが必要な場合がある。
【００４９】
例えば、ユーザアプリケーションが要素内容をもとに検索を行う場合は、タグが付いているのは却って無駄なので，要素よりは要素内容だけを抽出した方がよい。これを実現するために，特定タグの開始タグの先端、終端、終了タグの先端、終端、特定タグの属性の位置情報を取得しておくことで、部分文書として要素内容や要素の属性を抽出する。
【００５０】
図４により、ファイル空間で説明する。図１６でも説明したように、多くの場合、データは集められて1つのレコード（部分木）を成し、このレコードが、複数存在している形をとる。このような場合は、はじめに各レコードを、部分文書として、その位置情報を取得しておき，次に細かく内部のデータ（要素内容、属性）を見たい場合は，各レコード(部分文書)内部の特定タグ（要素）の位置情報を取得して、データ（要素内容）を抽出する。
【００５１】
図４では、本発明をＳＰｌｉｔＸＭＬと称し、従来の部分木によるものを、ＳＰｌｉｔＤＯＭと称している。ＳＰｌｉｔＤＯＭでも、レコード（部分木）の位置情報を取得しているが、本発明のＳＰｌｉｔＸＭＬでは、レコード（部分木）の位置情報と、レコード内の要素（枝）の位置情報を取得している。
【００５２】
このため、直接要素内容をアクセスできるため、他の構造化文書（例えば、ＨＴＭＬ）への変換にかかるＣＰＵ負荷を削減できる。前述したように，ＳＰｌｉｔＤＯＭでは、木構造に変換し、ＸＳＬＴは、与えられた木構造を解析・理解しつつ、必要な要素内容を取得する。
【００５３】
このため，木構造の一部の柔軟な指定が可能であるが、その分ＣＰＵ負荷がかかり、ＣＰＵの計算速度が遅いモバイル機器（モバイルＰＣ，ＰＤＡ，携帯電話等）などで、ＨＴＭＬ変換を行うのは、非現実的である。
【００５４】
そこで，抽出部で要素内容を抽出し、これを予め用意しておいたＨＴＭＬ変換用テンプレート２０に当てはめることにより、ＸＳＬＴを使用することなく、ＨＴＭＬ変換が可能となるため，ＣＰＵ負荷が低くなる。
【００５５】
［第１の実施の形態］
図５は、本発明の第１の実施の形態のシステム構成図、図６は、図５の位置情報の第１の実施の形態の説明図、図７は、図５の位置情報の第２の実施の形態の説明図、図８は、図５の位置情報保持部の説明図である。
【００５６】
図５のシステムは、製品情報を表わすＸＭＬ文書の一部を、ユーザアプリケーション（クライアント３）が参照し，編集する例を示す。処理モジュール１は、例えば、前述のサーバで構成され、ＸＭＬ文書１０１には、多数の製品データ(製品タグ)が存在し，製品タグの一部を部分文書としてＸＭＬ文書１０１から抽出、参照する。
【００５７】
処理モジュール１は、構造化文書保持部１０１を構成するファイル装置と、ＣＰＵ、メモリ等を有する。メモリには，部分文書保持部１０５と、位置保持部１０４とが設けられる。ＣＰＵは、抽出部１０２、部分文書管理部１０３，コピー部１１２を機能モジュールとして有する。
【００５８】
部分文書管理部１０３は，はじめに、構造化文書保持部１０１から位置情報を取出し、位置情報保持部１０４に格納する。以降は、この位置情報を元に、抽出部１０２が、構造化文書保持部１０１から部分文書を取出す。位置保持部１０４は，位置情報を保持する。
【００５９】
この位置情報及び位置情報保持部を、図６乃至図８で説明する。図６は、１つの要素（枝）あるいは要素内容を抽出する場合の位置情報を示す。図６に示すように、１つの要素（枝）あるいは要素内容を抽出する場合には、位置情報として、要素の開始タグの先端と終端と、終了タグの先端と終端の計４つの位置である。
【００６０】
其々の位置を４byteで表わすため，1つの要素あたり高々16byteとなる。図６では、図５の品名要素を示す。位置保持部１０４は、図８に示すように、各製品タグｉに対し、要素（ここでは、型名要素、品名要素）の開始タグの先端と終端と、終了タグの先端と終端の計4つの位置を保持する。
【００６１】
図６の実施例では、要素を部分文書として抽出するが，属性を保持する場合は、図７に示すように、属性値（ここでは、０１）の開始位置と終了位置であり、計8byteとなる。
【００６２】
図５に戻り、部分文書保持部１０５は、一種のキャッシュメモリであり、後述するように、一旦抽出された又は更新された部分文書を保持する。コピー部１１２は、元の構造化文書１０１と更新された部分文書から更新が反映された構造化文書１１１を作成する。
【００６３】
次に、図５のシステムにおけるＸＭＬ文書参照処理を、図９の参照処理フロー図により、説明する。
【００６４】
Ｓ201：参照前の処理として、部分文書管理部１０３は、構造化文書保持部１００から構造化文書１０１中の製品タグの位置情報を取出し、位置保持部１０４へ位置情報を格納する。即ち、図６乃至図８で説明したように、製品タグの位置情報として、要素の開始、終了タグの位置を取出し、図８のように、テーブル構成の位置保持部１０４に格納する。
【００６５】
このＸＭＬ文書１０１全体の製品タグを対象として、予め取出し、保持する他に、ユーザの指定により、型名要素、品名要素、属性値のいずれか１つ又は２つを対象とすることもできる。
【００６６】
Ｓ202：ユーザアプリケーション１０８からｉ番目の製品タグを参照したいという指示を受け、部分文書管理部１０３を介し、部分文書保持部１０５は、ｉ番目に既に抽出された部分文書（製品タグの開始から終了までの文書）が格納されているか，あるいは格納されていなくて「null」が入っているかを判断する。
【００６７】
Ｓ203：「null」の場合は，部分文書保持部１０３からの応答に応じて、部分文書管理部１０３が、位置保持部１０４のｉ番目の製品タグの位置情報を取出し、抽出部１０２に送り、抽出部１０２は、構造化文書保持部１０１から指定された位置情報の部分文書を抽出し、部分文書管理部１０３を介しユーザアプリケーション１０８に、部分文書を返す。この時、抽出部１０２は、抽出された部分文書を部分文書保持部１０５の指定位置に格納する。
【００６８】
Ｓ204：「null」でない場合は，部分文書保持部１０５は、そこに格納されている部分文書を、部分文書管理部１０３を介しユーザアプリケーションに返す。
【００６９】
このように、構造化文書のなかで必要な要素，属性又は要素内容（枝）のみを抽出，管理するので、構造化文書処理時のＣＰＵ負荷およびメモリ使用量を削減できる。例えば，データが多量に存在する場合は，初めに検索処理を行って絞込むが，絞り込み結果は全体の一部なので，全データの木構造を生成する必要はない。このようにしてＣＰＵ負荷を削減できる。
【００７０】
又，位置情報を取出すことで、部分文書抽出のＣＰＵ負荷とメモリ使用量を削減できる。即ち、位置情報を取出しておけば，２回目以降はその位置情報をもとに、部分文書を高速に抽出できる。又、通常のＤＯＭなどは木構造状に展開するために，内部的に要素，属性，要素内容を分解して保持しておくため，もとのＸＭＬ文書に戻すには，分解したものをマージする処理が必要となる。しかし，本発明では，部分文書を出力する際には元の構造化文書の一部を抽出するだけなので，マージ処理が存在しないため高速に抽出することが可能となる。更に、位置情報は、単なる数値データなので，木構造より少ないメモリ量ですむ。
【００７１】
更に、部分文書保持部１０５を設けたので、部分文書の抽出，編集のＣＰＵ負荷を削減できる。ユーザアプリケーション側から抽出，編集の要求があるたびに，構造化文書保持部１０１にて保持されている構造化文書を参照して抽出，編集することは、ＣＰＵ負荷が高い。
【００７２】
そこで，一旦抽出した部分文書は部分文書保持部１０５にて，保持しておく。また，図１０にて後述するように、ユーザアプリケーションから編集の要求があった場合は、ここで保持されている部分文書とユーザアプリケーションから渡される編集された部分文書を置き換える。そして編集結果を元の構造化文書に反映させる場合には，この部分文書を構造化文書に当てはめる。
【００７３】
更に、ユーザアプリケーションでは，構造化文書の一部の構造化文書（要素）ではなく，部分文書(要素の内容である要素内容や，要素の属性)のみが必要な場合がある。例えば、ユーザアプリケーションが要素内容をもとに検索を行う場合は，タグが付いているのは却って無駄なので，要素よりは要素内容だけを抽出した方がよい。
【００７４】
これを実現するために，特定タグの開始タグの先端，終端，終了タグの先端，終端，特定タグの属性の位置情報を取得しておくことで，部分文書として要素内容や要素の属性を抽出する。これにより、ユーザアプリケーションでのＣＰＵ負荷を軽減できる。
【００７５】
次に、図５のシステムの編集処理を、図１０の編集処理フロー図に従い、説明する。
【００７６】
Ｓ301：編集前処理として、ステップＳ２０１と同様に、部分文書管理部１０３が、構造化文書保持部１００から構造化文書１０１中の製品タグの位置情報を取出し，位置保持部１０４へ位置情報を格納する。
【００７７】
Ｓ302：部分文書管理部１０３は、ユーザアプリケーション１０８から渡された編集後の部分文書１０９（図５参照）を、部分文書保持部１０５に格納する。これにより、編集処理を終了し、次の保存処理に移行する。
【００７８】
Ｓ303：部分文書保持部１０５は、ｉ番目の部分文書が編集されたかどうかを判断する。
【００７９】
Ｓ304：編集されたと判断した場合、部分文書保持部１０５は、部分文書保持部１０５にある編集された部分文書を、構造化文書保持部１００に作成された更新が反映された構造化文書１１１に反映する。即ち、構造化文書１１１の更新個所に、編集された部分文書を上書きする。
【００８０】
S305：部分文書保持部１０５で編集されていないと判断した場合は、コピー部１１２が、編集がある部分まで、構造化文書保持部１００のもとの構造化文書１０１をそのままコピーし、更新された構造化文書１１１へ反映（コピー）する。
【００８１】
Ｓ３０６：Ｓ３０３以下を、部分文書（製品タグ）数分繰り返し、終了する。
【００８２】
このようにして、部分文書（製品タグ）の編集結果を、元の構造化文書に反映させる際のＣＰＵ負荷を削減できる。即ち、部分文書の中には、抽出しただけで編集しなかったものも存在する。その場合は、編集しなかった部分文書をも、自動的に元の構造化文書に反映させるのは、ＣＰＵ負荷が大きい。編集した部分文書のみを，元の構造化文書に当てはめるようにして、ＣＰＵ負荷を軽減する。
【００８３】
［第２の実施の形態］
次に、本発明の第２の実施の形態を説明する。図１１は、本発明の第２の実施の形態のシステム構成図、図１２は、その編集処理フロー図、図１３は、図１２の編集後の保存処理フロー図である。
【００８４】
図１１のシステムは、処理モジュール1（１−１）に存在する構造化文書保持部1００が、製品情報を表わすＸＭＬ文書１０１を，構造化文書保持部２００へ送信し，処理モジュール２（１−２）で，このＸＭＬ文書の一部を，ユーザアプリケーション１０８が参照、編集する例を示す。
【００８５】
図１１に示すように、ＸＭＬ文書１０１には、多数の製品データ(製品タグ)が存在し、製品タグの一部を部分文書として、ＸＭＬ文書から抽出，参照する。処理モジュール１−１は、構造化文書保持部１０１に、構造化文書１０１と、製品タグ位置を保持する。
【００８６】
また、処理モジュール１−２の構造化文書保持部２００、抽出部１０２，部分文書管理部１０３，部分文書保持部１０５，コピー部１１２は、図５の実施の形態と同一のものである。
【００８７】
部分文書管理部１０５は、処理モジュール1−１から製品タグ位置１０２を受け取り、位置保持部１０４に保持する。処理モジュール１−１の構造化文書保持部１００は、構造化文書１０１を処理モジュール１−２全般で使用されている文字エンコーディングに変換してから、処理モジュール１−２の構造化文書保持部２００に渡す。
【００８８】
位置保持部１０４は，位置情報を保持するが、この位置情報は、先頭から何文字目かが記載されている（図３参照）。図６と同様に、１つの要素あるいは要素内容を抽出する場合、位置情報として開始タグの先端、終端と、終了タグの先端と終端の計４つの位置である。この位置を表わすのに必要なbyte数は、第1の実施の形態と同様に４byteで問題ない。
【００８９】
次に、図１１のシステムの編集処理を、図１２の編集処理フロー図により、説明する。
【００９０】
Ｓ４０１：処理モジュール１−２は、処理モジュール１−１から送られてきた，処理モジュール１−２で使用されているエンコーディングに変換された構造化文書１０１と製品タグ位置１２０を、構造化文書保持部２００および部分文書管理部１０３に格納する。次回以降は、これを位置情報として使用すればよいので，第１の実施の形態の図９のＳ301の取出し処理が不要となる。
【００９１】
Ｓ４０２：ユーザアプリケーション１０８から渡された編集後の部分文書１０９を、部分文書保持部１０５に格納する。
【００９２】
次に、図１１のシステムの保存処理を、図１３の保存処理フロー図により、説明する。
【００９３】
Ｓ５０１：部分文書保持部１０５は、ｉ番目の部分文書が編集されたかどうかを判断する。
【００９４】
Ｓ５０２：編集されたと判断した場合、部分文書保持部１０５は、部分文書保持部１０５にある編集された部分文書を、構造化文書保持部２００に作成された更新が反映された構造化文書１１１に反映する。即ち、構造化文書１１１の更新個所に、編集された部分文書を上書きする。
【００９５】
Ｓ５０３：部分文書保持部１０５で編集されていないと判断した場合は、コピー部１１２が、編集がある部分まで、構造化文書保持部２００のもとの構造化文書１０１−１をそのままコピーし、更新された構造化文書１１１へ反映（コピー）する。
【００９６】
Ｓ５０４：Ｓ５０１以下を、部分文書（製品タグ）数分繰り返す。
【００９７】
Ｓ５０５：位置保持部１０４の製品タグ位置情報を，構造化文書保持部２００に、１２２として、保存する。従って、次回以降は、これを位置情報として使用すればよいので取出し処理が不要となる。
【００９８】
この実施の形態では、編集があった部分文書を構造化文書保持部２００に格納する際に、位置保持部１０４で保持されている特定のタグあるいは属性の位置情報も、構造化文書保持部２００に格納する。そして，再び格納した構造化文書１０１−１、１１１を処理，変換する際には，この位置情報１２２を使用することで，位置情報の取得処理を行う必要がない。
【００９９】
又、特定のタグあるいは属性の位置情報の取得には、文字列検索が必要となるので，ＣＰＵ負荷が高いため、よって，二回目以降あるいは事前に位置情報を取得して保持しておけば，実際に構造化文書への処理および変換が必要な場合に，このＣＰＵ負荷をキャンセルできる。
【０１００】
更に、この実施の形態では、構造化文書保持部１００上のアドレスにおいて、構造化文書の先頭を起点として数えて何番目のアドレスであるかを示した位置情報を使用する。例えば、先頭からの何byte目であるかを位置情報に使用する。
【０１０１】
同様に、構造化文書の先頭を起点として、数えて何文字目かを示した位置情報を使用しても良い。構造化文書が日本語である場合は，その構造化文書の文字エンコードによっては、２byteで日本語一文字を表わす場合がある。文字エンコードは，実際にはシステム毎に異なるものを使用している場合があるので，システム間で構造化文書および位置情報をやり取りする場合には何文字目からが特定タグあるいは属性であるか，ということが分かっていると良い場合がある。
【０１０２】
［第３の実施の形態］
次に、本発明の第３の実施の形態として、製品情報を表わすＸＭＬ文書に対して，型名による検索を行い，製品情報を検索結果として，Ｗｅｂブラウザ上に表示するユーザアプリケーションをとして示す。
【０１０３】
図１４は、本発明の第３の実施の形態のシステム構成図、図１５は、その検索処理フロー図である。
【０１０４】
この例では、検索結果として、製品タグと親子関係にある型名タグ，品名タグのデータを表示する。図１４に示すように、処理モジュール１と変換モジュール２が設けられる。処理モジュール１は、部分文書を抽出し，変換モジュール２は、抽出した部分文書とＨＴＭＬ変換用テンプレート２０を元にＨＴＭＬ変換を行う。
【０１０５】
又、構造化文書保持部１００，抽出部１０２，部分文書管理部１０３，部分文書保持部１０５，位置保持部１０４は、図５で説明したものと同一のものである。処理部１３０は、部分文書保持部１０５に格納されている製品タグ中の型名タグ，品名タグの位置情報を取得し，それをもとに型名データ，品名データ（要素内容）を取得する。
【０１０６】
変換モジュール２は、変換部４０８と、テンプレート保持部４１０とを有する。テンプレート保持部４１０は、ＨＴＭＬのテーブル定義の先頭（＜ＨＴＭＬ＞，＜ｔａｂｌｅ＞）と、終端（＜ＨＴＭＬ＞，＜／ｔａｂｌｅ＞）と、テーブル内容（＜ｔｒ＞〜＜／ｔｒ＞）を、テンプレートとして、保持するメモリである。
【０１０７】
変換部４０８は、ヒットした品名データと型名データをテンプレート保持部４１０で格納しているテンプレートに当てはめる処理を行う。処理部１３０、変換部４０８も、ＣＰＵの機能モジュールである。
【０１０８】
次に、図１４のシステムの検索処理を、図１５の検索処理フロー図により、説明する。
【０１０９】
Ｓ６０１：検索前処理として、部分文書管理部１０３は、構造化文書保持部１００から構造化文書１０１中の製品タグの位置情報を取出し、位置保持部１０４へ位置情報を格納する。即ち、図６乃至図８で説明したように、製品タグの位置情報として、要素の開始、終了タグの位置を取出し、図８のように、テーブル構成の位置保持部１０４に格納する。
【０１１０】
このＸＭＬ文書１０１全体の製品タグを対象として、予め取出し、保持する他に、ユーザの指定により、型名要素、品名要素、属性値のいずれか１つ又は２つを対象とすることもできる。
【０１１１】
Ｓ６０２：抽出部１０２は、この位置保持部１０４の位置情報（製品タグ位置）を元に、構造化文書１０１から製品タグを抽出し，部分文書保持部１０５に格納する。
【０１１２】
Ｓ６０３：処理部１３０は、位置保持部１０４から部分文書保持部１０５に格納されている製品タグ中の型名タグ、品名タグの位置情報を取得し，それをもとに型名データ，品名データを取得する。即ち、タグを除いた検索対象データ、ＨＴＭＬデータを抽出する。
【０１１３】
Ｓ６０４：ユーザアプリケーション１０８からの検索キーを取得し，処理部１３０が、検索対象データと検索キーとを照合する。
【０１１４】
Ｓ６０５：照合の結果、ヒットした場合は、変換部４０８が、品名データと型名データを、テンプレート保持部４１０で格納しているテンプレート２０に当てはめる。これを、ユーザアプリケーション１０８にＨＴＭＬ文書として、送信する。
【０１１５】
このようにして、段階的に細かく部分文書を取得する。多くの場合、データは集められて1つのレコードを成し，このレコードが複数存在している形をとる。このような場合は，はじめに各レコードを部分文書として、その位置情報を取得しておき，次に細かく内部のデータを見たい場合は，各レコード(部分文書)内部の特定タグの位置情報を取得して，データを抽出する。
【０１１６】
又、他の構造化文書（ここでは、ＨＴＭＬ文書）への変換にかかるＣＰＵ負荷を削減できる。即ち、前述したようにＸＬＳＴは、与えられた木構造を解析・理解しつつ、必要な要素内容を取得する。このため，木構造の一部の柔軟な指定が可能である。しかし、その分ＣＰＵ負荷がかかるため，ＣＰＵの計算速度が遅いモバイル機器などでHTML変換を行うには、時間がかかり、現実的に困難である。
【０１１７】
そこで、抽出部、処理部で要素内容を抽出し，これを予め用意しておいたＨＴＭＬ変換用テンプレート２０に当てはめる。これにより，ＸＬＳＴを使用することなく，ＨＴＭＬ変換が可能となり、ＣＰＵ負荷が低くなる。
【０１１８】
［他の実施の形態］
前述の実施の形態では、構造化文書を、XML文書で説明したが、SGML,  HTML等の他の形式の構造化文書に適用できる。同様に、変換される構造化文書も、HTMLに限らず、他の形式のものを利用できる。
【０１１９】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【０１２０】
（付記１）構造化文書保持部に保持された構造化文書を処理する構造化文書処理方法において、構造化文書中の木の位置情報を位置情報保持部に保持するステップと、指示された前記構造化文書の部分文書を、前記保持した木の位置情報を使用して、抽出するステップとを有することを特徴とする構造化文書処理方法。
【０１２１】
（付記２）前記抽出した部分文書を部分文書保持部に保持するステップと、抽出する部分文書が前記部分文書保持部に保持されているかを判定するステップと、前記抽出する部分文書が前記部分文書保持部に保持されている時は、前記部分文書保持部から前記部分文書を抽出し、前記抽出する部分文書が前記部分文書保持部に保持されていない時は、前記木の位置情報を使用して、前記構造化文書から前記部分文書を抽出するステップとを更に有することを特徴とする付記１の構造化文書処理方法。
【０１２２】
（付記３）前記部分文書保持部に、前記構造化文書中の編集された部分文書を保持するステップを更に有することを特徴とする付記２の構造化文書処理方法。
【０１２３】
（付記４）前記構造化文書保持部の前記構造化文書の編集が無かった部分をコピーし、前記部分文書保持部の編集された部分文書と合わせて、変更後の部分文書を生成するステップを更に有することを特徴とする付記３の構造化文書処理方法。
【０１２４】
（付記５）前記部分文書保持部に保持された部分文書から、前記位置保持部の位置情報を使用して、前記部分文書の内部データを抽出するステップを更に有することを特徴とする付記２の構造化文書処理方法。
【０１２５】
（付記６）文書化構造変換用テンプレートに、前記抽出した部分文書を当てはめ、構造化文書の変換を行うステップを更に有することを特徴とする付記１の構造化文書処理方法。
【０１２６】
（付記７）前記抽出ステップは、前記位置保持部の位置情報に従い、特定のタグで囲われた領域、タグの属性、開始タグの終端と終了タグの先端に挟まれた領域の少なくとも１つを、前記部分文書として、抽出するステップからなることを特徴とする付記１の構造化文書処理方法。
【０１２７】
（付記８）前記編集された部分文書と、前記位置保持部で保持された位置情報とを、前記構造化文書保持部に保存するステップを更に有することを特徴とする付記３の構造化文書処理方法。
【０１２８】
（付記９）構造化文書保持部に保持された構造化文書を処理する構造化文書処理システムにおいて、前記構造化文書保持部の構造化文書中の木の位置情報を保持する位置情報保持部と、指示された前記構造化文書の部分文書を、前記保持した木の位置情報を使用して、抽出する処理部とを有することを特徴とする構造化文書処理システム。
【０１２９】
（付記１０）前記抽出した部分文書を保持する部分文書保持部を更に有し、前記処理部は、抽出する部分文書が前記部分文書保持部に保持されているかを判定し、前記抽出する部分文書が前記部分文書保持部に保持されている時は、前記部分文書保持部から前記部分文書を抽出し、前記抽出する部分文書が前記部分文書保持部に保持されていない時は、前記木の位置情報を使用して、前記構造化文書から前記部分文書を抽出することを特徴とする付記９の構造化文書処理システム。
【０１３０】
（付記１１）前記処理部は、前記部分文書保持部に、前記構造化文書中の編集された部分文書を保持することを特徴とする付記１０の構造化文書処理システム。
【０１３１】
（付記１２）前記処理部は、前記構造化文書保持部の前記構造化文書の編集が無かった部分をコピーし、前記部分文書保持部の編集された部分文書と合わせて、変更後の部分文書を生成することを特徴とする付記１１の構造化文書処理システム。
【０１３２】
（付記１３）前記処理部は、前記部分文書保持部に保持された部分文書から、前記位置保持部の位置情報を使用して、前記部分文書の内部データを抽出することを特徴とする付記１０の構造化文書処理システム。
【０１３３】
（付記１４）前記処理部は、文書化構造変換用テンプレートに、前記抽出した部分文書を当てはめ、構造化文書の変換を行うことを特徴とする付記９の構造化文書処理システム。
【０１３４】
（付記１５）前記処理部は、前記位置保持部の位置情報に従い、特定のタグで囲われた領域、タグの属性、開始タグの終端と終了タグの先端に挟まれた領域の少なくとも１つを、前記部分文書として、抽出することを特徴とする付記９の構造化文書処理システム。
【０１３５】
（付記１６）前記処理部は、前記編集された部分文書と、前記位置保持部で保持された位置情報とを、前記構造化文書保持部に保存することを特徴とする付記１１の構造化文書処理システム。
【０１３６】
（付記１７）構造化文書保持部に保持された構造化文書を処理するプログラムであって、構造化文書中の木の位置情報を位置情報保持部に保持するステップと、指示された前記構造化文書の部分文書を、前記保持した木の位置情報を使用して、抽出するステップとをコンピュータに実行させることを特徴とするコンピュータ読み取り可能なプログラム。
【０１３７】
（付記１８）前記抽出した部分文書を部分文書保持部に保持するステップと、抽出する部分文書が前記部分文書保持部に保持されているかを判定するステップと、前記抽出する部分文書が前記部分文書保持部に保持されている時は、前記部分文書保持部から前記部分文書を抽出し、前記抽出する部分文書が前記部分文書保持部に保持されていない時は、前記木の位置情報を使用して、前記構造化文書から前記部分文書を抽出するステップとを更にコンピュータに実行させることを特徴とする付記１７のプログラム。
【０１３８】
（付記１９）前記部分文書保持部に、前記構造化文書中の編集された部分文書を保持するステップを更にコンピュータに実行させることを特徴とする付記１８のプログラム。
【０１３９】
（付記２０）前記構造化文書保持部の前記構造化文書の編集が無かった部分をコピーし、前記部分文書保持部の編集された部分文書と合わせて、変更後の部分文書を生成するステップを更にコンピュータに実行させることを特徴とする付記１９のプログラム。
【０１４０】
（付記２１）前記部分文書保持部に保持された部分文書から、前記位置保持部の位置情報を使用して、前記部分文書の内部データを抽出するステップを更にコンピュータに実行させることを特徴とする付記１８のプログラム。
【０１４１】
（付記２２）文書化構造変換用テンプレートに、前記抽出した部分文書を当てはめ、構造化文書の変換を行うステップを更にコンピュータに実行させることを特徴とする付記１７のプログラム。
【０１４２】
（付記２３）前記抽出ステップとして、前記位置保持部の位置情報に従い、特定のタグで囲われた領域、タグの属性、開始タグの終端と終了タグの先端に挟まれた領域の少なくとも１つを、前記部分文書として、抽出するステップをコンピュータに実行させることを特徴とする付記１７のプログラム。
【０１４３】
（付記２４）前記編集された部分文書と、前記位置保持部で保持された位置情報とを、前記構造化文書保持部に保存するステップを更にコンピュータに実行させることを特徴とする付記１９のプログラム。
【産業上の利用可能性】
【０１４４】
構造化文書中の枝である特定タグの位置情報を事前に取出しておき，これをもとに構造化文書から要素，属性，要素内容という部分文書を抽出し、オリジナルの構造化文書から一部を抽出するだけなので，従来の木構造として取得する方法と比較して、ＣＰＵ負荷を低減でき、メモリ使用量も少なくできる。
【０１４５】
又、抽出したものと文書変換用テンプレートに直接当てはめて、他の構造化文書生成する。直接当てはめにより、ＸＬＳＴ変換が不要となり，更にＣＰＵ負荷が低くなる。このため、処理能力の低い機器でも、構造化文書の処理が、高速に実行できる。
【図面の簡単な説明】
【０１４６】
【図１】本発明の一実施の形態の構造化文書処理システムの全体構成図である。
【図２】図１の構造化文書の説明図である。
【図３】図１の位置情報の説明図である。
【図４】図１の構成の抽出動作の説明図である。
【図５】本発明の第１の実施の形態の構造化文書処理システムの構成図である。
【図６】図５の位置情報の第１の実施の形態の説明図である。
【図７】図５の位置情報の第２の実施の形態の説明図である。
【図８】図５の位置保持部の構成図である。
【図９】図５の参照処理フロー図である。
【図１０】図５の編集処理フロー図である。
【図１１】本発明の第２の実施の形態の構造化文書処理システムの構成図である。
【図１２】図１１の編集処理フロー図である。
【図１３】図１１の保存処理フロー図である。
【図１４】本発明の第３の実施の形態の構造化文書処理システムの構成図である。
【図１５】図１４の検索処理フロー図である。
【図１６】従来の構造化文書処理のＤＯＭの説明図である。
【図１７】従来の構造化文書処理の説明図である。
【符号の説明】
【０１４７】
１  サーバ（処理モジュール）
２  変換モジュール
３  クライアント
１０，１０１，１１１  構造化文書
１２，１０４  位置保持部
２０  変換テンプレート
１００  構造化文書保持部
１０２  抽出部
１０３  部分文書管理部
１０５  部分文書保持部
１０８  ユーザアプリケーション
１１２  コピー部
１３０  処理部
４０８  変換部
４１０  テンプレート保持部
【図１】
2005234837.tif 000003
【図２】
2005234837.tif 000004
【図３】
2005234837.tif 000005
【図４】
2005234837.tif 000006
【図５】
2005234837.tif 000007
【図６】
2005234837.tif 000008
【図７】
2005234837.tif 000009
【図８】
2005234837.tif 000010
【図９】
2005234837.tif 000011
【図１０】
2005234837.tif 000012
【図１１】
2005234837.tif 000013
【図１２】
2005234837.tif 000014
【図１３】
2005234837.tif 000015
【図１４】
2005234837.tif 000016
【図１５】
2005234837.tif 000017
【図１６】
2005234837.tif 000018
【図１７】
2005234837.tif 000019