(57)【要約】【課題】ハイパーテキスト構造を簡略化した木構造を作成するにあたり、冗長な情報を省いて簡素な木構造を作成する。【解決手段】木構造作成部１０３０は、リンクテーブル１０２４中の文書間のリンクの情報を参照して、起点の文書から順に文書間のリンクをたどり、そのリンクのリンク先の文書をそのリンクのリンク元の文書の子として木構造に組み込むことにより木構造情報を作成する。この作成過程で、木構造作成部１０３０が第１の文書のリンク先である第２の文書を木構造に第１の文書の子として組み込もうとする際、冗長リンク削除部１０４０は、第２の文書が木構造において第１の文書の親文書のリンク先でもあるか否かをリンクテーブル１０２４に基づき判定し、親文書のリンク先でもあると判定した場合は、第２の文書を第１の文書の子として木構造に組み込むことを取りやめさせる。【選択図】図１
2006031191.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムを、
ハイパーテキスト構造を構成する各文書から、文書中に記述されたリンク情報及びそのリンク情報が示すリンク先の文書の有無の情報を収集する情報収集部、
情報収集部が収集した情報に基づき、与えられた文書を起点として順に文書間のリンクをたどり、そのリンクのリンク先に文書が存在すればその文書をそのリンクのリンク元の文書の子として木構造に組み込むことにより木構造情報を作成する木構造作成部であって、情報収集部が収集した情報に基づき同一文書への冗長なリンクを判定し、冗長なリンクと判定したリンクについては、そのリンク先の文書を木構造に組み込まないようにする木構造作成部、
として機能させるためのプログラム。
【請求項２】
木構造作成部は、第１の文書のリンク先である第２の文書が、木構造において第１の文書の親である文書のリンク先でもある場合、第１の文書から第２の文書へのリンクを冗長なリンクと判定する、ことを特徴とする請求項１記載のプログラム。
【請求項３】
木構造作成部は、同一文書へのリンクを含む文書の文書群全体に対する割合が所定のしきい値より大きい場合、該同一文書へのリンクを含む文書のうち木構造において最も上位に位置する文書以外の文書から該同一文書へのリンクを冗長なリンクと判定する、ことを特徴とする請求項１記載のプログラム。
【請求項４】
木構造作成部は、
ハイパーテキスト構造の変化の前の時点で前記ハイパーテキスト構造上に存在する各文書が登録された前回文書テーブルと、
ハイパーテキスト構造の変化の前の時点で前記ハイパーテキスト構造上に存在する各リンクが、そのリンクが冗長と判定されたリンクであるか否かを示す冗長情報とともに登録された前回リンクテーブルと、
前回文書テーブル及び前回リンクテーブルを参照しつつ、ハイパーテキスト構造の変化の後に情報収集部が収集した情報に基づき、その変化によりハイパーテキスト構造に対し追加及び削除された文書及びリンクを検出し、この検出結果を参照しつつ起点の文書から順にその変化の後のリンクを辿ることにより、ハイパーテキスト構造の変化の前後の木構造の変化を示す木構造差分データを作成する差分処理部であって、その変化の前に冗長でないと判定されていたリンクが変化の後に冗長であると判定された場合には、そのリンクがその変化の後に存在する場合でもそのリンクは削除されたものとみなし、その変化の前に冗長であると判定されていたリンクが変化の後に冗長でないと判定された場合には、そのリンクがその変化の後に存在すればそのリンクは新規に出現したものとみなした上で、木構造の変化を示す木構造差分データを作成する差分処理部と、
を備えることを特徴とする請求項１記載のプログラム。
【請求項５】
ハイパーテキスト構造を構成する各文書から、文書中に記述されたリンク情報及びそのリンク情報が示すリンク先の文書の有無の情報を収集する情報収集部と、
情報収集部が収集した情報に基づき、与えられた文書を起点として順に文書間のリンクをたどり、そのリンクのリンク先に文書が存在すればその文書をそのリンクのリンク元の文書の子として木構造に組み込むことにより木構造情報を作成する木構造作成部であって、情報収集部が収集した情報に基づき同一文書への冗長なリンクを判定し、冗長なリンクと判定したリンクについては、そのリンク先の文書を木構造に組み込まないようにする木構造作成部と、
を備える木構造情報作成装置。
【請求項６】
コンピュータシステムが、ハイパーテキスト構造を構成する各文書から、文書中に記述されたリンク情報及びそのリンク情報が示すリンク先の文書の有無の情報を収集する情報収集ステップ、
コンピュータシステムが、情報収集ステップで収集した情報に基づき、与えられた文書を起点として順に文書間のリンクをたどり、そのリンクのリンク先に文書が存在すればその文書をそのリンクのリンク元の文書の子として木構造に組み込むことにより木構造情報を作成するステップであって、情報収集ステップで収集した情報に基づき同一文書への冗長なリンクを判定し、冗長なリンクと判定したリンクについては、そのリンク先の文書を木構造に組み込まないようにする木構造作成ステップ、
とを有する木構造情報作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハイパーテキスト構造を構成する文書群の中で、ユーザが所望する文書へと案内するためのナビゲーション技術に関し、ハイパーテキスト構造を木構造へと簡略化してユーザに提示するための技術に関する。
【背景技術】
【０００２】
ＷＷＷ（ワールド・ワイド・ウェブ）上の文書群は、文書をノードとし、文書間のリンクをアークとするハイパーテキスト構造（ハイパーリンク構造とも呼ばれる）をなしている。このハイパーテキスト構造は、リンクにより任意の文書を容易に結びつけることができるという利点があるが、基本的にネットワーク構造であるため、文書数が増えて文書間の関係が複雑になると、人間が文書間の関係を把握することが困難となる。
【０００３】
これに対し、ハイパーテキスト構造を木（ツリー）構造に簡素化して表示する方法が従来より用いられている。ハイパーテキスト構造を木構造に変換するには、先頭文書から順に文書中に記述されるリンクを辿り、リンク先の文書を見つけるとそれをリンク元の文書の子ノードとして木構造に組み込む、という処理を繰り返せばよい。
【０００４】
このような木構造表示の１つとして特許文献１に示されるものがある。この方法では、ハイパーテキスト構造において１つのノード（仮に「Ａ」とする）に対して複数のノードからリンクが張られている場合、これを木構造に変換する際には、それら複数のノードのうちの１つを選び、ノードＡをその選んだノードの子として配置し、ノードＡへとリンクしている他のノードには、ノードＡを示す参照用のノード（ショートカット・ノードともいう）を子として配置する。この処理では、ハイパーテキスト構造のリンクをたどっていく際、最初にノードＡに到達した時のリンク元ノードを木構造上での実ノードＡの親とする。参照用のノードは、木構造を構成する実ノードとは異なる表示をする。これら参照用のノードは実ノードＡと同じ文書を指すものであるが、木構造上での関係は実ノードＡに代表して示すので、参照用のノードは子ノードを持たない。
【０００５】
また、アドビシステムズ社のウェブサイト管理ツールである「GoLive」は、ＷＷＷ上で始点文書を指定すると、その文書から順にリンクをたどって行くことでハイパーテキスト構造を調べ、そのハイパーテキスト構造中の１文書を指定すると、そのハイパーテキスト構造からその文書を根ノードとする木構造を作成して表示する機能を備えている。
【０００６】
【特許文献１】特開平６−３５６５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
１つのウェブサイトには多数のウェブページが存在するが、それらウェブページの多くには、そのウェブサイトのトップページに戻るためのリンクが設けられていることが多い。一般にトップページはウェブサイトの目次の役目を果たしているので、トップページに一旦戻ることで、ウェブサイト内の他のページへ行くことが容易になる。トップページ以外にもこのような役割を果たすページがあり、この種のページには多くのページからリンクが張られていることが多い。
【０００８】
このようにトップページ等の特定のページへのリンクが多くのページに設けられていることは、ウェブサーフィンの利便性を高める点では有効である。しかしながら、上述のようにハイパーテキスト構造を木構造に簡略化してユーザに提示する場合、トップページ等の特定ページに対するリンクが多数のページに存在していると、それら各ページから特定ページへのリンクが木構造に反映され、その特定のページを示すノードが木構造中に多数現れることになる。これは、木構造を見るユーザにとって煩雑であるばかりか、木構造データをサーバからネットワークを介してユーザの持つ端末に提供するサービス形態をとる場合には、同じ特定ページに関する情報を重複して含んだ木構造データを送信することになり、データ伝送にコストがかかると言う問題がある。
【課題を解決するための手段】
【０００９】
本発明は、コンピュータシステムを、ハイパーテキスト構造を構成する各文書から、文書中に記述されたリンク情報及びそのリンク情報が示すリンク先の文書の有無の情報を収集する情報収集部、情報収集部が収集した情報に基づき、与えられた文書を起点として順に文書間のリンクをたどり、そのリンクのリンク先に文書が存在すればその文書をそのリンクのリンク元の文書の子として木構造に組み込むことにより木構造情報を作成する木構造作成部であって、情報収集部が収集した情報に基づき同一文書への冗長なリンクを判定し、冗長なリンクと判定したリンクについては、そのリンク先の文書を木構造に組み込まないようにする木構造作成部、として機能させるためのプログラムを提供する。
【００１０】
本発明の好適な態様では、木構造作成部は、第１の文書のリンク先である第２の文書が、木構造において第１の文書の親である文書のリンク先でもある場合、第１の文書から第２の文書へのリンクを冗長なリンクと判定する。
【００１１】
別の好適な態様では、木構造作成部は、同一文書へのリンクを含む文書の文書群全体に対する割合が所定のしきい値より大きい場合、該同一文書へのリンクを含む文書のうち木構造において最も上位に位置する文書以外の文書から該同一文書へのリンクを冗長なリンクと判定する。
【００１２】
更に別の好適な態様では、木構造作成部は、ハイパーテキスト構造の変化の前の時点で前記ハイパーテキスト構造上に存在する各文書が登録された前回文書テーブルと、ハイパーテキスト構造の変化の前の時点で前記ハイパーテキスト構造上に存在する各リンクが、そのリンクが冗長と判定されたリンクであるか否かを示す冗長情報とともに登録された前回リンクテーブルと、前回文書テーブル及び前回リンクテーブルを参照しつつ、ハイパーテキスト構造の変化の後に情報収集部が収集した情報に基づき、その変化によりハイパーテキスト構造に対し追加及び削除された文書及びリンクを検出し、この検出結果を参照しつつ起点の文書から順にその変化の後のリンクを辿ることにより、ハイパーテキスト構造の変化の前後の木構造の変化を示す木構造差分データを作成する差分処理部であって、その変化の前に冗長でないと判定されていたリンクが変化の後に冗長であると判定された場合には、そのリンクがその変化の後に存在する場合でもそのリンクは削除されたものとみなし、その変化の前に冗長であると判定されていたリンクが変化の後に冗長でないと判定された場合には、そのリンクがその変化の後に存在すればそのリンクは新規に出現したものとみなした上で、木構造の変化を示す木構造差分データを作成する差分処理部と、を備える。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して、本発明を実施するための最良の形態（以下「実施形態」と呼ぶ）について説明する。
【００１４】
［実施形態１］
図１は、本発明に係るナビゲーションサーバの構成を示す機能ブロック図である。この図において、ナビゲーションサーバ１０００は、インターネットやイントラネット等のネットワーク１２００上に存在するコンピュータから文書を収集し、収集した文書の情報からナビゲーション用の情報を作成してユーザに提供するサーバである。ここで提供するナビゲーション用の情報は、ネットワーク１２００上の文書群が構成するハイパーテキスト構造を簡略化した木構造である。ナビゲーションサーバ１０００の詳細については、システムの全体像を説明した後で詳しく説明する。
【００１５】
ウェブサーバ１１００は、ネットワーク１２００上のユーザとナビゲーションサーバとの間のユーザインタフェース機能を提供するサーバである。ウェブサーバ１１００は、まず、ナビゲーションサーバ１０００に対するナビゲーション情報の要求を入力するためのウェブページを提供する。ユーザは、クライアント装置１３００（例えばブラウザ）によりそのウェブページを取得し、そのページに対して欲しいナビゲーション情報を特定する条件を入力する。この条件には、ナビゲーション情報として欲しい木構造の範囲、すなわち木構造に組み込むべき文書群の所在範囲や、木構造の根（ルート）とすべき文書を特定する情報（例えばURLなど）を含めることができる。範囲を特定するための情報としては、ウェブサイトのドメイン名やホスト名などを用いることができる。なお、範囲としてのウェブサイトを指定すれば、ウェブサーバ１１００乃至ナビゲーションサーバ１０００がそのサイトのトップページを自動的に木構造の根と判断するようにしてもよい。これら入力された条件の情報は、クライアント装置１３００からウェブサーバ１１００に送られる。これを受け取ったウェブサーバ１１００は、その条件をナビゲーションサーバ１０００に渡して木構造の作成を依頼する。ナビゲーションサーバ１０００は、この条件に従って、文書群の木構造を示したナビゲーション用のウェブページ（ナビゲーションページと呼ぶ）を作成し、これをウェブサーバ１１００を介して、要求元のクライアント装置１３００に提供する。
【００１６】
次に、ナビゲーションサーバ１０００の詳細について説明する。リンク収集部１０１０は、ＨＴＭＬ(HyperTextMarkup Language)やＸＭＬ(eXtensible Markup Language)等のハイパーテキスト記述言語で記述された文書群を収集し、それら文書群の記述を解析してそれら文書群が構成するハイパーテキスト構造を求める機能モジュールである。リンク収集部１０１０は、例えば、ネットワーク１２００上にある文書中のリンク情報をたどって行くことで、文書間のリンク関係の情報（すなわちハイパーテキスト構造）を求める。
【００１７】
すなわちリンク収集部１０１０は、文書を解析してアンカータグ（『<AHREF="...(リンク先のURLを示す文字列）">』）などのリンク情報を検出し、リンク情報を見つけるとそのリンク情報に示されるリンク先ＵＲＬ(UniformResource Locator)の文書の取得処理を実行する。この取得処理では、そのリンク先ＵＲＬで示される文書を要求する取得要求（GETリクエストなど）を発行する。この取得要求に対し、要求に係るＵＲＬの文書を管理するウェブサーバからその文書を取得できた場合、リンク収集部１０１０は、取得した文書に対して、上述したリンク情報の検出処理及びそのリンク先の取得処理を実行する。リンク収集部１０１０は、起点として与えられた１以上の文書から解析を始め、上記のリンク情報の検出処理及びそのリンク先の取得処理を繰り返していくことで、文書やそれらのリンク関係の情報を収集する。この繰り返しが、リンク収集部１０１０によるハイパーテキスト構造のトラバース（巡回ともいう）である。リンク収集部１０１０は、このトラバースの過程で取得した文書の実体データ（すなわちＨＴＭＬで記述された文書データ）を図示省略する文書格納装置へと格納し、同じくトラバースの過程で検出した文書間のリンクの情報をハイパーテキスト構造保持部１０２０へと格納する。これまでに説明したリンク収集部１０１０の機能は、ロボット検索型のサーチエンジンがウェブ文書を収集するために用いている既存のクローラー乃至スパイダーと同等のものである。
【００１８】
以上のようなリンク収集部１０１０によるトラバース処理により、ハイパーテキスト構造保持部１０２０には、トラバース処理の過程で検出した文書についての管理情報が登録された文書テーブル１０２２と、検出したリンクについての管理情報が登録されたリンクテーブル１０２４とが形成される。文書テーブル１０２２のデータ内容の一例を図２に、リンクテーブル１０２４のデータ内容の一例を図３に示す。
【００１９】
なお、図２及び図３は、図４に例示した文書１５００−１，２，・・・，６，・・・が成すハイパーテキスト構造の一部を表現したものである。図４の例は、「ＡＢＣＤ会社」のウェブサイトのハイパーテキスト構造を示している。このウェブサイトには、トップページ１５００−１の他に、商品紹介のためのインデックスページ１５００−２，各商品の説明のページ１５００−３，１５００−４，ダウンロードプログラムのインデックスページ１５００−５，及びデバイスドライバプログラムのダウンロードページ１５００−６が含まれる。図において、矢印の向きはリンクの方向を示している。図示のように、トップページ１５００−１以外の各ページには、トップページ１５００−１へのリンクが張られている。
【００２０】
文書テーブル１０２２には、図２に示すように、検出したウェブ文書ごとに、その文書に割り当てた一意的な識別子である「文書ＩＤ」、その文書の「ＵＲＬ」（プロトコル指定記述を除いたＵＲＩ(UniformResource Identifier)でもよい）、その文書の「タイトル」、及びその文書が存在するか否かを示す「状態」情報が登録される。「タイトル」には、文書のヘッダ内に<title>タグで示されたタイトル文字列が登録される。「状態」の項目があるのは、次のような理由からである。すなわち、リンク収集部１０１０のトラバース処理の過程では、文書が検出されるのは、起点として与えられた文書を除き、他の文書中のリンク情報に示されるＵＲＬ（又はＵＲＩ）からである。しかし、そのＵＲＬ等には実際には文書が存在しない（すなわち、ＵＲＬによる取得要求に対してウェブサーバから文書が返されない）こともあり得る。したがって、リンク情報が示すＵＲＬ等を用いて文書が取得できた場合は、文書テーブル１０２２におけるその文書の「状態」は「存在」となり、そうでない場合は「非存在」となる。なお、リンク収集部１０１０が、トラバースの際に取得した各文書をナビゲーションサーバ１０００内に保存するようにすることもでき、その場合は、各文書の保存場所を示すアドレス情報を、文書テーブル１０２２の各文書のデータ項目として追加することも好適である。
【００２１】
リンクテーブル１０２４には、図３に示すように、検出されたリンクごとに、そのリンクのリンク元の文書の文書ＩＤと、リンク先の文書の文書ＩＤが登録される。リンク収集部１０１０は、文書中からリンク情報を検出した場合、リンクテーブルに１つのエントリを追加し、その文書の文書ＩＤをそのエントリのリンク元に、そのリンク情報のＵＲＬが示すウェブ文書の文書ＩＤをリンク先に、それぞれ登録する。
【００２２】
リンク収集部１０１０は、定期的に、あるいはユーザや管理者から収集命令が到来するなどの所定の収集開始条件が満足されると、リンク情報の収集処理を実行する。リンク収集部１０１０に対しては、収集処理の終了条件が設定可能であり、収集を開始した後その終了条件が満足されると、収集部１０１０は収集処理を終える。終了条件は、例えば、リンク探索の起点として指定された１乃至複数の文書から、リンクを介して辿りうるすべての文書を検出し終わった時、収集を終了する、等の条件である。なお、リンク情報の収集を行う範囲を限定（例えば予め登録された１乃至複数のドメインに限定するなど）することもできる。
【００２３】
木構造作成部１０３０は、ハイパーテキスト構造保持部１０２０が保持するハイパーテキスト構造の情報に基づき、それを簡略化した木構造のデータを作成する機能モジュールである。冗長リンク削除部１０４０は、木構造作成部１０３０が作成する木構造から、トップページへのリンクなどのように多くのページに存在する冗長なリンクによる親子関係を削除するための機能モジュールである。木構造情報保持部１０５０は、木構造作成部１０３０がハイパーテキスト構造のリンクをたどりながら作成していく木構造の情報を保持する機能モジュールである。これら木構造作成部１０３０と冗長リンク削除部１０４０と木構造情報保持部１０５０との協働により、冗長なリンクの情報を極力含まない簡略化された木構造が作成される。この木構造作成の処理の流れについて、以下に詳しく説明する。
【００２４】
木構造は、ユーザから指示された条件などに基づき特定される根（ルート）ノードの文書を起点とし、その起点からリンクをたどってハイパーテキスト構造を探索していくことにより作成される。一般に、木構造作成の際の探索規則の一つとして幅優先探索規則が知られており、以下ではこの幅優先探索による木構造の作成処理を説明する。ただし、当業者には明らかなように、深さ優先探索規則など、他の規則に従った探索によっても木構造は作成できる。
【００２５】
この探索処理の手順を図５に示す。この処理では、木構造作成部１０３０は、ハイパーテキスト構造の幅優先探索を行うために、リンクを格納するキュー（先入れ先出し式の待ち行列）を一つと、各文書に対応する探索フラグを生成する（Ｓ１００）。木構造作成の開始時に、すべての文書の探索フラグをリセットし、起点（根）の文書から探索を開始する。
【００２６】
まずその起点の文書の探索フラグを立て、その起点の文書をキューに追加する（Ｓ１０２）。そして、キュー内に文書があれば（Ｓ１０４）、キューの先頭の文書を取得し（Ｓ１０６）、その文書中のリンク情報の各々について、Ｓ１０８〜Ｓ１１９の処理を繰り返す。
【００２７】
この繰り返しの中では、まず木構造作成部１０３０は、取得した文書から延びるリンクを示すリンク情報を１つリンクテーブル１０２４から取得する（Ｓ１０８）。これには、その取得した文書の文書ＩＤをリンク元文書ＩＤとして含むリンク情報をリンクテーブル１０２４から取得すればよい。一度取得したリンク情報はそれを記憶しておき、再度取得されることがないようにする。そして、このように取得したリンク情報を冗長リンク削除部１０４０に渡し、冗長リンクかどうかの判定を依頼する（Ｓ１１０）。
【００２８】
この依頼を受けた冗長リンク削除部１０４０の処理手順を図６に示す。この手順では、まず木構造作成部１０３０からリンク情報を取得する（Ｓ１２０）。次に、冗長リンク削除部１０４０は、木構造情報保持部１０５０を参照して、そのリンク情報が示すリンク元文書（すなわちそのリンク情報内の「リンク元文書ＩＤ」に対応する文書）の木構造上での親を特定する（Ｓ１２２）。
【００２９】
ここで注目しているリンク元文書は、言い換えれば、木構造作成部１０３０がＳ１１０で冗長リンク削除部１０４０に処理を依頼した際に着目している文書、すなわちＳ１０４で取得した文書のことである。したがって、Ｓ１０６でキューから取得された文書が根の文書である場合は、Ｓ１２２では木構造上の親文書が存在しないので、この場合は冗長リンク削除部１０４０は、Ｓ１２０で取得したリンク情報は冗長と判断せず、そのリンク情報を考慮すべき旨（すなわち削除しない）の指示を木構造作成部１０３０に通知する（図示省略）。
【００３０】
また、Ｓ１０６において根の文書以外の文書をキューから取り出した場合、そのときに呼び出される図６の処理では、その文書（すなわちリンク元文書）に対する親が木構造上に必ず存在する。したがって、冗長リンク削除部１０４０は、木構造情報保持部１０５０に保持される木構造情報（図７参照）から、その文書のＩＤを子文書に持つ親文書のＩＤを求める（Ｓ１２２）。そして、親文書のＩＤが分かれば、次にリンクテーブル１０２４において、その親文書ＩＤをリンク元とする各リンク情報を調べ、その中にＳ１２０で取得したリンク情報と同じリンク先文書を指しているものがあるかどうかを判定する（Ｓ１２４）。冗長リンク削除部１０４０は、Ｓ１２４の判定の結果親文書のリンク先の中にＳ１２０で取得したリンク情報のリンク先と同じものがあれば、木構造作成部１０３０に対してそのリンク情報を無視すべき旨の指示を送信し（Ｓ１２６）、そうでなければ木構造作成部１０３０に対してそのリンク情報を考慮すべき旨の指示を送信する（Ｓ１２８）。
【００３１】
再び図５の手順に戻り、冗長リンク削除部１０４０からの指示を受け取った木構造作成部１０３０は、Ｓ１１２で、その指示がリンクを無視する旨の指示であるかどうかを判定する。そして、この判定結果が肯定（Ｎ）であれば、Ｓ１０８で取得したリンクを木構造に考慮すべきということなので、そのリンク情報が示すリンク先の文書を、リンク元の文書（すなわちＳ１０６で取得した文書）の子のノードとして、木構造に組み込む（Ｓ１１４）。そして、いま木構造に組み込んだ文書（すなわちリンク先）が探索済みかどうかを、その文書の探索済みフラグを参照して判定（Ｓ１１６）し、探索済みでなければ、そのリンク先文書をキューに追加し（Ｓ１１８）、Ｓ１１９の処理へ進む。Ｓ１１４の処理と、Ｓ１１６及びＳ１１８のペアの処理とは、順番を入れ替えてもよい。一方、Ｓ１１６でリンク先文書が既に探索済みであると判定された場合、そのリンク先文書はキューに入っているか、或いは既にキューから取り出し済みかのどちらかである。したがって、この場合、そのリンク先文書から広がる部分木は既に作成済みであるか、これから作成される予定であるかのどちらかである。このため、その場合本実施形態では、重複したトラバース処理を避けるため、そのリンク先文書はキューには追加しない。
【００３２】
なお、Ｓ１１２で、冗長リンク削除部１０４０からの指示がリンク情報の無視を示すものである場合は、Ｓ１１４〜Ｓ１１８の処理はスキップされ、Ｓ１１９に進む。この場合、そのリンク情報に対応するリンク関係は木構造には組み込まれなくなる。
【００３３】
Ｓ１１９では、Ｓ１０６でキューから取得した文書をリンク元とするリンク情報に未処理のものが残っているかどうかを判定し、残っていればＳ１０８に戻り未処理のリンク情報を１つ取得してＳ１１０以降の処理を繰り返す。一方、残っていなければ、Ｓ１０４に戻ってキュー内に文書があるかどうかを検査し、あればキューから先頭の文書を取り出してＳ１０８以降の処理を繰り返す。以上の処理を、キューから文書がなくなるまで繰り返せば、根の文書からリンクをたどって到達できる文書群の木構造が作成できる。
【００３４】
なお、繁雑さを避けるため以上の説明では省略したが、リンクテーブル１０２４から得たリンク情報に示されるリンク先文書が、文書テーブル１０２２内に存在しないことも考えられる。すなわち、リンク元の文書中にリンクの記述は存在するものの、そのリンク先には実際の文書が存在しない場合である。このような場合、リンク先の文書が存在しないのだから、そのリンクを木構造に反映させる必要はない。このような場合を考慮する場合、処理手順は例えば次のようになる。すなわち、図５の手順のＳ１０８でリンク情報を取り出した際、そのリンク情報のリンク先文書の「状態」を文書テーブル１０２２（図２参照）から調べ、リンク先文書の状態が「非存在」であるならば、Ｓ１１０〜Ｓ１１８の処理を飛ばして（従って木構造には組み込まれない）、Ｓ１１９に移行するという手順である。リンク先文書の状態が「存在」の場合は、Ｓ１１０以降の処理を実行すればよい。
【００３５】
次に図５及び図６の処理手順に従って図４のハイパーテキスト構造に対する木構造を作成する際の具体的な処理の流れを、図７〜図１１を参照して説明する。
【００３６】
図７〜図１１は、処理の流れにおけるいくつかの時点でのキューの状態（ａ）、木構造情報保持部１０５０に保持される木構造情報（ｂ）、及びその木構造情報が表す木構造（ｃ）をそれぞれ示している。
【００３７】
図７は、図５のＳ１０２で根の文書（文書ＩＤ=001、「ＡＢＣＤ会社のトップページ」）をキューに追加した時点での状態を示している。このときキュー１６００には（ａ）に示すように文書001のみが保持され、木構造情報保持部１０５０には（ｂ）に示すように親文書のＩＤが001 で子文書は未登録のエントリが保持されている。これは（ｃ）に示すようにトップページ１５００−１のみからなる木構造を示す。
【００３８】
この状態からキュー１６００から文書001 を取り出し（Ｓ１０６）、この文書をリンク元とするリンク情報をリンクテーブル１０２４から探すと（Ｓ１０８）、リンク元が001でリンク先が002であるリンク情報（図３の１行目）が見つかる。ここで、文書001は根なので木構造上には親が存在しない。このため、リンク先文書002 は木構造作成に考慮すべきと冗長リンク削除部１０４０で判定され、それに応じ木構造作成部１０３０は文書002を親文書001 の子文書の欄に登録する。また、文書002 は、この時点ではまだキュー１６００に入ったことがないので、探索フラグは未探索状態を示している。したがって、この文書002はキュー１６００に追加される。この追加に併せて、木構造作成部１０３０は新たに追加した文書002 を親文書とするエントリを木構造情報保持部１０５０に追加する。図８は、この時点でのキュー１６００，木構造情報保持部１０５０及び木構造の状態を示している。
【００３９】
文書002のキュー１６００への追加が終わると、木構造作成部１０３０は文書001 に他にリンク情報がないかどうかを調べる。この調査で、リンク元が001でリンク先が005であるリンク情報が見つかる。あとは、文書002の場合と同様の流れで、文書005が親文書001の子文書として登録され、キュー１６００に追加される。この時点でのキュー１６００，木構造情報保持部１０５０及び木構造の状態を示したのが、図９である。この処理の流れでは、ある文書が木構造情報保持部１０５０の親文書としてのエントリを持つことは、探索フラグが探索済みであると等価である。
【００４０】
このようにして文書001から005へのリンクの処理が終わると、文書001 には他にリンク情報はないので、その時点でキュー１６００の先頭にある文書002 を取り出す（Ｓ１０６）。文書002から延びるリンクには、文書003へのもの、文書004へのもの及び文書001へのものと、３つのリンクがあるが、文書002の親文書001から延びるリンクには、それら３つのリンクとリンク先が一致するものはない。したがって、上述の処理により文書003,004,001の３つの文書は全て文書002 の子文書として登録される。ここで、文書003,004 は未探索なのでキュー１６００に追加されるが、文書001 は既に探索済みなのでキュー１６００には追加されない。図１０は、この時点での状態を示した図である。
【００４１】
更に処理が進み、文書005 をキュー１６００から取り出した場合には（Ｓ１０６）、上述と同様の処理の流れで文書006,001が文書005 の子文書として登録される。そして、次に文書003をキュー１６００から取り出して調べたとき、文書003 から文書001 へのリンクがリンクテーブル１０２４（図３参照）に見つかるが、文書003 の親文書002 には、同じ文書001へ延びるリンクが存在するので、文書003 から文書001 へのリンクは木構造作成の際に無視される。この結果、木構造上では文書003 の子に文書001 は現れない。なお、文書003はその他にリンクを持たないので、結局文書003 の子文書は「なし」となる。図１１は、この時点でのキュー１６００，木構造情報保持部１０５０及び木構造の状態を示している。
【００４２】
以上のような処理を、キュー１６００から文書がなくなるまで実行すれば、結局木構造情報保持部１０５０には図１２に示すような木構造情報が保持されることになる。これが表す木構造は、図１１の（ｃ）に示したものと同様である。
【００４３】
以上の処理により作成された木構造の情報は、ナビゲーションページ作成部１０６０に渡される。ナビゲーションページ作成部１０６０は、この木構造を示したナビゲーションページを作成する。ナビゲーションページでは、各文書をノードとした木構造が図式化して示される。
【００４４】
好適な態様では、ナビゲーションページは、木構造を表示する欄と、その木構造からユーザがクリックなどの操作により選択した文書を表示する欄を含んだページとして構成する。ここで、木構造表示おける各ノードには、それぞれ対応する文書のタイトル（或いはその一部）と、その対応する文書を呼び出すための呼出用情報が設定される。タイトルは、木構造の各ノードの表示に用いられる。呼出用情報は、例えば、そのノードに対応する文書を表示したナビゲーションページを作成するためのＣＧＩ(Common Gateway Interface)プログラムを示すＵＲＬである。これにより、ユーザがクライアント装置１３００のブラウザ上で木構造中のノードを選択すると、そのウェブサーバ１１００がＣＧＩプログラムを呼び出す。そのＣＧＩプログラムは、文書の表示欄にはその選択された文書が表示され、木構造の表示欄にはそのノードが選択状態であることを示すよう他のノードと表示形態を異ならせて表示した木構造が表示されたナビゲーションページを作成し、これをウェブサーバ１１００を介してブラウザに提供する。木構造の表示は、木構造全体を表示するものに限らず、最初は根から所定の深さのノードまでを表示し、下位の表示を省略したノードをユーザが選択した場合、そのノードの子を更に表示すると言ったような、段階的な木構造表示を行うようにすることもできる。なお、このようなナビゲーションページやＣＧＩを用いた仕組みの実装はあくまで一例に過ぎず、当業者ならば様々な変形が容易であることが了解されよう。
【００４５】
また、各ノードにそれぞれ対応する文書のＵＲＬを埋め込んだ木構造を表示したナビゲーションページをユーザに提供するようなサービス形態も可能である。この場合、ユーザは、ナビゲーションページ上で文書のノードをクリックしてその文書をブラウザに表示させ、それが自分の求めるものでなければナビゲーションページに戻って更に別のノードをクリックする等の作業により、求める文書を探すことになる。
【００４６】
以上、本発明の好適な実施形態を説明した。本実施形態の処理手順では、注目している文書から延びるリンクのリンク先が、その文書の親のいずれかのリンクのリンク先と同じである場合、注目している文書からのそのリンクを冗長なリンクとみなし、木構造作成においてそのリンクを無視するようにしている。このような構成によれば、注目する文書から延びるリンクのうち、親文書と同じリンク先を示しているものは木構造に反映させないので、作成される木構造が従来手法により作成される木構造よりも簡素なものとすることができる。例えば図２〜図４に例示したハイパーテキスト構造の場合、従来手法で木構造を作成した場合、図１３に示すように、商品Ａや商品Ｂのページ１５００−３，１５００−４、ドライバのページ１５００−６のそれぞれの子としてトップページが現れるが、本実施形態の方式では、図１１の（ｃ）に示したようにトップページが子として現れるのは商品のページ１５００−２とダウンロードのページ１５００−５だけである。
【００４７】
以上のように、注目している文書から延びるリンクのリンク先が、その文書の親のいずれかのリンクのリンク先と同じである場合、注目している文書からのそのリンクを削除しても、それはナビゲーション上あまり問題とならないと考えられる。なぜなら、ユーザが木構造を表示したナビゲーションページを見ながら所望の文書を探す場合、ユーザは木構造を根から順にたどって所望の文書を探していくことが一般的と考えられるので、親文書Ａからあるリンク先の文書Ｘへとたどらなかった場合、その親文書Ａの子文書Ｂに同じ文書Ｘへのリンクがあったとしてもその子文書Ｂからたどって文書Ｘを取得しようとする可能性は低いからである。
【００４８】
このような簡略化により、木構造が簡素になってユーザにとって分かりやすくなる。例示したような小規模なハイパーテキスト構造ではこの利点は分かりにくいかも知れないが、大規模なウェブサイトのように多数の文書を含んだハイパーテキスト構造に適用した場合には、顕著な効果が期待できる。また、上述のように冗長リンクを省いて木構造を簡略化することで、木構造のデータ量を減らすことができる。このようなデータ量の削減は、通信コストの削減に資する。クライアント装置１３００が高コストの無線通信を用いる携帯端末である場合、この通信コスト削減の効果は顕著である。また、携帯端末は記憶装置の容量や表示画面のサイズなどのリソースが少ないので、冗長リンクの削除による木構造の簡素化は有益である。
【００４９】
なお、特開２００２−５５８７２号公報には、ウェブ文書の閲覧の際、クライアント側に送るデータの量を削減するために、そのウェブ文書を、過去のバージョン、又はそのウェブ文書と同一ディレクトリ（すなわちそのウェブ文書とＵＲＬの階層が同じ）の文書とＤＯＭ(Document Object Model)レベルで比較し、その差分のみを示したページを作成してユーザに送る方式が開示されている。この従来技術は、２つの文書の差異の部分に着目してデータ量を削減するという点では本実施形態と共通している。しかしながら、この従来技術はウェブページ自体の簡略化のためのものであって木構造の簡略化のためのものではない。また、この従来技術では、ある文書を簡略化するために比較対象となる別の文書を探してくる必要があるが、本実施形態では、ハイパーテキスト構造をたどって木構造を作成する過程で、注目する文書と親文書のリンク情報を比較するものであり、注目する文書から延びるリンクを処理する際には親文書の情報は既に分かっているので、従来技術のような比較対象探索の手間はない。
【００５０】
以上の例では、リンクが冗長か否かを、「同一文書へのリンクが親にある」か否かという条件で判定した。この改良として、更にリンクを示すアンカーが設定される対象（アンカー対象と呼ぶ）の一致も考慮して冗長リンクか否かを判定する方式もある。アンカー対象とは、ａタグの開始タグと終了タグに囲まれた部分であり、テキストの場合もあれば、イメージファイルの格納場所を記述したタグの場合もある。同じリンク先文書を指したリンクでも、アンカー対象が異なっていれば、文書の作成者が各文書に機械的に（例えばコピー操作などで）同じリンクを設定したのではなく、子文書のリンクは親文書のリンクとは異なる独自の意味を持たせて設定した可能性が高い。そこで、そのような子文書のリンクは、木構造に反映させた方が好適である。このため、この改良版では、「同一文書へのリンクが親にある」場合、直ちにそれを冗長リンクと判定するのではなく、更にアンカー対象の記述が一致するか否かを調べ、一致する場合に冗長リンクと判定する。逆に言えば、「同一文書へのリンクが親にない」場合と、「同一文書へのリンクが親にあり、かつアンカー対象が親のその同一文書へのリンクのアンカー対象と一致する」場合とでは、冗長なリンクではないと判定する。
【００５１】
また、以上の例では、冗長リンクは木構造に反映させなかったが、その代わりに、冗長リンクを、そうでないリンクとは区別した形で木構造に組み込むことも可能である。すなわち、この場合、木構造作成部１０３０は、各ノード（文書）が冗長リンクのリンク先か、非冗長リンク（冗長リンクでないリンク）のリンク先かを示す情報を含んだ木構造情報を作成する。そして、ナビゲーションページ作成部１０６０は、木構造の表示情報として、冗長リンクのリンク先であるノード、及び親からそのノードへと延びるエッジを、例えば、非冗長リンクのリンク先であるノード及びそれに延びるエッジよりも薄く示したり、或いはより目立ちにくい色に変えて示したりしたものを作成する。これにより、冗長リンクに由来する親子関係を、ユーザが見たときに煩雑にならない形で提示できる。
【００５２】
また、以上の例では、ハイパーテキスト構造を根文書から順にトラバースしていって木構造を順に作り上げていく際に、注目する文書の親文書をその途中段階の木構造の情報から求め、それら両文書の間での比較により冗長リンクか否かを判定したが、この代わりに、収集したリンク情報を統計処理して冗長リンクを検出することも可能である。すなわち、各文書からのリンクのうち、同一文書をリンク先とするリンクの割合が高い場合に、その同一文書への各文書からのリンクを、冗長リンクと判定するという方式である。より具体的には、例えば、リンクテーブル１０２４から、文書ごとに、その文書をリンク先とするリンク情報の数を集計し、この数をハイパーテキスト構造を構成する文書の総数で割ることで、同一文書に対する割合が求められる。この割合が所定のしきい値（例えば５０パーセント）より高ければ、その同一文書をリンク先とするリンク情報は冗長と判定する。ただし、全部を冗長リンクとしては、木構造上にその「同一文書」がノードとして現れないことになるので、それらのうち１つだけは冗長リンクとは判定しないようにする。例えば、木構造上で最上位に来るもののうちの１つだけを冗長リンクではないものと判定するようにすればよい。このような方式でも、サイト内のトップページへのリンクなど、多数の文書（ウェブページ）に設定された同一文書へのリンクが木構造に現れて煩雑な見栄えになることを防止乃至低減できる。なお、以上ではハイパーテキスト構造を構成する全ての文書を母集団として同一文書へのリンクの割合を求めたが、この代わりに、無作為に抽出した十分な数のリンク情報を母集団として同一文書へのリンクの割合を求めるようにしてもよい。
【００５３】
また、以上の例では、ハイパーテキスト構造をトラバースしていく途上で、それぞれのリンクが冗長かを判定し、その判定結果に従ってそのリンクを木構造に組み入れるかどうかを制御したが、木構造の簡略化はこのような手順に限らない。この代わりに、例えば、リンクが冗長かどうかを判定せずに木構造を一旦作成してしまい、その後でその木構造のノードごとに、そのノードと同じ文書を指すノードが親ノードの兄弟にあればそのノードを削除するような手順でも、同様の木構造の簡略化が可能である。
【００５４】
［実施形態２］
本出願人は、特願２００３−３０５８８０号及び特願２００４−１２３４２８号にて、ハイパーテキスト構造の変化に応じた木構造の変化を示す差分データを効率的に算出する仕組みを提案した。冗長リンクの判別及び削除による木構造の簡略化は、その差分情報算出の仕組みにも適用可能である。以下、その具体的な適用の仕方について説明する。
【００５５】
＜基礎となる構成＞
まず、特願２００４−１２３４２８号にて提案した仕組みについて説明する。
【００５６】
図１４は、この基礎構成のシステムの全体構成の一例を示す図である。
【００５７】
このシステムにおいて、各企業企業Ａ，Ｂ及びＣは社内ネットワーク１４ａ，１４ｂ及び１４ｃをそれぞれ有しており、パーソナルコンピュータや各種サーバなどの多数のコンピュータがそれら社内ネットワーク１４ａ，１４ｂ及び１４ｃに接続されている。社内ネットワーク１４ａ，１４ｂ及び１４ｃには、それぞれファイアウォールが設けられており、インターネット１０上の装置から社内ネットワーク内に不正アクセスができないようになっている。社内ネットワーク１４ａ，１４ｂ及び１４ｃ上には多くの文書がウェブページとして存在している。それらウェブページ群は、リンク記述によって相互にリンクされ、ハイパーテキスト構造を形成している。各企業内のユーザは、パーソナルコンピュータ上のウェブブラウザを用い、インターネット１０上のサーバが公開している文書と共に、自社の社内ネットワーク１４ａ，１４ｂ又は１４ｃ上に存在する文書を閲覧することができる。
【００５８】
ここで、文書群が構成するハイパーテキスト構造は人間にとって理解が難しいので、これを人間に理解しやすい木構造に変換してユーザに提示することができれば、ユーザは所望の文書を探しやすくなる。インターネット１０に接続された木構造情報提供サーバ１２は、このような木構造情報の提供を行うサーバである。木構造情報提供サーバ１２は、例えばＡＳＰ（アプリケーションサービスプロバイダ）のサーバである。この場合、企業Ａ，Ｂ及びＣがＡＳＰの顧客である。木構造情報提供サーバ１２は、企業Ａ，Ｂ及びＣに対し、各々の社内ネットワーク１４ａ，１４ｂ及び１４ｃ内の文書群のリンク関係を木構造で表した木構造データを提供する。
【００５９】
ここで、社内ネットワーク１４ａ，１４ｂ及び１４ｃ内では、随時文書の新規生成、削除、内容変更が行われており、これらに応じて文書群が構成するリンク構造（ハイパーテキスト構造）は変化する。このような状況で顧客企業内のユーザにできるかぎり最新の木構造データを提供するために、木構造情報サーバ１２は、各社内ネットワーク１４ａ，１４ｂ及び１４ｃ内の文書群の変化に応じて、該サーバ１２自身が保持している木構造データを更新する必要がある。
【００６０】
ところが、一般に各社内ネットワーク１４ａ，１４ｂ及び１４ｃはそれぞれファイアウォールで保護されているため、木構造情報提供サーバ１２がそれら社内ネットワーク１４ａ，１４ｂ及び１４ｃ上の文書（ウェブページ）を取得出来ない。
【００６１】
そこで、本基礎構成では、各企業の社内ネットワーク１４ａ，１４ｂ及び１４ｃのファイアウォール内にそれぞれ木構造情報収集装置１６を設ける。木構造情報収集装置１６は、自社の社内ネットワーク１４ａ，１４ｂ又は１４ｃに存在する文書群を調査し、それら文書群が構成する木構造が前回調査時からどのように変わったかを示す差分データを作成し、木構造情報提供サーバ１２に送信する。これにより木構造情報提供サーバ１２は、ファイアウォール内の文書群がなす木構造についての差分データを得ることができる。
【００６２】
図１５は、木構造情報提供サーバ１２及び木構造情報収集装置１６の機能モジュール構成の一例を示す図である。
【００６３】
木構造情報提供サーバ１２は、記憶装置１２２と、クライアント要求処理部１２６と、木構造更新部１２８を有している。記憶装置１２２には、各顧客企業の社内ネットワーク１４ａ，１４ｂ及び１４ｃ内の文書群が構成する木構造を示す木構造データ１２４が記憶されている。
【００６４】
クライアント要求処理部１２６は、インターネット１０上に接続されたクライアント装置１８（典型的には各顧客企業内のユーザのＰＣ）から木構造要求１８０を受け取り、その要求１８０に対応する木構造データ１８２を作成し、クライアント装置１８に提供する。ここで、記憶装置１２２内の木構造データ１２４は、全ての顧客企業の社内ネットワーク上の文書群やインターネット上に公開されている文書群が構成する木構造群を含んでいる。クライアント要求処理部１２６は、そのような大規模な木構造データ１２４の中から、木構造要求１８０を発したユーザが指示した木構造閲覧範囲、及び該ユーザの閲覧権限の範囲に属する木構造を抽出し、これを木構造データ１８２としてクライアント装置１８に送信する。
【００６５】
木構造更新部１２８は、記憶装置１２２内の木構造データ１２４を更新するための機能モジュールである。木構造更新部１２８は、各顧客企業の木構造情報収集装置１６から送られてくる木構造差分データ２２０に基づき、現在記憶装置１２２に保存されている木構造データ１２４を最新のハイパーテキスト構造を反映したものに更新する。
【００６６】
各顧客企業内に設けられる木構造情報収集装置１６は、記憶装置２００と、収集部１６２と、差分データ作成部１６４とを有している。
【００６７】
記憶装置２００には、巡回リスト２０２，前回文書テーブル２０４，前回リンクテーブル２０６及び差分情報判定テーブル２０８が記憶される。巡回リスト２０２は、木構造の更新タイミングが来た時に、その更新のために取得すべき文書を示したリストである。前回文書テーブル２０４は、前回の木構造更新タイミングでの収集処理で求めた、社内ネットワーク上の各文書の存在・非存在の状態を示すテーブルである。前回リンクテーブル２０６は、前回の木構造更新タイミングでの収集処理で求めた、社内ネットワーク上の各文書間のリンクの存在・非存在の状態を示すテーブルである。差分情報判定テーブル２０８は、更新タイミングの前後での文書及びリンクの状態変化の組合せから、木構造の差分を求めるための規則を示したテーブルである。
【００６８】
また、記憶装置２００上には、収集部１６２による文書及びリンク情報の収集に応じ、収集後文書テーブル２１０及び収集後リンクテーブル２１２が作成される。収集後文書テーブル２１０は、収集部１６２の収集処理の結果判明した各文書の状態を示すテーブルである。また、収集後リンクテーブル２１２は、収集部１６２の収集処理の結果判明した各リンクの状態を示すテーブルである。これらのリスト及びテーブルの詳細な内容やその利用の仕方については、後に具体例を挙げて説明する。
【００６９】
収集部１６２は、木構造情報収集装置１６が設けられた社内ネットワーク１４上に存在する文書群や、それら文書に記述されたリンクを収集する機能モジュールである。この収集により、収集後文書テーブル２１０及び収集後リンクテーブル２１２が作成される。
【００７０】
差分データ作成部１６４は、収集部１６２による収集の結果である収集後文書テーブル２１０及び収集後リンクテーブル２１２と、記憶装置２００内に記憶された他の情報を利用して、木構造差分データ２２０を作成する機能モジュールである。
【００７１】
これら収集部１６２及び差分データ作成部１６４が行う処理の詳細は、後に具体例を挙げて説明する。
【００７２】
木構造情報収集装置１６は、所定の規則によって定まる木構造更新タイミングが到来する毎に、収集部１６２及び差分データ作成部１６４を動作させて木構造差分データ２２０を作成し、木構造情報提供サーバ１２に送信する。
【００７３】
次に、具体例を挙げて本基礎構成のシステムの動作を説明する。
【００７４】
図１６Ａは、ある社内ネットワーク内の文書群が、前回の木構造更新タイミングにおいて構成していたハイパーテキスト構造を示す図である。図１６Ｂは同じ社内ネットワーク内の文書群が、今回の木構造更新タイミングにおいて構成しているハイパーテキスト構造を示す図である。図１６Ａ及びＢにおいて、丸印で示したノード３００はハイパーテキスト構造を構成する個々の文書を示し、丸印の中に示した数字は当該文書に付与された文書ＩＤを示す。また、矢印で示したアーク３０２はそれら文書間のリンクを示す。矢印の根もとのノードがリンク元の文書を、矢印の先端（矢じり側）のノードがリンク先の文書を示す。
【００７５】
図１６Ａにおいて、文書ＩＤ「７」のノードの枠線が点線で示されているのは、そのノードに対応する文書の実体データが社内ネットワーク上に存在しないことを意味する。すなわち、文書ＩＤ「３」の文書には、文書ＩＤ「７」の文書へのリンクが記述されているにもかかわらず、文書ＩＤ「７」の文書自体は存在していない。なお、以下では記述を簡明にするため、『文書ＩＤ「ｎ」（ｎは自然数）の文書』と記述する代わりに、単に『文書ｎ』と記述することとする。
【００７６】
図１６Ａと図１６Ｂを比較すれば、前回の更新タイミングと今回の更新タイミングとで、ハイパーテキスト構造に以下のような変化があることが分かる。
【００７７】
（１）文書２から文書４へのリンクが削除された
（２）文書４から文書１へのリンクが新たに生成された
（３）文書５の内容（コンテンツ）が更新された
（４）文書６が削除された（付随的に文書６から８へのリンクも削除）
（５）文書７が新たに生成された
（６）文書７から文書８へのリンクが新たに生成された。
【００７８】
大まかに言えば、木構造情報収集装置１６から木構造情報提供サーバ１２へは、このような変化を示す情報を木構造差分データ２２０として送信すればよい。
【００７９】
図１６Ａや図１６Ｂは説明のために作成した非常に簡単な例なので差分データを簡単に求めることができるが、実際の社内ネットワークでは、数千、数万、或いはそれ以上の文書がハイパーテキスト構造を構成しており、そのような膨大な文書群が構成する構造に対応する木構造の差分データを求めるのは容易ではない。そこで、本基礎構成の木構造情報収集装置１６は、以下のような処理により、木構造差分データを効率的に作成する。
【００８０】
図１７は、本基礎構成のシステムにおける木構造データの更新処理の流れを示す図である。
【００８１】
この処理では、木構造データの更新タイミングが到来すると、まず社内ネットワーク内に設けられた木構造情報収集装置１６の収集部１６２が、巡回リスト２０２を参照して文書群の取得処理を実行する。そして収集部１６２は、その取得処理の結果と前回文書テーブル２０４と前回リンクテーブル２０６とを比較することにより、更新タイミングの前後での各文書及び各リンクの状態変化を示した収集後文書テーブル２１０及び収集後リンクテーブル２１２を作成する（Ｓ１０）。
【００８２】
図１８は、巡回リスト２０２のデータ内容の一例を示す図である。図１８に示すように、巡回リスト２０２には、木構造情報収集装置１６が設置された社内ネットワーク内でハイパーテキスト構造を構成する各文書毎に、その文書に付与した文書ＩＤとその文書のＵＲＬ(Uniform Resource Locator)とが登録されている。文書ＩＤは、社内ネットワーク上で一意なものでよいが、複数の社内ネットワークを含むシステム全体で一意なものとしてももちろんよい。巡回リスト２０２には、社内ネットワーク内でハイパーテキスト構造を構成する文書のうち、前回の木構造更新タイミングでの処理により、存在することが確認された文書（すなわち取得出来た文書）についての情報が記憶されている。なお、図１８の例は、図１６Ａに示したハイパーテキスト構造に対応しているので、文書ＩＤ「７」の文書に対応するエントリはない。もっとも、これはあくまで一例であり、この代わりに、取得出来なかった文書でも、その文書を指すリンクが他の文書に記述されていれば、これを巡回リスト２０２に登録しておくこともできる。
【００８３】
Ｓ１０では、まず収集部１６２は、ＨＴＴＰ（ハイパーテキスト・トランスファ・プロトコル）のＧＥＴメソッドを用い、巡回リスト２０２に登録されている各文書のＵＲＬに示される文書の取得を試みる。また、この取得処理により取得した文書の内容に、巡回リスト２０２に含まれていないＵＲＬを示すリンク記述があれば、収集部１６２はそのリンク記述が示す文書に対し新たな文書ＩＤを付与して巡回リスト２０２に登録し、その文書の取得を試みる。この取得要求に対し、取得対象の文書のＵＲＬが示すサーバは、要求されたＵＲＬが示す文書を持っていればその文書を木構造情報収集装置１６へと送信し、そのＵＲＬが示す文書を持っていなければ「その文書が存在しない」旨を示すデータを木構造情報収集装置１６へと送信する。なお、この取得処理では、例えばIf-modified-sinceヘッダを用いることで、取得対象の文書が更新されている場合にのみ、その文書の実体データが木構造情報収集装置１６に送られるようにすることもできる。この場合、取得対象の文書が更新されていない場合は、更新がない旨を示すデータが木構造情報収集装置１６に返される。このような取得処理により、取得しようとした各文書が存在するかしないかが分かる。また、If-modified-sinceヘッダを用いれば、存在する文書の内容が前回取得時から更新されているか否かを判別することもできる。なお、木構造の差分を求めるのみならば、文書の内容が更新されているか否かまでは調べる必要はないが、If-modified-sinceヘッダを用いれば既に木構造情報収集装置１６に取得済みの文書を再度取得することを避けることができるというメリットがある。
【００８４】
収集部１６２は、この取得結果と前回文書テーブル２０４とを比較することにより、各文書の状態が前回の更新タイミングからどのように変化したか求め、その状態変化を示す収集後文書テーブル２１０を作成する。
【００８５】
図１９Ａは、図１６Ａのハイパーテキスト構造に対応した前回文書テーブル２０４のデータ内容の一例を示す図である。この図では、各文書ごとに、その文書ＩＤとその文書の状態が登録されている。登録される文書の「状態」は、「存在」か「非存在」のいずれかである。すなわち、前回文書テーブル２０４には、前回の木構造更新タイミングの時点で、各文書ＩＤに対応する文書がネットワーク上に存在していたか否かが登録される。なお、図１９Ａの例は、「非存在」の文書は前回文書テーブル２０４に登録しないという方式に従ったものであるため、文書ＩＤ「７」のエントリは存在しない。しかしながら、これは一例であり、この代わりに、いずれかの文書のリンク記述に示される文書であれば前回文書テーブル２０４に登録するという方式も考えられる。この場合、前回文書テーブル２０４には、文書ＩＤ「７」が「非存在」であるとして登録されることになる。
【００８６】
図１９Ｂは、図１６Ａのハイパーテキスト構造が図１６Ｂの構造へと変化した場合に、収集部１６２により作成される収集後文書テーブル２１０のデータ内容の一例を示す図である。収集後文書テーブル２１０には、収集の前後での各文書の状態の変化が示される。収集前の各文書の状態は前回文書テーブル２０４に示されており、収集後の文書の状態は収集部１６２による文書取得処理により求められる。収集前後の文書状態の変化には、（１）「新規」（収集前になかった文書が収集時に新たに検出された）、（２）「削除」（収集前に存在した文書が収集時には存在しなかった）、（３）「更新」（収集前に存在した文書の内容が更新されたことが収集時に分かった）、の３種類がある。また、文字通りの意味では「変化」とは言えないが、収集前後の文書の状態同士の関係を示す広義の「変化」として、（４）「存在」（収集前に存在した文書が内容更新されないまま収集時にも存在している）、及び（５）「非存在」（収集前になかった文書が収集時にも存在しなかった）がある。なお、収集前に存在せず、且つ収集時にも存在しない文書（「非存在」）は、木構造上には現れないので、テーブル２０４に登録しなくてもよい。また、木構造の変化のみを知りたい場合は、「更新」は「存在」と同様に扱えばよい。
【００８７】
収集部１６２は、前回文書テーブル２０２と今回の取得処理結果とをつき合わせることで、取得を試みた各文書の状態変化を求め、収集後文書テーブル２１０に登録する。図１９Ｂの例では、例えば文書５は「更新」、文書６は「削除」、文書７は「新規」となっている。
【００８８】
収集部１６２は、以上の処理を、巡回リスト２０２に登録された全てのＵＲＬ、及びこの処理で新たに検出した全てのＵＲＬの取得結果が判明するまで繰り返すことで、収集後文書テーブル２１０を完成させる。
【００８９】
またＳ１０では、収集部１６２は、今回の更新タイミングの前後でのリンクの状態変化を検出する。更新タイミング到来前のリンク群の状態は前回リンクテーブル２０６に示されている。
【００９０】
図２０Ａは前回リンクテーブル２０６のデータ内容の一例を示す図である。この図に示すように、リンクテーブル２０６で１つのリンクを示すエントリは、リンク元ＩＤ、リンク先ＩＤ、状態、及び最短パスフラグ、の４つの項目から構成される。リンク元ＩＤは、当該リンクのリンク元文書（すなわちそのリンクの記述を含んでいる文書）の文書ＩＤである。リンク先ＩＤは、当該リンクのリンク先文書（すなわちそのリンクが指す文書）の文書ＩＤである。
【００９１】
状態は、当該リンクが存在しているか否かを示す情報である。前回更新タイミングで取得した文書群のいずれかにリンク記述があれば、そのリンク記述が示すリンクの状態は「存在」となる。図２０Ａの例では、存在しないリンクをテーブルに登録しない方式をとっているため、全てのリンクの状態が「存在」となっている。
【００９２】
そして、最短パスフラグは、当該リンクが木構造作成時に当該リンク先の文書に到達する最短パスであるか否かを示すフラグである。本基礎構成では、木構造の差分データを作成するために、更新タイミングにおけるハイパーテキスト構造を、木構造作成の際のリンク探索の規則に従って探索していく。一般に、木構造作成の際の探索規則の一つとして幅優先探索規則が知られている。ここで、本基礎構成における幅優先探索による木構造の作成処理を説明する。この処理では、木構造の作成のために、収集後文書テーブル２１０に示される各文書の情報と、収集後リンクテーブル２１２に示されるそれら文書間のリンクの情報とを調査する。
【００９３】
ハイパーテキスト構造の幅優先探索を行うために、リンクを格納するキューを一つと、各文書に対応する探索フラグを用意する。木構造作成の開始時に、すべての文書の探索フラグをリセットし、所定の先頭文書（例えば企業Webページのトップページ）から探索を開始する。すなわち、まずその先頭文書の探索フラグを立て、先頭文書に示される１以上のリンクを所定の順序（例えばその文書の記述中での各リンクの出現順序）でキューに追加したものを初期状態とする。そして、「キューから一つリンクを取得し、そのリンク先の文書へ探索を行い、この探索により到達した文書（「探索文書」と呼ぶ）の探索フラグを立て、探索文書に示されるリンクをキューに追加する」ことを、キューが空になるまで繰り返す。探索の過程で、既に一度探索した文書に再度到達することもあるが、このときは探索フラグは既に立てられており、その探索フラグの状態はこのまま変化させない。ここで、この探索においてリンクを取得してくる収集後文書テーブル２１０や収集後リンクテーブル２１２には、現時点ではＷＷＷ上には存在しない文書やリンクも入っているので、このような不在の文書やリンクは木構造に組み込まないようにする必要がある。このため、収集後文書テーブル２１０に示されるその探索文書の状態変化が「削除」もしくは「非存在」である場合にはその探索文書に示されるリンクをキューに追加しないようにする。また、キューから取り出したリンクの状態変化（これは収集後リンクテーブル２１２に示される。詳細は後述）が「削除」もしくは「非存在」である場合にはリンク先の文書の探索フラグは立てず、探索文書に示されるリンクをキューに追加することも行わないこととする。この探索の過程で辿った文書及びリンクの系列は木構造を示す。但し木構造では、１つのノード（「注目ノード」と呼ぶ）が複数の親ノードの子となることはできないので、木構造の生成では、ある注目ノード（文書）は、その注目ノードに最初に到達した時（つまり注目ノードの探索フラグが立っていない時）に辿ったリンクのリンク元文書のノードの子とする。そして、次以降、別のノードから注目ノードに到達した場合（つまり注目ノードの探索フラグが立っている場合）は、その「別のノード」には、その注目ノードを指す参照ノード（ショートカット・ノード）を子として付加する。これに対し、最初に注目ノードに到達した時のリンクに対応する子ノードは、実ノードとして取り扱う。リンク先の文書を参照ノードとした場合、そのリンク先文書に記述されたリンクの探索は中止する（つまり文書に示されているリンクをキューに追加しない）。これは、リンク先文書に記述されたリンクから先は、そのリンク先文書に対応する実ノードのルートで探索できるため、重複探索を避けているからである。なお、木構造データを表示する場合、実ノードと参照ノードを異なる表示形態で表示することができる。
【００９４】
最短パスフラグは、このようなハイパーテキスト構造の探索において、「リンク先ＩＤ」が示す文書に最も早く到達したか、否かを示す。以上の説明から分かるように、最短パスフラグが「○」、すなわち「最短パスである」ことを示す場合は、木構造データにおいて、リンク先ＩＤのノードはリンク元ＩＤのノードの子であり、かつ実ノードとなる。これに対し、最短パスフラグが「×」、すなわち「最短パスでない」ことを示す場合は、木構造データにおいて、リンク先ＩＤのノードはリンク元ＩＤのノードの子ではあるが、参照ノードであることを意味する。
【００９５】
図１６Ａのネットワーク構造では、文書４へは文書２と文書５の両方の経路から到達できるが、文書１を起点に探索すると文書２を通る経路の方が先に到達することができるので、図２０Ａのテーブルでは、文書２から４へのリンクが最短パスであり、文書５から４へのリンクが最短パスでない、となっている。
【００９６】
なお、図１６Ａのネットワーク構造では、文書７は存在しない。存在しない文書については、その文書に到達するリンクそれぞれについて最短パスかどうかを決定することができないので、最短パスフラグは「不明」としている。
【００９７】
以上、更新タイミング到来前のリンク群の状態を示す前回リンクテーブル２０６について説明した。収集部１６２は、このテーブル２０６と、今回収集した各文書に記述されたリンク記述とをつき合わせることで、収集の前後での各リンクの状態変化を求め、この状態変化を示した収集後リンクテーブル２１２を作成する。
【００９８】
リンクの状態変化には、（１）「新規」、（２）「削除」、（３）「存在」、（４）「非存在」の４種がある。それら４種の状態変化が示す意味は、上述した文書の状態変化の場合と同じである。
【００９９】
図１６Ａから図１６Ｂへのハイパーテキスト構造の変化に対応する、収集後リンクテーブル２１２の例を図２０Ｂに示す。収集後リンクテーブル２１２は、前回リンクテーブル２０６に登録された各リンク、及び今回の収集により新たに検出された各リンクについて、それぞれエントリを有する。１つのエントリは、リンクを特定するリンク元ＩＤ及びリンク先ＩＤのペア、当該リンクの状態変化、及び最短パスフラグを含んでいる。リンクの状態変化は、前回リンクテーブル２０６と、今回の収集により判明した各リンクの有無との比較により、求めることができる。例えば、文書２から４へのリンクは、前回リンクテーブル２０６では「存在」するのに、図１６Ｂのハイパーテキスト構造の探索時には検出出来ないので、状態変化が「削除」となる。また、文書４から１へのリンクは、前回リンクテーブル２０６では存在しないのに、図１６Ｂのハイパーテキスト構造の探索時には検出されるので、状態変化が「新規」となる。また、最短パスフラグは、今回「新規」に検出されたリンクについては「不明」とし、その他の状態変化（「存在」及び「削除」）に該当するリンクについては、前回リンクテーブル２０６の最短パスフラグの値を引き継ぐ。
【０１００】
以上、収集部１６２による収集処理（Ｓ１０）について説明した。この収集処理が完了し、収集後文書テーブル２１０及び収集後リンクテーブル２１２が完成すると、次に差分データ作成部１６４による処理が実行される（再び図１７参照）。
【０１０１】
すなわち、差分データ作成部１６４は、収集後文書テーブル２１０及び収集後リンクテーブル２１２と差分情報判定テーブル２０８とを用いて、木構造の差分データを作成する（Ｓ１２）。この作成処理では、差分データ作成部１６４が、ハイパーテキスト構造上のリンクを、所定の先頭文書から順に、木構造作成のための幅優先探索の順序に従って辿ることにより、該ハイパーテキスト構造上の文書を巡回していく。収集後リンクテーブル２１２には、今回の更新タイミングにおいて存在するリンクが全て網羅されているので、このテーブル２１２を参照することでその探索を実行できる。差分データ作成部１６４は、その幅方向優先探索の際に新たにリンクを見つける（このリンクを注目リンクと呼ぶ）毎に、その注目リンクの状態変化とその注目リンクが指すリンク先文書の状態変化を収集後文書テーブル２１０及び収集後リンクテーブル２１２からそれぞれ求める。そして、その注目リンクとリンク先文書の状態変化の組合せを判定テーブル２０８にて検索し、この検索により差分情報が求められれば、それを木構造差分データに追加する。Ｓ１２では、このリンクの探索、判定テーブル２０８の検索、及びその検索結果に基づく差分情報の追加を、ハイパーテキスト構造の全てのリンクを辿り終えるまで繰り返す。
【０１０２】
図２１Ａ〜Ｄに、差分情報判定テーブル２０８の具体例を示す。これら４つのテーブルでは、注目リンクの状態変化と該注目リンクが示すリンク先文書の状態変化との組合せが示すセルには、その組合せに対応する木構造の変化の内容が登録されている。これらのテーブルにおいて斜線が示されたセルは、そのセルが示す組合せが起こりえないか、又はそのセルが示す組合せについては木構造に変化がないか、のいずれかであることを示している。
【０１０３】
また、これら４つのテーブルは、幅優先探索を開始する前と後との間での注目リンクの最短パス状態の変化に応じて、用意したものである。ここで、探索を開始する前の各リンクの最短パス状態は、収集後リンクテーブル２１２に「最短パスフラグ」として示されている。また、探索後のリンクの状態は、リンク先文書の探索フラグにて決定することができる。すなわち、注目リンクを辿って到達したリンク先の文書の探索フラグが立っていなければ（これは探索の過程でその文書に初めて到達したことを示す）、その注目リンクは最短パスであり、探索フラグが立っていれば最短パスではない。したがって、ある注目リンクを辿った時点では、その注目リンクの状態変化は確定している。この状態変化に応じて、図２１Ａ〜Ｄの中から適切なテーブルを選択し、利用する。
【０１０４】
図２１Ａは、注目リンクが幅優先探索開始前（以下、簡単のため「過去」という）に最短パスで、今回の幅優先探索が完了した時点（以下、簡単のため「現在」という）でも最短パスである場合の、差分情報判定テーブル２０８Ａの一例を示している。
【０１０５】
このテーブル２０８Ａでは、文書の状態変化が「削除」でリンクの状態変化が「削除」又は「存在」である場合、木構造の差分情報は「削除」となる。この差分情報の「削除」は、木構造において、注目リンクのリンク先文書を示す実ノードを、該リンクのリンク元文書を示すノードの子から「削除」することを意味している。すなわちこの場合、注目リンクを辿って到達したリンク先文書は、前回更新タイミングにはリンク元文書の子の実ノードとして存在したものであるが、今回の更新タイミングではその文書自体が削除されていることが判明したので、その実ノードを削除するというわけである。この場合、注目リンクのリンク元を親とするリンク先の実ノードが削除された旨を示す差分情報を木構造差分データ２２０に追加する。図２２に示す木構造差分データ２２０のうち、末尾の文書６に対応するエントリが、この差分情報の一例である。ここで、リンクの状態変化が「存在」である場合は、更新後もハイパーテキスト上の注目リンクだけは残る（ただしこれは木構造とは関係がない）。
【０１０６】
また、文書の状態変化が「更新」でリンクの状態変化が「存在」の場合は、差分情報が「更新」となる。すなわち、リンクの状態変化が「存在」で文書の状態変化が「更新」ということは、探索前も後も「最短パス」であることを考慮すると、当該文書は前回の更新タイミングでも今回の更新タイミングでもリンク元文書の子の実ノードであり、且つその文書の内容が更新されたことを意味する。したがって、木構造差分データ２２０には、木構造において、注目リンクのリンク元文書の子であるとリンク先文書が内容更新された旨を示す差分情報を追加する。図２２の木構造差分データ２２０のうち、先頭の文書５に対応するエントリが、この差分情報の一例である。なお、純粋に木構造の変化だけ分かればよい（すなわち文書内容の更新まではクライアント装置１８に渡す木構造データ１８２に表現しない）場合は、この組合せに対しては木構造が変化無しとすればよい。
【０１０７】
なお、リンクの状態変化が「新規」という状況は、リンクが過去に最短パスであったことと矛盾するので、起こりえない。また、リンクの状態変化が「非存在」である場合は、過去も現在も注目リンクがないので、木構造上にその注目リンクに対応する親子関係は過去も現在も存在しないことになり、結局過去と現在とで変化がないことになる。したがって、この場合はその注目リンクについての情報は木構造差分データ２２０に組み込む必要がない。また、文書の状態変化が「非存在」の場合も、その文書自体が過去も現在も存在しないので、木構造でも過去も現在もその文書が存在しない。すなわち、結局木構造に変化はない。
【０１０８】
また、文書及び注目リンクの状態変化が共に「存在」である場合は、該注目リンクが過去も現在も最短パスであるという状況下では、過去も現在も該リンクのリンク先文書がリンク元文書の子の実ノードであることを示すので、木構造上での変化は無い。
【０１０９】
また、文書の状態変化が「新規」という状況は、リンクが過去に最短パスであったことと矛盾するので、起こりえない。
【０１１０】
なお、注目リンクの状態変化が「削除」で、リンク先の文書の状態変化が「存在」又は「更新」の場合は、前回の更新タイミングでは該リンク先文書は木構造上でリンク元文書の子である実ノードとして存在していたが、今回のタイミングでは注目リンクが削除されたため、その親子関係がなくなっている。したがって、１つの考え方では、この差分情報テーブル２０８Ａでは、それら２つの組合せに対応する差分情報を「削除」とすればよい。しかし、この場合、木構造情報提供サーバ１２が木構造差分データ２２０を先頭から順に１差分情報ずつ処理していくタイプのものであった場合、この「削除」という差分情報を木構造差分データ２２０において該注目リンクの巡回順序の位置に組み込んでしまうと、木構造情報提供サーバ１２はその差分情報を読み取った時、その注目リンクが示すリンク先文書を示す実ノードを削除してしまうため、次のような問題がある。
【０１１１】
すなわちこの場合、その実ノードの削除により、木構造におけるその実ノードの子孫のノード群も削除されてしまうことになる（木構造だから、このような扱いが一般的である）。しかし、その実ノード及びその子孫ノード（以下、これらを「子孫ノード」と総称する）のいずれかは、後で別の文書からリンクされていると判明することもある。このような場合、別文書からリンクされていると判明した子孫ノードについては親が変わるだけで他の属性は変わらない。またその子孫ノードの子孫については親も他の属性もいっさい変化がない。このような場合、もっとも簡潔には、その子孫ノードの新たな親を示す差分情報をサーバ１２に送ればよい。その子孫ノードの子孫については、親も他の属性も変化していないので、差分情報を送る必要はない。
【０１１２】
ところが、いったん注目リンクのリンク先文書を示す実ノードを削除してしまうと、子孫ノードが別ノードの子であることが判明した場合、その実ノードを削除することを示す差分情報と、子孫ノードを新たに別ノードの子として「新規」に追加することを示す差分情報とをサーバ１２に送る必要が出てくる。またその子孫ノードの子孫についても、直接の親ノードに変化がなくても、いったん削除されてしまっているので、「新規」に追加することを示す差分情報を送る必要が出てくる。これでは、上述した簡潔な差分情報に比べ、データ量が大きくなる。親の情報以外の属性も差分情報に含める場合は、差分情報の量はさらに大きくなってしまう。
【０１１３】
そこで、本基礎構成では、図２１Ａのケースでは、注目リンクの状態変化が「削除」で、そのリンク先の文書の状態変化が「更新」又は「存在」である場合は、その注目リンクを辿った時点では、リンク先文書の実ノードを「削除」する旨の差分情報を木構造差分データ２２０に組み込まない。この代わりにこの時点では、該リンク先文書の実ノードについて、削除される可能性がある旨を示すフラグをオンにして、残りの探索を続行する。残りの探索で、その実ノード又はその子孫を指すリンクが見つかれば、そのフラグをオフにし、そのリンクに応じた差分情報を作成する。これにより、上述の問題が回避される。また、探索を最後まで行った段階で、その実ノードが一度も巡回されなかった場合は、削除を示すフラグがオンのままなので、その実ノードを削除する旨の差分情報を作成し、木構造差分データ２２０に追加する。このように、リンクが削除されても文書自体が存在し続ける場合は、木構造上でその文書に対応するノードを最終的に削除するかどうかが、ハイパーテキスト構造の探索が終了して初めて決定されるので、無駄な差分情報の発生を低減し、木構造差分データ２２０のデータ量を小さくすることができる。
【０１１４】
なお、以上は注目リンクの状態変化が「削除」で、そのリンク先の文書の状態変化が「更新」又は「存在」である場合の処理であったが、一般に実ノードを削除する旨の差分情報は、木構造差分データ２２０の末尾に組み込むようにすることで、木構造差分データ２２０のデータ量を小さくすることができる。
【０１１５】
図２１Ｂは、注目リンクが、過去には最短パスであったが、現在は最短パスでないと判明した場合の、差分情報判定テーブル２０８Ｂの一例を示している。
【０１１６】
このテーブル２０８Ｂにおいて、リンクの状態変化が「新規」及び「非存在」の場合に該当する各縦列、及び文書の状態変化が「新規」及び「非存在」の場合に該当する各横行の内容は、上述のテーブル２０８Ａの場合と同じ考え方である。
【０１１７】
また、文書の状態変化が「削除」でリンクの状態変化が「削除」又は「存在」である場合、木構造の差分情報は「削除」となる点も、テーブル２０８Ａの場合と同様の考え方である。
【０１１８】
また注目リンクの状態変化が「削除」で、リンク先文書の状態変化が「更新」又は「存在」の場合に、ノードの状態を変化させないのも、テーブル２０８Ａの場合と同様の考え方である。
【０１１９】
これに対し、注目リンクの状態変化が「存在」で、リンク先文書の状態変化が「更新」又は「存在」となるセルは、テーブル２０８Ａの場合とは内容が異なる。このような状態変化の組合せは、そのリンク先文書は過去の時点では木構造上での実ノードであり、それが現時点では参照ノードに変わったことを意味する。したがって、これらの組合せでは、差分情報を「新規」且つ「最短パスでない」とする。この差分情報は、木構造において、注目リンクのリンク元の文書のノードに、リンク先の文書を示す参照（ショートカット）ノードを子として追加することを意味する。
【０１２０】
図２１Ｃは、注目リンクが、過去には最短パスでなかったが、現在は最短パスであると判明した場合の、差分情報判定テーブル２０８Ｃの一例を示している。
【０１２１】
このテーブル２０８Ｃにおいて、リンクの状態変化が「非存在」の場合に該当する縦列、及び文書の状態変化が「非存在」の場合に該当する横行の内容は、上述のテーブル２０８Ａの場合と同じ考え方である。
【０１２２】
リンクの状態変化が「新規」でかつ文書の状態変化が「新規」の場合は、文書もリンクも新規に出現したものである。ここで、そのリンクは最短パスなので、その組合せに対応する差分情報は、「新規」かつ「最短パスである」とする。この差分情報は、木構造において、注目リンクのリンク元の文書のノードに、リンク先の文書を示す実ノードを子として追加することを意味する。図２２の例では、２行目の文書７に対応するエントリが、この場合の差分情報に該当する。
【０１２３】
リンクの状態変化が「新規」でかつ文書の状態変化が「更新」及び「存在」の場合は、過去にその文書は存在していたがそのリンクは最短パスでなかった、すなわちその文書は実ノードではなかったところが、現在は最短パスになったのでその文書は実ノードになったことを意味する。このような組合せに対応するセルには「更新」かつ「最短パスである」の旨を示す情報が登録されている。図２２に示す木構造差分データ２２０のうち、６行目の文書８に対応するエントリが、この情報から作成される差分情報の一例である。この差分情報は、文書８は実ノードであること、および文書７の子となるように「更新」されたことを示しているので、サーバ１２は、木構造において文書８の実ノードを文書７を示す実ノードの子とする。
【０１２４】
注目リンクの状態変化が「新規」でリンク先文書の状態変化が「削除」となる組合せでは、木構造に変化はないので差分情報を作成しなくてよい。
【０１２５】
注目リンクの状態変化が「削除」であり、かつリンク先文書の状態変化が「更新」、「削除」、「存在」のいずれかである場合に対応するセルの内容は「削除」となる。この場合、過去に存在したリンク先文書を示すノードを削除する旨の差分情報が作成される。
【０１２６】
注目リンクの状態変化が「存在」であり、かつリンク先文書の状態変化が「新規」である組合せに対応するセルの内容は「新規」かつ「最短パスである」となる。この場合、リンク先文書を示す実ノードを、リンク元文書の子として追加する旨の差分情報が作成される。
【０１２７】
注目リンクの状態変化が「存在」であり、かつリンク先文書の状態変化が「更新」又は「存在」のいずれかである場合に対応するセルの内容は「本体更新」かつ「ショートカット削除」かつ「最短パスである」である。「本体更新」とは、過去には注目リンクのリンク先ノードの親が、リンク元ノード以外のノードであったものを、リンク元ノードへと更新することを意味する。また「ショートカット削除」とは、その更新に伴い、そのリンク元ノードの子として存在したリンク先ノードの参照ノード（ショートカット）を削除することを意味する。したがって、この場合、図２２の例では、４及び５行目に示す、文書４及び文書４のショートカットに対応する２つのエントリが、差分情報として作成されることになる。
【０１２８】
注目リンクの状態変化が「存在」であり、かつリンク先文書の状態変化が「削除」である組合せに対応するセルの内容は「削除」となる。この場合、リンク先文書を示す参照ノードを、リンク元文書の子から削除する旨の差分情報が作成される。
【０１２９】
図２１Ｄは、注目リンクが、過去には最短パスでなく、現在も最短パスでないと判明した場合の、差分情報判定テーブル２０８Ｄの一例を示している。
【０１３０】
このテーブル２０８Ｄにおいて、リンクの状態変化が「非存在」の場合に該当する縦列、及び文書の状態変化が「非存在」の場合に該当する横行の内容は、上述のテーブル２０８Ａの場合と同じ考え方である。
【０１３１】
注目リンクの状態変化が「新規」でかつリンク先文書の状態変化が「新規」、「更新」、又は「存在」のいずれかである場合、過去では注目リンクが存在しなかったので、木構造中にはそのリンク先文書に対応するノードもなかった。これに対し、現在ではその注目リンクが新規に生成され、かつ現在はリンク先文書の存在しているので、木構造に新たなノードを加えることになる。ただし、その注目リンクは最短パスではないので、新規追加するノードは参照ノードである。このようなことから、それらの組合せに対応するセルの内容は、「新規」かつ「最短パスでない」となる。図２２の例では、３行目の文書１のショートカットに対応するエントリが、このような差分情報の一例となる。
【０１３２】
注目リンクの状態変化が「新規」でリンク先文書の状態変化が「削除」となる組合せでは、木構造に変化はないので差分情報を作成しなくてよい。
【０１３３】
注目リンクの状態変化が「削除」であり、かつリンク先文書の状態変化が「更新」、「削除」、「存在」のいずれかである場合に対応するセルの内容は「削除」となる。この場合、注目リンク自身が削除されるのでそのリンクのリンク先に該当する木構造のノードは消滅する。したがって、過去に存在したリンク先文書を示すノードを削除する旨の差分情報が作成される。
【０１３４】
注目リンクの状態変化が「存在」であり、かつリンク先文書の状態変化が「新規」である組合せに対応するセルの内容は「新規」となる。この場合、リンク先文書を示す参照ノードを、リンク元文書の子として追加する旨の差分情報が作成される。
【０１３５】
注目リンクの状態変化が「存在」であり、かつリンク先文書の状態変化が「更新」又は「存在」のいずれかである場合は、該リンク先文書は過去には参照ノード（過去最短パスでないから）であり、現在も参照ノードのまま（現在も最短パスでないから）であるので、木構造には変化が起こらない。このため、差分情報を作成する必要がない。
【０１３６】
注目リンクの状態変化が「存在」であり、かつリンク先文書の状態変化が「削除」である組合せに対応するセルの内容は「削除」となる。この場合、リンク先文書を示す実ノードを、リンク元文書の子として追加する旨の差分情報が作成される。
【０１３７】
以上に説明した差分情報判定テーブル２０８Ａ〜Ｄと図２０Ｂの収集後リンクテーブル２１２とを用い、ハイパーテキスト構造の幅優先探索によって作成された木構造差分データ２２０の一例が図２２に示される。
【０１３８】
この差分データ２２０の各行は、それぞれ１つの差分情報に該当する。１つの差分情報は、「文書ＩＤ」、「操作」、「親文書ＩＤ」及び「他の属性」から構成される。「文書ＩＤ」と「親文書ＩＤ」の組は、木構造において前者が後者の子であることを示す。「操作」は、木構造の更新のための操作内容を示している。
【０１３９】
「操作」の内容が「新規」である場合、「親文書ＩＤ」の子として「文書ＩＤ」のノードを木構造に新規に追加する。
【０１４０】
「操作」の内容が「更新」である場合は、木構造において「文書ＩＤ」が示す実ノードの親を「親文書ＩＤ」のノードへと変更する。これは、同時に、その「文書ＩＤ」の実ノードと、前回更新タイミングでの親との親子関係を削除することを含意している。例えば、図２２の４行目には、文書４の実ノードを文書５の子へと変える「更新」処理が示されているが、これには、前回更新タイミング（図１６Ａ）に存在した文書２と文書４の親子関係の削除を伴っている。サーバ１２は、差分情報の「操作」内容が「更新」である場合、その差分情報に示される文書の実ノードの親が、前回更新タイミングでのその文書の実ノードの親と異なっていれば、上記のような親子関係の変更を行う。
【０１４１】
なお、差分情報の「操作」内容が「更新」である場合には、文書の内容が変更された場合も含まれる。サーバ１２は、差分情報の「操作」内容が「更新」である場合、差分情報が示す文書の実ノードに親子関係が変更されたか否かを判定し、変更されていなければ、その文書の内容が更新されたものと判断する。
【０１４２】
「操作」の内容が「削除」である場合は、「親文書ＩＤ」の子である「文書ＩＤ」のノードを木構造から削除する。
【０１４３】
なお、この差分データの各行のエントリと、図１６Ａ及びＢに示した構造変化との関係は既に説明したのでここでは省略する。
【０１４４】
このように、図２２のような木構造差分データ２２０を作成し、サーバ１２に送信すれば、サーバ１２は木構造を更新することが可能となる。
【０１４５】
再び図１７に戻り、木構造情報収集装置１６は、このように作成された木構造差分データ２２０を木構造情報提供サーバ１２に送信する（Ｓ１４）。
【０１４６】
木構造情報提供サーバ１２は、その木構造差分データ２２０を受信し（Ｓ２０）、そのデータ２２０に従って、記憶装置１２２に記憶された、差分データ送信元の木構造情報収集装置１６に対応する木構造データを更新する（Ｓ２２）。
【０１４７】
なお、木構造情報収集装置１６は、木構造差分データ２２０をサーバ１２に送信すると、収集後文書テーブル２１０及び収集後リンクテーブル２１２から、次の更新タイミングにおける「前回」文書テーブル２０４及び「前回」リンクテーブル２０６を作成する。すなわち、収集後文書テーブル２１０及び収集後リンクテーブル２１２は、文書及びリンクの過渡的な「状態変化」を示したものなので、その「状態変化」を「状態」へと書き換える。図２３は、その書換の規則を示したものである。図２３の規則では、状態変化が「新規」、「更新」及び「存在」である場合、それを「存在」という状態に変換する。また、状態変化が「削除」又は「非存在」であった場合は、それを「非存在」という状態に変換する。
【０１４８】
また、この変換ではハイパーテキスト構造を幅優先探索で探索した時に求めた最短パスか否かの情報を、リンクテーブルに反映させる。
【０１４９】
以上のような書換により得られた文書テーブル２０４’及びリンクテーブル２０６’は、図２４及び図２５に示すようなものとなる。これらは、図１９Ｂ及び図２０Ｂのテーブルをそれぞれ書き換えることで作成される。
【０１５０】
以上、本基礎構成の基礎構成を説明した。以上の説明から分かるように、本基礎構成によれば、木構造情報収集装置１６による木構造差分データ２２０の作成処理の際、木構造の探索に該当する処理としては、ハイパーテキスト構造の幅優先探索を１度行うだけでよいので、木構造を２回探索していた従来技術よりも処理負荷が軽減される。また、前回の木構造データという膨大なデータを保存しておかなくてよいので、装置１６の記憶容量も節約できる。
【０１５１】
以上に説明した木構造情報提供サーバ１２及び木構造情報収集装置１６は、一般的なコンピュータシステムのハードウエアを用いて、本明細書中で説明した各機能モジュールの処理内容を記述したプログラムを実行することで、実現することができる。
【０１５２】
以上に説明した基礎構成は、あくまで例示のためのものであり、本基礎構成の範囲内で様々な変形が可能である。例えば、以上の例では、木構造情報提供サーバ１２は、ある顧客企業に対してはその企業の社内ネットワーク内の文書の木構造情報を提供したが、社内文書の木構造をインターネット１０上に公開されている文書群の木構造にマージし、そのマージ結果を提供することもできる。また、以上の例では、木構造差分データ２２０を作成するのに、ハイパーテキスト構造を幅優先探索の規則に従って巡回したが、この代わりに、深さ優先探索規則など他の探索規則を利用した方式でもよい。
【０１５３】
また、以上の説明は、木構造差分データを取得したクライアント装置側での木構造の表示には特に詳しくは触れなかったが、実際にはクライアント装置側での木構造の表示では、木構造を構成する個々の文書の識別のために、木構造表示（ツリー表示）上の各文書のアイコンに対し文書名を表示する。この文書名の表示において注意すべき点がある。
【０１５４】
すなわち、ウェブ文書の文書名としてまず考えられるのが該文書のファイル名或いはＵＲＬであるが、これでは見る人が文書を識別しづらいという問題がある。これに対する解決としては、ウェブ文書のＨＴＭＬ記述に含まれるタイトル(<TITLE>タグで示される)を文書名として表示するという方法がある。タイトルは、一般に見る人に分かりやすいフレーズであることが多いため、これはこれで一つのよい解決策である。しかしながら、この方法には欠点がある。これを、図２６を参照して説明する。
【０１５５】
図２６は、クライアント装置の表示装置に表示されるブラウザ画面４００の一例を示す図である。このブラウザ画面４００には、ウェブ文書を表示する文書表示画面４１０と、ナビゲーションのために文書群の木構造を表示するツリー表示画面４２０を含んでいる。ツリー表示画面４２０には、木構造情報提供サーバ１２が提供する木構造のデータとその差分データに基づき構成された文書の木構造が、ファイルシステムにおけるフォルダやファイルがなす木構造と同様の表示方式で示されている。ファイルシステムのツリーの方はフォルダとファイルとの包含関係を示すのに対し、文書の木構造の場合は文書間のリンク元とリンク先の関係を示すところが違うだけである。このツリー表示画面４２０では、個々の文書はＨＴＭＬ記述中のタイトル文字列を示したアイコン４２２で示される。
【０１５６】
ここで問題になるのは、ツリー表示中の文書としてタイトル文字列を表示したアイコン４２２を表示すると、ウェブ文書表示中でのリンク記述４１２と文言上の食い違いが生じるという点である。ウェブ文書中では、リンク先の文書は、アンカーテキスト(アンカータグ<A href=URL>と</A>との間に挟まれた文字列。表示上では一般に下線などで他と区別される)として示されるが、このアンカーテキストはリンク元の文書の作成者が自由に記述するものであり、そのリンク先文書中に記述されたタイトルとは独立にしているので、両者は一般に一致しない。ツリー表示上の文書名と、実際のウェブ文書に現れるリンク記述が異なると、ユーザはツリー表示上の文書が実際のどのウェブ文書を指しているのかが把握しづらい。
【０１５７】
これはツリー表示の文書名としてタイトルを表示した場合のことであるが、ファイル名を文書名とした場合も同様か、それ以上にユーザにとって分かりづらくなると考えられる。
【０１５８】
これに対し、図２７に示すように、ツリー表示画面４２０Ａ中の各文書のアイコン４２２Ａに示される文書名が、ウェブ文書中のリンク記述４１２と一致していると、ユーザにとってツリー表示画面４２０に示される個々の文書がどの文書であるかを把握しやすいという利点がある。
【０１５９】
ここで、本基礎構成のように個々の木構造情報収集装置１６から中央の木構造情報提供サーバ１２に対し木構造の差分データを送信するシステムの場合、図２７のような表示を実現するためには、収集装置１５がウェブ文書中でのリンク記述のアンカーテキストの変化を検出し、その変化をサーバ１２に伝える仕組みが必要となる。このような仕組みについての変形例を以下に説明する。
【０１６０】
なお、この変形例は、システム及び装置の構成は図１４及び１５に示した上記基礎構成のものと同様でよく、収集部１６２や差分データ作成部１６４，木構造更新部１２８の処理内容が異なるだけである。
【０１６１】
この変形例では、ウェブの巡回によるリンク収集の際に収集部１６２が、リンクのＵＲＬだけでなく、それに伴うアンカーテキストも同時に収集し、これをリンクの属性の１つとしてリンクテーブルに記録する。ウェブのサーフィングにおけるユーザにとっては、アンカーテキストは、当該リンクのリンク先の文書を識別するための識別名として機能しているので、この例ではアンカーテキストを当該リンク先文書の「参照名」として取り扱う。すなわち、リンクテーブルには、リンクのアンカーテキストを当該リンクの属性の一つである参照名の値として登録する。そして、差分データ作成部１６４が、前回リンクテーブル２０６中の各リンクの参照名（アンカーテキスト）と、収集によって得られた収集後リンクテーブル２１２中の各リンクの参照名とを比較し、同一のリンクに対する参照名が更新の前後で変化している場合に、この変化を示す情報を木構造差分データ２２０に組み込んで木構造情報提供サーバ１２に送る。
【０１６２】
木構造情報提供サーバ１２は、ユーザに分かりやすいツリー表示を提供するために、各文書の文書名としてその文書へと至るリンクの参照名を示した木構造データ１２４をクライアント装置１８に提供する。ここでは、ハイパーテキスト構造を木構造に展開したため、同一の文書に対し複数の文書からリンクが張られている場合、木構造上にはそれら各リンクに応じた複数のノード（上記基礎構成ではそのうち初出のものが実ノード、残りが参照用ノード）ができるが、この変形例では、それら各ノードに対し、それぞれそのノードへのリンクが示すアンカーテキストが参照名として登録されることになる。このような木構造データ１２４を保守するために、木構造更新部１２８は、木構造収集装置１６から受け取った木構造差分データ２２０に基づき木構造データ１２４を更新する際、差分データ２２０中に示される参照名の変更の情報に応じ、木構造データ１２４中の文書の参照名を変更する。
【０１６３】
以上の処理を、例を用いて説明する。ある更新タイミングで図２８Ａに示すような状態であったハイパーテキスト構造が、次の更新タイミングで図２８Ｂに示すようになった場合を例にとる。本変形例ではリンクテーブル２１０に各リンクのアンカーテキストを参照名として登録するので、図２８Ａの状態に対応する前回リンクテーブル２０６ａ（図２９Ａ参照）、及び図２８Ｂの状態に対応する収集後リンクテーブル２１２ａ（図２９Ｂ参照）には「参照名」のデータ項目が設けられている。図２８Ａ及び図２８Ｂの例は、図１６Ａ及び図１６Ｂの例に対し文書ＩＤ「９」の文書を加えたものであり、前回と今回との差分では、文書ＩＤ「５」の文書から文書ＩＤ「９」のリンクの参照名が更新されている点以外は図１６Ａ及び図１６Ｂの例と同じである。同様に図２９Ａ及び図２９Ｂに示した各リンクテーブルは、図２０Ａ及び図２０Ｂの各リンクテーブルに対し、文書ＩＤ「９」の文書へのリンクについてのレコードを追加したものである。なお、図２８Ａ及び図２８Ｂ、図２９Ａ及び図２９Ｂでは、それぞれ図１６Ａ及び図１６Ｂ、図２０Ａ及び図２０Ｂとそれぞれ同内容の部分には薄墨を付すことで差を明示している。
【０１６４】
この例では、図２９Ａ及び図２９Ｂから分かるように、文書ＩＤ「５」の文書から「９」の文書へのリンクに対する参照名が、前回の更新タイミングで収集した際は「提案書書式」であったのに対し、今回の収集タイミングで収集した際は「アイデアシート」に変わっている。差分データ作成部１６４は、前回リンクテーブル２０６aと収集後リンクテーブル２１２ａの比較から、そのように参照名が変化している文書「５」から「９」へのリンクを探し出す。そして差分データ作成部１６４は、この参照名の変化の情報を、図３０に示すように、当該リンクのリンク先文書である文書「９」についての差分情報（図３０のテーブルの最下行）として木構造差分データ２２０ａに組み込む。この木構造差分データ２２０ａには、図２２に示した木構造差分データ２２０の各データ項目に加え、「参照名」のデータ項目が設けられており、自分に対するリンクの参照名に変化のあった文書の差分情報レコードには、「操作」の値として「更新」が、「参照名」の値として変更後の参照名「アイデアシート」が組み込まれる。
【０１６５】
なお、図３０の例では、煩雑さを避けるために省略したが、木構造差分データ２２０ａのある文書の差分情報の「操作」の値が「新規」である場合には、その文書（または参照用のショートカット・ノード）が新たに木構造に加わったことを意味するので、今回の収集により得たその文書の参照名（アンカーテキスト）をその差分情報レコードに組み込む。また、ある文書の「操作」の値がアンカーテキストの変更以外の理由で「更新」となる場合には、親文書の変更による場合があり、親文書が変われば一般に当該文書を指すアンカーテキストの内容も変わる。したがって、「操作」の値が「更新」となるケース一般で、差分情報レコードに対して今回の収集時に得た当該文書の参照名を組み込むようにする。また、図２２の例では、「操作」が「更新」となるのは実ノードに該当する文書の差分情報レコードであったが、この変形例ではアンカーテキストの変更でも「操作」を「更新」とするため、参照用のショートカット・ノードに対応する差分情報レコードについても「操作」が「更新」となる場合が出てくる。
【０１６６】
このような木構造差分データ２２０ａを木構造情報収集装置１６から受信した木構造情報提供サーバ１２は、該差分データ２２０ａに含まれる各文書の差分情報レコードの参照名の値（もしあれば）を、現在の木構造データ１２４中の当該文書のノードの参照名と比較し、両者が相違していれば、木構造データ１２４中の参照名を差分情報レコード中の参照に変更する。なお、木構造差分データ２２０ａ中の「新規」の文書については、その文書を示すノードを「親文書ＩＤ」が示すノードの子ノードとして木構造データ１２４中に作成し、当該文書のノードに対し、木構造差分データ２２０ａ中に示された参照名を設定する。
【０１６７】
このように、本変形例では、木構造情報収集装置１６が文書中のリンクに設定されたアンカーテキストの変化をハイパーテキストのリンク構造の変化と同様に検知し、この変化の情報を木構造差分データ２２０ａに組み込んで木構造情報提供サーバ１２に送信するようにしたので、木構造情報提供サーバ１２は、クライアント装置１８に対し、ウェブ・サーフィングの際のリンクの表示（アンカーテキスト）との整合性の高い文書名を示したツリー表示を提供することができる（図２７参照）。
【０１６８】
なお、この変形例では、木構造の各ノード（文書）に対しアンカーテキストを参照名として表示するので、ウェブ・サーフィングとの整合性が分かりやすい反面、実ノードと参照用のショートカット・ノードとの間で、それらノードが指している文書が同一の実体であるのか否かが分かりにくくなるというデメリットがある。これに対しては、木構造中の文書のノードに対し、アンカーテキストに加え、当該文書のファイル名（或いはＵＲＬ）及び当該文書のＨＴＭＬ記述中のタイトルのうちの少なくとも一方を、参照名として設定し、ツリー表示中では１つの文書に対するそれら複数種類の名称を並べて表示する方法が好適である。このように並べて表示するモードと、アンカーテキストのみを表示するモードの両方をクライアント装置１８のブラウザに設け、モード選択できるようにすることも好適である。なお、この場合、木構造情報収集装置１６は、アンカーテキストの場合と同様の方法で、文書中のリンクのリンク先文書のタイトルを収集し、タイトルに変化がある場合には変化後のタイトルを属性として含んだ当該リンクの差分情報レコードを木構造差分データ２２０ａに組み込むようにすればよい。なお、リンク先の文書のファイル名（或いはＵＲＬ）の方は、巡回リスト２０２を参照して付加すればよい。すなわち、更新タイミングごとに、前回の更新タイミングからの巡回リスト２０２の差分（初回タイミングのみ巡回リスト２０２全体）又は、巡回リスト２０２を木構造情報収集装置１６から木構造情報提供サーバ１２へ提供すれば、木構造データ１２４の各文書のノードに対し、ファイル名やＵＲＬの情報を付加することができる。
【０１６９】
なお、この変形例は、以上に示した処理手順の他に次のような処理手順でも実現可能である。
【０１７０】
この処理手順では、リンクの状態として新たに「更新」という状態を導入し、リンク状態が「更新」の場合についての規定を含んだ差分情報判定テーブルを用いて、木構造差分データを作成する。
【０１７１】
このため木構造情報収集装置１６の収集部１６２は、収集した文書中のリンク記述のアンカーテキストと、これに対応する前回リンクテーブル２０６ａに示されたリンクの参照名との比較に基づき、リンクの参照名が更新されたことを検知すると、図３１に示すように収集後リンクテーブル２１２ａの該当するリンクの状態変化欄に「更新」と設定する。
【０１７２】
このようにして収集部１６２により収集後リンクテーブル２１２ａ等の作成が終わると、次に差分データ作成部１６４が、図３２Ａ〜図３２Ｄに示すような差分情報判定テーブル２０８Ｅ〜２０８Ｈを用いて、差分データを作成する。差分情報判定テーブル２０８Ｅ〜２０８Ｈは、図２１Ａ〜Ｄに示した差分情報判定テーブル２０８Ａ〜２０８Ｄにそれぞれ順に対応するものである。図２１Ａ〜Ｄの場合と異なるのは、リンク状態変化が「更新」に該当する列だけなので、以下ではその列のケースに該当する場合についてのみ説明する。
【０１７３】
木構造差分データの作成の際のリンク探索において、注目リンクが過去に最短パスであり現在も最短パスの場合は、図３２Ａの差分情報判定テーブル２０８Ｅが参照される。このとき、注目リンクの状態変化が「更新」の場合を考える。この場合、リンク先の文書の状態変化が「新規」や「非存在」となることはあり得ない。一方、リンク先の文書の状態変化が「更新」の場合は、注目リンクの状態変化が「存在」の場合と同様、当該文書の内容が更新されたことを意味すると共に、当該文書の参照名も更新されたことを意味する。そこで、この注目リンクについては、木構造差分データに対し、「操作」の値が「更新」で、参照名が更新後の値となった差分情報を組み込む（図３０参照）。更新後の参照名は、収集後リンクテーブル２１２ａから検索すればよい。また、リンク先の文書の状態変化が「削除」の場合は、文書自体が削除されるので木構造の差分情報は「削除」となる。また、リンク先文書の状態変化が「存在」の場合は、当該文書自体に変化はないが参照名は変更されたと言うことであり、この場合、「操作」が「更新」となり、収集後リンクテーブル２１２ａから検索した当該リンクの参照名を含んだ差分情報を作成する。
【０１７４】
次に、注目リンクが過去に最短パスであったが、現在は最短パスでない場合は、図３２Ｂの差分情報判定テーブル２０８Ｆが参照される。このとき、注目リンクの状態変化が「更新」の場合を考える。この場合、リンク先の文書の状態変化が「新規」や「非存在」となることはあり得ない。一方、リンク先の文書の状態変化が「削除」の場合は、文書自体が削除されるので木構造の差分情報は「削除」となる。また、リンク先の文書の状態変化が「更新」又は「存在」の場合は、注目リンクの状態変化が「存在」の場合と同様、当該文書は参照（ショートカット）ノードとなり、そのリンクは最短パスではなくなる。したがって、操作が「新規」であり、かつ「最短パスでない」という情報を含み、かつ収集後リンクテーブル２１２ａから求めた参照名を含んだ差分情報を作成する。
【０１７５】
次に、注目リンクが過去に最短パスでなかったが、現在は最短パスである場合は、図３２Ｃの差分情報判定テーブル２０８Ｇが参照される。このとき、注目リンクの状態変化が「更新」の場合を考えると、リンク先の文書の状態変化が「非存在」となることはあり得ない。一方、リンク先の文書の状態変化が「削除」の場合は、文書自体が削除されるので木構造の差分情報は「削除」となる。また、リンク先の文書の状態変化が「新規」の場合は、その文書が新たに実ノードとなり、かつ参照名が更新されたということなので、差分情報としては操作が「新規」でかつ「最短パスである」という情報と、更新後の参照名を含んだレコードを作成し木構造差分データに組み込む。また、リンク先の文書の状態変化が「更新」又は「存在」の場合は、参照（ショートカット）ノードであったものが実ノードになったということなので、操作が「更新」であり、かつ「最短パスである」という情報を含み、かつ収集後リンクテーブル２１２ａから求めた参照名を含んだ差分情報を作成する。
【０１７６】
最後に、注目リンクが過去に最短パスでなく、現在も最短パスでない場合は、図３２Ｄの差分情報判定テーブル２０８Ｇが参照される。このとき、注目リンクの状態変化が「更新」の場合を考えると、リンク先の文書の状態変化が「非存在」となることはあり得ない。一方、リンク先の文書の状態変化が「削除」の場合は、文書自体が削除されるので木構造の差分情報は「削除」となる。また、リンク先の文書の状態変化が「新規」の場合は、テーブル２０８Ｇにおけるその組合せに対応するセルの内容は「新規」となる。この場合、リンク先文書を示す参照ノードを、リンク元文書の子として追加する旨と、その参照名とを含んだ差分情報が作成される。また、リンク先の文書の状態変化が「更新」又は「存在」の場合は、リンク先の文書は参照（ショートカット）ノードのままであり、参照名が変化したと言うことなので、操作が「更新」であり、かつ収集後リンクテーブル２１２ａから求めた参照名を含んだ差分情報が作成され、木構造差分データに組み込まれる。
【０１７７】
以上説明した処理により、参照名の変更の情報を含んだ木構造差分データを作成することができる。
【０１７８】
＜冗長リンク簡略化のための構成＞
以上のような木構造差分データ生成の仕組みに対する、冗長リンク簡略化の適用について以下に説明する。
【０１７９】
冗長リンク簡略化のために、この実施形態では、リンクテーブル（図２０Ａ，図２０Ｂ参照）に「冗長フラグ」の項目を設けた（図３３，図３４）。冗長フラグは、リンクが冗長であるか否かを示すフラグである。リンクが冗長であるかどうかは、上述の実施形態１で例示した各種手法により判定する。
【０１８０】
すなわち、差分データ作成部１６４は、上述のように、収集後リンクテーブル２１２の示すハイパーテキスト構造をトラバースしていきながら、木構造差分データを作成するが、このとき用いられるトラバースの方法は、実施形態１に示した木構造作成のためのトラバースの方法と同じである。したがって、この差分データ作成処理でのハイパーテキストのトラバースの際に、実施形態１の手法で木構造情報を作成していくことができ、この木構造情報を用いることで、「同一文書へのリンクが親にある」場合に冗長なリンクと判定するという方式が利用できる。
【０１８１】
いま具体例として、図４に示したハイパーテキスト構造が図３５に示した構造へと変化した際の木構造差分データの作成を例にとって、説明を行う。なお、図４のハイパーテキスト構造のうちの文書１５００−２から１５００−１に延びるリンクがなくなったのが、図３５のハイパーテキスト構造である。
【０１８２】
図３３は、図４のハイパーテキスト構造に対応したリンクテーブルである。これを、前回リンクテーブル２０６として用いる。ハイパーテキスト構造が図４から図３５のように変化した後で、収集部１６２（実施形態１のリンク収集部１０１０に対応）がリンク情報を収集すれば、図３４に示した収集後リンクテーブル２１２のうち、「リンク元文書ＩＤ」、「リンク先文書ＩＤ」、及び「状態変化」の各項目の情報が収集できる。差分データ作成部１６４は、この段階で収集後リンクテーブル２１２が保持する情報に基づき、根の文書を起点に、幅優先探索規則などに従ってハイパーテキスト構造をトラバースしていく。このトラバースの過程で、差分データ作成部１６４は、リンクを１つ取り出すごとに、そのリンクが最短パスかどうかを上述の基礎構成と同様に判定するとともに、そのリンクが冗長リンクであるかどうかを実施形態１と同様に判定する。
【０１８３】
そして、その冗長リンクかどうかの判定結果を、前回リンクテーブル２０６における同じリンクの「冗長リンク」フラグの値と比較し、そのフラグの値の変化に応じて、そのリンクの「状態変化」の読替を行う。読替は、図３６に示した読替規則テーブルの情報に基づいて行う。
【０１８４】
図３６の読替規則テーブルには、リンクの状態変化と冗長フラグの状態変化の組合せごとに、リンクの状態変化をどのような値に読み替えるかが示されている。冗長リンクの状態変化には、「非→非」（前回「非冗長」で今回も「非冗長」）、「非→冗長」（前回「非冗長」から今回「冗長」に変化）、「冗長→非」（前回「冗長」から今回「非冗長に変化」）、「冗長→冗長」（前回「冗長」で今回も「冗長」）の４種類が想定される。以下、テーブルの内容について説明する。
【０１８５】
まず冗長フラグの状態変化が「非→非」の場合、これは、注目しているリンクが前回も今回の時点でも冗長ではないということなので、リンクの状態変化の読替をしない（すなわち収集後リンクテーブル２１２に登録された状態変化の値をそのまま用いる）。
【０１８６】
次に「非→冗長」の状態変化は、前回冗長でなかったリンクが今回冗長リンクになったことを示す。このような場合、そのリンクが前回木構造に反映されていたなら、今回はそのリンクが木構造に反映されないようにしなければならない。そこで、この場合には、リンクの状態変化が「存在」や「更新」（この「更新」は、前回も今回もリンクは変わらず存在するがその参照名が前回から変化したことを示す状態である）であれば、それを「削除」に読み替えるようにしている。また、リンクの状態変化が「新規」の場合、前回「非存在」であったリンクが今回新たに出現したわけであるが、このリンクは今回「冗長」と判断されたので、木構造に反映されないようこれを「非存在」のままにしておく必要がある。そこで、「新規」であるリンク状態変化を「非存在」と読み替える。また、リンクの状態変化が「削除」の場合は、冗長フラグの状態変化によらずそのリンクは削除され木構造には反映されなくなるので、状態変化は「削除」のままでよい。そして、リンクの状態変化が「非存在」の場合は、前回も今回もそのリンクは存在しないので、他の条件がどうであっても、そのリンクの状態変化（すなわち非存在のまま）が木構造に変化を与えることはない。したがって、リンクの状態変化の読替を行う必要もない。なお、このようなリンクの状態変化が「非存在」の場合の考え方は、冗長フラグの状態変化が「非→冗長」以外の場合でも同じである。
【０１８７】
次に「冗長→非」という状態変化は、前回冗長であったリンクが今回非冗長になったことを示す。例えば、図４のハイパーテキスト構造では、商品Ａのページ１５００−３はトップページ１５００−１へのリンク１５１０−１を持つが、親である商品ページ１５００−２も同じくトップページ１５００−１へのリンク１５１０−２を持つので、そのリンク１５１０−１は冗長と判定される。ところが、図３５の構造では、商品ページ１５００−２も同じくトップページ１５００−１へのリンク１５１０−２がなくなったため、リンク１５１０−１は非冗長と判定されることになる（なお、逆に図３５から図４へとハイパーテキスト構造が変化した場合、リンク１５１０−１の状態変化は「非→冗長」となる）。このように冗長から非冗長へと状態が変化した場合、前回リンクが存在していたとしてもそれは冗長だったので木構造に反映されなかったが、今回も存在すればそのリンクを木構造へ反映することを考慮する必要が出てくる。そこで、このような場合には、リンクの状態変化が「存在」又は「更新」であれば、その状態変化を「新規」と読み替えるのである（図３６参照）。この読替により、前回はリンクが存在していても木構造作成の際には存在しないとみなされていたところが、今回の非冗長への状態変化により、そのリンクが新たに現れた（「新規」）ものと扱われることになる。また、リンクの状態変化が「新規」の場合は、読替の必要はない。なお、リンクの状態変化が「削除」の場合は、今回リンク自体が削除され存在しなくなったわけであるが、前回はそのリンクが存在していても冗長と判断され存在しないものとみなされていたので、状態変化を「非存在」と読み替える。
【０１８８】
そして「冗長→冗長」という状態変化は、前回も今回もリンクは冗長なので、そのリンクが実際に存在していようがいまいが、前回も今回も存在しないものとして取り扱われる。したがって、リンクの状態変化は、リンク収集時に求めた値によらず「非存在」に読み替える。
【０１８９】
なお、リンク状態変化の読替は一時的なものであり、次回に残すリンクテーブル（次回の更新タイミングでの「前回リンクテーブル」となる）上のリンクの状態変化の欄には読替前のものを残しておく。
【０１９０】
以上、リンクの状態変化の読替処理について説明した。本実施形態では、ハイパーテキスト構造のトラバースしていく過程で、差分データ作成部１６４がリンクを１つ取り出してそれに対応する木構造の差分を求めるごとに、上述のリンク状態変化の読替を行った上で差分情報判定テーブル２０８Ａ〜２０８Ｄ或いは２０８Ｅ〜２０８Ｈに当てはめ、そのリンクに対応する木構造差分の情報を求めるのである。読替によりリンク状態変化はリンクが冗長か否かを反映したものとなっているので、それを差分情報判定テーブルに適用すれば適切な差分情報が求められる。
【０１９１】
このように、本実施形態では、各リンクの冗長フラグを記録する点、及びこの冗長フラグの変化に応じてリンク状態変化を読み替える点を除いては、上述の基礎的な構成と同様の処理を利用することができる。
【０１９２】
以上、木構造の差分情報を生成する場合への本発明の適用の例を説明したが、この例はあくまで例示的なものであり、本発明の範囲内で様々な変形が可能である。
【０１９３】
例えば、冗長リンクと判定する条件として、「同一文書へのリンクが親にある」だけでなく、アンカーの対象となるテキスト等の一致まで要求するという方式は、この実施形態にもそのまま適用可能であることは容易に理解できるであろう。また、収集したリンク情報の統計処理から冗長リンクを割り出す方式も、この実施形態に適用可能である。
【０１９４】
なお、以上の各実施形態において検出した冗長リンクの情報を、文書自体の簡略化に利用することもできる。すなわち、この場合には、上述の手法で冗長と判定したリンクの記述を文書中から削除する。これにより、文書のデータサイズを小さくすることができるので、通信コストの削減に寄与するとともに、携帯端末等のリソースの限られた装置における文書閲覧にも資する。例えば、ナビゲーションサーバ１０００が、収集した文書から冗長リンクを削除した版（バージョン）を作成して保持し、ナビゲーションページを用いてユーザが文書を選択し、その選択の情報をウェブサーバ１１００を介してナビゲーションサーバ１０００に伝え、ナビゲーションサーバ１０００がその文書の冗長リンク削除版をユーザに提供するようにするなどのシステム形態が可能である。
【０１９５】
以上、本発明の好適な実施形態を説明した。以上に説明した実施形態のナビゲーションサーバ１０００や木構造情報収集装置１６は、典型的には、上述の処理内容を記述した１又は複数のプログラムを、中央演算処理装置や主記憶装置、不揮発性の大容量記憶装置などを備えた一般的なコンピュータシステムで実行することにより実現される。そのようなプログラムは、１台のコンピュータシステムで実行してもよいし、複数のコンピュータシステムで分散処理してもよい。
【図面の簡単な説明】
【０１９６】
【図１】本発明に係るナビゲーションサーバの構成を示す機能ブロック図である。
【図２】文書テーブルのデータ内容の一例を示す図である。
【図３】リンクテーブルのデータ内容の一例を示す図である。
【図４】ハイパーテキスト構造の一例を示す図である。
【図５】木構造作成部の処理手順を示すフローチャートである。
【図６】冗長リンク削除部の処理手順を示すフローチャートである。
【図７】ある時点でのキュー，木構造情報保持部内の情報及び木構造の状態を示す図である。
【図８】別の時点でのキュー，木構造情報保持部内の情報及び木構造の状態を示す図である。
【図９】さらに別の時点でのキュー，木構造情報保持部内の情報及び木構造の状態を示す図である。
【図１０】さらに別の時点でのキュー，木構造情報保持部内の情報及び木構造の状態を示す図である。
【図１１】さらに別の時点でのキュー，木構造情報保持部内の情報及び木構造の状態を示す図である。
【図１２】最終的に生成される木構造情報の例を示す図である。
【図１３】従来手法で作成される木構造の例を示す図である。
【図１４】実施形態２の基礎となる木構造差分作成システムの全体構成の一例を示す図である。
【図１５】木構造情報提供サーバ１２及び木構造情報収集装置１６の機能モジュール構成の一例を示す図である。
【図１６Ａ】ある社内ネットワーク内の文書群が、前回の木構造更新タイミングにおいて構成していたハイパーテキスト構造を示す図である。
【図１６Ｂ】同じ社内ネットワーク内の文書群が、今回の木構造更新タイミングにおいて構成しているハイパーテキスト構造を示す図である。
【図１７】木構造差分作成システムにおける木構造データの更新処理の流れを示す図である。
【図１８】巡回リストのデータ内容の一例を示す図である
【図１９Ａ】前回文書テーブルのデータ内容の一例を示す図である。
【図１９Ｂ】収集後文書テーブルのデータ内容の一例を示す図である。
【図２０Ａ】前回リンクテーブルのデータ内容の一例を示す図である。
【図２０Ｂ】収集後リンクテーブルのデータ内容の一例を示す図である。
【図２１Ａ】差分情報判定テーブルの一例を示す図である。
【図２１Ｂ】差分情報判定テーブルの一例を示す図である。
【図２１Ｃ】差分情報判定テーブルの一例を示す図である。
【図２１Ｄ】差分情報判定テーブルの一例を示す図である。
【図２２】木構造差分データの一例を示す図である。
【図２３】収集後文書テーブル及び収集後リンクテーブルの書換規則を示す図である。
【図２４】書換により得られた、次回更新タイミングで用いる「前回文書テーブル」のデータ内容に一例を示す図である。
【図２５】書換により得られた、次回更新タイミングで用いる「前回リンクテーブル」のデータ内容に一例を示す図である。
【図２６】木構造を用いた文書ナビゲーションにおける文書名表示の問題を説明するための図である。
【図２７】ユーザにとって分かりやすい文書名表示の例を示す図である。
【図２８Ａ】ある時点でのハイパーテキスト構造を示す図である。
【図２８Ｂ】図２８Ａのハイパーテキスト構造が変更（文書内のアンカーテキストの変更を含む）された後の構造を示す図である。
【図２９Ａ】ユーザにとって分かりやすい文書名表示を実現するための変形例における前回リンクテーブルのデータ内容の一例を示す図である。
【図２９Ｂ】ユーザにとって分かりやすい文書名表示を実現するための変形例における収集後リンクテーブルのデータ内容の一例を示す図である。
【図３０】ユーザにとって分かりやすい文書名表示を実現するための変形例において作成される木構造差分データの一例を示す図である。
【図３１】木構造差分作成の変形例の別の処理手順で生成される収集後リンクテーブルのデータ内容の一例を示す図である。
【図３２Ａ】木構造差分作成の変形例の別の処理手順で用いる差分情報判定テーブルの一例を示す図である。
【図３２Ｂ】木構造差分作成の変形例の別の処理手順で用いる差分情報判定テーブルの一例を示す図である。
【図３２Ｃ】木構造差分作成の変形例の別の処理手順で用いる差分情報判定テーブルの一例を示す図である。
【図３２Ｄ】木構造差分作成の変形例の別の処理手順で用いる差分情報判定テーブルの一例を示す図である。
【図３３】冗長リンクの処理のために用いる前回リンクテーブルの例を示す図である。
【図３４】冗長リンクの処理のために用いる収集後リンクテーブルの例を示す図である。
【図３５】図４のハイパーテキスト構造から、トップページへのリンクが１つなくなった構造を示す図である。
【図３６】リンクの読替のための規則を示すテーブルの内容を示す図である。
【符号の説明】
【０１９７】
１０００  ナビゲーションサーバ、１０１０  リンク収集部、１０２０  ハイパーテキスト構造保持部、１０２２  文書テーブル、１０２４  リンクテーブル、１０３０  木構造作成部、１０４０  冗長リンク削除部、１０５０  木構造情報保持部、１０６０  ナビゲーションページ作成部、１１００  ウェブサーバ、１２００  ネットワーク、１３００  クライアント装置。
【図１】
2006031191.tif 000003
【図２】
2006031191.tif 000004
【図３】
2006031191.tif 000005
【図４】
2006031191.tif 000006
【図５】
2006031191.tif 000007
【図６】
2006031191.tif 000008
【図７】
2006031191.tif 000009
【図８】
2006031191.tif 000010
【図９】
2006031191.tif 000011
【図１０】
2006031191.tif 000012
【図１１】
2006031191.tif 000013
【図１２】
2006031191.tif 000014
【図１３】
2006031191.tif 000015
【図１４】
2006031191.tif 000016
【図１５】
2006031191.tif 000017
【図１６Ａ】
2006031191.tif 000018
【図１６Ｂ】
2006031191.tif 000019
【図１７】
2006031191.tif 000020
【図１８】
2006031191.tif 000021
【図１９Ａ】
2006031191.tif 000022
【図１９Ｂ】
2006031191.tif 000023
【図２０Ａ】
2006031191.tif 000024
【図２０Ｂ】
2006031191.tif 000025
【図２１Ａ】
2006031191.tif 000026
【図２１Ｂ】
2006031191.tif 000027
【図２１Ｃ】
2006031191.tif 000028
【図２１Ｄ】
2006031191.tif 000029
【図２２】
2006031191.tif 000030
【図２３】
2006031191.tif 000031
【図２４】
2006031191.tif 000032
【図２５】
2006031191.tif 000033
【図２６】
2006031191.tif 000034
【図２７】
2006031191.tif 000035
【図２８Ａ】
2006031191.tif 000036
【図２８Ｂ】
2006031191.tif 000037
【図２９Ａ】
2006031191.tif 000038
【図２９Ｂ】
2006031191.tif 000039
【図３０】
2006031191.tif 000040
【図３１】
2006031191.tif 000041
【図３２Ａ】
2006031191.tif 000042
【図３２Ｂ】
2006031191.tif 000043
【図３２Ｃ】
2006031191.tif 000044
【図３２Ｄ】
2006031191.tif 000045
【図３３】
2006031191.tif 000046
【図３４】
2006031191.tif 000047
【図３５】
2006031191.tif 000048
【図３６】
2006031191.tif 000049