(57)【要約】  コンテンツを提供するシステムは、ソース及びクライアントを含む。ソースはコンテンツの表現を生成することができ、コンテンツは階層的に構造化されており、関連づけられたタイプを有する少なくとも１つの項目を含む。ソースは、識別表及び少なくとも１つのタイプ表を含む表現を生成することができ、コンテンツの各々の項目は、識別表の中に含まれ、また項目のタイプに基づいてタイプ表の中に含まれる。その後で、ソースはコンテンツの表現を提供することができる。クライアントは、コンテンツの表現を受け取り、その表現に基づいてコンテンツの少なくとも一部分にアクセスすることができる。クライアントは、更に、コンテンツの少なくとも１つの項目について質問を受け取り、項目について表現をサーチし、項目を含むコンテンツの少なくとも一部分にアクセスすることができる。
2008502048.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを提供するシステムであって、
階層的に構造化されて、関連づけられたタイプを有する少なくとも１つの項目を含むコンテンツの表現を生成することができ、識別表及び少なくとも１つのタイプ表を含む表現を生成することができ、コンテンツの各々の項目が識別表に含まれ、また項目のタイプに基づいてタイプ表に含まれるソースであって、コンテンツの表現を提供することができるソースと、
識別表及び少なくとも１つのタイプ表を含むコンテンツの表現を受け取ることができ、また表現に基づいてコンテンツの少なくとも一部分にアクセスすることができるクライアントと
を備えるシステム。
【請求項２】
ソースが、少なくとも１つの項目を表す少なくとも１つのノードを含むコンテンツのツリーベース表現を生成し、コンテンツのツリーベース表現を走査してコンテンツの階層構造の中の少なくとも１つの項目を処理することによって、コンテンツの表現を生成することができ、ソースがコンテンツのツリーベース表現の走査中に識別表及び少なくとも１つのタイプ表を生成することができる、請求項１に記載のシステム。
【請求項３】
ソースがコンテンツのツリーベース表現を走査することができ、ソースが、コンテンツの項目を識別し、項目を識別表へ付加し、また項目のタイプに基づいて項目をタイプ表へ付加することによって識別表及び少なくとも１つのタイプ表を生成することができ、ソースが項目を識別し、コンテンツの少なくとも１つの項目について項目を識別表及びタイプ表へ付加することができる、請求項２に記載のシステム。
【請求項４】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、少なくとも１つの項目が関連づけられた要素タイプを有するとき、ソースが要素表を生成することができ、少なくとも１つの項目が関連づけられた属性タイプを有するとき、ソースが属性表を生成することができ、少なくとも１つの項目が関連づけられた文字データ・タイプを有するとき、ソースが文字データ表を生成することができる、請求項１に記載のシステム。
【請求項５】
各々の文字データ項目が少なくとも１つの用語を含み、ソースが、更に文字データ索引を含むコンテンツの表現を生成することができ、文字データ索引が少なくとも１つの文字データ項目の少なくとも１つの用語を含む、請求項４に記載のシステム。
【請求項６】
ソースが、文字データ項目を走査し、文字データ項目の少なくとも１つの用語を文字データ索引へ付加し、少なくとも１つの用語について、それぞれの用語を含む各々の文字データ項目の親項目を識別することによって、文字データ索引を生成することができ、ソースが文字データ項目を走査し、少なくとも１つの用語を付加し、文字データ表からの少なくとも１つの文字データ項目について、それぞれの文字データ項目の親項目を識別することができる、請求項５に記載のシステム。
【請求項７】
クライアントが、識別表及び少なくとも１つのタイプ表に基づいてコンテンツの少なくとも一部分のツリーベース表現を再作成し、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された部分にアクセスすることによって、コンテンツの少なくとも一部分にアクセスすることができる、請求項１に記載のシステム。
【請求項８】
クライアントが、ツリーベース表現の少なくとも１つのノードを生成することによって、コンテンツの少なくとも一部分のツリーベース表現を再作成することができ、各々のノードがコンテンツのそれぞれの部分の項目を表す、請求項７に記載のシステム。
【請求項９】
クライアントが、識別表から、コンテンツのそれぞれの部分の中の項目を選択し、選択された項目についてツリーベース表現のノードを生成し、選択された項目が少なくとも１つの子孫項目を有するとき、選択された項目の少なくとも１つの子孫項目を走査することによって、ツリーベース表現のノードを生成することができ、少なくとも１つの子孫項目の走査が、少なくとも１つの子孫項目の各々を表すノードを生成すること、及びそのノードをそれぞれの親項目に関連づけることを含む、請求項８に記載のシステム。
【請求項１０】
クライアントが、更に、コンテンツの少なくとも１つの項目を識別する質問を受け取り、質問によって識別された少なくとも１つの項目についてコンテンツの表現をサーチすることができ、クライアントが、サーチに基づいてコンテンツの少なくとも一部分にアクセスすることができ、コンテンツのアクセスされた部分が、質問によって識別された少なくとも１つの項目を含む、請求項１に記載のシステム。
【請求項１１】
クライアントが、質問によって識別されたコンテンツの少なくとも１つの項目を含むコンテンツの少なくとも一部分のツリーベース表現を再作成し、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成することによって、コンテンツの少なくとも一部分にアクセスすることができる、請求項１０に記載のシステム。
【請求項１２】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、クライアントが、少なくとも１つの要素項目の名前及び少なくとも１つの属性項目の名前の内の１つを含む質問を受け取ることができる、請求項１０に記載のシステム。
【請求項１３】
コンテンツの表現の識別表が、要素項目及び属性項目の内の少なくとも１つについて、それぞれの項目に関連づけられた名前を含み、クライアントが、質問の中に含まれた名前と一致する名前について識別表をサーチすることによって、コンテンツの表現をサーチすることができる、請求項１２に記載のシステム。
【請求項１４】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、クライアントが、少なくとも１つの文字データ項目の中に含まれる少なくとも１つの用語を含む質問を受け取ることができる、請求項１０に記載のシステム。
【請求項１５】
コンテンツの表現が、更に、少なくとも１つの文字データ項目の少なくとも１つの用語を含む文字データ索引を含み、クライアントが、質問の中に含まれる少なくとも１つの用語と一致する少なくとも１つの用語について文字データ索引をサーチすることによって、コンテンツの表現をサーチすることができる、請求項１４に記載のシステム。
【請求項１６】
コンテンツを提供する方法であって、
コンテンツの表現を生成することであって、該コンテンツが階層的に構造化されており、関連づけられたタイプを有する少なくとも１つの項目を含み、表現を生成することが識別表及び少なくとも１つのタイプ表を生成することを含み、コンテンツの各々の項目が、識別表の中に含まれ、また項目のタイプに基づいてタイプ表の中に含まれる、生成することと、
コンテンツの表現を提供することと、
識別表及び少なくとも１つのタイプ表を含むコンテンツの表現に基づいてコンテンツの少なくとも一部分にアクセスすることと
を含む方法。
【請求項１７】
コンテンツの表現を生成することが、更に、
少なくとも１つの項目を表す少なくとも１つのノードを含むコンテンツのツリーベース表現を生成することと、
コンテンツのツリーベース表現を走査して、コンテンツの階層構造の中の少なくとも１つの項目を処理することとを含み、
識別表及び少なくとも１つのタイプ表を生成することが、コンテンツのツリーベース表現の走査中に識別表及び少なくとも１つのタイプ表を生成することを含む、
請求項１６に記載の方法。
【請求項１８】
コンテンツのツリーベース表現を走査して識別表及び少なくとも１つのタイプ表を生成することが、
コンテンツの項目を識別することと、
項目を識別表へ付加することと、
項目のタイプに基づいて項目をタイプ表へ付加することとを含み、
項目を識別することと、項目を識別表へ付加することと、項目をタイプ表へ付加することとが、コンテンツの少なくとも１つの項目について起こる、
請求項１７に記載の方法。
【請求項１９】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、少なくとも１つのタイプ表を生成することが、
少なくとも１つの項目が、関連づけられた要素タイプを有するとき、要素表を生成し、少なくとも１つの項目が、関連づけられた属性タイプを有するとき、属性表を生成し、少なくとも１つの項目が、関連づけられた文字データ・タイプを有するとき、文字データ表を生成することを含む、
請求項１６に記載の方法。
【請求項２０】
各々の文字データ項目が少なくとも１つの用語を含み、コンテンツの表現を生成することが、更に、
少なくとも１つの文字データ項目の少なくとも１つの用語を含む文字データ索引を生成することを含む、
請求項１９に記載の方法。
【請求項２１】
文字データ索引を生成することが、
文字データ項目を走査することと、
文字データ項目の少なくとも１つの用語を文字データ索引へ付加することと、
少なくとも１つの用語について、それぞれの用語を含む各々の文字データ項目の親項目を識別することとを含み、
文字データ項目を走査し、少なくとも１つの用語を付加し、それぞれの文字データ項目の親項目を識別することが、文字データ表からの少なくとも１つの文字データ項目について起こる、
請求項２０に記載の方法。
【請求項２２】
コンテンツの少なくとも一部分にアクセスすることが、
識別表及び少なくとも１つのタイプ表に基づいてコンテンツの少なくとも一部分のツリーベース表現を再作成し、
再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された部分にアクセスする
ことを含む、請求項１６に記載の方法。
【請求項２３】
コンテンツの少なくとも一部分のツリーベース表現を再作成することが、ツリーベース表現の少なくとも１つのノードを生成することを含み、各々のノードがコンテンツのそれぞれの部分の項目を表す、請求項２２に記載の方法。
【請求項２４】
ツリーベース表現のノードを生成することが、
識別表から、コンテンツのそれぞれの部分の中の項目を選択することと、
選択された項目についてツリーベース表現のノードを生成することと、
選択された項目が少なくとも１つの子孫項目を有するとき、選択された項目の少なくとも１つの子孫項目を走査することとを含み、
少なくとも１つの子孫項目を走査することが、少なくとも１つの子孫項目の各々を表すノードを生成すること、及びノードをそれぞれの親項目に関連づけることを含む、
請求項２３に記載の方法。
【請求項２５】
更に、コンテンツの少なくとも１つの項目を識別する質問を受け取ることと、
質問によって識別された少なくとも１つの項目についてコンテンツの表現をサーチすることとを含み、
コンテンツの少なくとも一部分にアクセスすることが、サーチに基づいてコンテンツの少なくとも一部分にアクセスすることを含み、コンテンツのアクセスされた部分が、質問によって識別された少なくとも１つの項目を含む、
請求項１６に記載の方法。
【請求項２６】
コンテンツの少なくとも一部分にアクセスすることが、
質問によって識別されたコンテンツの少なくとも１つの項目を含むコンテンツの少なくとも一部分のツリーベース表現を再作成することと、
再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された部分にアクセスすることと
を含む、請求項２５に記載の方法。
【請求項２７】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、質問を受け取ることが、少なくとも１つの要素項目の名前及び少なくとも１つの属性項目の名前の内の１つを含む質問を受け取ることを含む、請求項２５に記載の方法。
【請求項２８】
コンテンツの表現の識別表が、要素項目及び属性項目の少なくとも１つについて、それぞれの項目に関連づけられた名前を含み、コンテンツの表現をサーチすることが、質問の中に含まれる名前と一致する名前について識別表をサーチすることを含む、請求項２７に記載の方法。
【請求項２９】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、質問を受け取ることが、少なくとも１つの文字データ項目の中に含まれる少なくとも１つの用語を含む質問を受け取ることを含む、請求項２５に記載の方法。
【請求項３０】
コンテンツの表現が、更に、少なくとも１つの文字データ項目の少なくとも１つの用語を含む文字データ索引を含み、コンテンツの表現をサーチすることが、質問の中に含まれる少なくとも１つの用語と一致する少なくとも１つの用語について文字データ索引をサーチすることを含む、請求項２９に記載の方法。
【請求項３１】
コンピュータ読み取り可能プログラム・コード部分を記憶された少なくとも１つのコンピュータ読み取り可能記憶媒体を含み、コンテンツを提供するコンピュータ・プログラムプロダクトであって、コンピュータ読み取り可能プログラム・コード部分が、
階層的に構造化され、関連づけられたタイプを有する少なくとも１つの項目を含むコンテンツの表現を生成する第１の実行可能部分であって、表現を生成することが識別表及び少なくとも１つのタイプ表を生成することを含み、コンテンツの各々の項目が識別表に含まれ、また項目のタイプに基づいてタイプ表に含まれる第１の実行可能部分と、
コンテンツの表現を提供する第２の実行可能部分と、
識別表及び少なくとも１つのタイプ表を含むコンテンツの表現に基づいてコンテンツの少なくとも一部分にアクセスする第３の実行可能部分と
を含むコンピュータ・プログラムプロダクト。
【請求項３２】
第１の実行可能部分が、少なくとも１つの項目を表す少なくとも１つのノードを含むコンテンツのツリーベース表現を生成し、コンテンツのツリーベース表現を走査して、コンテンツの階層構造の中の少なくとも１つの項目を処理することによって、コンテンツの表現を生成するように構成され、第１の実行可能部分が、コンテンツのツリーベース表現の走査中に識別表及び少なくとも１つのタイプ表を生成するように構成される、請求項３１に記載のコンピュータ・プログラムプロダクト。
【請求項３３】
第１の実行可能部分が、コンテンツのツリーベース表現を走査して、コンテンツの項目を識別し、項目を識別表に付加し、項目のタイプに基づいて項目をタイプ表に付加することによって識別表及び少なくとも１つのタイプ表を生成するように構成され、第１の実行可能部分が項目を識別し、コンテンツの少なくとも１つの項目について項目を識別表及びタイプ表に付加するように構成される、請求項３２に記載のコンピュータ・プログラムプロダクト。
【請求項３４】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、第１の実行可能部分が、少なくとも１つの項目が、関連づけられた要素タイプを有するとき、要素表を生成し、少なくとも１つの項目が、関連づけられた属性タイプを有するとき、属性表を生成し、少なくとも１つの項目が、関連づけられた文字データ・タイプを有するとき、文字データ表を生成するように構成される、請求項３１に記載のコンピュータ・プログラムプロダクト。
【請求項３５】
各々の文字データ項目が少なくとも１つの用語を含み、第１の実行可能部分が、更に文字データ索引を含むコンテンツの表現を生成するように構成され、文字データ索引が少なくとも１つの文字データ項目の少なくとも１つの用語を含む、請求項３４に記載のコンピュータ・プログラムプロダクト。
【請求項３６】
第１の実行可能部分が、文字データ項目を走査し、文字データ項目の少なくとも１つの用語を文字データ索引へ付加し、少なくとも１つの用語について、それぞれの用語を含む各々の文字データ項目の親項目を識別することによって文字データ索引を生成するように構成され、第１の実行可能部分が、文字データ項目を走査し、少なくとも１つの用語を付加し、文字データ表からの少なくとも１つの文字データ項目について、それぞれの文字データ項目の親項目を識別するように構成される、請求項３５に記載のコンピュータ・プログラムプロダクト。
【請求項３７】
第３の実行可能部分が、識別表及び少なくとも１つのタイプ表に基づいてコンテンツの少なくとも一部分のツリーベース表現を再作成し、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された部分にアクセスすることによって、コンテンツの少なくとも一部分にアクセスするように構成される、請求項３１に記載のコンピュータ・プログラムプロダクト。
【請求項３８】
第３の実行可能部分が、ツリーベース表現の少なくとも１つのノードを生成することによって、コンテンツの少なくとも一部分のツリーベース表現を再作成するように構成され、各々のノードがコンテンツのそれぞれの部分の項目を表す、請求項３７に記載のコンピュータ・プログラムプロダクト。
【請求項３９】
第３の実行可能部分が、識別表から、コンテンツのそれぞれの部分の中の項目を選択し、選択された項目についてツリーベース表現のノードを生成し、選択された項目が少なくとも１つの子孫項目を有するとき、選択された項目の少なくとも１つの子孫項目を走査することによって、ツリーベース表現のノードを生成するように構成され、少なくとも１つの子孫項目の走査が、少なくとも１つの子孫項目の各々を表すノードを生成すること、及びノードをそれぞれの親項目に関連づけることを含む、請求項３８に記載のコンピュータ・プログラムプロダクト。
【請求項４０】
更に、コンテンツの少なくとも１つの項目を識別する質問を受け取る第４の実行可能部分と、
質問によって識別された少なくとも１つの項目についてコンテンツの表現をサーチする第５の実行可能部分とを含み、
第３の実行可能部分が、サーチに基づいてコンテンツの少なくとも一部分にアクセスするように構成され、コンテンツのアクセスされた部分が、質問によって識別された少なくとも１つの項目を含む、
請求項３１に記載のコンピュータ・プログラムプロダクト。
【請求項４１】
第３の実行可能部分が、質問によって識別されたコンテンツの少なくとも１つの項目を含むコンテンツの少なくとも一部分のツリーベース表現を再作成し、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された部分にアクセスすることによって、コンテンツの少なくとも一部分にアクセスするように構成される、請求項４０に記載のコンピュータ・プログラムプロダクト。
【請求項４２】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、第４の実行可能部分が、少なくとも１つの要素項目の名前及び少なくとも１つの属性項目の名前の内の１つを含む質問を受け取るように構成される、請求項４０に記載のコンピュータ・プログラムプロダクト。
【請求項４３】
コンテンツの表現の識別表が、要素項目及び属性項目の少なくとも１つについて、それぞれの項目に関連づけられた名前を含み、第５の実行可能部分が、質問に含まれた名前と一致する名前について識別表をサーチすることによって、コンテンツの表現をサーチするように構成される、請求項４２に記載のコンピュータ・プログラムプロダクト。
【請求項４４】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、第４の実行可能部分が、少なくとも１つの文字データ項目に含まれる少なくとも１つの用語を含む質問を受け取るように構成される、請求項４０に記載のコンピュータ・プログラムプロダクト。
【請求項４５】
コンテンツの表現が、更に、少なくとも１つの文字データ項目の少なくとも１つの用語を含む文字データ索引を含み、第５の実行可能部分が、質問に含まれた少なくとも１つの用語と一致する少なくとも１つの用語について文字データ索引をサーチすることによって、コンテンツの表現をサーチするように構成される、請求項４４に記載のコンピュータ・プログラムプロダクト。
【請求項４６】
コンテンツを提供するソースであって、
コンテンツ・マネージャを作動することのできるプロセッサを含み、コンテンツ・マネージャがコンテンツの表現を生成することができ、コンテンツが階層的に構造化されて、関連づけられたタイプを有する少なくとも１つの項目を含み、コンテンツ・マネージャが、識別表及び少なくとも１つのタイプ表を生成することを含んで表現を生成することができ、コンテンツの各々の項目が識別表に含まれ、また項目のタイプに基づいてタイプ表に含まれ、コンテンツ・マネージャがコンテンツの表現を提供することができ、その後で表現に基づいてコンテンツにアクセスできるようにする、ソース。
【請求項４７】
コンテンツ・マネージャが、少なくとも１つの項目を表す少なくとも１つのノードを含むコンテンツのツリーベース表現を生成し、コンテンツのツリーベース表現を走査して、コンテンツの階層構造の中の少なくとも１つの項目を処理することによって、コンテンツの表現を生成することができ、コンテンツ・マネージャが、コンテンツのツリーベース表現の走査中に、識別表及び少なくとも１つのタイプ表を生成することができる、請求項４６に記載のソース。
【請求項４８】
コンテンツ・マネージャが、コンテンツのツリーベース表現を走査して、コンテンツの項目を識別し、項目を識別表へ付加し、また項目のタイプに基づいて項目をタイプ表へ付加することによって識別表及び少なくとも１つのタイプ表を生成することができ、コンテンツ・マネージャが項目を識別し、コンテンツの少なくとも１つの項目について項目を識別表及びタイプ表へ付加することができる、請求項４７に記載のソース。
【請求項４９】
コンテンツの少なくとも１つの項目が、関連づけられた名前を有し、コンテンツ・マネージャが、識別ＩＤを項目へ割り当てることを含んで項目を識別表へ付加することができ、識別ＩＤが項目のタイプ及び名前の組み合わせに対して一意である、請求項４８に記載のソース。
【請求項５０】
コンテンツ・マネージャが、タイプＩＤを項目へ割り当てることを含んで項目をタイプ表へ付加することができ、タイプＩＤがそれぞれのタイプ表の中の項目に対して一意である、請求項４８に記載のソース。
【請求項５１】
コンテンツ・マネージャが、更に、コンテンツの表現を生成する前にマークアップ手法に従ってコンテンツを構造化することができ、コンテンツ・マネージャが、構造化されたコンテンツの表現を生成することができる、請求項４６に記載のソース。
【請求項５２】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、少なくとも１つの項目が、関連づけられた要素タイプを有するとき、コンテンツ・マネージャが要素表を生成し、少なくとも１つの項目が、関連づけられた属性タイプを有するとき、コンテンツ・マネージャが属性表を生成し、少なくとも１つの項目が、関連づけられた文字データ・タイプを有するとき、コンテンツ・マネージャが文字データ表を生成することができる、請求項４６に記載のソース。
【請求項５３】
コンテンツの各々の項目が、識別表の中の項目を識別する識別ＩＤ、及びそれぞれのタイプ表の中の項目を識別するタイプＩＤを有し、コンテンツ・マネージャが要素表、属性表、及び文字データ表を生成して、それぞれのタイプ表が、少なくとも１つの項目について、識別表及びそれぞれのタイプ表の中の項目を識別し、またそれぞれの識別表の中の親項目を識別するようにする、請求項５２に記載のソース。
【請求項５４】
コンテンツ・マネージャが要素表を生成して、要素表が、更に、少なくとも１つの要素項目について、識別表及びそれぞれのタイプ表の中の少なくとも１つの子項目を識別するようにすることができ、
コンテンツ・マネージャが属性表を生成して、属性表が、少なくとも１つの属性項目について、それぞれの属性項目の値を含むようにすることができ、
コンテンツ・マネージャが文字データ表を生成して、文字データ表が、少なくとも１つの文字データ項目について、それぞれの文字データ項目のテキストを含むようにすることができる、
請求項５３に記載のソース。
【請求項５５】
各々の文字データ項目が少なくとも１つの用語を含み、コンテンツ・マネージャが、更に文字データ索引を含むコンテンツの表現を生成することができ、文字データ索引が少なくとも１つの文字データ項目の少なくとも１つの用語を含む、請求項５２に記載のソース。
【請求項５６】
コンテンツ・マネージャが、文字データ項目を走査し、文字データ項目の少なくとも１つの用語を文字データ索引へ付加し、少なくとも１つの用語について、それぞれの用語を含む各々の文字データ項目の親項目を識別することによって、文字データ索引を生成することができ、コンテンツ・マネージャが文字データ項目を走査し、少なくとも１つの用語を付加し、文字データ表からの少なくとも１つの文字データについて、それぞれの文字データ項目の親項目を識別することができる、請求項５５に記載のソース。
【請求項５７】
コンテンツを提供する方法であって、
コンテンツの表現を生成することであって、コンテンツが階層的に構造化され、関連づけられたタイプを有する少なくとも１つの項目を含み、表現を生成することが識別表及び少なくとも１つのタイプ表を生成することを含み、コンテンツの各々の項目が識別表の中に含まれ、また項目のタイプに基づいてタイプ表の中に含まれる、生成することと、
コンテンツの表現を提供して、その後で表現に基づいてコンテンツにアクセスできるようにすることと
を含む方法。
【請求項５８】
コンテンツの表現を生成することが、更に、
少なくとも１つの項目を表す少なくとも１つのノードを含むコンテンツのツリーベース表現を生成することと、
コンテンツのツリーベース表現を走査して、コンテンツの階層構造の中の少なくとも１つの項目を処理することとを含み、
識別表及び少なくとも１つのタイプ表を生成することが、コンテンツのツリーベース表現の走査中に識別表及び少なくとも１つのタイプ表を生成することを含む、
請求項５７に記載の方法。
【請求項５９】
コンテンツのツリーベース表現を走査して、識別表及び少なくとも１つのタイプ表を生成することが、
コンテンツの項目を識別することと、
項目を識別表へ付加することと、
項目のタイプに基づいて項目をタイプ表へ付加することとを含み、
項目を識別することと、項目を識別表へ付加することと、項目をタイプ表へ付加することとが、コンテンツの少なくとも１つの項目について起こる、
請求項５８に記載の方法。
【請求項６０】
コンテンツの少なくとも１つの項目が、関連づけられた名前を有し、項目を識別表へ付加することが、識別ＩＤを項目へ割り当てることを含み、識別ＩＤが項目のタイプ及び名前の組み合わせに対して一意である、請求項５９に記載の方法。
【請求項６１】
項目をタイプ表へ付加することが、タイプＩＤを項目へ割り当てることを含み、タイプＩＤがそれぞれのタイプ表の中の項目に対して一意である、請求項５９に記載の方法。
【請求項６２】
更に、コンテンツの表現を生成する前にマークアップ手法に従ってコンテンツを構造化することを含み、
コンテンツの表現を生成することが、構造化されたコンテンツの表現を生成することを含む、請求項５７に記載の方法。
【請求項６３】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、少なくとも１つのタイプ表を生成することが、
少なくとも１つの項目が、関連づけられた要素タイプを有するとき、要素表を生成し、少なくとも１つの項目が、関連づけられた属性タイプを有するとき、属性表を生成し、少なくとも１つの項目が、関連づけられた文字データ・タイプを有するとき、文字データ表を生成する
ことを含む、請求項５７に記載の方法。
【請求項６４】
コンテンツの各々の項目が、識別表の中の項目を識別する識別ＩＤ、及びそれぞれのタイプ表の中の項目を識別するタイプＩＤを有し、要素表、属性表、及び文字データ表を生成することが、要素表、属性表、及び文字データ表を生成して、それぞれのタイプ表が、少なくとも１つの項目について、識別表及びそれぞれのタイプ表の中の項目を識別し、それぞれの識別表の中の親項目を識別するようにすることを含む、請求項６３に記載の方法。
【請求項６５】
要素表を生成することが、要素表を生成して、要素表が、更に、少なくとも１つの要素項目について、識別表及びそれぞれのタイプ表の中の少なくとも１つの子項目を識別するようにすることを含み、
属性表を生成することが、属性表を生成して、属性表が、少なくとも１つの属性項目について、それぞれの属性項目の値を含むようにすることを含み、
文字データ表を生成することが、文字データ表を生成して、文字データ表が、少なくとも１つの文字データ項目について、それぞれの文字データ項目のテキストを含むようにすることを含む、
請求項６４に記載の方法。
【請求項６６】
各々の文字データ項目が少なくとも１つの用語を含み、コンテンツの表現を生成することが、更に、
少なくとも１つの文字データ項目の少なくとも１つの用語を含む文字データ索引を生成する
ことを含む、請求項６３に記載の方法。
【請求項６７】
文字データ索引を生成することが、
文字データ項目を走査することと、
文字データ項目の少なくとも１つの用語を文字データ索引へ付加することと、
少なくとも１つの用語について、それぞれの用語を含む各々の文字データ項目の親項目を識別することとを含み、
文字データ項目を走査することと、少なくとも１つの用語を付加することと、それぞれの文字データ項目の親項目を識別することとが、文字データ表からの少なくとも１つの文字データ項目について生じる、
請求項６６に記載の方法。
【請求項６８】
記憶されたコンピュータ読み取り可能プログラム・コード部分を有する少なくとも１つのコンピュータ読み取り可能記憶媒体を含み、コンテンツを提供するコンピュータ・プログラムプロダクトであって、コンピュータ読み取り可能プログラム・コード部分が、
階層的に構造化され、関連づけられたタイプを有する少なくとも１つの項目を含むコンテンツの表現を生成する第１の実行可能部分であって、表現を生成することが、識別表及び少なくとも１つのタイプ表を生成することを含み、コンテンツの各項目が識別表の中に含まれ、また項目のタイプに基づいてタイプ表の中に含まれる第１の実行可能部分と、
コンテンツの表現を提供して、その後で表現に基づいてコンテンツにアクセスできるようにする第２の実行可能部分と
を含むコンピュータ・プログラムプロダクト。
【請求項６９】
第１の実行可能部分が、少なくとも１つの項目を表す少なくとも１つのノードを含むコンテンツのツリーベース表現を生成し、コンテンツのツリーベース表現を走査して、コンテンツの階層構造の中の少なくとも１つの項目を処理することによって、コンテンツの表現を生成するように構成され、第１の実行可能部分が、コンテンツのツリーベース表現の走査中に識別表及び少なくとも１つのタイプ表を生成するように構成される、請求項６８に記載のコンピュータ・プログラムプロダクト。
【請求項７０】
第１の実行可能部分が、コンテンツのツリーベース表現を走査し、コンテンツの項目を識別することによって識別表及び少なくとも１つのタイプ表を生成するように構成され、
項目を識別表へ付加し、項目のタイプに基づいて項目をタイプ表へ付加し、
第１の実行可能部分が、項目を識別し、コンテンツの少なくとも１つの項目について項目を識別表及びタイプ表へ付加するように構成される、
請求項６９に記載のコンピュータ・プログラムプロダクト。
【請求項７１】
コンテンツの少なくとも１つの項目が、関連づけられた名前を有し、第１の実行可能部分が、識別ＩＤを項目へ割り当てることを含んで項目を識別表へ付加するように構成され、識別ＩＤが項目のタイプ及び名前の組み合わせに対して一意である、請求項７０に記載のコンピュータ・プログラムプロダクト。
【請求項７２】
第１の実行可能部分が、タイプＩＤを項目へ割り当てることを含んで項目をタイプ表へ付加するように構成され、タイプＩＤがそれぞれのタイプ表の中の項目に対して一意である、請求項７０に記載のコンピュータ・プログラムプロダクト。
【請求項７３】
更に、コンテンツの表現を生成する前にマークアップ手法に従ってコンテンツを構造化する第３の実行可能部分を含み、
第１の実行可能部分が、構造化されたコンテンツの表現を生成するように構成される、
請求項６８に記載のコンピュータ・プログラムプロダクト。
【請求項７４】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、少なくとも１つの項目が、関連づけられた要素タイプを有するとき、第１の実行可能部分が要素表を生成し、少なくとも１つの項目が、関連づけられた属性タイプを有するとき、属性表を生成し、少なくとも１つの項目が、関連づけられた文字データ・タイプを有するとき、文字データ表を生成するように構成される、請求項６８に記載のコンピュータ・プログラムプロダクト。
【請求項７５】
コンテンツの各々の項目が、識別表の中の項目を識別する識別ＩＤ、及びそれぞれのタイプ表の中の項目を識別するタイプＩＤを有し、第１の実行可能部分が要素表、属性表、及び文字データ表を生成するように構成され、それによって、それぞれのタイプ表が、少なくとも１つの項目について、識別表及びそれぞれのタイプ表の中の項目を識別し、またそれぞれの識別表の中の親項目を識別する、請求項７４に記載のコンピュータ・プログラムプロダクト。
【請求項７６】
第１の実行可能部分が要素表を生成するように構成され、それによって要素表が、更に、少なくとも１つの要素項目について、識別表及びそれぞれのタイプ表の中の少なくとも１つの子項目を識別するようにし、
第１の実行可能部分が属性表を生成するように構成され、それによって属性表が、少なくとも１つの属性項目について、それぞれの属性項目の値を含むようにし、
第１の実行可能部分が文字データ表を生成するように構成され、それによって文字データ表が、少なくとも１つの文字データ項目について、それぞれの文字データ項目のテキストを含むようにする、
請求項７５に記載のコンピュータ・プログラムプロダクト。
【請求項７７】
各々の文字データ項目が少なくとも１つの用語を含み、第１の実行可能部分が、更に文字データ索引を含むコンテンツの表現を生成するように構成され、文字データ索引が少なくとも１つの文字データ項目の少なくとも１つの用語を含む、請求項７４に記載のコンピュータ・プログラムプロダクト。
【請求項７８】
第１の実行可能部分が、文字データ項目を走査し、文字データ項目の少なくとも１つの用語を文字データ索引へ付加し、少なくとも１つの用語について、それぞれの用語を含む各々の文字データ項目の親項目を識別することによって、文字データ索引を生成するように構成され、第１の実行可能部分が、文字データ項目を走査し、少なくとも１つの用語を付加し、文字データ表からの少なくとも１つの文字データ項目について、それぞれの文字データ項目の親項目を識別するように構成される、請求項７７に記載のコンピュータ・プログラムプロダクト。
【請求項７９】
コンテンツにアクセスするクライアントであって、
アクセス・アプリケーションと通信することのできるプロセッサを含み、アクセス・アプリケーションがコンテンツの表現を受け取ることができ、コンテンツが階層的に構造化されて、関連づけられたタイプを有する少なくとも１つの項目を含み、コンテンツの表現が識別表及び少なくとも１つのタイプ表を含み、コンテンツの各項目が識別表の中に含まれ、また項目のタイプに基づいてタイプ表の中に含まれ、アクセス・アプリケーションが、識別表及び少なくとも１つのタイプ表を含むコンテンツの表現に基づいてコンテンツの少なくとも一部分にアクセスすることができるクライアント。
【請求項８０】
アクセス・アプリケーションが、識別表及び少なくとも１つのタイプ表に基づいてコンテンツの少なくとも一部分のツリーベース表現を再作成し、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成することによって、コンテンツの少なくとも一部分にアクセスすることができる、請求項７９に記載のクライアント。
【請求項８１】
アクセス・アプリケーションが、ツリーベース表現の少なくとも１つのノードを生成することによって、コンテンツの少なくとも一部分のツリーベース表現を再作成することができ、各々のノードがコンテンツのそれぞれの部分の項目を表す、請求項８０に記載のクライアント。
【請求項８２】
アクセス・アプリケーションが、識別表から、コンテンツのそれぞれの部分の中の項目を選択し、選択された項目についてツリーベース表現のノードを生成し、選択された項目が少なくとも１つの子孫項目を有するとき、選択された項目の少なくとも１つの子孫項目を走査することによって、ツリーベース表現のノードを生成することができ、少なくとも１つの子孫項目の走査が、少なくとも１つの子孫項目の各々を表すノードを生成すること、及びノードをそれぞれの親項目に関連づけることを含む、請求項８１に記載のクライアント。
【請求項８３】
コンテンツの少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、アクセス・アプリケーションが、コンテンツのそれぞれの部分の要素項目と、属性項目と、文字データ項目との内の少なくとも１つを表す少なくとも１つのノードを生成することによって、コンテンツの少なくとも一部分のツリーベース表現を再作成することができる、請求項８１に記載のクライアント。
【請求項８４】
少なくとも１つの属性項目が値を有し、また少なくとも１つの文字データ項目がテキストを有し、アクセス・アプリケーションが、更に、それぞれのノードが属性項目を表すときツリーベース表現のノードへ値を付加し、それぞれのノードが文字データ項目を表すときツリーベース表現のノードへテキストを付加することによって、コンテンツの少なくとも一部分のツリーベース表現を再作成することができる、請求項８３に記載のクライアント。
【請求項８５】
アクセス・アプリケーションが、更に、コンテンツの少なくとも１つの項目を識別する質問を受け取り、質問によって識別された少なくとも１つの項目についてコンテンツの表現をサーチすることができ、アクセス・アプリケーションが、サーチに基づいてコンテンツの少なくとも一部分にアクセスすることができ、コンテンツのアクセスされた部分が、質問によって識別された少なくとも１つの項目を含む、請求項７９に記載のクライアント。
【請求項８６】
アクセス・アプリケーションが、質問によって識別されたコンテンツの少なくとも１つの項目を含むコンテンツの少なくとも一部分のツリーベース表現を再作成し、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された部分にアクセスすることによって、コンテンツの少なくとも一部分にアクセスすることができる、請求項８５に記載のクライアント。
【請求項８７】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、アクセス・アプリケーションが、少なくとも１つの要素項目の名前及び少なくとも１つの属性項目の名前の内の１つを含む質問を受け取ることができる、請求項８５に記載のクライアント。
【請求項８８】
コンテンツの表現の識別表が、要素項目及び属性項目の内の少なくとも１つについて、それぞれの項目に関連づけられた名前を含み、アクセス・アプリケーションが、質問の中に含まれる名前と一致する名前について識別表をサーチすることによって、コンテンツの表現をサーチすることができる、請求項８７に記載のクライアント。
【請求項８９】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、アクセス・アプリケーションが、少なくとも１つの文字データ項目に含まれた少なくとも１つの用語を含む質問を受け取ることができる、請求項８５に記載のクライアント。
【請求項９０】
コンテンツの表現が、更に、少なくとも１つの文字データ項目の少なくとも１つの用語を含む文字データ索引を含み、アクセス・アプリケーションが、質問に含まれる少なくとも１つの用語と一致する少なくとも１つの用語について文字データ索引をサーチすることによって、コンテンツの表現をサーチすることができる、請求項８９に記載のクライアント。
【請求項９１】
コンテンツにアクセスする方法であって、
コンテンツの表現を提供し、ここでコンテンツが階層的に構造化されていて、関連づけられたタイプを有する少なくとも１つの項目を含み、コンテンツの表現が識別表及び少なくとも１つのタイプ表を含み、コンテンツの各々の項目が識別表の中に含まれ、また項目のタイプに基づいてタイプ表の中に含まれ、
識別表及び少なくとも１つのタイプ表を含むコンテンツの表現に基づいてコンテンツの少なくとも一部分にアクセスする
ことを含む方法。
【請求項９２】
コンテンツの少なくとも一部分にアクセスすることが、
識別表及び少なくとも１つのタイプ表に基づいてコンテンツの少なくとも一部分のツリーベース表現を再作成することと、
再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された一部分にアクセスすることと
を含む、請求項９１に記載の方法。
【請求項９３】
コンテンツの少なくとも一部分のツリーベース表現を再作成することが、ツリーベース表現の少なくとも１つのノードを生成することを含み、各々のノードがコンテンツのそれぞれの部分の項目を表す、請求項９２に記載の方法。
【請求項９４】
ツリーベース表現のノードを生成することが、
識別表から、コンテンツのそれぞれの部分の中の項目を選択することと、
選択された項目についてツリーベース表現のノードを生成することと、
選択された項目が少なくとも１つの子孫項目を有するとき、選択された項目の少なくとも１つの子孫項目を走査することとを含み、
少なくとも１つの子孫項目を走査することが、少なくとも１つの子孫項目の各々を表すノードを生成すること、及びノードをそれぞれの親項目に関連づけることを含む、
請求項９３に記載の方法。
【請求項９５】
コンテンツの少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、コンテンツの少なくとも一部分のツリーベース表現を再作成することが、コンテンツのそれぞれの部分の要素項目と、属性項目と、文字データ項目との内の少なくとも１つを表す少なくとも１つのノードを生成することを含む、請求項９３に記載の方法。
【請求項９６】
少なくとも１つの属性項目が値を有し、少なくとも１つの文字データ項目がテキストを有し、コンテンツの少なくとも一部分のツリーベース表現を再作成することが、更に、
それぞれのノードが属性項目を表すとき、ツリーベース表現のノードへ値を付加することと、
それぞれのノードが文字データ項目を表すとき、ツリーベース表現のノードへテキストを付加することと
を含む、請求項９５に記載の方法。
【請求項９７】
更に、コンテンツの少なくとも１つの項目を識別する質問を受け取ることと、
質問によって識別された少なくとも１つの項目についてコンテンツの表現をサーチすることとを含み、
コンテンツの少なくとも一部分にアクセスすることが、サーチに基づいてコンテンツの少なくとも一部分にアクセスすることを含み、コンテンツのアクセスされた一部分が、質問によって識別された少なくとも１つの項目を含む、
請求項９１に記載の方法。
【請求項９８】
コンテンツの少なくとも一部分にアクセスすることが、
質問によって識別されたコンテンツの少なくとも１つの項目を含むコンテンツの少なくとも一部分のツリーベース表現を再作成することと、
再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された一部分にアクセスすることと
を含む、請求項９７に記載の方法。
【請求項９９】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、質問を受け取ることが、少なくとも１つの要素項目の名前及び少なくとも１つの属性項目の名前の内の１つを含む質問を受け取ることを含む、請求項９７に記載の方法。
【請求項１００】
コンテンツの表現の識別表が、要素項目及び属性項目の内の少なくとも１つについて、それぞれの項目に関連づけられた名前を含み、コンテンツの表現をサーチすることが、質問に含まれた名前と一致する名前について識別表をサーチすることを含む、請求項９９に記載の方法。
【請求項１０１】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、質問を受け取ることが、少なくとも１つの文字データ項目に含まれる少なくとも１つの用語を含む質問を受け取ることを含む、請求項９７に記載の方法。
【請求項１０２】
コンテンツの表現が、更に、少なくとも１つの文字データ項目の少なくとも１つの用語を含む文字データ索引を含み、コンテンツの表現をサーチすることが、質問に含まれた少なくとも１つの用語と一致する少なくとも１つの用語について文字データ索引をサーチすることを含む、請求項１０１に記載の方法。
【請求項１０３】
記憶されたコンピュータ読み取り可能プログラム・コード部分を有する少なくとも１つのコンピュータ読み取り可能記憶媒体を含み、コンテンツにアクセスするコンピュータ・プログラムプロダクトであって、コンピュータ読み取り可能プログラム・コード部分が、
階層的に構造化されて、関連づけられたタイプを有する少なくとも１つの項目を含むコンテンツの表現を受け取る第１の実行可能部分であって、コンテンツの表現が識別表及び少なくとも１つのタイプ表を含み、コンテンツの各々の項目が識別表の中に含まれ、また項目のタイプに基づいてタイプ表の中に含まれる第１の実行可能部分と、
識別表及び少なくとも１つのタイプ表を含むコンテンツの表現に基づいて、コンテンツの少なくとも一部分にアクセスする第２の実行可能部分と
を含むコンピュータ・プログラムプロダクト。
【請求項１０４】
第２の実行可能部分が、識別表及び少なくとも１つのタイプ表に基づいてコンテンツの少なくとも一部分のツリーベース表現を再作成し、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された一部分にアクセスすることによって、コンテンツの少なくとも一部分にアクセスするように構成される、請求項１０３に記載のコンピュータ・プログラムプロダクト。
【請求項１０５】
第２の実行可能部分が、ツリーベース表現の少なくとも１つのノードを生成することによってコンテンツの少なくとも一部分のツリーベース表現を再作成するように構成され、各々のノードがコンテンツのそれぞれの部分の項目を表す、請求項１０４に記載のコンピュータ・プログラムプロダクト。
【請求項１０６】
第２の実行可能部分が、識別表から、コンテンツのそれぞれの部分の中の項目を選択し、選択された項目についてツリーベース表現のノードを生成し、選択された項目が少なくとも１つの子孫項目を有するとき、選択された項目の少なくとも１つの子孫項目を走査することによって、ツリーベース表現のノードを生成するように構成され、少なくとも１つの子孫項目の走査が、少なくとも１つの子孫項目の各々を表すノードを生成すること、及びノードをそれぞれの親項目に関連づけることを含む、請求項１０５に記載のコンピュータ・プログラムプロダクト。
【請求項１０７】
コンテンツの少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、第２の実行可能部分が、コンテンツのそれぞれの部分の要素項目と、属性項目と、文字データ項目との内の少なくとも１つを表す少なくとも１つのノードを生成することによって、コンテンツの少なくとも一部分のツリーベース表現を再作成するように構成される、請求項１０５に記載のコンピュータ・プログラムプロダクト。
【請求項１０８】
少なくとも１つの属性項目が値を有し、少なくとも１つの文字データ項目がテキストを有し、第２の実行可能部分が、それぞれのノードが属性項目を表すときツリーベース表現のノードへ値を付加し、それぞれのノードが文字データ項目を表すときツリーベース表現のノードへテキストを付加することによって、コンテンツの少なくとも一部分のツリーベース表現を再作成するように構成される、請求項１０７に記載のコンピュータ・プログラムプロダクト。
【請求項１０９】
更に、コンテンツの少なくとも１つの項目を識別する質問を受け取る第３の実行可能部分と、
質問によって識別された少なくとも１つの項目についてコンテンツの表現をサーチする第４の実行可能部分とを含み、
第２の実行可能部分が、サーチに基づいてコンテンツの少なくとも一部分にアクセスするように構成され、コンテンツのアクセスされた部分が、質問によって識別された少なくとも１つの項目を含む、
請求項１０３に記載のコンピュータ・プログラムプロダクト。
【請求項１１０】
第２の実行可能部分が、質問によって識別されたコンテンツの少なくとも１つの項目を含むコンテンツの少なくとも一部分のツリーベース表現を再作成し、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された一部分にアクセスすることによって、コンテンツの少なくとも一部分にアクセスするように構成される、請求項１０９に記載のコンピュータ・プログラムプロダクト。
【請求項１１１】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、第３の実行可能部分が、少なくとも１つの要素項目の名前及び少なくとも１つの属性項目の名前の内の１つを含む質問を受け取るように構成される、請求項１０９に記載のコンピュータ・プログラムプロダクト。
【請求項１１２】
コンテンツの表現の識別表が、要素項目及び属性項目の少なくとも１つについて、それぞれの項目に関連づけられた名前を含み、第４の実行可能部分が、質問の中に含まれた名前と一致する名前について識別表をサーチするように構成される、請求項１１１に記載のコンピュータ・プログラムプロダクト。
【請求項１１３】
少なくとも１つの項目が、要素と、属性と、文字データとの内の１つを含む関連づけられたタイプを有し、第３の実行可能部分が、少なくとも１つの文字データ項目の中に含まれる少なくとも１つの用語を含む質問を受け取るように構成される、請求項１０９に記載のコンピュータ・プログラムプロダクト。
【請求項１１４】
コンテンツの表現が、更に、少なくとも１つの文字データ項目の少なくとも１つの用語を含む文字データ索引を含み、第４の実行可能部分が、質問の中に含まれる少なくとも１つの用語と一致する少なくとも１つの用語について文字データ索引をサーチするように構成される、請求項１１３に記載のコンピュータ・プログラムプロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、コンテンツを提供するシステム及び方法に関し、更に具体的には、表現に基づいてコンテンツを検索又はアクセスするときの効率が改善されるように、階層構造のコンテンツの表現を提供するシステム、方法、及びコンピュータ・プログラムプロダクトに関する。
【背景技術】
【０００２】
今日の教育環境において、真に多様で広範な主題に関して知識及び更なる教育を求める人々の数は、ますます増加している。理解できるように、教育及び訓練は非常に多様な形態を取る。教育は非常に若い年齢でスタートして高校まで継続する。その後で、人々は様々な総合大学、単科大学、又は技術センターへ通うかもしれない。しかし、教育及び訓練は、これらの公式的環境に限定されない。例えば、多くの会社、政府機関、及び他のエンティティが、トレーニング・プログラムを実施し、それぞれの仕事に必要なスキルを身に付けるように人々を訓練する。更に、大学教育を受けた後、多くの人々が何らかの大学院に出席する割合は、ますます増加している。大学院は、医学校、ロースクール、経営学大学院、及び非常に多様な他の先進カリキュラムを含む。そのような高い教育の後でも、例えば、人々は会議、セミナー、及び他の組織化されたミーティングへ出席し、情報及びアイデアを交換する。
【０００３】
従って、教育及び訓練は、非常に若い年齢のときから我々の人生に存在し、或る人々にとっては決して終了しない。前述したように、この教育は非常に多様な形態を取る。しかし、この教育を貫く一本の共通テーマは、知識を所有する人々及び材料から知識を欲する人々へ情報を伝達する必要性である。知識を提供する人々を以後は「教師」と呼び、知識を受け取る人々を「学生」と呼ぶことにする。
【０００４】
医学生の訓練環境から、現在使用される教育方法が洞察される。典型的には、医学生は、求めている知識によって豊かになる希望をもって教育を受け始める。典型的には、医学生は教室へ入り、そして１日目から明かりが消えて、スライドのスクリーン上への投影が開始される。スライドが表示される速度は、平均で一時間に１８０枚のスライドへ達するかもしれない。しかし、スライドは医学生の面前を通り過ぎ、医学生はこの情報を消化することを期待される。
【０００５】
教育で使用される情報は、多数の源から来る。例えば、医学生へ表示されるスライドは、教授が何年も費やして収集した結果であるかもしれない。更に、スライドは、教授が、引退する前は学部長であった自身の指導者から取得したものの１つであるかもしれない。
【０００６】
学生は、それらのスライドが非常に価値を有するものとして正しく受け取る。しかし、学生は一回、わずか一回だけスライドを見て、スライドは永久に過ぎ去ってしまう。講義の後、学生は単独又はグループで勉強しながら、スライドを思い出そうと試みる。学生は、多くの場合、スライドが講義で表示されたとき、スライドを描こうと試みるが成功しない。しかし、スライドの精髄を実際に捕捉する前に、次のスライドが表示されている。従って、講義の後で、学生は教授に近づき、謙虚にスライドのコピーを求める。しかし、スライドは、多くの場合、教授のキャリアを表す。その結果、教授は、如何なる形式であれ、その書類の複製を助けることに躊躇する。
【０００７】
上記のシナリオは、教師から学生への情報及び知識の交換を妨げる多様な状況の１つを例示する。従って、シナリオの結果として、開示された知識を学生が再作成することになる。この再現は、スライド又はその日に講義で呈示された他の情報の覚え書き又は不完全な複製の形態である。従って、教師から学生へ知識を交換する方法であって、全ての当事者に利益があると共に受け入れられる方法を、提供する必要性が存在する。
【０００８】
代替として、教師が材料を準備して学生へ提供する場合が存在する。しかし、この場合でも、共通の問題が存在する。例えば、教師は供給源の本から好みの線図をコピーし、その線図を自分自身が創作した材料の中に貼り付けるかもしれない。次に、教師は、このコピーされた線図を教師自身のテキストで取り囲むかもしれない。これは一つには、潜在的な著作権侵害となる。更に、デスクトップ・パブリッシング機能の出現によって、これらの材料の累積は、次第に容易になりつつある。学生は、この材料が教授から直接に来たものとして厳正に受け取り、その結果、大きな価値がある材料と考える。更に、大学は、例えば、学生が教授の材料を購入することを要求するかもしれない。他の場合、大学は、学生が特定の出版社から一連の材料を買うことを奨励する。
【０００９】
従って、管理者、教授会のメンバー、及び学生が研究材料の品質低下に関して失望及び心配する状況が、学問の世界及び他の学習環境で展開されている。人々は、材料を提供する教師の視野から、及び材料を受け取る学生の視野から、共に失望している。学生にとって、テストの場合及び他の場合における材料に関する命令が彼らのキャリアの成功を左右する点で、特に失望的である。
【００１０】
前記の問題に対処するため、非常に多様な源から情報を効果的に収集して、この収集物から材料の１つ又は複数の項目を効率的な方法で学生へ提供するシステムが開発された。１つのそのようなシステムによれば、ユーザは、容易にアクセスできる収集物として、組織のための全体的教育カリキュラムを入手することができる。即ち、収集物は、特定の組織、例えば、大学又は会社へグローバルなものとして特徴づけられる。その収集物の中には、特定の組織が使用する全てのカリキュラム材料が含まれる。そして、システムは収集物の中の情報の誘導を提供することができ、それによってユーザは、収集物の中の１つ又は複数の材料項目が、例えば、あたかも単一のテキストブック、定期刊行物、ビデオ、又は論文であるかのように、それらの材料項目と対話することができる。
【００１１】
そのようなシステムにおいて、テキスト及び図形を含むカリキュラム材料は、様々な源、例えば、多数の教授及び／又は出版社から取得することができ、その後でディジタル化することができる。この点に関して、テキストはキーで再入力されるかプログラムで変換され、図形は走査される。次に、テキスト及び図形の双方は、「マークアップ」言語、例えば、拡張可能マークアップ言語（ＸＭＬ）を使用して再結合される。そのような場合、カリキュラム材料は階層的に構造化される。即ち、本は章を含み、章は節を含み、節は項を含み、以下同様である。１つ又は複数の章、節、項などの中に、カリキュラムは図形、例えば、線図及び／又はフローチャートを含んでよい。
【００１２】
理解されるように、そのようなディジタル化カリキュラム材料は非常に大きなファイルを有し、記憶及びレンダリングしてユーザへ表示するためには大量のメモリを必要とする。例えば、ＰＲＩＮＣＩＰＬＥＳ  ＯＦ  ＩＮＴＥＲＮＡＬ  ＭＥＤＩＣＩＮＥという本は、完全にディジタル化してＸＭＬに従いマークアップするために４０ＭＢを必要とする。そのような場合、例えば、ユーザによって操作されるコンピュータ・システムは、望ましくない時間量でディジタル化カリキュラム材料をレンダリングしてユーザへ表示し、或る場合には、コンピュータ・システムが材料を正しく表示できないほどコンピュータ・システムを過負荷にする。
【００１３】
従って、所与の時間に材料の一部分のみがレンダリングされて表示されるように、材料を構成することが望ましい。しかし、材料をこのように構造化しても、コンピュータ・システムは、材料をレンダリングして表示するためには、望ましくない時間量を必要とするかもしれない。この点に関して、コンピュータ・システムは、階層的に構造化されたカリキュラム材料の一部分のみをレンダリングするため、通常、メモリから階層的に上から下へ材料にアクセスして、カリキュラム材料の特定の部分が突き止められるまで、アクセスされた材料を走査する必要がある。しかし、そのようなプロセスは、典型的には、非効率的である。なぜなら、後でコンピュータ・システムが所望の部分をレンダリングして表示するときに利用しないカリキュラム材料部分（即ち、所望の部分を突き止める前に走査される部分）に、コンピュータ・システムがアクセスしなければならないからである。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上記の背景を考慮に入れて、本発明の実施形態は、コンテンツを提供する改善されたシステム、方法、及びコンピュータ・プログラムプロダクトを提供する。本発明の実施形態のシステム、方法、及びコンピュータ・プログラムプロダクトは、少なくとも１つの項目、及び更に典型的には、複数の項目を含む階層構造コンテンツの表現を生成することができる。コンテンツの表現は、その後で、表現に基づいてコンテンツの少なくとも一部分にアクセスするため、例えば、クライアントへ提供可能である。有利には、表現に基づいてコンテンツにアクセスすることによって、コンテンツ又はその選択部分をレンダリングすることができる。レンダリングするとき、クライアントは、従来のシステムで要求されるように階層的に上から下へコンテンツにアクセスして、コンテンツの選択部分が突き止められるまで、アクセスされた材料を走査する必要はない。従って、クライアントが選択部分をレンダリングして表示するため続いて利用するコンテンツ部分にアクセスすることだけを、クライアントに要求することによって、コンテンツの表現は、クライアントがコンテンツにアクセスし、その後でレンダリングすることを容易にする。
【課題を解決するための手段】
【００１５】
本発明の１つの態様によれば、コンテンツを提供するシステムであって、ソース及びクライアントを含むシステムが提示される。ソースはコンテンツの表現を生成することができ、コンテンツは階層的に構造化され、関連づけられたタイプを有する少なくとも１つの項目を含む。この点に関して、ソースは識別表及び少なくとも１つのタイプ表を含む表現を生成することができ、コンテンツの各々の項目は識別表の中に含まれ、また項目のタイプに基づいてタイプ表の中に含まれる。表現を生成した後、ソースは、例えば、クライアントへコンテンツの表現を提供することができる。次に、クライアントはコンテンツの表現を受け取ることができ、表現に基づいてコンテンツの少なくとも一部分にアクセスすることができる。
【００１６】
ソースは、少なくとも１つの項目を表現する少なくとも１つのノードを含むコンテンツのツリーベース表現を生成し、コンテンツのツリーベース表現を走査して、コンテンツの階層構造の中の少なくとも１つの項目を処理することによって、コンテンツの表現を生成することができる。そのような場合、ソースは、コンテンツのツリーベース表現の走査中に、識別表及び少なくとも１つのタイプ表を生成することができる。更に具体的には、ソースはコンテンツのツリーベース表現を走査し、識別表及び少なくとも１つのタイプ表を生成することができる。この生成は、最初にコンテンツの項目を識別し、その項目を識別表に付加し、次に項目のタイプに基づいて、その項目をタイプ表に付加することによって行われる。こうして、ソースは項目を識別し、コンテンツの項目の少なくとも１つについて、識別表及びタイプ表へその項目を付加することができる。
【００１７】
１つの典型的な場合には、コンテンツの項目の各々は、要素、属性、又は文字データの関連づけられたタイプを有する。この点に関して、ソースは、少なくとも１つの項目が、関連づけられた要素タイプを有するとき、要素表を生成することができ、少なくとも１つの項目が、関連づけられた属性タイプを有するとき、属性表を生成することができ、少なくとも１つの項目が、関連づけられた文字データ・タイプを有するとき、文字データ表を生成することができる。
【００１８】
更に、そのような場合、各々の文字データ項目は、少なくとも１つの用語を含むことができる。従って、ソースは、更に文字データ索引を含むコンテンツの表現を生成することができる。文字データ索引は、少なくとも１つの文字データ項目の少なくとも１つの用語を含む。更に具体的には、ソースは、文字データ項目を走査し、文字データ項目の少なくとも１つの用語を文字データ索引へ付加することによって、文字データ索引を生成することができる。こうして、ソースは、少なくとも１つの用語について、それぞれの用語を含む各々の文字データ項目の親項目を識別することができる。前と同じように、ソースは、文字データ項目を走査し、少なくとも１つの用語を付加し、文字データ項目の少なくとも１つについて文字データ表から各々の文字データ項目の親項目を識別することができる。
【００１９】
クライアントに関して、更に具体的には、クライアントは、識別表及び少なくとも１つのタイプ表に基づいてコンテンツの少なくとも一部分のツリーベース表現を再作成することによって、コンテンツの少なくとも一部分にアクセスすることができる。その後で、クライアントは、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成して、コンテンツの生成された部分にアクセスすることができる。更に具体的には、クライアントは、ツリーベース表現を再作成し、ツリーベース表現の少なくとも１つのノードを生成することができる。各々のノードは、コンテンツのそれぞれの部分の項目を表す。例えば、クライアントは、識別表から、コンテンツのそれぞれの部分の中の項目を選択し、選択された項目についてツリーベース表現のノードを生成し、選択された項目が少なくとも１つの子孫項目を有するとき、選択された項目の少なくとも１つの子孫項目を走査することによって、ツリーベース表現のノードを生成することができる。この点に関して、子孫項目の走査は、少なくとも１つの子孫項目の各々を表すノードを生成すること、及びそのノードをそれぞれの親項目に関連づけることを含むことができる。
【００２０】
クライアントは、更に、コンテンツの１つ又は複数の項目についてコンテンツの表現をサーチすることができる。そのような場合、クライアントは、コンテンツの少なくとも１つの項目を識別する質問（クエリー）を受け取ることができる。次に、クライアントは、質問によって識別された項目についてコンテンツの表現をサーチすることができる。その場合、クライアントは、サーチに基づいてコンテンツの少なくとも一部分にアクセスすることができる。コンテンツのアクセスされた部分は、質問によって識別された項目を含む。次に、クライアントは、質問によって識別されたコンテンツの項目を含むコンテンツの少なくとも一部分のツリーベース表現を再作成し、再作成されたツリーベース表現からコンテンツの少なくとも一部分を生成することによって、コンテンツの少なくとも一部分にアクセスすることができる。
【００２１】
更に具体的には、コンテンツの項目の各々が、要素、属性、又は文字データの関連づけられたタイプを有するとき、クライアントは、１つ又は複数の要素項目の名前、又は１つ又は複数の属性項目の名前を含む質問を受け取ることができる。そのような場合、コンテンツの表現の識別表は、任意の要素及び属性項目について、それぞれの項目に関連づけられた名前を含むことができる。従って、クライアントは、質問に含まれた名前と一致する名前について識別表をサーチすることによって、コンテンツの表現をサーチすることができる。対照的に、クライアントは、少なくとも１つの文字データ項目に含まれる少なくとも１つの用語を含む質問を受け取ることができる。これらの場合、コンテンツの表現は、更に、少なくとも１つの文字データ項目の少なくとも１つの用語を含む文字データ索引を含むことができる。従って、クライアントは、質問に含まれる少なくとも１つの用語と一致する少なくとも１つの用語について文字データ索引をサーチすることによって、コンテンツの表現をサーチすることができる。
【００２２】
本発明の他の態様によれば、コンテンツを提供する方法及びコンピュータ・プログラムプロダクトが提示される。更に、コンテンツを提供するソースが提示され、コンテンツにアクセスするクライアントが提示される。コンテンツの表現を生成し、表現に基づいてコンテンツの部分にアクセスすることによって、本発明の実施形態は、クライアントがコンテンツの一部分をレンダリングできるようにする。クライアントは、従来のシステムで要求されたように、階層的に上から下へコンテンツにアクセスし、コンテンツの選択部分が突き止められるまで、アクセスされた材料を走査することなく、コンテンツの一部分をレンダリングすることができる。上記で指摘し、下記で説明するように、コンテンツの表現は、クライアントが選択部分をレンダリングして表示するため続いて利用されるコンテンツの部分にアクセスすることだけを要求することによって、クライアントがコンテンツにアクセスし、その後でレンダリングすることを容易にする。従って、本発明の実施形態のシステム、方法、及びコンピュータ・プログラムプロダクトは、従来技術によって識別された問題を解決し、追加の利点を提供する。
【００２３】
これまで本発明を概略的な言葉で説明したが、ここで添付の図面を参照する。図面は必ずしも一定の率で縮尺されてはいない。
【発明を実施するための最良の形態】
【００２４】
これから添付の図面を参照して、本発明を更に十分に説明する。図面には本発明の好ましい実施形態が示される。しかし、本発明は、多くの異なった形態で具体化されてよく、本明細書で記述される実施形態に限定されると解釈されてはならない。むしろ、これらの実施形態は、この開示が完璧かつ完全であり、本発明の範囲を当業者へ十分に伝達するように提供される。全体を通して、同様の数字は同様の要素を示す。
【００２５】
図１を参照すると、階層構造のコンテンツを表現し、表現に基づいてコンテンツにアクセスするシステム１０は、コンテンツの１つ又は複数のソース１２及びクライアント１４を含む（それぞれ１つが示される）。コンテンツの各々のソース１２は、１つ又は複数のクライアント１４と直接及び／又は間接に通信することができる。同様に、各々のクライアント１４は、１つ又は複数のソース１２と直接及び／又は間接に通信することができる。例えば、１つ又は複数のソース１２は、コンテンツを１つ又は複数のクライアント１４へ提供することができる。コンテンツは取り外し可能な電子記憶媒体１６（例えば、ＤＶＤ）に記憶されている。追加的又は代替的に、例えば、１つ又は複数のソース１２は、１つ又は複数のネットワーク１８を介してコンテンツを１つ又は複数のクライアント１４へ提供することができる。ネットワークは、１つ又は複数の異なるタイプのネットワークの多数の組み合わせの中の任意のものを含むことができる。例えば、ネットワークは１つ又は複数のデータ・ネットワーク、例えば、ローカルエリアネットワーク（ＬＡＮ）、都市域網（ＭＡＮ）、及び／又は広域ネットワーク（ＷＡＮ）（例えば、インターネット）を含むことができ、１つ又は複数の有線及び／又は無線音声ネットワークを含むことができる。音声ネットワークの中には、有線ネットワーク、例えば、公衆電話回線網（ＰＳＴＮ）、及び／又は無線ネットワーク、例えば、ＩＳ−１３６（ＴＤＭＡ）、ＧＳＭ、及び／又はＩＳ−９５（ＣＤＭＡ）が含まれる。しかし、例示を目的として、下記では、特に断らない限り、ネットワークはインターネット（即ち、ＷＡＮ）を含む。
【００２６】
ソース１２及びクライアント１４は、本発明の実施形態に従って動作することのできる多数の異なったエンティティ、デバイスなどの１つ又は複数を含むことができる。この点に関して、１つ又は複数のソース１２及びクライアント１４は、１つ又は複数の処理要素、例えば、１つ又は複数のラップトップ・コンピュータ、デスクトップ・コンピュータ、サーバ・コンピュータなどを含むか、備えるか、又はそれらの中に具体化されてよい。追加的又は代替的に、１つ又は複数のソース１２及びクライアント１４は、１つ又は複数の携帯用電子デバイス、例えば、１つ又は複数の移動電話、携帯用ディジタル・アシスタント（ＰＤＡ）、ページャなどを含むか、備えるか、又はそれらの中に具体化されてよい。例えば、ソース１２及びクライアント１４の各々は、インターネット（例えば、ネットワーク１８）を介して相互に通信することのできる処理要素を含むことができる。しかし、理解すべきは、１つ又は複数のソース１２及びクライアント１４は、それぞれのエンティティの１つ又は複数の機能を実行するユーザを含むか、そのようなユーザに関連づけられてよいことである。従って、下記で説明するように、「ソース」の用語は、ソース及び／又はソース・ユーザを意味する。その逆も同様である。同じく、「クライアント」の用語は、クライアント及び／又はクライアント・ユーザを意味する。その逆も同様である。
【００２７】
ここで図２を参照すると、本発明の１つの実施形態に従って、ソース１２及び／又はクライアント１４として動作することのできるエンティティのブロック図が示される。別々のエンティティとして示されるが、幾つかの実施形態では、１つ又は複数のエンティティがソース１２及びクライアント１４の双方をサポートしてよい。この場合、ソース１２及びクライアント１４の双方は、論理的に分離されているが、エンティティの中で場所を共用する。更に理解すべきは、１つ又は複数のエンティティが、１つ又は複数の他のエンティティの１つ又は複数の機能を実行してよいことである。この点に関して、ソース１２はクライアント１４の１つ又は複数の機能を実行してよい。追加的又は代替的に、クライアント１４はソース１２の１つ又は複数の機能を実行してよい。
【００２８】
図示されるように、ソース１２及び／又はクライアント１４として動作することのできるエンティティは、一般的に、メモリ２２に接続されたプロセッサ２０を含む。プロセッサ２０は、更に、少なくとも１つのインターフェース２４又はデータ、コンテンツなどを送信及び／又は受信する他の手段へ接続可能である。この点に関して、インターフェースはユーザ・インターフェースを含むことができ、ユーザ・インターフェースはディスプレイ及びユーザ入力インターフェースを含むことができる。同様に、ユーザ入力インターフェースは、多数のデバイスの任意のものを含むことができる。このようなデバイスは、ユーザ、例えば、電子スキャナ、キーボード、マウス、及び／又はデータ、コンテンツなどを受け取ることのできる多数の他のデバイス構成要素の任意のものなどから、エンティティにデータを受け取らせる。
【００２９】
メモリ２２は、揮発性及び／又は不揮発性メモリを含むことができ、典型的には、コンテンツ、データなどを記憶する。この点に関して、メモリ２２は、典型的には、ソフトウェア・アプリケーション２６、命令などを記憶する。それは、プロセッサ２０が、本発明の実施形態に従って、エンティティの動作に関連したステップを実行するためである。例えば、下記で説明するように、エンティティがソース１２を含むとき、メモリ２２は、ソース１２に関連づけられたソフトウェア・アプリケーション、例えば、階層構造コンテンツを管理するコンテンツ・マネージャを記憶することができる。更に、例えば、エンティティがクライアント１４を含むとき、メモリ２２は、クライアント１４に関連づけられたソフトウェア・アプリケーション、例えば、ソース１２によって提供されたコンテンツにアクセスするアクセス・アプリケーションを記憶することができる。
【００３０】
本発明の実施形態によれば、ソース１２は、一般的に、１つ又は複数のコンテンツを１つ又は複数のクライアント１４へ提供することができる。例えば、ソース１２は、１つ又は複数の教育カリキュラムを、容易にアクセス可能な収集物として組織へ提供することができる。そのような場合、収集物は、特定の組織、例えば、単科大学又は会社へグローバルなものとして特徴づけられ、特定の組織が使用する複数のカリキュラム材料を含む。しかし、理解すべきは、カリキュラム材料は、ソース１２がクライアント１４へ提供できる多数の異なったタイプのコンテンツ、情報、データなどの１つにすぎないことである。従って、本明細書で使用される「カリキュラム材料」、「コンテンツ」、「情報」、及び「データ」の用語は、ソース１２からクライアント１４へ提供されるものを意味するため互換的に使用される。
【００３１】
簡単に言えば、下記で説明されるように、コンテンツをクライアント１４へ提供する前に、ソース１２は、或る方法でコンテンツを管理することができる。この方法によって、クライアント１４が従来の技法よりも迅速かつ効率的にコンテンツをレンダリングすることが容易になる。更に具体的には、ソース１２の上で動作しているコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、階層構造コンテンツの表現を構造化及び生成することができる。この表現は、今後は、コンテンツの「バイナリ表現」と呼ばれる。クライアント１４は、コンテンツのバイナリ表現を受け取ることができ、その後でバイナリ表現に基づいてコンテンツの全部又は選択部分にアクセスすることができる。更に具体的には、クライアント１４の上で動作しているアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、コンテンツのバイナリ表現、及び、所望であれば、コンテンツの選択部分を受け取り、バイナリ表現に基づいてコンテンツ又はその一部分を再作成することができる。有利には、バイナリ表現に基づいてコンテンツにアクセスすることによって、クライアント１４は、その後で、コンテンツ又はその選択部分をレンダリングすることができる。このレンダリングでは、従来のシステムで要求されるように、アクセス・アプリケーションがメモリ２２から階層的に上から下までコンテンツにアクセスして、コンテンツの選択部分が突き止められるまでアクセス材料を走査する必要はない。こうして、コンテンツのバイナリ表現は、選択部分をレンダリングして表示するためクライアント１４によって続いて利用されるコンテンツ部分にアクセスすることだけがアクセス・アプリケーションに要求されることによって、アクセス・アプリケーションがコンテンツにアクセスし、その後でレンダリングすることを容易にする。
【００３２】
本明細書で説明されるように、各々がソフトウェア（即ち、ソフトウェア・アプリケーション２６）を含むコンテンツ・マネージャ及びアクセス・アプリケーションの各々は、それぞれソース１２及びクライアント１４の上で動作することができる。しかし、理解すべきは、コンテンツ・マネージャ及び／又はアクセス・アプリケーションは、代替として、ファームウェア、ハードウェアなどの中に具体化できることである。更に、コンテンツ・マネージャ及びアクセス・アプリケーションは、本明細書では、それぞれソース１２及びクライアント１４の上で動作するように図示及び説明されるが、理解すべきは、コンテンツ・マネージャ及び／又はアクセス・アプリケーションが、例えば、インターネット（即ち、ネットワーク１８）を横切るようにソース１２及び／又はクライアント１４から分散されて通信するエンティティ（例えば、パーソナル・コンピュータ、ラップトップ・コンピュータ、サーバ・コンピュータなど）の上で動作できることである。
【００３３】
ここで図３を参照する。図３は、本発明の実施形態に従ってコンテンツを提供する方法のフローチャートを示す。方法は、ソース１２が、１つ又は複数のクライアント１４へ、１つ又は複数のコンテンツ、例えば、１つ又は複数のカリキュラム材料を提供することを含む。この点に関して、ソース１２は、１つ又は複数のクライアント１４へコンテンツを直接提供することができる。代替として、ソース１２は、間接に、例えば、ソース１２からそのようなコンテンツの多数の頒布者又は他の提供者の任意の１つ又は複数を介して、１つ又は複数のクライアント１４へコンテンツを提供することができる。ソース１２がクライアント１４へコンテンツを直接に提供するか間接に提供するかに関わりなく、ソース１２は多数の異なった方法の中の任意の方法でコンテンツを提供することができる。
【００３４】
例えば、カリキュラム材料を提供する１つの有利な実施形態において、ブロック２８で示されるように、ソース１２は、ソース１２のユーザ入力インターフェース（例えば、インターフェース２４）を介してカリキュラム材料を受け取ることができる。カリキュラム材料を受け取った後、ソース１２は受け取った材料をソース１２のメモリ２２に記憶することができる。更に、ブロック３０で示されるように、カリキュラム材料を受け取った後、ソース１２はカリキュラム材料をフォーマット及びディジタル化することができる。その後で、ブロック３２で示されるように、ソース１２は、ソース・ユーザがカリキュラム材料を構造化するのを助けるか、カリキュラム材料を構造化することができる。例えば、ソース１２は、拡張可能マークアップ言語（ＸＭＬ）に従ってカリキュラム材料を構造化又はマークアップすることができる。しかし、理解すべきは、ソース１２が、多数の他のマークアップ言語、フォーマットなどの任意のものに従って、カリキュラム材料を構造化できることである。
【００３５】
当業者によって理解されるように、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）と同じく、ＸＭＬはタグを使用して、テキスト・ページの中で要素を記述する。しかし、ＨＴＭＬは既定のタグのみを利用するが、ＸＭＬでは、ページの開発者がタグを定義することができる。こうして、ＸＭＬタグは、事実上、任意のデータ項目を識別するために利用可能である。従って、ＸＭＬによって、マークアップ・ドキュメントは、データベース・レコードに類似した方法で機能することができる。この点に関して、ＸＭＬドキュメントの中のテキストは、２つのグループ、即ち文字データ及びマークアップへ分けられる。マークアップは要素及び属性を含み、要素及び属性はＸＭＬ構成要素のタグ及び構文によって定義可能であるが、文字データはコンテンツに記憶された情報を作り上げる。
【００３６】
更に具体的には、要素はマークアップされた項目であり、マークアップされた項目は、或るタイプのデータを区切る開始タグ及び終了タグを含む。要素の中のデータは、他の要素又は文字データを含むことができる。他方、属性は値を要素に関連づけることができる。それは、例えば、コンテンツの構造に大きく貢献しないが要素の情報的価値を増加するデータを記憶するためである。例えば、人間の解剖学を記述するディジタル化テキストブックは、人間の心臓の画像について要素を含むかもしれない。そのような場合、人間の心臓の要素は、画像を識別する値（「ｉｍａｇｅ．ｇｉｆ」）と一緒に、画像のソースを参照する属性（例えば、ｓｒｃ）を含むことができる。理解されるように、要素及び属性は、マークアップされた項目の種類を識別する名前又は他の識別子を含むことができる。この点に関して、要素の名前は、関連づけられた値を有する名前を含む属性の名前と一緒に、それぞれの要素の開始タグ及び終了タグの中に含まれる名前を含むことができる。
【００３７】
一般的に、ＸＭＬは文字を含む一連の包み（即ち、ＸＭＬタグ）として特徴づけることができる。この場合、包みは、それぞれの包みの中の文字を識別する。他方、文字はマークアップされたドキュメントの中のテキストに等しい。その場合、テキストは、それぞれのテキストに関連づけられたＸＭＬタグによって識別可能である。理解されるように、ＸＭＬの使用と組み合わせられて、文書型定義（ＤＴＤ）は、ドキュメントがＸＭＬを使用してマークアップされる規則を提供する。この点に関して、ＤＴＤはＸＭＬマークアップ・ドキュメントの構造を指定する。その指定の中には、ドキュメントのコンテンツを入れ子にする方法が含まれる。
【００３８】
カリキュラム・コンテンツは、人間の意思決定手法に従ってマークアップ可能である。そのような場合、ソース・ユーザはソース１２と対話して、カリキュラム・コンテンツをマークアップする。代替として、ソース１２は、自動化手法に従って、典型的にはユーザとの対話なしに、カリキュラム・コンテンツをマークアップするように機能することができる。例えば、ソース１２は、カリキュラム・コンテンツの中の１つ又は複数のキーワードの検出に基づいて、カリキュラム・コンテンツをマークアップすることができる。カリキュラム・コンテンツのマークアップに続いて、ソース１２は、マークアップされたカリキュラム材料を、ソース１２のメモリ２２に記憶することができる。
【００３９】
更に具体的には、ソース１２は、ソース１２のメモリ２２からカリキュラム材料を最初にダウンロードすることによって動作することができる。次に、カリキュラム材料の各々の項目について、ソース１２は、項目が図形であるかテキストであるかを決定することができる。項目が図形であれば、ソース１２は図形をディジタル化することができ（必要であれば）、その後で図形をタグして、マークアップされたテキストの中で図形が配置される場所を指定することができる。他方、項目がテキストであれば、ソース１２は、前述したように、適切なマークアップ言語でテキストを構造化することができる。次に、図形がタグされ、テキストがマークアップされた後、所望されるならば、例えば、ソース１２がカリキュラム材料を適切にディジタル化及び構造化したことを検証することによって、ソース１２はカリキュラム材料を検証することができる。
【００４０】
下記で説明するように、ソース１２がカリキュラム材料をマークアップするとき、又はその後で、ソース１２又は更に具体的にはコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、材料のバイナリ表現を生成することができる。簡単に説明すると、コンテンツ・マネージャは、カリキュラム材料の項目を含む多数の表を生成することができる。この場合、各々の項目は、グローバルな識別ＩＤ（識別子）表及び項目のタイプに特定されたタイプ表の中で表現される。例えば、ＸＭＬによれば、コンテンツの項目は、項目のタイプ、例えば、要素、属性、又は文字データによって特徴づけられる。この点に関して、各々の項目は、識別表の中でその項目を識別する関連識別ＩＤ、及びそれぞれのタイプ表、即ち、要素表、属性表、又は文字データ表の中でその項目を識別するタイプＩＤを含むことができる。次に、各々の表の中で、ＩＤは、コンテンツのそれぞれの項目に関連する１つ又は複数の情報を含むことができる。
【００４１】
ソース１２がカリキュラム材料を構造化し、カリキュラム材料のバイナリ表現を生成した後、ブロック３４で示されるように、ソース１２は１つ又は複数の「レコード収集物」を集成し、各々のレコード収集物が、１つ又は複数のクライアント・ユーザにとって特に興味のある１つ又は複数のカリキュラム材料となるようにすることができる。１つの典型的なシナリオにおいて、複数の異なったクライアント・ユーザにとって興味のあるカリキュラム材料は、ソース１２のメモリ２２の中に記憶される。そのような場合、ソース１２のメモリ２２の中に記憶されたカリキュラム材料は、１つ又は複数のクライアント・ユーザのために、１つ又は複数のバックエンド収集物、又はカリキュラム材料のサブセットを生成するために使用可能である。しかし、バックエンド収集物を形成する前に、ソース１２は１つ又は複数のレコード収集物を生成することができる。
【００４２】
レコード収集物を生成するため、ソース１２は、１つ又は複数のクライアント・ユーザが望むか特に興味のある１つ又は複数のカリキュラム材料のリストを、最初に集成するか受け取ることができる。例えば、解剖学講義の学生を含むクライアント・ユーザについては、カリキュラム材料のリストはテキストブック、Ｈｅｎｒｙ  Ｇｒａｙによる著作のＡＮＡＴＯＭＹ  ＯＦ  ＴＨＥ  ＨＵＭＡＮ  ＢＯＤＹを含むかもしれない。追加的又は代替的に、カリキュラム材料のリストは、そのような学生にとって特に興味のある他のテキスト、ビデオ、及び／又はオーディオ・コンテンツを含むかもしれない。リストされたカリキュラム材料がどのようなものであれ、リストされたカリキュラム材料について、ソース１２は、その後で、リストされたカリキュラム材料、又はソース１２のメモリ２２に記憶されるか取得可能なカリキュラム材料の少なくともリストされたものを特定のレコード収集物へ付加することができる。この点に関して、一度、カリキュラム材料がメモリ２２に記憶されているか取得可能であることをソース１２が決定すると、ソース１２はそのカリキュラム材料を検索して、それぞれのレコード収集物へ付加することができる。一度完了すると、全ての利用可能なカリキュラム材料を含むそれぞれのレコード収集物は、ソース１２のメモリ２２の中に記憶可能である。
【００４３】
前述したように、１つ又は複数のレコード収集物を生成した後、ソース１２は、ブロック３６で示されるように、生成されたレコード収集物に基づいて、１つ又は複数のアクセス可能なバックエンド収集物を集成することができる。最初、多数の異なったクライアント・ユーザが望むか特に興味のあるカリキュラム材料を含むレコード収集物をソース１２が生成又は記憶する場合、ソース１２は特定のレコード収集物を選択する入力を受け取ることができる。特定のレコード収集物の選択を受け取ると、ソース１２は、少なくとも１つのカリキュラム材料のバイナリ表現を含む選択されたレコード収集物を、メモリ２２から検索することができる。次に、ソース１２は、レコード収集物の中のカリキュラム材料のバイナリ表現を、アクセス可能なバックエンド収集物へ付加するように進むことができる。
【００４４】
１つ又は複数のバックエンド収集物を集成した後、ブロック４０で示されるように、ソース１２はカリキュラム材料のバイナリ表現を含むバックエンド収集物を提供するか、その提供を容易にすることができる。この点に関して、バイナリ表現を含むバックエンド収集物は、多くの異なった方法の中の任意の方法で提供可能である。例えば、１つ又は複数のバックエンド収集物は、取り外し可能な電子記憶媒体１６、例えば、ディスケット、ＣＤ、又は更に典型的には、ＤＶＤに記憶可能である。次に、ＤＶＤは、１つ又は複数のクライアント・ユーザ、又は更に具体的には、それぞれのＤＶＤに記憶されたバックエンド収集物のコンテンツ材料に特に興味をもつクライアント・ユーザへ提供可能である。代替として、例えば、１つ又は複数のバックエンド収集物は、１つ又は複数のネットワーク１８を介して１つ又は複数のクライアント・ユーザによってアクセス可能なソース１２又は他のプロセッサ（例えば、サーバ・コンピュータ）によって記憶又は維持可能である。コンテンツを提供するそのような手法の更なる情報については、２００１年８月８日に出願された「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｐｒｏｖｉｄｉｎｇ  ａ  Ｃｕｒｒｉｃｕｌｕｍ  Ｒｅｐｏｓｉｔｏｒｙ」と題するＰＣＴ特許出願公報第ＷＯ０２／１７２７６Ａ１を参照されたい。この公報の内容は、参照してその全体をここに組み込まれる。
【００４５】
前述したように、ソース１２がカリキュラム材料をマークアップするとき、又はその後で、ソース１２、又は特にコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、材料のバイナリ表現を生成することができる。ここで図４Ａ及び図４Ｂを参照する。図４Ａ及び図４Ｂは、本発明の１つの実施形態に従って階層構造コンテンツを表現する方法の様々なステップを示す。前に説明したように、コンテンツ・マネージャは、カリキュラム材料の項目を含む多数の表を生成することができる。ここで各々の項目は、グローバルな識別ＩＤ（識別子）表、及び項目のタイプに特定されたタイプ表の中に表現される。例えば、ＸＭＬによれば、コンテンツの項目は、項目のタイプ、例えば、要素、属性、又は文字データによって特性づけられ、コンテンツの各々の項目は、それぞれの表のための関連ＩＤ及びグローバルな識別ＩＤを有する。ブロック４２で示されるように、階層構造コンテンツを管理する方法は、識別、要素、属性、及び文字データの表を初期化することを含む。この点に関して、それぞれの表は、いかなる項目も含まないように初期化可能であり、例えば、それぞれの表の項目に関連づけられて番号を付けられたＩＤは、１へ初期化される。
【００４６】
表を初期化する前、又はその後で、ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、ブロック４４で示されるように、コンテンツの項目に基づいて、コンテンツのツリーベース表現、例えば、ＸＭＬツリーを生成することができる。例えば、ＸＭＬに従って階層的に構造化された次のコンテンツを考察する。
【数１】
2008502048.tif 000003
上記の階層構造コンテンツから、図５のツリーベース表現を生成することができる。図示されるように、ツリーの各々のノードはコンテンツの項目に対応し、要素、属性、又は文字データのいずれかである。円形ノードで表される各々の要素項目は、親ノードによって表された１つ又は複数の階層的に先導する項目、及び／又は、子又は子孫ノードによって表された１つ又は複数の階層的に従属する項目に関連づけられる。この点に関して、各々の属性又は文字データ項目は要素に関連づけられ、それぞれ長方形又は三角形ノードによって表される。長方形又は三角形ノードは、要素の親ノードの子である。
【００４７】
本明細書で説明されるように、親とは、それぞれの項目に階層的に優越する項目を意味するか、そのような階層的に優越する項目を表すノードを意味する。同様に、子又は子孫とは、それぞれの項目へ階層的に従属した項目を意味するか、そのような階層的に従属した項目を表すノードを意味する。更に、理解されるように、子とは、典型的には、第１階級の従属項目を意味し、子孫とは、典型的には、少なくとも第１階級の従属項目を意味する。この点に関して、理解すべきは、特に断らない限り、子に関して実行されるものとして本明細書で説明される動作は、典型的には、等しく子孫に関しても実行可能である。
【００４８】
表を初期化してコンテンツのツリーベース表現を生成した後、ブロック４６で示されるように、ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、例えば前順走査手法に従って、コンテンツのツリーベース表現を走査することができる。コンテンツのツリーベース表現を走査することによって、コンテンツ・マネージャは、コンテンツの各々の項目を、コンテンツ階層構造の中のコンテンツの各々の他の項目に対して処理することができる。この点に関して、当業者によって理解されるように、ツリーの前順走査とは、ツリーの基本的項目（即ち、ルート）を処理し、次に全てのサブツリー又はそれぞれの親ノードの子孫を回帰的に処理することによって、ツリーの全てのノードを処理することと定義することができる。例えば、図５で示されたコンテンツのツリーベース表現は、次の順序でノードを処理することによって前順走査することができる。即ち、「本」、「第１章」、「第１節」、「強調＝「太字」」、「コンテンツ１１」、「画像」、「ソース＝画像１１．ｊｐｇ」、「第２節」、「強調＝「太字」」、「コンテンツ１２」、「第２章」、「第１節」、「強調＝「太字」」、「コンテンツ２１」、「画像」、「ソース＝画像２１ａ．ｊｐｇ」、「画像」、「ソース＝画像２１ｂ．ｊｐｇ」、「第２節」、「強調＝「太字」」、及び「コンテンツ２２」。
【００４９】
コンテンツのツリーベース表現は前順走査されるとき、ブロック４８及び５０で示されるように、ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、第１のノード（例えば、「本」）によって表されたコンテンツの項目を、項目のタイプ（例えば、要素、属性、又は文字データ）と一緒に識別することができる。次に、ブロック５２で示されるように、それぞれの項目は、それぞれの項目タイプの表へ付加され、それぞれのタイプＩＤ（前に１へ初期化された）の現在の値へ割り当てられる。例えば、図５で示されたツリーベース表現では、第１のノードによって表された項目、即ち「本」は、要素であり、従って要素表へ付加され、要素ＩＤの１を割り当てられる。その後、ブロック５４で示されるように、それぞれの表のタイプＩＤが１だけインクリメントされる。例えば、要素タイプＩＤが１から２へインクリメントされる。
【００５０】
更に、第１のノードによって表された項目を識別した後、ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、ブロック５６で示されるように、第１のノードによって表された項目が識別表へ付加されたかどうかを決定することができる。この点に関して、ノードによって表された各々の項目は識別表へ一意に付加され、一意の識別ＩＤを割り当てられる。しかし、１つの有利な実施形態において、コンテンツ・マネージャは、項目タイプと名前の各々の一意の組み合わせ（即ち、各々の一意の項目タイプ／名前のペア）へ一意の識別ＩＤを割り当てることによって、各々の項目を識別表へ付加し、それぞれの項目タイプ／名前を有する各々の項目のタイプＩＤを参照する。それぞれの項目タイプ／名前が識別表へ付加されていないことを、コンテンツ・マネージャが決定すると、ブロック５８で示されるように、項目タイプ／名前が識別表へ付加され、識別ＩＤ（前に１へ初期化された）の現在の値へ割り当てられる。他方、それぞれの項目タイプ／名前が識別表へ付加されたことを、コンテンツ・マネージャが決定するならば、項目は、それぞれの項目タイプ／名前に既に関連づけられた識別ＩＤを割り当てられ得る。
【００５１】
例えば、図５で示されるツリーベース表現では、第１のノードによって表された項目は項目タイプ／名前として「要素／本」を有する。識別表は項目を含まないように初期化されたので、ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、項目タイプ／名前としての「要素／本」が識別表へ付加されていないことを認識することができ、それぞれの項目タイプ／名前を識別表へ付加し、識別ＩＤをそれぞれの項目タイプ／名前へ割り当てる。更に、コンテンツ・マネージャは、識別ＩＤの１と一緒に、項目「本」へ前に割り当てられたタイプＩＤへの参照（即ち、要素ＩＤの１）をタイプ表の中に含めることができる。次に、識別ＩＤの現在の値をそれぞれの項目タイプ／名前へ割り当てた後、ブロック６０で示されるように、コンテンツ・マネージャは識別表の識別ＩＤを１だけインクリメントすることができ、例えば、要素タイプＩＤが１から２へインクリメントされる。
【００５２】
第１のノード（例えば、「本」）によって表されたコンテンツの項目をそれぞれのタイプ表へ付加し、タイプＩＤをそれぞれの項目へ割り当てることに加えて、ブロック６２で示されるように、ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、１つ又は複数の他のデータをタイプ表へ付加し、データをそれぞれの項目、従ってそれぞれのタイプＩＤに関連づけることができる。例えば、要素表は、第１のノードによって表された項目に関連づけられた識別ＩＤ及び／又は名前、及び／又は親要素ＩＤを含むことができる。しかし、第１のノードによって表された項目は親を有しないので、その項目の親要素ＩＤは無視されるか、０へ設定されてよい。更に、例えば、要素表は第１のノードの子（あれば）を識別することができる。この点に関して、要素表は、第１のノードによって表された項目の子の識別及びタイプＩＤ、及び／又はそれぞれの項目の最後の子孫の要素ＩＤを含むことができる。しかし、理解されるように、第１のノードによって表された項目を含む各々の項目の子は、典型的には、それぞれの項目が要素表へ付加される後まで、識別表又は要素表へ付加されない。従って、各々の子の識別ＩＤ及びタイプＩＤは、最後の子孫の要素ＩＤと同じく、典型的には、それぞれの親が要素表へ付加された後、及び子／子孫が要素表へ付加され、識別表へ付加される（又は、その中で参照される）とき、又はその後で、親について識別される。
【００５３】
第１のノードによって表された項目が識別され、タイプ表及び識別表へ付加されるか識別された後、ブロック６４で示されるように、ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、ツリーが更なるノードを含むかどうかを決定することによって、コンテンツのツリーベース表現の前順走査を継続することができる。ツリーが更なるノードを含むならば、ブロック６６及び５０で示されるように、コンテンツ・マネージャは次のノード及びノード・タイプ（例えば、要素、属性、又は文字データ）を識別することができる。次に、手法は、ツリーの各々のノードについて反復することができる。反復には、各々のノードをそれぞれのタイプ表及び識別表へ付加し、それぞれのタイプＩＤ及び識別ＩＤを各々のノードへ割り当てることが含まれる。しかし、下記で説明するように、文字データ項目は、典型的には、関連づけられた名前を有しない。従って、識別表の中で、コンテンツ・マネージャは文字データ項目の名前を無視することによって、又は文字データの項目がヌル値の名前を有するものと考えることによって、一意の識別ＩＤを文字データの項目へ割り当てることができる。
【００５４】
ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、更に、他のデータをタイプ表へ付加するように続くことができる（ブロック６２を参照）。しかし、理解されるように、属性及び文字データの項目は、典型的には、子又は従属項目を有しない。従って、属性及び文字データの表は、典型的には、それぞれの項目の子の識別ＩＤ及びタイプＩＤ、又はそれぞれの項目の最後の子孫の要素ＩＤを含まない。その代わりに、属性表は、典型的には、更に、それぞれの属性項目の値を含み、文字データ表は、典型的には、それぞれの文字データ項目のテキストを含む。
【００５５】
ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）がツリーを前順走査して各々のノードを処理するとき、又はその後で、ブロック６８で示されるように、コンテンツ・マネージャは、コンテンツの少なくとも１つの文字データ項目の中に含まれる少なくとも１つの用語を索引付けすることができる。この点に関して、下記で説明するように、クライアント１４は、コンテンツの１つ又は複数の項目について、コンテンツのバイナリ表現をサーチすることができる。１つの実施形態において、クライアント１４は、項目の名前に基づいてバイナリ表現に質問することができる。しかし、前述したように、要素及び属性は名前を含むことができるが、文字データは典型的にはそのような名前を含まない。文字データが名前を含む場合でも、名前は文字データの中に含まれる用語の全てを反映しないかもしれない。従って、コンテンツ・マネージャは、文字データ項目の中に含まれる用語を索引付けして、その後でクライアント１４が、それらの用語についてコンテンツ、更に具体的には、コンテンツのバイナリ表現に質問できるようにする。
【００５６】
ソース１２のコンテンツ・マネージャ（即ち、ソフトウェア・アプリケーション２６）は、多数の異なる方法の任意の方法で文字データ項目の用語を索引付けすることができる。１つの実施形態において、例えば、コンテンツ・マネージャは、文字データ表に含まれる１つ又は複数の文字データ項目を走査することによって、用語を索引付けする。ソース１２又はソース・ユーザが索引付けしたい各々の用語について、コンテンツ・マネージャはその用語を文字データ索引へ付加し、文字データ索引の中で、その用語を含む文字データ項目の親要素ＩＤにその用語を関連づけることができる。例えば、文字データＩＤの１を有する文字データのテキスト「コンテンツ１１」が用語「心臓」を含むものと仮定する。そのような場合、コンテンツ・マネージャは、用語「心臓」を文字データ索引へ付加し、その用語を親要素ＩＤの３（即ち、「第１節」）に関連づけることができる。文字ＩＤの３を有する文字データの「コンテンツ２１」のテキストも用語「心臓」を含むならば、コンテンツ・マネージャは、親要素ＩＤの７（即ち、「第１節」）を、文字データ索引の中で既に存在する用語に関連づけることができる。用語「心臓」は、要素ＩＤの３及び７に関連づけられた文字データ索引の中に現れる（例えば、「心臓」−［３，７］）。
【００５７】
ツリーを前順走査して各々のノードを処理した（及び、望まれるならば、文字データ項目の用語を索引付け）した後では、コンテンツ・マネージャはコンテンツのバイナリ表現を生成している。コンテンツのバイナリ表現は、識別表及び多数のタイプ表（例えば、要素、属性、文字データなどの）を含み、各々の表は、コンテンツのツリーベース表現のノードによって表されたコンテンツの各々の項目に関連した多数の異なるデータを含む。更に、バイナリ表現は、コンテンツの文字データ項目の用語のために、文字データ表を含むか、それに関連づけられてよい。一例として、前述した図５のツリーベース表現の例示的構造化コンテンツのバイナリ表現の表は、次のように書かれてよい。
【表１】
2008502048.tif 000004
【表２】
2008502048.tif 000005
【表３】
2008502048.tif 000006
【表４】
2008502048.tif 000007
【００５８】
ソース１２がコンテンツをどのようにして提供するかに関係なく、コンテンツはバイナリ表現として提供可能であり、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、バイナリ表現からコンテンツの少なくとも一部分をアクセスすることができる。この点に関して、図６は、本発明の１つの実施形態に従ってコンテンツにアクセスする方法の様々なステップを示す。ブロック７０で示されるように、方法はコンテンツのバイナリ表現を受け取るクライアント１４のアクセス・アプリケーションを含む。コンテンツのバイナリ表現には、識別表及び項目タイプ表が含まれる。前述したように、バイナリ表現は多数の異なる方法の中の任意の方法で受け取り可能である。例えば、１つ又は複数のネットワーク１８（例えば、インターネット）を介してコンテンツのバイナリ表現にアクセスすることによって、及び／又はコンテンツのバイナリ表現を記憶するＤＶＤから受け取り可能である。ソース１２がコンテンツのバイナリ表現をどのようにして受け取るかに関係なく、その後でアクセス・アプリケーションは、ブロック７２で示されるように、コンテンツのそれぞれの部分のツリーベース表現を、例えば、クライアント１４の一時的記憶域（例えば、揮発性メモリ）の中に最初に再作成することによって、コンテンツの少なくとも一部分にアクセスすることができる。
【００５９】
クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、多数の異なる方法の中の任意の方法で、コンテンツのそれぞれの部分のツリーベース表現を再作成することができる。この点に関して、ここで図７Ａ、図７Ｂ、及び図７Ｃを参照する。これらの図は、コンテンツのバイナリ表現からコンテンツのツリーベース表現を再作成する方法の様々なステップを示す。ブロック７４で示されるように、アクセス・アプリケーションは、それぞれのバイナリ表現の識別表を読み取るか、ダウンロードするか、受け取ることによって開始することができる。例えば、アクセス・アプリケーションは、コンテンツのバイナリ表現を記憶するメモリ（例えば、ＤＶＤ）から識別表を読み取ることができる。コンテンツの全てについてツリーベース表現を再作成するとき、アクセス・アプリケーションは、ブロック７６で示されるように、最初の識別ＩＤ及びタイプＩＤに関連づけられた項目、即ち、項目（１、１）を選択することができる。その後でアクセス・アプリケーションは、ブロック７８で示されるように、コンテンツのツリーベース表現のノード、即ち、項目（１、１）のノードを生成することができる。この点に関して、アクセス・アプリケーションは、識別表からノード・タイプ及び名前を読み取ることができる。このノード・タイプ及び名前は項目（１、１）に関連づけられている。次に、アクセス・アプリケーションは、ノード・タイプについてノードを生成し、名前を含めることができる。
【００６０】
ノードを生成した後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック８０で示されるように、コンテンツのバイナリ表現の要素表（例えば、要素表）を読み取るか、ダウンロードするか、又は受け取ることができる。次に、ブロック８２及び８４で示されるように、アクセス・アプリケーションは、タイプ表から、生成されたノードによって表された項目について子孫を識別することができる。子孫は項目（１、１）に関連づけられたものである。項目（１、１）が少なくとも１つの子孫を有しないならば、典型的には少なくとも１つの子を必要とし、アクセス・アプリケーションはコンテンツのツリーベース表現を完了している。そうでなければ、アクセス・アプリケーションは、ブロック８６で示されるように、項目（１、１）の子孫を前順走査し、コンテンツのツリーベース表現の再作成を継続することができる。
【００６１】
前順走査の間に処理された各々の子孫（即ち、項目（１、１）の親の子孫又は項目（１、１）自身の子、）について、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック８８で示されるように、子孫の識別ＩＤ、タイプＩＤ（ｎ、ｍ）を識別することができる。次に、アクセス・アプリケーションは、ブロック９０で示されるように、識別ＩＤのｎに基づいてコンテンツのツリーベース表現のノードを生成することができる。前と同じように、アクセス・アプリケーションは、識別表から、ノード・タイプ及び名前を読み取ることができる。ノード・タイプ及び名前は項目（ｎ、ｍ）に関連づけられている。次に、アクセス・アプリケーションは、ノード・タイプについてノードを生成し、名前を含めることができる。
【００６２】
クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）が子孫についてノードを生成するとき、又はその後で、アクセス・アプリケーションは、ブロック９２で示されるように、例えば、識別表からノード・タイプを読み取ることによって、子孫がコンテンツの属性又は文字データ項目であるかどうかを決定することができる。子孫が属性又は文字データであれば、アクセス・アプリケーションは、ブロック９４で示されるように、それぞれ属性表又は文字データ表から属性の値又は文字データのテキストを読み取るか、ダウンロードするか、又は受け取ることができる。例えば、アクセス・アプリケーションは、識別ＩＤのｍに基づきそれぞれの表について表索引を実行し、子孫（ｎ、ｍ）に関連づけられた値／テキストを読み取ることができる。次に、アクセス・アプリケーションが値／テキストを受け取った後、アクセス・アプリケーションは、子孫について生成されたノードへそれぞれの値／テキストを付加することができる。
【００６３】
値／テキストをノードへ付加した後、又は、子孫が属性又は文字データでなければ（即ち、子孫が要素であれば）、アクセス・アプリケーションは、ブロック９６で示されるように、子孫ノードをその親にリンク又は関連づけることができる。次に、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック９８で示されるように、項目（１、１）が更に子孫を含むかどうかを決定することによって、項目（１、１）の子孫の前順走査を継続することができる。項目（１、１）が更なる子孫を含むならば、アクセス・アプリケーションは、ブロック８８で示されるように、次の子孫の識別ＩＤ及びタイプＩＤを識別することができる。次に、手法は、項目（１、１）の各々の子孫について反復することができる。反復の中には、各々の子孫についてノードを生成すること、各々の属性／文字データ項目について値／テキストを付加すること、及びノードをそれぞれの親へリンクすることが含まれる。次に、項目（１、１）の子孫を前順走査した後、アクセス・アプリケーションは、コンテンツのバイナリ表現からコンテンツのツリーベース表現を再作成している。
【００６４】
前述したように、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、最初の識別ＩＤ及びタイプＩＤに関連づけられた項目（即ち、項目（１、１））を識別表から選択することによって、コンテンツの全てについてツリーベース表現を再作成することができる。しかし、理解すべきは、アクセス・アプリケーションが、コンテンツの一部分のみについて、ツリーベース表現を同じように再作成できることである。そのような場合、例えば、アクセス・アプリケーションは、再作成されるコンテンツの一部分に関連づけられた最初の項目を識別表から選択することができる。例えば、前述したコンテンツの要素項目「第２章」から始まる部分だけを再作成し、従ってアクセスすることが望まれるならば、アクセス・アプリケーションは、識別表から項目（９、６）を選択することができる。その後でアクセス・アプリケーションは、前と同じように進み、項目「第２章」及びそれぞれの項目の子孫について、コンテンツのツリーベース表現を再作成することができる。
【００６５】
更に、アクセス・アプリケーションは親の子孫の全てについてツリーベース表現を再作成することができるが、アクセス・アプリケーションは、それぞれの親の子孫を前順走査することなく、親についてのノードを生成するだけで進むことができる。代替として、アクセス・アプリケーションは、親の子孫の一部分のみを前順走査するように構成可能である。例えば、アクセス・アプリケーションは、それぞれの親の要素子孫を処理することなく、親の属性及び／又は文字データ子孫のみを前順走査するように構成可能である。
【００６６】
再び図６を参照すると、コンテンツのツリーベース表現を再作成した後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック１００で示されるように、コンテンツの再作成されたツリーベース表現からのコンテンツを、例えば、クライアント１４の一時的記憶域（例えば、揮発性メモリ）の中に生成することができる。アクセス・アプリケーションは、多数の異なる方法の中の任意の方法で、例えば、同じコンテンツのバイナリ表現を生成するときにソース１２のコンテンツ・マネージャが使用した方法とは反対の方法で、コンテンツを生成することができる。その後でアクセス・アプリケーションは、ブロック１０２で示されるように、生成されたコンテンツにアクセスすることができる。例えば、アクセス・アプリケーションは、クライアント・ユーザへ表示するため、生成されたコンテンツをレンダリングすることができる。
【００６７】
理解されるように、様々な場合に、１つ又は複数の項目についてコンテンツに質問し、その後でそれらの項目にアクセスすることが望ましいかもしれない。例えば、コンテンツの１つ又は複数の図形についてコンテンツに質問することが望ましいかもしれない。そのような場合、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、コンテンツをメモリから階層的に上から下へ非効率的にアクセスし、選択項目が突き止められるまで、アクセスされたコンテンツを走査することを必要としない方法で、コンテンツのバイナリ表現をサーチすることができる。ここで図８を参照する。図８は、本発明の１つの実施形態に従って、コンテンツの１つ又は複数の項目についてコンテンツの表現をサーチし、例えば、その後で質問結果にアクセスする方法の様々なステップを示す。ブロック１０４で示されるように、本発明のこの態様における方法は、前に説明した方法と同じように（図６のブロック７０を参照）、クライアント１４のアクセス・アプリケーションが、識別表及び項目タイプ表を含むコンテンツのバイナリ表現を受け取ることを含む。ソース１２がコンテンツのバイナリ表現をどのようにして受け取るかに関係なく、ブロック１０６で示されるように、アクセス・アプリケーションは、その後で、コンテンツの１つ又は複数の項目を識別するクライアント・ユーザの質問を受け取ることができる。例えば、アクセス・アプリケーションは、１つ又は複数の要素又は属性項目の名前（例えば、「第１章」）、又は１つ又は複数の文字データ項目の用語を含む質問を受け取ることができる。
【００６８】
質問を受け取った後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック１０８で示されるように、質問に基づきコンテンツの１つ又は複数の項目についてコンテンツのバイナリ表現をサーチすることができる。次に、アクセス・アプリケーションは、ブロック１１０で示されるように、サーチの結果を表すコンテンツの少なくとも一部分のツリーベース表現を再作成することができる（例えば、クライアント１４の一時的記憶域の中に）。この点に関して、アクセス・アプリケーションはバイナリ表現をサーチし、多数の異なった方法の中の任意の方法で、質問結果に基づいてツリーベース表現を再作成することができる。図９Ａ、図９Ｂ、図９Ｃ、及び図９Ｄを参照すると、例えば、１つの実施形態において、コンテンツのバイナリ表現をサーチし、質問結果に基づいてコンテンツの少なくとも一部分にアクセスする方法は、ブロック１１２で示されるように、質問が要素／属性の名前又は文字データの用語を含むかどうかを、アクセス・アプリケーションが決定することを含む。
【００６９】
質問が要素／属性の名前を含むならば、アクセス・アプリケーションは、ブロック１１４で示されるように、例えば、前に説明した方法で、それぞれのバイナリ表現の識別表を読み取るか、ダウンロードするか、又は受け取ることによって続けることができる。識別表を受け取った後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、クライアント・ユーザの質問の中で識別されたコンテンツの所望の項目をコンテンツが含むかどうかを決定することができる。更に具体的には、例えば、アクセス・アプリケーションは、ブロック１１６で示されるように、質問の中に含まれるコンテンツの所望の項目の名前と一致するコンテンツの少なくとも１つの項目を識別表が含むかどうかを決定することができる。所望の項目の名前と一致する項目を識別表が含まないならば、コンテンツの所望の項目をコンテンツが含まないことを認識するアクセス・アプリケーションは、コンテンツのバイナリ表現の質問及び再作成を終了することができる。更に、所望されるならば、アクセス・アプリケーションは、コンテンツの所望の項目をコンテンツが含まないことを、クライアント・ユーザへ通知することができる。
【００７０】
識別表が、所望の項目の名前と一致する少なくとも１つの項目を含むならば、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、コンテンツの所望の項目をコンテンツが含むと結論することができる。次に、アクセス・アプリケーションは、ブロック１１８で示されるように、一致する項目の名前に関連づけられた識別ＩＤを識別表から選択することができる。理解されるように、文字データは、典型的には、項目の名前を含まないから、所望の項目の名前に一致する項目は、典型的には、要素又は属性を含む。従って、選択された識別ＩＤは、典型的には、１つ又は複数の要素又は属性に関連づけられている。
【００７１】
識別ＩＤを選択した後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック１２０で示されるように、識別ＩＤが１つ又は複数の要素項目に関連づけられているかどうかを決定することができる。識別ＩＤが要素の名前に関連づけられているならば、アクセス・アプリケーションは、ブロック１２２で示されるように、それぞれのバイナリ表現の要素表を読み取るか、ダウンロードするか、又は受け取ることができる。更に、前と同じように、要素表を受け取るとき、又はその後で、アクセス・アプリケーションは、ブロック１２４で示されるように、選択された識別ＩＤに関連づけられた要素ＩＤを選択することができる。次に、アクセス・アプリケーションは、ブロック１２６で示されるように、コンテンツのツリーベース表現のノード、即ち、選択された要素及び識別ＩＤを有する項目についてのノードを生成することができる。前と同じように、アクセス・アプリケーションは、識別表からノードのタイプ（即ち、要素）及び名前を読み出し、そのノード・タイプについてノードを生成し、名前を含めることによって、ノードを生成することができる。
【００７２】
選択された要素及び識別ＩＤを有する項目についてノードを生成した後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、これまでに説明し、また図７Ｂのブロック８２及び８４で図示されるように、生成されたノードによって表された項目の子孫、即ち、選択された要素及び識別ＩＤを有する項目に関連づけられた子孫を要素表から識別することができる。それぞれの項目が少なくとも１つの子孫を有するならば、アクセス・アプリケーションは、それぞれの項目の子孫を前順走査して、子孫についてコンテンツのツリーベース表現のノードを生成することができる。この点に関して、アクセス・アプリケーションは、多数の異なった方法の中の任意の方法で、例えば、これまで説明し、図７Ｂ及び図７Ｃのブロック８６〜９８で示される方法と同じ方法で、子孫を前順走査してノードを生成することができる。
【００７３】
選択された要素及び識別ＩＤを有する項目の子孫を前順走査した後、又は、それぞれの項目が少なくとも１つの子孫を有しないならば、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック１２８で示されるように、選択された識別ＩＤが他の関連づけられた要素ＩＤを有するかどうかを識別ＩＤから決定することができる。次に、選択された識別ＩＤに関連づけられた１つ又は複数の要素ＩＤについて、アクセス・アプリケーションは、前述したように、要素ＩＤを選択し、選択された要素及び識別ＩＤを有する項目についてツリーベース表現のノードを生成することができる。更に、選択された識別ＩＤに関連づけられた１つ又は複数の要素ＩＤについて、アクセス・アプリケーションは、前述したように、生成されたノードによって表された項目について子孫を識別し、そのような子孫を前順走査して、それらの子孫についてコンテンツのツリーベース表現のノードを生成することができる。
【００７４】
識別ＩＤが、要素項目の代わりに１つ又は複数の属性項目に関連づけられているならば、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、要素項目に関して前に説明した方法と同じ方法で、属性項目を処理することができる。しかし、１つの特に有利な実施形態において、アクセス・アプリケーションは、それぞれの属性項目の親要素を識別し、それらの親要素を処理する。更に具体的には、図９Ｃのブロック１３０で示されるように、識別ＩＤが属性項目に関連づけられているならば、アクセス・アプリケーションは、それぞれのバイナリ表現の属性表を読み取るか、ダウンロードするか、又は受け取ることができる。前と同じように、アクセス・アプリケーションが属性表を受け取るとき、又はその後で、アクセス・アプリケーションは、ブロック１３２で示されるように、選択された識別ＩＤに関連づけられた属性ＩＤを選択することができる。その後で、ブロック１３４で示されるように、アクセス・アプリケーションは、それぞれの属性の親の要素ＩＤを属性表から識別することができる。次に、アクセス・アプリケーションは、ブロック１３６で示されるように、それぞれのバイナリ表現の要素表を読み取るか、ダウンロードするか、又は受け取ることができ、親の要素ＩＤを突き止めた後で、親の識別ＩＤを決定することができる。
【００７５】
選択された属性ＩＤの親要素の識別ＩＤを決定した後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック１３８で示されるように、それぞれの識別ＩＤに基づき親要素についてツリーベース表現のノードを生成することができる。前と同じように、アクセス・アプリケーションは、識別表からノード・タイプ（即ち、要素）及び名前を読み取り、そのノード・タイプについてノードを生成し、名前を含めることによって、ノードを生成することができる。
【００７６】
要素の親についてノードを生成した後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、再び前に説明し、図７Ｂのブロック８２及び８４で示されるように、要素表から、生成されたノードによって表された親要素についての子孫、即ち、親要素に関連づけられた子孫を識別することができる。理解されるように、この場合、親要素は、典型的には、少なくとも１つの子孫、即ち、選択された属性ＩＤに関連づけられた属性項目を有する。従って、アクセス・アプリケーションは、それぞれの項目の子孫を前順走査して、子孫についてコンテンツのツリーベース表現のノードを生成することができる。前に説明したように、アクセス・アプリケーションは、多数の異なった方法の中の任意の方法で、例えば、前に説明し、図７Ｂ及び図７Ｃのブロック８６〜９８で示される方法と同じ方法で、子孫を前順走査し、ノードを生成することができる。
【００７７】
親要素の子孫を前順走査した後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック１４０で示されるように、前に選択されて１つ又は複数の属性項目に関連づけられた識別ＩＤから、選択された識別ＩＤが他の関連づけられた属性ＩＤを有するかどうかを決定することができる。次に、選択された識別ＩＤに関連づけられた１つ又は複数の属性ＩＤについて、アクセス・アプリケーションは、前述したように、属性ＩＤを選択し、それぞれの属性の親要素を決定し、親要素についてツリーベース表現のノードを生成することができる。更に、選択された識別ＩＤに関連づけられた属性ＩＤの１つ又は複数の親要素ＩＤについて、アクセス・アプリケーションは、再び前に説明したように、生成されたノードによって表された親要素（それぞれの属性を含む）について子孫を識別し、それらの子孫を前順走査して、それらの子孫についてコンテンツのツリーベース表現のノードを生成することができる。
【００７８】
図９Ｄを参照すると、要素／属性の名前の代わりに、質問が文字データの用語を含むならば、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック１４２で示されるように、それぞれのバイナリ表現の文字データ索引を読み取るか、ダウンロードするか、又は受け取ることができる。文字データ索引を受け取った後、アクセス・アプリケーションは、ブロック１４４で示されるように、文字データ索引が質問の用語を含むかどうかを決定することができる。文字データ索引が質問の用語と一致する用語を含まないならば、アクセス・アプリケーションは、コンテンツのバイナリ表現の質問及び再作成を終了することができる。更に、前と同じように、アクセス・アプリケーションは、望まれるならば、コンテンツの所望の項目をコンテンツが含まないことを、クライアント・ユーザに通知することができる。
【００７９】
文字データ索引が質問の用語を含むならば、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック１４６で示されるように、文字データ索引から、質問の用語に関連づけられた親要素の要素ＩＤを選択することができる。その後で、アクセス・アプリケーションは、ブロック１４８で示されるように、それぞれのバイナリ表現の要素表を読み取るか、ダウンロードするか、又は受け取り、親の要素ＩＤを突き止め、親の識別ＩＤを決定することができる。選択された親要素の識別ＩＤを決定した後、アクセス・アプリケーションは、ブロック１５０で示されるように、例えば、前に説明した方法と同じ方法で、それぞれの識別ＩＤに基づき親要素についてツリーベース表現のノードを生成することができる。
【００８０】
親要素についてノードを生成した後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、再び前に説明し、また図７Ｂのブロック８２及び８４で示されるように、要素表から、生成されたノードによって表された親要素についての子孫、即ち、親要素に関連づけられた子孫を識別することができる。理解されるように、この場合、親要素は、典型的には、少なくとも１つの子孫、即ち、選択された親要素ＩＤに関連づけられた用語を含む文字データを有する。従って、アクセス・アプリケーションは、それぞれの項目の子孫を前順走査して、子孫についてコンテンツのツリーベース表現のノードを生成することができる。前に説明したように、アクセス・アプリケーションは、多数の異なった方法の中の任意の方法で、例えば、前に説明し、また図７Ｂ及び図７Ｃのブロック８６〜９８で示される方法と同じ方法で、子孫を前順走査してノードを生成することができる。
【００８１】
親要素の子孫を前順走査した後、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、ブロック１５２で示されるように、再び文字データ索引の中で発見された質問の用語から、質問の用語が他の関連づけられた親要素ＩＤを有するかどうかを決定することができる。次に、文字データ索引の中の質問の用語に関連づけられた１つ又は複数の親要素ＩＤについて、アクセス・アプリケーションは、前述したように、親要素ＩＤを選択し、親要素についてツリーベース表現のノードを生成することができる。更に、１つ又は複数のそれぞれの親要素ＩＤについて、アクセス・アプリケーションは、再び前に説明したように、生成されたノードによって表された親要素（それぞれの質問の用語を含む文字データを含む）について子孫を識別し、それらの子孫を前順走査して、それらの子孫についてコンテンツのツリーベース表現のノードを生成することができる。
【００８２】
これまで、コンテンツの１つ又は複数の文字データ項目に含まれる１つの用語についてコンテンツをサーチすることを説明したが、理解すべきは、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、例えば、２つ以上の用語の全てを含む文字データ項目について、２つ以上の用語を質問するように構成されてよいことである。そのような場合、アクセス・アプリケーションは文字データ索引をサーチし、全ての質問の用語に関連づけられた親要素ＩＤを選択し、その後で前と同じようにそれらの親要素ＩＤを処理することができる。代替として、例えば、アクセス・アプリケーションは、２つ以上の用語の少なくとも１つを含む文字データ項目を質問するように構成可能である。それらの場合、アクセス・アプリケーションは、１つ又は複数の質問の用語に関連づけられた親要素ＩＤを選択し、前と同じようにそれらの親要素ＩＤを処理するように構成可能である。
【００８３】
前述したように、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、それぞれの識別ＩＤに関連づけられた１つ又は複数の要素（属性及び／又は文字データの親要素を含む）又は１つ又は複数の属性のツリーベース表現を再作成することができる。しかし、理解すべきは、アクセス・アプリケーションが、それぞれの識別ＩＤに関連づけられた要素又は属性の選択された数だけについて、ツリーベース表現を再作成するように構成可能であることである。この点に関して、アクセス・アプリケーションは、コンテンツをサーチするときに発見された要素又は属性の選択された１つ又は複数についてのみ、コンテンツを再作成し、従って続いてアクセスするように構成可能である。例えば、アクセス・アプリケーションは、「本」の「第１章」の「第１節」のみを再作成し、従ってアクセスし、「第２章」の「第１節」にはアクセスしないように構成可能である。更に、例えば、アクセス・アプリケーションは、「本」の「第２章」の文字データのみを再作成し、従ってアクセスするように構成可能である。
【００８４】
更に、前述したように、選択された識別ＩＤが属性に関連づけられているとき、又は質問が文字データの用語を含むとき、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）は、それぞれ属性表又は文字データ索引から、それぞれの属性又はそれぞれの用語を含む文字データの親の要素ＩＤを識別することができる。アクセス・アプリケーションは、その親及びその子孫のツリーベース表現を再作成することができる。そのツリーベース表現の中には、それぞの属性又はそれぞれの用語を含む文字データが含まれる。従って、理解すべきは、アクセス・アプリケーションは、要素ＩＤ表から、属性又は文字データの、それより高い階級の先祖を識別し、それより高い階級の先祖及びその子孫のツリーベース表現を再作成するように構成可能であることである。そのツリーベース表現の中には、属性又は文字データの親及び属性又は文字データ自身が含まれる。同様に、選択された識別ＩＤが要素に関連づけられているとき、アクセス・アプリケーションは、要素ＩＤ表から、要素の親又はそれより高い階級の先祖を識別し、その親又はそれより高い階級の先祖及びその子孫のツリーベース表現を再作成するように構成可能である。そのツリーベース表現の中には、要素自身が含まれる。
【００８５】
再び図８を参照すると、クライアント１４のアクセス・アプリケーション（即ち、ソフトウェア・アプリケーション２６）が、コンテンツの少なくとも一部分のツリーベース表現をどのようにして再作成するかに関わりなく、その後でアクセス・アプリケーションは、ブロック１５４で示されるように、例えば、前述した方法と同じ方法で、コンテンツの再作成されたツリーベース表現から、コンテンツの少なくとも一部分を、例えば、クライアント１４の一時的記憶域（例えば、揮発性メモリ）の中に生成することができる。次に、アクセス・アプリケーションは、ブロック１５６で示されるように、例えば、クライアント・ユーザに表示するため、生成されたコンテンツをレンダリングすることによって、生成されたコンテンツにアクセスすることができる。
【００８６】
前述したように、ソース１２のコンテンツ・マネージャ及びクライアント１４のアクセス・アプリケーションは、階層構造コンテンツを前順走査し、様々な場合に、１つ又は複数の項目の子孫を識別することによって、コンテンツの項目を処理することができる。しかし、理解すべきは、コンテンツ・マネージャ及び／又はアクセス・アプリケーションは、本発明の趣旨及び範囲から逸脱することなく、多数の異なった方法の中の任意の方法で同じ機能を実行できることである。例えば、コンテンツを前順走査して１つ又は複数の項目の子孫を識別する代わりに、コンテンツ・マネージャ及び／又はアクセス・アプリケーションは、コンテンツを通りがけ順走査して１つ又は複数の項目の１つ又は複数の先祖を識別することができる。
【００８７】
本発明の１つの態様によれば、本発明のシステム１０の全部又は一部分、例えば、ソース１２及び／又はクライアント１４の全部又は一部分は、一般的に、コンピュータ・プログラムプロダクト（例えば、コンテンツ・マネージャ、アクセス・アプリケーションなど）の制御の下で動作する。本発明の実施形態の方法を実行するコンピュータ・プログラムプロダクトは、コンピュータ読み取り可能記憶媒体、例えば、不揮発性記憶媒体、及びコンピュータ読み取り可能記憶媒体の中に具体化されたコンピュータ読み取り可能プログラム・コード部分、例えば、一連のコンピュータ命令を含む。
【００８８】
この点に関して、図３、図４Ａ、図４Ｂ、図６、図７Ａ、図７Ｂ、図７Ｃ、図８、図９Ａ、図９Ｂ、図９Ｃ、及び図９Ｄは、本発明の実施形態に従った方法、システム、及びプログラムプロダクトのフローチャートである。理解されるように、フローチャートの各々のブロック又はステップ、及びフローチャートの中のブロックの組み合わせは、コンピュータ・プログラム命令によって実現可能である。これらのコンピュータ・プログラム命令はコンピュータ又は他のプログラム可能装置へロードされてマシンを実現し、コンピュータ又は他のプログラム可能装置で実行する命令が、フローチャートのブロック又はステップで指定された機能を実現する手段を作り出すようになる。これらのコンピュータ・プログラム命令は更にコンピュータ読み取り可能メモリに記憶され、特定の方法で機能するようにコンピュータ又は他のプログラム可能装置に命令し、コンピュータ読み取り可能メモリに記憶された命令が、フローチャートのブロック又はステップで指定された機能を実現する命令手段を含む製造物を生成するようになる。コンピュータ・プログラム命令は、更に、コンピュータ又は他のプログラム可能装置へロードされ、一連の動作ステップがコンピュータ又は他のプログラム可能装置で実行されてコンピュータ実現プロセスが生成されるようにし、コンピュータ又は他のプログラム可能装置で実行する命令が、フローチャートのブロック又はステップで指定された機能を実現するステップを提供するようになる。
【００８９】
従って、フローチャートのブロック又はステップは、指定された機能を実行する手段の組み合わせ、指定された機能を実行するステップの組み合わせ、及び指定された機能を実行するプログラム命令手段をサポートする。更に、フローチャートの各々のブロック又はステップ、及びフローチャートの中のブロック又はステップの組み合わせは、指定された機能又はステップを実行する特殊目的ハードウェア・コンピュータ・システム、又は特殊目的ハードウェアとコンピュータ命令との組み合わせによって実現可能であることが理解されるであろう。
【００９０】
本発明の多くの修正及び他の実施形態が、これまでの説明及び関連図面で提示された教示の利益を有する当業者の心に浮かぶであろう。従って、本発明は、開示された特定の実施形態へ限定されないこと、及び修正及び他の実施形態は、添付された特許請求の範囲の中に含まれるように意図されることを理解すべきである。本明細書では特定の用語が使用されたが、それらの用語は一般的及び説明的な意味でのみ使用されており、限定を目的として使用されているのではない。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施形態に従って、階層構造のコンテンツを表現し、その表現に基づいてコンテンツにアクセスするシステムのブロック図である。
【図２】本発明の実施形態に従って、ソース及び／又はクライアントとして動作することのできるエンティティのブロック図である。
【図３】本発明の実施形態に従って、コンテンツを提供する方法の様々なステップを示すフローチャートである。
【図４Ａ】本発明の１つの実施形態に従って、階層構造コンテンツを表現する方法の様々なステップを示すフローチャートである。
【図４Ｂ】本発明の１つの実施形態に従って、階層構造コンテンツを表現する方法の様々なステップを示すフローチャートである。
【図５】本発明の実施形態に従った、コンテンツのツリーベース表現の略図である。
【図６】本発明の１つの実施形態に従って、コンテンツにアクセスする方法の様々なステップを示すフローチャートである。
【図７Ａ】本発明の１つの実施形態に従って、コンテンツのバイナリ表現からコンテンツのツリーベース表現を再作成する方法の様々なステップを示すフローチャートである。
【図７Ｂ】本発明の１つの実施形態に従って、コンテンツのバイナリ表現からコンテンツのツリーベース表現を再作成する方法の様々なステップを示すフローチャートである。
【図７Ｃ】本発明の１つの実施形態に従って、コンテンツのバイナリ表現からコンテンツのツリーベース表現を再作成する方法の様々なステップを示すフローチャートである。
【図８】本発明の１つの実施形態に従って、コンテンツをサーチする方法の様々なステップを示すフローチャートである。
【図９Ａ】本発明の１つの実施形態に従って、コンテンツの１つ又は複数の項目についてコンテンツの表現をサーチする方法の様々なステップを示すフローチャートである。
【図９Ｂ】本発明の１つの実施形態に従って、コンテンツの１つ又は複数の項目についてコンテンツの表現をサーチする方法の様々なステップを示すフローチャートである。
【図９Ｃ】本発明の１つの実施形態に従って、コンテンツの１つ又は複数の項目についてコンテンツの表現をサーチする方法の様々なステップを示すフローチャートである。
【図９Ｄ】本発明の１つの実施形態に従って、コンテンツの１つ又は複数の項目についてコンテンツの表現をサーチする方法の様々なステップを示すフローチャートである。
【図１】
2008502048.tif 000008
【図２】
2008502048.tif 000009
【図３】
2008502048.tif 000010
【図４Ａ】
2008502048.tif 000011
【図４Ｂ】
2008502048.tif 000012
【図５】
2008502048.tif 000013
【図６】
2008502048.tif 000014
【図７Ａ】
2008502048.tif 000015
【図７Ｂ】
2008502048.tif 000016
【図７Ｃ】
2008502048.tif 000017
【図８】
2008502048.tif 000018
【図９Ａ】
2008502048.tif 000019
【図９Ｂ】
2008502048.tif 000020
【図９Ｃ】
2008502048.tif 000021
【図９Ｄ】
2008502048.tif 000022
【国際調査報告】
2008502048.tif 000023
2008502048.tif 000024