以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
まず、本発明の詳細な説明に入る前に、本発明において取り扱うシーングラフについて説明する。本発明では、仮想空間内における一定以上の環境変動をコンピュータ処理により検知するために、ある時点における仮想空間の状態をシーングラフとして記述する。上述したように、本発明において領域を記述するシーングラフとは、その領域を構成する各構成要素を木構造で表現するものをいう。一般に、3次元空間内に配置される任意のオブジェクトは階層的な相互関係を持つ。例えば、島のオブジェクトの上に建物のオブジェクトが含まれ、建物のオブジェクトの上にテーブルのオブジェクトが含まれ、テーブルのオブジェクトの上に商品のオブジェクトが存在するといった具合である。
そこで、本発明では、仮想空間内の各オブジェクトをノード、またオブジェクト間の階層的な相互関係をエッジにより表現して、ある時点の仮想空間内の領域をシーングラフよって記述する。なお、本発明で扱うシーングラフでは、島や建物などのオブジェクトだけでなく、オブジェクトに共通の概念をもノードとして扱ってよい。例えば、一定の領域を示す地区はオブジェクトではないが、建物Aと建物Bが地区Aに存在する場合、地区Aをノードとして扱い、地区Aと建物A、Bとの階層的な相互関係をシーングラフにより記述してよい。更には、本発明で扱うシーングラフでは、一定の領域内で行われるコンサートや大会等のイベントやサービスもノードとして扱ってよい。
また、オブジェクトは、一定の場所に固定される固定オブジェクトと、仮想空間内を移動可能な半固定オブジェクトのいずれかに分類されるが、本発明においては、これらを区別することなくいずれもノードとして扱ってよい。これに代えて、半固定オブジェクトはノードとしては取り扱わず、しかしながら半固定オブジェクトをその設置場所を示すノードに関連付けて処理してもよい。或いは、半固定オブジェクトはガイド提供に利用せずに、本発明の処理対象外としてもよい。
或いはまた、上記3つの取り扱い方法を、半固定オブジェクトの種類によって使い分けてもよい。例えば、仮想空間内を移動するオブジェや人形はノードとして扱い、商品や配布物はそれらの設置場所を示すノードに関連付けて扱い、自動車や個人の持ち物などガイド提供に影響しないものは処理対象外として扱ってもよい。
図1に、本発明において取り扱う、ある時点における仮想空間のある領域を記述するシーングラフの一例を示す。図1に示す仮想空間は、東京を含む都市の仮想空間である。図1において、実線の矩形または円はノード示し、直線はエッジを示す。また、ルート・ノード202は、仮想空間全体を示す。図1に示すシーングラフは、ある時点において、新宿エリアには店舗A、Bと公園Aとが含まれ、店舗Aは1階から3階まで有し、店舗Aの1階には商品棚A、Bとレジ1とが存在することを示している。このように、シーングラフによって、ある時点のある領域の状態を記述することができる。
なお、ここでは仮想空間全体をルートとしているが、ガイド提供者は、ガイド提供の対象領域に応じてルート・ノードを指定してよい。例えば、新宿エリアをガイド提供の対象領域とする場合、ノード210をルート・ノードとして指定することができる。同様に、ガイド提供者は、提供するガイドの詳細度に応じて、シーングラフの階層の深さを指定してよい。例えば建物の階数や部屋番号レベルでガイドを提供することを希望する場合、図1に示す例ではレベル1を階層の深さとして指定することができる。
次に図2を参照して、本発明の実施形態に係るガイド提供装置100の概要を説明する。図2は、本発明の実施形態に係るガイド提供装置100の機能構成の一例を示す図である。本発明の実施形態に係るガイド提供装置100は、仮想空間内を探索する不特定多数のユーザの行動履歴情報、及び仮想空間内の環境変動を示す環境変動情報を収集し、維持する履歴情報収集部105と、収集された履歴情報に基づいて、ユーザに提供する仮想空間のガイド情報を作成するガイド情報作成部155とを含む。
上記履歴情報収集部105は、取得部110、環境変動判定部120、及び訪問履歴情報取得部140を含み、収集した結果をシーングラフ格納部130及び訪問履歴情報格納部150に格納する。即ち、取得部110は、ある時点の仮想空間内のある領域を記述するシーングラフと、該領域に含まれる各訪問場所の訪問状況を示す訪問状況情報とを取得する。取得されたシーングラフは環境変動判定部120に渡され、環境変動判定部120は、シーングラフを過去のシーングラフと比較し、その差分が一定以上であるか否かを判定する。一定以上の差分があった場合、環境変動判定部120は、取得したシーングラフをシーングラフ格納部130へ格納する。
また、取得された訪問状況情報は訪問履歴情報取得部140に渡され、訪問履歴情報取得部140は、訪問状況情報に基づき、環境変動判定部120により一定以上の差分があったと判断されてから次に再び同判定がなされるまでの期間の様々な訪問状況に関する統計値を求める。例えば、訪問履歴情報取得部140は、店舗Aを訪問したアバタの数や、店舗Aでのアバタの滞在時間、また店舗Aから店舗Bへ移動したアバタ数などを求める。そのような統計値は、アバタの性別や年齢など、アバタの異なる属性ごとに求めてもよい。訪問履歴情報取得部140により求められた各統計値は、対応するシーングラフのノードやアークに関連付けて、訪問履歴情報として訪問履歴情報格納部150へ格納される。
ガイド情報作成部155は、入力部160、決定部170、及び提供部180を含み、シーングラフ格納部130及び訪問履歴情報格納部150に格納された情報、及び入力部160により入力された情報に基づいて、お勧めの訪問場所及び経路情報を検索し提供する。即ち入力部160は、ガイド提供の要求と、要求者の属性を示す属性情報を取得する。要求者の属性情報は、例えば、要求者の性別や、出身地、言語、趣味等の要求者のプロフィールや、購買記録などの要求者の過去の行動履歴情報であってよい。
決定部170は、訪問履歴情報格納部150から読み出した最新の訪問履歴情報を参照して、お勧めの訪問場所やその訪問経路を決定する。その際決定部170は、シーングラフ格納部130に格納される情報に基づいて、各訪問場所に重み付けをしてもよい。また決定部170は、要求者の属性情報に基づいて、各訪問場所の訪問履歴情報の各値に重み付けをしてもよい。提供部180は、決定部170により決定された訪問場所やその訪問経路を適宜加工して、要求者に提供する。
このように本発明では、仮想空間内のある領域の環境変動を示す環境変動情報を参照して、領域内において一定以上の環境変動があったか否かを判定し、一定以上の環境変動があったと判定してから次に再び一定以上の環境変動があったと判定するまでの期間単位でユーザの行動履歴情報を解析する。そしてガイドを提供する際に最新の解析結果である訪問履歴情報に基づいて、お勧めの訪問場所を決定する。その結果、本発明によれば、時々刻々と変化していく仮想空間内を探索するためのタイムリーで適切なガイドを提供することが可能となる。
次に図1乃至図4を参照して、本発明の実施形態に係るガイド提供装置100を詳細に説明する。図2に示す取得部110は、仮想空間内のある領域内の環境変動を示す環境変動情報、及び該領域内に含まれる複数の訪問場所の訪問状況を示す訪問状況情報を取得する。ここで、仮想空間内のある領域とは、ガイド提供装置100がガイドを提供する領域としてカバーする領域を意味し、仮想空間全体であってもよく、あるいは仮想空間の一部の空間であってもよい。
環境変動情報は、好ましくは、仮想空間内の上記ある領域を構成する各構成要素を木構造で表現するシーングラフの各ノードに対する子ノードの追加、削除、及び更新の操作の操作情報を含む。具体的には、各操作情報は、操作対象となるノード及び追加、削除、又は更新される子ノードそれぞれについての、名称(識別子)、仮想空間内の位置座標、及びノードの種別を含む。また訪問状況情報は、好ましくは、過去のある基準となる時点又は取得部110が訪問状況情報を前回取得した時点から現在までの、上記領域に含まれる各訪問場所の、訪問者数、滞在時間、及び再訪問した訪問者数の少なくとも1つを含む。更にまた、各訪問場所を訪問するアバタ(ユーザ)のその属性に基づいて複数のグループに分類され、上記訪問状況情報は、グループ別の訪問状況情報を含んでもよい。例えば、各訪問場所の訪問者数情報は、全アバタの訪問者数とともに、性別別アバタの訪問者数や年代別アバタの訪問者数の情報を含んでもよい。
なお、取得部110により取得される情報は、一例として仮想空間を提供するシステムにより提供されてよい。仮想空間内のアバタを含む3次元のオブジェクトは、仮想空間をアクセスするユーザにより生成、削除、又は更新され、このような情報は、同じ空間に自身のアバタを位置させる複数のユーザ間で共有されるものである。そのため各ユーザが仮想空間内において行った操作の操作情報は、仮想空間を提供するシステムに一旦送信され、そこでオブジェクトごとに管理される。従って本実施形態においては、取得部110は、上記環境変動情報及び訪問状況情報を、仮想空間を提供するシステムから定期的に、或いは一定量の新たな情報が得られる度に取得するものとする。これに代えて、仮想空間に、上記環境変動情報及び訪問状況情報を収集するエージェントを設置し、取得部110は、該エージェントから情報を取得してもよい。
環境変動判定部120は、環境変動情報を参照して、領域内において一定以上の環境変動があったか否かを判定する。好ましくは、環境変動判定部120は、環境変動情報に含まれる操作情報に基づき、前回環境変動があったと判定してから今回環境変動情報を取得した時点までの間に各ノードに対してなされた子ノードの追加、削除、及び更新の操作数の合計を求め、操作数の合計が所定の条件を満たす場合に、環境変動があったと判定する。ここで、所定の条件とは、環境変動の有無を判定するための操作数の合計に関する条件であり、例えば、ガイド提供者は、全操作の操作数の合計又はいずれかの操作の操作数の合計が閾値以上である場合に環境変動があったとする条件を設定してよい。なお、閾値は、ガイド提供の対象とする領域の特徴や広さに応じてガイド提供者が設定するものとする。また、操作数の合計を算出する際に、全ての操作に対して1を加算するのではなく、子ノードの種別や操作の内容などに応じて予め定められた定数を加算する方法を用いても良い。この方法によれば、例えば、商品の個数の増減よる環境変動よりも、商品の入れ替えよる環境変動を重視することが可能となる。
好ましくは、環境変動判定部120は、現時点の上記領域の状態を記述するシーングラフを一時的に維持するためのバッファ125を有する。バッファ125に維持されるシーングラフの各ノードは、ノードの名称、3次元仮想空間内の位置座標、及びノードの種別に関する情報を有する。また環境変動を判定するために、本実施例では葉ノードを除く各ノードに、該ノードの子ノードを追加、削除、更新する各操作の操作数を示す属性情報を付与する。環境変動判定部120は、取得部110から渡された操作情報に基づいて、バッファ125内のシーングラフ及び対応するノードの属性情報を更新する。
環境変動判定部120はまた、一定以上の環境変動があったと判定した場合、バッファ125内に維持するシーングラフを、後述する訪問履歴情報テーブル内の上記判定時に作成されるエントリに関連付けてシーングラフ格納部130へ格納する。その際、環境変動判定部120は、バッファ125内のシーングラフを引き続き維持するが、各ノードの操作に関する属性情報は0の値に初期化するものとする。
図3は、シーングラフ格納部130へ格納するシーングラフ情報の一例を示す。本実施例では説明を簡単にするため、ガイドを提供する対象領域を図1に示す新宿エリアに限定し、提供するガイドの詳細度をレベル1とする。従って、図3に示すシーングラフ情報は、図1のノード210(新宿エリア)をルート・ノードとしたシーングラフに対応するものとなっている。但し図1と同様、図3においても、ノード232(店舗B)、ノード234(公園A)、ノード228(店舗Aの2F)、及び230(店舗Aの3F)の情報は省略した。また、本実施例では、図1に点線の矩形で示す花瓶218、花220、本222の3つの半固定オブジェクトを、その設置場所を示すノード216(商品棚A)、224(商品棚B)に関連付けて処理し、ガイド提供に利用する。
図3に示すように、シーングラフ情報は階層別の複数のテーブルにより記憶し維持することができる。図3(a)は、レベル3のルート・ノード210(新宿エリア)の階層のテーブルを示す。テーブルには、該ノードのルート・ノード名、ノード名、3次元仮想空間内のX、Y、Z座標、子ノードのテーブル名、子ノードを追加、削除、更新する各操作の操作数を示す属性情報(child_added、child_deleted、child_changed)及び環境変動を判定する閾値(threshold)の各情報が維持される。
ここで、図3(a)の子ノードのテーブル名のフィールド名は、実際には建築物テーブルとなっている。これは、同じ領域を記述するシーングラフは複数種類存在しえるため、利用するシーングラフを識別可能とするためである。例えば、新宿エリアを記述する他のシーングラフとして、領域内で開催される催し物に着目し、映画、コンサート、演劇といった概念を子ノードにもつシーングラフも考えられる。なお、建築物テーブルのフィールドには、子ノードのテーブル名として新宿エリア建物が設定されているが、これに代えて新宿エリア建物のテーブルへの参照ポインタを設定してもよい。
図3(b)は、ルート・ノード210(新宿エリア)の子ノード212(店舗A)、232(店舗B)、234(公園A)のレベル2の階層のテーブルを示す。テーブルに維持される各ノードの情報は、基本的にレベル3の階層のテーブルと同じであるため説明を省略する。但し、ルート・ノード名及び環境変動を判定する閾値の各情報は、ルート・ノード210(新宿エリア)のレベル3の階層のテーブルにのみ維持し、レベル2以下の階層のテーブルでは維持しない。また、図3(b)の子ノードのテーブル名のフィールド名は、実際には詳細テーブルとなっている。
図3(c)は、ノード212(店舗A)の子ノード214(1F)、228(2F)、230(3F)のレベル1の階層のテーブルを示す。テーブルに維持される各ノードの情報は、基本的にレベル2の階層のテーブルと同じである。但し上述したように本実施例では、図1に示す花瓶218、花220、本222の3つの半固定オブジェクトを、その設置場所を示すノード216(商品棚A)、224(商品棚B)に関連付けて処理する。そのため、レベル1の階層のテーブルでは、レベル1の階層の各ノードの子ノードのテーブル名のフィールドを2種類用意する。即ち、固定オブジェクトである子ノードのテーブル名を設定するフロア詳細テーブルのフィールドと、該固定オブジェクトに関連付けて処理される半固定オブジェクトのノードのテーブル名を設定する商品テーブルのフィールドである。これに合わせて、属性情報フィールド(child_added、child_deleted、child_changed)も上記2つのフィールドに対して設けている。
図3(d)は、ノード214(1F)の子ノード216(商品棚A)、224(商品棚B)、レジ1(226)のレベル0の階層のテーブルを示す。ノード216(商品棚A)、224(商品棚B)、レジ1(226)はシーングラフの葉ノードであるため、レベル0の階層のテーブルには子ノードに関する情報を設定するフィールドは存在しない。また、レベル0の階層のノードは半固定オブジェクトの設置場所となりえるオブジェクトのノードであるため、レベル0の階層のテーブルは、関連付けられる半固定オブジェクトの情報を設定する関連商品のフィールドを有する。図3(d)に示す例では、関連商品のフィールドは、関連付けられる半固定オブジェクトの情報としてその商品名が設定されている。
図3(d)は、ノード214(1F)の子ノードである複数の固定オブジェクトのいずれかを設置場所とする、複数の半固定オブジェクトのテーブルを示す。テーブルには、半固定オブジェクトである商品オブジェクトの商品名、価格、在庫数量、納入数、及び販売数の情報が維持される。なお、図3(d)に示すテーブルは、半固定オブジェクトのテーブルを説明するための例示であり、環境の変動やお勧めの訪問場所を決定する際に判断材料となる他の情報を維持することも可能である。
訪問履歴情報格納部150は、領域を訪れるアバタの訪問履歴情報を格納する訪問履歴情報テーブルを格納する。本実施例に係る訪問履歴情報テーブルは、3種類のテーブルにより構成される。即ち、一定以上の環境変動があったと判定された時点のシーングラフを時系列に管理するための履歴テーブルと、シーングラフを構成するノード間の訪問履歴情報を記憶するアーク属性テーブルと、シーングラフを構成する各ノードの訪問履歴情報を記憶するノード属性テーブルである。なお、本明細書においてアークとは、任意の2つのノード対するエッジ(有向辺)である。
図4は、本実施例に係る訪問履歴情報テーブルの一例を示す図である。図4(a)は、履歴テーブルの一例を示す。履歴テーブルは、シーングラフ格納部130に格納される各シーングラフについて、該シーングラフを識別するシーン識別子(Scene ID)と、シーンの開始時間と、シーンの終了時間と、参照テーブル名の情報とを記憶する。ここで、シーンの開始時間のフィールドには、本シーン識別子により識別されるシーングラフについて、一定以上の環境変動があったと判定されたその時間を設定する。
また、シーンの終了時間のフィールドには、本シーン識別子により識別されるシーングラフについて、一定以上の環境変動があったと判定された後次に同判定がなされたその時間を設定する。即ち、本実施例では、一定以上の環境変動があったと判定された時点のシーングラフを、該判定時から次に同判定がなされるまでときまでの領域の状態を記述するシーングラフとして利用する。また、参照テーブル名のフィールドには、本シーン識別子により識別され、シーングラフ格納部130に格納されるシーングラフのルート・ノードのテーブル名と、該シーングラフに対応するアーク属性テーブル及びノード属性テーブルの各テーブル名を設定する。これに代えて、参照テーブル名のフィールドには、各テーブルへの参照ポインタを設定してもよい。
例えば、図4(a)に示される履歴テーブルにおいて、scene0により識別されるシーングラフは、2007年9月1日午前12時から2007年9月2日午後4時50分までの領域の状態を示すものとして扱う。また、scene0により識別されるシーングラフ、対応するアーク属性テーブル及びノード属性テーブル、は、それぞれ、参照テーブル名(Gt、b、c)により参照される。
図4(b)及び(d)は、アーク属性テーブルの一例を示す。図4(b)に示すアーク属性テーブルbは、図4(a)のscene0により識別されるシーングラフに対応し、図4(d)に示すアーク属性テーブルb’は、図4(a)のscene1により識別されるシーングラフに対応する。上述したように、アーク属性テーブルは、対応するシーングラフを構成するノード間の訪問履歴情報を記憶する。具体的には、図4(b)及び(d)に示すように、ノード間を移動するアバタの合計数や女性アバタの合計数などの訪問履歴情報が一例としてあげられるが、これらに限られない。
図4(c)及び(e)は、ノード属性テーブルの一例を示す。図4(c)に示すノード属性テーブルcは、図4(a)のscene0により識別されるシーングラフに対応し、図4(e)に示すアーク属性テーブルc’は、図4(a)のscene1により識別されるシーングラフに対応する。上述したように、ノード属性テーブルは、対応するシーングラフを構成する各ノードの訪問履歴情報を記憶する。具体的には、図4(c)及び(e)に示すようにノードにおけるアバタの滞在時間、ノードを再訪問するアバタの数、ノードを訪問するアバタの合計数や女性アバタの合計数などの訪問履歴情報が一例としてあげられるが、これらに限られない。
なお、アーク属性テーブル及びノード属性テーブルにそれぞれ登録するエントリは、シーングラフを構成する全てのノード間及び全てのノードについての訪問履歴情報でなくてもよい。即ち、提供するガイドの詳細度に応じて、アーク属性テーブル及びノード属性テーブルには、一部のノード間及び一部のノードの訪問履歴情報を記憶するよう構成してもよい。本実施例では提供するガイドの詳細度をレベル1とするため、レベル1の階層に属するノード間又はレベル1の階層に属するノードの訪問履歴情報を記憶する。なお、図4(b)乃至(e)において、arcMNはノードMからノードNへの移動を示すものとする。また、nodeMはノードMを示すものとする。また、図4(b)乃至(e)において、nodeAは図1におけるノード214(1F)に対応し、nodeBは図1におけるノード228(2F)に対応し、nodeCは図1におけるノード230(3F)に対応するものとする。
訪問履歴情報取得部140は、環境変動判定部120が一定以上の環境変動があったと判定してから次に一定以上の環境変動があったと判定するまでの期間の領域内の各訪問場所の訪問履歴を示す訪問履歴情報のエントリを、訪問履歴情報格納部150に格納される訪問履歴情報テーブルに作成する。また、訪問履歴情報取得部140は、取得部110から受け取った訪問状況情報で、訪問履歴情報テーブル内の対応する期間の訪問履歴情報を更新する。
訪問履歴情報取得部140による処理を、図4に示すテーブルを用いて説明する。今、環境変動判定部120により領域内において一定以上の環境変動があったと判定され、この時点のシーングラフの識別子をscene1とする。訪問履歴情報取得部140は、環境変動判定部120から判定結果を受けると、図4(a)に示す履歴テーブルのscene0の終了時間フィールドに現在時刻を設定するとともに、履歴テーブルに新たにscene1のエントリを作成し、その開始時間フィールドに現在時刻を設定する。
また、訪問履歴情報取得部140は、シーングラフ格納部130からscene1のシーングラフ情報を読み出し、レベル1の階層に属する全ノードに関する情報を取得する。そして、訪問履歴情報取得部140は、scene1のシーングラフに対応するアーク属性テーブルb’( 図4(d)参照)とノード属性テーブルc’( 図4(e))を作成し、アーク属性テーブルb’には、レベル1の階層に属する全ノード間のエントリを作成し、ノード属性テーブルc’には、レベル1の階層に属する全ノードのエントリを作成する。また訪問履歴情報取得部140は、取得部110から受け取った訪問状況情報に基づき、アーク属性テーブルb’とノード属性テーブルc’の各フィールドの値を設定する。そして、訪問履歴情報取得部140は、履歴テーブルのscene1の参照テーブル名フィールドに、シーングラフ格納部130に格納されるscene1のテーブル名と、作成したアーク属性テーブルb’とノード属性テーブルc’の名前とを設定する。
ここで、アーク属性テーブルb’とノード属性テーブルc’の各フィールドの値を設定は、一例として次のようにして行う。例えば、取得部110から受け取る訪問状況情報が、仮想空間を提供するシステムにおいて集計開始時点からカウントされた各訪問場所の、訪問者数、滞在時間、及び再訪問数であるとする。また、訪問履歴情報取得部140は、環境変動判定部120により領域内において一定以上の環境変動があったと前回判定された際に受け取った訪問状況情報を、その内部のバッファ145(図1参照)に一時的に記憶するものとする。すると、アーク属性テーブルb’とノード属性テーブルc’の各フィールドに設定する値は、現在時刻における訪問状況情報に含まれる各合計値から、前回環境変動があったと判定された時点の訪問状況情報に含まれる対応する合計値を差し引くことで求められる。なお、滞在時間として合計値でなく平均の滞在時間を求めたい場合は、求めた訪問者数で滞在時間を割ればよい。
なお、環境変動判定部120により領域内において一定以上の環境変動があったと判定されなかった場合、訪問履歴情報取得部140は、履歴テーブルから最新のエントリの参照テーブ名フィールドの値を読み出す。そして、訪問履歴情報取得部140は、最新のアーク属性テーブルとノード属性テーブルの各フィールドの値を、取得部110から受け取った訪問状況情報で更新する。
入力部160は、ユーザから、ガイドの提供の要求を受け取り、該要求を決定部170へ通知する。好ましくは、入力部160は、ガイド提供の要求とともに、要求者の属性を示す属性情報を取得する。要求者の属性情報は、一例として、性別、年齢、言語、(アバタの)所持品、趣味等の要求者のプロフィールや、購買記録や訪問地などの要求者の過去の行動履歴情報であってよい。入力部160は、このような属性情報をユーザから直接受け取ってもよく、あるいはアバタの識別情報を指定するなどして、仮想空間を提供するシステムから取得してもよい。
決定部170は、ガイドを提供する時点において最新の前記訪問履歴情報に基づいて、お勧めの訪問場所やその訪問経路を決定する。即ち、決定部170は、訪問履歴情報格納部150から最新の訪問履歴情報を読み出し、訪問場所間で比較して統計的に有意差のある訪問履歴情報があるか否かを判定する。統計的に有意差のある訪問履歴情報とは、例えば、特定の訪問場所(ノード)のアバタの訪問者数や滞在時間が、他の訪問場所(ノード)と比較して極めて多いことを示すような訪問履歴情報である。統計的に有意差のある訪問履歴情報が存在する場合、有意差のあるノードやノード間を、お勧めの訪問場所や訪問経路として決定する。
また、訪問履歴情報が、訪問者数、平均滞在時間、及び再訪問数等複数種類の訪問履歴情報を含む場合、決定部170は、ガイド提供者により指定された種類の訪問履歴情報に着目し、訪問場所間で統計的に有意差のある訪問履歴情報があるか否かを判定してもよい。これに代えて、決定部170は、複数種類の訪問履歴情報の内容を総合的に判断して、お勧めの訪問場所やその訪問経路を決定してもよい。
図4(d)及び(e)に示すアーク属性テーブルb’及びノード属性テーブルc’を例として、決定部170による決定処理の一例を具体的に説明する。図4(d)では、arcAB及びarcBCは、他のアークと比較してアバタ訪問者数が多いので、ノードAからノードBへの経路及びノードBからノードCへの経路はお勧めの訪問経路とする。また、図4(e)において、nodeAは、アバタ訪問者数と女性アバタ訪問者数とから分かるように女性の訪問比率が高いので、女性のガイド要求者に対してお勧めの訪問場所とする。更にまた、nodeBは、アバタ訪問者数は多いが滞在時間が短く再訪問数も少ないため、お勧めの訪問場所としない。更にまた、nodeCは、アバタ訪問者数と再訪問数とから分かるように再訪問の割合が高いので、お勧めの訪問場所とする。
また決定部170は、シーングラフ格納部130に格納するシーングラフ情報及び訪問履歴情報格納部150に格納する訪問履歴情報に基づいて、各ノード及び各アークに対しそれぞれ得点を算出し、算出した得点に基づいて、お勧め訪問場所や訪問経路を決定してもよい。
算出方法は、一例として次のようにしてよい。即ち、アーク属性テーブル及びノード属性テーブルの各フィールドについて、値が最も大きいアーク又はノードには10点を付与し、以下5点、1点などと順に付与し、各フィールドの得点を足し合わせた合計点を各アーク又は各ノードの合計得点としてよい。これに代えて、アーク属性テーブル及びノード属性テーブルの各フィールドの値に各々適当な数値を乗じた値を該フィールドの得点としてもよい。決定部170は、アーク又はノードごとに、各フィールドの得点を足し合わせて合計得点を算出し、合計得点に基づいて、お勧め訪問場所や訪問経路を決定する。図5(a)は、図4(e)のノード属性テーブルc’を基に、各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに10点を付与し、以下5点、1点を順に付与している。決定部170は、この結果に基づき、nodeAをお勧め訪問場所として決定する。
また、各訪問場所を訪問するアバタ(ユーザ)はその属性に基づいて複数のグループに分類され、訪問履歴情報が、グループ別の訪問履歴情報を含む場合、決定部170は、最新の訪問履歴情報と入力部160を介して取得した要求者の属性情報とに基づいて、お勧めの訪問場所を決定してもよい。
一例として、決定部170は、アーク属性テーブル及びノード属性テーブルの各フィールドのうち、要求者の属性に合致するフィールドの値にプラスの重み付けをして、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。図5(b)は、図4(e)のノード属性テーブルc’を基に、要求者の属性を考慮して各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに10点を付与し、以下5点、1点を順に付与している。また、要求者の属性が女性であるとして、該属性に合致する、女性アバタ訪問者数のフィールドの値に2を乗じている。決定部170は、この結果に基づき、nodeA及びnodeBをお勧め訪問場所として決定する。
また決定部170は、各訪問場所、即ち各ノードを、該ノードの属性情報に基づいて重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。ここでノードの属性情報とは、上述したように、子ノードを追加、削除、更新する各操作の操作数を示す属性情報である。
一例として、決定部170は、子ノードを追加、削除、更新する全操作の操作数の合計が最も多いノードを、最も変化のあったノードとしてプラスの重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。これに代えて、決定部170は、追加および更新の操作の操作数の合計が最も多いノードを、最も変化のあったノードとしてプラスの重み付けをしてもよい。図5(c)は、図3(c)に示す、ガイドを提供するレベル1の階層に属する各ノードの属性情報を含むテーブルと、図4(e)のノード属性テーブルc’を基に、ノードの変化量を考慮して各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに10点を付与し、以下5点、1点を順に付与している。また、子ノードを追加、削除、更新する全操作の操作数の合計が最も多い1Fのノード214、即ちnodeAに+5の重み付けをしている。決定部170は、この結果に基づき、nodeAをお勧め訪問場所として決定する。
また決定部170は、最新の訪問履歴情報と訪問履歴情報テーブル内の他の訪問履歴情報とを用いて新規に追加された訪問場所を検出し、検出した結果に基づき各訪問場所、即ちノードに重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。
一例として、決定部170は、新規に追加されたノードにプラスの重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。図5(d)は、図4(c)及び図4(e)のノード属性テーブルc、c’を基に、新規に追加されたノードであるか否かを考慮して、各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに10点を付与し、以下5点、1点を順に付与している。また、新規に追加されたnodeCに+5の重み付けをしている。決定部170は、この結果に基づき、nodeA及びnodeCをお勧め訪問場所として決定する。
また決定部170は、最新の訪問履歴情報と訪問履歴情報テーブル内の他の訪問履歴情報とを用いていずれかのフィールド値が大きく増加した又は大きく減少したアーク又はノードを検出し、検出した結果に基づき各訪問場所、即ちノードに重み付けをし、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。
一例として、決定部170は、いずれかのフィールド値が大きく増加したアーク又はノードにプラスの重み付けをし、かつ、いずれかのフィールド値が大きく減少したアーク又はノードにマイナスの重み付けをする。そして、決定部170は、重み付けの結果を考慮して最新の訪問履歴情報に基づき、お勧めの訪問場所を決定してもよい。図5(e)は、図4(c)及び図4(e)のノード属性テーブルc、c’の対応する各フィールドの値を比較して、値が大きく変化しているノードがあるか否かを考慮して各ノードの合計得点を求めたものである。ここでは、各フィールドについて、値が最も大きいノードに10点を付与し、以下5点、1点を順に付与している。また、滞在時間及びアバタ訪問者数が大きく減少したnodeAに−10の重み付けをしている。更に、ここでも新規に追加されたnodeCに+5の重み付けをしている。決定部170は、この結果に基づき、nodeCをお勧め訪問場所として決定する。
また決定部170は、最新の訪問履歴情報と訪問履歴情報テーブル内の他の訪問履歴情報とを比較して、今後人気が出ることが予測される訪問場所をお勧めの訪問場所として決定してもよい。今後人気が出ることが予測される訪問場所とは、例えば、最新の訪問履歴情報を見る限り、他の訪問場所と比較してアバタの訪問者数や滞在時間が極めて多いということはないが、同じ訪問場所の過去の訪問履歴情報と比較すると、現在のアバタの訪問者数や滞在時間が、格段に増えているというような訪問場所である。
また決定部170は、最新の訪問履歴情報の中にお勧めの訪問場所を示す訪問履歴情報がない場合に、訪問履歴情報テーブルから次に新しい訪問履歴情報を読み出し、該訪問履歴情報に基づいてお勧めの訪問場所を決定してもよい。そして決定部170は、お勧めの訪問場所が見つかるまで、訪問履歴情報テーブルを一定時間過去に遡ってもよい。最新ではない訪問履歴情報に基づいてお勧めの訪問場所を決定した場合、決定部170は、シーングラフ格納部130から最新のシーングラフ情報を読み出して、該シーングラフ情報に、決定したお勧め訪問場所に相当するノードが含まれることを確認する。決定したお勧め訪問場所に相当するノードが含まれない場合、決定部170は、再び訪問履歴情報テーブルから次に新しい訪問履歴情報を読み出し、該訪問履歴情報に基づいてお勧めの訪問場所を決定する。
決定部170は、決定したお勧めの訪問場所及び訪問経路を提供部180に通知する。但し、お勧めの訪問場所が見つからなかった場合、決定部170は、お勧めの訪問場所が見つからなかった旨のメッセージを提供部180に通知する。
提供部180は、決定部170により決定されたお勧めの訪問場所及び訪問経路を提供する。提供の方法は、例えば、コンピュータの表示画面に表示したり、コンピュータに接続されたプリンタに出力したり、あるいは記憶部に一定期間記憶して、ガイド要求を受けるたびに呼び出して出力するようしてもよい。更には、仮想空間内に配置されたガイド役のアバタを介して又は仮想空間内のインフォメーションセンター内の館内放送として情報を提供してもよい。
次に図6乃至図9を参照して、本発明の実施形態に係る仮想空間において、ガイドするためのガイド提供処理の流れを説明する。図6は、コンピュータにおいて実行される、履歴情報収集部105により実行される処理の流れの一例を示すフローチャートである。図6において処理はステップ100で開始し、取得部110により、仮想空間内のある領域の環境変動を示す環境変動情報と、領域内に含まれる複数の訪問場所の訪問状況を示す訪問状況情報とを取得する。上述したように環境変動情報は、仮想空間内の上記領域を記述するシーングラフの各ノードに対する子ノードの追加、削除、及び更新の操作の操作情報を含む。
次に、環境変動判定部120は、取得部110から受け取った操作情報に基づいて、シーングラフ格納部130に新たにシーングラフを追加すべきか否か、即ち、領域内において一定以上の環境変動があったか否かを判定する(ステップ105)。判定処理の詳細は図7を参照して後述する。また、現時点でシーングラフ格納部130に格納される最新のシーングラフをシーングラフGtとする。そして処理はステップ110へ進み、環境変動判定部120は、ステップ105における判定処理の結果がシーングラフGt+1を追加するとの判定であったか否か判定する。シーングラフGt+1を追加するとの判定であった場合(ステップ110:YES)、環境変動判定部120は、シーングラフ格納部130にシーングラフGt+1の情報を格納し、訪問履歴情報取得部140に一定以上の環境変動があったとの判定結果を通知する。
環境変動判定部120から一定以上の環境変動があったとの判定結果の通知を受けると、訪問履歴情報取得部140は、ステップ115において履歴テーブルに格納されるシーングラフGtに対応するScenetのエントリの終了時間を現在時刻に設定する(図4(a)参照)。また、訪問履歴情報取得部140は、履歴テーブルにScenet+1のエントリを追加し(ステップ120)、その開始時間を現在時刻に設定する(ステップ125)。更に訪問履歴情報取得部140は、Scenet+1に対応するアーク・ノード属性テーブルを作成する(ステップ130)。上述したように訪問履歴情報取得部140は、アーク・ノード属性テーブルに登録するエントリを、シーングラフ格納部130に格納されるシーングラフGt+1の情報に基づいて決定する。また訪問履歴情報取得部140は、履歴テーブルのScenet+1の外部キー、即ち本実施形態においては参照テーブル名のフィールドに、シーングラフGt+1と、作成したアーク・ノード属性テーブルのテーブル名をそれぞれ設定する(ステップ135)。
ステップ110においてシーングラフGt+1を追加しないとの判定であった場合及びステップ135から、処理はステップ140へ進み、訪問履歴情報取得部140は、履歴テービルの最新のエントリ、即ちScenet又はScenet+1のエントリの外部キーを取得する。そして訪問履歴情報取得部140は、取得部110から受け取った訪問状況情報に基づいて、外部キーにより参照されるアーク・ノード属性テーブルの各エントリの各フィールドの値を更新又は設定する(ステップ145)。そして処理は終了する。
次に図7を参照して、環境変動判定部120による判定処理の詳細を説明する。図7は、コンピュータにおいて実行される、環境変動判定部120により実行される判定処理の流れの一例を示すフローチャートである。図7において処理はステップ200で開始し、環境変動判定部120は、取得部110から受け取った操作情報が、シーングラフGtに対する新規ノードnの追加操作であるか否かを判定する。追加操作であった場合(ステップ200:YES)、環境変動判定部120は、シーングラフGtに対しノードnの親ノードnpを探索し、ノードnpのchild_added属性の値を1加算する(ステップ205)。
ステップ200においてNOの場合、処理はステップ210へ進み、環境変動判定部120は、取得部110から受け取った操作情報が、シーングラフGtに対する既存ノードnの変更操作であるか否かを判定する。変更操作であった場合(ステップ210:YES)、環境変動判定部120は、シーングラフGtに対しノードnの親ノードnpを探索し、ノードnpのchild_changed属性の値を1加算する(ステップ215)。
一方ステップ210においてNOの場合、処理はステップ220へ進み、環境変動判定部120は、取得部110から受け取った操作情報が、シーングラフGtに対する既存ノードnの削除操作であるか否かを判定する。削除操作であった場合(ステップ220:YES)、環境変動判定部120は、シーングラフGtに対しノードnの親ノードnpを探索し、ノードnpのchild_deleted属性の値を1加算する(ステップ225)。削除操作でなかった場合(ステップ220:NO)、環境変動判定部120は、エラー結果を、ログに記録し又はコンピュータ画面に表示するなどして報告する。
処理はステップ205、215、又は225のいずれかからステップ230へ進み、環境変動判定部120は、バッファ125に記憶するシーングラフGtに対して取得部110から受け取った操作情報を加え、シーングラフGtを更新する。そして環境変動判定部120は、ステップ205、215、又は225でそれぞれ探索した親ノードnpがシーングラフGtのルート・ノードであるか否か判定する(ステップ235)。ルート・ノードでない場合(ステップ235:NO)、処理はステップ240へ進み、環境変動判定部120は、シーングラフGtに対しノードnpの親ノードを探索しノードngpとする。そして、環境変動判定部120は、ノードngpの属性のうち、ノードnpに対し加算された属性と同じ属性の値を1加算し(ステップ245)、ngpをnpとして、処理はステップ235へ戻る。
一方、ステップ235においてYESの場合、即ち、親ノードnpがシーングラフGtのルート・ノードである場合、環境変動判定部120は、npの変動即ち、その属性情報(child_added、child_changed、child_deleted)が、所定の条件を満たしているか否か判定する(ステップ255)。所定の条件は、例えば、図3(a)に示すように、child_added、child_changed、child_deletedの値のうちの少なくとも1つが25より大きいか、又はchild_added、child_changed、child_deletedの値の合計が50より大きいというような、操作数に関する条件である。また、子ノードの種別や操作の内容などに応じてあらかじめ定められた定数を加算し,その合計が閾値を越えているか否かで判別する方法を用いてもよい。npの変動が閾値条件を満たしている場合(ステップ255:YES)、処理はステップ260へ進み、現在のバッファ125に格納されるシーングラフをシーングラフGt+1としてシーングラフ格納部130へ格納する。npの変動が閾値条件を満たしていない場合(ステップ255:NO)、処理はそこで終了する。
図8は、コンピュータにおいて実行される、ガイド情報作成部155により実行される処理の流れの一例を示すフローチャートである。図8において処理はステップ300で開始し、入力部160により、ガイド提供の要求を受け取る。好ましくは、入力部は、ガイド要求者の属性を示す属性情報も取得する。決定部170は、入力部160からガイド提供の要求の通知と要求者の属性情報を受け取ると、訪問履歴情報格納部150に格納される履歴テーブルから最新のエントリCur_sceneを取得する(ステップ305)。好ましくは決定部170は、シーングラフ格納部130から、最新のシーングラフ情報も取得する。
そして決定部170は、最新の訪問履歴情報に基づいて、お勧めの訪問場所やその訪問経路を決定する(ステップ320)。お勧めの訪問場所及び訪問経路の決定処理の詳細は、図9を参照して後述する。提供部180は、決定部170の決定結果に基づいて、お勧めの訪問場所及び訪問経路を提供する(ステップ325)。そして処理は終了する。
図9は、コンピュータにおいて実行される、決定部170により実行されるお勧めの訪問場所及び訪問経路の決定処理の流れの一例を示すフローチャートである。図9において処理はステップ400で開始し、決定部170は、ScenetにCur_sceneを設定する。次に決定部170は、履歴テーブルのScenetのエントリの外部キーを参照して、Scenetに対応するシーングラフ情報と、アーク・ノード属性テーブルとを取得する(ステップ405)。そして決定部170は、シーングラフ情報と、アーク・ノード属性テーブルとに基づいて、変化の多いノードや新規に追加されたノードを検出する(ステップ410)。また決定部170は入力部160から要求者の属性情報を取得する(ステップ415)。そして、上述したように決定部170は、ステップ410及び415において取得した情報に基づき、ノードや特定の訪問履歴情報に重み付けを行う(ステップ420)。重み付けの具体的な方法の説明は、図5を参照して説明したのでここでは繰り返しを避けるため省略する。
重み付けが終わると、決定部170は、お勧めのノード・アークの条件を満たすノード即ち訪問場所や、アーク即ち訪問経路があるか否か判定する(ステップ425)。お勧めのノード及びアークの条件の説明ついても、決定部170の機能説明において図4及び図5を参照して上述したので、繰り返しを避けるためここでは省略する。条件を満たすノード及びアークがあった場合(ステップ425:YES)、決定部170は、条件を満たすノード及びアークを、お勧めの訪問場所及び訪問経路の情報として提供部180に渡し、処理を終了する。
一方、条件を満たすノード及びアークがない場合(ステップ425:NO)、決定部170は、履歴テーブルを1つ遡って次に新しいエントリを読み出し、Scenetに設定する(ステップ435)。次に決定部170は、履歴テーブルを一定時間分遡ってエントリを読み出したか否か判定する(ステップ440)。履歴テーブルを一定時間分遡ってエントリを読み出した場合(ステップ440:YES)、決定部170は、お勧めの訪問場所及び訪問経路はみつからなかった旨のメッセージを提供部180へ渡し、処理を終了する。履歴テーブルを一定時間分遡ってエントリを読み出していない場合(ステップ440:NO)、決定部170は、現在のScenetに対応するシーングラフに存在して、かつ、Cur_sceneのシーングラフに存在しないノードを評価対象から除外する。そして、処理はステップ405に戻る。
図10は、本発明の実施の形態によるガイド提供装置100を実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。情報処理装置は、バス2に接続されたCPU(中央処理装置)1とメインメモリ4を含んでいる。ハードディスク装置13、30、およびCD−ROM装置26、29、フレキシブル・ディスク装置20、MO装置28、DVD装置31のようなリムーバブル・ストレージ(記録メディアを交換可能な外部記憶システム)がフレキシブル・ディスクコントローラ19、IDEコントローラ25、SCSIコントローラ27などを経由してバス2へ接続されている。
フレキシブル・ディスク、MO、CD−ROM、DVD−ROMのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置13、30、ROM14には、オペレーティング・システムと協働してCPU等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。即ち、ガイド提供装置100としての情報処理装置の上記説明した数々の記憶装置には、本発明に係るガイド提供プログラムと、上記説明したシーングラフ格納部130及び訪問履歴情報格納部150に含まれるデータを格納できる。そして複数のコンピュータ・プログラムはメインメモリ4にロードされることによって実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる
情報処理装置は、キーボード/マウス・コントローラ5を経由して、キーボード6やマウス7のような入力デバイスからの入力を受ける。情報処理装置は、オーディオコントローラ21を経由して、マイク24からの入力を受け、またスピーカー23から音声を出力する。情報処理装置は、視覚データをユーザに提示するための表示装置11に、グラフィックスコントローラ10を経由して接続される。情報処理装置は、ネットワーク・アダプタ18(イーサネット(登録商標)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
以上の説明により、本発明の実施の形態によるガイド提供装置100を実現するのに好適な情報処理装置は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。なお、上記説明した構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。従って、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。