ここでは、下記の順序に従って本発明の実施の形態について説明する。
(1)ナビゲーションシステムの構成:
(2)検索処理:
(3)他の実施形態:
(1)ナビゲーションシステムの構成:
図1は、本発明の一実施形態であるナビゲーションシステム10の構成を示すブロック図である。ナビゲーションシステム10は、CPU、RAM、ROM等を備える制御部20を備えており、制御部20は、当該ROMやローカル記録媒体30に記録された所望のプログラムを実行することができる。本実施形態においては、このプログラムの一つとしてナビゲーションプログラムを実行可能である。当該ナビゲーションプログラムは、ディスプレイに現在地と現在地周辺の地図を表示する機能と目的地までの経路を探索して案内する機能を制御部20に実現させることができる。
また、ナビゲーションプログラムは、検索プログラムを含んでおり、制御部20は、検索プログラム21の処理により、利用者が指示した検索情報に基づいて施設を検索する機能を実行する。本実施形態において施設は、目的地や目印等として利用可能であり、施設を示す情報は、ナビゲーションシステム10と外部システム50とに記録されている。すなわち、ナビゲーションシステム10が備えるローカル記録媒体30には、ローカルデータベース30aが記録されている。また、外部システム50は外部データベース50aが記録された図示しない外部記録媒体を備えている。施設を示す情報は、これらのローカルデータベース30aと外部データベース50aとに記録されている。
ナビゲーションシステム10が使用される車両は、GPS受信部41と車速センサ42とジャイロセンサ43とユーザI/F部44と通信部45とを備えている。GPS受信部41は、GPS衛星からの電波を受信し、図示しないインタフェースを介して車両の現在地を算出するための信号を出力する。車速センサ42は、車両が備える車輪の回転速度に対応した信号を出力する。制御部20は、図示しないインタフェースを介してこの信号を取得し、車速を取得する。ジャイロセンサ43は、車両の水平面内の旋回についての角加速度を検出し、車両の向きに対応した信号を出力する。
制御部20は、この信号を取得して車両の進行方向を取得する。制御部20は、車速センサ42およびジャイロセンサ43等の出力信号に基づいて車両の走行軌跡を特定することで車両の現在地を取得する。GPS受信部41の出力信号は、車速センサ42およびジャイロセンサ43等から特定される車両の現在地を補正するなどのために利用される。
ユーザI/F部44は、利用者に種々の情報を提供し、また、利用者から種々の入力を受け付けるためのインタフェース部であり、図示しないディスプレイや操作入力部、スピーカー、マイク等を備えている。制御部20は、ナビゲーションプログラムの機能により、当該車両の現在地周辺の地図や経路、施設の検索結果等をディスプレイに表示することができる。また、制御部20は、検索プログラム21の機能により施設検索を行うことができ、施設検索を行うためのインタフェースをディスプレイに表示させ、当該インタフェースを介して施設検索を行うために行った利用者の入力操作を特定することができる。
通信部45は、外部システム50と無線通信するための回路を備えており、制御部20と外部システム50の間では、通信部45を介して任意の情報が授受される。本実施形態において、制御部20は、検索対象を検索するための検索情報(検索ワードや検索条件等)を、通信部45を介して外部システム50に対して送信することができる。また、制御部20は、通信部45を介して検索対象を取得することができる。
外部システム50は図示しない外部記録媒体を備えており、当該外部記録媒体には外部データベース50aが記録されている。外部システム50が、制御部20から検索情報を取得すると、外部システム50は、外部データベース50aに基づいて当該検索情報が示す検索条件に合致した検索結果や、当該検索情報が示す検索ワードを含む検索結果を取得する。検索情報に対応した検索対象は検索結果としてナビゲーションシステム10に対して送信される。制御部20は、通信部45を介して、当該検索結果を受信することができる。
ローカル記録媒体30には、ローカルデータベース30aが記録されている。ローカルデータベース30aには、現在地の特定や施設の検索、地図の描画等に利用される地図情報が含まれている。具体的には、ローカルデータベース30aは、道路上に設定されたノードの位置等を示すノードデータ,ノード間の道路の形状を特定するための形状補間点データ,ノード同士の連結を示すリンクデータ,道路やその周辺に存在する施設の位置、属性および名称等を示す施設データ等を含んでいる。従って、施設データは、複数個の施設のそれぞれに関するレコードによって構成され、各レコードに対して位置、属性、名称等の複数の項目毎の情報が対応づけられたデータである。なお、本実施形態において各施設の属性には、施設の種類、例えば、レストラン、コンビニエンスストア、公共施設等を示す情報が対応づけられている。
なお、外部システム50が備える外部データベース50aにも施設データが含まれている。ただし、外部データベース50aに含まれる施設データは、ローカルデータベース30aに含まれる施設データと比較して情報量が多く、また情報が新しい可能性が高い。本実施形態において外部システム50は、一台または少数台で多数のナビゲーションシステム10からの検索要求を受け付ける。そして、ローカルデータベース30aは、ナビゲーションシステム10の販売段階でローカル記録媒体30に記録されている。
本実施形態において、外部データベース50aおよびローカルデータベース30aは、ともに更新され得る。ローカルデータベース30aは各ナビゲーションシステム10の利用者の操作や設定、利用者の意図等に従って更新され得るが、外部データベース50aは外部システム50の管理者によって管理、更新され得る。従って、外部データベース50aの更新は複数の利用者が利用する全てのローカルデータベース30aの更新よりも容易である。このため、外部データベース50aにおいては、ローカルデータベース30aよりも早く、施設データに対して付加される情報(おすすめ度合いを示す属性情報等)や、新設された施設データを示す情報等が追加される可能性が高い。
そこで、本実施形態において、制御部20は、外部データベース50aから取得された検索結果を優先的に表示する。具体的には、制御部20は、検索の過程で検索結果が外部データベース50aから取得された場合に、外部データベース50aから取得された情報をユーザI/F部44のディスプレイに表示させ、ローカルデータベース30aから取得された情報は表示させない。
このような検索を行うために、検索プログラム21は、検索情報受付部21aとローカル検索部21bと外部検索部21cと検索結果表示部21dと検索データベース選択部21eとを備えている。検索情報受付部21aは、検索対象を検索するための検索情報の連続的な入力を受け付ける機能を制御部20に実現させるプログラムモジュールである。すなわち、制御部20は、ユーザI/F部44に制御信号を出力して施設検索を行うためのインタフェースをディスプレイに表示させる。また、制御部20は、当該ユーザI/F部44を利用した利用者の入力を受け付ける。
本実施形態におけるインタフェースには、一文字ずつ検索情報を示す文字を入力することが可能であり、利用者は、文字が入力された後の所望のタイミングで文字を追加入力することができる。従って、本実施形態におけるインタフェースは、検索情報の連続的な入力が可能であり、制御部20は、入力された文字によって構成される文字列を検索情報として取得する。なお、検索情報は、検索対象を検索するための情報であれば良く、本実施形態において利用者は、検索ワードと検索条件とのいずれかまたは双方を検索情報として入力することが可能である。
ローカル検索部21bは、検索情報に基づいてローカルデータベースを検索する機能を制御部20に実現させるプログラムモジュールである。すなわち、制御部20は、ナビゲーションシステム10が備えるローカルデータベース30aを参照し、検索情報に基づいて検索対象を検索する。すなわち、検索情報が検索ワードであれば、制御部20は、当該検索ワードに一部一致する施設をローカルデータベース30aから検索する。検索情報が検索条件(例えば、指定属性の施設検索等)であれば、制御部20は、当該検索条件に合致する施設をローカルデータベース30aから検索する。検索情報が検索ワードおよび検索条件であれば、制御部20は、当該検索ワードに一部一致し、かつ、検索条件に合致する施設をローカルデータベース30aから検索する。
外部検索部21cは、通信を利用して検索情報に基づいて外部データベース50aを検索する機能を制御部20に実現させるプログラムモジュールである。すなわち、制御部20は、通信部45を介して検索情報を外部システム50に送信する。この結果、外部システム50は、外部データベース50aを参照し、検索情報に基づいて検索対象を検索する。検索対象が取得されると、外部システム50は、ナビゲーションシステム10に対して当該検索対象を検索結果として送信する。制御部20は、通信部45を介して当該検索結果を取得する。
なお、外部システム50における検索は制御部20における検索と同様のアルゴリズムで実行される。また、検索情報に対応する検索対象が外部データベース50aに存在しない場合、外部システム50は検索結果が0件であることを示す情報をナビゲーションシステム10に対して送信する。この結果、制御部20は、検索結果が0件であることを特定することができる。
外部データベース50aの参照において制御部20は、通信部45を介して外部システム50と通信を行う。従って、制御部20は、通信エラーによって検索結果を取得できない場合がある。すなわち、通信部45による無線通信においては、電波障害による通信障害や、外部システム50がビジーであることによる通信のタイムアウト等が発生し得る。この場合、制御部20は、通信エラーにより外部システム50から検索結果を取得することができない。
なお、本実施形態において、制御部20は、ローカル検索部21bおよび外部検索部21cの処理により、検索情報が1文字追加されるたびに検索情報に基づく検索を行う。ただし、1文字目の入力後、他の文字の追加によって検索情報が追加された場合、制御部20は、追加された後の検索情報に基づいてローカルデータベース30aおよび外部データベース50aの少なくとも一方を参照して検索を行う。ここでは、当該2文字目以降の検索を再検索と呼ぶ。
検索結果表示部21dは、ユーザI/F部44のディスプレイに検索結果を表示させるプログラムモジュールである。具体的には、外部データベース50aの検索結果が取得されなかった場合、制御部20はユーザI/F部44に制御信号を出力し、ローカルデータベース30aの検索結果をディスプレイに表示する。
すなわち、通信エラーが発生した場合、外部データベース50aから検索結果が取得されないが、ローカルデータベース30aからは通信部45における無線通信の状況にかかわらず検索結果が得られる。そこで、外部データベース50aの検索結果が取得されなかった場合、制御部20がローカルデータベース30aの検索結果をディスプレイに表示する構成を採用することで、確実に検索結果を表示する(エラーにより検索結果不明とならない)ことが可能である。むろん、検索結果が不存在の場合、検索情報に対応した検索結果は表示されないが、この場合でも検索結果が0件であるという情報は表示される。
一方、外部データベース50aの検索結果が取得された場合、制御部20はユーザI/F部44に制御信号を出力し、外部データベース50aの検索結果をディスプレイに表示する。この場合、本実施形態において制御部20は、ローカルデータベース30aの検索結果を表示しない。すなわち、外部データベース50aの検索結果が取得された場合において制御部20は、更新される頻度が高いと推定され、新しく、価値の高い情報が蓄積されている可能性が高い外部データベース50aの検索結果を、優先的にディスプレイに表示する。この結果、高い価値の情報を優先的に表示することができる。
検索データベース選択部21eは、外部データベース50aの検索結果が取得されなかった原因に応じて再検索の際に参照先となるデータベースを切り替える機能を制御部20に実現させるプログラムモジュールである。すなわち、外部データベース50aの検索結果が取得されなかった原因が通信のエラーであったならば、すぐに通信を行っても再度エラーになる可能性が高いと推定される。そこで、この場合、制御部20は、ローカルデータベース30aを参照先として選択し、通信を利用した外部データベース50aの検索を行わせない。すなわち、制御部20は、再検索の際にローカル検索部21bの機能による検索を実行し、外部検索部21cの機能による検索は実行しない。
一方、外部データベース50aの検索結果が取得されなかった原因が検索結果の不存在であった場合(検索結果が0件であった場合)、検索情報の追加によって検索情報が変化すると、外部データベース50aから検索情報に対応した検索対象が取得される可能性がある。すなわち、本実施形態において検索情報は、検索ワードと検索条件との少なくとも一方であり、検索情報を1文字ずつ連続的に入力することができる。従って、本実施形態においては、例えば、検索ワードの少なくとも一部を入力した後に、検索条件の入力を行うなどの入力態様で入力が可能である。
このような入力態様で入力が行われる構成において、例えば、検索ワードの一部を一文字ずつ入力した後に検索条件を一文字ずつ入力した場合に、検索条件の入力がある程度進むまで検索結果が不存在となるが、検索条件の入力がある程度進んだ場合に検索結果が1件以上になるなどの状況が発生し得る。例えば、検索ワードの後に「ある住所の近く」という検索条件を入力する場合、検索条件の入力当初には検索結果が不存在となり、検索条件の入力が進むと(または完了すると)検索結果が1件以上になるという状況が発生し得る。
このため、外部データベース50aの検索結果が取得されなかった原因が検索結果の不存在であり、検索結果が存在しない状況が発生した後に外部データベース50aとの通信を禁止する構成であると、検索ワードに続けて検索条件の入力が行われた場合に高い価値の情報が記録されている可能性の高い外部データベース50aを参照できない。しかし、本実施形態において制御部20は、外部データベース50aの検索結果が取得されなかった原因が検索結果の不存在であっても、外部データベース50aを再検索の際の参照先とする。
すなわち、制御部20は、外部検索部21cの機能により、通信部45を介して再検索のための検索情報を外部システム50に送信して外部データベース50aの検索を行い、検索結果を取得する。従って、検索ワードに続けて検索条件の入力が行われた場合に高い価値の情報が記録されている可能性の高い外部データベース50aを参照することができる。なお、本実施形態においては、外部データベース50aの検索結果が取得されなかった原因が検索結果の不存在である場合、制御部20は、ローカルデータベース30aの検索も実行する。すなわち、制御部20は、ローカル検索部21bの機能により、再検索のための検索情報に基づいてローカルデータベース30aの検索を行う。
なお、再検索によって検索結果が取得されると、制御部20は、検索結果表示部21dの機能により、ユーザI/F部44に制御信号を出力し、ディスプレイに検索結果を表示させる。また、再検索の前に外部データベース50aの検索結果が取得されていた場合、制御部20は、検索データベース選択部21eの機能により、再検索の際に、外部データベース50aとローカルデータベース30aとの双方を参照するように設定する。
以上のように無線通信によって外部データベース50aを参照する本実施形態にかかる構成において、外部データベース50aの検索結果が取得されなかった原因が通信のエラーであった場合、通信のエラーが解消しない状態で再度外部データベース50aが参照されると、再度の通信のエラーを誘発し、待機時間を過度に増加させてしまう。そこで、本実施形態においては、再検索が行われる場合、再検索前に外部データベース50aの検索結果が取得されなかった原因が通信のエラーであったならば、外部データベース50aの検索は行われず、ローカルデータベース30aの検索が行われる。この結果、レスポンスの高速化が可能である。
一方、外部データベース50aの検索結果が取得されなかった原因が検索結果の不存在であった場合、追加前の検索情報と異なる検索情報で検索が行われることにより検索結果が存在する状態になり得る。そこで、本実施形態においては、再検索が行われる場合、再検索前に外部データベース50aの検索結果が取得されなかった原因が検索結果の不存在であったならば、外部データベース50aとローカルデータベース30aによって検索が行われる。この結果、外部データベース50aの有効利用を実現することが可能になる。以上のような本実施形態によれば、レスポンスの高速化と外部データベース50aの有効利用とを両立させることが可能である。
(2)検索処理:
次に、制御部20が実行する検索処理を説明する。検索処理は、検索プログラム21に記述された処理の一部であり、検索プログラム21の実行が開始されると、制御部20は、一定期間毎(例えば、100ms毎)に図2に示す検索処理を実行する。検索処理が開始されると、制御部20は、検索情報受付部21aの処理により、入力を受け付ける(ステップS100)。すなわち、制御部20は、ユーザI/F部44に制御信号を出力して施設検索を行うためのインタフェースをディスプレイに表示させる。また、制御部20は、当該ユーザI/F部44を利用した利用者の入力を受け付ける。
図3A,図3Bは、施設検索を行うためのインタフェースの例を示している。これらの例において利用者は、英語の文字を1文字ずつ入力することにより、検索ワードや検索条件を順次特定していくことができる。むろん、言語は英語に限定されず、他の言語であってもよい。図3Aは、ステップS100において表示されるインタフェースの例である。
同図3Aにおいては、文字入力部45aに下線を付したアルファベットが1文字ずつ表示されており、利用者は、任意の1文字を選択することによって入力する文字を指示することができる。制御部20は、当該指示された文字を特定し、ユーザI/F部44に対して制御信号を出力することで、文字が入力された順にこれらの文字を検索情報表示部45bに表示する。
なお、検索情報表示部45bには、初期状態で「どこへ行きたいですか?」という趣旨の質問文が表示されているが、文字入力部45aによる入力が開始されると質問文は消去され、入力された文字が表示される。図3Bは、検索ワードとしての文字A,A,sが順番に入力された場合の例を示している。本実施形態においては、検索ワード以外に検索条件を文字入力することも可能である。例えば、検索ワードとしての「AAshop」の後に「near BBCity」などの検索条件を入力することができる。また、図3A,図3Bに示すインタフェースは、空白を入力するための空白入力部45c、検索情報表示部45bに入力された検索情報での検索を指示する検索指示部45d、検索開始前の状態に戻るための指示を行う指示部45eを備えている。
次に制御部20は、検索データベース選択部21eの処理により、通信失敗フラグがONであるか否かを判定する(ステップS105)。通信失敗フラグは新たな検索の開始とともにOFFに初期化され(検索完了またはキャンセルまで再度初期化されない)、通信のエラーによって通信が失敗した場合にONに設定される。制御部20は、当該通信失敗フラグがONになっているか否かを判定することにより、検索開始後に外部システム50との通信が通信障害や通信タイムアウト等のエラーによって失敗していたか否かを判定する。
ステップS105において、通信失敗フラグがONになっていると判定されない場合、すなわち、通信のエラーが発生していなかった場合、制御部20は、ローカルデータベース30aおよび外部データベース50aを参照して検索情報に対応した検索対象を検索する(ステップS110)。具体的には、制御部20は、検索データベース選択部21eの処理により、ローカルデータベース30aおよび外部データベース50aを参照先に設定する。この設定を受けて、制御部20は、ローカル検索部21bの処理により、ローカルデータベース30aを参照し、入力済の検索情報(検索ワードや検索条件)に合致する施設を検索する。検索結果として施設が1件以上得られた場合、制御部20は、得られた施設を検索結果として取得する。
また、制御部20は、外部検索部21cの処理により、入力済の検索情報を、通信部45を介して外部システム50に対して送信する。外部システム50は、外部データベース50aを参照し、入力済の検索情報に合致する施設を検索する。検索結果として施設が1件以上得られた場合、外部システム50は当該施設を示す情報をナビゲーションシステム10に対して送信する。制御部20は、通信部45を介して当該施設を検索結果として取得する。
一方、ステップS105において、通信失敗フラグがONになっていると判定された場合、すなわち、通信がエラーによって失敗していた場合、制御部20は、ローカルデータベース30aを参照して検索対象を検索する(ステップS115)。具体的には、制御部20は、検索データベース選択部21eの処理により、ローカルデータベース30aを参照先に設定する。また、制御部20は、ローカル検索部21bの処理により、ローカルデータベース30aを参照し、入力済の検索情報(検索ワードや検索条件)に合致する施設を検索する。検索結果として施設が1件以上得られた場合、制御部20は、得られた施設を検索結果として取得する。この場合、制御部20は、通信を行わず、外部データベース50aを参照しない。
ステップS110またはS115において検索対象が検索されると、制御部20は、検索データベース選択部21eの処理により、外部データベース50aから検索結果が取得されたか否かを判定する(ステップS120)。すなわち、ステップS110の処理において外部データベース50aから1件以上の施設が検索結果として取得された場合に、制御部20は、外部データベース50aから検索結果が取得されたと判定する。
ステップS120において、外部データベース50aから検索結果が取得されたと判定された場合、制御部20は、検索結果表示部21dの処理により、外部データベース50aから取得された検索結果を表示する(ステップS125)。すなわち、制御部20は、ユーザI/F部44に制御信号を出力し、ステップS110で取得された検索結果の中で、外部データベース50aから取得された検索結果を抽出し、インタフェース上にリスト表示させる。
一方、ステップS120において、外部データベース50aから検索結果が取得されたと判定されない場合、制御部20は、検索結果表示部21dの処理により、ローカルデータベース30aから取得された検索結果を表示する(ステップS130)。すなわち、ステップS110において外部データベース50aの検索結果の不存在であった場合や新たな通信エラーの発生等により外部データベース50aから検索結果が取得されなかった場合やステップS115が実行された場合には、制御部20がステップS130を実行する。
この場合、外部データベース50aから検索結果は取得されていないため、制御部20は、ユーザI/F部44に制御信号を出力し、ステップS110またはS115においてローカルデータベース30aから取得された検索結果をインタフェース上にリスト表示させる。なお、図3Bにおいては、ステップS125またはステップS130において、検索結果がユーザI/F部44のディスプレイ上のリスト表示部45fに表示された例を示している。
図3Bにおいては、検索情報として文字列AAsが入力済である状態が想定されており、これらの文字列が検索ワードとなって施設が検索された結果、「AAship」、「AAshop」,「AAstore」という名称の施設が検索結果として取得された例が示されている。なお、リスト表示部45fにおける表示態様は、種々の態様を採用可能であり、同一名称の施設が複数個検索された場合、1個の選択肢として表示されてもよいし、各施設が複数個の選択肢として表示されてもよい。また、同一名称の施設が複数個検索された場合において、他の検索条件が付加された場合に、当該検索条件に合致する施設が複数個の選択肢として表示されてもよい。
ステップS125が実行されると、制御部20は、検索処理を終了する。ステップS130が実行されると、制御部20は、検索データベース選択部21eの処理により、通信タイムアウトが発生したか否かを判定する(ステップS135)。すなわち、本実施形態において制御部20は、通信部45を介して通信が行った場合に、予め決められた期間以上外部システム50から応答がなければ通信タイムアウトと見なして通信を中断する。そこで、ステップS135において制御部20は、ステップS110において実行した外部システム50との通信において通信タイムアウトが発生したか否かを判定する。
ステップS135において、通信タイムアウトが発生したと判定されない場合、制御部20は、検索処理を終了する。この場合、外部システム50の外部データベース50aには、検索情報に対応した検索対象が記録されていなかった状態であるため、制御部20は、通信失敗フラグをOFFからONに切り替えることなく(既にONである場合はONを維持)、検索処理を終了する。ステップS135において、通信タイムアウトが発生したと判定された場合、通信のエラーが発生していたと見なし、制御部20は、検索データベース選択部21eの処理により、通信失敗フラグをONに設定する(ステップS140)。
なお、利用者が検索指示部45dを選択した場合、制御部20は、検索情報表示部45bに入力されている文字列を検索情報としてローカルデータベース30aおよび外部データベース50aから検索対象を検索する。検索結果が得られた場合、ディスプレイに表示させる。従って、本実施形態において、利用者は、任意のタイミングでローカルデータベース30aおよび外部データベース50aを参照先とした検索を指示することができる。
(3)他の実施形態:
以上の実施形態は本発明を実施するための一例であり、外部データベースの検索結果が取得されなかった原因に応じて再検索の際の参照先のデータベースを切り替える限りにおいて、他にも種々の実施形態を採用可能である。例えば、ナビゲーションシステム10とともに移動する移動体は任意であり、車両であっても良いし、歩行者であっても良く、種々の例が想定される。また、検索システムは、車両等に搭載された装置であっても良いし、可搬型の端末によって実現される装置であっても良いし、複数の装置(例えば、クライアントとサーバ)によって実現されるシステムであっても良い。
さらに、検索システムを構成する検索情報受付部21a、ローカル検索部21b、外部検索部21c、検索結果表示部21d、検索データベース選択部21eの少なくとも一部が複数の装置に分かれて存在していても良い。むろん、上述の実施形態の一部の構成が省略されてもよいし、処理の順序が変動または省略されてもよい。
検索情報受付部は、検索対象を検索するための検索情報の連続的な入力を受け付けることができればよい。検索情報は、検索対象を検索するための情報であれば良く、検索対象の絞込に寄与する情報が検索情報となりえる。検索情報の態様は、種々の態様を採用可能であり、例えば、検索対象に対応づけられた文字等の情報(検索ワード)や検索条件が検索情報となり得る。検索情報は、連続的な入力が可能であれば良く、入力済の検索情報に対して他の情報を追加して入力可能であれば良い。
ローカル検索部は、検索情報に基づいてローカルデータベースを検索することができればよい。すなわち、ローカル検索部は、検索システムが備えるローカルデータベースを参照し、検索情報に基づいて検索対象を検索することができればよい。なお、ローカルデータベースの参照においては、検索システムの外部との通信(電波障害等のエラーが発生し得る通信)は発生しない。
外部検索部は、通信を利用して検索情報に基づいて外部データベースを検索することができればよい。すなわち、外部検索部は、検索システムの外部に存在する外部データベースを参照し、検索情報に基づいて検索対象を検索することができればよい。なお、外部データベースの参照においては、検索システムの外部との通信が発生するが、この通信においては通信障害や外部の装置の不応答等のエラーが発生し得る。
ローカル検索部および外部検索部は、検索情報に基づいて検索を行うが、検索情報が追加された場合、ローカル検索部および外部検索部の少なくとも一方が追加された後の検索情報に基づいて検索を行う。従って、検索情報受付部において検索情報の連続的な入力が受け付けられると、検索情報の追加に伴って再検索が行われる。なお、再検索が行われる頻度は任意であり、予め決められた頻度で、例えば、検索情報に対して追加された情報量が既定の量以上である場合に、再検索が行われる構成等であってよい。
検索結果表示部は、外部データベースの検索結果が取得されなかった場合、ローカルデータベースの検索結果をディスプレイに表示し、外部データベースの検索結果が取得された場合、外部データベースの検索結果をディスプレイに表示することができればよい。すなわち、複数の検索システムからアクセスされ得る装置(サーバ等)が備える外部データベースは、当該装置の管理者によって管理、更新され得るが、ローカルデータベースは各検索システムの所有者によって管理、更新され得る。従って、一元的な管理が行われる外部データベースの更新はローカルデータベースの更新よりも容易であり、外部データベースにおいては、ローカルデータベースよりも早く、情報が追加される可能性が高いため、一般的には外部データベースの方がローカルデータベースよりも価値の高い情報が記録されている。
そこで、外部データベースの検索結果が取得された場合、検索結果表示部が、外部データベースの検索結果をディスプレイに表示することで、高い価値の情報を表示することができる。なお、この場合、ローカルデータベースの検索結果は、表示されて無くてもよいし、表示されてもよい。後者の場合、外部データベースの検索結果が優先的に表示される構成とすることができる。
一方、通信の状況によっては外部データベースの検索結果が得られない場合があるが、ローカルデータベースからは通信の状況にかかわらず検索結果が得られる。そこで、外部データベースの検索結果が取得されなかった場合、ローカルデータベースの検索結果をディスプレイに表示することで、確実に検索結果を表示する(エラーにより検索結果不明とならない)ことが可能である。むろん、検索結果が不存在の場合、検索情報に対応した検索結果は表示されないが、この場合でも検索結果が0件であるという情報は表示される。
検索データベース選択部は、外部データベースの検索結果が取得されなかった原因に応じて再検索の際に参照先となるデータベースを切り替える事ができればよい。すなわち、外部データベースの検索結果が取得されなかった原因が通信のエラーであったならば、すぐに通信を行っても再度エラーになる可能性が高いと推定される。そこで、この場合、検索データベース選択部は、ローカルデータベースを参照先として選択し、通信を利用した外部データベースの検索を行わせない。すなわち、検索データベース選択部は、ローカル検索部に検索を行わせ、外部検索部には検索を行わせない。
一方、外部データベースの検索結果が取得されなかった原因が検索結果の不存在であった場合、検索情報の追加によって検索情報が変化すると、外部データベースから検索情報に対応した検索結果が取得される可能性がある。そこで、検索データベース選択部は、通信を利用した外部データベースの検索を行わせる。すなわち、検索データベース選択部は、外部検索部に検索を行わせる。この場合、検索データベース選択部は、ローカル検索部に検索を行わせてもよいし、行わせなくてもよい。
なお、再検索の前に外部データベースの検索結果が取得されていた場合、検索データベース選択部は、検索によって価値の高い情報が得られるように、再検索の際に外部データベースが参照されることが好ましい。また、以上のようにして再検索が行われた場合、検索結果表示部は、再検索で取得された検索結果をディスプレイに表示する。
さらに、検索情報受付部は、検索対象に対応づけられた検索ワードと、検索対象を検索する検索条件とを受け付けることが可能である構成であってもよい。すなわち、検索情報受付部は、連続的な入力によって、検索ワードと検索条件とを受け付けることが可能である。この構成においては、検索ワードの少なくとも一部を入力した後に、検索条件の入力を行うなどの入力態様で入力が可能である。
従って、例えば、検索情報を一文字ずつ入力する構成において、検索ワードの一部を一文字ずつ入力した後に検索条件を一文字ずつ入力した場合に、検索条件の入力がある程度進むまで検索結果が不存在となるが、検索条件の入力がある程度進んだ場合に検索結果が1件以上になるなどの状況が発生し得る。このため、外部データベースの検索結果が取得されなかった原因が検索結果の不存在であり、検索結果が存在しない状況が発生した後に外部データベースとの通信を禁止する構成であると、検索ワードに続けて検索条件の入力が行われた場合に高い価値の情報が記録されている可能性の高い外部データベースを参照できない。しかし、外部データベースの検索結果が取得されなかった原因が検索結果の不存在である場合に、再検索の際の参照先が外部データベースとされる構成であれば、検索ワードに続けて検索条件の入力が行われた場合に高い価値の情報が記録されている可能性の高い外部データベースを参照することができる。
さらに、本発明のように、外部データベースの検索結果が取得されなかった原因に応じて再検索の際の参照先のデータベースを切り替える手法は、プログラムや方法としても適用可能である。また、以上のようなシステム、プログラム、方法は、単独の装置として実現される場合や、複数の装置によって実現される場合が想定可能であり、各種の態様を含むものである。例えば、以上のような手段を備えたナビゲーションシステムや方法、プログラムを提供することが可能である。また、一部がソフトウェアであり一部がハードウェアであったりするなど、適宜、変更可能である。さらに、システムを制御するプログラムの記録媒体としても発明は成立する。むろん、そのソフトウェアの記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。