以下、地図情報出力装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、位置情報における事象の重要度を算出し、当該重要度を用いて、指定された事象に対して重要な位置情報を含む地図情報を出力する地図情報出力装置1について説明する。
また、本実施の形態において、位置情報における事象の重要度を、事象と位置情報等とが付与された2以上のデータ群であり、他のデータ群とのリンク構造を有する2以上のデータ群から算出する処理について説明する。
また、本実施の形態において、Webページ等の元データからデータ群を自動的に構成する処理についても説明する。
なお、事象とは、人物(人名と言っても良い)、場所、出来事(イベントと言っても良い)、時代、年号、年、その他のものである。事象[0]は、オブジェクトと言っても良い。人物とは、例えば、「織田信長」「坂本龍馬」などである。場所とは、例えば、「大阪城」「京都」などである。また、イベントとは、例えば、「大化の改新」「関ヶ原の戦い」などである。
また、重要度とは、重要性を示す度合いであるが、関連の度合いと考えても良い。また、位置情報における事象の重要度は、数値で表されても良いし、(A,B、C)などのランキングできる文字で表されても良い。つまり、重要度は、度合いを示す情報であれば良い。
また、データ群とは、情報の集合である。データ群とは、例えば、Webページや1以上のWebページからなるWebサイト等である。また、データ群とは、例えば、1以上の位置情報と事象のみでも良い。かかる1以上の位置情報と事象は、Webページから抽出された情報であることは好適である。また、データ群は、例えば、Webページと1以上の位置情報と事象でも良い。なお、データ群[0]が有する事象は2以上でも良い。また、データ群を抽出する元になる情報の集合を元データという。元データは、例えば、Webページである。
さらに、リンク構造におけるリンクは、ハイパーテキストのリンクでも良いし、論理的な関連でも良い。リンクは、2つのデータ群を識別するデータ群識別子の対の情報でも良いし、他方のデータ群へのポインタ情報等でも良い。リンクは、2以上のデータ群が関連することを示す情報であれば何でも良い。リンク構造は、例えば、文章間の類似度で示される。かかる場合、文章間の類似度が0である場合に、文章間にリンクが存在しない、と判断しても良い。また、文章間の類似度が所定以上である場合に文章間にリンクが存在すると判断しても良い。その場合、文章間の類似度をリンクの強度としても良いし、所定以上の類似度の文章間の類似度が「有」であり、所定未満の類似度の文章間の類似度が「無」であるとしても良い。また、リンクのデータ構造は問わない。なお、リンクは、有向のリンクであることが好適であるが、無向のリンクでも良い。
図1は、本実施の形態における地図情報出力システムの概念図である。本実施の形態における地図情報出力システムは、地図情報出力装置1、1以上の端末装置3、および1以上の元データ管理装置4を具備する。
地図情報出力装置1は、例えば、Web上のサーバ装置や、携帯端末やナビゲーション端末やいわゆるパーソナルコンピュータ等であり、地図情報を出力できる装置であれば何でも良い。なお、ここでの出力とは、表示や送信などの概念である。
端末装置3は、ユーザが保持している端末であり、例えば、携帯端末、携帯電話、パーソナルコンピュータ、テレビジョン受信機、ナビゲーション端末等、何でも良い。
また、元データ管理装置4は、データ群の元になるデータである元データを1以上格納している。元データ管理装置4は、例えば、Webページを格納しているWeb上のサーバ装置である。
図2は、本実施の形態における地図情報出力システムのブロック図である。また、図3は、地図情報出力装置1のブロック図である。
地図情報出力装置1は、元データ受信部100、元データ格納部101、地図情報格納部102、事象位置情報格納部103、データ群格納部104、事象取得部105、元データ位置情報取得部106、データ群構成部107、データ群蓄積部108、関連データ群取得部109、重要度算出部110、事象位置情報構成部111、事象位置情報蓄積部112、受付部113、位置情報取得部114、地図情報取得部115、経路探索部116、出力部117、および現在地取得部118を備える。
また、端末装置3は、入力受付部31、入力送信部32、端末受信部33、および端末出力部34を具備する。
さらに、元データ管理装置4は、元データ管理部41、および元データ送信部42を具備する。
元データ受信部100は、1以上の元データを元データ管理装置4から受信する。そして、元データ受信部100は、受信した1以上の元データを、元データ格納部101に、少なくとも一時的に蓄積する。なお、元データとは、データ群や後述する事象位置情報の元になるデータである。元データとは、例えば、Webページや、百科事典のデータベースなどである。また、元データ受信部100は、通常、受付部113が元データの受信指示を受け付けた場合に、元データ管理装置4に元データの送信を要求し、元データ管理装置4から元データを受信する。元データ受信部100は、クローリングして、1以上の元データ管理装置4から元データ(例えば、Webページ)を受信しても良い。元データ受信部100は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
元データ格納部101は、1以上の元データを格納している。元データ格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。元データ格納部101に元データが記憶される過程は問わない。なお、元データは、通常、元データ管理装置4から受信される。つまり、元データ格納部101の元データは、通常、元データ受信部100が受信したデータである。但し、例えば、記録媒体を介して元データが元データ格納部101で記憶されるようになってもよく、入力デバイスを介して入力された元データが元データ格納部101で記憶されるようになってもよい。
地図情報格納部102は、地図情報を格納し得る。地図情報は、例えば、地図の図柄を示す地図図柄情報と、用語と当該用語の地図上での位置を示す情報を有する用語情報を有する。地図図柄情報は、例えば、地図を構成するビットマップまたはグラフデータなどである。用語とは、地図上に表記されている地名や、建物や名勝や場所の名称などの文字列を有する。また、地図上での位置を示す情報は、地図上の経度、緯度を有する情報や、二次元平面上のX,Y座標値などである。また、地図情報は、通常、位置を示す情報と、当該位置を示す情報に対応する地点が存在する道路の種類を示す道路種類情報とを対に有する地点情報を2以上有する。また、地図情報は、位置を示す情報が示す地点の間のスコアを有する。スコアとは、地点間の距離や地点間の通行のし易さ、または通行のし難さを示す情報である。また、地図情報は、ISOのkiwi地図データフォーマットであっても良い。また、地図情報は、例えば、縮尺ごとに地図図柄情報と、用語情報を有する。
地図情報格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。地図情報格納部102に地図情報が記憶される過程は問わない。例えば、記録媒体を介して地図情報が地図情報格納部102で記憶されるようになってもよく、通信回線等を介して送信された地図情報が地図情報格納部102で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された地図情報が地図情報格納部102で記憶されるようになってもよい。
事象位置情報格納部103は、1以上の事象位置情報を格納し得る。事象位置情報は、位置情報と位置情報に対して閾値以上の重要度である事象とを有する。位置情報とは、位置を特定する情報である。位置情報は、地名、名勝、(緯度,経度)、建築物名、住所、地図上の相対的な座標値(X,Y)、地図情報の領域を特定するID等、位置を特定する情報であれば何でも良い。なお、位置情報のうちの地名、名勝、建築物名などを地点名称情報という。位置情報は、地点名称情報だけでも良い。また、事象位置情報は、位置情報と事象と重要度とを有することは好適である。また、事象位置情報は、位置情報と、事象と、当該事象とリンク関係にある他の1以上の事象とを有しても良い。さらに、事象位置情報は、位置情報と、事象と、重要度と、当該事象とリンク関係にある他の1以上の事象とを有しても良い。また、閾値以上の重要度とは、重要度は、重要である/重要でない、という2値でも良いし、3段階以上の重要度合いの区分を示す数値やアルファベットなどの情報でも良い。
事象位置情報格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。事象位置情報格納部103の事象位置情報は、事象位置情報蓄積部112により蓄積されることが好適であるが、事象位置情報格納部103に事象位置情報が記憶される過程は問わない。
データ群格納部104は、2以上のデータ群を格納し得る。データ群は、1以上の位置情報と事象とを有し、他のデータ群とリンク構造を有する。データ群は、1以上の位置情報と事象と他のデータ群とのリンク関係を示す情報のみでも良い。また、データ群は、Webページ(通常、他のWebページとのリンクを有するページ)と1以上の位置情報と事象でも良い。さらに、データ群が有する事象は2以上でも良い。
データ群格納部104は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。データ群格納部104にデータ群が記憶される過程は問わない。
事象取得部105は、元データから事象を取得する。事象取得部105は、例えば、予め格納している事象取得元情報を読み出し、当該事象取得元情報を用いて、元データから事象を取得する。事象取得部105は、例えば、元データの一例であるWebページから、元データ中の予め決められた特定のタグ(特定のタグは、事象取得元情報の例である。)を手がかりに事象を取得する。また、事象取得部105は、例えば、元データの一例であるWebページから、元データ中の予め決められた箇所(かかる場合、箇所を示す情報(例えば、「各頁の1行目」等)が事象取得元情報である)から、事象を取得する。なお、元データは、データ群の一部となっても良い。事象取得部105は、例えば、Webページから事象を取得するためのタグ(例えば、ウィキペディアのタイトルのタグ<title>)、を用いて、事象を取得する。つまり、事象取得部105は、例えば、事象取得元情報"<title>"を格納しており、ウィキペディアのWebページから、事象取得元情報"<title>"の次の用語「織田信長」を取得する。この「織田信長」が事象Wである。なお、Wは、事象を示す記号である。なお、事象取得元情報とは、元データから事象を取得するために用いる情報やプログラムである。
元データ位置情報取得部106は、元データから1以上の位置情報を取得する。元データ位置情報取得部106は、例えば、位置情報取得元情報を格納しており、かかる位置情報取得元情報を用いて、元データから1以上の位置情報を取得する。位置情報取得元情報とは、位置情報を取得するために利用する情報やプログラムであり、例えば、1以上の地名が格納された地名データベース、1以上の住所を構成する文字列が格納された住所データベース、または位置情報を取得するための"(緯度,経度)"等である。元データ位置情報取得部106は、例えば、元データから、位置情報に該当する1以上の情報(例えば、地名、名勝、住所など)を取得し、1以上の各情報を位置情報に変換する(正規化する、とも言う)、または元データから、1以上の位置情報を取得する。元データ位置情報取得部106は、例えば、地名データベースを保持しており、かかる地名データベースに含まれる地名を位置情報として、元データから取得する。
データ群構成部107は、事象取得部105が取得した事象および元データ位置情報取得部106が取得した1以上の位置情報を用いて、データ群を構成する。データ群構成部107は、例えば、事象と1以上の位置情報を有するデータ群を構成する。なお、データ群の構成とは、データ群を予め決められたデータ構造にすることである。データ群構成部107は、事象取得部105が取得した事象、および元データ位置情報取得部106が取得した1以上の位置情報を、元データ(例えば、Webページ)に付加して、データ群を構成しても良い。また、例えば、データ群構成部107は、事象取得部105が取得した事象Wと、場所次元ベクトルDpとを有するデータ群(W,Dp)を得ても良い。また、データ群構成部107は、事象Wと、場所次元ベクトルDpと、元データのURLを有するデータ群(W,Dp,URL)を得ても良い。場所次元ベクトルDpは、1以上の位置情報の例である。
データ群蓄積部108は、データ群構成部107が構成したデータ群をデータ群格納部104に蓄積する。なお、かかる蓄積は、一時的な蓄積でも良い。
関連データ群取得部109は、受付部113が受け付けた事象を有するデータ群とリンク関係にある1以上の関連データ群を、データ群格納部104から取得する。関連データ群取得部109は、どの程度の深さのリンクを辿って、関連データ群を取得するかは問わない。関連データ群取得部109は、例えば、受付部113が受け付けた事象を有するデータ群と直接リンク関係にある1以上の関連データ群のみを取得しても良い。かかる場合、取得する関連データ群のリンクの深さ(n)は1である。また、関連データ群取得部109は、例えば、受付部113が受け付けた事象を有するデータ群と直接リンク関係にある1以上の関連データ群、および当該1以上の関連データ群と直接リンク関係にある1以上の関連データ群を取得しても良い。かかる場合、取得する関連データ群のリンクの深さ(n)は2である。
重要度算出部110は、受付部113が受け付けた事象を有するデータ群、および関連データ群取得部109が取得した1以上の関連データ群を用いて、事象にとっての位置情報の重要度を算出する。ここでの位置情報は、受付部113が受け付けた事象を有するデータ群に含まれる1以上の位置情報、および関連データ群が有する1以上の位置情報である。ここで、重要度算出部110は、データ群と当該データ群にリンク関係にある関連データ群とをどのように用いて、重要度を算出するかは問わない。通常、重要度算出部110は、関連データ群が有する位置情報の重要度が大きいほど、事象にとっての当該位置情報の重要度を大きく算出する。または、重要度算出部110は、位置情報が含まれる関連データ群の数が多いほど、当該位置情報の重要度を大きく算出する。また、通常、重要度算出部110は、データ群に含まれる位置情報の重要度の方が、関連データ群に含まれる位置情報の重要度より影響度合いを大きくする(重要度を大きくする)。
重要度算出部110は、例えば、以下のように事象Wの位置情報における重要度を算出する。本方法は、事象Wを有するデータ群のリンク情報(関連データ群とのリンク構造の情報)を用いて算出されるページランク(PageRank)を算出する方法を基にした手法を採用する。ページランクアルゴリズムを基にした算出方法の一例は、いわゆるTopic Sensitive PageRank(Haveliwala, T.H.: Topic-sensitive PageRank: A context-sensitive ranking algorithm for web search. IEEE Transactions on Knowledge and Data Engineering (TKDE2003) 15(4), 784-796 (July/Aug 2003))のアルゴリズムである。なお、ここでのページは、データ群、関連データ群の一例である。つまり、重要度算出部110は、以下の数式1を用いて全ての連続情報との重要度(r
v)を算出する。本アルゴリズムはリンク元のデータ群uとリンク先の関連データ群vの各々の属性を重要度のスコアリングに反映できる特徴がある。
数式1において、rvはベクトルとして表現されており、rvの各次元は、各連続情報に対応するデータ群vの重要度である。数式1において、初期ベクトルr1 vはdvとする。また、数式1において、iは計算における反復回数、αはランダムジャンプ成分の割合、Bvはデータ群vにリンクしているデータ群の集合、|Fu|はデータ群uからリンクされているデータ群の集合の要素数である。本数式1を用いて、rの値が収束するまでiを増加させて計算を行うことで、重要度の計算は終了する。αは0から1まで範囲での値をとり得、例えば、0.85を使用する。dvはデータ群vの、時間次元ベクトルDtや場所次元ベクトルDpを、全ての次元における値を足し合わせた値が1になるように正規化して用いる。時間次元ベクトルDpが用いられる場合、rvや、dvの各々の次元は「1999年」や「2000年」といった、連続情報を意味する。
また、数式1を用いて、重要度算出部110は、例えば、以下のように重要度ベクトルを算出する。ここで、図18に示すように、データ群格納部104は、3つのデータ群(図3のノード)を格納している、とする。また、3つのデータ群は、3つの事象に対応する、とする。事象は、例えば、人物名(例えば、織田信長、豊臣秀吉、徳川家康)である。また、図18において、B1={3}は、データ群1はデータ群3からリンクされていることを示し、F3={1,2}は、データ群3は、データ群1およびデータ群2をリンクしていることを示す。ここでの重要度ベクトルを構成する次元(連続情報)は、「1900年」と「1910年」の2つであるとする。
なお、重要度ベクトルを算出する前の処理として、第一に、時空間上のある領域において、特定の事象vに関するコンテンツ集合(Web)から、時間・場所表現を抽出する。第二に、抽出された時間・場所表現群を正規化(例1「平成2年」:1990年1月1日−1990年12月31、例2「京都」:京都府が位置する地理的範囲、例3「江戸」:現在の東京都が位置する地理的範囲)する。第三に、出力された時間・地理次元ベクトルdvに対し、混合正規分布近似を行い平滑化する。
そして、上記の第三までの処理の結果、図19に示す初期ベクトルが与えられたとする。つまり、事象1について、連続情報「1900年」の初期値は0.5、「1910年」の初期値は0である。
次に、重要度算出部110は、数式1と初期ベクトルとを用いて、数式2に示すように、r1 1、r1 2、r1 3等を算出する。
そして、重要度算出部110は、同様に、r
1 vを用いてr
2 vを計算し、r
j vが収束するまで、数式1の計算を繰り返す。
なお、関連度を算出する方法として、数式1を用いた手法の他、数式1のd
vを数式3に示すように規定する方法がある。数式3において、vがD
jに属するか否かは、データ群vの、時間次元ベクトルDtや場所次元ベクトルDpを用いて決定される。vがD
jに属する場合は、例えば、時間次元ベクトルDtや場所次元ベクトルDpが有する要素の値が予め決められた値以上である場合等である。また、数式3において、|D
j|は、j番目の事象に属するデータ群の数である。
また、関連度を算出する方法として、上記の手法の他、数式4におけるページランクを算出する方法を基にした関連度の算出方法がある。
数式4において、rvはスカラ値であり、データ群vの関連度を表す。また、Nは、全事象の数である。さらに、数式4において、「r1=1/N」とする。
また、関連度を算出する方法として、上記の手法の他、数式5を用いた関連度の算出方法がある。
数式5において、rvはスカラ値であり、データ群vの関連度を表す。また、Nは、全事象の数である。さらに、数式5において、「r1=1/N」とする。
数式3において、Rankiが、データ群iの重要度であり、「j∈Bj」は、データ群jがデータ群iとリンク関係にあることを示す。また、xjがデータ群jの重要度であり、Njは、データ群jからのリンクの数である。
事象位置情報構成部111は、各位置情報と、事象と、重要度算出部110が算出した重要度とを用いて、1以上の事象位置情報を構成する。
事象位置情報構成部111は、例えば、予め決められた閾値より大きい重要度に対応する位置情報と事象とを有する事象位置情報を構成する。なお、かかる場合、事象位置情報構成部111は、事象位置情報を構成する際に、予め決められた閾値以下の重要度に対応する位置情報と事象とを利用しない。なお、本明細書において「より大きい」を「以上」に置き換えてもよく、「以下」を「未満」に置き換えても良い。
また、事象位置情報構成部111は、例えば、各位置情報と、事象と、重要度算出部110が算出した重要度とを有する1以上の事象位置情報を構成する。
なお、事象位置情報構成部111は、データ群格納部104のデータ群から事象を取得し、当該事象に対して、重要度を算出する1以上の位置情報を決定する処理を行っても良い。かかる処理は、取得された事象と対になる1以上の位置情報、および取得された事象を含むデータ群とリンク関係にある1以上のデータ群(関連データ群)が有する1以上の位置情報である。なお、取得された事象を含むデータ群と何段階までのリンク関係を有するデータ群を関連データ群とするかは問わない。つまり、関連データ群を、データ群からn段階までのリンク関係を有するデータ群であるとする場合のnは1以上の自然数である。
事象位置情報蓄積部112は、事象位置情報構成部111が構成した事象位置情報を、事象位置情報格納部103に蓄積する。なお、かかる蓄積は、一時的な蓄積でも良い。
受付部113は、各種の指示やデータ等を受け付ける。指示は、例えば、事象を有する地図情報の出力指示である。出力指示とは、例えば、「織田信長」によって重要な地点が表示された地図情報を出力する指示である。また、例えば、明治維新にとって、京都府で重要な地点が表示された地図情報を出力する指示である。出力指示は、さらに重要度に関する条件を有することは好適である。また、出力指示は、さらに時間情報を有しても良い。時間情報とは、時代(江戸時代,平安時代など)や年号(明治,慶応など)や時期(明治維新など)や年(1945年など)など、時を示す情報である。
また、受付部113が受け付ける指示は、例えば、元データ受信指示や、データ群蓄積指示や、事象位置情報蓄積指示や、経路探索指示などでも良い。元データ受信指示とは、元データを元データ管理装置4から受信する指示である。また、データ群蓄積指示とは、データ群を構成し、蓄積する指示である。また、事象位置情報蓄積指示とは、事象位置情報を構成し、蓄積する指示である。経路探索指示は、経路を探索し、取得した経路を出力する指示である。なお、経路探索指示は、事象を有することは好適である。経路探索指示が事象を有する場合、当該経路探索指示は、当該事象にとって重要な位置情報を経由する経路を探索する指示である。
指示等の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部113は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。また、受付部113は、指示等を外部の装置から受信しても良い。
位置情報取得部114は、出力指示が有する事象に対応する1以上の位置情報を、事象位置情報格納部103から取得する。また、位置情報取得部114は、出力指示が有する事象と閾値より大きい重要度と対になる1以上の位置情報、または出力指示が有する時間情報と事象と閾値より大きい重要度と対になる1以上の位置情報を取得することは好適である。位置情報取得部114は、出力指示が有する時間情報と事象に対応する1以上の位置情報を、事象位置情報格納部103から取得しても良い。また、位置情報取得部114は、出力指示が有する時間情報と事象と対になり、かつ閾値より大きい重要度と対になる1以上の位置情報を、事象位置情報格納部103から取得しても良い。なお、上記の閾値は、通常、予め格納されている。また、閾値より大きいとは、閾値以上も含む概念である、と考える。
位置情報取得部114は、出力指示が有する事象と対になりかつ出力指示が有する重要度に関する条件を満たす重要度と対になる1以上の位置情報、または出力指示が有する時間情報と事象と対になりかつ出力指示が有する重要度に関する条件を満たす重要度と対になる1以上の位置情報を取得しても良い。
地図情報取得部115は、位置情報取得部114が取得した1以上の位置情報のうちの少なくとも一部を含む地図情報を、地図情報格納部102から取得する。地図情報取得部115は、位置情報取得部114が取得した1以上のすべての位置情報を含む地図情報を、地図情報格納部102から取得しても良い。なお、位置情報を含む地図情報とは、当該位置情報が示す地点が表示されている地図情報である。また、地図情報取得部115は、受付部113が受け付ける指示に対応する地図情報を、地図情報格納部102から取得しても良い。
経路探索部116は、位置情報取得部114が取得した1以上の位置情報を含む経路探索を行い、経路を取得する。経路探索部116は、通常、現在地点からの経路探索を行う。なお、経路とは、通常、経路を示す情報である。例えば、経路探索部116は、現在地点を始点とし、位置情報取得部114が取得した1以上の各位置情報を中継点とし、格納されている目的地点までの経路を取得する。また、例えば、経路探索部116は、現在地点を始点とし、位置情報取得部114が取得した1以上のうちのいすれか1以上の位置情報を中継点とし、位置情報取得部114が取得した1以上のうちのいすれか一つの位置情報を目的地点とする経路を取得する。なお、目的地点とする位置情報は、通常、位置情報取得部114が取得した1以上の位置情報の中の、現在地点から最も遠い地点の位置情報である。
出力部117は、地図情報取得部115が取得した地図情報を出力する。出力部117は、地図情報取得部115が取得した地図情報と、位置情報取得部114が取得した位置情報を出力することは好適である。また、出力部117は、地図情報取得部115が取得した地図情報の上に(重畳して)、位置情報取得部114が取得した位置情報を出力することはさらに好適である。
また、出力部117は、地図情報取得部115が取得した地図情報、および経路探索部116が取得した経路を出力しても良い。出力部117は、通常、地図情報の上に経路を出力する。
また、出力部117は、位置情報取得部114が取得した1以上の位置情報が、他の地名等と視覚的に区別されて、目立つ態様で、地図情報取得部115が取得した地図情報の上に出力することは好適である。
ここで、出力とは、通常、端末装置3への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
出力部117は、無線または有線の通信手段で実現され得る。ただし、出力部117は、ディスプレイやスピーカー等の出力デバイスで実現される場合もある。出力部117は、例えば、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現されても良い。
現在地取得部118は、現在地点を取得する。現在地点は、通常、(緯度,経度)である。現在地取得部118は、例えば、GPS受信機により実現され得る。また、現在地取得部118は、例えば、3以上の携帯端末の基地局からの信号を受信し、現在位置を算出する装置により実現され得る。現在地取得部118は、公知技術であるので詳細な説明は省略する。
端末装置3を構成する入力受付部31は、ユーザから入力を受け付ける。入力は、例えば、事象を有する。入力は、例えば、出力指示である。なお、出力指示とは、事象と位置情報とを有する地図情報の出力指示であり、例えば、命令「出力 事象"坂本龍馬" "京都"」である。なお、本命令は、「坂本龍馬にとって、京都において重要度の高い位置情報を含む地図情報を出力せよ」との命令である。また、入力は、例えば、命令「出力 事象"織田信長" "江戸時代"」である。なお、本命令は、「織田信長について、江戸時代において重要度の高い位置情報を含む地図情報を出力せよ」との命令である。また、出力指示は、例えば、命令「出力 事象"坂本龍馬"」である。なお、本命令は、「坂本龍馬にとって、重要度の高い位置情報を含む地図情報を出力せよ」との命令である。
かかる入力の手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。入力受付部31は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
入力送信部32は、入力受付部31が受け付けた入力を、地図情報出力装置1に送信する。入力送信部32は、地図情報出力装置1と通信するための情報である地図情報出力装置通信先情報(例えば、IPアドレスやURL等)を保持している。地図情報出力装置通信先情報は、例えば、ユーザが入力した情報でも良いし、予め端末装置3が保持している情報でも良い。入力送信部32は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
端末受信部33は、入力送信部32における入力の送信に対応して、地図情報出力装置1から地図情報、または地図情報と位置情報等を受信する。端末受信部33は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
端末出力部34は、端末受信部33が受信した地図情報等を出力する。また、ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。端末出力部34は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部117は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
元データ管理装置4を構成する元データ管理部41は、1以上の元データを格納している。元データ管理部41は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。元データ管理部41に、データ群が記憶される過程は問わない。
元データ送信部42は、地図情報出力装置1からの元データ受信指示に従って、元データ管理部41の元データを、地図情報出力装置1に送信する。元データ受信指示とは、元データを送信する指示であり、その構造は問わない。元データ送信部42は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
事象取得部105、元データ位置情報取得部106、データ群構成部107、データ群蓄積部108、関連データ群取得部109、重要度算出部110、事象位置情報構成部111、事象位置情報蓄積部112、位置情報取得部114、地図情報取得部115、および経路探索部116は、通常、MPUやメモリ等から実現され得る。事象取得部105等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、地図情報出力システムの動作について説明する。まず、地図情報出力装置1の動作について図4のフローチャートを用いて説明する。
(ステップS401)受付部113は、指示等を受け付けたか否かを判断する。指示等を受け付ければステップS402に行き、指示等を受け付けなければステップS401に戻る。
(ステップS402)受付部113は、ステップS401で受け付けた指示等が、元データ受信指示であるか否かを判断する。元データ受信指示であればステップS403に行き、元データ受信指示でなければステップS406に行く。
(ステップS403)元データ受信部100は、元データ受信指示を、1以上の元データ管理装置4に送信する。
(ステップS404)元データ受信部100は、1以上の元データ管理装置4から1以上の元データを受信したか否かを判断する。1以上の元データを受信すればステップS405に行き、受信しなければステップS404に戻る。
(ステップS405)元データ受信部100は、ステップS404で受信した1以上の元データを元データ格納部101に蓄積する。ステップS401に戻る。
(ステップS406)受付部113は、ステップS401で受け付けた指示等が、データ群蓄積指示であるか否かを判断する。データ群蓄積指示であればステップS407に行き、データ群蓄積指示でなければステップS411に行く。
(ステップS407)事象取得部105は、カウンタiに1を代入する。
(ステップS408)事象取得部105は、データ群を構成していないi番目の元データが、元データ格納部101に存在するか否かを判断する。i番目の元データが存在すればステップS409に行き、存在しなければステップS401に戻る。
(ステップS409)事象取得部105等は、データ群構成処理を行う。データ群構成処理とは、データ群を構成し、構成したデータ群をデータ群格納部104に蓄積する処理である。データ群構成処理について、図5のフローチャートを用いて説明する。
(ステップS410)事象取得部105は、カウンタiを1インクリメントし、ステップS408に戻る。
(ステップS411)受付部113は、ステップS401で受け付けた指示等が、事象位置情報蓄積指示であるか否かを判断する。事象位置情報蓄積指示であればステップS412に行き、事象位置情報蓄積指示でなければステップS417に行く。
(ステップS412)重要度算出部110は、カウンタiに1を代入する。
(ステップS413)重要度算出部110は、事象位置情報を構成していないi番目のデータ群の事象を取得する。
(ステップS414)重要度算出部110は、i番目のデータ群の事象を取得できたか否かを判断する。i番目のデータ群の事象を取得できた場合はステップS415に行き、取得できなかった場合はステップS401に戻る。
(ステップS415)重要度算出部110等は、事象位置情報構成処理を行う。事象位置情報構成処理は、事象位置情報を構成し、事象位置情報格納部103に蓄積する処理である。事象位置情報構成処理について、図6のフローチャートを用いて説明する。
(ステップS416)重要度算出部110は、カウンタiを1インクリメントし、ステップS413に戻る。
(ステップS417)受付部113は、ステップS401で受け付けた指示等が、出力指示であるか否かを判断する。出力指示であればステップS418に行き、出力指示でなければステップS420に行く。
(ステップS418)位置情報取得部114は、位置情報取得処理を行う。位置情報取得処理とは、出力指示が有する事象に対応する1以上の位置情報を取得する処理である。なお、位置情報取得処理は、地図情報を取得する処理も含んでも良い。かかる地図情報は、例えば、取得された位置情報の少なくとも一部の位置情報を含む地図情報である。位置情報取得処理について、図8のフローチャートを用いて説明する。
(ステップS419)出力部117は、ステップS418で取得された1以上の位置情報を出力する。出力部117は、ステップS418で取得された1以上の位置情報を、出力中の地図情報の上に出力することは好適である。また、出力部117は、ステップS418で取得された1以上の位置情報、およびステップS418で取得された地図情報を出力しても良い。ステップS401に戻る。
(ステップS420)受付部113は、ステップS401で受け付けた指示等が、経路探索指示であるか否かを判断する。経路探索指示であればステップS421に行き、経路探索指示でなければステップS401に戻る。なお、ここでの経路探索指示は、事象を含むとする。
(ステップS421)経路探索部116等は、経路探索処理を行う。経路探索処理とは、例えば、経路探索指示に含まれる事象に対応する1以上の位置情報を中継地点または目的地点とする経路を探索する処理である。経路探索処理について、図9のフローチャートを用いて説明する。
(ステップS422)出力部117は、ステップS421で取得された経路を出力する。なお、出力部117は、ステップS421で取得された経路を、地図情報の上に出力することは好適である。ステップS401に戻る。
なお、図4のフローチャートにおいて、事象位置情報蓄積指示により、1以上の元データを受信し、データ群を構成し、事象位置情報を構成し、当該事象位置情報を蓄積しても良い。つまり、元データ受信処理、データ群構成処理、および事象位置情報構成処理を一括して行っても良い。
また、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS409のデータ群構成処理について、図5のフローチャートを用いて説明する。
(ステップS501)事象取得部105は、格納している1以上の事象取得元情報を読み出す。
(ステップS502)事象取得部105は、カウンタiに1を代入する。
(ステップS503)事象取得部105は、ステップS501で読み出した事象取得元情報のうち、i番目の事象取得元情報が存在するか否かを判断する。i番目の事象取得元情報が存在すればステップS504に行き、存在しなければステップS506に行く。
(ステップS504)事象取得部105は、i番目の事象取得元情報を用いて、元データから1以上の事象を取得する。
(ステップS505)事象取得部105は、カウンタiを1、インクリメントする。ステップS503に戻る。
(ステップS506)事象取得部105は、ステップS504で、1以上の事象を取得できたか否かを判断する。1以上の事象を取得できればステップS507に行き、1以上の事象を取得できなければ上位処理にリターンする。
(ステップS507)事象取得部105は、取得した1以上の事象を、予め決められたバッファに追記する。なお、事象取得部105は、元データと対応付けて、取得した1以上の事象を蓄積することは好適である。
(ステップS508)元データ位置情報取得部106は、カウンタiに1を代入する。
(ステップS509)元データ位置情報取得部106は、位置情報を取得する元データ中に、i番目の処理単位が存在するか否かを判断する。i番目の処理単位が存在すればステップS510に行き、i番目の処理単位が存在しなければステップS517に行く。なお、処理単位とは、位置情報を取得するための処理の単位であり、例えば、文、行、特定の開始タグから終了タグまで、段落、単語等、何でも良い。
(ステップS510)元データ位置情報取得部106は、元データからi番目の処理単位を読み出す。
(ステップS511)元データ位置情報取得部106は、予め記憶媒体に格納している1以上の位置情報取得元情報を読み出す。
(ステップS512)元データ位置情報取得部106は、カウンタjに1を代入する。
(ステップS513)元データ位置情報取得部106は、ステップS511で読み出した位置情報取得元情報の中に、j番目の位置情報取得元情報が存在するか否かを判断する。j番目の位置情報取得元情報が存在すればステップS514に行き、存在しなければステップS517に行く。
(ステップS514)元データ位置情報取得部106は、i番目の処理単位に対して、j番目の位置情報取得元情報を用いて、1以上の位置情報を取得する。なお、ここで、位置情報を取得できない場合はあり得る。
(ステップS515)元データ位置情報取得部106は、カウンタjを1、インクリメントする。ステップS513に戻る。
(ステップS516)元データ位置情報取得部106は、カウンタiを1、インクリメントする。ステップS509に戻る。
(ステップS517)元データ位置情報取得部106は、ステップS514において、位置情報を取得できたか否かを判断する。位置情報を取得できればステップS518に行き、位置情報を取得できなければ上位処理にリターンする。
(ステップS518)データ群構成部107は、ステップS514において取得された1以上の位置情報と事象とを対応付けてデータ群を構成し、データ群蓄積部108は、当該データ群をデータ群格納部104に蓄積する。
(ステップS519)データ群構成部107は、データ群を構成する元になった元データとリンク関係にある1以上の元データを取得する。
(ステップS520)データ群構成部107は、カウンタiに1を代入する。
(ステップS521)データ群構成部107は、i番目のリンク関係にある元データが存在するか否かを判断する。なお、この元データは、ステップS519で取得した元データである。
(ステップS522)データ群構成部107は、i番目のリンク関係にある元データから事象を取得する。そして、データ群蓄積部108は、取得された事象をデータ群に含むように、データ群格納部104に蓄積する。なお、かかる事象取得処理は、上記のステップS501からS507の処理である。
(ステップS523)データ群構成部107は、カウンタiを1、インクリメントし、ステップS521に戻る。
なお、図5のフローチャートにおいて、データ群は、事象と1以上の位置情報と、リンク関係にある元データから取得された1以上の事象とを有する。なお、データ群は、事象と1以上の位置情報のみでも良い。また、データ群が元データから取得された1以上の事象を含む場合、かかる事象を用いてリンク関係にある他のデータ群を判別できる。
次に、ステップS415の事象位置情報構成処理について、図6のフローチャートを用いて説明する。
(ステップS601)事象位置情報構成部111は、ステップS413で取得されたi番目の事象を含むデータ群を取得する。
(ステップS602)事象位置情報構成部111は、ステップS601で取得したデータ群に含まれる1以上の位置情報を取得し、バッファに一時格納する。
(ステップS603)関連データ群取得部109は、カウンタiに1を代入する。
(ステップS604)関連データ群取得部109は、i段目の下位層のデータ群を、関連データ群として利用するか否かを判断する。i段目のデータ群を関連データ群として利用する場合はステップS605に行き、利用しない場合はステップS615に行く。なお、関連データ群取得部109は、通常、予め、利用する関連データ群の段数(n)を保持している。ただし、関連データ群取得部109が段数(n)を保持していない場合、例えば、リンクにより構築されている関連データ群のツリー構造のうちの、最下位の関連データ群までを利用する、とする。また、ここでは、例えば、ステップS601で読み出したデータ群を0段目のデータ群であるとし、当該データ群と直接的にリンク関係にある関連データ群を1段目のデータ群であるとする。
(ステップS605)関連データ群取得部109は、カウンタjに1を代入する。
(ステップS606)関連データ群取得部109は、(i−1)段目の層のj番目のデータ群(関連データ群も含む)が存在するか否かを判断する。j番目のデータ群が存在すればステップS607に行き、存在しなければステップS614に行く。
(ステップS607)関連データ群取得部109は、(i−1)段目のデータ群の中に、j番目のデータ群とリンク関係にあるすべてのデータ群(i段目のデータ群)を読み出す。
(ステップS608)関連データ群取得部109は、カウンタkに1を代入する。
(ステップS609)関連データ群取得部109は、ステップS607で読み出したデータ群の中に、k番目のデータ群が存在するか否かを判断する。k番目のデータ群が存在すればステップS610に行き、存在しなければステップS613に行く。
(ステップS610)事象位置情報構成部111は、k番目のデータ群が有する1以上の位置情報を取得する。
(ステップS611)事象位置情報構成部111は、ステップS610で取得した位置情報の中で、既にバッファに格納されていない位置情報をバッファに追記する。
(ステップS612)関連データ群取得部109は、カウンタkを1、インクリメントする。ステップS609に戻る。
(ステップS613)関連データ群取得部109は、カウンタjを1、インクリメントする。ステップS606に戻る。
(ステップS614)関連データ群取得部109は、カウンタiを1、インクリメントする。ステップS604に戻る。
(ステップS615)重要度算出部110は、カウンタiに1を代入する。
(ステップS616)重要度算出部110は、バッファに蓄積されている1以上の位置情報の中に、i番目の位置情報が存在するか否かを判断する。i番目の位置情報が存在すればステップS617に行き、i番目の位置情報が存在しなければ上位処理にリターンする。
(ステップS617)重要度算出部110は、事象にとってのi番目の位置情報の重要度を算出する。重要度を算出する処理は、重要度算出処理という。重要度算出処理について、図7のフローチャートを用いて説明する。
(ステップS618)事象位置情報構成部111は、事象、i番目の位置情報、および重要度を有する事象位置情報を構成する。
(ステップS619)事象位置情報蓄積部112は、ステップS618で構成された事象位置情報を、事象位置情報格納部103に蓄積する。
(ステップS620)重要度算出部110は、カウンタiを1、インクリメントする。ステップS616に戻る。
次に、ステップS618の重要度算出処理の例について、図7のフローチャートを用いて説明する。重要度算出処理は、一の事象と一の位置情報とが与えられた場合に、重要度を算出する処理である。
(ステップS701)重要度算出部110は、重要度を代入する変数Sに0を代入する。
(ステップS702)重要度算出部110は、ステップS601で読み出したデータ群(事象に対応するデータ群)が、一の位置情報を有するか否かを判断する。一の位置情報を有すればステップS703に行き、有さなければステップS704に行く。
(ステップS703)重要度算出部110は、変数Sに定数c0を代入する。なお、c0は、事象に対応するデータ群が位置情報を有する場合に付与される報酬(重要度の増加分)である。また、c0は、データ群の初期値である。なお、Sは、Rank(v)に該当する。
(ステップS704)重要度算出部110は、カウンタiに1を代入する。
(ステップS705)重要度算出部110は、重要度を算出する場合に、i段目の下位層の関連データ群を利用するか否かを判断する。i段目の下位層の関連データ群を利用する場合はステップS706に行き、利用しない場合は上位処理にリターンする。
(ステップS706)重要度算出部110は、i段目の下位層の関連データ群のうち、一の位置情報を有するすべてのデータ群を取得する。
(ステップS707)重要度算出部110は、変数SにCi(ni)を加える。niは、i段目の関連データ群の数である。Ci(ni)は、i段目の関連データ群の数をパラメータとする増加関数である。
(ステップS708)重要度算出部110は、カウンタiを1、インクリメントする。ステップS705に戻る。
なお、図7のフローチャートは、重要度の算出方法の一例である。また、図7のフローチャートにおいて、数式1を用いて、重要度を算出することは好適である。
次に、ステップS418の位置情報取得処理について、図8のフローチャートを用いて説明する。
(ステップS801)位置情報取得部114は、出力指示に含まれる事象を取得する。
(ステップS802)位置情報取得部114は、出力指示に含まれる重要度条件を取得する。なお、出力指示に重要度条件が含まれない場合、位置情報取得部114は、予め決められた重要度条件を取得する。なお、予め決められた重要度条件は、例えば、位置情報取得部114が保持している。
(ステップS803)位置情報取得部114は、ステップS801で取得した事象と対になる1以上の位置情報を、事象位置情報格納部103から取得する。なお、位置情報取得部114は、ステップS801で取得した事象と対になる1以上の位置情報と重要度とを、事象位置情報格納部103から取得することは好適である。
(ステップS804)位置情報取得部114は、カウンタiに1を代入する。
(ステップS805)位置情報取得部114は、ステップS803で取得した位置情報の中に、i番目の位置情報が存在するか否かを判断する。i番目の位置情報が存在すればステップS806に行き、存在しなければ上位処理にリターンする。
(ステップS806)位置情報取得部114は、i番目の位置情報に対応する重要度を取得する。
(ステップS807)位置情報取得部114は、ステップS806で取得した重要度が、ステップS802で取得した重要度条件を満たすか否かを判断する。重要度条件を満たす場合はステップS808に行き、重要度条件を満たさない場合はステップS809に行く。
(ステップS808)位置情報取得部114は、i番目の位置情報をバッファに追記する。なお、このバッファは、出力する位置情報を格納するバッファである。
(ステップS809)位置情報取得部114は、カウンタiを1インクリメントし、ステップS805に戻る。
なお、図8のフローチャートにおいて、地図情報取得部115は、バッファ内の1以上の位置情報をすべて含む地図情報を、地図情報格納部102から取得しても良い。
次に、ステップS421の経路探索処理について、図9のフローチャートを用いて説明する。
(ステップS901)経路探索部116は、経路探索指示に含まれる事象を取得する。
(ステップS902)位置情報取得部114は、ステップS901で取得された事象に対応する1以上の位置情報を取得する。なお、位置情報取得処理について、図8のフローチャートを用いて説明した。
(ステップS903)経路探索部116は、ステップS902で取得された1以上の位置情報をさらに絞り込むか否かを判断する。絞り込む場合はステップS904に行き、絞り込まない場合はステップS910に行く。なお、経路探索部116は、例えば、地図情報が出力されている場合や、目的地点が既に入力されている場合等に、位置情報をさらに絞り込むと判断する。例えば、地図情報が出力されている場合は、経路探索部116は、当該出力されている地図情報の範囲に、位置情報を絞り込む。また、例えば、目的地点が既に入力されている場合、経路探索部116は、現在地点と目的地点との経路探索を行い、かかる経路から所定距離以内の位置情報、または所定時間以内の位置情報等に絞り込む。
(ステップS904)経路探索部116は、カウンタiに1を代入する。
(ステップS905)経路探索部116は、ステップS902で取得した位置情報の中の、i番目の位置情報を取得する。
(ステップS906)経路探索部116は、i番目の位置情報が取得できたか否かを判断する。i番目の位置情報が取得できた場合はステップS907に行き、取得できなかった場合はステップS910に行く。
(ステップS907)経路探索部116は、i番目の位置情報が絞り込み対象であるか否かを判断する。i番目の位置情報が絞り込み対象である場合はステップS909に行き、i番目の位置情報が絞り込み対象でない場合はステップS908に行く。
なお、経路探索部116は、例えば、地図情報が出力されている場合、i番目の位置情報が当該地図情報の領域の範囲であるか否かを判断する。経路探索部116は、地図情報の領域の範囲である場合に、i番目の位置情報が絞り込み対象であると判断する。
また、経路探索部116は、例えば、目的地点が既に入力されている場合、経路探索部116は、現在地点と目的地点との経路探索を行い、かかる経路上のすべての地点とi番目の位置情報との最短距離または最短時間を算出し、最短距離または最短時間が所定以内であるか否かを判断する。経路探索部116は、最短距離または最短時間が所定以内である場合に、i番目の位置情報が絞り込み対象であると判断する。
(ステップS908)経路探索部116は、i番目の位置情報をバッファから削除する。
(ステップS909)経路探索部116は、カウンタiを1インクリメントし、ステップS805に戻る。
(ステップS910)現在地取得部118は、現在地を取得する。現在地取得部118は、通常、(緯度,経度)の情報を取得する。
(ステップS911)経路探索部116は、ステップS910で取得した現在地と、バッファ内の1以上の位置情報とを用いて、経路探索を行う。なお、目的地点が既に入力されている場合、経路探索部116は、ステップS910で取得した現在地を出発点として、バッファ内の1以上の位置情報を中継地点とし、目的地点に向かう経路を探索する。また、目的地点が入力されていない場合、経路探索部116は、ステップS910で取得した現在地から近い順に、バッファ内の1以上の各位置情報が示す地点を経由するように、経路を探索する。なお、現在地、中継地点、および目的地点が分かっている場合に、当該地点をすべて通過する経路探索を行う技術は公知技術であるので、詳細な説明を省略する。上位処理にリターンする。
次に、端末装置3の動作について説明する。端末装置3の入力受付部31は、地図情報の出力指示、経路探索指示などの指示を受け付ける。
次に、入力送信部32は、入力受付部31が受け付けた指示を地図情報出力装置1に送信する。次に、端末受信部33は、地図情報出力装置1から、地図情報や1以上の位置情報を受信する。そして、端末出力部34は、端末受信部33が受信した地図情報や1以上の位置情報を出力する。
次に、元データ管理装置4の動作について説明する。まず、元データ管理装置4の元データ送信部42は、地図情報出力装置1から、元データ受信指示を受け付ける。そして、元データ送信部42は、元データ受信指示に対応する1以上の元データを、元データ管理部41から取得し、地図情報出力装置1に送信する。
以下、本実施の形態における地図情報出力システムの具体的な動作について説明する。地図情報出力システムの概念図は図1である。
まず、元データから事象位置情報を構成し、蓄積するまでの具体的な処理について説明する。
今、元データ管理装置4は、日本語版Wikipedia(http://ja.wikipedia.org/)のWebサーバ装置である。
そして、ユーザが地図情報出力装置1に元データ受信指示を入力した、とする。なお、元データ受信指示は、日本語版Wikipedia(http://ja.wikipedia.org/)の中で、"日本の歴史"カテゴリーとその下位カテゴリーのすべて(580個のカテゴリー)集合の中に分類されているWikipedia記事を取得する指示であった、とする。
そして、地図情報出力装置1の受付部113は、元データ受信指示を受け付ける。次に、元データ受信部100は、元データ管理装置4(http://ja.wikipedia.org/)に元データ受信指示を送信し、元データ管理装置4から33,000個の元データを受信し、元データ格納部101に蓄積した、とする。なお、これらの元データは日本史に関連する記事であり、簡単のために日本史記事と呼ぶことにする。この日本史記事の集合には、日本史にまつわる人物、出来事、建造物など様々なものが含まれている。
次に、ユーザが地図情報出力装置1にデータ群蓄積指示を入力した、とする。すると、受付部113は、データ群蓄積指示を受け付ける。
そして、次に、事象取得部105は、予め格納している事象取得元情報「<title>文字列 - Wikipedia</title>」を読み出し、当該事象取得元情報を用いて、日本史記事の集合から、事象取得元情報に対応する行から、「文字列」を抽出する。そして、事象取得部105は、当該「文字列」が人名である場合、当該記事(元データ)を取得する。つまり、まず、人物の記事を取得する。そして、事象取得部105は、「<title>文字列 - Wikipedia</title>」内の「文字列」を事象として取得する。なお、事象取得部105は、人名データベースを保持しており、かかる人名データベースも事象取得元情報として、人名を取得する場合に利用する。文章から人名を取得する技術は公知技術であるので、詳細な説明は省略する。また、文章から人名を取得するアルゴリズムは問わない。なお、事象取得部105は、「坂本龍馬」「織田信長」「豊臣秀吉」「徳川家康」などの事象を取得し、バッファに蓄積した、とする。
次に、元データ位置情報取得部106は、例えば、事象「坂本龍馬」に対して、以下のように1以上の位置情報を取得する。つまり、元データ位置情報取得部106は、位置情報を取得する元データ(事象「坂本龍馬」がタイトルに出現する日本語版WikipediaのWebページ)から、以下のように、1以上の位置情報を取得する。ここで、元データの例を図10に示す。そして、元データ位置情報取得部106は、位置情報データベース(位置情報取得元情報の例)を保持しており、かかる位置情報データベースにマッチする文字列を位置情報として取得する。ここでは、元データ位置情報取得部106は、例えば、「京都」「下関」「長州」「薩摩」「京都市左京区北白川」「近畿地方」「濃尾平野」などの位置情報を取得した、とする。
次に、データ群構成部107は、図10の元データとリンク関係にある元データの事象(タイトルの文字列)である「桂小五郎」「西郷隆盛」等を取得する。そして、データ群構成部107は、事象、1以上の位置情報、および事象とリンク関係にある1以上の事象とを有するデータ群を構成する。そして、データ群蓄積部108は、構成されたデータ群をデータ群格納部104に蓄積する。なお、例えば、データ群格納部104に蓄積されたデータ群の集合の例は、図11である。なお、図11は、データ群管理表である。
次に、ユーザが地図情報出力装置1に事象位置情報蓄積指示を入力した、とする。すると、受付部113は、事象位置情報蓄積指示を受け付ける。
次に、事象位置情報構成部111は、順次、事象を含むデータ群を、データ群格納部104のデータ群管理表から取得する。例えば、事象位置情報構成部111は、データ群管理表(図11)から事象「坂本龍馬」に対応するデータ群を取得する。なお、ここでは、利用する関連データ群の段数(n)は「2」である、とする。
次に、事象位置情報構成部111は、取得したデータ群に含まれる1以上の位置情報「京都」「下関」「長州」「薩摩」等を取得し、バッファに一時格納する。次に、事象位置情報構成部111は、データ群管理表(図11)から、事象「坂本龍馬」とリンク関係にある事象「西郷隆盛」「桂小五郎」等を取得する。次に、事象位置情報構成部111は、事象「西郷隆盛」を有するデータ群に含まれる位置情報「薩摩」「鹿児島」「熊本」等を取得する。そして、事象位置情報構成部111は、バッファに存在しない位置情報「鹿児島」「熊本」等を、バッファに追記する。次に、事象位置情報構成部111は、事象「桂小五郎」を有するデータ群に含まれる位置情報「長州」「京都」「下田」等を取得する。そして、事象位置情報構成部111は、バッファに存在しない位置情報「下田」等を、バッファに追記する。以上の処理を、関連データ群の数だけ繰り返し、バッファには、位置情報「京都」「下関」「長州」「薩摩」「鹿児島」「熊本」「下田」等が蓄積された、とする。
次に、重要度算出部110は、事象「坂本龍馬」とバッファ内の各位置情報との重要度を、数式1を用いて順次算出する。
つまり、重要度算出部110は、例えば、事象「坂本龍馬」にとっての位置情報「京都」の重要度Rank(v)を、数式1を用いて、例えば、「4.3」と算出した、とする。ここで、数式1は上述したように、Topic Sensitive PageRankのアルゴリズムを使用し、ここではランダムジャンプ成分αは「0.85」である、とする。また、リンク元uとリンク先vは、ここでは同一カテゴリーである、とする。
そして、重要度算出部110は、事象「坂本龍馬」にとっての、バッファ内の他の各位置情報の重要度Rank(v)を同様に算出する。
そして、事象位置情報構成部111は、事象、位置情報、および重要度を有する事象位置情報を構成する。事象位置情報の例は、(事象「坂本龍馬」、位置情報「京都」、重要度「4.3」)である。そして、事象位置情報蓄積部112は、構成された事象位置情報を、事象位置情報格納部103に蓄積する。そして、事象位置情報格納部103には、図12に示す事象位置情報管理表が格納される。
以上により、地図情報出力装置1が、事象にとって重要な位置情報を出力する環境が構築できた。
次に、地図情報出力装置1が事象にとって重要な位置情報を出力する処理について説明する。今、事象位置情報格納部103には、図12に示す事象位置情報管理表が格納される、とする。
かかる場合、端末装置3のユーザは、端末装置3に出力指示「出力 坂本龍馬 重要度>=3」を入力した、とする。なお、かかる出力指示は、坂本龍馬にとって重要度が3以上の位置情報を地図情報上に出力せよ、という指示である。
次に、端末装置3の入力受付部31は、出力指示「出力 坂本龍馬 重要度>=3」を受け付ける。そして、入力送信部32は、入力受付部31が受け付けた出力指示を地図情報出力装置1に送信する。
次に、地図情報出力装置1の受付部113は、端末装置3から出力指示「出力 坂本龍馬 重要度>=3」を受信する。
次に、位置情報取得部114は、出力指示に含まれる事象「坂本龍馬」を取得する。次に、位置情報取得部114は、出力指示に含まれる重要度条件「重要度>=3」を取得する。
次に、位置情報取得部114は、取得した事象「坂本龍馬」と対になる1以上の位置情報(「京都」「下関」等)を、事象位置情報管理表から取得する。
次に、位置情報取得部114は、取得した各位置情報に対応する重要度を取得し、当該重要度が、重要度条件「重要度>=3」を満たすか否かを判断する。そして、位置情報取得部114は、重要度条件「重要度>=3」を満たす重要度と対になる位置情報のみを取得する。ここで、位置情報取得部114は、「京都」「寺田屋」「土佐」「薩摩」「長崎」等を取得した、とする。
次に、地図情報取得部115は、バッファ内の1以上の位置情報(「京都」「寺田屋」「土佐」「薩摩」「長崎」等)をすべて含む地図情報を、地図情報格納部102から取得する。
次に、出力部117は、取得された地図情報、および取得された1以上の位置情報を出力する。なお、ここで、1以上の位置情報は、地図情報の上に出力することは好適である。また、出力部117は、重要度に応じて、視覚的に異なる態様で、2以上の位置情報を出力することは好適である。そして、出力部117は、図13に示す地図情報と位置情報を出力した、とする。図13において、重要度が4以上の位置情報の前には「◎」が付され、重要度が3以上4未満の位置情報の前には「○」が付されている。なお、図13は、坂本龍馬のゆかりの地をめぐるツアーマップである、と言える。
次に、端末装置3のユーザは、端末装置3に経路探索「経路探索 坂本龍馬 京都」を入力した、とする。なお、かかる出力指示は、坂本龍馬にとって重要度な位置情報であり、制約情報「京都」に該当する位置情報を地図情報上に出力せよ、という指示である、とする。
次に、経路探索部116は、経路探索指示に含まれる事象「坂本龍馬」を取得する。
次に、位置情報取得部114は、事象「坂本龍馬」に対応する1以上の位置情報を、図12に示す事象位置情報管理表から取得する。
次に、経路探索部116は、取得された1以上の位置情報をさらに絞り込むと判断する。経路探索指示が制約情報「京都」を有するからである。次に、経路探索部116は、制約情報「京都」を満たす(京都の範囲にある)1以上の位置情報(例えば、「河原町」「近江屋」「寺田屋」など)を取得する。
次に、現在地取得部118は、現在地(緯度,経度)の情報を取得する。なお、現在地は、例えば、京都市八幡市のある地点である、とする。
次に、経路探索部116は、取得した現在地と、バッファ内の1以上の位置情報(例えば、「河原町」「近江屋」「寺田屋」など)とを用いて、経路探索を行う。つまり、経路探索部116は、現在地(京都市八幡市)を出発地点とし、当該現在地から近い順に位置情報を並べ、当該各位置情報を順に経由する経路を、地図情報格納部102を用いて、取得する。そして、経路探索部116は、「現在地(京都市八幡市)→寺田屋→近江屋→河原町・・・」の経路を得た、とする。
次に、出力部117は、取得された経路「現在地(京都市八幡市)→寺田屋→近江屋→河原町・・・」を、地図情報の上に出力する。なお、この出力される地図情報は、例えば、京都府の地図の情報である。
以上、本実施の形態によれば、指定した事象(人名など)にとって重要度の高い位置情報が含まれた地図情報を出力できる。そのため、例えば、「織田信長」によって重要な地点が明示された地図情報を表示できるようになる。
また、本実施の形態によれば、指定した事象(人名など)にとって、ユーザが入力した重要度の条件を満たす位置情報が含まれた地図情報を出力できる。
また、本実施の形態によれば、事象と位置情報との重要度が自動的に算出で、重要度が含まれる事象位置情報を自動的に構成できる。
また、本実施の形態によれば、Webページなどの元データから自動的にデータ群を構成できる。
また、本実施の形態によれば、位置情報は、現存する地名、旧藩を示す名称、広域を示す名称、名所旧跡名称等、種々の種類の情報が該当し得る。しかし、位置情報を(経度,緯度)や、現在の地名、名勝などに、統一しても良い。かかることは、現存する地名、旧藩を示す名称等と、統一する位置情報(例えば、(経度,緯度))との対応表を保持していれば可能である。
さらに、本実施の形態によれば、事象にとって重要な1以上の位置情報を含む経路探索ができ、探索した経路を出力できる。そのため、例えば、「織田信長」にとって重要な地点を通る経路を探索し、「織田信長ツアー」のドライブコースを表示できるようになる。
なお、本実施の形態によれば、重要度に関する条件に関する記載方法は問わない。重要度に関する条件は、例えば、「重要度>3」、重要度「5」、「2<重要度<=4」などである。かかることは、他の実施の形態においても同様である。
また、本実施の形態において、地図情報出力装置1は、事象位置情報を構成する処理と、地図情報および位置情報を出力する処理を別の装置で行っても良い。かかる場合、事象位置情報を構成する装置をデータ構築装置といい、地図情報および位置情報を出力する装置を地図情報出力装置ということとする。
そして、データ構築装置は、元データ受信部100、元データ格納部101、事象位置情報格納部103、データ群格納部104、事象取得部105、元データ位置情報取得部106、データ群構成部107、データ群蓄積部108、関連データ群取得部109、重要度算出部110、事象位置情報構成部111、事象位置情報蓄積部112、および受付部113を備える。また、地図情報出力装置は、地図情報格納部102、事象位置情報格納部103、受付部113、位置情報取得部114、地図情報取得部115、経路探索部116、出力部117、および現在地取得部118を備える。かかる場合の地図情報出力装置の構成を示すブロック図は、図14である。なお、図14の受付部113は、出力指示や経路探索指示は受け付けるが、元データ受信指示やデータ群蓄積指示や事象位置情報蓄積指示などは受け付けない。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における地図情報出力装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、地図情報と、位置を特定する情報である位置情報と、当該位置情報に対して閾値以上の重要度である事象とを有する1以上の事象位置情報を格納しており、コンピュータを、事象を有する地図情報の出力指示を受け付ける受付部と、前記出力指示が有する事象と対応する1以上の位置情報を取得する位置情報取得部と、前記位置情報取得部が取得した1以上の位置情報のうちの少なくとも一部を含む地図情報を取得する地図情報取得部と、前記地図情報取得部が取得した地図情報を出力する出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記事象位置情報は、さらに重要度を有し、前記位置情報取得部は、前記出力指示が有する事象と閾値より大きい重要度と対になる1以上の位置情報、または前記出力指示が有する時間情報と事象と閾値より大きい重要度と対になる1以上の位置情報を取得するものとしてコンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記事象位置情報は、さらに重要度を有し、前記出力指示は、さらに重要度に関する条件を有し、前記位置情報取得部は、前記出力指示が有する事象と対になりかつ前記出力指示が有する重要度に関する条件を満たす重要度と対になる1以上の位置情報、または前記出力指示が有する時間情報と事象と対になりかつ前記出力指示が有する重要度に関する条件を満たす重要度と対になる1以上の位置情報を取得するものとしてコンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、記憶媒体に、1以上の位置情報と事象とを有し、他のデータ群とリンク構造を有する2以上のデータ群を格納しており、コンピュータを、前記受付部が受け付けた事象を有するデータ群とリンク関係にある1以上の関連データ群を、前記データ群格納部から取得する関連データ群取得部と、前記受付部が受け付けた事象を有するデータ群、および前記関連データ群取得部が取得した1以上の関連データ群を用いて、前記事象にとっての、前記受付部が受け付けた事象と対になる位置情報、および前記関連データ群が有する位置情報の重要度を算出する重要度算出部と、前記重要度算出部が算出した各位置情報と、前記事象と、前記重要度とを用いて、1以上の事象位置情報を構成する事象位置情報構成部としてさらに機能させ、
前記事象位置情報構成部が構成した1以上の事象位置情報が前記事象位置情報格納部の事象位置情報であるものとしてコンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記データ群を構成する元になるデータである元データから、当該元データ中の予め決められた特定のタグを手がかりに、または前記元データ中の予め決められた箇所から、事象を取得する事象取得部と、前記元データから、位置情報に該当する1以上の情報を取得し、当該1以上の各情報を位置情報に変換する、または前記元データから、1以上の位置情報を取得する元データ位置情報取得部と、前記事象取得部が取得した事象および前記元データ位置情報取得部が取得した1以上の位置情報を用いて、データ群を構成するデータ群構成部とをさらに具備し、前記データ群構成部が構成したデータ群が、前記データ群格納部のデータ群であるものとしてコンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記位置情報取得部が取得した1以上の位置情報を含む経路探索を行い、経路を取得する経路探索部をさらに具備し、前記出力部は、前記地図情報取得部が取得した地図情報、および前記経路探索部が取得した経路を出力するものとしてコンピュータを機能させるためのプログラムであることは好適である。
(実施の形態2)
本実施の形態において、事象にとって、重要度が閾値以上の位置情報と時間情報に対応する位置情報を地図情報とともに出力する地図情報出力装置2について説明する。
また、本実施の形態において、総称時間情報と2以上の時間情報とを対応付けて蓄積しており、事象と総称時間情報とを指定した場合に、当該事象にとって、重要度が閾値以上の位置情報と、総称時間情報に含まれる時間情報に対応する位置情報を地図情報とともに出力する地図情報出力装置2について説明する。
本実施の形態における地図情報出力システムの概念図は図1と同様である。本実施の形態における地図情報出力システムは、地図情報出力装置2、1以上の端末装置3、および1以上の元データ管理装置4を具備する。また、図15は、本実施の形態における地図情報出力装置2のブロック図である。
地図情報出力装置2は、元データ受信部100、元データ格納部101、地図情報格納部102、事象位置情報格納部103、データ群格納部104、総称時間情報格納部200、事象取得部105、元データ位置情報取得部106、元データ時間情報取得部201、データ群構成部207、データ群蓄積部108、関連データ群取得部109、重要度算出部210、事象位置情報構成部211、事象位置情報蓄積部112、受付部213、位置情報取得部214、地図情報取得部115、経路探索部216、出力部117、および現在地取得部118を備える。
総称時間情報格納部200は、総称時間情報と、2以上の時間情報とを対応付けて格納し得る。総称時間情報とは、2以上の時間情報を総称する情報である。総称時間情報は、例えば、「年号」(例えば、「江戸時代」「明治時代」)や「1800年代」などである。時間情報とは、例えば、年(「西暦1年,2年,3年,・・・1600年,1601年,・・・,2009年,2010年,2011年」、「昭和54年,明治15年」など)、年号(「縄文,弥生,・・,江戸,明治,昭和,平成」など)などである。
元データ時間情報取得部201は、元データから、時間情報に該当する1以上の情報を取得し、当該1以上の各情報を時間情報に変換する、または元データから、1以上の時間情報を取得する。元データ時間情報取得部201は、例えば、時間情報取得元情報を格納しており、かかる時間情報取得元情報を用いて、元データから1以上の時間情報を取得する。時間情報取得元情報とは、時間情報を取得するために利用する情報やプログラムであり、例えば、「[年号][数字][年or年度]、[数字][年度|年|月|日]、[数字]/[数字]/[数字]、今年|今月|今週、前年|先月|前日|一昨日|昨日、[数字][年|月|日|週][前|後]、おととし|年末|年始|おととい|あさって」などである。また、時間情報取得元情報とは、大学○年や、五月病といった明らかに時間と関係な単語(除外単語)を有してもよい。かかる除外単語に対応する文字列は、取得されない。
また、元データ時間情報取得部201は、元データ位置情報取得部106が取得した位置情報に対応する時間情報を取得することは好適である。つまり、元データ時間情報取得部201と元データ位置情報取得部106とにより、元データから、事象に紐づけられた「いつ、どこで」の情報をそれぞれ取得することは好適である。例えば、元データが図10の場合において、元データ時間情報取得部201と元データ位置情報取得部106とは、慶応2年に京都にて会談が行われたことから(慶応2年,京都)を紐づけて抽出し、また龍馬が移動した(1月20日,下関)とを紐づけて抽出する。
元データ時間情報取得部201は、通常、MPUやメモリ等から実現され得る。元データ時間情報取得部201の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
データ群構成部207は、事象取得部105が取得した事象および元データ位置情報取得部106が取得した1以上の位置情報を用いて、データ群を構成する。データ群構成部207は、例えば、事象、1組以上の(位置情報,時間情報)の組を有するデータ群を構成する。また、データ群構成部207は、例えば、事象、1組以上の(位置情報,時間情報)の組、および当該事象とリンク関係にある事象を有するデータ群を構成する。また、データ群構成部207は、元データ(例えば、Webページ)、または元データを取得するための情報(例えば、URL)をさらに有するデータ群を構成しても良い。なお、位置情報と時間情報の組を、以下、適宜、時空間情報とも言う。
データ群構成部207は、通常、MPUやメモリ等から実現され得る。データ群構成部207の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
重要度算出部210は、事象にとっての時空間情報の重要度を算出する。重要度算出部210は、受付部113が受け付けた事象を有するデータ群、および関連データ群取得部109が取得した1以上の関連データ群を用いて、上記の重要度を算出する。通常、重要度算出部210は、関連データ群が有する時空間情報の重要度が大きいほど、事象にとっての当該時空間情報の重要度を大きく算出する。または、重要度算出部210は、時空間情報が含まれる関連データ群の数が多いほど、当該時空間情報の重要度を大きく算出する。また、通常、重要度算出部210は、データ群に含まれる時空間情報の重要度の方が、関連データ群に含まれる時空間情報の重要度より影響度合いを大きくする(重要度を大きくする)。
重要度算出部210は、例えば、上記の数式1を用いて、事象Wの時空間情報における重要度を算出する。本方法は、事象Wを有するデータ群のリンク情報(関連データ群とのリンク構造の情報)を用いて算出されるページランク(PageRank)を算出する方法を採用する。ページランクを算出する方法の一例は、いわゆるTopic Sensitive PageRankのアルゴリズムである。なお、ここでのページは、データ群、関連データ群の一例である。
なお、重要度算出部210は、数式2におけるページランクの算出方法を用いて、事象Wの時空間情報における重要度を算出しても良い。
事象位置情報構成部211は、時間情報と位置情報の組と、事象と、重要度算出部110が算出した重要度とを用いて、1以上の事象位置情報を構成する。
事象位置情報構成部211は、例えば、予め決められた閾値より大きい重要度に対応する時空間情報と事象とを有する事象位置情報を構成する。なお、かかる場合、事象位置情報構成部211は、事象位置情報を構成する際に、予め決められた閾値以下の重要度に対応する時空間情報と事象とを利用しない。
また、事象位置情報構成部211は、例えば、時空間情報と、事象と、重要度算出部110が算出した重要度とを有する1以上の事象位置情報を構成する。
なお、事象位置情報構成部111は、データ群格納部104のデータ群から事象を取得し、当該事象に対して、重要度を算出する1以上の時空間情報を決定する処理を行っても良い。かかる処理は、取得された事象と対になる1以上の時空間情報、および取得された事象を含むデータ群とリンク関係にある1以上のデータ群(関連データ群)が有する1以上の時空間情報の組である。なお、取得された事象を含むデータ群と何段階までのリンク関係を有するデータ群を関連データ群とするかは問わない。
受付部213は、受付部113が受け付ける指示に加えて、時間情報と事象とを有する地図情報の出力指示を受け付けても良い。また、受付部213は、総称時間情報と事象とを有する地図情報の出力指示を受け付けても良い。出力指示は、例えば、「出力 明治維新 京都府」である。かかる出力指示において、事象は「明治維新」であり、制約が「京都府」である。そして、かかる出力指示は、明治維新にとって、京都府で重要な地点が表示された地図情報を出力する指示である。出力指示は、例えば、「出力 徳川家康 戦国時代」である。かかる出力指示において、事象は「徳川家康」であり、制約が「戦国時代」である。そして、かかる出力指示は、徳川家康にとって、戦国時代に、重要な地点が表示された地図情報を出力する指示である。
指示等の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部213は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。指示等は、受信されても良い。
位置情報取得部214は、出力指示が有する時間情報と事象とに対応する1以上の位置情報を取得する。また、位置情報取得部214は、出力指示が有する時間情報と事象と閾値より大きい重要度と対になる1以上の位置情報を取得することは好適である。また、位置情報取得部214は、出力指示が有する時間情報と事象と対になり、かつ出力指示が有する重要度に関する条件を満たす重要度と対になる1以上の位置情報を取得することは好適である。さらに、位置情報取得部214は、出力指示が有する総称時間情報に対応する2以上の時間情報を総称時間情報格納部から取得し、取得した2以上の時間情報のいずれかの時間情報または総称時間情報と、事象とに対応する1以上の位置情報を取得することは好適である。ここで、閾値は、例えば、予め格納されている。
位置情報取得部214は、通常、MPUやメモリ等から実現され得る。位置情報取得部214の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、地図情報出力装置2の動作について、図16のフローチャートを用いて説明する。図16のフローチャートにおいて、図4のフローチャートと同一のステップについて、説明を省略する。
(ステップS1601)事象取得部105等は、データ群構成処理を行う。データ群構成処理とは、データ群を構成し、データ群格納部104に構成したデータ群を蓄積する処理である。データ群構成処理について、図17のフローチャートを用いて説明する。
(ステップS1602)重要度算出部110等は、事象位置情報構成処理を行う。事象位置情報構成処理は、事象位置情報を構成し、事象位置情報格納部103に蓄積する処理である。事象位置情報構成処理について、図18のフローチャートを用いて説明する。
(ステップS1603)位置情報取得部214は、位置情報取得処理を行う。ここでの位置情報取得処理は、出力指示が有する事象と時間情報に対応する1以上の位置情報を取得する処理である。なお、位置情報取得処理は、地図情報を取得する処理も含んでも良い。かかる地図情報は、例えば、取得された位置情報の少なくとも一部の位置情報を含む地図情報である。位置情報取得処理について、図20のフローチャートを用いて説明する。
(ステップS1604)経路探索部216等は、経路探索処理を行う。経路探索処理とは、例えば、経路探索指示に含まれる事象および時間情報に対応する1以上の位置情報を中継地点または目的地点とする経路を探索する処理である。経路探索処理について、ステップS902の位置情報取得処理が、図20で説明する位置情報取得処理に変わるだけで、他のステップは図9のフローチャートと同様であるので、説明を省略する。
なお、図16のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS1601のデータ群構成処理について、図17のフローチャートを用いて説明する。
(ステップS1701)元データ時間情報取得部201は、予め記憶媒体に格納している1以上の時間情報取得元情報を読み出す。
(ステップS1702)元データ時間情報取得部201、および元データ位置情報取得部106は、それぞれ取得した1以上の時間情報取得元情報および1以上の位置情報取得元情報を用いて、元データのi番目の処理単位から、時間情報と位置情報の組を取得する。なお、ここで時間情報と位置情報の組を取得できない場合もあるし、2組以上の時間情報と位置情報の組を取得する場合もある。また、取得した時間情報と位置情報の組は、バッファに追記していく。
(ステップS1703)元データ時間情報取得部201と元データ位置情報取得部106は、ステップS1702で、時間情報と位置情報の組を取得できたか否かを判断する。時間情報と位置情報の組を取得できればステップS1704に行き、取得できなければ上位処理にリターンする。
(ステップS1704)データ群構成部107は、取得された1以上の時間情報と位置情報の各組と事象とを対応付けてデータ群を構成し、データ群蓄積部108は、当該データ群をデータ群格納部104に蓄積する。ステップS519に行く。
なお、図17のフローチャートにおいて、データ群は、事象と1組以上の時間情報と位置情報の組と、リンク関係にある元データから取得された1以上の事象とを有する。なお、データ群は、事象と1組以上の時間情報と位置情報の組のみでも良い。また、データ群が元データから取得された1以上の事象を含む場合、かかる事象を用いてリンク関係にある他のデータ群を判別できる。
次に、ステップS1602の事象位置情報構成処理について、図18のフローチャートを用いて説明する。図18のフローチャートにおいて、図6のフローチャートと同一の構成については説明を省略する。
(ステップS1801)事象位置情報構成部211は、ステップS601で取得したデータ群に含まれる1以上の時間情報と位置情報の組を取得し、バッファに一時格納する。
(ステップS1802)事象位置情報構成部211は、k番目のデータ群が有する時間情報と位置情報の組を、1組以上取得する。
(ステップS1803)事象位置情報構成部211は、ステップS1802で取得した時間情報と位置情報の組の中で、既にバッファに格納されていない時間情報と位置情報の組をバッファに追記する。
(ステップS1804)重要度算出部210は、バッファに蓄積されている1以上の時間情報と位置情報の組の中に、i番目の時間情報と位置情報の組(時空間情報)が存在するか否かを判断する。i番目の時空間情報が存在すればステップS1805に行き、存在しなければ上位処理にリターンする。
(ステップS1805)重要度算出部210は、事象にとってのi番目の時空間情報の重要度を算出する。重要度を算出する処理は、重要度算出処理という。重要度算出処理について、図19のフローチャートを用いて説明する。
(ステップS1806)事象位置情報構成部211は、事象、i番目の時間情報と位置情報の組、および重要度を有する事象位置情報を構成する。
次に、ステップS1805の重要度算出処理の例について、図19のフローチャートを用いて説明する。図19のフローチャートにおいて、図7のフローチャートと同一の構成については説明を省略する。本重要度算出処理において、一の事象と、一の時空間情報が与えられた場合の重要度を算出する。
(ステップS1901)重要度算出部210は、ステップS601で読み出したデータ群(事象に対応するデータ群)が、一の時空間情報を有するか否かを判断する。いずれかの時空間情報を有すればステップS703に行き、有さなければステップS704に行く。
(ステップS1902)重要度算出部210は、i段目の下位層の関連データ群のうち、一の時空間情報を有するすべてのデータ群を取得する。
なお、図19のフローチャートは、重要度の算出方法の一例である。また、図19のフローチャートにおいて、数式1を用いて、重要度を算出することは好適である。
次に、ステップS1603の位置情報取得処理について、図20のフローチャートを用いて説明する。図20のフローチャートにおいて、図8のフローチャートと同一の構成については説明を省略する。
(ステップS2001)位置情報取得部214は、ステップS801で取得した事象および出力指示が有する時間情報と対になる1以上の位置情報を、事象位置情報格納部103から取得する。なお、位置情報取得部214は、ステップS801で取得した事象および出力指示が有する時間情報と対になる1以上の位置情報と重要度とを、事象位置情報格納部103から取得することは好適である。なお、事象および出力指示が有する時間情報と対になる1以上の位置情報は、事象と対になり、かつ、出力指示が有する時間情報(例えば、「江戸時代」)を満たす時間情報(例えば、「1615年」)と対になる位置情報でも良い。
(ステップS2002)位置情報取得部214は、ステップS2001で取得した位置情報の中に、i番目の位置情報が存在するか否かを判断する。i番目の位置情報が存在すればステップS806に行き、存在しなければ上位処理にリターンする。
なお、図19のフローチャートにおいて、地図情報取得部115は、バッファ内の1以上の時空間情報が有する1以上の位置情報をすべて含む地図情報を、地図情報格納部102から取得しても良い。
また、図19のフローチャートのステップS806において、取得する重要度は、i番目の位置情報とステップS801で取得した事象と出力指示が有する時間情報と対になる重要度である。
以下、本実施の形態における地図情報出力システムの具体的な動作について説明する。地図情報出力システムの概念図は図1である。
まず、元データから事象位置情報を構成し、蓄積するまでの具体的な処理について説明する。
今、元データ管理装置4は、日本語版Wikipedia(http://ja.wikipedia.org/)のWebサーバ装置である。
そして、ユーザが地図情報出力装置2に元データ受信指示を入力した、とする。なお、元データ受信指示は、日本語版Wikipedia(http://ja.wikipedia.org/)の中で、"日本の歴史"カテゴリーとその下位カテゴリーのすべて(580個のカテゴリー)集合の中に分類されているWikipedia記事を取得する指示であった、とする。
そして、地図情報出力装置2の受付部213は、元データ受信指示を受け付ける。次に、元データ受信部100は、元データ管理装置4(http://ja.wikipedia.org/)に元データ受信指示を指示し、元データ管理装置4から33,000個の元データを受信し、元データ格納部101に蓄積した、とする。なお、これらの元データは日本史に関連する記事であり、簡単のために日本史記事と呼ぶことにする。この日本史記事の集合には、日本史にまつわる人物、出来事、建造物など様々なものが含まれている。
次に、ユーザが地図情報出力装置2にデータ群蓄積指示を入力した、とする。すると、受付部213は、データ群蓄積指示を受け付ける。
そして、次に、事象取得部105は、予め格納している事象取得元情報「<title>文字列 - Wikipedia</title>」を読み出し、当該事象取得元情報を用いて、日本史記事の集合から、事象取得元情報に対応する行から、「文字列」を抽出する。そして、事象取得部105は、当該「文字列」が人名である場合、当該記事(元データ)を取得する。つまり、まず、人物の記事を取得する。そして、事象取得部105は、「<title>文字列 - Wikipedia</title>」内の「文字列」を事象として取得する。なお、事象取得部105は、人名データベースを保持しており、かかる人名データベースも事象取得元情報として、人名を取得する場合に利用する。文章から人名を取得する技術は公知技術であるので、詳細な説明は省略する。また、文章から人名を取得するアルゴリズムは問わない。なお、事象取得部105は、「坂本龍馬」「織田信長」「豊臣秀吉」「徳川家康」などの事象を取得し、バッファに蓄積した、とする。
次に、元データ時間情報取得部201および元データ位置情報取得部106は、例えば、事象「坂本龍馬」に対して、以下のように1以上の時空間情報を取得する。つまり、元データ時間情報取得部201と元データ位置情報取得部106は、例えば、図10の元データから、時空間情報(慶応2年1月8日,京都)(慶応2年1月20日,下関)などを取得する。なお、元データから時間情報と位置情報との組を取得する技術は公知技術である。
次に、データ群構成部107は、図10の元データとリンク関係にある元データの事象(タイトルの文字列)である「桂小五郎」「西郷隆盛」等を取得する。そして、データ群構成部107は、事象、1以上の時空間情報、および事象とリンク関係にある1以上の事象とを有するデータ群を構成する。そして、データ群蓄積部108は、構成されたデータ群をデータ群格納部104に蓄積する。なお、例えば、データ群格納部104に蓄積されたデータ群の集合の例は、図21である。なお、図21は、データ群管理表である。
次に、ユーザが地図情報出力装置2に事象位置情報蓄積指示を入力した、とする。すると、受付部213は、事象位置情報蓄積指示を受け付ける。
次に、事象位置情報構成部211は、順次、事象を含むデータ群を、データ群格納部104のデータ群管理表から取得する。例えば、事象位置情報構成部211は、データ群管理表(図21)から事象「坂本龍馬」に対応するデータ群を取得する。なお、ここでは、利用する関連データ群の段数(n)は「2」である、とする。
次に、事象位置情報構成部211は、取得したデータ群に含まれる1以上の時空間情報(例えば、(慶応2年1月8日,京都)等)を取得し、バッファに一時格納する。次に、事象位置情報構成部211は、データ群管理表(図20)から、事象「坂本龍馬」とリンク関係にある事象「西郷隆盛」「桂小五郎」等を取得する。次に、事象位置情報構成部211は、事象「西郷隆盛」を有するデータ群に含まれる時空間情報(例えば、(文政10年,薩摩)等)を取得する。そして、事象位置情報構成部211は、バッファに存在しない時空間情報(例えば、(文政10年,薩摩)等)を、バッファに追記する。さらに、事象位置情報構成部211は、事象「坂本龍馬」とリンク関係にある他の事象を有するデータ群に含まれる時空間情報を取得する。そして、事象位置情報構成部211は、バッファに存在しない時空間情報を、バッファに追記する。以上の処理を、関連データ群の数だけ繰り返し、バッファには、多数の時空間情報が蓄積された、とする。
次に、重要度算出部110は、事象「坂本龍馬」とバッファ内の各時空間情報との重要度を、実施の形態1における具体例と同様に、数式1を用いて順次算出する。
そして、事象位置情報構成部211は、事象、時空間情報、および重要度を有する事象位置情報を構成する。事象位置情報の例は、(事象「坂本龍馬」、時空間情報「文政10年,薩摩」、重要度「2.1」)である。そして、事象位置情報蓄積部112は、構成された事象位置情報を、事象位置情報格納部103に蓄積する。そして、事象位置情報格納部103には、図22に示す事象位置情報管理表が格納される。
以上により、地図情報出力装置2が、事象および時間情報にとって重要な位置情報を出力する環境が構築できた。
次に、地図情報出力装置2が事象および時間情報にとって重要な位置情報を出力する処理について説明する。今、事象位置情報格納部103には、図22に示す事象位置情報管理表が格納されている、とする。また、総称時間情報格納部200は、図23に示す総称情報管理表を保持している、とする。また、総称時間情報格納部200は、図示しないが、西暦と年号の対応表も保持している、とする。
かかる場合、端末装置3のユーザは、端末装置3に出力指示「出力 坂本龍馬 江戸時代 重要度>=3」を入力した、とする。なお、かかる出力指示は、坂本龍馬の江戸時代において、重要度が3以上の位置情報を地図情報上に出力せよ、という指示である。
次に、端末装置3の入力受付部31は、出力指示「出力 坂本龍馬 江戸時代 重要度>=3」を受け付ける。そして、入力送信部32は、入力受付部31が受け付けた出力指示を地図情報出力装置2に送信する。
次に、地図情報出力装置2の受付部213は、端末装置3から出力指示「出力 坂本龍馬 江戸時代 重要度>=3」を受信する。
次に、位置情報取得部214は、出力指示に含まれる事象「坂本龍馬」を取得する。次に、位置情報取得部214は、出力指示に含まれる重要度条件「重要度>=3」を取得する。
次に、位置情報取得部214は、取得した事象「坂本龍馬」と出力指示が有する時間情報「江戸時代」と対になる1以上の位置情報「京都」「下関」「薩摩」等を、図22の事象位置情報管理表から取得する。なお、位置情報取得部214は、総称時間情報格納部200の情報を用いて、総称時間情報「江戸時代」を西暦に変更し、かつ、年号を西暦に変更する。そして、位置情報取得部214は、例えば、「慶応2年」が江戸時代に含まれる、と判断する。
次に、位置情報取得部214は、取得した各位置情報に対応する重要度を取得し、当該重要度が、重要度条件「重要度>=3」を満たすか否かを判断する。そして、位置情報取得部214は、重要度条件「重要度>=3」を満たす重要度と対になる位置情報のみを取得する。ここで、位置情報取得部214は、「京都」「下関」等を取得した、とする。
次に、地図情報取得部115は、バッファ内の1以上の位置情報(「京都」「下関」等)をすべて含む地図情報を、地図情報格納部102から取得する。
次に、出力部117は、取得された地図情報、および取得された1以上の位置情報を出力する。なお、ここで、1以上の位置情報は、地図情報の上に出力することは好適である。また、出力部117は、重要度に応じて、視覚的に異なる態様で、2以上の位置情報を出力することは好適である。
次に、端末装置3のユーザは、端末装置3に経路探索「経路探索 坂本龍馬 江戸時代 京都」を入力した、とする。なお、かかる出力指示は、坂本龍馬の江戸時代にとって重要度な位置情報であり、制約情報「京都」に該当する位置情報を地図情報上に出力せよ、という指示である、とする。
次に、経路探索部216は、経路探索指示に含まれる事象「坂本龍馬」を取得する。
次に、位置情報取得部214は、事象「坂本龍馬」および時間情報「江戸時代」に対応する1以上の位置情報を、図22に示す事象位置情報管理表から取得する。
次に、経路探索部216は、取得された1以上の位置情報をさらに絞り込むと判断する。経路探索指示が制約情報「京都」を有するからである。次に、経路探索部216は、制約情報「京都」を満たす(京都の範囲にある)1以上の位置情報(例えば、「河原町」「近江屋」「寺田屋」など)を取得する。なお、地図情報を用いて、1以上の各位置情報が京都の範囲にあるか否かを判断する処理は公知技術である。
次に、現在地取得部118は、現在地(緯度,経度)の情報を取得する。なお、現在地は、例えば、京都市八幡市のある地点である、とする。
次に、経路探索部216は、取得した現在地と、バッファ内の1以上の位置情報(例えば、「河原町」「近江屋」「寺田屋」など)とを用いて、経路探索を行う。つまり、経路探索部216は、現在地(京都市八幡市)を出発地点とし、当該現在地から近い順に位置情報を並べ、当該各位置情報を順に経由する経路を、地図情報格納部102を用いて、取得する。そして、経路探索部216は、「現在地(京都市八幡市)→寺田屋→近江屋→河原町・・・」の経路を得た、とする。
次に、出力部117は、取得された経路「現在地(京都市八幡市)→寺田屋→近江屋→河原町・・・」を、地図情報の上に出力する。なお、この出力される地図情報は、例えば、京都府の地図の情報である。
以上、本実施の形態によれば、指定した事象(人名など)と時間情報にとって重要度の高い位置情報が含まれた地図情報を出力できる。
また、本実施の形態によれば、事象および時代等の総称時間情報にとって重要な位置情報が含まれた地図情報を出力できる。
また、本実施の形態によれば、事象と位置情報との重要度が自動的に算出で、重要度が含まれる事象位置情報を自動的に構成できる。
また、本実施の形態によれば、Webページなどの元データから自動的にデータ群を構成できる。
さらに、本実施の形態によれば、事象および時間情報にとって重要な1以上の位置情報を含む経路探索ができ、探索した経路を出力できる。そのため、例えば、江戸時代の「徳川家康」にとって重要な地点を通る経路を探索し、「徳川家康江戸時代ツアー」のドライブコースを表示できるようになる。
なお、本実施の形態において、地図情報出力装置2は、事象位置情報を構成する処理と、地図情報および位置情報を出力する処理を別の装置で行っても良い。かかる場合、事象位置情報を構成する装置をデータ構築装置といい、地図情報および位置情報を出力する装置を地図情報出力装置ということとする。
そして、データ構築装置は、元データ受信部100、元データ格納部101、事象位置情報格納部103、データ群格納部104、総称時間情報格納部200、事象取得部105、元データ位置情報取得部106、元データ時間情報取得部201、データ群構成部207、データ群蓄積部108、関連データ群取得部109、重要度算出部210、事象位置情報構成部211、事象位置情報蓄積部112、および受付部213を備える。また、地図情報出力装置は、地図情報格納部102、事象位置情報格納部103、受付部213、位置情報取得部214、地図情報取得部115、経路探索部216、出力部117、および現在地取得部118を備える。かかる場合の地図情報出力装置の構成を示すブロック図は、図24である。なお、図24の受付部213は、出力指示や経路探索指示は受け付けるが、元データ受信指示やデータ群蓄積指示や事象位置情報蓄積指示などは受け付けない。
また、上記実施の形態において、地図情報と事象位置情報とを有するデータ構造は好適である。つまり、位置を特定する情報である位置情報を有する地図情報と、位置情報に対して閾値以上の重要度である事象とを有する1以上の事象位置情報とを有する地図情報出力装置に用いられる地図データであって、地図情報出力装置の受付部が事象を有する地図情報の出力指示を受け付けた場合に、位置情報取得部が前記出力指示が有する事象と対応する1以上の位置情報を前記地図データから取得し、地図情報取得部が前記1以上の位置情報のうちの少なくとも一部を含む地図情報を取得し、出力部が前記地図情報を出力する地図データは、上述したように有用である。
また、上記実施の形態において説明した処理を実現する地図データは有用である。かかる地図データは、位置を特定する情報である位置情報を有する地図情報と、位置情報に対して閾値以上の重要度である事象とを有する1以上の事象位置情報とを有するデータである。
さらに、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、地図情報と、位置を特定する情報である位置情報と、当該位置情報に対して閾値以上の重要度である事象とを有する1以上の事象位置情報を格納しており、コンピュータを、事象を有する地図情報の出力指示を受け付ける受付部と、前記出力指示が有する事象と対応する1以上の位置情報を取得する位置情報取得部と、前記位置情報取得部が取得した1以上の位置情報のうちの少なくとも一部を含む地図情報を取得する地図情報取得部と、前記地図情報取得部が取得した地図情報を出力する出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記事象位置情報は、時間を示す情報である時間情報と、位置情報と、当該位置情報および時間情報に対して閾値以上の重要度である事象とを有し、前記受付部は、時間情報と事象とを有する地図情報の出力指示を受け付け、前記位置情報取得部は、前記出力指示が有する時間情報と事象とに対応する1以上の位置情報を取得するものとしてコンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、記録媒体に、2以上の時間情報を総称する情報である総称時間情報と、当該2以上の時間情報とを対応付けてさらに格納しており、前記受付部は、総称時間情報と事象とを有する地図情報の出力指示を受け付け、前記位置情報取得部は、前記出力指示が有する総称時間情報に対応する2以上の時間情報を前記総称時間情報格納部から取得し、当該取得した2以上の時間情報のいずれかの時間情報または前記総称時間情報と、事象とに対応する1以上の位置情報を取得するものとしてコンピュータを機能させるためのプログラムであることは好適である。
また、図25は、本明細書で述べたプログラムを実行して、上述した実施の形態の地図情報出力装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図25は、このコンピュータシステム340の概観図であり、図26は、コンピュータシステム340の内部構成を示す図である。
図25において、コンピュータシステム340は、FDドライブ3411、CD−ROMドライブ3412を含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
図26において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の地図情報出力装置等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の地図情報出力装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、モデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。