(57)【特許請求の範囲】
【請求項１】
コンピュータによる、コンピュータ読み取り可能な一体の記録媒体に記録される、階層構造を有する電子データと、前記電子データを複数のブロックに区切って該ブロックごとに処理するための情報を記録したブロック補助データとを含む構造化データを処理するデータ処理方法であって、
前記ブロック補助データは、ブロックごとに、該ブロックの電子データ上での位置を記録した格納位置情報と、該ブロックの先頭位置で閉じられていない制御コードからなる先頭位置制御コードと、該ブロックの終端位置で閉じられていない制御コードからなる終端位置制御コードとを記録し、
前記コンピュータは、入力手段と、解析手段と、処理手段と、表示手段と、制御手段とを含み、
前記制御手段が、前記ブロック補助データに記録されている前記格納位置情報を用いて、前記電子データのうちから処理対象のブロックを特定するステップと、
前記入力手段が、前記ブロック補助データに記録されている前記格納位置情報を参照して、前記電子データから特定された前記処理対象のブロックを読込むステップと、
前記解析手段が、前記読込まれたブロックのブロック補助データに記録されている先頭位置制御コードと、前記読込まれたブロックと、前記読込まれたブロックのブロック補助データに記録されている終端位置制御コードとをこの順に連結し、前記電子データの階層構造を解析するステップと、
前記処理手段が、前記解析された結果を用いて、前記読込んだブロックの表示レイアウトを計算し、前記表示手段で表示するための処理をする表示ステップとを備える、データ処理方法。
【請求項２】
前記コンピュータは生成手段をさらに含み、
前記電子データに対するブロック補助データが存在しない場合、前記電子データの処理をする前に、前記生成手段が前記電子データに対するブロック補助データを作成するステップをさらに備えることを特徴とする、請求項１に記載のデータ処理方法。
【請求項３】
前記複数に区切られた電子データのブロックは、ほぼ等しい大きさであることを特徴とする、請求項１に記載のデータ処理方法。
【請求項４】
前記電子データに、前記電子データ内の任意の位置にジャンプするリンク機能が含まれる場合、前記ブロック補助データは、前記電子データに含まれるすべての前記リンク先の位置情報を含むことを特徴とする、請求項１に記載のデータ処理方法。
【請求項５】
前記表示ステップで、処理手段は、前記表示手段の表示領域に応じた表示レイアウトを計算し、
読込んだ第１のブロックについて計算された表示レイアウトが表示手段の表示領域の終端に達していない場合、前記入力手段が、前記ブロック補助データに記録されている前記格納位置情報を参照して、前記電子データから前記第１のブロックの次の第２のブロックを読込むステップと、
前記処理手段が、前記解析された結果を用いて、前記第１のブロックの表示レイアウトの続きから、前記第２のブロックの表示レイアウトを計算し、前記表示手段で、前記第１のブロックの表示に続けて前記第２のブロックを表示するための処理をする表示ステップとをさらに備える、請求項１に記載のデータ処理方法。
【請求項６】
前記コンピュータは指示手段を含み、
前記指示手段で、前記電子データのうち、現在表示手段に表示されているページを次ページまたは前ページに変更する指示を受付けた場合であって、変更後の表示データが読込んだ第１のブロックの次の第２のブロック内に含まれる場合、前記入力手段が、前記ブロック補助データに記録されている前記格納位置情報を参照して、前記電子データから前記第２のブロックを読込むステップと、
前記処理手段が、前記解析された結果を用いて、前記第１のブロックの表示レイアウトの続きから、前記第２のブロックの表示レイアウトを計算し、前記表示手段で、前記第１のブロックの表示に続けて前記第２のブロックを表示するための処理をする表示ステップとをさらに備える、請求項１に記載のデータ処理方法。
【請求項７】
コンピュータによる、コンピュータ読み取り可能な一体の記録媒体に記録される、階層構造を有する電子データを複数のブロックに区切って該ブロックごとに表示するための処理を実行させるための構造化データを生成するためのデータ処理方法であって、
前記コンピュータは、指示手段と、入力手段と、解析手段と、生成手段と、処理手段と、表示手段と、制御手段とを含み、
前記指示手段が電子データを指定するステップと、
前記入力手段が、前記電子データを入力するステップと、
前記生成手段が、前記電子データを所定のブロックサイズに区切る際の、各ブロック境界における境界候補を、改行を指示する制御コードの前後から抽出する抽出ステップと、
前記生成手段が、前記抽出された境界候補に基づいて、前記ブロックを区切る位置を決定する決定ステップと、
前記生成手段が、前記電子データから、前記決定された各ブロックについて、先頭位置で閉じられていない制御コードからなる先頭位置制御コードと、終了位置で閉じられていない制御コードからなる終端位置制御コードとを取得する取得ステップと、
前記生成手段が、前記決定ステップで決定された各ブロックについての前記区切る位置を示す位置情報と、前記取得ステップで取得された各ブロックについての前記先頭位置制御コードおよび前記終端位置制御コードとを含むブロック補助データを生成し、前記ブロック補助データを前記電子データに追加して前記構造化データを生成する生成ステップとを備える、データ処理方法。
【請求項８】
前記抽出ステップで前記生成手段は、前記電子データの構造を記録している制御コードの前後とその付近とから前記境界候補を抽出することを特徴とする、請求項７に記載のデータ処理方法。
【請求項９】
前記ブロックサイズは、前記電子データを処理する装置の処理能力と、前記装置の画面に表示される文字数と、前記表示される文字数を決定する要因との少なくとも１つに応じて決められることを特徴とする、請求項７に記載のデータ処理方法。
【請求項１０】
コンピュータ読み取り可能な一体の記録媒体に記録される、階層構造を有する電子データと、前記電子データを複数のブロックに区切って該ブロックごとに処理するための情報を記録したブロック補助データとを対として備える構造化データに対して、所定の文書記述言語の定義に従って表示するための処理を実行させるためのデータ処理プログラムであって、
前記ブロック補助データは、ブロックごとに、該ブロックの電子データ上での位置を記録した格納位置情報と、該ブロックの先頭位置で閉じられていない制御コードからなる先頭位置制御コードと、該ブロックの終端位置で閉じられていない制御コードからなる終端位置制御コードとを記録し、
前記ブロック補助データに記録されている前記格納位置情報に基づいて、前記電子データのブロックデータを読込む読込みステップと、
前記読込まれたブロックのブロック補助データに記録されている先頭位置制御コードと、前記読込まれたブロックデータと、前記ブロック補助データに記録されている終端位置制御コードとをこの順に連結し、前記ブロックデータに含まれる階層構造を解析する解析ステップと、
前記解析結果と、前記文書記述言語の定義とに基づいて、前記ブロックデータの表示レイアウトを計算し、前記表示手段で表示するための処理を実行させる実行ステップとを前記コンピュータに実行させる、データ処理プログラム。
【請求項１１】
コンピュータ読み取り可能な一体の記録媒体に記録される、階層構造を有する電子データを複数のブロックに区切って該ブロックごとに表示するための処理を実行させるための構造化データを生成するためのデータ処理プログラムであって、
前記電子データを所定のブロックサイズに区切る際の、各ブロック境界における境界候補を、改行を指示する制御コードの前後から抽出する抽出ステップと、
前記抽出された境界候補に基づいて、前記ブロックを区切る位置を決定する決定ステップと、
前記電子データから、前記決定された各ブロックについて、先頭位置で閉じられていない制御コードからなる先頭位置制御コードと、終了位置で閉じられていない制御コードからなる終端位置制御コードとを取得する取得ステップと、
前記決定ステップで決定された各ブロックについての前記区切る位置を示す位置情報と、前記取得ステップで取得された各ブロックについての前記先頭位置制御コードおよび前記終端位置制御コードとを含むブロック補助データを生成し、前記ブロック補助データを前記電子データに追加して前記構造化データを生成する生成ステップとをコンピュータに実行させる、データ処理プログラム。
【請求項１２】
当該装置で読み取り可能な一体の記録媒体に記録される、階層構造を有する電子データを処理するデータ処理装置であって、
前記電子データには、前記電子データを複数のブロックに区切って該ブロックごとに処理するための、ブロックごとに、該ブロックの電子データ上での位置を記録した格納位置情報と、該ブロックの先頭位置で閉じられていない制御コードからなる先頭位置制御コードと、該ブロックの終端位置で閉じられていない制御コードからなる終端位置制御コードとを記録したブロック補助データが付随し、
前記電子データのうち、処理をしたいデータが含まれるブロックと、前記ブロック補助データとを読込む入力部と、
前記ブロック補助データに記録されている先頭位置制御コードと、前記読込んだブロックと、前記ブロック補助データに記録されている終端位置制御コードとをこの順に連結し、前記読込んだ前記ブロックの階層構造を解析するデータ構造解析部と、
前記データ構造解析部の結果を用いて、前記読込んだブロックの表示レイアウトを計算し、表示装置で表示するための処理をする処理部とを備える、データ処理装置。
【請求項１３】
携帯型の端末であることを特徴とする、請求項１２に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理方法、データ処理プログラム、データ処理装置、構造化データ、構造化データを記録したコンピュータ読取可能な記録媒体、および送信装置に関し、特に、階層構造を有する電子データを処理することのできるデータ処理方法、データ処理プログラム、データ処理装置、構造化データ、構造化データを記録したコンピュータ読取可能な記録媒体、および送信装置に関する。
【０００２】
【従来の技術】
文書記述言語の定義に従って所定の処理を実行させるための構造化された電子データであって、階層構造を有する構造化文書を記録するためのデータ形式として、SGML（Standard Generalized Markup Language：準一般化マーク付け言語）やXML（Extensible Markup Language）などが知られている。特にXMLは、インターネットで交換する電子文書や電子データなどで近年盛んに使用されている。
【０００３】
XML形式の電子データを扱う処理方法として、DOM（Document Object Model）形式とSAX（Simple API for XML）形式とが存在する。
【０００４】
DOM形式とは、対象とする電子データを全て読込み、電子データ内の全要素の階層構造を把握してから、電子データの各要素にアクセスする処理方法である。例えば、図１６のような階層構造をもつ電子データがある場合、いったん電子データ全体を読込み、全要素の階層構造を解析する。図１６は、電子データの階層構造のみを示し、本文、内容は省略している。そして、図１６の階層構造をもつ電子データから、図１７のような木構造（ツリー構造）を作成した後、各要素（TITLE、AUTHORなど）にアクセスする。よって、DOM形式の電子データの処理方法は、電子データの階層構造を把握した後に処理することになるため、任意の要素にアクセスしやすいという特徴がある。
【０００５】
これに対し、SAX形式は、電子データを先頭から順に読込みながら、読込んだ要素のみ構造解析し、処理していく形式の処理方法である。そのため、電子データ全体の解析処理を待たずに、順次処理していくことができ、処理速度としても、メモリの容量としても、オーバーヘッドが少ないというメリットがある。
【０００６】
【発明が解決しようとする課題】
以上のように、DOM形式およびSAX形式ともにそれぞれのメリットがあるが、反面、次のようなデメリットがそれぞれにある。
【０００７】
すなわち、DOM形式の場合、電子データ内の一部のデータだけを処理したい場合であっても、木構造を生成するために、電子データ全体の構造解析をしなくてはならず、処理に無駄が生じる。また、電子データのサイズが大きくなると、木構造を作成するための処理時間、および木構造を記憶しておくためのメモリ使用量が大きくなるという欠点があった。
【０００８】
一方SAX形式の場合、電子データの先頭から順に処理することを前提にしたアクセス形式であるため、電子データの内容を先頭から順に処理せず、任意の要素を任意の順番に扱う場合には、無駄な読込処理、および構造解析処理が入るという欠点が存在する。また、電子データの後半の要素を処理した時であっても、電子データの先頭から読込み、構造解析をしないといけないため、処理時間として無駄が生じていた。
【０００９】
一方、DOM形式やSAX形式ではなく、取出したい要素のみを、階層構造を解析することなく取出す処理方法もある。しかしながら、取出したい領域が、どの要素の下に含まれるかによって、その要素の意味が変わったり、表示する位置やサイズ、属性などが変わったりしてしまう場合があるため、この方法では取出した要素に対して適切な処理ができない。例えば、図１８のような、階層構造をもつXHTML（Extensible HyperText Markup Language）文書の例を考える。図１８において、領域７１の先頭部分は、<html>、<body bgcolor="yellow">、<p>に挟まれている。このうち、<body bgcolor="yellow">は、このタグで挟まれた領域が本文データであることを示すと共に、本文の背景を黄色にすることを意味しており、このタグがあるかないかにより、本文の背景が黄色になるか、白色（省略時のデフォルト値）になるか変わってしまう。したがって、領域７１だけをファイルから読込んで表示処理を行なおうとしても、本文の背景が黄色であることを知ることができず、正しい表示処理ができない。
【００１０】
このように、一般に、階層構造をもつ電子データに対しては、処理したい領域のみを読込んで処理しようとしても、処理する領域以外に書かれた制御情報（タグや属性等）を知ることができないため、正しく処理できないという問題があった。
【００１１】
そこで、本発明は、このような問題を解決することのできるデータ処理方法、データ処理プログラム、データ処理装置、構造化データ、構造化データを記録したコンピュータ読取可能な記録媒体、および送信装置を提供することを目的としている。
【００１２】
【課題を解決するための手段】
本発明においては、上述の課題を解決するために、以下に示されるデータ処理方法、データ処理プログラム、データ処理装置、構造化データ、構造化データを記録したコンピュータ読取可能な記録媒体、および送信装置が提供される。
【００１３】
（１）階層構造を有する電子データと、電子データを複数のブロックに分割して処理するためのブロック補助データとを含む構造化データを処理するデータ処理方法であって、電子データから所望の電子データが含まれるブロックを読込むステップと、読込まれたブロックのブロック補助データを用いて所望の電子データの階層構造を解析するステップと、解析された結果を用いて所定の処理をするステップとを備える、データ処理方法。
【００１４】
（２）（１）に記載されたデータ処理方法であって、電子データは表示用の文書データであり、所定の処理は、読込んだブロックの表示レイアウトを計算し表示する処理であることを特徴とする、データ処理方法。
【００１５】
（３）（１）に記載されたデータ処理方法であって、電子データに対するブロック補助データが存在しない場合、電子データの処理をする前に、電子データに対するブロック補助データを作成するステップをさらに備えることを特徴とする、データ処理方法。
【００１６】
（４）（１）に記載されたデータ処理方法であって、複数に分割された電子データのブロックは、ほぼ等しい大きさであることを特徴とする、データ処理方法。
【００１７】
（５）（１）に記載されたデータ処理方法であって、ブロック補助データは、複数に分割された電子データの各ブロックの位置情報と、ブロックの開始位置と終了位置とにおける階層情報とを含むことを特徴とする、データ処理方法。
【００１８】
（６）（１）に記載されたデータ処理方法であって、電子データに、電子データ内の任意の位置にジャンプするリンク機能が含まれる場合、ブロック補助データは、電子データに含まれるすべてのリンク先の位置情報を含むことを特徴とする、データ処理方法。
【００１９】
（７）階層構造を有する電子データを複数のブロックに分解し、分割されたブロックごとに所定の処理を実行させるための構造化データを生成するためのデータ処理方法であって、電子データを所定のブロックサイズに分割する際の、各ブロック境界における境界候補を抽出する抽出ステップと、抽出された境界候補に基づいて、ブロックの分割位置を決定する決定ステップと、決定された各ブロックの先頭位置と終了位置とにおける階層構造の特徴を示す情報を取得する取得ステップと、決定ステップで決定された各ブロックの分割位置の位置情報と、取得された位置情報に対応する階層構造の特徴と示す情報とを含むブロック補助データを生成し、ブロック補助データを電子データに追加して構造化データを生成する生成ステップとを備える、データ処理方法。
【００２０】
（８）（７）に記載されたデータ処理方法であって、抽出ステップは、表示したときに必ず行頭から表示される箇所から境界候補を抽出することを特徴とする、データ処理方法。
【００２１】
（９）（７）に記載されたデータ処理方法であって、抽出ステップは、電子データの構造を記録している制御コードの前後とその付近とから境界候補を抽出することを特徴とする、データ処理方法。
【００２２】
（１０）（７）に記載されたデータ処理方法であって、ブロックサイズは、電子データを処理する装置の処理能力と、装置の画面に表示される文字数と、表示される文字数を決定する要因との少なくとも１つに応じて決められることを特徴とする、データ処理方法。
【００２３】
（１１）サーバより階層構造を有する電子データを受取り、電子データに対して所定の処理をするデータ処理方法において、サーバに対して所定の処理をしたい電子データ名を送信する送信ステップと、サーバより電子データを複数のブロックに分割して処理するためのブロック補助データを受信する受信ステップと、電子データのうち、所定の処理をしたい電子データを含むブロックの送信をサーバに要求し、ブロックのデータを受信する受信ステップと、受信したブロックと、ブロックのブロック補助データとを用いて、ブロックの階層構造を解析し、その結果を用いて所定の処理をする再生ステップとを備える、データ処理方法。
【００２４】
（１２）（１１）に記載されたデータ処理方法であって、サーバよりブロック補助データを受信するステップにおいて、ブロック補助データが存在しない場合には、ブロック補助データを作成した後、サーバより受信することを特徴とする、データ処理方法。
【００２５】
（１３）階層構造を有する電子データと、電子データを複数のブロックに分割して処理するためのブロック補助データとを対として備える構造化データに対して、所定の文書記述言語の定義に従って所定の処理を実行させるためのデータ処理プログラムであって、ブロック補助データに基づいて、電子データのブロックデータを読込む読込みステップと、読込まれたブロックデータと、ブロック補助データとに基づいて、ブロックデータに含まれる階層構造を解析する解析ステップと、解析結果と、文書記述言語の定義とに基づいて、ブロックデータに対して所定の処理を実行させる実行ステップとをコンピュータに実行させる、データ処理プログラム。
【００２６】
（１４）階層構造を有する電子データを複数のブロックに分割し、分割されたブロックごとに所定の処理を実行させるための構造化データを生成するためのデータ処理プログラムであって、電子データを所定のブロックサイズに分割する際の、各ブロック境界における境界候補を抽出する抽出ステップと、境界候補に基づいて、ブロックの分割位置を決定する決定ステップと、決定された各ブロックの先頭位置と終了位置とにおける階層構造の特徴を示す情報を取得する取得ステップと、決定ステップで決定された各ブロックの分割情報の位置情報と、取得された位置情報に対応する階層構造の特徴を示す情報とを含むブロック補助データを生成し、ブロック補助データを電子データに追加して構造化データを生成する生成ステップとをコンピュータに実行させる、データ処理プログラム。
【００２７】
（１５）サーバより階層構造を有する電子データを受取り、電子データに対して所定の処理をするためのデータ処理プログラムであって、サーバに対して所定の処理をしたい電子データ名を送信する送信ステップと、サーバより電子データを複数のブロックに分割して処理するためのブロック補助データを受信する受信ステップと、電子データのうち、所定の処理をしたい電子データを含むブロックの送信をサーバに要求し、ブロックのデータを受信する受信ステップと、受信したブロックと、ブロックのブロック補助データとを用いて、ブロックの階層構造を解析し、その結果を用いて所定の処理をする再生ステップとをコンピュータに実行させる、データ処理プログラム。
【００２８】
（１６）階層構造を有する電子データを処理するデータ処理装置であって、電子データには、電子データを複数のブロックに分割して処理するための補助情報であるブロック補助データが付随し、電子データのうち、処理をしたいデータが含まれるブロックと、ブロック補助データとを読込む入力部と、ブロック補助データを用いて、読込んだ前記ブロックの階層構造を解析するデータ構造解析部と、データ構造解析部の結果を用いて、所定の処理をする処理部を備える、データ処理装置。
【００２９】
（１７）（１６）に記載されたデータ処理装置であって、電子データは表示用の文書データであり、処理部は、データ構造解析部によって解析されたブロックの階層構造を用いて、読込んだブロックの表示レイアウトを計算するレイアウト計算部と、レイアウト計算部によって求めた表示レイアウトに基づいて表示する表示部とをさらに備える、データ処理装置。
【００３０】
（１８）サーバより階層構造を有する電子データを受取り、電子データに対して所定の処理をするデータ処理装置であって、電子データには、電子データを複数のブロックに分割して処理するための補助情報であるブロック補助データが付随し、電子データのうち、所定の処理をしたい電子データが含まれるブロックをサーバに伝え、ブロックのデータと、ブロック補助データとをサーバより受信する送受信部と、受信したブロックと、ブロック補助データとを用いて、受信したブロックの階層構造を解析するデータ構造解析部と、データ構造解析部の結果を用いて、所定の処理をする処理部とを備える、データ処理装置。
【００３１】
（１９）（１６）または（１８）に記載されたデータ処理装置であって、携帯型の端末であることを特徴とするデータ処理装置。
【００３２】
（２０）文書記述言語の定義に従って記述された電子データと、電子データを複数のブロックに分割して処理するためのブロック補助データとを対として備えたことを特徴とする、構造化データ。
【００３３】
（２１）文書記述言語の定義に従って所定の処理を実行させるための電子データと、電子データを複数のブロックに分割し、分割されたブロックごとに所定の処理を実行させるためのブロック補助データとを対として備えたことを特徴とする、構造化データ。
【００３４】
（２２）（２０）または（２１）に記載された構造化データであって、複数に分割された電子データのブロックは、ほぼ等しい大きさであることを特徴とする、構造化データ。
【００３５】
（２３）（２０）または（２１）に記載された構造化データであって、ブロック補助データは、少なくとも各ブロックの位置情報と、ブロックの開始位置と終了位置とにおける階層情報とを有することを特徴とする、構造化データ。
【００３６】
（２４）（２０）または（２１）に記載された構造化データであって、ブロック補助データは、ブロックの分割箇所を、電子データの構造を記録している制御コードの前後とその付近とから選ぶことを特徴とする、構造化データ。
【００３７】
（２５）（２０）または（２１）に記載された構造化データであって、ブロック補助データは、ブロックの分割箇所を、表示したときに必ず行頭から表示される箇所に限定することを特徴とする、構造化データ。
【００３８】
（２６）（２０）または（２１）に記載された構造化データであって、電子データに、電子データ内の任意の位置にジャンプするリンク機能が含まれる場合、ブロック補助データは、電子データに含まれるすべてのリンク先の位置情報を含むことを特徴とする、構造化データ。
【００３９】
（２７）文書記述言語の定義に従って記述された電子データと、電子データを複数のブロックに分割して処理するためのブロック補助データとを対として備えたことを特徴とする構造化データを記録した、コンピュータ読取可能な記録媒体。
【００４０】
（２８）（１３）〜（１５）のいずれかに記載されたデータ処理プログラムを送信する送信部を備えることを特徴とする、送信装置。
【００４１】
（２９）（２０）または（２１）に記載された構造化データを送信する送信部を備えることを特徴とする、送信装置。
【００４２】
【発明の実施の形態】
本発明をより詳細に説明するために、添付の図面を用いてこれを説明する。
【００４３】
（第１の実施の形態）
第１図は、第１の実施の形態におけるデータ処理装置１００が表示装置である場合のデータ処理装置１００のブロック図の一例を示す図である。
【００４４】
図１を参照して、サーバ１１０は、ユーザからの要求を受信し、データベースに記録された電子データを送信する。ネットワーク１１４は、サーバ１１０とユーザのパーソナルコンピュータ（以下、パソコンと称する）１１５とを接続する。記録媒体１１１は、パソコン１１５から電子データを取出してデータ処理装置１００に電子データを供給する。
【００４５】
なお、上述のパソコン１１５を、コンビニエンスストアや駅構内等に設置された電子データ受信装置（図示せず）に替えて、この電子データ受信装置から電子データを取出し、記録媒体１１１に記録する方式としてもよい。この場合、電子データ受信装置から電子データを取出して記録媒体１１１に記録する際に、課金することが可能である。また、サーバ１１０から送信される電子データを、パソコン１１５を介することなく、データ処理装置１００が受信して記録媒体１１１に記録する構成であってもよい。
【００４６】
さらに図１を参照して、電子データ１０１は、記録媒体１１１の中に記録された電子データであり、ブロック補助データ１０２は、記録媒体１１１に記録され、電子データ１０１に付随するデータである。
【００４７】
上述の電子データ１０１は、文書記述言語の定義に従って所定の処理を実行させるための構造化された電子データであって、階層構造を有する構造化文書を記録するためのデータ形式であるSGMLやXMLなどを用いて記録されている。
【００４８】
ブロック補助データ１０２は、上述の構造化された電子データである電子データ１０１を複数のブロックに分割し、分割されたブロックごとに所定の処理を実行させるデータであり、電子データ１０１と対になっている。
【００４９】
さらに図１を参照して、入力部１０３は、電子データ１０１およびブロック補助データ１０２を読込む。データ構造解析部１０４は、電子データ１０１とブロック補助データ１０２とからデータの階層構造を解析する。処理部１０５は、データ構造解析部１０４で解析した階層構造に基づき、所定の処理を行なう。制御部１０９は、入力部１０３、データ構造解析部１０４、および処理部１０５の各処理部を制御する。
【００５０】
処理部１０５は、対象とする電子データの内容、および処理内容によって構成が異なるが、データ処理装置１００が、例えばインターネットで交換する電子文書や電子データ、単行本、教科書、雑誌、小説、および論文のような文章などの表示を行なう表示装置である場合には、図１に示すように、データ構造解析部１０４の解析結果に基づいて、文章の表示レイアウトを計算するレイアウト計算部１０６と、求めた表示レイアウトに基づいて文章を表示する表示部１０８と、スクロールなどのユーザからの指示を処理するユーザ指示処理部１０７とから構成される。
【００５１】
また、電子データが音声である場合は、処理部１０５は、読上装置に変更され、また、表示部１０８には音声再生部が使用され、レイアウト計算部１０６は、読む部分と読まない部分とを判定したり、強調して読む箇所とそうでない箇所とを判定したり、また各読上げの間隔（ま）を取ったりする部分に変更される。この、電子データが音声である場合、電子データの階層構造に応じて、音声の属性を変えて読上げるようにしてもよい。さらに、電子データが音声である場合、データ処理装置１００には、シナリオ解釈部、音声出力部、および、再生順を管理するために各要素の同期をとる同期部が必要になる。
【００５２】
図２に、上述のデータ処理装置１００を携帯型機器で実現した場合の具体例を示す。
【００５３】
図２において、表示部１０８は、レイアウト計算部１０６で計算した表示レイアウトに基づき表示を行ない、ディスプレイなどから構成される。また、記録媒体１１１は、図１に示したように、パソコン１１５や電子データ受信装置によって、サーバ１１０、およびネットワーク１１４を介して文書データベースから取出された、処理対象の電子データ１０１と、ブロック補助データ１０２とが記録された記録媒体である。この記録媒体１１１を本体のデータ処理装置１００に挿入することで、表示装置であるデータ処理装置２００内に設けられた入力部１０３を通してこの２つのデータが読込まれる。さらに十字キー１１２は、ユーザが文書のスクロール指示や表示させたい書籍や文書を選択する場合などに用いられる。また、ペン１１３は、電子データにリンク機能が含まれるとき、リンク先にジャンプするために使われる。また、表示装置であるデータ処理装置１００から求められた確認事項に変更するためにも使用される。
【００５４】
なお、記録媒体１１１のように、記録媒体に電子データ１０１やブロック補助データ１０２を記録するものではなく、データ処理装置１００の内部に記録する領域を設けて、そこに記憶するようにしてもよい。また、ネットワーク１１４上のサーバ１１０、あるいはデータベースにこの２つのデータを記録し、ダウンロードしながら処理するようにしてもよい。
【００５５】
次に、ブロック補助データについて説明する。
【００５６】
ブロック補助データは、一般に、図３に示すように、電子データファイル名１、ブロック情報２、およびリンク先情報３の３つの領域から構成される。
【００５７】
電子データファイル名１は、このブロック補助データが、どの電子データに対応するものかを記録するために用意された領域である。ブロック補助データを、電子データ内、もしくは電子データに連結して記録する場合は、電子データファイル名１の領域は、省略してもよい。
【００５８】
また、処理する電子データによっては、リンク先情報３の領域は存在しないことがある。
【００５９】
以降、この３領域の書式について、文書記述言語の定義に従って記述され、階層構造を有する電子データの具体例としてXHTML文書を用いて説明する。図１８に示されるXHTML文書を、図４に示されるように、４つのブロック（ブロック１０、ブロック１１、ブロック１２、ブロック１３）に分割する場合を考える。このとき、このXHTML文書に対するブロック補助データは、図５に示されるようになる。
【００６０】
図５を参照して、ブロック補助データの領域２０は電子データファイル名１の領域であり、図４のXHTML文書のファイル名が記録される。
【００６１】
ブロック補助データの領域２１〜３７は、ブロック情報２の領域である。
【００６２】
領域２１はブロック数を記録する領域であり、４つのブロックに分割する場合には４が記録される。
【００６３】
領域２２〜２５、２６〜２９、３０〜３３、３４〜３７は、それぞれブロック１０，１１，１２，１３に対するブロック情報の領域である。一般に、ｎ個のブロックに分割する場合、領域２２〜２５のブロック情報の構造がｎ回繰返し記録される。
【００６４】
領域２２，２６，３０，３４にはそれぞれのブロックの開始位置が、領域２３，２７，３１，３５にはそれぞれのブロックの終了位置が、ファイル先頭からのバイト数の形で記録される。したがって、ブロック１１に属するデータを取出したい場合は、領域２６と領域２７とのブロック情報の値を調べ、ファイルの先頭から数えて２１２バイト目から４２３バイト目を読込めばよい。
【００６５】
領域２４，２８，３２，３６には、各ブロックの開始位置において、終了されていない開始タグを記録する。領域２４のブロック情報は、ブロック１０の開始位置において終了されていない開始タグを記録する領域であるが、ブロック１０はファイルの先頭から始まっているため、領域２４に記録する制御コードは存在しない。ブロック１１の開始位置では<html>が閉じられていないため、領域２８には<html>を記録する。また、ブロック１２の開始位置のように、複数のタグ（<html>、<body bgcolor="yellow">、<p>）が閉じられていない場合は、<html><body bgcolor="yellow"><p>のように、出現順に連結して領域３２にブロック情報を記録する。なお、<body>タグのように属性（bgcolor="yellow"）をもつ場合は、属性を付けたまま記録する。ブロック１３も同様にして、<html><body bgcolor="yellow">と領域３６にブロック情報を記録する。
【００６６】
領域２５，２９，３３，３７には、各ブロックの終了位置において閉じられていないタグの終了タグを記録する。ブロック１０の終了位置においては、<html>タグが終了されていないため、領域２５にはブロック情報</html>を記録する。また、ブロック１１の終了位置においては、<html>、<body  bgcolor="yellow">、<p>タグが閉じられていないため、出現順とは逆の順番で、上記の終了タグを</p></body></html>と連結してブロック情報を領域２９に記録する。同様にして、ブロック１２に対してはブロック情報</body></html>を記録する。ブロック１３の終了位置では全てのタグが閉じられているので、領域３７には何も記録しない。
【００６７】
領域３８〜４１は、リンク先情報３の領域であり、図１８のXHTML文書のうち、リンク先として指定されたラベル位置を記録する。
【００６８】
ここで、XHTML文書のリンクについて簡単に説明する。XHTML文書では、<a>タグによって他のファイルやファイルの一部へリンクをはることができる。例えば、図４のリンク先情報３，４は、同一ファイルの一部へのリンクがはられた例である。この例で、リンク先情報３の<a>タグで囲まれた文字列"BBB"がクリックされると、href属性で指定されたラベル"SUMMARY"が設定されている場所、つまり、<a>のname属性に"SUMMARY"が設定されているリンク先情報４に表示位置をジャンプさせる。
【００６９】
図５において、領域３８〜４１には、リンク先のラベルの位置情報、つまり<a>タグのname属性により設定されているラベルの位置情報を記録する。図４のXHTML文書の場合、name属性をもつ<a>タグは１つしか存在しないため、領域３８には１を記録し、領域３９〜４１の組合わせを１回だけ記録する。
【００７０】
一般的に、name属性をもつ<a>タグがｎ個ある場合は、領域３９〜４１の構造のリンク先情報がｎ回繰返される。領域３９には<a>タグのname属性に記録されたラベル名を、領域４０，４１には<a>タグに挟まれた文字列の開始位置および終了位置をファイル先頭からのバイト数で記録する。
【００７１】
なお、ブロックの大きさは、装置の処理能力から決定される。すなわち、ブロックの大きさが大きいほど１ブロックあたりの処理量が増えるため、処理時間が増大し、使用するメモリ容量やリソース容量も増大する。そのため、ブロックの大きさは、装置の処理能力に応じて決定されることが望ましい。装置の処理能力を決定する要因として、装置に搭載されているＣＰＵ（Central Processing Unit）の処理能力、メモリ容量、およびリソース容量等が挙げられる。
【００７２】
一方、ブロックの大きさは、画面に表示される文字数やそれを決定する要因によっても決定される。例えば、電子書籍等の文章を表示する装置においては、１画面分の表示をした後、ユーザによるページ移動の指示があるまで待機するように設計されていることが多い。この場合、画面に表示される文字数に対してブロックの大きさを極端に大きく設定した場合には、本実施の形態における処理方法ではブロックを１つの単位として読込むため、画面に表示しない不要なデータも読込まれることになり、無駄が生じてしまうことになる。したがって、画面に表示される文字数に基づき、ブロックの大きさが決定されることが望ましい。なお、画面に表示される文字数は、表示装置の備える画面の大きさおよび解像度、表示する文字のフォント数、行間や字間の大きさ、および余白の大きさ等によって変わるため、これらの要因によってブロックの大きさを変えるようにしてもよい。
【００７３】
このブロック補助データは、対象とする電子データの種類によって構成および書式が若干異なる。一般にXML形式で書かれた電子データの場合、図３のリンク先情報３を除き、電子データファイル名１、ブロック情報２の２領域は存在し、書式も同じになる。リンク先情報３は、XHTML文書の機能であるリンク機能のための情報であるため、XHTML文書などの電子書籍以外の電子データに対しては存在しないこともある。しかし、他のブロック内のデータを参照しながら処理を進めるような電子データや、ユーザの動作に応じて他ブロック内のデータを表示させたり、もしくは再生させたりする機能をもつような電子データの場合は、アクセスしやすくするために、そのデータがどこにあるかをこのリンク先情報３に記録しておくとよい。
【００７４】
また、適用可能な電子データはXML形式に限らない。一般に階層構造をもつ構造化文書に対して適用可能であり、具体的には、ブロック情報２の開始／終了位置制御コードに、ブロックの開始／終了位置での階層構造がわかるように、それぞれの書式で記録しておけばよい。
【００７５】
次に、この電子データとブロック補助データとによるデータ処理装置１００の動作について、表示装置を例に挙げて説明していく。図６に表示装置でのフローチャートを示す。
【００７６】
図６を参照して、まず、ユーザ指示処理部１０７を通じ、ユーザから表示したい電子データが指定され（ステップＳ１０１）、その電子データに対して用意されたブロック補助データを入力部１０３より読込む（ステップＳ１０２）。
【００７７】
次に、ステップＳ１０２で読込んだブロック補助データのうち、各ブロックの開始／終了位置と、画面に表示しようとしている領域のファイル先頭からの位置とを元に、どのブロックを読込むかを判断し（ステップＳ１０３）、必要なブロックのみを入力部１０３より読込む（ステップＳ１０４）。
【００７８】
そして、ステップＳ１０２で読込んだブロック補助データの内容を参照し、読込んだブロックの開始／終了位置における制御コードを調べる。そして、開始位置制御コード、ブロックデータ、終了位置制御コードの順に連結し、階層構造を解析し、木構造を作成する（ステップＳ１０５）。
【００７９】
例えば、図４のブロック１２を読込んだ場合には、図５のブロック補助データの領域３２と領域３３とにあるブロック情報を前後に連結した、図７のようなデータを作成し、階層構造を解析する。図７において、領域５１のデータが領域３２のブロック情報に記録された制御コード、領域５２のデータがステップＳ１０４で読込んだブロック１２のデータ、および領域５３が領域３３に記録された制御コードである。なお、図７のように、必要ならば、先頭に領域５０のデータのような、XML宣言と文書型宣言とを付けてもよい。このステップＳ１０５の処理はデータ構造解析部１０４で行なわれる。
【００８０】
次にレイアウト計算部１６０により、ステップＳ１０５で作成した１ブロック分の木構造を元に、表示画面内でのレイアウトを計算する（ステップＳ１０６）。この結果、表示部１０８がもつ表示画面全体のレイアウトが決まれば（ステップＳ１０７）、ステップＳ１０８に移り、表示部１０８に表示する。
【００８１】
一方、ステップＳ１０７において、まだ表示画面のうちレイアウトが決まっていない領域があればステップＳ１０４に戻り、次のブロックを読込み、木構造を作成して（ステップＳ１０５）、１つ前のブロックに対して求めたレイアウト画面の続きから、現在のブロックのレイアウト処理を行なう（ステップＳ１０６）。続くステップＳ１０７，Ｓ１０８の処理は、先に説明した処理と同様の処理を行なう。
【００８２】
ステップＳ１０８で表示部１０８に表示した後は、ステップＳ１０９に移り、ユーザからの指示を待つ。ユーザからの指示があるまでステップＳ１０９で待機する。
【００８３】
ここで、ユーザから表示処理の終了が指示された場合、表示処理を終了する。ステップＳ１０９において、ユーザから次ページ、あるいは前ページのスクロール指示があった場合、ステップＳ１１１に移り、ユーザから受けたスクロール指示の結果、次に表示する内容が現在のブロックと同じかどうかを判断する。もし同じならば、ステップＳ１０６に移り、先に作成した木構造を元にレイアウト処理をし、以下先に説明した処理と同様にして、ステップＳ１０７以降の処理を続ける。
【００８４】
また、ステップＳ１１１の判断の結果、現在と異なるブロックと判断された場合は、ステップＳ１０４に移り、表示に必要なブロックを読込み、以下先に説明した処理と同様にして、ステップＳ１０５以降の処理を続ける。
【００８５】
一方、ステップＳ１０９において、リンクジャンプなどにより、他の領域へ飛ぶように指示された場合、ステップＳ１１０に移り、移動先が他ファイルへの移動か自ファイル内への移動かを調べる。例えば、XHTML文書では、href属性をもつ<a>タグで挟まれた文字列がクリックされると、href属性の値から、他ファイルへのリンクか、自ファイル内へのリンクかが判断される。その結果、自ファイル内へのリンクであった場合、ステップＳ１１１に移り、リンク先が現在のブロックと同じかどうか判断する。この時、ブロック補助データに記録されたリンク先情報３を参照して、リンク先がどのブロックに含まれるかを調べる。例えば、図５の例の場合、領域３８〜４１のブロック情報を参照し、<a>のhref属性で指定されたリンク先のラベルが、ファイル内のどの位置にあるかを調べる。その後、領域２１〜３７のブロック情報を参照して、その位置がどのブロックに含まれるかを調べることでリンク先のブロックを調べる。
【００８６】
求められたリンク先のブロックが現在のブロックと同じであれば、ステップＳ１０６に移り、以降、先に説明した処理と同様の処理を行なう。
【００８７】
一方、リンク先のブロックが現在のブロックと別のブロックであれば、ステップＳ１０４に移り、そのブロックを読込み、以降、先に説明した処理と同様の処理を行なう。
【００８８】
また、ステップＳ１１０の判断の結果、リンク先が他のファイルであった場合は、ステップＳ１０２に移り、リンク先のファイルに対して用意されたブロック補助データを読込み、以降、先に説明した処理と同様の処理を行なう。
【００８９】
上記のようにブロック補助データを用いて処理することで、電子データの一部のみのデータを読込んで処理することができるため、高速かつ低メモリでの処理ができる。
【００９０】
なお、本実施の形態では、所々でXHTML文書を例に挙げながら説明したが、以上の説明から明らかなようにXHTML文書の表示装置に対象を限定するものではない。XHTML文書のようなリンク機能をもち、階層構造を有する電子データの表示装置に対しては、図３のブロック補助データ、および図６のフローチャートが適用可能である。また、リンク機能をもたない電子データの場合も、図３のリンク先情報３と図６のステップＳ１１０とを省略することで適用可能である。例えば、日本電子出版協会が標準化を進めているJepaX（JEPA電子出版交換フォーマット）、日本電子ブックコミッティーが提案しているネットワーク電子ブックフォーマット（Network Electronic Book Format）など、XMLなどにより記録された階層構造を有する電子データであれば、図６と同様にして処理ができる。
【００９１】
また、本発明は、ブロック補助データを用意することにより、階層構造をもつ電子データの一部分のみを読出して処理できることに特徴がある。そのため、図１のブロック図において、処理部１０５を処理装置固有の処理に替えることで、表示装置に限らず、他の処理装置に対しても本発明を適用できる。この時、図６のフローチャートにおいては、ステップＳ１０６〜Ｓ１０８の処理が、処理装置固有の処理に替わる。例えば、文章の読上げ装置の場合、電子データのうち読上げる個所と読上げない個所とを判断するステップや、個所に応じて読上げる音質や強度を設定するステップや、音声再生するステップなどの処理に置換えられる。
【００９２】
一方、本実施の形態においては、XMLなどのように階層構造を有する電子データを対象に説明をしてきたが、HTML文書のように、完全には階層構造を有しない電子データに対しても適用可能である。
【００９３】
例えば、HTML文書には<basefont>という基準フォントのサイズを指定するタグがある。図８の領域７２に示されるように指定すると、それ以降の文章の階層構造に関係なく、次の<basefont>タグの指定が来るまで、基準フォントのサイズが３（size="3"で指定）に設定される。例えば、領域７２に示される<basefont>は、<p>タグや<u>タグなどに挟まれているが、<p>や<u>の終了タグが現れても設定が持続されるため、階層構造が崩れてしまっている。このように、階層構造を無視して効果が持続されるようなタグが存在する場合には、このタグを含むブロックの終了位置制御コードにそのタグの終了タグも記録し、次ブロック以降にも、開始位置制御コードにそのタグを、終了位置制御コードにそのタグの終了タグを追加しておくことにより、別のブロックのみを処理する場合でも、そのタグの効果がそのブロックにかかっていることを知ることができる。そのため、図６と同様な処理が可能となる。
【００９４】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【００９５】
図９は、本発明の第２の実施の形態に係るデータ処理装置２００のブロック図の一例である。
【００９６】
図９を参照して、電子データ２０１は、本データ処理装置２００で処理される電子データである。ブロック補助データ２０２は、電子データ２０１に付随するブロック補助データである。
【００９７】
入力部２０３は、電子データ２０１とブロック補助データ２０２とを読込む。データ構造解析部２０４は、電子データ２０１とブロック補助データ２０２とからデータの階層構造を解析する。ブロック補助データ作成部２０５は、ブロック補助データ２０２が存在しない場合に電子データ２０１からブロック補助データを作成する。処理部２０６は、データ構造解析部２０４で解析した階層構造に基づき所定の処理を行なう。制御部２１０は、入力部２０３、データ構造解析部２０４、ブロック補助データ作成部２０５、および処理部２０６の各処理部を制御する。電子データ２０１とブロック補助データ２０２とは、第１の実施の形態と同様に記録媒体１１１に記録され、データ処理装置２００に読込まれる。
【００９８】
上述の処理部２０６は、対象とする電子データの内容、および処理内容によって構成が異なるが、このデータ処理装置２００が文章などの表示を行なう表示装置である場合には、図９に示すように、データ構造解析部２０４の解析結果に基づいて、文章の表示レイアウトを計算するレイアウト計算部２０７と、計算した表示レイアウトに基づいて表示する表示部２０９と、スクロールなどのユーザからの指示を処理するユーザ指示処理部２０８とから構成される。
【００９９】
図１０に処理装置２００での処理のフローチャートを示す。
【０１００】
図１０を参照して、まず、ユーザより、キーボード、マウス、およびペン等を使用して、処理する電子データが指定されると（ステップＳ２０１）、ユーザ指示処理部２０８を通じステップＳ２０２により、その電子データに対するブロック補助データが存在するかどうかが判断される。もし、存在していれば、上述の第１の実施の形態と同様の処理となり、図６のステップＳ１０２以降の処理が行なわれる。
【０１０１】
もし、ステップＳ２０２において対応するブロック補助データが存在しないと判断されれば、ステップＳ２０３によりブロック補助データが作成され、引続き図６のステップＳ１０２以降の処理が行なわれる。ステップＳ１０２以降の処理は、第１の実施の形態で説明した処理と同じであるため、ここでの説明を繰返さない。
【０１０２】
次に、ステップＳ２０３の処理について、詳しく説明する。
【０１０３】
ブロック補助データ作成部２０５では、入力部２０２より入力した電子データを複数のブロックに分割し、それぞれのブロックの開始／終了位置での制御コードを調べ、図３に示したブロック補助データを作成する。
【０１０４】
この、ステップＳ２０３での処理のフローチャートを図１１に示す。
【０１０５】
図１１を参照して、まず、ブロックサイズの目標値Ｔを設定する（ステップＳ３０１）。先述の如く、適切なブロックサイズは、処置装置の処理能力や、画面に表示される文字数およびそれを決定する要因に基づいて決定されることが望ましい。そのため、これらのパラメータに基づきブロックサイズの目標値Ｔを設定する。なお、目標値Ｔの設定には、処理装置が予め備えるデフォルト値、もしくはユーザにより指定された値を用いてもよい。
【０１０６】
図５に示されるブロック補助データは、ブロックサイズの目標値を２００バイトに設定して作成されたものである。ここで、設定するブロックサイズを目標値としたのは、一般に、ブロック分割できる個所に制限があるためである。詳しくはステップＳ３０３の説明で述べる。
【０１０７】
さて、ステップＳ３０１によりブロックサイズの目標値Ｔが設定されると、ステップＳ３０２に移り、ファイル先頭からＴバイト目を挟んだＸバイトの領域を、ブロック境界の探索範囲に設定する。Ｘの値は、例えば、ブロックサイズの目標値Ｔの半分に設定する。そして、ステップＳ３０３において、その探索範囲内における境界候補を抽出する。
【０１０８】
境界候補は、対象とする電子データの種類によって変わるが、例えば、電子データがXML文書である場合は、区切る個所はタグやコメント、および文字列の途中ではなく、タグの直前か直後かで区切る。例えば、"<div id="ID1">abcdef</div>"というデータ列がある場合、"<div id="ID1">"の直前もしくは直後、または"</div>"の直前か直後かにブロックの境界を設定する。タグの途中で区切らないのは、"<div id="ID1">"の途中で区切ると、タグ名や属性名、属性値が途中で切れてしまう可能性があるためであり、文字列要素"abcdef"の途中で区切らないのは、タグで挟まれた文字列や文章が、それ自身で１つの意味のある文字列や文章を形成している場合が多く、意味のある文字列や文章を途中で分断することは避けた方が望ましいためである。
【０１０９】
さらに、データ処理装置２００がXHTML文書のような電子書籍を表示する表示装置である場合は、上記の制限に加え、改行タグの直後や、段落の先頭など、行頭から表示が始まる個所を境界候補とすることが望ましい。例えば、図１２Ａに具体例が示されるXHTML文書を、行の途中で２つのブロック６０，６１に区切った場合を考える。この時、XHTML文書の先頭から表示した場合の表示例を図１２Ｂに示す。
【０１１０】
ブロック６０が行の途中で終わる場合、ブロック６１は行の途中（３行目の７文字目以降）からレイアウトされることになる。一方、ユーザ等により、ブロック６１の先頭から表示するよう指示された場合、ブロック６１のみを読込んでレイアウト計算がされるため、図１２Ｃのようにブロック６１は行の先端から表示される。そのため、ユーザによって、ブロック６１から６０へ、文章とは逆方向にスクロール指示がされると、図１２Ｂと図１２Ｃのようにブロック６１の表示開始位置が異なるため、ブロック切替わり時に表示が乱れてしまう。
【０１１１】
これに対し、ブロックの分割位置を行頭から表示が始まる個所に限定しておくと、直前のブロックのレイアウト結果によることなく、常に行頭からレイアウトすることになるため、このような問題が生じない。よって、XHTML文書のような電子書籍の場合は、ブロックの境界候補を、タグの直前もしくは直後であり、しかも表示が常に行頭となる個所から抽出する。
【０１１２】
次に、ステップＳ３０３により抽出された境界候補の数により、ステップＳ３０４により条件が分岐される。
【０１１３】
もし境界候補が見つからなければ、ステップＳ３０２に移り、探索範囲をファイルの下方にずらして、先に述べたのと同様にしてステップＳ３０２以降の処理をする。
【０１１４】
一方、境界候補が存在していれば、ステップＳ３０２で設定した探索範囲の中心に一番近い候補を選び、境界に設定する（ステップＳ３０５）。そして、ステップＳ３０６により、ブロックの開始／終了位置の、ファイル先頭からの位置および階層関係を調べ、ブロック情報２に記録する１ブロック分の情報を取得する。
【０１１５】
そしてこのブロックの終端がファイルの終端かどうかを調べ（ステップＳ３０８）、終端でなければステップＳ３０２に移り、次のブロックの調査を続ける。
【０１１６】
一方、ファイルの終端と一致すれば、ステップＳ３０８により、Ｓ３０１からＳ３０７で調べたブロック情報と電子データのファイル名とをブロック補助データに記録する。この時、もし必要ならばリンク先情報も調査し、ブロック補助データに記録するようにする。ステップＳ３０８が終わると、ブロック補助データ作成処理が終了する。
【０１１７】
なお、本実施の形態は、ブロック補助データ作成部２０５がデータ処理装置２００内にある場合について説明したが、ブロック補助データ作成部２０５を第１の実施の形態で説明したサーバ１１０に備え、そこでブロック補助データを作成することも可能である。
【０１１８】
この場合の処理の流れは本実施の形態で説明した通りである。また、ブロック補助データ作成部２０５の機能を実現するハードウェアまたはソフトウェアを汎用のパーソナルコンピュータ（図示せず）に組込むことにより、一般的な文書記述言語で記述されたコンテンツを本願特有のデータ構造を備えるコンテンツに変換させることができる。このようにして生成されたコンテンツを図１のサーバ１１０にアップロードして、サーバ１１０からユーザのパソコン１１５にダウンロードさせることができる。このような構成により、データ処理装置１００に表示させるコンテンツを作成し販売するシステムを構築することができる。このようなシステムは、データ処理装置１００が電子ブックビューアの場合には、汎用の文書記述言語で記述された電子ブックコンテンツをデータ処理装置１００専用のデータ構造に変換して提供する場合に有効である。
【０１１９】
また、本実施の形態では所々で表示装置を例に挙げて説明したが、以上の説明から明らかなように、本発明は、ブロック補助データを作成して処理することによって、階層構造をもつ電子データの一部分のみを読出して処理できることに特徴がある。そのため、図９のブロック図において、処理部２０６を処理装置固有の処理部に替えることで、表示装置に限らず、一般のデータ処理装置に対しても本発明を適用できる。
【０１２０】
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。
【０１２１】
図１３は、本発明の第３の実施の形態に係るデータ処理装置のブロック図の一例である。説明のため、データ表示装置を例に挙げて説明する。
【０１２２】
図１３に示すように、本実施の形態におけるデータ表示装置は、文書ＤＢ（データベース）３０１、サーバ処理部３０２、およびクライアント処理部３０４の大きく３つに分かれ、サーバ処理装置３０２とクライアント処理部３０４とはネットワーク回線３０３により接続されている。
【０１２３】
文書ＤＢ３０１には処理する電子データおよびそれに付随するブロック補助データが格納されている。
【０１２４】
サーバ処理部３０２は、文書ＤＢ３０１から電子データとブロック補助データとを読込む入力部３０５と、電子データに対するブロック補助データが存在しないときにブロック補助データを作成し文書ＤＢ３０１に記録するブロック補助データ作成部３０６と、クライアント処理部３０４からの要求を受付けると共に、指定されたデータをクライアント処理部３０４に送信する送受信部３０７とから構成される。
【０１２５】
クライアント処理部３０４は、処理する電子データやスクロール指示などのユーザからの指示を処理するユーザ指示処理部３０９と、ユーザ指示処理部３０９で解析したユーザからの指示内容などをサーバ処理部３０２に送信すると共に、サーバ処理部３０２から送られてきたデータを受信する送受信部３０８と、サーバ処理部３０２から送られてきた電子データの階層構造を解析するデータ構造解析部３１０と、データ構造解析部３１０で解析された階層構造を用いて、電子データの表示レイアウトを計算するレイアウト計算部３１１と、レイアウト計算部３１１によって計算したレイアウトに基づき表示する表示部３１２とから構成される。なお、レイアウト計算部３１１によって表示レイアウトを計算した結果、表示部３１２の途中までしか表示レイアウトが定まらなかった場合、送受信部３０８を通じて、必要なデータを送信するようにサーバ処理部３０２に要求を出す場合もある。
【０１２６】
次に、図１４、図１５を使って、本実施の形態のデータ表示装置における処理の流れを説明する。
【０１２７】
図１４を参照して、まず、ユーザから処理したい電子データが指定されると、サーバ処理部３０２に処理したい電子データのファイル名が送られる（ステップＳ３０１）。サーバ処理部３０２では、その電子データに対するブロック補助データが文書ＤＢ３０１内に存在するかどうかを調べ（ステップＳ３０２）、存在していなければステップＳ３０３に移り、ブロック補助データを作成し、ステップＳ３０４に移る。ステップＳ３０３での処理は、図１１を用いて説明した処理と同様であるため、ここでの説明は繰返さない。一方、ステップＳ３０２でブロック補助データが存在していた場合は、何もせずステップＳ３０４に移る。
【０１２８】
そしてステップＳ３０４において、ブロック補助データがクライアント処理部３０４に送られ、クライアント処理部３０４で受信される（ステップＳ３０５）。
【０１２９】
なお、このうちステップＳ３０１において、表示部３１２の画面サイズやメモリ量などからブロック分割する際のサイズの目標値を、電子データのファイル名と共に伝え、サーバ処理部３０２はそのブロックサイズを元に、ブロック補助データを作成するようにしてもよい。このように構成することで、クライアント処理部３０４の処理能力に応じたブロック分割が可能となり、最終的にユーザの使い勝手の向上につながる。
【０１３０】
次に、図１５を参照して、クライアント処理部３０４は、ブロック補助データを受信すると、受取ったブロック補助データを解析し、各ブロックの開始／終了位置と、画面に表示しようとしている領域のファイル先頭からの位置を元に、どのブロックを読込みかを判断し、読込みたいブロックをサーバ処理部３０２に伝える（ステップＳ３０６）。
【０１３１】
サーバ処理部３０２はその要求を受付けると、指定されたブロックを文書ＤＢ３０１から読込み、クライアント処理部３０４に返す（ステップＳ３０７）。クライアント処理部３０４は、受取ったブロックデータとブロック補助データの内容とから、先に述べたステップＳ１０５と同様の処理を行ない、以降ステップＳ１０６から、先に述べたステップＳ１０５と同様の処理を行なう（ステップＳ３０９〜ステップＳ３１４）。
【０１３２】
このようにすることで、処理する電子データがサーバ上にある場合でも、階層構造を考慮しながら電子データの一部分のみを読込んで処理ができるため、電子データ全体を読込んで処理する場合に比べ、高速に処理ができ、使用するメモリも少なくて済む。また電子データの一部のみを処理する場合には、ネットワーク上でやり取りするデータ量を減らすことも可能である。
【０１３３】
なお、本実施の形態においては、ブロック補助データ作成部３０６がサーバ処理部３０２内にある場合について説明したが、ブロック補助データ作成部３０６を文書ＤＢ３０１、あるいはクライアント処理部３０４に備え、ブロック補助データを文書ＤＢ３０１、あるいはクライアント処理部３０４で作成することも可能である。
【０１３４】
また、上記の説明ではデータ表示装置を例に挙げて説明したが、以上の説明から明らかなように、本発明はブロック補助データを用いて処理することによって、階層構造をもつ電子データの一部分のみを受信して処理できることに特徴がある。そのため図１３のブロック図において、レイアウト計算部３１１および表示部３１２を処理装置固有の処理部に替えることで、表示装置に限らず、一般のデータ処理装置に対しても本発明を適用できる。
【０１３５】
また、上述の第１〜３の実施の形態における処理の一部または全部を、コンピュータによる処理に適した命令の順番付けられた列からなるもの（プログラム）として提供することも可能である。さらに、これらのプログラムは、そのプログラムのインストール、実行、プログラムの流通のために、そのプログラムを記録したコンピュータ読取可能な記録媒体として提供することも可能である。
【０１３６】
また、上述のプログラムまたは第１〜３の実施の形態におけるデータ構造を備えるコンテンツデータを、ネットワークを介してサーバ装置からクライアント装置に送信して提供することも可能である。その場合は、例えば、図１のサーバ１１０にプログラムまたはコンテンツデータを送信する送信部を備えることにより実現可能である。
【０１３７】
本実施の形態におけるデータベース処理装置が、以上のように構成されていることで、階層構造をもつ電子データであっても、電子データに対して用意したブロック補助データを用いて、階層構造を考慮しながら、電子データの一部分のみを読込んで処理ができる。そのため、電子データ全体を読込んで処理する場合に比べ、高速に処理ができ、使用するメモリも少なくて済む。また、ブロック補助データにリンク先の位置情報を用意することで、XHTML文書のリンク機能のように任意のブロックに移動する場合であっても、高速に移動ができる。
【０１３８】
また、第２の実施の形態におけるデータ処理装置では、ブロック補助データをもたない電子データであっても、いったんブロック補助データを作成した後に処理するようにしたので、ブロック補助データをもたない電子データに対しても、同様に高速かつ低メモリ使用量で処理ができる。
【０１３９】
さらに本実施の形態におけるデータ処理装置は、ブロックの大きさをほぼ均等な大きさに分割するので、ユーザからのスクロール指示によって前後のブロックに表示を移動する場合であっても、ほぼ同じ処理時間で表示される。そのため、ユーザにあまり違和感を感じさせないというメリットがある。また、サイズが極端に大きいブロックが存在すると、処理装置によっては、作業用メモリが不足して正常に動作しない可能性があるが、大きさがほぼ均等となっているため、そのような問題も生じにくくなる。
【０１４０】
また、第３の実施形態におけるデータ処理装置では、電子データおよびブロック補助データがネットワーク接続されたサーバ上にある場合でも、階層構造を考慮しながら、電子データの一部分のみを読込んで処理ができる。そのため、電子データ全体をサーバからダウンロードして処理する場合に比べ、高速に処理ができ、使用するメモリも少なくて済む。
【０１４１】
なお、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１４２】
【産業上の利用可能性】
以上のように、この発明によれば、階層構造をもつ電子データを、高速にかつ低メモリで処理することができるので、本発明は、データ処理方法、データ処理プログラムおよびデータ処理装置に有利に適用することができる。
【図面の簡単な説明】
【図１】  本発明の第1の実施の形態におけるデータ処理装置１００のブロック図である。
【図２】  本発明の第１の実施の形態における表示装置を、具体例として携帯機器で実現した場合の概観図を示す図である。
【図３】  本実施の形態におけるブロック補助データの具体的な概略を示す図である。
【図４】  電子データを複数のブロックに分割した様子を具体的に示す図である。
【図５】  図４に示される電子データに対して設定されるブロック補助データの具体例を示す図である。
【図６】  本発明の第１の実施の形態におけるデータ処理装置１００の処理を示すフローチャートである。
【図７】  １ブロック分のデータとブロック補助データとから作成したデータの具体例を示す図である。
【図８】  完全には階層構造を有しない電子データの具体例を示す図である。
【図９】  本発明の第２の実施の形態におけるデータ処理装置２００のブロック図である。
【図１０】  本発明の第２の実施の形態におけるデータ処理装置２００の処理を示すフローチャートである。
【図１１】  第２の実施の形態において、ブロック補助データを作成する際の処理を示すフローチャートである。
【図１２】  行の途中でブロック分割するデータの具体例と表示の具体例とを示す図である。
【図１３】  本発明の第３の実施の形態におけるデータ処理装置のブロック図である。
【図１４】  第３の実施の形態において、ブロック補助データを作成する際の処理を示すフローチャートである。
【図１５】  本発明の第３の実施の形態におけるデータ処理装置の処理を示すフローチャートである。
【図１６】  階層構造をもつ電子データの具体例を示す図である。
【図１７】  階層構造をもつ電子データから取出した木構造を説明するための図である。
【図１８】  階層構造をもつ電子データの具体例を示す図である。
【図１】
0004794127.tif 000002
【図２】
0004794127.tif 000003
【図３】
0004794127.tif 000004
【図４】
0004794127.tif 000005
【図５】
0004794127.tif 000006
【図６】
0004794127.tif 000007
【図７】
0004794127.tif 000008
【図８】
0004794127.tif 000009
【図９】
0004794127.tif 000010
【図１０】
0004794127.tif 000011
【図１１】
0004794127.tif 000012
【図１２】
0004794127.tif 000013
【図１３】
0004794127.tif 000014
【図１４】
0004794127.tif 000015
【図１５】
0004794127.tif 000016
【図１６】
0004794127.tif 000017
【図１７】
0004794127.tif 000018
【図１８】
0004794127.tif 000019