(57)【特許請求の範囲】
【請求項１】
コンピュータによる処理により、仮想空間において、ガイドするためのガイド提供プログラムであって、前記ガイド提供プログラムは、前記コンピュータに、
前記仮想空間内のある領域の環境変動を示す環境変動情報と、前記領域内に含まれる複数の訪問場所の訪問状況を示す訪問状況情報とを取得するステップと、
前記環境変動情報を参照して、前記領域内において一定以上の環境変動があったか否かを判定するステップと、
一定以上の環境変動があったと判定することに応答して、該応答時点から次に一定以上の環境変動があったと判定するまでの期間の各訪問場所の訪問履歴を示す訪問履歴情報のエントリを、訪問履歴情報テーブルに作成するステップと、
取得した前記訪問状況情報で、前記訪問履歴情報テーブル内の対応する期間の前記訪問履歴情報を更新するステップと、  
ガイドを提供する時点において最新の前記訪問履歴情報に基づいて、お勧めの訪問場所を決定するステップと
を実行させる、ガイド提供プログラム。  
【請求項２】
前記環境変動情報は、前記仮想空間内の前記ある領域を構成する各構成要素を木構造で表現するシーングラフの各ノードに対する子ノードの追加、削除、及び更新の操作の操作情報を含み、
前記判定するステップは、前記操作情報に基づき、前回一定以上の環境変動があったと判定してから現在までの操作数の合計を求めるステップと、前記操作数の合計が所定の条件を満たす場合に前記環境変動があったと判定するステップとを含む、請求項１記載のガイド提供プログラム。
【請求項３】
前記ガイド提供プログラムは、前記コンピュータに、前記ある領域を記述し、かつ、各ノードが、子ノードを追加、削除、及び更新する各操作の操作数を示す属性情報を有する前記シーングラフを前記コンピュータのバッファに一時的に維持するステップと、受け取った前記操作情報に基づいて、前記属性情報を更新するステップと、前記一定以上の環境変動があったと判定したことに応答して、前記バッファ内のシーングラフを、該応答時に作成する前記訪問履歴情報のエントリに関連付けて、シーングラフ格納部に格納するステップを更に実行させ、
前記決定するステップは、各訪問場所を、該訪問場所に対応するノードの前記属性情報に基づいて重み付けをするステップと、重み付けの結果を考慮して前記最新の前記訪問履歴情報に基づき、前記お勧めの訪問場所を決定するステップとを含む、請求項２記載のガイド提供プログラム。
【請求項４】
前記決定するステップは、前記最新の前記訪問履歴情報と前記訪問履歴情報テーブル内の他の前記訪問履歴情報とに基づいて、新規に追加された訪問場所を検出するステップと、検出した結果に基づき各訪問場所に重み付けをするステップと、重み付けの結果を考慮して前記最新の前記訪問履歴情報に基づき、前記お勧めの訪問場所を決定するステップとを含む、請求項１記載のガイド提供プログラム。
【請求項５】
前記決定するステップは、前記最新の前記訪問履歴情報と前記訪問履歴情報テーブル内の他の前記訪問履歴情報とを比較して、今後人気が出ることが予測される訪問場所を前記お勧めの訪問場所として決定するステップを含む、請求項１記載のガイド提供プログラム。
【請求項６】
前記決定するステップは、前記最新の前記訪問履歴情報の中に、訪問場所間で比較して統計的に有意差のある訪問履歴情報があるか否かを判定するステップと、前記統計的に有意差のある訪問履歴情報がないとの判定に応答して、前記訪問履歴情報テーブルから次に新しい訪問履歴情報を読み出し、該訪問履歴情報に基づいてお勧めの訪問場所を決定するステップを含む、請求項１記載のガイド提供プログラム。  
【請求項７】
前記訪問状況情報は、訪問者数、滞在時間、及び再訪問数の少なくとも１つを含む、請求項１に記載のガイド提供プログラム。
【請求項８】
前記各訪問場所を訪問するユーザはその属性に基づいて複数のグループに分類され、前記訪問履歴情報は、前記グループ別の訪問履歴情報を含み、
前記ガイド提供プログラムは、前記コンピュータに、ガイドの提供を要求する要求者の属性を示す属性情報を取得するステップを更に実行させ、
前記決定するステップは、前記最新の前記訪問履歴情報と取得した前記要求者の前記属性情報とに基づいて、お勧めの前記訪問場所を決定するステップを含む、請求項１に記載のガイド提供プログラム。
【請求項９】
前記訪問状況情報及び前記訪問履歴情報テーブル内の前記訪問履歴情報は、１の訪問場所から他の訪問場所への移動数に関する情報を含み、前記決定するステップは、お勧めの訪問場所及びその訪問経路を決定するステップを含む、請求項１に記載のガイド提供プログラム。
【請求項１０】
コンピュータによる処理により、仮想空間において、ガイドするためのガイド提供方法であって、
前記仮想空間内のある領域の環境変動を示す環境変動情報と、前記領域内に含まれる複数の訪問場所の訪問状況を示す訪問状況情報とを取得するステップと、
前記環境変動情報を参照して、前記領域内において一定以上の環境変動があったか否かを判定するステップと、
一定以上の環境変動があったと判定することに応答して、該応答時点から次に一定以上の環境変動があったと判定するまでの期間の各訪問場所の訪問履歴を示す訪問履歴情報のエントリを、訪問履歴情報テーブルに作成するステップと、
取得した前記訪問状況情報で、前記訪問履歴情報テーブル内の対応する期間の前記訪問履歴情報を更新するステップと、  
ガイドを提供する時点において最新の前記訪問履歴情報に基づいて、お勧めの訪問場所を決定するステップと
を含む、ガイド提供方法。  
【請求項１１】
仮想空間において、ガイドするためのガイド提供装置であって、
訪問履歴情報テーブルを格納する訪問履歴情報格納部と、
前記仮想空間内のある領域内の環境変動を示す環境変動情報、及び前記領域内に含まれる複数の訪問場所の訪問状況を示す訪問状況情報を取得する取得部と、
前記環境変動情報を参照して、前記領域内において一定以上の環境変動があったか否かを判定する環境変動判定部と、
一定以上の環境変動があったと判定してから次に一定以上の環境変動があったと判定するまでの期間の各訪問場所の訪問履歴を示す訪問履歴情報のエントリを、前記訪問履歴情報テーブルに作成し、取得した前記訪問状況情報で、前記訪問履歴情報テーブル内の対応する期間の前記訪問履歴情報を更新する訪問履歴情報取得部と、
ガイドを提供する時点において最新の前記訪問履歴情報に基づいて、お勧めの訪問場所を決定する決定部と
を含む、ガイド提供装置。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間にアクセスする不特定多数のユーザの行動履歴情報に基づき仮想空間において、ガイドする技術に関し、特に、仮想空間の環境変動を考慮したガイド提供技術に関する。
【背景技術】
【０００２】
近年、３次元コンピュータ・グラフィックスで作られたオンラインの仮想現実世界を提供するサービスが注目を浴びている。サービスの利用者は、専用のクライアント用ソフトウェアをインストールしたコンピュータから、インターネット等のネットワーク経由でホストのサーバに接続し、仮想現実世界にアクセスする。仮想現実世界では、サービスの利用者は、自らの分身であるアバタを操作して活動する。例えば、サービスの利用者は、アバタを介して、仮想現実世界に作られた街並みや建物を見て回ったり、出会った他の利用者と会話を楽しんだりする。またサービスの利用者は、仮想空間内において自らオブジェクトを作成し、販売する等の創作活動や商業活動も行うことができる。
【０００３】
このように仮想空間内では、ユーザが取りうる行動の選択肢が非常に多い。また仮想空間ではオブジェクトの作成が容易であるため、次々と新しい建物やアイテムが出現し、その環境変動が著しい。そのため、時々刻々と変化していく仮想空間内を効率的に探索するためのガイドの提供が望まれる。そのようなガイドを提供するにあたっては、仮想空間をアクセスする不特定多数のユーザの行動履歴情報を利用することが考えられる。例えば、多くのユーザによってアクセスされる場所は、人気の高いお勧めの場所とみなすことができる。
【０００４】
大量の移動体の行動履歴から、多くの移動体に共通する行動パターンを抽出する技術として、特許文献１が存在する。特許文献１は、移動体が訪問する訪問場所と訪問順序と、各訪問場所における滞在時間とで表される複数の行動履歴データを記憶し、複数の行動履歴データを基に、複数の訪問場所のそれぞれについて、訪問場所における滞在時間を分類するための区分を設定し、複数の行動履歴データのそれぞれに含まれる各訪問場所における滞在時間について、複数の区分のそれぞれに対する適合性の評価値を求め、移動体が訪問する訪問場所と訪問順序と、各訪問場所における複数の区分のうちの１つとで表される特徴行動パターンを抽出する技術を開示する。
【特許文献１】特開２００５−５６０２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１は、多くの移動体に共通する行動パターンを抽出するための基となるデータをどのようにして取得するか、即ちどの期間のユーザの行動履歴情報を利用するかについては全く開示していない。これは特許文献１が、ガイドの提供を目的とするのでなく、大量の移動体の行動履歴から、単に多くの移動体に共通する行動パターンを抽出することを目的とすることによる。しかし、上述したように、時々刻々と変化していく仮想空間を適切に案内するには、基となるデータの選択が非常に重要となる。
【０００６】
例えば、比較的長い期間に亘るデータを基に行動パターンの傾向を抽出することが考えられるが、この場合、建物やアイテムの増減等により仮想空間内の環境が急激に変化し、ユーザの行動パターンの傾向に変化が現れ始めたとしてもそのような傾向はそれ以前のデータに埋もれてしまいタイムリーな情報を提供することができない。その一方で、比較的短い期間に亘るデータを基に行動パターンの傾向を抽出すると、環境の変化とは無関係な一時的でノイズのようなデータに基づき行動パターンの傾向を抽出する可能性があり、信頼性のある情報を提供することが難しい。
【０００７】
この発明は、上記の問題点を解決するためになされたものであって、仮想空間内の環境の変動を考慮した、不特定多数のユーザの行動履歴情報の解析技法を提供することを目的とする。また、そのような仮想空間内の環境の変動を考慮した解析結果に基づくガイドを提供することを他の目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成する本発明の第一実施形態に係るガイド提供プログラムは、コンピュータに次の各ステップ（ａ）乃至（ｅ）を実行させる。（ａ）仮想空間内のある領域の環境変動を示す環境変動情報と、領域内に含まれる複数の訪問場所の訪問状況を示す訪問状況情報とを取得するステップ。ここで、仮想空間内のある領域とは、ガイド提供者がガイドを提供することを希望する領域であり、仮想空間内の任意の領域であってよい。（ｂ）環境変動情報を参照して、領域内において一定以上の環境変動があったか否かを判定するステップ。（ｃ）一定以上の環境変動があったと判定することに応答して、該応答時点から次に一定以上の環境変動があったと判定するまでの期間の各訪問場所の訪問履歴を示す訪問履歴情報のエントリを、訪問履歴情報テーブルに作成するステップ。（ｄ）取得した訪問状況情報で、訪問履歴情報テーブル内の対応する期間の訪問履歴情報を更新するステップ。（ｅ）ガイドを提供する時点において最新の訪問履歴情報に基づいて、お勧めの訪問場所を決定するテップ。
【０００９】
好ましくは、上記環境変動情報は、仮想空間内のある領域を記述するシーングラフの各ノードに対する子ノードの追加、削除、及び更新の操作の操作情報を含む。なお、本発明において領域を記述するシーングラフとは、その領域を構成する各構成要素を木構造で表現するものをいう。そして、上記ステップ（ｃ）は、操作情報に基づき、前回一定以上の環境変動があったと判定してから現在までの操作数の合計を求めるステップと、操作数の合計が所定の条件を満たす場合に環境変動があったと判定するステップとを含む。
【００１０】
更に好ましくは、上記ガイド提供プログラムは、上記コンピュータに、ある領域を記述し、かつ、各ノードが、子ノードを追加、削除、及び更新する各操作の操作数を示す属性情報を有するシーングラフを一時的に上記コンピュータのバッファに維持するステップと、受け取った操作情報に基づいて、属性情報を更新するステップと、一定以上の環境変動があったと判定したことに応答して、上記バッファ内のシーングラフを、該応答時に作成する訪問履歴情報のエントリに関連付けて、シーングラフ格納部に格納するステップを実行させる。そして上記ステップ（ｅ）は、各訪問場所を、該訪問場所に対応するノードの属性情報に基づいて重み付けをするステップと、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定するステップとを含む。
【００１１】
また好ましくは、上記ステップ（ｅ）は、最新の訪問履歴情報と訪問履歴情報テーブル内の他の訪問履歴情報とに基づいて、新規に追加された訪問場所を検出するステップと、検出した結果に基づき各訪問場所に重み付けをするステップと、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定するステップとを含む。
【００１２】
また好ましくは、上記ステップ（ｅ）は、最新の訪問履歴情報と訪問履歴情報テーブル内の他の訪問履歴情報とを比較して、今後人気が出ることが予測される訪問場所をお勧めの訪問場所として決定するステップを含む。
【００１３】
また好ましくは、上記ステップ（ｅ）は、最新の訪問履歴情報の中にお勧めの訪問場所を示す訪問履歴情報がない場合に、訪問履歴情報テーブルから次に新しい訪問履歴情報を読み出し、該訪問履歴情報に基づいてお勧めの訪問場所を決定するステップを含む。
【００１４】
また好ましくは、上記訪問状況情報は、訪問者数、滞在時間、及び再訪問数の少なくとも１つを含む。
【００１５】
また好ましくは、各訪問場所を訪問するユーザはその属性に基づいて複数のグループに分類され、訪問履歴情報は、グループ別の訪問履歴情報を含む。また上記ガイド提供プログラムは、上記コンピュータに、ガイドの提供を要求する要求者の属性を示す属性情報を取得するステップを更に実行させる。そして、上記ステップ（ｅ）は、最新の訪問履歴情報と取得した要求者の属性情報とに基づいて、お勧めの訪問場所を決定するステップを含む。
【００１６】
また好ましくは、上記訪問状況情報及び上記訪問履歴テーブル内の訪問履歴情報は、１の訪問場所から他の訪問場所への移動数に関する情報を含む。そして、上記ステップ（ｅ）は、お勧めの訪問場所及びその訪問経路を決定するステップを含む。
【００１７】
以上、ガイド提供プログラムとして本発明を説明したが、本発明は、コンピュータにおいて実行される、仮想空間において、ガイドするためのガイド提供方法、及び該ガイド提供プログラムを実行するガイド提供装置として把握することもできる。
【発明の効果】
【００１８】
仮想空間内におけるユーザの行動履歴情報の傾向の変化は、多くの場合、新しいスポットの出現や各スポットにおいて提供される商品やサービスの内容の変化に起因する。そこで、本発明では、仮想空間内のある領域の環境変動を示す環境変動情報を参照して、領域内において一定以上の環境変動があったか否かを判定し、一定以上の環境変動があったと判定してから次に再び一定以上の環境変動があったと判定するまでの期間単位でユーザの行動履歴情報を解析する。そしてガイドを提供する際において最新の解析結果である訪問履歴情報に基づいて、お勧めの訪問場所を決定する。該構成の採用により、本発明によれば、時々刻々と変化していく仮想空間内を探索するためのタイムリーで適切なガイドを提供することが可能となる。本発明のその他の効果については、各実施の形態の記載から理解される。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。  
【００２０】
まず、本発明の詳細な説明に入る前に、本発明において取り扱うシーングラフについて説明する。本発明では、仮想空間内における一定以上の環境変動をコンピュータ処理により検知するために、ある時点における仮想空間の状態をシーングラフとして記述する。上述したように、本発明において領域を記述するシーングラフとは、その領域を構成する各構成要素を木構造で表現するものをいう。一般に、３次元空間内に配置される任意のオブジェクトは階層的な相互関係を持つ。例えば、島のオブジェクトの上に建物のオブジェクトが含まれ、建物のオブジェクトの上にテーブルのオブジェクトが含まれ、テーブルのオブジェクトの上に商品のオブジェクトが存在するといった具合である。
【００２１】
そこで、本発明では、仮想空間内の各オブジェクトをノード、またオブジェクト間の階層的な相互関係をエッジにより表現して、ある時点の仮想空間内の領域をシーングラフよって記述する。なお、本発明で扱うシーングラフでは、島や建物などのオブジェクトだけでなく、オブジェクトに共通の概念をもノードとして扱ってよい。例えば、一定の領域を示す地区はオブジェクトではないが、建物Ａと建物Ｂが地区Ａに存在する場合、地区Ａをノードとして扱い、地区Ａと建物Ａ、Ｂとの階層的な相互関係をシーングラフにより記述してよい。更には、本発明で扱うシーングラフでは、一定の領域内で行われるコンサートや大会等のイベントやサービスもノードとして扱ってよい。
【００２２】
また、オブジェクトは、一定の場所に固定される固定オブジェクトと、仮想空間内を移動可能な半固定オブジェクトのいずれかに分類されるが、本発明においては、これらを区別することなくいずれもノードとして扱ってよい。これに代えて、半固定オブジェクトはノードとしては取り扱わず、しかしながら半固定オブジェクトをその設置場所を示すノードに関連付けて処理してもよい。或いは、半固定オブジェクトはガイド提供に利用せずに、本発明の処理対象外としてもよい。
【００２３】
或いはまた、上記３つの取り扱い方法を、半固定オブジェクトの種類によって使い分けてもよい。例えば、仮想空間内を移動するオブジェや人形はノードとして扱い、商品や配布物はそれらの設置場所を示すノードに関連付けて扱い、自動車や個人の持ち物などガイド提供に影響しないものは処理対象外として扱ってもよい。
【００２４】
図１に、本発明において取り扱う、ある時点における仮想空間のある領域を記述するシーングラフの一例を示す。図１に示す仮想空間は、東京を含む都市の仮想空間である。図１において、実線の矩形または円はノード示し、直線はエッジを示す。また、ルート・ノード２０２は、仮想空間全体を示す。図１に示すシーングラフは、ある時点において、新宿エリアには店舗Ａ、Ｂと公園Ａとが含まれ、店舗Ａは１階から３階まで有し、店舗Ａの１階には商品棚Ａ、Ｂとレジ１とが存在することを示している。このように、シーングラフによって、ある時点のある領域の状態を記述することができる。
【００２５】
なお、ここでは仮想空間全体をルートとしているが、ガイド提供者は、ガイド提供の対象領域に応じてルート・ノードを指定してよい。例えば、新宿エリアをガイド提供の対象領域とする場合、ノード２１０をルート・ノードとして指定することができる。同様に、ガイド提供者は、提供するガイドの詳細度に応じて、シーングラフの階層の深さを指定してよい。例えば建物の階数や部屋番号レベルでガイドを提供することを希望する場合、図１に示す例ではレベル１を階層の深さとして指定することができる。
【００２６】
次に図２を参照して、本発明の実施形態に係るガイド提供装置１００の概要を説明する。図２は、本発明の実施形態に係るガイド提供装置１００の機能構成の一例を示す図である。本発明の実施形態に係るガイド提供装置１００は、仮想空間内を探索する不特定多数のユーザの行動履歴情報、及び仮想空間内の環境変動を示す環境変動情報を収集し、維持する履歴情報収集部１０５と、収集された履歴情報に基づいて、ユーザに提供する仮想空間のガイド情報を作成するガイド情報作成部１５５とを含む。
【００２７】
上記履歴情報収集部１０５は、取得部１１０、環境変動判定部１２０、及び訪問履歴情報取得部１４０を含み、収集した結果をシーングラフ格納部１３０及び訪問履歴情報格納部１５０に格納する。即ち、取得部１１０は、ある時点の仮想空間内のある領域を記述するシーングラフと、該領域に含まれる各訪問場所の訪問状況を示す訪問状況情報とを取得する。取得されたシーングラフは環境変動判定部１２０に渡され、環境変動判定部１２０は、シーングラフを過去のシーングラフと比較し、その差分が一定以上であるか否かを判定する。一定以上の差分があった場合、環境変動判定部１２０は、取得したシーングラフをシーングラフ格納部１３０へ格納する。
【００２８】
また、取得された訪問状況情報は訪問履歴情報取得部１４０に渡され、訪問履歴情報取得部１４０は、訪問状況情報に基づき、環境変動判定部１２０により一定以上の差分があったと判断されてから次に再び同判定がなされるまでの期間の様々な訪問状況に関する統計値を求める。例えば、訪問履歴情報取得部１４０は、店舗Ａを訪問したアバタの数や、店舗Ａでのアバタの滞在時間、また店舗Ａから店舗Ｂへ移動したアバタ数などを求める。そのような統計値は、アバタの性別や年齢など、アバタの異なる属性ごとに求めてもよい。訪問履歴情報取得部１４０により求められた各統計値は、対応するシーングラフのノードやアークに関連付けて、訪問履歴情報として訪問履歴情報格納部１５０へ格納される。
【００２９】
ガイド情報作成部１５５は、入力部１６０、決定部１７０、及び提供部１８０を含み、シーングラフ格納部１３０及び訪問履歴情報格納部１５０に格納された情報、及び入力部１６０により入力された情報に基づいて、お勧めの訪問場所及び経路情報を検索し提供する。即ち入力部１６０は、ガイド提供の要求と、要求者の属性を示す属性情報を取得する。要求者の属性情報は、例えば、要求者の性別や、出身地、言語、趣味等の要求者のプロフィールや、購買記録などの要求者の過去の行動履歴情報であってよい。
【００３０】
決定部１７０は、訪問履歴情報格納部１５０から読み出した最新の訪問履歴情報を参照して、お勧めの訪問場所やその訪問経路を決定する。その際決定部１７０は、シーングラフ格納部１３０に格納される情報に基づいて、各訪問場所に重み付けをしてもよい。また決定部１７０は、要求者の属性情報に基づいて、各訪問場所の訪問履歴情報の各値に重み付けをしてもよい。提供部１８０は、決定部１７０により決定された訪問場所やその訪問経路を適宜加工して、要求者に提供する。
【００３１】
このように本発明では、仮想空間内のある領域の環境変動を示す環境変動情報を参照して、領域内において一定以上の環境変動があったか否かを判定し、一定以上の環境変動があったと判定してから次に再び一定以上の環境変動があったと判定するまでの期間単位でユーザの行動履歴情報を解析する。そしてガイドを提供する際に最新の解析結果である訪問履歴情報に基づいて、お勧めの訪問場所を決定する。その結果、本発明によれば、時々刻々と変化していく仮想空間内を探索するためのタイムリーで適切なガイドを提供することが可能となる。
【００３２】
次に図１乃至図４を参照して、本発明の実施形態に係るガイド提供装置１００を詳細に説明する。図２に示す取得部１１０は、仮想空間内のある領域内の環境変動を示す環境変動情報、及び該領域内に含まれる複数の訪問場所の訪問状況を示す訪問状況情報を取得する。ここで、仮想空間内のある領域とは、ガイド提供装置１００がガイドを提供する領域としてカバーする領域を意味し、仮想空間全体であってもよく、あるいは仮想空間の一部の空間であってもよい。
【００３３】
環境変動情報は、好ましくは、仮想空間内の上記ある領域を構成する各構成要素を木構造で表現するシーングラフの各ノードに対する子ノードの追加、削除、及び更新の操作の操作情報を含む。具体的には、各操作情報は、操作対象となるノード及び追加、削除、又は更新される子ノードそれぞれについての、名称（識別子）、仮想空間内の位置座標、及びノードの種別を含む。また訪問状況情報は、好ましくは、過去のある基準となる時点又は取得部１１０が訪問状況情報を前回取得した時点から現在までの、上記領域に含まれる各訪問場所の、訪問者数、滞在時間、及び再訪問した訪問者数の少なくとも１つを含む。更にまた、各訪問場所を訪問するアバタ（ユーザ）のその属性に基づいて複数のグループに分類され、上記訪問状況情報は、グループ別の訪問状況情報を含んでもよい。例えば、各訪問場所の訪問者数情報は、全アバタの訪問者数とともに、性別別アバタの訪問者数や年代別アバタの訪問者数の情報を含んでもよい。
【００３４】
なお、取得部１１０により取得される情報は、一例として仮想空間を提供するシステムにより提供されてよい。仮想空間内のアバタを含む３次元のオブジェクトは、仮想空間をアクセスするユーザにより生成、削除、又は更新され、このような情報は、同じ空間に自身のアバタを位置させる複数のユーザ間で共有されるものである。そのため各ユーザが仮想空間内において行った操作の操作情報は、仮想空間を提供するシステムに一旦送信され、そこでオブジェクトごとに管理される。従って本実施形態においては、取得部１１０は、上記環境変動情報及び訪問状況情報を、仮想空間を提供するシステムから定期的に、或いは一定量の新たな情報が得られる度に取得するものとする。これに代えて、仮想空間に、上記環境変動情報及び訪問状況情報を収集するエージェントを設置し、取得部１１０は、該エージェントから情報を取得してもよい。
【００３５】
環境変動判定部１２０は、環境変動情報を参照して、領域内において一定以上の環境変動があったか否かを判定する。好ましくは、環境変動判定部１２０は、環境変動情報に含まれる操作情報に基づき、前回環境変動があったと判定してから今回環境変動情報を取得した時点までの間に各ノードに対してなされた子ノードの追加、削除、及び更新の操作数の合計を求め、操作数の合計が所定の条件を満たす場合に、環境変動があったと判定する。ここで、所定の条件とは、環境変動の有無を判定するための操作数の合計に関する条件であり、例えば、ガイド提供者は、全操作の操作数の合計又はいずれかの操作の操作数の合計が閾値以上である場合に環境変動があったとする条件を設定してよい。なお、閾値は、ガイド提供の対象とする領域の特徴や広さに応じてガイド提供者が設定するものとする。また、操作数の合計を算出する際に、全ての操作に対して１を加算するのではなく、子ノードの種別や操作の内容などに応じて予め定められた定数を加算する方法を用いても良い。この方法によれば、例えば、商品の個数の増減よる環境変動よりも、商品の入れ替えよる環境変動を重視することが可能となる。
【００３６】
好ましくは、環境変動判定部１２０は、現時点の上記領域の状態を記述するシーングラフを一時的に維持するためのバッファ１２５を有する。バッファ１２５に維持されるシーングラフの各ノードは、ノードの名称、３次元仮想空間内の位置座標、及びノードの種別に関する情報を有する。また環境変動を判定するために、本実施例では葉ノードを除く各ノードに、該ノードの子ノードを追加、削除、更新する各操作の操作数を示す属性情報を付与する。環境変動判定部１２０は、取得部１１０から渡された操作情報に基づいて、バッファ１２５内のシーングラフ及び対応するノードの属性情報を更新する。
【００３７】
環境変動判定部１２０はまた、一定以上の環境変動があったと判定した場合、バッファ１２５内に維持するシーングラフを、後述する訪問履歴情報テーブル内の上記判定時に作成されるエントリに関連付けてシーングラフ格納部１３０へ格納する。その際、環境変動判定部１２０は、バッファ１２５内のシーングラフを引き続き維持するが、各ノードの操作に関する属性情報は０の値に初期化するものとする。  
【００３８】
図３は、シーングラフ格納部１３０へ格納するシーングラフ情報の一例を示す。本実施例では説明を簡単にするため、ガイドを提供する対象領域を図１に示す新宿エリアに限定し、提供するガイドの詳細度をレベル１とする。従って、図３に示すシーングラフ情報は、図１のノード２１０（新宿エリア）をルート・ノードとしたシーングラフに対応するものとなっている。但し図１と同様、図３においても、ノード２３２（店舗Ｂ）、ノード２３４（公園Ａ）、ノード２２８（店舗Ａの２Ｆ）、及び２３０（店舗Ａの３Ｆ）の情報は省略した。また、本実施例では、図１に点線の矩形で示す花瓶２１８、花２２０、本２２２の３つの半固定オブジェクトを、その設置場所を示すノード２１６（商品棚Ａ）、２２４（商品棚Ｂ）に関連付けて処理し、ガイド提供に利用する。
【００３９】
図３に示すように、シーングラフ情報は階層別の複数のテーブルにより記憶し維持することができる。図３（ａ）は、レベル３のルート・ノード２１０（新宿エリア）の階層のテーブルを示す。テーブルには、該ノードのルート・ノード名、ノード名、３次元仮想空間内のＸ、Ｙ、Ｚ座標、子ノードのテーブル名、子ノードを追加、削除、更新する各操作の操作数を示す属性情報（child_added、child_deleted、child_changed）及び環境変動を判定する閾値（threshold)の各情報が維持される。
【００４０】
ここで、図３（ａ）の子ノードのテーブル名のフィールド名は、実際には建築物テーブルとなっている。これは、同じ領域を記述するシーングラフは複数種類存在しえるため、利用するシーングラフを識別可能とするためである。例えば、新宿エリアを記述する他のシーングラフとして、領域内で開催される催し物に着目し、映画、コンサート、演劇といった概念を子ノードにもつシーングラフも考えられる。なお、建築物テーブルのフィールドには、子ノードのテーブル名として新宿エリア建物が設定されているが、これに代えて新宿エリア建物のテーブルへの参照ポインタを設定してもよい。
【００４１】
図３（ｂ）は、ルート・ノード２１０（新宿エリア）の子ノード２１２（店舗Ａ）、２３２（店舗Ｂ）、２３４（公園Ａ）のレベル２の階層のテーブルを示す。テーブルに維持される各ノードの情報は、基本的にレベル３の階層のテーブルと同じであるため説明を省略する。但し、ルート・ノード名及び環境変動を判定する閾値の各情報は、ルート・ノード２１０（新宿エリア）のレベル３の階層のテーブルにのみ維持し、レベル２以下の階層のテーブルでは維持しない。また、図３（ｂ）の子ノードのテーブル名のフィールド名は、実際には詳細テーブルとなっている。
【００４２】
図３（ｃ）は、ノード２１２（店舗Ａ）の子ノード２１４（１Ｆ）、２２８（２Ｆ）、２３０（３Ｆ）のレベル１の階層のテーブルを示す。テーブルに維持される各ノードの情報は、基本的にレベル２の階層のテーブルと同じである。但し上述したように本実施例では、図１に示す花瓶２１８、花２２０、本２２２の３つの半固定オブジェクトを、その設置場所を示すノード２１６（商品棚Ａ）、２２４（商品棚Ｂ）に関連付けて処理する。そのため、レベル１の階層のテーブルでは、レベル１の階層の各ノードの子ノードのテーブル名のフィールドを２種類用意する。即ち、固定オブジェクトである子ノードのテーブル名を設定するフロア詳細テーブルのフィールドと、該固定オブジェクトに関連付けて処理される半固定オブジェクトのノードのテーブル名を設定する商品テーブルのフィールドである。これに合わせて、属性情報フィールド（child_added、child_deleted、child_changed）も上記２つのフィールドに対して設けている。
【００４３】
図３（ｄ）は、ノード２１４（１Ｆ）の子ノード２１６（商品棚Ａ）、２２４（商品棚Ｂ）、レジ１（２２６）のレベル０の階層のテーブルを示す。ノード２１６（商品棚Ａ）、２２４（商品棚Ｂ）、レジ１（２２６）はシーングラフの葉ノードであるため、レベル０の階層のテーブルには子ノードに関する情報を設定するフィールドは存在しない。また、レベル０の階層のノードは半固定オブジェクトの設置場所となりえるオブジェクトのノードであるため、レベル０の階層のテーブルは、関連付けられる半固定オブジェクトの情報を設定する関連商品のフィールドを有する。図３（ｄ）に示す例では、関連商品のフィールドは、関連付けられる半固定オブジェクトの情報としてその商品名が設定されている。
【００４４】
図３（ｄ）は、ノード２１４（１Ｆ）の子ノードである複数の固定オブジェクトのいずれかを設置場所とする、複数の半固定オブジェクトのテーブルを示す。テーブルには、半固定オブジェクトである商品オブジェクトの商品名、価格、在庫数量、納入数、及び販売数の情報が維持される。なお、図３（ｄ）に示すテーブルは、半固定オブジェクトのテーブルを説明するための例示であり、環境の変動やお勧めの訪問場所を決定する際に判断材料となる他の情報を維持することも可能である。
【００４５】
訪問履歴情報格納部１５０は、領域を訪れるアバタの訪問履歴情報を格納する訪問履歴情報テーブルを格納する。本実施例に係る訪問履歴情報テーブルは、３種類のテーブルにより構成される。即ち、一定以上の環境変動があったと判定された時点のシーングラフを時系列に管理するための履歴テーブルと、シーングラフを構成するノード間の訪問履歴情報を記憶するアーク属性テーブルと、シーングラフを構成する各ノードの訪問履歴情報を記憶するノード属性テーブルである。なお、本明細書においてアークとは、任意の２つのノード対するエッジ（有向辺）である。
【００４６】
図４は、本実施例に係る訪問履歴情報テーブルの一例を示す図である。図４（ａ）は、履歴テーブルの一例を示す。履歴テーブルは、シーングラフ格納部１３０に格納される各シーングラフについて、該シーングラフを識別するシーン識別子（Scene ID）と、シーンの開始時間と、シーンの終了時間と、参照テーブル名の情報とを記憶する。ここで、シーンの開始時間のフィールドには、本シーン識別子により識別されるシーングラフについて、一定以上の環境変動があったと判定されたその時間を設定する。
【００４７】
また、シーンの終了時間のフィールドには、本シーン識別子により識別されるシーングラフについて、一定以上の環境変動があったと判定された後次に同判定がなされたその時間を設定する。即ち、本実施例では、一定以上の環境変動があったと判定された時点のシーングラフを、該判定時から次に同判定がなされるまでときまでの領域の状態を記述するシーングラフとして利用する。また、参照テーブル名のフィールドには、本シーン識別子により識別され、シーングラフ格納部１３０に格納されるシーングラフのルート・ノードのテーブル名と、該シーングラフに対応するアーク属性テーブル及びノード属性テーブルの各テーブル名を設定する。これに代えて、参照テーブル名のフィールドには、各テーブルへの参照ポインタを設定してもよい。
【００４８】
例えば、図４（ａ）に示される履歴テーブルにおいて、scene0により識別されるシーングラフは、２００７年９月１日午前１２時から２００７年９月２日午後４時５０分までの領域の状態を示すものとして扱う。また、scene0により識別されるシーングラフ、対応するアーク属性テーブル及びノード属性テーブル、は、それぞれ、参照テーブル名（Ｇｔ、ｂ、ｃ）により参照される。
【００４９】
図４（ｂ）及び（ｄ）は、アーク属性テーブルの一例を示す。図４（ｂ）に示すアーク属性テーブルbは、図４（ａ）のscene0により識別されるシーングラフに対応し、図４（ｄ）に示すアーク属性テーブルb’は、図４（ａ）のscene1により識別されるシーングラフに対応する。上述したように、アーク属性テーブルは、対応するシーングラフを構成するノード間の訪問履歴情報を記憶する。具体的には、図４（ｂ）及び（ｄ）に示すように、ノード間を移動するアバタの合計数や女性アバタの合計数などの訪問履歴情報が一例としてあげられるが、これらに限られない。
【００５０】
図４（ｃ）及び（ｅ）は、ノード属性テーブルの一例を示す。図４（ｃ）に示すノード属性テーブルcは、図４（ａ）のscene0により識別されるシーングラフに対応し、図４（ｅ）に示すアーク属性テーブルc’は、図４（ａ）のscene1により識別されるシーングラフに対応する。上述したように、ノード属性テーブルは、対応するシーングラフを構成する各ノードの訪問履歴情報を記憶する。具体的には、図４（ｃ）及び（ｅ）に示すようにノードにおけるアバタの滞在時間、ノードを再訪問するアバタの数、ノードを訪問するアバタの合計数や女性アバタの合計数などの訪問履歴情報が一例としてあげられるが、これらに限られない。   
【００５１】
なお、アーク属性テーブル及びノード属性テーブルにそれぞれ登録するエントリは、シーングラフを構成する全てのノード間及び全てのノードについての訪問履歴情報でなくてもよい。即ち、提供するガイドの詳細度に応じて、アーク属性テーブル及びノード属性テーブルには、一部のノード間及び一部のノードの訪問履歴情報を記憶するよう構成してもよい。本実施例では提供するガイドの詳細度をレベル１とするため、レベル１の階層に属するノード間又はレベル１の階層に属するノードの訪問履歴情報を記憶する。なお、図４（ｂ）乃至（ｅ）において、arcMNはノードMからノードNへの移動を示すものとする。また、nodeMはノードＭを示すものとする。また、図４（ｂ）乃至（ｅ）において、nodeAは図１におけるノード２１４（１Ｆ）に対応し、nodeBは図１におけるノード２２８（２Ｆ）に対応し、nodeCは図１におけるノード２３０（３Ｆ）に対応するものとする。
【００５２】
訪問履歴情報取得部１４０は、環境変動判定部１２０が一定以上の環境変動があったと判定してから次に一定以上の環境変動があったと判定するまでの期間の領域内の各訪問場所の訪問履歴を示す訪問履歴情報のエントリを、訪問履歴情報格納部１５０に格納される訪問履歴情報テーブルに作成する。また、訪問履歴情報取得部１４０は、取得部１１０から受け取った訪問状況情報で、訪問履歴情報テーブル内の対応する期間の訪問履歴情報を更新する。
【００５３】
訪問履歴情報取得部１４０による処理を、図４に示すテーブルを用いて説明する。今、環境変動判定部１２０により領域内において一定以上の環境変動があったと判定され、この時点のシーングラフの識別子をscene1とする。訪問履歴情報取得部１４０は、環境変動判定部１２０から判定結果を受けると、図４（ａ）に示す履歴テーブルのscene0の終了時間フィールドに現在時刻を設定するとともに、履歴テーブルに新たにscene1のエントリを作成し、その開始時間フィールドに現在時刻を設定する。
【００５４】
また、訪問履歴情報取得部１４０は、シーングラフ格納部１３０からscene1のシーングラフ情報を読み出し、レベル１の階層に属する全ノードに関する情報を取得する。そして、訪問履歴情報取得部１４０は、scene1のシーングラフに対応するアーク属性テーブルb’（ 図４（ｄ）参照）とノード属性テーブルc’（ 図４（ｅ））を作成し、アーク属性テーブルb’には、レベル１の階層に属する全ノード間のエントリを作成し、ノード属性テーブルc’には、レベル１の階層に属する全ノードのエントリを作成する。また訪問履歴情報取得部１４０は、取得部１１０から受け取った訪問状況情報に基づき、アーク属性テーブルb’とノード属性テーブルc’の各フィールドの値を設定する。そして、訪問履歴情報取得部１４０は、履歴テーブルのscene1の参照テーブル名フィールドに、シーングラフ格納部１３０に格納されるscene1のテーブル名と、作成したアーク属性テーブルb’とノード属性テーブルc’の名前とを設定する。
【００５５】
ここで、アーク属性テーブルb’とノード属性テーブルc’の各フィールドの値を設定は、一例として次のようにして行う。例えば、取得部１１０から受け取る訪問状況情報が、仮想空間を提供するシステムにおいて集計開始時点からカウントされた各訪問場所の、訪問者数、滞在時間、及び再訪問数であるとする。また、訪問履歴情報取得部１４０は、環境変動判定部１２０により領域内において一定以上の環境変動があったと前回判定された際に受け取った訪問状況情報を、その内部のバッファ１４５（図１参照）に一時的に記憶するものとする。すると、アーク属性テーブルb’とノード属性テーブルc’の各フィールドに設定する値は、現在時刻における訪問状況情報に含まれる各合計値から、前回環境変動があったと判定された時点の訪問状況情報に含まれる対応する合計値を差し引くことで求められる。なお、滞在時間として合計値でなく平均の滞在時間を求めたい場合は、求めた訪問者数で滞在時間を割ればよい。
【００５６】
なお、環境変動判定部１２０により領域内において一定以上の環境変動があったと判定されなかった場合、訪問履歴情報取得部１４０は、履歴テーブルから最新のエントリの参照テーブ名フィールドの値を読み出す。そして、訪問履歴情報取得部１４０は、最新のアーク属性テーブルとノード属性テーブルの各フィールドの値を、取得部１１０から受け取った訪問状況情報で更新する。  
【００５７】
入力部１６０は、ユーザから、ガイドの提供の要求を受け取り、該要求を決定部１７０へ通知する。好ましくは、入力部１６０は、ガイド提供の要求とともに、要求者の属性を示す属性情報を取得する。要求者の属性情報は、一例として、性別、年齢、言語、（アバタの）所持品、趣味等の要求者のプロフィールや、購買記録や訪問地などの要求者の過去の行動履歴情報であってよい。入力部１６０は、このような属性情報をユーザから直接受け取ってもよく、あるいはアバタの識別情報を指定するなどして、仮想空間を提供するシステムから取得してもよい。
【００５８】
決定部１７０は、ガイドを提供する時点において最新の前記訪問履歴情報に基づいて、お勧めの訪問場所やその訪問経路を決定する。即ち、決定部１７０は、訪問履歴情報格納部１５０から最新の訪問履歴情報を読み出し、訪問場所間で比較して統計的に有意差のある訪問履歴情報があるか否かを判定する。統計的に有意差のある訪問履歴情報とは、例えば、特定の訪問場所（ノード）のアバタの訪問者数や滞在時間が、他の訪問場所（ノード）と比較して極めて多いことを示すような訪問履歴情報である。統計的に有意差のある訪問履歴情報が存在する場合、有意差のあるノードやノード間を、お勧めの訪問場所や訪問経路として決定する。
【００５９】
また、訪問履歴情報が、訪問者数、平均滞在時間、及び再訪問数等複数種類の訪問履歴情報を含む場合、決定部１７０は、ガイド提供者により指定された種類の訪問履歴情報に着目し、訪問場所間で統計的に有意差のある訪問履歴情報があるか否かを判定してもよい。これに代えて、決定部１７０は、複数種類の訪問履歴情報の内容を総合的に判断して、お勧めの訪問場所やその訪問経路を決定してもよい。
【００６０】
図４（ｄ）及び（ｅ）に示すアーク属性テーブルb’及びノード属性テーブルc’を例として、決定部１７０による決定処理の一例を具体的に説明する。図４（ｄ）では、arcAB及びarcBCは、他のアークと比較してアバタ訪問者数が多いので、ノードＡからノードＢへの経路及びノードＢからノードＣへの経路はお勧めの訪問経路とする。また、図４（ｅ）において、nodeAは、アバタ訪問者数と女性アバタ訪問者数とから分かるように女性の訪問比率が高いので、女性のガイド要求者に対してお勧めの訪問場所とする。更にまた、nodeBは、アバタ訪問者数は多いが滞在時間が短く再訪問数も少ないため、お勧めの訪問場所としない。更にまた、nodeCは、アバタ訪問者数と再訪問数とから分かるように再訪問の割合が高いので、お勧めの訪問場所とする。
【００６１】
また決定部１７０は、シーングラフ格納部１３０に格納するシーングラフ情報及び訪問履歴情報格納部１５０に格納する訪問履歴情報に基づいて、各ノード及び各アークに対しそれぞれ得点を算出し、算出した得点に基づいて、お勧め訪問場所や訪問経路を決定してもよい。
【００６２】
算出方法は、一例として次のようにしてよい。即ち、アーク属性テーブル及びノード属性テーブルの各フィールドについて、値が最も大きいアーク又はノードには１０点を付与し、以下５点、１点などと順に付与し、各フィールドの得点を足し合わせた合計点を各アーク又は各ノードの合計得点としてよい。これに代えて、アーク属性テーブル及びノード属性テーブルの各フィールドの値に各々適当な数値を乗じた値を該フィールドの得点としてもよい。決定部１７０は、アーク又はノードごとに、各フィールドの得点を足し合わせて合計得点を算出し、合計得点に基づいて、お勧め訪問場所や訪問経路を決定する。図５（ａ）は、図４（ｅ）のノード属性テーブルc’を基に、各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに１０点を付与し、以下５点、１点を順に付与している。決定部１７０は、この結果に基づき、nodeAをお勧め訪問場所として決定する。
【００６３】
また、各訪問場所を訪問するアバタ（ユーザ）はその属性に基づいて複数のグループに分類され、訪問履歴情報が、グループ別の訪問履歴情報を含む場合、決定部１７０は、最新の訪問履歴情報と入力部１６０を介して取得した要求者の属性情報とに基づいて、お勧めの訪問場所を決定してもよい。
【００６４】
一例として、決定部１７０は、アーク属性テーブル及びノード属性テーブルの各フィールドのうち、要求者の属性に合致するフィールドの値にプラスの重み付けをして、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。図５（ｂ）は、図４（ｅ）のノード属性テーブルc’を基に、要求者の属性を考慮して各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに１０点を付与し、以下５点、１点を順に付与している。また、要求者の属性が女性であるとして、該属性に合致する、女性アバタ訪問者数のフィールドの値に２を乗じている。決定部１７０は、この結果に基づき、nodeA及びnodeBをお勧め訪問場所として決定する。
【００６５】
また決定部１７０は、各訪問場所、即ち各ノードを、該ノードの属性情報に基づいて重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。ここでノードの属性情報とは、上述したように、子ノードを追加、削除、更新する各操作の操作数を示す属性情報である。
【００６６】
一例として、決定部１７０は、子ノードを追加、削除、更新する全操作の操作数の合計が最も多いノードを、最も変化のあったノードとしてプラスの重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。これに代えて、決定部１７０は、追加および更新の操作の操作数の合計が最も多いノードを、最も変化のあったノードとしてプラスの重み付けをしてもよい。図５（ｃ）は、図３（ｃ）に示す、ガイドを提供するレベル１の階層に属する各ノードの属性情報を含むテーブルと、図４（ｅ）のノード属性テーブルc’を基に、ノードの変化量を考慮して各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに１０点を付与し、以下５点、１点を順に付与している。また、子ノードを追加、削除、更新する全操作の操作数の合計が最も多い１Ｆのノード２１４、即ちnodeAに＋５の重み付けをしている。決定部１７０は、この結果に基づき、nodeAをお勧め訪問場所として決定する。
【００６７】
また決定部１７０は、最新の訪問履歴情報と訪問履歴情報テーブル内の他の訪問履歴情報とを用いて新規に追加された訪問場所を検出し、検出した結果に基づき各訪問場所、即ちノードに重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。
【００６８】
一例として、決定部１７０は、新規に追加されたノードにプラスの重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。図５（ｄ）は、図４（ｃ）及び図４（ｅ）のノード属性テーブルc、c’を基に、新規に追加されたノードであるか否かを考慮して、各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに１０点を付与し、以下５点、１点を順に付与している。また、新規に追加されたnodeCに＋５の重み付けをしている。決定部１７０は、この結果に基づき、nodeA及びnodeCをお勧め訪問場所として決定する。
【００６９】
また決定部１７０は、最新の訪問履歴情報と訪問履歴情報テーブル内の他の訪問履歴情報とを用いていずれかのフィールド値が大きく増加した又は大きく減少したアーク又はノードを検出し、検出した結果に基づき各訪問場所、即ちノードに重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。
【００７０】
一例として、決定部１７０は、いずれかのフィールド値が大きく増加したアーク又はノードにプラスの重み付けをし、かつ、いずれかのフィールド値が大きく減少したアーク又はノードにマイナスの重み付けをする。そして、決定部１７０は、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。図５（ｅ）は、図４（ｃ）及び図４（ｅ）のノード属性テーブルc、c’の対応する各フィールドの値を比較して、値が大きく変化しているノードがあるか否かを考慮して各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに１０点を付与し、以下５点、１点を順に付与している。また、滞在時間及びアバタ訪問者数が大きく減少したnodeAに−１０の重み付けをしている。更に、ここでも新規に追加されたnodeCに＋５の重み付けをしている。決定部１７０は、この結果に基づき、nodeCをお勧め訪問場所として決定する。
【００７１】
また決定部１７０は、最新の訪問履歴情報と訪問履歴情報テーブル内の他の訪問履歴情報とを比較して、今後人気が出ることが予測される訪問場所をお勧めの訪問場所として決定してもよい。今後人気が出ることが予測される訪問場所とは、例えば、最新の訪問履歴情報を見る限り、他の訪問場所と比較してアバタの訪問者数や滞在時間が極めて多いということはないが、同じ訪問場所の過去の訪問履歴情報と比較すると、現在のアバタの訪問者数や滞在時間が、格段に増えているというような訪問場所である。
【００７２】
また決定部１７０は、最新の訪問履歴情報の中にお勧めの訪問場所を示す訪問履歴情報がない場合に、訪問履歴情報テーブルから次に新しい訪問履歴情報を読み出し、該訪問履歴情報に基づいてお勧めの訪問場所を決定してもよい。そして決定部１７０は、お勧めの訪問場所が見つかるまで、訪問履歴情報テーブルを一定時間過去に遡ってもよい。最新ではない訪問履歴情報に基づいてお勧めの訪問場所を決定した場合、決定部１７０は、シーングラフ格納部１３０から最新のシーングラフ情報を読み出して、該シーングラフ情報に、決定したお勧め訪問場所に相当するノードが含まれることを確認する。決定したお勧め訪問場所に相当するノードが含まれない場合、決定部１７０は、再び訪問履歴情報テーブルから次に新しい訪問履歴情報を読み出し、該訪問履歴情報に基づいてお勧めの訪問場所を決定する。
【００７３】
決定部１７０は、決定したお勧めの訪問場所及び訪問経路を提供部１８０に通知する。但し、お勧めの訪問場所が見つからなかった場合、決定部１７０は、お勧めの訪問場所が見つからなかった旨のメッセージを提供部１８０に通知する。
【００７４】
提供部１８０は、決定部１７０により決定されたお勧めの訪問場所及び訪問経路を提供する。提供の方法は、例えば、コンピュータの表示画面に表示したり、コンピュータに接続されたプリンタに出力したり、あるいは記憶部に一定期間記憶して、ガイド要求を受けるたびに呼び出して出力するようしてもよい。更には、仮想空間内に配置されたガイド役のアバタを介して又は仮想空間内のインフォメーションセンター内の館内放送として情報を提供してもよい。
【００７５】
次に図６乃至図９を参照して、本発明の実施形態に係る仮想空間において、ガイドするためのガイド提供処理の流れを説明する。図６は、コンピュータにおいて実行される、履歴情報収集部１０５により実行される処理の流れの一例を示すフローチャートである。図６において処理はステップ１００で開始し、取得部１１０により、仮想空間内のある領域の環境変動を示す環境変動情報と、領域内に含まれる複数の訪問場所の訪問状況を示す訪問状況情報とを取得する。上述したように環境変動情報は、仮想空間内の上記領域を記述するシーングラフの各ノードに対する子ノードの追加、削除、及び更新の操作の操作情報を含む。
【００７６】
次に、環境変動判定部１２０は、取得部１１０から受け取った操作情報に基づいて、シーングラフ格納部１３０に新たにシーングラフを追加すべきか否か、即ち、領域内において一定以上の環境変動があったか否かを判定する（ステップ１０５）。判定処理の詳細は図７を参照して後述する。また、現時点でシーングラフ格納部１３０に格納される最新のシーングラフをシーングラフGtとする。そして処理はステップ１１０へ進み、環境変動判定部１２０は、ステップ１０５における判定処理の結果がシーングラフGt+1を追加するとの判定であったか否か判定する。シーングラフGt+1を追加するとの判定であった場合（ステップ１１０：ＹＥＳ）、環境変動判定部１２０は、シーングラフ格納部１３０にシーングラフGt+1の情報を格納し、訪問履歴情報取得部１４０に一定以上の環境変動があったとの判定結果を通知する。
【００７７】
環境変動判定部１２０から一定以上の環境変動があったとの判定結果の通知を受けると、訪問履歴情報取得部１４０は、ステップ１１５において履歴テーブルに格納されるシーングラフGtに対応するScenetのエントリの終了時間を現在時刻に設定する（図４（ａ）参照）。また、訪問履歴情報取得部１４０は、履歴テーブルにScenet+1のエントリを追加し（ステップ１２０）、その開始時間を現在時刻に設定する（ステップ１２５）。更に訪問履歴情報取得部１４０は、Scenet+1に対応するアーク・ノード属性テーブルを作成する（ステップ１３０）。上述したように訪問履歴情報取得部１４０は、アーク・ノード属性テーブルに登録するエントリを、シーングラフ格納部１３０に格納されるシーングラフGt+1の情報に基づいて決定する。また訪問履歴情報取得部１４０は、履歴テーブルのScenet+1の外部キー、即ち本実施形態においては参照テーブル名のフィールドに、シーングラフGt+1と、作成したアーク・ノード属性テーブルのテーブル名をそれぞれ設定する（ステップ１３５）。
【００７８】
ステップ１１０においてシーングラフGt+1を追加しないとの判定であった場合及びステップ１３５から、処理はステップ１４０へ進み、訪問履歴情報取得部１４０は、履歴テービルの最新のエントリ、即ちScenet又はScenet+1のエントリの外部キーを取得する。そして訪問履歴情報取得部１４０は、取得部１１０から受け取った訪問状況情報に基づいて、外部キーにより参照されるアーク・ノード属性テーブルの各エントリの各フィールドの値を更新又は設定する（ステップ１４５）。そして処理は終了する。
【００７９】
次に図７を参照して、環境変動判定部１２０による判定処理の詳細を説明する。図７は、コンピュータにおいて実行される、環境変動判定部１２０により実行される判定処理の流れの一例を示すフローチャートである。図７において処理はステップ２００で開始し、環境変動判定部１２０は、取得部１１０から受け取った操作情報が、シーングラフGtに対する新規ノードnの追加操作であるか否かを判定する。追加操作であった場合（ステップ２００：ＹＥＳ）、環境変動判定部１２０は、シーングラフGtに対しノードnの親ノードnpを探索し、ノードnpのchild_added属性の値を１加算する（ステップ２０５）。
【００８０】
ステップ２００においてＮＯの場合、処理はステップ２１０へ進み、環境変動判定部１２０は、取得部１１０から受け取った操作情報が、シーングラフGtに対する既存ノードnの変更操作であるか否かを判定する。変更操作であった場合（ステップ２１０：ＹＥＳ）、環境変動判定部１２０は、シーングラフGtに対しノードnの親ノードnpを探索し、ノードnpのchild_changed属性の値を１加算する（ステップ２１５）。
【００８１】
一方ステップ２１０においてＮＯの場合、処理はステップ２２０へ進み、環境変動判定部１２０は、取得部１１０から受け取った操作情報が、シーングラフGtに対する既存ノードnの削除操作であるか否かを判定する。削除操作であった場合（ステップ２２０：ＹＥＳ）、環境変動判定部１２０は、シーングラフGtに対しノードnの親ノードnpを探索し、ノードnpのchild_deleted属性の値を１加算する（ステップ２２５）。削除操作でなかった場合（ステップ２２０：ＮＯ）、環境変動判定部１２０は、エラー結果を、ログに記録し又はコンピュータ画面に表示するなどして報告する。
【００８２】
処理はステップ２０５、２１５、又は２２５のいずれかからステップ２３０へ進み、環境変動判定部１２０は、バッファ１２５に記憶するシーングラフGtに対して取得部１１０から受け取った操作情報を加え、シーングラフGtを更新する。そして環境変動判定部１２０は、ステップ２０５、２１５、又は２２５でそれぞれ探索した親ノードnpがシーングラフGtのルート・ノードであるか否か判定する（ステップ２３５）。ルート・ノードでない場合（ステップ２３５：ＮＯ）、処理はステップ２４０へ進み、環境変動判定部１２０は、シーングラフGtに対しノードnpの親ノードを探索しノードngpとする。そして、環境変動判定部１２０は、ノードngpの属性のうち、ノードnpに対し加算された属性と同じ属性の値を１加算し（ステップ２４５）、ngpをnpとして、処理はステップ２３５へ戻る。
【００８３】
一方、ステップ２３５においてＹＥＳの場合、即ち、親ノードnpがシーングラフGtのルート・ノードである場合、環境変動判定部１２０は、npの変動即ち、その属性情報（child_added、child_changed、child_deleted）が、所定の条件を満たしているか否か判定する（ステップ２５５）。所定の条件は、例えば、図３（ａ）に示すように、child_added、child_changed、child_deletedの値のうちの少なくとも１つが２５より大きいか、又はchild_added、child_changed、child_deletedの値の合計が５０より大きいというような、操作数に関する条件である。また、子ノードの種別や操作の内容などに応じてあらかじめ定められた定数を加算し，その合計が閾値を越えているか否かで判別する方法を用いてもよい。npの変動が閾値条件を満たしている場合（ステップ２５５：ＹＥＳ）、処理はステップ２６０へ進み、現在のバッファ１２５に格納されるシーングラフをシーングラフGt+1としてシーングラフ格納部１３０へ格納する。npの変動が閾値条件を満たしていない場合（ステップ２５５：ＮＯ）、処理はそこで終了する。
【００８４】
図８は、コンピュータにおいて実行される、ガイド情報作成部１５５により実行される処理の流れの一例を示すフローチャートである。図８において処理はステップ３００で開始し、入力部１６０により、ガイド提供の要求を受け取る。好ましくは、入力部は、ガイド要求者の属性を示す属性情報も取得する。決定部１７０は、入力部１６０からガイド提供の要求の通知と要求者の属性情報を受け取ると、訪問履歴情報格納部１５０に格納される履歴テーブルから最新のエントリCur_sceneを取得する（ステップ３０５）。好ましくは決定部１７０は、シーングラフ格納部１３０から、最新のシーングラフ情報も取得する。
【００８５】
そして決定部１７０は、最新の訪問履歴情報に基づいて、お勧めの訪問場所やその訪問経路を決定する（ステップ３２０）。お勧めの訪問場所及び訪問経路の決定処理の詳細は、図９を参照して後述する。提供部１８０は、決定部１７０の決定結果に基づいて、お勧めの訪問場所及び訪問経路を提供する（ステップ３２５）。そして処理は終了する。
【００８６】
図９は、コンピュータにおいて実行される、決定部１７０により実行されるお勧めの訪問場所及び訪問経路の決定処理の流れの一例を示すフローチャートである。図９において処理はステップ４００で開始し、決定部１７０は、ScenetにCur_sceneを設定する。次に決定部１７０は、履歴テーブルのScenetのエントリの外部キーを参照して、Scenetに対応するシーングラフ情報と、アーク・ノード属性テーブルとを取得する（ステップ４０５）。そして決定部１７０は、シーングラフ情報と、アーク・ノード属性テーブルとに基づいて、変化の多いノードや新規に追加されたノードを検出する（ステップ４１０）。また決定部１７０は入力部１６０から要求者の属性情報を取得する（ステップ４１５）。そして、上述したように決定部１７０は、ステップ４１０及び４１５において取得した情報に基づき、ノードや特定の訪問履歴情報に重み付けを行う（ステップ４２０）。重み付けの具体的な方法の説明は、図５を参照して説明したのでここでは繰り返しを避けるため省略する。
【００８７】
重み付けが終わると、決定部１７０は、お勧めのノード・アークの条件を満たすノード即ち訪問場所や、アーク即ち訪問経路があるか否か判定する（ステップ４２５）。お勧めのノード及びアークの条件の説明ついても、決定部１７０の機能説明において図４及び図５を参照して上述したので、繰り返しを避けるためここでは省略する。条件を満たすノード及びアークがあった場合（ステップ４２５：ＹＥＳ）、決定部１７０は、条件を満たすノード及びアークを、お勧めの訪問場所及び訪問経路の情報として提供部１８０に渡し、処理を終了する。
【００８８】
一方、条件を満たすノード及びアークがない場合（ステップ４２５：ＮＯ）、決定部１７０は、履歴テーブルを１つ遡って次に新しいエントリを読み出し、Scenetに設定する（ステップ４３５）。次に決定部１７０は、履歴テーブルを一定時間分遡ってエントリを読み出したか否か判定する（ステップ４４０）。履歴テーブルを一定時間分遡ってエントリを読み出した場合（ステップ４４０：ＹＥＳ）、決定部１７０は、お勧めの訪問場所及び訪問経路はみつからなかった旨のメッセージを提供部１８０へ渡し、処理を終了する。履歴テーブルを一定時間分遡ってエントリを読み出していない場合（ステップ４４０：ＮＯ）、決定部１７０は、現在のScenetに対応するシーングラフに存在して、かつ、Cur_sceneのシーングラフに存在しないノードを評価対象から除外する。そして、処理はステップ４０５に戻る。
【００８９】
図１０は、本発明の実施の形態によるガイド提供装置１００を実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。情報処理装置は、バス２に接続されたＣＰＵ（中央処理装置）１とメインメモリ４を含んでいる。ハードディスク装置１３、３０、およびＣＤ−ＲＯＭ装置２６、２９、フレキシブル・ディスク装置２０、ＭＯ装置２８、ＤＶＤ装置３１のようなリムーバブル・ストレージ（記録メディアを交換可能な外部記憶システム）がフレキシブル・ディスクコントローラ１９、ＩＤＥコントローラ２５、ＳＣＳＩコントローラ２７などを経由してバス２へ接続されている。
【００９０】
フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置１３、３０、ＲＯＭ１４には、オペレーティング・システムと協働してＣＰＵ等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。即ち、ガイド提供装置１００としての情報処理装置の上記説明した数々の記憶装置には、本発明に係るガイド提供プログラムと、上記説明したシーングラフ格納部１３０及び訪問履歴情報格納部１５０に含まれるデータを格納できる。そして複数のコンピュータ・プログラムはメインメモリ４にロードされることによって実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる
【００９１】
情報処理装置は、キーボード／マウス・コントローラ５を経由して、キーボード６やマウス７のような入力デバイスからの入力を受ける。情報処理装置は、オーディオコントローラ２１を経由して、マイク２４からの入力を受け、またスピーカー２３から音声を出力する。情報処理装置は、視覚データをユーザに提示するための表示装置１１に、グラフィックスコントローラ１０を経由して接続される。情報処理装置は、ネットワーク・アダプタ１８（イーサネット（登録商標）・カードやトークンリング・カード）等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
【００９２】
以上の説明により、本発明の実施の形態によるガイド提供装置１００を実現するのに好適な情報処理装置は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。なお、上記説明した構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【００９３】
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。従って、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施の形態に係るシーングラフノードの一例を示す図である。
【図２】本発明の実施の形態に係るガイド提供装置１００の機能構成の一例を示す図である。
【図３】（ａ）は、本発明の実施の形態に係るシーングラフ情報の一部をなすルート・ノードのテーブルの一例を示す。（ｂ）は、本発明の実施の形態に係るシーングラフ情報の一部をなすレベル２の階層に属するノードのテーブルの一例を示す。（ｃ）は、本本発明の実施の形態に係るシーングラフ情報の一部をなすレベル１の階層に属するノードのテーブルの一例を示す。（ｄ）は、本本発明の実施の形態に係るシーングラフ情報の一部をなすレベル０の階層に属するノードのテーブルの一例を示す。（ｅ）は、本本発明の実施の形態に係るシーングラフ情報の一部をなすレベル０の階層に属するノードに関連付けられるノードのテーブルの一例を示す。
【図４】（ａ）は、本発明の実施の形態に係る履歴テーブルの一例を示す。（ｂ）は、本発明の実施の形態に係る第一のアーク属性テーブルの一例を示す。（ｃ）は、本本発明の実施の形態に係る第一のノード属性テーブルの一例を示す。（ｄ）は、本本発明の実施の形態に係る第二のアーク属性テーブルの一例を示す。（ｅ）は、本本発明の実施の形態に係る第二のノード属性テーブルの一例を示す。
【図５】（ａ）は、本発明の実施の形態に係る重み付け方法を実行された、ノード属性テーブルの一例を示す図である。（ｂ）は、本発明の実施の形態に係る重み付け方法を実行された、ノード属性テーブルの一例を示す図である。（ｃ）は、本発明の実施の形態に係る重み付け方法を実行された、ノード属性テーブルの一例を示す図である。（ｄ）は、本発明の実施の形態に係る重み付け方法を実行された、ノード属性テーブルの一例を示す図である。（ｅ）は、本発明の実施の形態に係る重み付け方法を実行された、ノード属性テーブルの一例を示す図である。
【図６】本発明の実施形態に係る履歴情報収集部１０５により実行される処理の流れの一例を示すフローチャートである。
【図７】本発明の実施形態に係る環境変動判定処理の流れの一例を示すフローチャートである。
【図８】本発明の実施形態に係るガイド情報作成部１５５により実行される処理の流れの一例を示すフローチャートである。
【図９】本発明の実施形態に係るお勧め訪問場所及び訪問順の決定処理の流れの一例を示すフローチャートである。
【図１０】本発明の実施の形態によるガイド提供装置１００を実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。
【図１】
0005043740.tif 000002
【図２】
0005043740.tif 000003
【図３】
0005043740.tif 000004
【図４】
0005043740.tif 000005
【図５】
0005043740.tif 000006
【図６】
0005043740.tif 000007
【図７】
0005043740.tif 000008
【図８】
0005043740.tif 000009
【図９】
0005043740.tif 000010
【図１０】
0005043740.tif 000011