以下、本発明の実施形態を、図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態の外部施設データ統合システムの構成を示すブロック図である。
本実施形態の外部施設データ統合システムは、サーバ110、移動端末120、外部サーバ140及びそれらを相互に接続するネットワーク130を備える。
サーバ110は、ネットワーク130に接続された計算機である。本実施形態のサーバ110は、外部情報参照部111、外部施設データ抽出部112、GUI(Graphical User Interface)部113及び住所テーブル114を備える。
外部情報参照部111は、サーバ110の外部(例えば外部サーバ140)によって管理されている情報を参照する。例えば、外部サーバ140がWebサーバである場合、外部情報参照部111はWebブラウザであってもよい。
外部施設データ抽出部112は、外部情報参照部111が参照した情報から施設データを抽出する。
GUI部113は、サーバ110のユーザがサーバ110を使用するためのGUIを提供する。
住所テーブル114は、住所のテキスト情報を格納する。この情報は、外部施設データ抽出部112が施設データを抽出するために参照される。
サーバ110のハードウェア構成、及び、上記の各部の詳細については後述する。
移動端末120は、ユーザが持ち運ぶ情報端末である。移動端末120の代表的な例は、自動車内に設置され、ユーザ(すなわち自動車の運転者)を誘導するための情報を提供するカーナビゲーション端末である。本実施形態は、例として、移動端末120がカーナビゲーション端末である場合について説明する。しかし、本実施形態は、カーナビゲーション端末以外の端末、例えば、歩行者によって携帯され、その歩行者を誘導するための情報を提供する、いわゆるパーソナルナビゲーション端末等にも適用することができる。
本発明は、本実施形態の移動端末120は、外部施設データ統合部121、ナビゲーション部122、GUI部123、外部施設テーブル124、内部施設テーブル125及び地図テーブル126を備える。
外部施設データ統合部121は、移動端末120の外部(例えばサーバ110)から提供された施設データ(以下、外部施設データと記載)のうち、ユーザによって許可されたデータを外部施設テーブル124に格納する。このとき外部施設データ統合部121は、後述するように、不足しているデータを補完する処理を実行する。
ナビゲーション部122は、移動端末120(すなわちカーナビゲーション端末)が本来持っているナビゲーション機能を実現する。具体的には、ナビゲーション部122は、後述するGPSから取得した位置情報、及び、地図テーブル126に格納された情報に基づいて経路探索を実行し、その結果に基づいて、ユーザを誘導するための情報を出力する。
GUI部123は、移動端末120のユーザが移動端末120を使用するためのGUIを提供する。
外部施設テーブル124には、外部施設データのうち、ユーザによって許可されたデータが格納される。
内部施設テーブル125には、移動端末120の出荷時に、移動端末120のメーカによって整備された施設データが格納される。
地図テーブル126には、地図を描画するために必要な情報(例えば、道路、河川、及び地形等を示す情報等)、及び、ナビゲーションを実行するために必要な情報(例えば、道路のネットワーク情報等)が格納される。
移動端末120のハードウェア構成、及び、上記の各部の詳細については後述する。
外部サーバ140は、ネットワーク130に接続された計算機である。例えば、外部サーバ140は、外部施設データを提供するWebサーバであってもよい。外部サーバ140は周知の技術によって実現できるため、その詳細な構成の説明は省略する。
ネットワーク130は、それに接続された装置間の通信を可能にするものである限りいかなる種類のものであってもよいが、典型的には、いわゆるインターネットである。
サーバ110は、ネットワーク130を介して、外部サーバ140から外部施設データを取得することができる。さらに、サーバ110は、例えばネットワーク130を介して、外部施設データを移動端末120に送信することができる。
例えば、ネットワーク130がインターネットであり、外部サーバ140がWebサーバである場合、サーバ110は、Webブラウザ(すなわち外部情報参照部111)を使用して外部サーバ140が保持するWebページのデータを取得してもよい。そして、サーバ110は、取得したデータから抽出した外部施設データを、電子メールに添付して移動端末120に送信してもよい。
ただし、上記のようなデータ転送は一例であり、インターネット以外のデータ転送媒体を介したデータ転送が適用されてもよい。例えば、サーバ110は、CD−ROMのような記録媒体を介して外部サーバ140からデータを取得してもよい。さらに、サーバ110は、例えばUSB(Universal Serial Bus)等を介して外部施設データを移動端末120に送信してもよい。あるいは、サーバ110がメモリカードのような記録媒体に外部施設データを記録し、移動端末120がその記録媒体から外部施設データを読み出すことによって、外部施設データが転送されてもよい。
図2は、本発明の第1の実施形態の移動端末のハードウェア構成を示すブロック図である。
図2に示す移動端末200は、図1に示す移動端末120に相当する。
移動端末200は、相互に接続された制御部210、GPS(Global Positioning System)220、通信部230、操作部240、表示部250及び二次記憶装置260を備える。
GPS220は、複数のGPS衛星から受信した信号に基づいて、移動端末200の現在位置(少なくとも緯度及び経度)を算出する。ただし、GPS220は、制御部210に移動端末200の現在位置を示す情報を取得する装置である限り、どのようなものによって置き換えられてもよい。例えば、GPS220は、GPS衛星以外の基地局からの信号に基づいて移動端末200の現在位置を算出する装置によって置き換えられてもよい。あるいは、GPS220は、慣性航法装置によって置き換えられてもよい。あるいは、GPS220は、上記のような複数の種類の装置の組み合わせによって置き換えられてもよい。
通信部230は、ネットワーク130に接続され、ネットワーク130を介してサーバ110からデータを受信する。ネットワーク130がインターネットである場合、通信部230は、インターネットに接続するためのインターフェースであってもよい。あるいは、移動端末200が例えばUSBを介してサーバ110に接続される場合、通信部230は、USBに接続するためのインターフェースであってもよい。あるいは、移動端末200が記録媒体を介してサーバ110からデータを受信する場合、通信部230は、その記録媒体からデータを読み出すための読み出し装置(例えば、記録媒体がメモリカードである場合、メモリカードリーダ)であってもよい。
操作部240は、ユーザからの入力を受ける入力装置(例えばボタン又はタッチパネル等)である。
表示部250は、ユーザに情報を出力する出力装置(例えば画像表示装置及びスピーカ等)である。
制御部210は、上記の各部を制御する。例えば、制御部210は、操作部240に入力されたユーザからの指示に従って、GPS220が算出した位置データ及び通信部230が受信したデータを処理し、その結果を表示部250に出力する。
制御部210は、CPU(Central Processing Unit)211及び一次記憶装置212を含む。CPU211は、一次記憶装置212に格納されたプログラムを実行することによって種々の機能(例えば、図1に示した外部施設データ統合部121、ナビゲーション部122及びGUI部123)を実現する。したがって、本実施形態において外部施設データ統合部121、ナビゲーション部122及びGUI部123が実行する処理は、実際には、CPU211によって実行される。
一次記憶装置212は、例えば半導体メモリであり、CPU211によって実行されるプログラム及びCPU211によって参照されるデータを格納する。
二次記憶装置260は、例えばハードディスクドライブ(HDD)又はフラッシュメモリのような不揮発性の記憶装置である。二次記憶装置260は、CPU211によって実行されるプログラム(例えば、図1に示した外部施設データ統合部121、ナビゲーション部122及びGUI部123を実現するためのプログラム)及びCPU211によって参照されるデータ(例えば、図1に示した外部施設テーブル124、内部施設テーブル125及び地図テーブル126)を格納する。これらのプログラム及びデータの少なくとも一部が必要に応じて一次記憶装置212にコピーされ、CPU211によって実行又は参照される。
図3は、本発明の第1の実施形態のサーバのハードウェア構成を示すブロック図である。
図3に示すサーバ300は、図1に示すサーバ110に相当する。
サーバ300は、相互に接続された制御部310、通信部330、操作部340、表示部350及び二次記憶装置360を備える。
通信部330は、ネットワーク130に接続され、ネットワーク130を介して外部サーバ140からデータを受信し、移動端末120にデータを送信する。ネットワーク130がインターネットである場合、通信部330は、インターネットに接続するためのインターフェースであってもよい。
あるいは、移動端末120が例えばUSBを介してサーバ300に接続される場合、通信部330は、USBに接続するためのインターフェースであってもよい。あるいは、サーバ300が記録媒体を介して外部サーバ140からのデータの受信及び移動端末120へのデータの送信をする場合、通信部330は、その記録媒体の読み出し・書き込み装置であってもよい。例えば、記憶媒体が光ディスクである場合、通信部330は光ディスクドライブであってもよい。あるいは、記録媒体がメモリカードである場合、通信部330はメモリカードのリーダライタであってもよい。サーバ300は、複数の通信部330を備え、それぞれの通信部330が上記のいずれかであってもよい。
操作部340は、ユーザからの入力を受ける入力装置(例えばキーボード又はマウス等)である。
表示部350は、ユーザに情報を出力する出力装置(例えば画像表示装置等)である。
制御部310は、CPU311及び一次記憶装置312を含む。CPU311は、一次記憶装置312に格納されたプログラムを実行することによって種々の機能(例えば、図1に示した外部情報参照部111、外部施設データ抽出部112及びGUI部113)を実現する。したがって、本実施形態において外部情報参照部111、外部施設データ抽出部112及びGUI部113が実行する処理は、実際には、CPU311によって実行される。
一次記憶装置312は、例えば半導体メモリであり、CPU311によって実行されるプログラム及びCPU311によって参照されるデータを格納する。
二次記憶装置360は、例えばHDD又はフラッシュメモリのような不揮発性の記憶装置である。二次記憶装置360は、CPU311によって実行されるプログラム(例えば、図1に示した外部情報参照部111、外部施設データ抽出部112及びGUI部113を実現するためのプログラム)及びCPU311によって参照されるデータ(例えば、図1に示した住所テーブル114)を格納する。これらのプログラム及びデータの少なくとも一部が必要に応じて一次記憶装置312にコピーされ、CPU311によって実行又は参照される。
なお、図示は省略するが、外部サーバ140も、サーバ110と同様のハードウェアによって実現されてもよい。
図1から図3は、サーバ110及び移動端末120がそれぞれ独立したハードウェアによって実現される例を示した。しかし、これらは単一のハードウェアによって実現されてもよい。例えば、移動端末120が、さらに外部情報参照部111、外部施設データ抽出部112、GUI部113及び住所テーブル114を備えてもよい。
図4は、本発明の第1の実施形態の外部施設データ統合システムにおいて実行される外部施設データ統合処理の全体を示すフローチャートである。
最初に、サーバ110の外部情報参照部111が外部情報を取得する(ステップ411)。ここで取得される外部情報は、外部サーバ140から取得したHTMLデータ、例えば、各種の店舗等の施設の評価が掲載されたWebページのHTMLデータである。例えば、施設を実際に訪れた個人が、その施設の名称、所在地等の情報と共に、その施設の評価(例えば、その施設がレストランである場合、提供された食事又はサービスの質に関する感想等)をその個人のウェブログ(いわゆるブログ)に掲載した場合、そのブログのHTMLデータが外部情報として取得されてもよい。
次に、サーバ110の外部施設データ抽出部112が外部情報から外部施設データを抽出して、その外部施設データを移動端末120に送信する(ステップ412)。
サーバ110から外部施設データを受信した移動端末120の外部施設データ統合部121は、外部施設データを統合する(ステップ413)。
ナビゲーション部122は、統合された外部施設データに基づいてナビゲーションを実行する(ステップ414)。
以下、上記の処理について詳細に説明する。
図5は、本発明の第1の実施形態の外部施設データ抽出部112が実行する外部施設データ抽出処理を示すフローチャートである。
図5に示す処理は、図4のステップ412において実行される。
最初に、サーバ110の外部施設データ抽出部112は、外部情報参照部111が取得した情報を参照する(ステップ501)。ここでは、外部情報参照部111が外部サーバ140から取得したHTMLデータを参照する例を説明する。
次に、外部施設データ抽出部112は、参照したHTMLデータから、そのHTMLデータが生成された日時を示す情報を取得する(ステップ511)。
次に、外部施設データ抽出部112は、参照したHTMLデータの本文を対象として、形態素解析を実行する(ステップ512)。この形態素解析は、従来から知られている方法によって実行される。具体的には、外部施設データ抽出部112は、HTMLデータの本文を形態素に分割し、各形態素の品詞を判定する。その結果、HTMLデータに含まれる施設の固有名詞、施設の住所、及び施設の電話番号のような数詞等の文字列が抽出される。
さらに、ステップ512において、外部施設データ抽出部112は、住所として抽出された文字列と、住所テーブル503に格納された文字列とを比較する。住所テーブル503は、図1に示す住所テーブル114に相当する。抽出された文字列と同一の文字列が住所テーブル503に格納されている場合、その抽出された文字列は、実際に存在する住所である。一方、抽出された文字列と同一の文字列が住所テーブル503に格納されていない場合、その抽出された文字列が住所であるという判定が誤っているか、又は、その抽出された文字列が誤った住所を含んでいる。住所テーブルについては、詳細に後述する(図6参照)。
次に、外部施設データ抽出部112は、形態素解析の結果に基づいて、HTMLデータから属性値を抽出する(ステップ513)。具体的には、ステップ512において実際に存在すると判定された住所に対応する属性値を抽出する。属性値とは、外部施設データに含まれるべき項目の値であり、例えば、施設の名称、住所、郵便番号、電話番号等である。外部施設データについては、詳細に後述する(図7参照)。
次に、外部施設データ抽出部112は、抽出された属性値を含む外部施設データを作成する(ステップ502)。
ステップ502において、外部施設データ抽出部112はさらに、作成された外部施設データを移動端末120に送信してもよい。既に説明したように、この送信は、種々の方法によって実行されてもよい。例えば、外部施設データ抽出部112が、外部施設データが添付された電子メールを移動端末120に送信してもよい。あるいは、ユーザが外部施設データを記録媒体にコピーし、その記録媒体を移動端末120に接続し、外部施設データを記録媒体から移動端末120にコピーしてもよい。
図6は、本発明の第1の実施形態の住所テーブルの説明図である。
図6に示す住所テーブル600は、図1に示す住所テーブル114に相当する。
図6に示す住所テーブル600の各エントリには、実在する住所、具体的には、都道府県601、市区町村602及び町字603を示す文字列が格納される。図6の例では、エントリ611の都道府県601として「東京都」、市区町村602として「武蔵野市」、町字603として「吉祥寺本町」という文字列が格納されている。これは、「東京都武蔵野市吉祥寺本町」という住所が実在することを示す。
なお、図6には示さないが、住所テーブル600は、住所の代表点の座標値を含んでもよい。例えば、エントリ611に格納された文字列が「東京都武蔵野市吉祥寺本町」という住所を表す場合、その住所の代表点の座標値がエントリ611にさらに含まれてもよい。代表点は、住所が示す行政区界内の一点である。例えば、行政区界の輪郭に相当する多角形図形の外接矩形の中心点が代表点として用いられてもよい。
図7は、本発明の第1の実施形態の外部施設データの説明図である。
図7に示す外部施設データ700は、図5のステップ502において作成される外部施設データの一例である。
図7に示す外部施設データ700は、名称701、住所702、郵便番号703、電話番号704、生成日時705、座標値706及び評価707を含む。
名称701として、HTMLデータから抽出された属性値のうち、施設の名称と判定された属性値(すなわち施設の名称と判定された文字列)が格納される。同様に、住所702、郵便番号703及び電話番号704として、それぞれ、施設の住所、施設の郵便番号及び施設の電話番号と判定された文字列が格納される。
生成日時705として、参照されたHTMLデータが生成された日時が格納される。
さらに、HTMLデータに施設の所在地の座標値が含まれる場合、そのHTMLデータから抽出された座標値(例えば緯度及び経度の組み合わせ)が座標値706として格納される。
さらに、HTMLデータから抽出された施設の評価情報が、評価707として格納される。
ただし、特にHTMLデータが施設を訪れた個人によって作成されたものである場合、上記の全ての属性がHTMLデータに含まれているとは限らない。図7の例では、HTMLデータに含まれていない属性値として、「NULL」が格納される。
図7の例では、名称701、住所702、郵便番号703、電話番号704、生成日時705、座標値706及び評価707として、それぞれ、「大和軒」、「東京都武蔵野市」、「NULL」、「NULL」「2008−03−10」、「(X,Y)」及び「都内best5」が格納される。これは、取得されたHTMLデータに、施設の名称「大和軒」、施設の住所「東京都武蔵野市」、施設の座標「(X,Y)」及び施設の評価「都内best5」を示すデータが含まれること、そのHTMLデータが2008年3月10日に作成されたこと、及び、そのHTMLデータに施設の郵便番号及び電話番号が含まれていなかったことを示す。このHTMLデータは、例えば、「大和軒」という施設(例えばレストラン)を実際に訪れた個人が作成し、ブログに公開したものであってもよい。
ただし、図7に示す外部施設データ700が作成された時点で、各属性値は、形態素解析の結果に基づいて推定されたものに過ぎない。施設の住所「東京都武蔵野市」は、ステップ512において住所テーブル503と照合されているため、実在することが確実である。しかし、「大和軒」という施設が実際に東京都武蔵野市に存在すること、及び、その座標が(X,Y)であることは保証されない。
図8は、本発明の第1の実施形態の外部施設データ統合部121が実行する外部施設データ統合処理を示すフローチャートである。
最初に、外部施設データ統合部121は、電子メール又はメモリカード等を介して外部施設データ810を取得する(ステップ811)。この外部施設データ810は、例えば、図7に示す外部施設データ700に相当する。
次に、外部施設データ統合部121は、内部施設テーブルを検索するための検索条件を生成する(ステップ812)。検索条件を生成する詳細な処理については後述する(図9参照)。
次に、外部施設データ統合部121は、ステップ812において生成された検索条件を用いて、内部施設テーブル840を検索する(ステップ813)。内部施設テーブル840は、図1に示す内部施設テーブル125に相当する。内部施設テーブル840の詳細については後述する(図10参照)。
次に、外部施設データ統合部121は、検索結果が0件であったか否かを判定する(ステップ814)。
ステップ814において、検索結果が0件であった(言い換えると、検索条件に合致する内部施設テーブル840のエントリが一つも取得されなかった)場合、外部施設データ810が誤っているか、又は、外部施設データ810が示す施設が、内部施設テーブル840が整備された後に開業したものである可能性がある。このため、次に、外部施設データ統合部121は、外部施設データ810の生成日時705が、内部施設テーブル840の整備日時1006(図10参照)より後であるか否かを判定する(ステップ815)。
外部施設データ810の生成日時705が内部施設テーブル840の整備日時1006より後である場合、外部施設データ810が示す施設が、内部施設テーブル840が整備された後に開業したものであると推定される。この場合、外部施設データ810が正しい可能性がある。したがって、外部施設データ統合部121は、外部施設データ810の外部施設テーブル830への登録を許可するか否かを示す入力をユーザから受ける(ステップ816)。例えば、外部施設データ統合部121は、外部施設データ810の登録を許可するか否かの問い合わせを表示部250に表示し、その表示に応じてユーザによって操作部240に入力された値を受信してもよい。
既に説明したように、外部施設データ810が正しいことは保証されていない。例えば、形態素解析の誤りによって、誤った外部施設データ810が生成される場合がある。あるいは、悪意のある人物が意図的に誤った情報をブログ等に掲載する場合もある。ユーザは、外部施設データ810が誤っていることが明らかであると判断した場合、登録を拒否することを入力することができる。
ステップ816において、外部施設データ810の登録が許可された場合、外部施設データ統合部121は、外部施設データ810を外部施設テーブル830に登録する(ステップ817)。外部施設テーブル830は、図1に示す外部施設テーブル124に相当する。外部施設テーブル830の詳細については後述する(図11参照)。
一方、ステップ816において、外部施設データ810の登録が拒否された場合、外部施設データ統合部121は、外部施設データ810を外部施設テーブル830に登録せずに処理を終了する(ステップ818)。
ステップ814において、検索結果が0件でない(言い換えると、検索条件に合致する内部施設テーブル840のエントリが少なくとも一つ取得された)場合、外部施設データ統合部121は、検索結果を表示部250に表示する(ステップ819)。複数のエントリが取得された場合、それらのエントリが検索結果としてリスト表示される。
次に、外部施設データ統合部121は、ユーザから、リスト表示された検索結果のうち一つを選択する入力を受ける(ステップ820)。例えば、ユーザは、リスト表示された検索結果のうち最も確からしいものを選択し、その選択を操作部240に入力してもよい。
次に、外部施設データ統合部121は、ステップ820において選択された検索結果を用いて、外部施設データ810の属性値を補完する(ステップ821)。具体的には、外部施設データ統合部121は、外部施設データ810の座標値(図7の例では座標値706)を、ステップ802において選択された検索結果に含まれる座標値によって置き換える。さらに、外部施設データ統合部121は、外部施設データ810において欠落している属性値(図7の例では郵便番号703及び電話番号704)として、ステップ802において選択された検索結果に含まれる属性値を登録する。この補完の詳細については、図7、図10及び図11を参照して後述する。
ステップ821が終了すると、処理はステップ816に進む。ステップ816以降の処理は既に説明したとおりである。
図9は、本発明の第1の実施形態の外部施設データ統合部121が実行する検索条件生成処理を示すフローチャートである。
図9に示す処理は、図8のステップ812において実行される。
最初に、外部施設データ統合部121は、検索条件を初期化する(ステップ911)。
次に、外部施設データ統合部121は、外部施設データ810に含まれる属性値のうち、施設の名称に相当する属性値(図7の例では名称701の値)が「NULL」であるか否かを判定する(ステップ912)。
ステップ912において属性値が「NULL」でないと判定された場合、外部施設データ統合部121は、施設の名称に相当する属性値を含む検索条件を生成する(ステップ921)。
一方、ステップ912において属性値が「NULL」であると判定された場合、外部施設データ統合部121は、ステップ921を実行せずにステップ913に進む。
次に、外部施設データ統合部121は、外部施設データ810に含まれる属性値のうち、施設の住所に相当する属性値(図7の例では住所702の値)が「NULL」であるか否かを判定する(ステップ913)。
ステップ913において属性値が「NULL」でないと判定された場合、外部施設データ統合部121は、施設の住所に相当する属性値を含む検索条件を生成する(ステップ922)。
一方、ステップ913において属性値が「NULL」であると判定された場合、外部施設データ統合部121は、ステップ922を実行せずにステップ914に進む。
次に、外部施設データ統合部121は、外部施設データ810に含まれる属性値のうち、施設の郵便番号に相当する属性値(図7の例では郵便番号703の値)が「NULL」であるか否かを判定する(ステップ914)。
ステップ914において属性値が「NULL」でないと判定された場合、外部施設データ統合部121は、施設の郵便番号に相当する属性値を含む検索条件を生成する(ステップ923)。
一方、ステップ914において属性値が「NULL」であると判定された場合、外部施設データ統合部121は、ステップ923を実行せずにステップ915に進む。
次に、外部施設データ統合部121は、外部施設データ810に含まれる属性値のうち、施設の電話番号に相当する属性値(図7の例では電話番号704の値)が「NULL」であるか否かを判定する(ステップ915)。
ステップ915において属性値が「NULL」でないと判定された場合、外部施設データ統合部121は、施設の電話番号に相当する属性値を含む検索条件を生成する(ステップ924)。
一方、ステップ915において属性値が「NULL」であると判定された場合、外部施設データ統合部121は、ステップ924を実行せずにステップ916に進む。
次に、外部施設データ統合部121は、外部施設データ810に含まれる属性値のうち、施設の座標に相当する属性値(図7の例では座標値706の値)が「NULL」であるか否かを判定する(ステップ916)。
ステップ916において属性値が「NULL」でないと判定された場合、外部施設データ統合部121は、施設の座標に相当する属性値を含む検索条件を生成する(ステップ925)。
一方、ステップ916において属性値が「NULL」であると判定された場合、外部施設データ統合部121は、ステップ925を実行せずにステップ917に進む。
次に、外部施設データ統合部121は、ステップ921からステップ925までにおいて生成された検索条件を統合する(ステップ917)。
以上で検索条件生成処理が終了する。ステップ917において統合された検索条件が、図8のステップ813の検索において使用される。
ここで、図7に示す外部施設データ700が外部施設データ810として取得された場合に生成される検索条件の例を説明する。検索条件はいかなる言語によって記述されてもよいが、本実施形態では、SQL(Structured Query Language)のLIKE演算子及びWithin関数を用いて記述される例を示す。
LIKE演算子を用いることによって、部分文字列を検索することができる。すなわち、文字列の属性値が検索され、指定した文字列と一致する部分があるか否かが判定される。そのためにワイルドカードが使用される。ワイルドカードとは、何かと一致する特殊な文字である。LIKE演算子では、ワイルドカードとしてパーセント記号(%)が使用される。このワイルドカードは任意数(0を含む)の連続した文字に相当する。
SQLのLIKE演算子については、例えば、ジョナサン ジェニック (著), Jonathan Gennick (原著), 林 秀幸 (翻訳)、SQLハンドブック―機能引きガイド、出版社: オライリージャパン (2005/07)、ISBN-10: 4873112362、ISBN-13: 978-4873112367に記載されている。
一方、Within関数を用いることによって、検索条件として与えられた座標を含む任意の範囲内の座標値を検索することができる。SQLのWithin関数については、例えば、田中 章司郎、"アプリケーション・パッケージ SQL/MM標準化動向"、電子情報通信学会技術研究報告、Vol.99、No117(DE99-4)、June、1999に記載されている。
図7の例では、名称701の値が「NULL」でないため、ステップ921において、名称701の値「大和軒」を含む検索条件が生成される。例えば、SQLのLIKE演算子を用いて、検索条件“名称 LIKE ‘%大和軒%’”が生成される。この検索条件を用いると、「大和軒」と一致する部分を含む文字列が検索される。
同様に、ステップ922では、検索条件“住所 LIKE ‘%東京都武蔵野市%’”が生成される。この検索条件を用いると、「東京都武蔵野市」と一致する部分を含む文字列が検索される。
一方、図7の例では、郵便番号703及び電話番号704の値がいずれも「NULL」である。この場合、ステップ923及びステップ924は実行されない。
図7の例では、座標値706の値が「NULL」でないため、ステップ925において、座標値706の値「(X,Y)」を含む検索条件が生成される。例えば、SQLのWithin関数を用いて、検索条件“within(内部施設テーブル.座標値, circle(point(X,Y),500))=1”が生成される。この検索条件を用いると、座標(X,Y)を中心とする半径500mの円内に存在する施設データが内部施設テーブルから検索される。
ここで、半径500mというのは一例であり、より大きい値又はより小さい値が設定されてもよい。後述する地図データの整備過程の相違に基づく座標値の誤差が500m以内であると推定される場合、500mという値が使用される。
上記のように生成された検索条件がステップ917において統合されると、検索条件“SELECT * FROM 内部施設テーブル WHERE 名称 LIKE ‘%大和軒%’ AND 住所 LIKE ‘%東京都武蔵野市%’ AND within(内部施設テーブル.座標値, circle(point(X,Y) 500 )=1;”が生成される。
なお、上記の外部施設データに誤った情報が含まれる場合、その誤った情報を検索条件として使用すると、所望の検索結果(すなわち、外部施設データに対応する施設に関する内部施設テーブルのエントリ)を取得できない。このため、検索条件に含まれる項目を減らすことによって複数の検索条件を用意して、それぞれの検索条件を用いて複数回の検索が実行されてもよい。例えば、上記のように施設の名称、住所及び座標値を全て含む検索条件のほかに、名称及び住所のみを含む検索条件、住所及び座標値のみを含む検索条件、及び、住所及び座標値のみを含む検索条件を用意し、それぞれの検索条件を用いた検索が実行されてもよい。
このような複数回の検索が実行された場合、より多くの項目を含む検索条件を満たす検索結果ほど、外部施設データに対応する可能性が高い。しかし、外部施設データに誤りが含まれる場合には、全ての項目を含まない検索条件(例えば名称及び住所のみを含む検索条件)を満たす検索結果の中に、所望の結果が含まれている可能性がある。ユーザは、自らが保有する知識等に基づいて、適切と思われる検索結果を選択することができる。
図10は、本発明の第1の実施形態の内部施設テーブルの説明図である。
図10に示す内部施設テーブル1000は、図1に示す内部施設テーブル125に相当する。
内部施設テーブル1000は、内部施設データID1001、名称1002、住所1003、郵便番号1004、電話番号1005、整備日時1006及び座標値1007を含む。
内部施設データID1001は、内部施設テーブル1000の各エントリを一意に識別する情報(すなわち、各エントリに登録された施設を一意に識別する情報)である。
名称1002、住所1003、郵便番号1004及び電話番号1005は、それぞれ、施設の名称、施設の住所、施設の郵便番号及び施設の電話番号を示す文字列である。
整備日時1006は、内部施設テーブル1000の各エントリの情報が整備された日時を示す。
座標値1007は、施設の所在地の座標を示す。
図10の例では、内部施設テーブル1000の2番目のエントリ(すなわちエントリ1011)の内部施設データID1001、名称1002、住所1003、郵便番号1004、電話番号1005、整備日時1006及び座標値1007として、それぞれ、「1002」、「元祖大和軒吉祥寺店」、「東京都武蔵野市吉祥寺本町」、「180−0004」、「042−xxx−xxxx」、「2007−10−01」及び「(X2,Y2)」が格納されている。これは、「元祖大和軒吉祥寺店」という名称の施設の住所、郵便番号、電話番号及び座標が、それぞれ、「東京都武蔵野市吉祥寺本町」、「180−0004」、「042−xxx−xxxx」及び「(X2,Y2)」であり、それらの情報が2007年10月1日に整備され、それらの情報を含むエントリが識別子「1002」によって識別されることを示す。
図11は、本発明の第1の実施形態の外部施設テーブルの説明図である。
図11に示す外部施設テーブル1100は、図1に示す外部施設テーブル124に相当する。
外部施設テーブル1100は、外部施設データID1101、名称1102、住所1103、郵便番号1104、電話番号1105、生成日時1106、座標値1107、内部施設データID1108及び評価1109を含む。
外部施設データID1101は、外部施設テーブル1100の各エントリを一意に識別する情報(すなわち、各エントリに登録された施設を一意に識別する情報)である。
名称1102、住所1103、郵便番号1104及び電話番号1105は、それぞれ、施設の名称、施設の住所、施設の郵便番号及び施設の電話番号を示す文字列である。これらの各々は、外部サーバ140から取得された外部施設データから抽出された文字列、又は、内部施設テーブル1000に基づいて補完された文字列のいずれかである。
生成日時1106は、外部施設テーブル1100の各エントリの情報の基礎となった外部施設データが生成された日時を示す。
座標値1107は、施設の所在地の座標を示す。
内部施設データID1108は、外部施設テーブル1100の各エントリの情報の基礎となった外部施設データを補完するために参照された内部施設テーブル1000を識別する。
評価1109は、外部施設データから抽出された、施設の評価を示す文字列である。
図11の例は、図7に示す外部施設データ700を、図10に示す内部施設テーブル1000のエントリ1011に基づいて補完することによって作成された外部施設テーブル1100を示す。
具体的には、図8のステップ811において図7に示す外部施設データ700が取得された場合、図9を参照して説明したように、検索条件として“SELECT * FROM 内部施設テーブル WHERE 名称 LIKE ‘%大和軒%’ AND 住所 LIKE ‘%東京都武蔵野市%’ AND within(内部施設テーブル.座標値, circle(point(X,Y) 500 )=1;”が生成される。
この検索条件を用いることによって、名称1002の少なくとも一部に「大和軒」を含み、住所1003の少なくとも一部に「東京都武蔵野市」を含み、座標値1007の値が(X,Y)から半径500m以内であるエントリが図10に示す内部施設テーブル1000から検索される。図10の例では、座標値(X2,Y2)と(X,Y)との間の距離が500m以内である場合、検索結果としてエントリ1011が取得される。
エントリ1011以外にも、上記の検索条件を満たすエントリが存在する場合、そのエントリが取得され、ステップ819において、取得された全てのエントリの情報が表示される。
ステップ820においてエントリ1011が選択された場合、外部施設データ700の属性値は、ステップ821において、エントリ1011に含まれるデータを用いて補完される。図11の例では、補完された値が外部施設テーブル1100のエントリ1111に格納される。
具体的には、外部施設データ700において不完全であった名称701及び住所702の値(すなわち「大和軒」及び「東京都武蔵野市」)が、それぞれ、エントリ1011の名称1002及び住所1003の値(すなわち「元祖大和軒吉祥寺店」及び「東京都武蔵野市吉祥寺本町」)によって補完される。外部施設データ700において欠落している郵便番号703及び電話番号704の値が、それぞれ、エントリ1011の郵便番号1004及び電話番号1005の値(すなわち「180−0004」及び「042−xxx−xxxx」)によって補完される。
これによって、移動端末120は、施設の評価に関する情報を、その施設の評価以外の属性(例えば住所又は電話番号等)に関する欠落のない情報とともにユーザに提供することができる。
さらに、ステップ821において、外部施設データ700の座標値706の値(X,Y)が、エントリ1011の座標値1007の値(X2,Y2)によって置き換えられる。これは、外部施設データ700の座標値706の値(X,Y)が、移動端末が保持する地図データに整合しない可能性があるためである。
例えば、外部施設データ700に含まれる座標値(X,Y)を算出する基礎として使用された地図データの作成元が、内部施設テーブルに含まれる座標値(X2,Y2)を算出する基礎として使用された地図データの作成元と異なる場合、両者の値が一致しない可能性がある。このような不一致は、地図データの整備過程の相違に起因する。
通常、移動端末120が保持する内部施設テーブル1000(すなわち内部施設テーブル125)に含まれる座標値1007は、その移動端末120が保持する地図テーブル126に含まれる地図データと整合する。このため、内部施設テーブル1000に含まれる施設に関する情報は、移動端末120が表示する地図上に正しく表示される(言い換えると、その施設の所在地に相当する地図上の位置に表示される)。
しかし、上記のような座標値の不一致がある場合、外部施設データに含まれる施設に関する情報は、移動端末120が表示する地図上に正しく表示されない(言い換えると、その施設の所在地に相当する地図上の位置とは異なる位置に表示される)可能性がある。このことは、ユーザに対する正確なナビゲーション情報の提供を妨げる。
ステップ821において、座標値706の値(X,Y)を(X2,Y2)によって置き換えることによって、外部施設データに含まれる施設に関する情報を、移動端末120が表示する地図上に正しく表示することができる。
結局、外部施設テーブル1100のエントリ1111の名称1102、住所1103、郵便番号1104、電話番号1105及び座標値1107として、それぞれ、内部施設テーブル1000のエントリ1011の名称1002、住所1003、郵便番号1004、電話番号1005及び座標値1007と同じ値が格納される。
さらに、外部施設データ700の生成日時705及び評価707の値(すなわち「2008−03−10」及び「都内best5」)が、外部施設テーブル1100のエントリ1111の生成日時1106及び評価1109として格納される。さらに、補完に使用された内部施設テーブルのエントリ1011を識別する内部施設データID1001の値「1002」が、エントリ1111の内部施設データID1108として格納される。さらに、図11の例では、エントリ1111の外部施設データID1101として「1」が格納される。
一方、例えば内部施設テーブル1000にエントリ1011が含まれず、かつ、その他のエントリのいずれも上記の検索条件を満たさない場合、ステップ814において検索結果が0件であると判定される。この場合、ステップ815において、取得した外部施設データの生成日時が内部施設テーブル1000の整備日時より後であるか否かが判定される。内部施設テーブル1000の整備日時は、例えば、内部施設テーブル1000のいずれかのエントリの整備日時1006から取得される。
図7及び図10の例では、外部施設データの生成日時「2008年3月10日」が、内部施設テーブル1000の整備日時「2007年10月1日」より後である。このような外部施設データは、単なる誤りである可能性もあるが、外部施設データが2007年10月1日以降に開業した施設に関するものである場合には、正しい可能性がある。
このため、外部施設データ統合部121は、ステップ816においてユーザからの許可が入力された場合、外部施設データ700を外部施設テーブル1100に登録する。この場合、内部施設テーブル1000の属性値を用いた補完が実行されない。このため、名称1102、住所1103及び座標値1107として、それぞれ、名称701、住所702及び座標値706と同じ値、すなわち、「大和軒」、「東京都武蔵野市」及び「(X,Y)」が格納される。さらに、郵便番号1104、電話番号1105及び内部施設データID1108として、例えば、「NULL」が格納されてもよい。
図7には、座標値(X,Y)が含まれる例を示したが、外部施設データ700が座標値を含まない場合(すなわち、座標値706が「NULL」である場合)もあり得る。この場合であっても、施設の住所に基づいて座標値を算出できる可能性がある。具体的には、住所702として詳細な番地の情報までが含まれる場合、外部施設データ統合部121は、地図テーブル126に基づいて、その施設の所在地の座標を算出することができる。
例えば、外部施設データ統合部121は、住所702が示す行政区界に該当するエントリを注記・背景テーブル1230(後述)から検索し、そのエントリの形状データ1234(後述)によって特定される多角形形状の外接矩形の中心点の座標値を、上記の施設の所在地の座標値として算出してもよい。
あるいは、住所テーブル600が代表点の座標値を含む場合、外部施設データ統合部121は、住所702に対応する代表点の座標値を住所テーブル600から検索し、その座標値を、上記の施設の所在地の座標値として取得してもよい。
外部施設データ統合部121は、上記のように算出された座標値を座標値1107として格納してもよい。
外部施設データ700に座標値706が含まれる場合であっても、住所702に詳細な情報が含まれる場合、外部施設データ統合部121は、その住所702の値及び地図テーブル126に基づいて、施設の所在地の座標を算出し、算出された座標値を座標値1107として格納してもよい。既に説明したように、外部施設データ700に含まれる座標値706は、移動端末120が保持する地図テーブル126と整合しない可能性があるためである。一方、住所702に基づく座標値の算出には、地図テーブル126が使用されるため、上記のような不整合が発生しない。
外部施設データ700の座標値706が「NULL」であり、かつ、住所702が詳細な情報を含んでいない場合、外部施設データ統合部121は、その住所702の値に基づいて、施設のおおよその所在地を示す座標値を算出し、算出された値を座標値1107として格納してもよい。
なお、図7、図10及び図11に示した属性値は一例であり、図示していないいかなる属性値が扱われてもよい。例えば、内部施設テーブル1000が、属性値として施設のカテゴリ(例えば、施設がレストランであるのか、公共施設であるのか、等を示す情報)を含んでもよい。その場合、外部施設データ700として、施設のカテゴリを示す文字列等が抽出され、図9に示す検索条件に、施設のカテゴリに関する条件が追加されてもよい。
本実施形態では、上記のように、取得された外部施設データ700と、移動端末120が保持している内部施設テーブル1000と、を統合することによって、図11に示す外部施設テーブル1100が新たに作成される。この外部施設テーブル1100によって、外部施設データ700の属性値(例えば評価「都内best5」)と、内部施設テーブル1000の属性値(例えば座標(X,Y))とが対応付けられる。しかし、このような対応付けの方法は一例に過ぎず、上記以外の対応付けの方法によって本発明が実現されてもよい。
例えば、移動端末120は、外部施設データ700をそのまま二次記憶装置260に格納し、さらに、外部施設データ700の属性値と、内部施設テーブル1000の適切なエントリ(例えばエントリ1011)の属性値とを対応付ける情報を二次記憶装置260に格納してもよい。このような対応付けによっても、外部施設データに含まれる施設の評価を正しい位置に表示すること、及び、外部施設データにおいて欠落している情報を補完することができる。
次に、図12Aから図12Fを参照して、地図テーブル126について説明する。本実施形態において使用される地図テーブル126は、従来のカーナビゲーション端末において使用されるものと同様であってよい。図12Aから図12Fには、本実施形態において使用される地図テーブル126の例を示す。
図12Aは、本発明の第1の実施形態の地図テーブル126に含まれる道路テーブル1210の説明図である。
道路テーブル1210は、移動端末120が地図上に道路を表示するために必要な情報を含む。具体的には、道路テーブル1210は、リンクID1211、領域ID1212、幅員1213、道路種別コード1214、点列データ1215、始点ノードID1216及び終点ノードID1217を含む。
リンクID1211は、リンク、すなわち、二つの隣接する交差点を接続する道路の区間を識別する情報である。
領域ID1212は、リンクID1211によって識別される各区間が属する領域を識別する情報である。領域については、図12Eを参照して後述する。
幅員1213は、各区間の道幅を示す情報である。
道路種別コード1214は、リンクID1211によって識別される区間を含む道路の種別を示す情報である。これについては、図12Bを参照して後述する。
点列データ1215は、各区間の道路上の点の座標値の集合である。点列データ1215に基づいて、各区間の道路の形状を特定することができる。
始点ノードID1216は、各区間の始点を識別する情報である。
終点ノードID1217は、各区間の終点を識別する情報である。
図12Bは、本発明の第1の実施形態の地図テーブル126に含まれる道路種別テーブル1220の説明図である。
道路種別テーブル1220は、道路の種別を記述する情報(図12Bの道路種別1221)と、道路の種別を識別するコード(図12Bのコード1222)と、を対応付ける情報を含む。
図12Bの例では、道路種別1221の値「高速道路」、「国道」及び「都道府県道路」に対応するコード1222として、それぞれ、「1」、「2」及び「3」が格納されている。これは、高速道路を識別するコードが「1」、国道を識別するコードが「2」、都道府県道路を識別するコードが「3」であることを示す。
例えば、図12Aの道路テーブル1210の先頭のエントリの道路種別コード1214として「1」が格納されている。これは、そのエントリに対応する区間が、高速道路の一部であることを示す。
図12Cは、本発明の第1の実施形態の地図テーブル126に含まれる注記・背景テーブル1230の説明図である。
注記・背景テーブル1230は、移動端末120が地図上に背景地物を表示するために必要な情報を含む。具体的には、注記・背景テーブル1230は、背景ID1231、領域ID1232、背景種別コード1233、形状データ1234及び注記文字列1235を含む。ここで、背景地物とは、地図上に表示される道路以外の地物、例えば、河川、鉄道及び行政区界等を意味する。
背景ID1231は、各背景地物を識別する情報である。
領域ID1232は、背景ID1231によって識別される各背景地物が属する領域を識別する情報である(図12E参照)。
背景種別コード1233は、各背景地物の種別を示す情報である。これについては図12Dを参照して後述する。
形状データ1234は、各背景地物の形状を示す情報である。例えば、形状データ1234として、地図記号等を表す点図形、鉄道等を表す折れ線図形、及び、水域又は敷地等を現す多角形図形のいずれかを表現する座標値が格納される。
注記文字列1235は、各背景地物を説明するために画面上に表示される文字列である。例えば、注記文字列1235として、河川の名称、鉄道の路線の名称、市の名称又は番地等が格納されてもよい。
図12Dは、本発明の第1の実施形態の地図テーブル126に含まれる背景種別テーブル1240の説明図である。
背景種別テーブル1240は、背景地物の種別を記述する情報(図12Dの背景種別1241)と、背景地物の種別を識別するコード(図12Dのコード1242)と、を対応付ける情報を含む。
図12Dの例では、背景種別1241の値「河川」、「鉄道」及び「行政区界」に対応するコード1242として、それぞれ、「1」、「2」及び「3」が格納されている。これは、河川を識別するコードが「1」、鉄道を識別するコードが「2」、行政区界を識別するコードが「3」であることを示す。
例えば、図12Cの注記・背景テーブル1230先頭のエントリの背景種別コード1233として「1」が格納されている。これは、そのエントリに対応する背景地物が河川であることを示す。
なお、図11を参照して説明したように、住所データに基づく座標値の算出は、注記・背景テーブル1230及び背景種別テーブル1240を用いて行うことができる。
図12Eは、本発明の第1の実施形態において管理される領域の配置の説明図である。
本実施形態の移動端末120は、実世界に対応する地図上の空間を格子状に区切り、区切られた矩形の各領域に識別番号(すなわち領域ID)を付与する。例えば、図12Eに示すように、X座標がX1からX2まで、Y座標がY0からY1までの矩形の領域1250に、領域ID「1」が付与される。
図12Fは、本発明の第1の実施形態の地図テーブル126に含まれる領域IDテーブル1260の説明図である。
領域IDテーブル1260は、図12Eに示した矩形の各領域の領域IDと座標とを対応付ける情報を含む。具体的には、領域IDテーブル1260は、領域ID1261、左下座標1262及び右上座標1263を含む。
領域ID1261は、各領域に付与された識別子である。
左下座標1262は、矩形の各領域の左下の角の点の座標(言い換えると、各領域の境界線上の点のうち、最も小さいX座標及び最も小さいY座標を有する点の座標)である。
右上座標1263は、矩形の各領域の右上の角の点の座標(言い換えると、各領域の境界線上の点のうち、最も大きいX座標及び最も大きいY座標を有する点の座標)である。
図12Fの例では、領域ID1261の値「1」に対応する左下座標1262及び右上座標1263として、それぞれ、「(X1,Y0)」及び「(X2,Y1)」が格納される。これは、図12Eに示すように、X座標がX1からX2まで、Y座標がY0からY1までの矩形の領域1250に、領域ID「1」が付与されることを示す。
例えば、図12Aの先頭のエントリの領域ID1212として「1」が格納されている。これは、そのエントリに対応する区間が、X座標がX1からX2まで、Y座標がY0からY1までの矩形の領域1250に含まれることを示す。
あるいは、図12Cの先頭のエントリの領域ID1232として「1」が格納されている。これは、そのエントリに対応する背景(図12C及び図12Dの例では河川)が、上記の領域1250に含まれることを示す。
図13は、本発明の第1の実施形態のナビゲーション部122が実行するナビゲーション処理を示すフローチャートである。
最初に、ナビゲーション部122は、現在地(すなわち、移動端末120の現在の所在地)を示すデータを取得する(ステップ1311)。例えば、ナビゲーション部122は、GPS220からGPSデータ1310を取得してもよい。
次に、ナビゲーション部122は、ステップ1311で取得したデータに基づいて、現在地を示す地図を表示部250に表示する(ステップ1312)。このとき、ナビゲーション部122は、地図テーブル1320を参照して、地図の表示のために必要なデータを取得する。具体的には、ナビゲーション部122は、領域IDテーブル1260を参照して、現在の所在地が属する領域を特定し、その領域に含まれる道路及び背景に関するデータを道路テーブル1210及び注記・背景テーブル1230から取得する。なお、図13に示す地図テーブル1320は、図12Aから図12Fを参照して説明した地図テーブル126に相当する。
次に、ナビゲーション部122は、評価付き目的地を指定する(ステップ1313)。例えば、ユーザが操作部240を介して目的地を指定する情報を入力すると、ナビゲーション部122は、その入力された情報を検索キーとして外部施設テーブル1330を参照する。図13に示す外部施設テーブル1330は、図1に示す外部施設テーブル124(すなわち、図11に示す外部施設テーブル1100)に相当する。
例えば、ユーザが検索キーとして施設の住所「東京都武蔵野市」を入力した場合、ナビゲーション部122は、住所1103に「東京都武蔵野市」を含むエントリ1111を外部施設テーブル1330から取得し(図11参照)、取得したエントリに対応する施設(エントリ1111の場合、「元祖大和軒吉祥寺店」という名称の施設)の情報を表示部250に表示する。検索条件を満たす複数のエントリが取得された場合、それらの複数のエントリに対応する複数の施設の情報が表示される。このとき、各エントリに含まれる、施設の評価に関する情報(すなわち評価1109)も表示される。ユーザは、施設の評価を参考に、いずれかの施設を目的地として指定することができる。
ナビゲーション部122は、ステップ1313又は後述するステップ1314〜1315において、外部施設テーブル1330に格納された施設の情報(例えば、少なくとも施設の名称「大和軒」及び施設の評価「都内best5」)を、その施設の座標値1107に対応する地図上の位置に対応付けて表示してもよい。既に説明したように、座標値1107は移動端末120が保持する地図テーブル126と整合するため、施設の情報は地図上の正しい位置に対応付けて表示される。
ここで、施設の情報を、その施設の座標値1107に対応する地図上の位置に対応付けて表示することは、どのようにして実現されてもよい。例えば、施設の情報を含む文字列が、その地図上の位置を指し示す吹き出しの中に表示されてもよいし、施設の情報を含む文字列と、その地図上の位置を示す点と、それらを接続する線と、が表示されてもよい。
ユーザは、地図上の正しい位置に対応付けて表示された施設の評価を参照して、目的地を選択することができる。
ただし、内部施設テーブル1000を用いた外部施設データの補完が実行されなかった場合(すなわち、ステップ814で検索結果が0件であると判定された後、ステップ817が実行された場合)、座標値1107は移動端末120が保持する地図テーブル126と整合しない可能性がある(図11の説明参照)。したがって、このような場合、ナビゲーション部122は、表示された施設の情報が内部施設テーブル1000を用いて補完されたものでない旨を、例えばそのことを示すシンボルを用いて表示してもよい。
例えば、補完されていない情報が、補完された情報とは異なる色彩を用いて表示されてもよい。あるいな、補完されていない情報が、補完された情報とは異なるアイコンを用いて表示されてもよい。あるいは、補完されていない情報とともに、その情報が補完されていないことを通知する文字列等が表示されてもよい。
次に、ナビゲーション部122は、現在地から指定された目的地までの経路を探索する(ステップ1314)。この経路探索は、公知の方法によって実行することができる。例えば、ナビゲーション部122は、経路の始点(例えば現在地)及び終点(例えば指定された目的地)が決定すると、地図テーブル1320(図1に示す地図テーブル126に相当)に含まれる道路テーブル1210及び道路種別テーブル1220を参照して、最短経路に該当する道路データ列を算出する。すなわち、ナビゲーション部122は、リンクの集合を、リンクの経路長が重さとして付与された辺からなるグラフとして表し、ダイクストラ法に代表される計算をすることによって、最短経路を決定することができる。
次に、ナビゲーション部122は、ステップ1314において探索された経路に基づいて、ユーザを誘導する(ステップ1315)。具体的には、ナビゲーション部122は、表示部250を介して、ユーザを誘導するために必要な情報を出力する。
ステップ1314における経路探索及びステップ1315における誘導は、従来のカーナビゲーション端末において実行されるものと同等であるため、これらについての詳細な説明を省略する。
移動端末120が目的地に到着すると、ナビゲーション部122は、外部施設テーブル1330の信頼性を評価し、その評価の結果を外部施設テーブル1330に反映させる(ステップ1316)。ここで、外部施設テーブル1330の信頼性の評価とは、外部施設テーブル1330に格納されたデータの信頼性、例えば、名称1102と住所1103との対応関係が正しいか否か、又は、評価1109の値がユーザ自身による評価と一致するか否か、等の評価である。
既に説明したように、外部施設テーブル1330は、外部サーバ140から取得した外部施設データを、内部施設テーブル1000に格納された属性値を用いて補完することによって生成される。しかし、例えば、外部施設データを抽出する際の形態素解析(ステップ512)の誤り、又は、外部施設データに対応する内部施設テーブル840の検索(ステップ813)の誤り、等が原因で、外部施設テーブル1330に格納されたデータが誤っている可能性がある。
例えば、ステップ1315の誘導は、移動端末120が目的地付近に到着したときに終了する。しかし、上記のように外部施設テーブル1330に誤ったデータが格納されている場合、目的地として設定された住所に、目的地として設定された施設が存在しない場合がある。このような場合、誘導が終了したにもかかわらず、ユーザが目的地として設定された施設を発見できないために、目的地を探して移動を続けることが予想される。このため、ナビゲーション部122は、例えば、誘導が終了した後、移動端末120が所定の閾値より長い時間移動を続けた場合、外部施設テーブル1330に格納されている情報のうち、少なくともその施設の所在地の座標値1107が誤っていると判定することができる。
例えば、ステップ1316において座標値1107が誤っていると判定された場合、ナビゲーション部122は、目的地として設定された施設に関するエントリを外部施設テーブル1330から削除してもよい。
あるいは、ナビゲーション部122は、ステップ1316において座標値1107が誤っていると判定された場合、その施設に対応する評価1109に、その施設の所在地の座標値1107が誤っていると推定されることを示す情報を追加し、座標値1107が誤っていないと判定された場合、その施設に対応する評価1109に、その施設の所在地の座標値1107が正しいと推定されることを示す情報を追加してもよい。
例えば、評価1109に、座標値1107の信頼性の高さを示すポイントが追加されてもよい。ステップ1316において座標値1107が誤っていると判定された場合、その施設に対応するポイントが減算され、座標値1107が誤っていないと判定された場合、その施設に対応するポイントが加算されてもよい。
あるいは、ナビゲーション部122は、ステップ1315の誘導が終了した後にユーザが自動車を駐車した位置の座標値をGPS220から取得し、その座標値を、目的地として設定された施設の新たな座標値1107として外部施設テーブル1330に格納してもよい。
ここで、自動車を駐車した状態とは、自動車の運転者が施設を利用するために自動車を降りた状態を意味する。ナビゲーション部122は、運転者が自動車を離れることができる状態を、その自動車が駐車した状態として検出してもよい。例えば、ナビゲーション部122は、自動車のエンジンが停止した位置をユーザが自動車を駐車した位置と判定してもよいし、ユーザが自動車のハンドブレーキを使用し、その後所定の時間自動車が移動しなかった場合に、そのハンドブレーキが使用された位置を、ユーザが自動車を駐車した位置と判定してもよい。
ただし、誤ったデータが格納されることを防ぐため、ナビゲーション部122は、新たな座標値1107を格納するか否かを問い合わせる表示を表示部250に出力し、それに対して格納の許可が入力された場合、新たな座標値1107を格納してもよい。
一方、外部施設テーブル1330に格納された住所が正しかった場合、ユーザは、目的地に到着後、実際にその施設を利用する。その結果、ユーザは、外部施設テーブル1330の評価1109に格納された第三者による評価(例えば「都内best5」)とは別に、独自の評価(例えば、その施設がレストランである場合、「おいしい」等の評価)をする可能性がある。その場合、ユーザは、自らがその施設に下した評価を、操作部240を介して移動端末120に入力することができる。その場合、ステップ1316においてナビゲーション部122は、ユーザから入力された評価に関する情報を、目的地として設定された施設に対応する評価1109に追加してもよい。
上記の本発明の第1の実施形態によれば、外部施設データ統合部121は、ある施設に関する外部施設データ700を取得すると、その施設に関する情報を内部施設テーブル1000から抽出し、抽出された情報を用いて外部施設データ700を補完し、補完されたデータを外部施設テーブル1100に登録する(図8及び図9参照)。これによって、外部施設データの不完全な部分を適切に補完しつつ、外部施設データに含まれる施設の評価に関する情報をユーザに提供することができる。さらに、上記の補完によって外部施設データ700の座標値706が内部施設テーブル1000の座標値1007によって置き換えられるため、それぞれの座標値の算出の基礎となった地図情報の整備過程の相違に基づく座標値の誤差が解消される。これによって、施設の評価に関する情報を、地図上に正しく表示することができる。さらに、ユーザが外部施設テーブルにその信頼性を示す情報を追加することができる。
<第2の実施形態>
本発明の第1の実施形態では、図13のステップ1316において、外部施設テーブル1100に含まれる情報を利用したユーザが、その情報の信頼性を評価する。第2の実施形態では、このようにして信頼性を評価された情報を、他のユーザが利用できるように、ネットワークに接続されたサーバに格納する。
図14は、本発明の第2の実施形態の外部施設データ共有システムの構成を示すブロック図である。
本実施形態の外部施設データ共有システムは、サーバ1410、移動端末1420、外部施設データ共有サーバ1440、外部サーバ1450及びそれらを相互に接続するネットワーク1430を備える。
サーバ1410は、ネットワーク1430に接続された計算機である。本実施形態のサーバ1410は、外部情報参照部1411、外部施設データ抽出部1412、GUI部1413及び住所テーブル1414を備える。これらは、それぞれ、第1の実施形態の外部情報参照部111、外部施設データ抽出部112、GUI部113及び住所テーブル114と同等であるため、説明を省略する(図1参照)。
移動端末1420は、ユーザが持ち運ぶ情報端末であり、例えば自動車内に設置されるカーナビゲーション端末である。本実施形態の移動端末1420は、外部施設データ統合部1421、ナビゲーション部1422、GUI部1423、外部施設テーブル1424、内部施設テーブル1425及び地図テーブル1426を備える。これらは、それぞれ、第1の実施形態の外部施設データ統合部121、ナビゲーション部122、GUI部123、外部施設テーブル124、内部施設テーブル125及び地図テーブル126と同等であるため、説明を省略する(図1参照)。
なお、第1の実施形態と同様、第2の実施形態も、カーナビゲーション端末以外の端末、例えば、歩行者によって携帯される、いわゆるパーソナルナビゲーション端末等に適用することができる。
ネットワーク1430及び外部サーバ1450は、それぞれ、第1の実施形態のネットワーク130及び外部サーバ140と同等であるため、説明を省略する(図1参照)。
外部施設データ共有サーバ1440は、ネットワーク130に接続された計算機である。本実施形態の外部施設データ共有サーバ1440は、共有用外部施設テーブル1441を備える。共有用外部施設テーブル1441の詳細については後述する(図15参照)。
例えば、外部施設データ共有サーバ1440は、共有用外部施設テーブル1441に含まれる情報を提供するWebサーバであってもよい。外部施設データ共有サーバ1440は周知の技術によって実現できるため、その詳細な構成の説明は省略する。
図14には、外部サーバ1450と外部施設データ共有サーバ1440とが互いに独立している例を示すが、これらは一つの計算機によって実現されてもよい。
サーバ1410及び移動端末1420のハードウェア構成は、第1の実施形態のサーバ110及び移動端末120のハードウェア構成と同様であるため、説明を省略する(図2及び図3参照)。外部サーバ1450及び外部施設データ共有サーバ1440は、サーバ1410と同様の計算機によって実現されてもよい。その場合、外部施設データ共有サーバ1440は、二次記憶装置360と同様の記憶装置(図示省略)を備え、その記憶装置に共有用外部施設テーブル1441が格納される。
図15は、本発明の第2の実施形態の共有用外部施設テーブルの説明図である。
図15に示す共有用外部施設テーブル1500は、図14に示す共有用外部施設テーブル1441に相当する。
共有用外部施設テーブル1500は、内部施設データID1501、名称1502、住所1503、郵便番号1504、電話番号1505、生成日時1506、座標値1507及び評価1509を含む。これらは、それぞれ、第1の実施形態の外部施設テーブル1100の内部施設データID1108、名称1102、住所1103、郵便番号1104、電話番号1105、生成日時1106、座標値1107及び評価1109と同様であるため、詳細な説明を省略する。
ただし、共有用外部施設テーブル1500に格納された情報には、ユーザによる信頼性の評価の結果が反映されている。図15は、図11に示す外部施設テーブル1100に、ユーザによる信頼性の評価の結果を反映することによって作成されたものを示す。
具体的には、共有用外部施設テーブル1500のエントリ1511の内部施設データID1501、名称1502、住所1503、郵便番号1504、電話番号1505、生成日時1506及び座標値1507は、それぞれ、図11に示す外部施設テーブル1100のエントリ1111の内部施設データID1108、名称1102、住所1103、郵便番号1104、電話番号1105、生成日時1106及び座標値1107と同一である。これは、エントリ1111に含まれる上記の属性値が正確であると評価されたことを示す。
さらに、エントリ1511の評価1519の値として、{“都内best5”、“おいしい”}が格納されている。これは、外部施設テーブル1100を利用してエントリ1111に対応する施設を実際に訪れたユーザが、“おいしい”という評価を追加したことを示す。
図16は、本発明の第2の実施形態のナビゲーション部1422が実行する外部施設データ共有処理を示すフローチャートである。
図16に示すGPSデータ1610、地図テーブル1620及び外部施設テーブル1630は、それぞれ、図13に示すGPSデータ1310、地図テーブル1320及び外部施設テーブル1330と同等である。
図16に示す処理のうち、ナビゲーション部1422がGPSデータ1610を取得する処理(ステップ1611)、及び、ナビゲーション部1422が現在地を示す地図を表示する処理(ステップ1612)は、それぞれ、図13のステップ1311及びステップ1312と同様である。
ステップ1612の次に、ナビゲーション部1422は、評価付き目的地を指定する(ステップ1613)。このとき、ナビゲーション部1422は、図13のステップ1313と同様の検索を、外部施設テーブル1630だけでなく、共有用外部施設テーブル1631についても実行する。
例えば、ナビゲーション部1422は、ユーザによって入力された検索キーを含む検索要求を、ネットワーク1430を介して外部施設データ共有サーバ1440に送信してもよい。外部施設データ共有サーバ1440は、受信した検索要求に従って検索を実行し、その結果を移動端末1420に送信する。
あるいは、ユーザは、例えばサーバ1410を操作して、あらかじめ外部施設データ共有サーバ1440から共有用外部施設テーブル1631に格納された情報の少なくとも一部を取得し、取得した情報をメモリカード(図示省略)等に格納し、そのメモリカード等を移動端末1420に接続してもよい。この場合、ナビゲーション部1422は、ステップ1613において、メモリカードに格納された情報についても検索を実行する。
図16に示す共有用外部施設テーブル1631は、図14に示す共有用外部施設テーブル1441(すなわち、図15に示す共有用外部施設テーブル1500)に相当する。ユーザは、これらのテーブルの検索結果として取得されたエントリに対応するいずれかの施設を目的地として指定する。ユーザは、外部施設テーブル1630から取得されたエントリに対応する情報を目的地として指定してもよいし、共有用外部施設テーブル1631から取得されたエントリに対応する情報を目的地として指定してもよい。
次に、ナビゲーション部1422は、現在地から指定された目的地までの経路を探索し(ステップ1614)、その経路に基づいてユーザを誘導する(ステップ1615)。これらの処理は、それぞれ、図13のステップ1314及びステップ1315と同様である。
次に、ナビゲーション部1422は、ステップ1613において指定された外部施設テーブル1630又は共有用外部施設テーブル1631のエントリの信頼性を評価し、その評価の結果を外部施設テーブル1630及び共有用外部施設テーブル1631に反映させる。この評価は、図13のステップ1316における評価と同様の方法で実行される。ナビゲーション部1422は、ネットワーク1430を介して評価の結果を外部施設データ共有サーバ1440に送信することによって、その評価の結果を共有用外部施設テーブル1631に反映させる。
上記のように、本発明の第2の実施形態によれば、外部施設テーブル1424の信頼性をユーザが評価し、その評価の結果を共有用外部施設テーブル1441として他のユーザと共有する。これによって、各ユーザは、施設に関する、より信頼性の高い情報を利用することができる。