(57)【要約】【課題】データ検索で所望データを見つけ出すのに要する時間と手間を削減する。【解決手段】トリー型階層状のディレクトリ構造をもった検索用のデータベースが用意される。このトリー型階層状のディレクトリ構造は、ユーザが１文字入力する都度に、その入力文字を使ってディレクトリの枝をより下層へと進んでいくことにより、自ずと、ユーザの入力した複数の文字から構成される検索キーにマッチする全てのデータが記述された目的のファイルに最終的に到達できるように構成されている。目的ファイルに到達するまで、サーチを行なう必要が無い。目的ファイルを読み込み、後は、目的ファイル内のデータの中から所望データをサーチする。目的ファイル内のデータ数は、所定の最大値以下に制限されているから、サーチに時間はかからない。【選択図】　　　　図５
2004062567.tif 000002
【特許請求の範囲】
【請求項１】
多数のデータを蓄積したデータベースと、
検索キーを構成するキー要素を入力するための入力手段と、
前記入力手段から入力された検索キーにマッチするデータを前記データベースから検索する検索手段と
を備え、
前記データベースは、ルートディレクトリを起点とするトリー型階層状のディレクトリ構造を有し、前記ディレクトリ構造内の前記ルートディレクトリより下の各層は、入力され得る複数のキー要素にそれぞれマッチした複数のデータ・グループにそれぞれ対応した複数の枝に分かれ、それら複数の枝の各々は、その枝に対応するデータ・グループに属するデータ数が所定最大値以下であれば、その枝に対応するデータ・グループに属する全データの集合により構成され、一方、その枝に対応するデータ・グループに属するデータ数が所定最大値より多ければ、その枝に対応するサブディレクトリにより構成されて、そして、前記ディレクトリ構造の末端に存在する枝の各々は、その枝に対応するデータ・グループに属する全データの集合により構成されており、
前記検索手段は、カレント・ディレクトリを初期的に前記データベースのルート・ディレクトリに置き、そして、１つのキー要素が入力されると、入力されたキー要素を使用して、前記データベースのカレント・ディレクトリの直下の層に存在する前記入力されたキー要素に対応した枝へと、カレント・ディレクトリを移動させ、この入力されたキー要素を用いたカレント・ディレクトリの移動を１回以上行なうことにより、入力された１以上の要素により構成される検索キーにマッチした特定のデータ・グループに属する全てのデータの集合より構成される枝へと到達し、到達した枝の前記データの集合を前記データベースから取得する、
データ検索システム。
【請求項２】
前記キー要素は１文字又は１キーワードである請求項１記載の検索システム。
【請求項３】
各データ・グループに属する全データの集合により構成される枝は、ファイルであって、そのファイルには、そのデータ・グループに属する全データが記述されているか、又は、前記全データへのポインタ若しくはリンクが記述されている、
請求項１記載のデータ検索システム。
【請求項４】
前記データベースの前記ルートディレクトリより下の各層には、その層における前記複数のデータ・グループにそれぞれ属するデータの個数が列挙された候補数ファイルが更に存在し、
前記検索手段は、前記カレント・ディレクトリの置かれている層に存在する候補数ファイルを前記データベースから取得し、そして、１つのキー要素が入力されたとき、入力されたキー要素にマッチするデータ・グループに属するデータの個数を、前記データベースから取得した候補ファイルの内容から把握して、把握されたデータ個数を表示する、
請求項１記載のデータ検索システム。
【請求項５】
前記検索手段は、追加のキー要素が入力されると、前記データベースから取得した前記データの集合の中から、入力された前記追加のキー要素にマッチするデータをサーチする、
請求項１記載のデータ検索システム。
【請求項６】
前記検索手段は、前記データベースから取得した前記データの個数が所定の閾値以下である場合、又は、前記追加のキー要素にマッチするデータをサーチした結果、サーチされたデータの個数が所定の閾値以下である場合、前記取得又はサーチされた全てのデータの名称のリスト、又は、前記取得又はーチされた全てのデータの実体をユーザに知らせるための情報を表示する、
請求項５記載のデータ検索システム。
【請求項７】
前記取得又はサーチされたデータは、地図上の地物の地名と緯度経度座標を示す地名データであり、
前記検索手段は、前記取得又はサーチされた全ての地名データの実体をユーザに知らせるために、地図を表示すると共に、表示された地図上の前記取得又はサーチされた全ての地名データの緯度経度座標にそれぞれ相当する位置に、前記サーチされた全ての地名データにそれぞれ対応する地物のアイコンを表示する、
請求項６記載のデータ検索システム。
【請求項８】
前記検索手段は、前記表示された地図上に、前記アイコンを表示するとき、前記表示された地図のズーム倍率調節又はスクロールを自動的に行なうことにより、前記表示された地図の地域を、表示すべき全てのアイコンを一覧表示するのに必要十分な地域になるように調節する、
請求項７記載のデータ検索システム。
【請求項９】
通信ネットワークを介して相互通信可能なクライアントとサーバを備え、
前記サーバが前記データベースを有し、前記クライアントが前記検索手段を有する請求項１記載のデータ検索システム。
【請求項１０】
データベースから所望のデータを検索する方法において、
前記データベースが、ルートディレクトリを起点とするトリー型階層状のディレクトリ構造を有し、前記ディレクトリ構造内の前記ルートディレクトリより下の各層は、入力され得る複数のキー要素にそれぞれマッチした複数のデータ・グループにそれぞれ対応した複数の枝に分かれ、それら複数の枝の各々は、その枝に対応するデータ・グループに属するデータ数が所定最大値以下であれば、その枝に対応するデータ・グループに属する全データの集合により構成され、一方、その枝に対応するデータ・グループに属するデータ数が所定最大値より多ければ、その枝に対応するサブディレクトリにより構成されて、そして、前記ディレクトリ構造の末端に存在する枝の各々は、その枝に対応するデータ・グループに属する全データの集合により構成されている場合において、
検索キーを構成するキー要素を入力するステップと、
前記データベースにアクセスして、カレント・ディレクトリを初期的に前記データベースのルート・ディレクトリに置くステップと、
前記データベースにアクセスして、入力されたキー要素を使用して、前記データベースのカレント・ディレクトリの直下の層に存在する前記入力されたキー要素に対応した枝へと、カレント・ディレクトリを移動させ、この入力されたキー要素を用いたカレント・ディレクトリの移動を１回以上行なうことにより、入力された１以上の要素により構成される検索キーにマッチした特定のデータ・グループに属する全てのデータの集合より構成される枝へと到達するステップと、
到達した枝の前記データの集合を前記データベースから取得するステップと
を備えたデータ検索方法。
【請求項１１】
コンピュータを用いてデータベースから所望のデータを検索するためのコンピュータプログラムにおいて、
前記データベースが、ルートディレクトリを起点とするトリー型階層状のディレクトリ構造を有し、前記ディレクトリ構造内の前記ルートディレクトリより下の各層は、入力され得る複数のキー要素にそれぞれマッチした複数のデータ・グループにそれぞれ対応した複数の枝に分かれ、それら複数の枝の各々は、その枝に対応するデータ・グループに属するデータ数が所定最大値以下であれば、その枝に対応するデータ・グループに属する全データの集合により構成され、一方、その枝に対応するデータ・グループに属するデータ数が所定最大値より多ければ、その枝に対応するサブディレクトリにより構成されて、そして、前記ディレクトリ構造の末端に存在する枝の各々は、その枝に対応するデータ・グループに属する全データの集合により構成されている場合において、
検索キーを構成するキー要素を入力するステップと、
前記データベースにアクセスして、カレント・ディレクトリを初期的に前記データベースのルート・ディレクトリに置くステップと、
前記データベースにアクセスして、入力されたキー要素を使用して、前記データベースのカレント・ディレクトリの直下の層に存在する前記入力されたキー要素に対応した枝へと、カレント・ディレクトリを移動させ、この入力されたキー要素を用いたカレント・ディレクトリの移動を１回以上行なうことにより、入力された１以上の要素により構成される検索キーにマッチした特定のデータ・グループに属する全てのデータの集合より構成される枝へと到達するステップと、
到達した枝の前記データの集合を前記データベースから取得するステップと
をコンピュータに実行させるためのコンピュータプログラム。
【請求項１２】
データ検索用のためのデータベースのデータ構造において、
ルートディレクトリを起点とするトリー型階層状のディレクトリ構造を有し、
前記ディレクトリ構造内の前記ルートディレクトリより下の各層は、入力され得る複数のキー要素にそれぞれマッチした複数のデータ・グループにそれぞれ対応した複数の枝に分かれ、
前記複数の枝の各々は、その枝に対応するデータ・グループに属するデータ数が所定最大値以下であれば、その枝に対応するデータ・グループに属する全データの集合により構成され、一方、その枝に対応するデータ・グループに属するデータ数が所定最大値より多ければ、その枝に対応するサブディレクトリにより構成され、そして、
前記ディレクトリ構造の末端に存在する枝の各々は、その枝に対応するデータ・グループに属する全データの集合により構成されている、
データ構造。
【請求項１３】
検索キーを構成するキー要素を入力するための入力手段と、
前記入力手段から入力された検索キーにマッチするデータの個数を把握する候補数把握手段と、
把握されたデータ個数が所定の閾値より多い場合、前記把握されたデータ個数を表示し、一方、前記把握されたデータ個数が前記所定の閾値以下である場合、前記検索キーにマッチするデータをデータベースから取得して、取得された全てのデータの名称リスト又は前記取得された全てのデータの実体をユーザに知らせるための情報を表示する表示手段と
を備えたデータ検索システム。
【請求項１４】
検索キーを構成するキー要素を入力するステップと、
入力された検索キーにマッチするデータの個数を把握するステップと、
把握されたデータ個数が所定の閾値より多い場合、前記把握されたデータ個数を表示するステップと、
前記把握されたデータ個数が前記所定の閾値以下である場合、前記検索キーにマッチするデータをデータベースから取得して、取得された全てのデータの名称リスト又は前記取得された全てのデータの実体をユーザに知らせるための情報を表示するステップと
を備えたデータ検索方法。
【請求項１５】
検索キーを構成するキー要素を入力するステップと、
入力された検索キーにマッチするデータの個数を把握するステップと、
把握されたデータ個数が所定の閾値より多い場合、前記把握されたデータ個数を表示するステップと、
前記把握されたデータ個数が前記所定の閾値以下である場合、前記検索キーにマッチするデータをデータベースから取得して、取得された全てのデータの名称リスト又は前記取得された全てのデータの実体をユーザに知らせるための情報を表示するステップと
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、コンピュータを利用したデータ検索システムに関し、特に所望のデータを簡単に見つけ出せるようにするためのデータ構造、検索方法及び表示方法などの改良に関する。
【０００２】
【従来の技術】
一般的な検索システムでは、ユーザが検索条件を入力した後、検索要求をシステムに入力する。すると、システムが、その条件に合致する候補データをデータベース中からサーチし、見つかった候補データのリストを画面に表示する。
【０００３】
【発明が解決しようとする課題】
この一般的な検索方法では、表示された候補リストだけを見ても、ユーザは、所望のデータがどれなのかを見分けることができない。よって、どの候補が所望のものかを判断するために、ユーザは、リストアップされた候補の一つ一つの実体を調べなければならない。とくに、リストアップされた候補の数が非常に多い場合、個々の候補を丹念に調べることは不可能に近い。そこで、ユーザは、追加の検索条件を入力して再度サーチを行なうことにより、候補数をより少数に絞り込もうとする。しかし、サーチを何度も繰り返すことになるから、トータルのサーチ時間は非常に長くなる。結果として、所望のデータを見つ出すまでに、長い時間と手間がかかる。
【０００４】
また、インターネットなどを利用したクライアント・サーバ・システムでは、データベースを有したサーバが、クライアントから検索要求を受けてサーチを行なう。多数のクライアントから検索要求を受けるサーバの負担は非常に重い。結果として、サーチに時間がかかる。
【０００５】
そこで、本発明の目的は、所望のデータを見つけ出すのに要する時間と手間を削減することにある。
【０００６】
また、本発明の別の目的は、クライアント・サーバ・システムにおけるサーバのサーチ負担を軽減することにある。
【０００７】
【課題を解決するための手段】
本発明の一つの観点に従うデータ検索システムは、多数のデータを蓄積したデータベースと、検索キーを構成するキー要素を入力するための入力手段と、入力手段から入力された検索キーにマッチするデータをデータベースから検索する検索手段とを備える。
【０００８】
そして、データベースは、ルートディレクトリを起点とするトリー型階層状のディレクトリ構造を有し、このディレクトリ構造内のルートディレクトリより下の各層は、入力され得る複数のキー要素にそれぞれマッチした複数のデータ・グループにそれぞれ対応した複数の枝に分かれている。それら複数の枝の各々は、その枝に対応するデータ・グループに属するデータ数が所定最大値以下であれば、その枝に対応するデータ・グループに属する全データの集合（好適な実施形態では、その全データが記述されたファイル、又はその全データへのポインタ若しくはリンクが記述されたファイルである）により構成され、一方、その枝に対応するデータ・グループに属するデータ数が所定最大値より多ければ、その枝に対応するサブディレクトリ（好適な実施形態では、フォルダである）により構成される。そして、この階層状ディレクトリ構造の末端に存在する枝の各々は、その枝に対応するデータ・グループに属する全データの集合により構成されている。
【０００９】
上記検索手段は、初期的に上記データベースのルート・ディレクトリにカレント・ディレクトリを置き、そして、１つのキー要素が入力されると、入力されたキー要素を使用して、データベースのカレント・ディレクトリの直下の層に存在する入力キー要素に対応した枝へと、カレント・ディレクトリを移動させる。このような入力キー要素を用いたカレント・ディレクトリの移動を１回以上行なうことにより、検索手段は、データベース内で、入力された１以上のキー要素により構成される検索キーにマッチした特定のデータ・グループに属する全てのデータの集合より構成される枝に、最終的に到達することができる。そして、検索手段は、最終的に到達したデータの集合をデータベースから取得する。
【００１０】
上記のような本発明のデータ検索システムによれば、検索手段は、入力された幾つかのキー要素を順次に用いて、データベース内のトリー状のディレクトリの枝をより下層へと進んでいくことで、自ずと、入力された幾つかのキー要素により構成される検索キーにマッチしたデータ集合に到達することができる。この過程は、時間のかかるサーチを行なう必要が無いから、短時間に終わる。
【００１１】
好適な実施形態では、１文字を上記キー要素として用いる。しかし、アプリケーションによっては、１文字ではなく、１キーワードを、キー要素として用いることも可能である。
【００１２】
好適な実施形態では、データベースのルートディレクトリより下の各層には、その層における複数のデータ・グループにそれぞれ属するデータの個数が列挙された候補数ファイルが更に設けられている。そして、検索手段は、カレント・ディレクトリの置かれている層に存在する候補数ファイルをデータベースから取得し、そして、１つのキー要素が入力されたとき、その入力キー要素にマッチするデータ・グループに属するデータの個数を、上記の候補ファイルの内容から把握して、把握されたデータ個数を表示する。
【００１３】
好適な実施形態では、検索手段は、今までに入力された検索キーにマッチしたデータの集合をデータベースから取得した後、さらに追加のキー要素が入力されると、その取得したデータ集合の中から、入力された追加のキー要素にマッチするデータをサーチする。ここで、データベースから取得したデータ集合のデータ数は上記の所定最大数以下であって、膨大ではないから、サーチには時間がかからない。
【００１４】
好適な実施形態では、検索手段は、データベースから取得したデータ集合のデータ数が所定の閾値以下である場合、又は、上記サーチによって更に絞り込んだデータ集合のデータ数が所定の閾値以下である場合、そのデータ集合の全データの名称リストを表示するか、又は、そのデータ集合の全データの実体をユーザに知らせるための情報を表示する。こうして表示されたデータの個数は所定閾値以下であって、多すぎないから、ユーザはそれらのデータの中から容易に所望のデータを見つけ出すことができる。
【００１５】
本発明の別の観点に従うデータ検索システムは、検索キーを構成するキー要素を入力するための入力手段と、入力手段から入力された検索キーにマッチするデータの個数を把握する候補数把握手段と、把握されたデータ個数が所定の閾値より多い場合、前記把握されたデータ個数を表示し、一方、前記把握されたデータ個数が前記所定の閾値以下である場合、前記検索キーにマッチするデータをデータベースから取得して、取得された全てのデータの名称リスト又は前記取得された全てのデータの実体をユーザに知らせるための情報を表示する表示手段とを備える。
【００１６】
このデータ検索システムによれば、検索キーにマッチしたデータの個数が所定の閾値以下に減った段階で、それらのデータの全部の名称リスト又は実体がユーザに知らされるので、ユーザは、それらのデータの中から容易に所望のデータを見つけ出すことができる。
【００１７】
【発明の実施の形態】
以下、クライアント・サーバ型の地図表示システムにおいて、地名検索を行なう場合を例にとり、本発明の一実施形態を説明する。ただし、この実施形態は説明のための例示に過ぎず、本発明の適用範囲は、検索対象のデータの種類や内容に限定されるものではなく、また、クライアント・サーバ型やスタンドアロン型などのシステム構成にも制限されるものではなく、様々なシステムにおける様々なデータに検索に本発明を適用することができる。
【００１８】
図１は、地図表示システムにおける地名検索に適用された本発明の一実施形態の全体構成を示す。
【００１９】
図１に示すように、クライアント１０が、例えばインターネットのような通信ネットワークを介して、サーバ２０に通信可能に接続できるようになっている。サーバ２０は大容量の記憶装置２１をもち、その記憶装置２１には地図データベース２２及び地名データベース２３が格納されている。
【００２０】
地図データベース２２は、例えば日本全国のような広い地域をカバーする地図画像を表したデータである。地図データベース２２は、例えば、その広い地域を緯度経度で細分割した多数の矩形状の小地域の地図画像をそれぞれ表す多数の地図データの集合体から構成され、各小地域の地図データは一つのファイルとして構成されている。
【００２１】
また、地名データベース２３は、地図データ２２がカバーする例えば日本全国のような広い地域に存在する様々な地物（例えば、県市区町村、各種の自然地理物、各種の人工地理物など）の名称、地物種別及び緯度経度座標などのデータ（以下、「地名データ」という）の集合体から構成される。地名データベース２３は、図５に例示するような特別の構造をもち、これについては後に詳述する。
【００２２】
サーバ２０は、上述のように大量の地図データ及び地名データを保管していて、クライアント１０から欲しいデータを具体的に指定した（例えば、欲しいファイルのパス名及びファイル名を指定した）データ読出し要求を受けて、要求されたデータをクライアント１０に送るという単純な動作を行なうに過ぎない。地図表示や地名検索で読み出したいデータがサーバ１０内のどれであるか（例えば、読み出したいファイルのパス名及びファイル名が何であるか）という判断は、クライアント１０が行なうようになっている。また、そのような処理がクライアント１０で行なえるように、サーバ１０の地名データベース２３が特別の構造になっている。これにより、サーバ２０の処理負担は軽減されることになる。
【００２３】
クライアント１０は、地図ビューワ１１と検索エンジン１２を有する。地図ビューワ１１は、後述する図２〜図４に例示するようなウィンドウをクライアント１０のディスプレイ画面に表示する。このウィンドウには、地図画像を表示するためのエリアや、地名検索のための検索条件（キーワードや、リスト表示される候補数の最大値など）をユーザが入力したり検索された地名候補のリストを表示したりするための幾つかのエリアなどがある。地図ビューワ１１は、このウィンドウに表示される地図に対するユーザのスクロールや拡大縮小などの表示制御操作に応答して、表示すべき地域の地図データをサーバ２０から読み込み、その地図データからその地域の地図画像を作成してウィンドウ内の地図表示用用エリアに表示する。また、地図ビューワ１１は、そのウィンドウに対するユーザの検索条件の入力操作に応答して、検索エンジン１２を動作させる。
【００２４】
検索エンジン１２は、ユーザが入力した検索条件を用いて、後述するような手順で、ユーザが所望する地物の候補の地名データをサーバ２０から読み込み、その候補の名称リストやアイコンを上記ウィンドウに表示する。この検索エンジン１２の動作手順については、後に図６及び７を参照して詳述する。
【００２５】
図２〜図４は、クライアント１０のディスプレイ画面に表示される地図ビューワ１１のウィンドウ１００の例を示す。
【００２６】
図２〜図４に示すように、このウィンドウ１００には、地図表示エリア１０１、ズーム・スライダー・バー１０３、キーワード・フィールド１０５、閾値フィールド１０７、候補数フィールド１０９及び候補リスト・エリア１１１などがある。地図表示エリア１０１には、ユーザ所望の地域の地図画像が表示される。ユーザは、ズーム・スライダー・バー１０３を操作することで、地図画像エリア１０１に表示された地図画像のズーム倍率を調節する（つまり、拡大又は縮小する）ことができる。また、ユーザは、地図表示エリア１０１内でカーソル（図示省略）を移動させることで、表示される地図画像をスクロールすることができる。
【００２７】
地図表示エリア１０１に表示された地図のズーム倍率調節やスクロールは、ユーザの手動操作で行なえるだけでなく、後述するように、地名検索が行なわれたときには、検索された地名候補のアイコンを地図上に表示するために、地図ビューワ１１によって自動的に行われることがある。
【００２８】
キーワード・フィールド１０５は、地名検索を行なうときにユーザが任意のキーワード（文字又は文字列）を入力するためのフィールドであり、ここに入力されたキーワードと前方一致した地名が検索されることになる。閾値フィールド１０７は、地名検索を行なうときにユーザが候補数に対する任意の閾値を入力するためのフィールドであり、地名検索でここに入力された閾値以下にまで検索された地名候補の個数が絞られたとき、それらの候補のリストやアイコンがウィンドウ１００に表示されることになる。また、候補数フィールド１０９は、地名検索で検索された地名候補の個数を表示するためのフィールドである。また、候補リスト・エリア１１１は、地名検索で検索された地名候補のリストを表示するためのエリアである。
【００２９】
以下、図２、図３及び図４を順次に参照しつつ、地名検索の方法と検索結果の表示の仕方について説明する。
【００３０】
まず、図２に示すように、ある地域の地図画像が地図表示エリア１０１に表示されており、キーワード・フィールド１０５には未だ何の文字もエントリされていないという初期状態を想定する。この初期状態において、地名検索を行おうとする場合、ユーザは、リスト表示される候補数の所望の最大値（図３、４の例では２０個）を閾値フィールド１０７に入力し、そして、検索したい地名に含まれるべきキーワードをキーワード・フィールド１０５にタイプ入力していく。ここで、そのキーワードが例えば「ＡＢＡ」だったとすると、ユーザは最初に先頭の文字「Ａ」をタイプ入力し、次に２番目の文字「Ｂ」を入力し、次に３番目の文字「Ａ」を入力することになる。
【００３１】
検索エンジン１２は、キーワード・フィールド１０５に１文字が入力される都度、自動的に（つまり、ユーザが上記文字入力とは別に検索実行指示操作を行なわなくても）、キーワード・フィールド１０５にエントリされた文字又は文字列を検索キーとして用いて、サーバ２０に記憶されている多数の地名の中から検索キーにマッチする地名を抽出するための索処理を実行する。例えば、最初の文字「Ａ」が入力されると、検索エンジン１２は、エントリされた文字「Ａ」を検索キーに用いて検索処理を行なう。次に２番目の文字「Ｂ」が入力されると、検索エンジン１２は、エントリされた文字列「ＡＢ」を検索キーに用いて検索処理を行なう。次に３番目の文字「Ａ」が入力されると、検索エンジン１２は、エントリされた文字列「ＡＢＡ」を検索キーに用いて検索処理を行なう。検索方法の種類は、この実施形態では、例えば前方一致検索（つまり、検索キーを先頭に含むデータを検索する）である。必ずしもそうでなければならないわけではなく、検索対象に応じて後方一致検索や全体一致検索などの他の方法を用いてもよい。検索処理の具体的手順は、検索を高速に行なえるようにするために特別に工夫されており、それは地名データベース２３の特別な構造と密接な関連があり、その詳細は後に説明する。
【００３２】
上記のようにキーワード・フィールド１０５に１文字入力される都度に検索処理が実行されるが、その結果として抽出された地名候補の数が、閾値フィールド１０７内の閾値よりまだ多いときには、その抽出された候補の個数が候補数フィールド１０９に表示されるだけであり、その地名候補を具体的に示したリストやアイコンなどはまだウィンドウ１００に表示されない。
【００３３】
キーワード・フィールド１０５にエントリされた検索キーの文字数が増えていくと、抽出された地名候補の個数が減っていく。そして、図３に例示するように、その地名候補の個数が閾値フィールド１０７内の閾値（図３の例では２０個）以下にまで減ると、その地名候補のリストが候補リスト・エリア１１１に表示され、かつ、その地名候補のアイコンが、その緯度経度座標に対応する地図表示エリア１０１内の地図上の位置に表示されることになる。例えば、図３に示したケースでは、２番目の文字「Ｂ」の入力によりキーワード・フィールド１０５に「ＡＢ」がエントリされ、その「ＡＢ」を検索キーに用いた検索処理の結果、ピックアップされた地名候補の個数が４個であり、この４個という候補数は閾値「２０」以下であるため、その４個の地名候補のリストが候補リストエリア１１１に表示され、かつ、その４個の地名候補のアイコン２０１、２０３、２０５、２０７が地図表示エリア１０１内の地図上の該当位置に表示されている。
【００３４】
また、図４に例示ししたケースでは、３番目の文字「Ａ」の入力によりキーワード・フィールド１０５に「ＡＢＡ」がエントリされ、その「ＡＢＡ」を検索キーに用いた検索処理の結果、地名候補の個数は２個に絞られ、その２個の地名候補のリストが候補リストエリア１１１に表示され、かつ、その２個の地名候補のアイコン２０１、２０３が地図表示エリア１０１内の地図上の該当位置に表示されている。
【００３５】
図２、図３及び図４の地図表示エリア１０１内の地図画像を見比べると分かるように、ピックアップされた地名候補のアイコンを地図表示エリア１０１内の地図上に表示する場合、地図ビューワ１１は、地図表示エリア１０１に表示された地図のスクロール又はズーム倍率調節を必要に応じて自動的に行なって、地図表示エリア１０１内に表示される地図の地域を、ピックアップされた全ての地名候補のアイコンを一覧表示するのに必要十分な地域になるように制御する。例えば、図２で初期的に或る地域の地図が表示されていたところ、図３では、その表示地図の拡大及びスクロールが自動的に行なわれて、ピックアップされた４個の地名候補のアイコンを一覧表示するのに必要十分な、より狭い地域の地図が地図表示エリア１０１に表示されている。そして、図４では、さらに表示地図の拡大及びスクロールが自動的に行なわれて、絞り込まれた２個の地名候補のアイコンを一覧表示するのに必要十分な、更に狭い地域の地図が地図表示エリア１０１に表示されている。このような表示地図の自動的な拡大及びスクロールは、ピップアップされた地名候補の緯度と経度の分布範囲に基づいて行なうことが出来る。例えば、その緯度と経度の分布範囲で矩形の地域を画定し、その地域を東西南北に若干のマージン分だけ広げ、その若干広げられた矩形の地域を、地図表示エリア１０１に表示すべき地図の地域として定めて、自動的に拡大又はスクロールを行えばよい。なお、上記の自動的な表示地図の拡大縮小やスクロールを行なう場合、新たな地域の地図画像データが必要になれば、地図ビューワ１１は、その必要な地図画像データをサーバ２０から取得する。
【００３６】
このようにして地図上に表示された地名候補のアイコンは、その地名候補の実体（つまり、具体的内容）をユーザに教えるものであり、これを見ることで、ユーザは自分の欲する地物を容易に選び出すことができる。
【００３７】
なお、ユーザが、候補リスト・エリア１１１内の任意の地名をカーソルなどで選択すると、それが反転表示などの特別の態様で表示されると共に、地図表示エリア１０１内の対応するアイコンも、反転表示などの特別の態様で表示されるようになっている。また、逆に、ユーザが地図表示エリア１０１内の任意のアイコンを選択すれば、それが反転表示などの特別の態様で表示されると共に、候補リスト・エリア１１１内の対応する地名も、反転表示などの特別の態様で表示されるようになっている。これにより、ユーザは、地名とアイコン（地図上の場所）との対応関係を、（図示の例ではアイコンに地名が付されているので把握し易いが、そうでなくても）容易に把握することができる。
【００３８】
ところで、地図上に表示されるアイコンは、図示の例では、地物の種類によってデザインが異なっているが、地物種類に関係なく同じデザインであってもよい。アイコンのデザインを地物によって変えるための方法としては、地名データに含まれている地物種別に応じて、地図ビューワ１１が予め持つ様々なデザインのアイコン中から一つのアイコンを選ぶという方法や、地名データに予めアイコンのデータを含めておく方法など、様々な方法が採用し得る。
【００３９】
以下、上述したような機能を実現するための地名データベース２３の具体的な構成や検索処理の具体的な手順を説明する。
【００４０】
図５は、地名データベース２３の構成を示す。
【００４１】
図５に示すように、地名データベース２３は、トリー型階層状のディレクトリ構造を有する。その最上層はルートディレクトリ３１である。ルートディレクトリ３１の直接的管理下（つまり、ルートディレクトリ３１の直下、又はルートディレクトリ３１内）には、「１文字目クラス」の層があり、この１文字目クラスの層には多数の枝が存在する。この１文字目クラスの多数の枝とは、具体的には次の通りである。
【００４２】
すなわち、この１文字目クラスの層には、第１に、１文字目の文字が何であるかによって分類された地名グループ（以下、「１文字目クラス地名グループ」という）にそれぞれ対応した複数のフォルダ又はファイル４１〜４４が存在する。例えば、１文字目が「Ａ」である地名グループに属する地名データを管理したＡグループ・フォルダ４１、１文字目が「Ｂ」である地名グループに属する地名データを管理したＢグループ・ファイル４２、１文字目が「Ｃ」である地名グループに属する地名データを管理したＣグループ・フォルダ４３、…、１文字目が「Ｚ」である地名グループに属する地名データを管理したＺグループ・フォルダ４４などである。これらの文字別の地名グループのフォルダ又はファイル４１〜４４は、当然に、地名に使用され得る文字の種類数（図示の例では、アルファベットの２６文字）に相当する数だけ存在する。
【００４３】
ここで、ファイルとフォルダの使い分けは次の通りである。すなわち、或る地名グループに属する地名の個数が、１ファイルに記述され得るデータの個数について予め定めた最大値（例えば、２５６個）以下である場合、その地名グループにはファイルが使用され、そのファイルには、その地名グループに属する全ての地名の地名データが記述される（又は、地名データそれ自体はそのファイルとは別の場所に保存されていて、それら地名データへのアドレスポインタ又はリンクデータがそのファイルに記述されてもよい）。図示の例では、「Ｂ」の地名グループに属する地名の個数は上記最大値（例えば、２５６個）以下であるため、「Ｂ」の地名グループにはファイル４２が使用されており、このファイル４２に「Ｂ」の地名グループ全ての地名データ（又は、ポインタ若しくはリンク）が記述されている。
【００４４】
一方、或る地名グループに属する地名の個数が、上記最大値（例えば、２５６個）を超える場合には、地名グループに対してフォルダ（サブディレウトリ）が使用される。図示の例では、１文字目が「Ａ」や「Ｃ」や「Ｚ」の地名はそれぞれ上記最大値（例えば、２５６個）よりも多く存在するため、それぞれの地名グループに対してフォルダ４１、４３、４４が使用されている。
【００４５】
さらに、１文字目クラスの層には、第２に、候補数ファイル４５が存在する。この候補数ファイルには、全ての１文字目クラス地名グループにぞれぞれ属する地名の個数が列挙されている。図示の例では、１文字目が「Ａ」の地名グループに属する地名の数として「ｎ１」個、１文字目が「Ｂ」の地名グループに属する地名数として「ｎ２」個、…などが候補数ファイル４５に記述されている。
【００４６】
さて、上述した１文字目クラスの地名グループ・フォルダ４１、４３、４４の各々の直接的管理下（つまり、各フォルダの直下又は各フォルダ内）には、図５でＡグループ・フォルダ４１に関して例示されているように、２文字目クラスの層があり、この２文字目クラスの層にも多数の枝が存在する。その多数の枝とは、具体的には、第１に、１文字目クラス地名グループを２文字目の文字によって細かく分類した地名グループ（以下、「２文字目クラス地名グループ」という）にそれぞれ対応した複数のフォルダ又はファイル５１〜５４であり、第２に、それら２文字目クラス地名グループにそれぞれ属する地名数を列挙した候補数ファイル５５である。
【００４７】
例えば、図示の１文字目クラスのＡグループ・フォルダ４１の直下には、２文字目が「Ａ」である（つまり先頭が「ＡＡ」である）地名グループに属する地名データを管理したＡグループ・ファイル５１、２文字目が「Ｂ」である（つまり先頭が「ＡＢ」である）地名グループに属する地名データを管理したＢグループ・フォルダ５２、２文字目が「Ｃ」である（つまり先頭が「ＡＢ」である）地名グループに属する地名データを管理したＣグループ・フォルダ５３、…、２文字目が「Ｚ」である（つまり先頭が「ＡＺ」である）地名グループに属する地名データを管理したＺグループ・フォルダ５４がある。加えて、全ての２文字目クラス地名グループにそれぞれ属する地名数「ｍ１」、「ｍ２」、…を記述した候補数ファイル５５が存在する。
【００４８】
２文字目クラスの層における各地名グループに対するフォルダとファイルの使い分けの原理も、上述した１文字クラスにおける原理と同様である。すなわち、各２文字目クラス地名グループに属する地名数が上記最大値以下ならファイルが使用され、上記最大値を超える場合にはフォルダ（サブディレクトリ）が使用される。
【００４９】
Ｃグループ・フォルダ４３及びＺグループ・フォルダ４４などの他の１文字目クラス地名フォルダの各々の直下にも、上記と同様な原理に従って構成された２文字目クラスの層が存在する。
【００５０】
上述した原理に従って、各２文字目クラス地名フォルダの直下には３文字目クラスの層が構成され、以下、同様の原理で、３字目クラス以降の諸クラスの層が構成されており、全体としてトリー形階層状のディレクトリ構造が構成されている。このディレクトリ構造における末端の枝はそれぞれ、対応する地名グループに属する全ての地名データ（又は、それへのポインタ若しくはリンク）を記述したファイルである。
【００５１】
従って、地名検索を行なうとき、クライアント１０の検索エンジン１２は、地名データベース２３のルートディレクトリ３１からスタートして、ユーザが１文字入力する都度に、その入力文字に対応する下層の枝に進むという方法で、トリー型階層状のディレクトリ構造をより下層へと探索していくことで、自ずと、ユーザ所望の地名データが記述されたファイルに最終的に到達することになる。このデータベース探索の過程では、検索キーを使って所望の地名候補を「サーチ」するという作業（つまり、個々の候補と検索キーを対比して、マッチするか否か判断することを、全ての候補についてくり返す操作）が存在しないので、極めて高速に目的のファイルに到達することができる。目的のファイルに到達した後は、そのファイルに記述されている地名データの中から、検索キーを使って所望の地名データを「サーチ」することで、所望の地形データを獲得することができる。このフサーチは、上記最大値（例えば、２５６個）以下の少数の地名データからのサーチであるため、これも極めて高速に完遂できることになる。
【００５２】
図６及び図７は、地名検索におけるクライアント１０の検索エンジン１２が行なう検索処理と地図ビューワ１１が行なう表示処理の具体的手順を示す。
【００５３】
図６のステップＳ１で、検索キーを構成する最初の文字が地図ビューワ１１のウィンドウ１００（図２〜図４参照）内のキーワード・フィールド１０５に入力されると、検索エンジン１２は、ステップＳ２で、サーバ２０内の地名データベース２３のルートディレクトリ３１をカレント・ディレクトリ（現在着目しているディレクトリ）とし、そして、ステップＳ３で、そのカレント・ディレクトリ内（つまり、１文字目クラスの層）で、入力された文字に対応する地名グループ・ファイルが存在するかどうかを調べる。
【００５４】
もし、入力文字に対応する地名グループ・ファイルがカレント・ディレクトリ内に存在しなければ、検索エンジン１２は、ステップＳ４で、そのカレント・ディレクトリ内の候補数ファイルをサーバ２０から読み込んで、その候補数ファイルに書かれている、入力文字に対応する地名グループに属する地名数を読み、そして、ステップＳ５で、その地名数を地図ビューワ１１に渡して、そのウィンドウ１００内の候補数フィールド１０７に、その地名数を表示させる。そして、検索エンジン１２は、ステップＳ６で、入力文字に対応する地名グループ・フォルダにカレント・ディレクトリを移す。
【００５５】
次に、ステップＳ７で、検索キーを構成する次の文字がキーワード・フィールド１０５に入力されると、検索エンジン１２は、ステップＳ３に再び進み、カレント・ディレクトリ内（つまり、１つ前に入力された文字に対応する地名グループ・フォルダ内）に、今入力された文字に対応する地名グループ・ファイルが存在するかどうか調べる。そのファイルが存在しなければ、検索エンジン１２の処理は、既に説明したようにステップＳ４へ進むことになる。従って、入力された文字に対応する地名グループに属する地名の個数が上記最大値（例えば、２５６個）以下にまで絞られるまでは、検索エンジン１２は、地名データベース２３のトリー型階層状のディレクトリ構造の中で、入力文字に対応した下層の枝へとカレントディレクトリを順次に進めていくことになる。
【００５６】
以後、入力された文字が増えていくと、自ずとある段階で、入力文字に対応する地名グループに属する地名の個数が上記最大値（例えば、２５６個）以下になるので、検索エンジン１１は、ステップＳ３で、入力された文字に対応する地名グループ・ファイルをカレント・ディレクトリ内で見つけることになる。すると、検索エンジン１１は、ステップＳ８で、入力文字に対応する地名グループ・ファイルをサーバ２０から読み込んで記憶する。そして、検索エンジン１１は、ステップＳ９で、その地名グループ・ファイルに記述されている地名の個数を調べ（又は、カレント・ディレクトリ内の候補数ファイルを読んで、その候補数ファイルに書いてある該当の地名グループに属する地名数を調べても良い）、その地名数がユーザが前もって閾値フィールド１０７に設定した閾値（図３、４の例では２０個）未満か以上かを判断する。
【００５７】
その判断の結果、地名数が閾値以上である場合、検索エンジン１２は、ステップＳ１０で、その地名数を地図ビューワ１１に渡して、そのウィンドウ１００内の候補数フィールド１０７に、その地名数を表示させる。
【００５８】
その後、ステップＳ１３で次の文字がキーワード・フィールドに入力されると、検索エンジン１２は、ステップＳ１４で、記憶しておいた前回の検索結果（前回の文字入力のときにステップＳ３でＹｅｓとなった場合には、ステップＳ８で読み込んだ前回の入力文字対応する地名グループ・ファイルに記載されていた全ての地名データが、前回の検索結果であり、一方、前回より前の文字入力のときにステップＳ３でＹｅｓとなった場合には、ステップＳ８で読み込んだ地名グループ・ファイルに記載されていた全ての地名データの中から、それ以後前回までに入力された文字によってサーチされた地名データが、前回の検索結果である）の中から、今入力された文字を検索キーに用いて、その検索キーにマッチする地名データをサーチする。そして、検索エンジン１２は、ステップＳ１５で、上記サーチによって見つかった地名データを今回の検索結果として記憶し、そして、再び上述のステップＳ９に進み、その検索結果に含まれている地名の個数が上記閾値未満か以上かをチェックする。
【００５９】
このように、サーバ２０から１つの地名グループ・ファイルを読み込んだ後は、検索エンジン１１は、検索結果に含まれている地名数が上記閾値未満にまで減るまで、ステップＳ９〜Ｓ１５のループの処理を繰り返すことになる。すなわち、検索エンジン１１は、後から入力される文字を逐次に検索キーに加えてその検索キーを用いて、前回の検索結果の中からサーチを行なうという動作を繰り返すことで、検索結果に含まれる地形データの個数をより少数に絞り込んでいく。このステップＳ９〜Ｓ１５のループの処理では、クライアント１０内でローカルに行なわれるから、サーバ２０は何も行なう必要はない。
【００６０】
以後、入力文字が増えていくと、自ずとある段階で、入力文字によってサーチされた地名データの個数が上記閾値以下になり、ステップＳ９のチェック結果がＹｅｓとなる。すると、検索エンジン１１は、記憶された検索結果を地図ビューワ１１に渡す。すると、地図ビューワ１１は、ステップＳ１１で、検索結果に含まれる全ての地名のリストを候補リスト・エリア１１１に表示し、その地名数を候補数フィールド１０９に表示し、また、ステップＳ１２で、検索結果に含まれる全ての地名のアイコンを地図表示エリア１０１の地図上に表示する。前述したように、地名アイコンを表示するとき、地図ビューワ１１は、全ての地名アイコンが地図表示エリア１０１内に一覧表示されるように、必要に応じて、表示地図の拡大縮小又はスクロールを自動的に行なう。こうして表示された地図アイコンの個数及び地名リスト中の地名の個数は、ユーザが任意に設定した閾値以下であり、多過ぎないので、それらの中からユーザは容易に所望の地名を見つけ出すことができる。
【００６１】
このように地名リストと地名アイコンを表示した後、次の文字が入力されれば、検索エンジン１２は、上述したステップＳ１３に進み、同様の処理を繰り返す。
【００６２】
図７は、図６に示したような検索処理の過程で、一旦入力された文字が削除されたときの検索エンジン１２と地図ビューワの処理手順を示す。
【００６３】
図７のステップＳ２２で、図６のステップＳ６の状態から、キーワード・フィールド１０５にエントリされている最後の入力文字が削除された場合、ステップＳ２３で、地図ビューワ１１が候補数フィールド１０７内の地名数の表示を前回の表示に戻し、また、ステップＳ２３で、検索エンジン１２がカレント・ディレクトリを前回のディレクトリに戻す。そして、処理は図６に示したステップＳ７へ進んで、新たな文字の入力を待つことになる。
【００６４】
また、図７のステップＳ３２で、図６のステップＳ１０又はＳ１２の状態から、キーワード・フィールド１０５にエントリされている最後の入力文字が削除された場合、ステップＳ３３で、地図ビューワ１１が候補数フィールド１０７内の地名数の表示、候補リスト・エリア１０９内の地名リストの表示、及び地図表示エリア１０１内の地図と地名アイコンの表示を、全て前回の表示に戻す。また、このときキーワード・フィールド１０５に残っている文字列の中の最後の文字の入力時に図６のステップＳ３の判断結果がＮｏだった場合には、検索エンジン１２は、上述したステップＳ２４へ進んで、カレント・ディレクトリを前回のディレクトリに戻す。一方、キーワード・フィールド１０５に残っている文字列の中の最後の文字の入力時に図６のステップＳ３の判断結果がＹｅｓだった場合には、検索エンジン１２は、ステップＳ３５へ進んで、記憶してある前回の検索結果を前回より１回前の検索結果に戻し、そして、図６に示したステップＳ１３へ進んで、新たな文字の入力を待つことになる。
【００６５】
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であり、この実施形態のみに本発明の範囲を限定する趣旨ではない。従って、本発明は、その要旨を逸脱することなく、他の様々な形態で実施することが可能である。
【００６６】
例えば、地名の検索だけでなく、他のあらゆる種類のデータの検索にも本発明は適用できる。
【００６７】
上述の実施形態では、検索された地名候補の実体をユーザに知らせるための方法として、地図上の対応位置に地名アイコンを表示するという方法を用いたが、他の方法を用いてもよい。特に、地名ではない他の種類のデータの検索では、そのデータの種類に適した他の方法を用いることができる。例えば、テキストデータの検索では、検索されたテキストデータの内容そのもの（実体）又はその要約などをリスト表示するというような方法を採ることができる。
【００６８】
上述の実施形態では、ユーザが１文字入力する都度に検索処理が自動的に行なわれたが、必ずしも１文字ごとに検索処理を行なわなければならないわけではない。例えば、複数個のキーワードを用いてデータを検索するようなアプリケーションでは、１つのキーワードが入力される都度に検索動作を自動実行するようにしても良い。その場合、検索用データベースのトリー型階層状のディレクトリ構造として、上述の例のように文字別に枝分かれする構造に代えて、キーワード別に枝分かれする構造を用いても良い。
【００６９】
上述の実施形態では、前方一致検索の方法で検索キーにマッチする候補をピックアップしたが、後方一致検索や全体一致検索の方法を採用するアプリケーションでも、本発明を適用することができる。
【００７０】
上述の実施形態は、クライアント・サーバ型のシステムであったが、スタンドアロン型のシステムでも本発明が適用できる。
【図面の簡単な説明】
【図１】地図表示システムにおいて地名検索を行なうための本発明の一実施形態の全体構成を示す。。
【図２】クライアント１０のディスプレイ画面に表示される地図ビューワ１１のウィンドウ１００の例を示す
【図３】クライアント１０のディスプレイ画面に表示される地図ビューワ１１のウィンドウ１００の例を示す。
【図４】クライアント１０のディスプレイ画面に表示される地図ビューワ１１のウィンドウ１００の例を示す。
【図５】地名データベース２３の構成を示す。
【図６】クライアント１０の地名検索の処理手順を示すフローチャート。
【図７】クライアント１０の地名検索の処理手順を示すフローチャート。
【符号の説明】
１０　クライアント
２０　サーバ
１１　地図ビューワ
１２　検索エンジン
２１　記憶装置
２２　地図データベース
２３　地名データベース
１００　地図ビューワのウィンドウ
１０１　地図表示エリア
１０３　ズーム・スライダ・バー
１０５　キーワード・フィールド
１０７　閾値フィールド
１０９　候補数フィールド
１１１　候補リスト・エリア
２０１〜２０７　地名アイコン
３１　ルート・ディレクトリ
４１〜４４　１文字クラスの地名グループ・フォルダ又はファイル
４５　１文字クラスの候補数ファイル
５１〜５４　２文字クラスの地名グループ・フォルダ又はファイル
５５　２文字クラスの候補数ファイル
【図１】
2004062567.tif 000003
【図２】
2004062567.tif 000004
【図３】
2004062567.tif 000005
【図４】
2004062567.tif 000006
【図５】
2004062567.tif 000007
【図６】
2004062567.tif 000008
【図７】
2004062567.tif 000009