データベースをサーチする方法、索引構造を生成するナビゲーションデバイスおよび方法
【課題】索引構造を用いてナビゲーションデバイスデータベースにおいて類似性サーチを行う方法を提供すること。
【解決手段】上記方法において、データベースは、複数のオブジェクトを含み、索引構造は、複数のノードを含む。方法は、クエリーオブジェクトを受信することと、複数のオブジェクトのうちの少なくとも1つのオブジェクトに関連付けられる索引構造のノードにアクセスすることと、ノードに関連付けられた少なくとも1つのオブジェクトの各々のオブジェクトに対して、それぞれ、クエリーオブジェクトとオブジェクトとの間の距離を決定することであって、距離は、それぞれ、距離メトリックに従って決定される、ことと、決定された距離に基づいて、索引構造の別のノードに選択的にアクセスすることとを含む。
【解決手段】上記方法において、データベースは、複数のオブジェクトを含み、索引構造は、複数のノードを含む。方法は、クエリーオブジェクトを受信することと、複数のオブジェクトのうちの少なくとも1つのオブジェクトに関連付けられる索引構造のノードにアクセスすることと、ノードに関連付けられた少なくとも1つのオブジェクトの各々のオブジェクトに対して、それぞれ、クエリーオブジェクトとオブジェクトとの間の距離を決定することであって、距離は、それぞれ、距離メトリックに従って決定される、ことと、決定された距離に基づいて、索引構造の別のノードに選択的にアクセスすることとを含む。
【発明の詳細な説明】
【技術分野】
【0001】
(技術分野)
本発明は、ナビゲーションデバイスにおける使用のためのデータベースサーチ方法およびデバイスに関する。特に、本発明は、索引構造を用いてナビゲーションデバイスデータベースをサーチする方法と、ナビゲーションデバイスと、索引構造を生成する方法とに関する。
【背景技術】
【0002】
(背景)
ナビゲーションデバイスは公知であり、2つの場所の間のルートサーチのような機能を行う。現代のナビゲーションデバイスは、また、要求がある場合、ポイントオブインタレスト(POI)に関する情報を出力するトラベルガイドとして機能するようなさらなる機能性を提供し得る。そのような情報は、通りの名称またはPOIを含み得るが、さらなるテキスト情報またはマルチメディア情報を含む場合もある。例示として、いくつかのナビゲーションデバイスは、オブジェクトに関する詳細な説明を、テキストおよび/またはマルチメディア形態で出力するトラベルガイド機能性を含み得る。
【0003】
現代のナビゲーションデバイスにおいて用いられるデータベースのサイズに起因して、データベースにおいてサーチを行うことは、かなりの難問である。特に、テキストストリング、音素ストリング、マルチメディアオブジェクトまたはユークリッド空間において規定されない他のオブジェクトに対してサーチが行われる場合、このことは当てはまる。2Dまたは3D空間において規定されるオブジェクトの幾何学的座標は、オブジェクトが座標ベースサーチに対して座標に基づき索引付けられることを可能にし得る。そのような索引付けは、テキストストリング、音素ストリング、マルチメディアオブジェクトまたはユークリッド空間において規定されない他のオブジェクトのようなオブジェクトに対して、より難問である。
【0004】
さらに、サーチがテキストストリング、音素ストリングまたはマルチメディアオブジェクトのようなオブジェクトに対して行われた場合、ユーザーは、正確なヒットを得ることのみに興味があるわけではない場合がある。むしろ、ユーザーは、クエリーに類似するサーチ結果に関する情報を得ることに興味を有し得、必ずしも、クエリーと同一ではない。ルートサーチに対して、開始場所および目的場所、中間ポイントまたは経由ポイントを入力することまたはPOIを入力することのような多くの用途に対して、ユーザーは、正しいテキスト表示の名称に気付いていない場合がある。ストリングの最初の文字に従うデータベースにおける正確な一致に対してサーチを行う従来技術は、それらの最初の文字内にスペルミスがある場合、失敗し得る。
【0005】
さらに、ナビゲーションデバイスにおいて、記憶スペース制限によって課される制約、利用可能な計算時間に関する限界が、フォルトトレラントな効率的なサーチを実装することを特に難問にしている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
(要約)
従って、フォールトトレラントサーチが実行されることを可能にする方法およびナビゲーションデバイスを提供するニーズがある。特に、フォールトトレラントサーチが効率的に行われることを可能にする方法およびナビゲーションデバイスに対するニーズがある。
【課題を解決するための手段】
【0007】
このニーズは、独立請求項に記載されるようなデバイスおよび方法によって的にされる。従属請求項は、実施形態を規定する。
【0008】
側面に従って、ナビゲーションデバイスデータベースにおいて類似性サーチを行う方法が提供される。類似性サーチは、メトリック索引構造を用いて行われる。データベースは、複数のオブジェクトを含み、索引構造は、複数のノードを含む。クエリーオブジェクトが受信される。複数のオブジェクトのうちの少なくとも1つのオブジェクトに関連付けられる索引構造のノードがアクセスされる。アクセスされたノードのうちの少なくとも1つのオブジェクトに対して、クエリーオブジェクトとオブジェクトとの間の距離は、距離メトリックに従って決定される。決定された距離に基づいて、索引構造の別のノードが選択的にアクセスされる。
【0009】
方法は、類似性サーチを使用する。これは、ファジィサーチが実装されることを可能にし、ファジィサーチは、正確なマッチについての情報を提供するだけではなく、データベースにおいて最も類似なオブジェクトについての情報も検索する。方法において、クエリーオブジェクトと索引構造のノードのオブジェクトとの距離は、アクセスされるべきである他のノードを識別するように決定される。これは、サーチが効率的に行われることを可能にする。クエリーオブジェクトから閾値より大きな距離を有するオブジェクトを含むかまたは指すアクセスノードが必要とされない。距離メトリックに従って決定された距離を使用することによって、クエリーオブジェクトと索引構造に含まれるオブジェクトとの間の類似または相違が、量的に評価される。
【0010】
索引構造は、ナビゲーションデバイスの記憶デバイスに格納され得る。
【0011】
索引構造は、メトリック索引構造であり得る。従来の専門用語に従って、メトリック索引構造は、索引を区分するために、オブジェクトよりむしろ多重次元の空間のそれらの座標の間の相対的距離のみを考慮する索引である。索引構造は、特に、Mツリー、vantageポイントツリーまたは距離メトリックに従って組織化された任意の他のツリー構造であり得る。索引構造は、サーチを行うことにおけるクエリーオブジェクトとオブジェクトとの間の距離を決定するのに使用される距離と同じである距離関数に従って組織化される。
【0012】
従来の専門用語を用いて、「距離メトリック」または「メトリック」は、本明細書において、反射の公準、対称性および三角不等式を満たす距離関数をさすように理解される。
【0013】
従来の専門用語を用いて、用語「類似性サーチ」は、本明細書において、クエリーオブジェクトに対する例示または相違に関して所与の基準を満たす、オブジェクトに対するサーチをさすように使用される。実施例は、距離メトリックに従う距離のように測定された、固定の閾値より少ない相違を有するオブジェクトに対するサーチ、または距離メトリックに従う距離のように測定された、索引されたオブジェクトの中のクエリーオブジェクトから最も小さい相違を有するオブジェクトに対するサーチを含む。
【0014】
クエリーオブジェクトと、サーチに訪問されたノードによって表される全部のオブジェクトとの間の正確な距離を決定することが、可能であるが、必要とされない。索引構造を通るパスに沿うノードのうちの少なくともいくつかに対して、クエリーオブジェクトと索引構造のそれぞれのオブジェクトとの距離の下限を決定するのは、十分であり得る。
【0015】
オブジェクトは、ストリング、特に音素ストリングまたはテキストストリングであり得る。対応して、クエリーオブジェクトは、音素ストリングまたはテキストストリングであり得る。これは、音素ストリングまたはテキストストリングに対してフォールトトレラントサーチが行われることを可能にする。このようなサーチは、開始場所および目的地場所を入力する場合、データベース内にPOIをサーチする場合、データベースに格納されるテキストまたはマルチメディアデータをサーチする場合、または類似な場合に有用であり得る。
【0016】
ストリングであるオブジェクトに対する距離メトリックは、複数の利用可能なストリングメトリックのうちの任意の1つから選択され得る。例として、距離メトリックは、Levenshtein距離に基づき得る。距離関数はまた、Damerau−Levenshtein距離、Jaro−Winkler距離、Hamming距離、Soundex距離メトリックに従って決定される距離、Needleman−Wunsch距離、Gotoh距離、Smith−Waterman−Gotoh距離、P≧1を有するLp距離または反射の公準、対称性および三角不等式に従う任意の他のストリングメトリックのうちの任意の1つであり得る。
【0017】
テキスト入力が受信され得、テキスト−音素変換は、テキスト入力からクエリーオブジェクトを生成するように行われ得る。代替的に、またはさらに、クエリーオブジェクトは、音声入力から生成される音素ストリングであり得る。
【0018】
索引構造はさらに、アクセスされたノードに含まれる少なくとも1つのオブジェクトと、索引構造の他のオブジェクトと距離についての距離情報を含み得る。距離情報は、親オブジェクトを有する任意のノードに対して、ノードのオブジェクトとその親オブジェクトとの間の距離を含み得る。この距離情報は、索引構造に格納され得る。代替的に、またはさらに、別のノードを指し、すなわち、リーフノードにない任意のオブジェクトに対して、距離情報は、オブジェクトと、このオブジェクトに関連付けられる索引構造のサブツリーに含まれる任意のオブジェクトとの間の距離の上限を含み得る。距離に対するこの上限はまた、それが、そのサブツリーの全オブジェクトが配置されるオブジェクトの周りの距離を表すために、カバレッジ半径と呼ばれ得る。このような距離情報を索引構造に含むことによって、距離情報は、類似性サーチの間にそれが計算される必要があらず、ランタイムにおいて使用され得る。従って、サーチパフォーマンスが増強され得る。
【0019】
アクセスする別のノードは、クエリーオブジェクトとアクセスされたノードの間の距離に基づいて、そして距離情報に基づいて選択的に行われ得る。閾値比較が行われ得る。閾値比較に基づいて、サーチ索引のサブツリーがサーチされなければならないか否かが決定され得る。代替的に、またはさらに、閾値比較に基づいて、クエリーオブジェクトと、索引構造のオブジェクトとの間の正確な距離を計算する必要があるか否かが決定され得る。
【0020】
クエリーオブジェクトとノードに含まれるオブジェクトと間の距離は、カバレッジ半径とサーチ半径との総計と比較され得る。閾値比較が、クエリーオブジェクトとノードに含まれるオブジェクトと間の距離が総計より大きいであることを示す場合に、オブジェクトが指す索引構造のサブツリーにアクセスする必要とされない。サーチ半径が、固定され得、または類似性サーチが進行するので、変化するように作られ得る。
【0021】
ノードは、いくつかのオブジェクトを含み得る。索引構造は、いくつかのオブジェクトの各々に対して、それぞれのオブジェクトと、それぞれのオブジェクトを指す索引構造のサブツリーに含まれる任意のオブジェクトとの間の距離の上限を含み得る。
【0022】
オブジェクトは、決定された距離に基づいて類似性サーチから選択的に取り除かれ得る。取り除くことは、クエリーオブジェクトとノードのオブジェクトとの間の決定された距離に基づいて、そしてオブジェクトのカバレッジ半径に基づいて行われ得る。
【0023】
距離を決定するステップと、別のノードに選択的にアクセスするステップとが、反復して繰り返され得る。これらのステップが繰り返される場合に、クエリーオブジェクトとノードに含まれるオブジェクトとの間の距離は、ノードのオブジェクトのうちの各々に対して計算されることが必要とされない。クエリーオブジェクトとノードに含まれるオブジェクトとの間の距離は、基準に基づいて選択的に計算され得、基準は、それが、新しい距離が計算される必要とされないようである。他のノードが索引構造のリーフノードである場合に、距離を計算することと、別のノードに選択的にアクセスすることとが、終了され得る。
【0024】
アクセスされた他のノードがリーフノードである場合に、方法はさらに、閾値比較の結果に基づいて、リーフノードのオブジェクトとクエリーオブジェクトとの間の距離を選択的に決定することを含み得る。リーフノードの所与のオブジェクトとクエリーオブジェクトとの間の距離は、閾値比較の結果に基づいて選択的に決定され得る。閾値比較は、第1の距離と第2の距離との差異の係数と閾値を比較することを含み得る。第1の距離は、クエリーオブジェクトとのリーフノードの親オブジェクトとの距離であり得る。第2の距離は、リーフノードの親オブジェクトとリーフノードのそれぞれの所与のオブジェクトとの間の距離であり得る。リーフノードの任意の所与のオブジェクトに対して、それぞれの所与のオブジェクトとのクエリーオブジェクトとの間の距離は、このような閾値比較の結果に基づいて選択的に計算され得る。それによって、サーチ時間がさらに減少され得る。
【0025】
サーチにおいて、クエリーオブジェクトからの所定の距離内に配置された全部のオブジェクトが識別され得る。この距離は、距離メトリックに従って規定される。これは、所与の閾値を超過しない、クエリーオブジェクトへの相違を有する全部のオブジェクトが識別され、かつユーザーに出力されることを可能にする。
【0026】
代替的に、またはさらに、距離メトリックに従って決定された、索引構造のクエリーオブジェクトのk個の最も近い近傍点を表す整数個(k>1)のオブジェクトが識別され得る。これは、距離メトリックに基づいてクエリーオブジェクトの最も類似であるk個のオブジェクトが識別され、かつユーザーに出力されることを可能にする。
【0027】
識別されたオブジェクトは、クエリーオブジェクトとそれぞれの識別されたオブジェクトとの間の距離に基づいて出力され得る。識別されたオブジェクトを出力する場合に、オブジェクトは、クエリーオブジェクトとそれぞれに識別されたオブジェクトとの間の距離に従って格納され得る。例として、光学出力ユニットを介して出力することに対して、クエリーオブジェクトからの最も近い距離を有するオブジェクトは、最も上の位置または最も左の位置において出力され得、他のオブジェクトは、クエリーオブジェクトからの距離を増加する順序で出力され得る。同様に、オーディオ出力ユニットを介して出力することに対して、クエリーオブジェクトからの最も近い距離を有するオブジェクトが最初に出力され得、他のオブジェクトは、その後、クエリーオブジェクトからの距離を増加する順序で連続して出力され得る。
【0028】
もう1つの側面に従って、ナビゲーションデバイスが提供される。ナビゲーションデバイスは、規則デバイスと処理デバイスとを含む。記憶デバイスは、複数のオブジェクトを含むデータベースに対して索引構造を格納し、索引構造は、複数のノードを含む。処理デバイスは、記憶デバイスに結合される。クエリーオブジェクトに対して類似性サーチを行うために、処理デバイスは、複数のオブジェクトのうちの少なくとも1つのオブジェクトに関連付けられた索引構造のノードにアクセスするように構成される。処理デバイスはさらに、距離メトリックに従って、クエリーオブジェクトと少なくとも1つのオブジェクトとの間の距離を決定するように構成される。処理デバイスはさらに、決定された距離に基づいて、索引構造の別のノードに選択的にアクセスするように構成される。
【0029】
このようなナビゲーションデバイスは、ファジィサーチが実装されることを可能にし、ファジーサーチは、正確なマーチについての情報を提供するだけではなく、データベースの最も類似なオブジェクトについての情報も検索する。ナビゲーションデバイスにおいて、クエリーオブジェクトと索引構造のノードのオブジェクトとの距離は、アクセスされるべきである他のノードを識別するために決定される。これは、サーチが効率的に行われることを可能にする。クエリーオブジェクトから閾値より大きな距離を有するオブジェクトを含むかまたは指すアクセスノードが必要とされない。距離メトリックに従って決定された距離を使用することによって、クエリーオブジェクトと索引構造に含まれるオブジェクトとの間の類似または相違が、量的に評価される。
【0030】
オブジェクトは、音素ストリングおよび/またはテキストストリングであり得る。
【0031】
索引構造は、メトリック索引構造であり得る。
【0032】
ナビゲーションデバイスは、入力ユニットを含み得る。処理デバイスは、入力ユニットからクエリーオブジェクトを受信するように、または入力ユニットで受信された入力に基づいてクエリーオブジェクトを生成するように、入力ユニットと結合され得る。処理デバイスは、クエリーオブジェクトを生成するために、テキスト−音素変換を行うように構成され得る。
【0033】
ナビゲーションデバイスは、出力ユニットを含み得る。処理デバイスは、類似性サーチにおいて見つけられた複数のオブジェクトが出力ユニットを介して出力されるように、出力ユニットを制御するように構成され得る。処理デバイスは、出力オブジェクトがクエリーオブジェクトとそれぞれの出力オブジェクトとの距離に従って格納されるように、出力ユニットを制御するように構成され得る。
【0034】
処理デバイスは、距離メトリックに従って決定された、クエリーオブジェクトからの固定のサーチ半径より近い距離を有する全部のオブジェクトを識別するように構成され得る。処理デバイスは、代替的に、またはさらに、クエリーオブジェクトのk個の最も近い近傍点であるk>1個のオブジェクトを識別するように構成され得る。
【0035】
処理デバイスは、任意の側面または実施形態に従って類似性サーチ方法を行うように構成され得る。
【0036】
もう1つの側面に従って、ナビゲーションデバイスデータベースに対してメトリック索引構造を生成する方法が提供される。データベースは、複数のオブジェクトを含む。方法において、索引構造の他のノードへのポインターを含む索引構造のディレクトリノードと索引構造のリーフノードとが生成される。ノードを生成することは、複数組のオブジェクトに対して、オブジェクトと組のオブジェクトのオブジェクトとの間の距離をそれぞれに決定し、それによって複数の距離を決定することを含む。距離は、それぞれ、距離メトリックに従って決定される。複数の距離に基づいて、ディレクトリノードに含まれるべきであるオブジェクトとリーフノードに含まれるべきであるオブジェクトとが識別される。
【0037】
この方法を用いて、索引構造が生成され、類似性サーチ方法において、そして任意の側面および実施形態のナビゲーションデバイスにおいて使用され得る。生成されたメトリック構造は、オブジェクトの間の相対的距離である決定された複数の距離に従って組織化される。これは、また多重次元の空間の座標によって規定されないオブジェクトに対して、メトリック索引構造がセットアップされることを可能する。
【0038】
オブジェクトは、音素ストリングまたはアルファベットや数値のストリングであり得る。
【0039】
索引構造を生成する場合に、距離メトリックは、ストリングメトリックに対する複数の距離定義のうちの任意の1つから選択され得る。例として、距離メトリックは、Levenshtein距離に基づき得る。距離関数はまた、Damerau−Levenshtein距離、Jaro−Winkler距離、Hamming距離、Soundex距離メトリックに従って決定される距離、Needleman−Wunsch距離、Gotoh距離、Smith−Waterman−Gotoh距離、P≧1を有するLp距離または反射の公準、対称性および三角不等式に従う任意の他のストリングメトリックのうちの任意の1つであり得る。
【0040】
方法は、ディレクトリノードに含まれるオブジェクトに対して、それぞれのオブジェクトとオブジェクトを指す索引構造のサブツリーに含まれる任意のオブジェクトとの距離の上限を格納することを含み得る。この上限、またはカバレッジ半径は、索引構造内に格納され得る。
【0041】
方法は、代替的に、またはさらに、親オブジェクトを有するノードに含まれるオブジェクトに対して、それぞれのオブジェクトとその親オブジェクトとの距離を格納することを含み得る。
【0042】
方法において、索引構造は、反復のやり方で成長され得る。方法は、ノードに追加のオブジェクトを挿入することを含み得る。そのために、オブジェクトが挿入されるべきであるノードが識別され得る。ノードを識別することは、挿入されるべきであるオブジェクトと索引構造のディレクトリノードのオブジェクトとの距離を決定することを含み得る。
【0043】
方法はさらに、ノードを分割することを含み得る。そのために、オブジェクトの挿入の後に、ノードのオブジェクトの数は、オブジェクトの固定の最大の数より大きいか否かが決定され得る。数が最大の数を超える場合に、ノードが分割される。ノードを分割することは、新しいディレクトリノードに含まれるべきであるノードからのオブジェクトを選択することと、オブジェクトを2つの新しいリーフノードのうちの1つに割り当てることとを含み得る。ノードを分割することは、新しいディレクトリノードの2つのオブジェクトの2つのカバレッジエリアの間のオーバーラップが閾値以下に減少され、または最小化されるように行われ得る。
【0044】
もう1つの側面に従って、ナビゲーションデバイスデータベースのためのメトリック索引構造が提供される。メトリック索引構造は、索引構造の他のノードへのポインターを含むディレクトリノードとリーフノードとを含む。ノードのうちの少なくともいつくかは、メトリックに従って決定された、索引構造のオブジェクトの間の距離についての情報を表す距離情報を含み得る。少なくともディレクトリノードは、ディレクトリノードのオブジェクトと、それぞれのオブジェクトに対する索引構造のサブツリーに含まれる任意のオブジェクトとの距離の上限を含み得る。
【0045】
前述の特徴と以下に説明されるべきであるそれとは、示されるそれぞれの組み合わせだけではなく、他の組み合わせまたは単独に使用され得ることが理解されるべきである。
【0046】
本発明は、例えば以下の項目を提供する。
(項目1)
索引構造(10;70)を用いてナビゲーションデバイスデータベースにおいて類似性サーチを行う方法であって、該データベースは、複数のオブジェクトを含み、該索引構造(10;70)は、複数のノード(11−17;71−75)を含み、
該方法は、
クエリーオブジェクト(51)を受信することと、
該複数のオブジェクトのうちの少なくとも1つのオブジェクト(52,55,59,60)に関連付けられる該索引構造(10;70)のノード(11−13;71−73)にアクセスすることと、
該ノード(11−13;71−73)に関連付けられた該少なくとも1つのオブジェクト(52,55,59,60)の各々のオブジェクトに対して、それぞれ、該クエリーオブジェクト(51)と該オブジェクトとの間の距離(65,66)を決定することであって、該距離(65,66)は、それぞれ、距離メトリックに従って決定される、ことと、
該決定された距離(65,66)に基づいて、該索引構造(10;70)の別のノード(12−17;72−75)に選択的にアクセスすることと
を含む、方法。
(項目2)
上記クエリーオブジェクト(51)は、音素ストリングまたはテキストストリングである、上記項目のいずれかに記載の方法。
(項目3)
上記クエリーオブジェクト(51)を受信することは、テキスト入力を受信することと、テキスト−音素変換を行うこととを含む、上記項目のいずれかに記載の方法。
(項目4)
上記索引構造(10;70)は、上記少なくとも1つのオブジェクト(52,55,59,60)と該索引構造(10;70)の他のオブジェクトとの間の距離についての距離情報をさらに含み、
該他のノード(12−17;72−75)は、該距離情報と、上記決定された距離(65,66)とに基づいて選択的にアクセスされる、上記項目のいずれかに記載の方法。
(項目5)
上記ノード(11−13;71−73)は、いくつかのオブジェクト(52,55)に関連付けられ、
上記距離情報は、該いくつかのオブジェクト(52,55)の各々に対して、該それぞれのオブジェクト(52,55)と、該それぞれのオブジェクト(52,55)に関連付けられた上記索引構造(10;70)のサブツリーに含まれる任意のオブジェクト(59−64)との間の距離の上限(53,56)を含む、上記項目のいずれかに記載の方法。
(項目6)
上記クエリーオブジェクト(51)は、音素ストリングまたはテキストストリングであり、
該クエリーオブジェクト(51)を受信することは、テキスト入力を受信することと、テキスト−音素変換を行うこととを含む、上記項目のいずれかに記載の方法。
(項目7)
オブジェクトは、上記決定された距離(65,66)に基づいて、上記類似性サーチから選択的に取り除かれる、上記項目のいずれかに記載の方法。
(項目8)
上記他のノード(12−17;72−75)が上記索引構造(10;70)のリーフノード(14−17;74,75)である場合に、上記距離(65,66)を決定することと、上記別のノード(12−17;72−75)に選択的にアクセスすることとが終了される、上記項目のいずれかに記載の方法。
(項目9)
上記距離メトリックに従って決定された、上記クエリーオブジェクト(51)からの所定の距離(58)内に配置された全てのオブジェクトが識別される、上記項目のいずれかに記載の方法。
(項目10)
1より大きい整数k個のオブジェクトが識別され、該k個のオブジェクトは、上記距離メトリックに従って決定された、上記クエリーオブジェクト(51)のk個の最も近い近傍点を表す、上記項目のいずれかに記載の方法。
(項目11)
上記識別されたオブジェクトは、上記クエリーオブジェクト(51)と、それぞれの識別されたオブジェクトとの間の距離に基づいて決定された順序で出力される、上記項目のいずれかに記載の方法。
(項目12)
ナビゲーションデバイスであって、該ナビゲーションデバイスは、
複数のオブジェクトを含むデータベースに対する索引構造(10;70)を格納する記憶デバイス(3)であって、該索引構造(10;70)は、複数のノード(11−17;71−75)を含む、記憶デバイス(3)と、
該記憶デバイス(3)に結合された処理デバイス(2)と
を含み、該処理デバイス(2)は、クエリーオブジェクト(51)に対して類似性サーチを行うために、
該複数のオブジェクトのうちの少なくとも1つのオブジェクト(52,55,59,60)に関連付けられた該索引構造(10;70)のノード(11−13;71−73)にアクセスすることと、
距離メトリックに従って、該クエリーオブジェクト(51)と該少なくとも1つのオブジェクト(52,55,59,60)との間の距離(65,66)を決定することと、
該決定された距離(65,66)に基づいて、該索引構造(10;70)の別のノード(12−17;72−75)に選択的にアクセスすることと
を行うように構成される、ナビゲーションデバイス。
(項目13)
上記処理デバイス(2)は、上記項目のいずれかに記載の方法を行うように構成される、上記項目のいずれかに記載のナビゲーションデバイス。
(項目14)
複数のオブジェクトを含むナビゲーションデバイスデータベースのためのメトリック索引構造(10;70;110)を生成する方法であって、該方法は、該索引構造(10;70;110)の他のノードへのポインターを含む該索引構造のディレクトリノード(11−13;71−73;111,114)を生成することと、該索引構造のリーフノード(14−17;74;75;113,115,116)を生成することとを含み、
該ディレクトリノード(11−13;71−73;111,114)と該リーフノード(14−17;74;75;113,115,116)とを生成することは、
該オブジェクトの複数の組に対して、それぞれ、該オブジェクトの組のオブジェクト間の距離を決定することによって複数の距離を決定することであって、該距離は、それぞれ、距離メトリックに従って決定される、ことと、
該複数の距離に基づいて、ディレクトリノード(11−13;71−73;111,114)に含まれるべきであるオブジェクトと、リーフノード(14−17;74;75;113,115,116)に含まれるべきであるオブジェクトとを識別することと
を含む、方法。
(項目15)
上記オブジェクトは、音素ストリングまたはテキストストリングである、上記項目のいずれかに記載の方法。
(項目16)
上記ディレクトリノードおよび/または上記リーフノードにおいて、上記複数の距離から導かれた距離情報を格納することを含む、上記項目のいずれかに記載の方法。
【0047】
(摘要)
ナビゲーションデバイスデータベースにおいて類似性サーチを行う方法は、メトリック索引構造を使用する。索引構造は、複数のノードを含む。クエリーオブジェクト(51)が受信される場合に、少なくとも1つのオブジェクト(52,55,59,60)に関連付けられる索引構造のノードがアクセスされる。クエリーオブジェクト(51)と少なくとも1つのオブジェクト(52,55,59,60)との間の距離(65,66)は、距離メトリックに従って決定される。決定された距離に基づいて、索引構造の別のノードが選択的にアクセスされる。
【0048】
実施形態の先述および他の特徴は、添付の図面に関して読まれた場合、実施形態の以下の詳細な説明から、より明らかとなる。図面において、類似した参照数字は、類似した要素を指す。
【図面の簡単な説明】
【0049】
【図1】図1は、ナビゲーションデバイスの概略ブロック図である。
【図2】図2は、索引構造の概略表示である。
【図3】図3は、索引構造のノードにおけるデータエントリの概略表示である。
【図4】図4は、索引構造のノードにおけるデータエントリの概略表示である。
【図5】図5は、類似性サーチを用いる方法のフローチャートである。
【図6】図6は、類似性サーチを行う方法のフローチャートである。
【図7】図7は、図6の方法を説明するためのデータベースオブジェクトの概略表示である。
【図8】図8は、図6の方法を説明するための索引構造の概略表示である。
【図9】図9は、類似性サーチを用いる方法のフローチャートである。
【図10】図10は、索引構造を生成する方法のフローチャートである。
【図11】図11は、図10の方法を説明するための索引構造の概略表示である。
【図12】図12は、図10の方法を説明するための索引構造の概略表示である。
【発明を実施するための形態】
【0050】
(詳細な説明)
図1は、実施形態に従う乗り物のナビゲーションデバイス1を概略的に例示する。ナビゲーションデバイス1は、例えば、メモリに記憶される制御命令に従って、ナビゲーションデバイス1の動作を制御する処理デバイス2を含む。処理デバイス2は、例えば、1つ以上のマイクロプロセッサ、デジタルシグナルプロセッサまたは特定用途向け集積回路の形態の中央処理デバイスを含み得る。ナビゲーションデバイス1は、記憶デバイス3をさらに含む。記憶デバイス3は、揮発性または不揮発性記憶媒体またはメモリであり得る。記憶デバイス3は、ランダムアクセスメモリ、フラッシュメモリまたはハードドライブのようなさまざまなタイプの記憶またはメモリ媒体のうちのいずれか1つ、またはいずれかの組み合わせを含み得るが、コンパクトディスク(CD)、DVD、メモリカードなどのようなリムーバルメモリも含み得る。ナビゲーションデバイス1は、また、情報をユーザーに出力する出力インターフェース4を含む。出力インターフェース4は、光学出力デバイス、オーディオ出力デバイスまたはそれらの組み合わせを含み得る。ナビゲーションデバイス1は、また、入力インターフェース5を含み、入力インターフェース5は、ユーザーが情報を入力することを可能にする。特に、入力インターフェース5は、ユーザーがテキスト情報または音声情報を入力することを可能にし得る。
【0051】
ナビゲーションデバイスは、位置センサーおよび/またはワイヤレス受信器および/または乗り物のインターフェースのようなさらなるコンポーネントを含み得る。位置センサーは、ナビゲーションデバイス1がインストールされている乗り物の現在の位置を決定するように適合され得る。位置センサーは、GPS(全地球測位システム)センサー、ガリレオセンサー、モバイル通信網に基づく位置センサーなどを含み得る。ワイヤレス受信器は、記憶デバイス3に記憶されたデータベースを更新するための情報を受信するように構成され得る。乗り物のインターフェースは、処理ユニット2が情報を他の乗り物システムから得ることを可能にし得るか、または乗り物状態情報を乗り物のインターフェースを介して得ることを可能にし得る。例えば、乗り物のインターフェースは、CAN(コントローラーエリアネットワーク)またはMOST(メディアオリエンテッドデバイストランスポート)インターフェースを含み得る。
【0052】
記憶デバイス3は、複数のオブジェクトを含むデータベースを記憶する。複数のオブジェクトは、テキストストリングまたは音素ストリングを含み得る。例示として、データベースは、道路名称を表すオブジェクト、ポイントオブインタレスト(POI)の名称を表すオブジェクトおよび/または道路またはPOIに関してさらなる情報を表すオブジェクトを含み得る。そのような情報は、形態を有し得るか、またはテキストストリングまたは音素ストリングまたはマルチメディアオブジェクトを含み得る。
【0053】
記憶デバイス3は、データベースに対して索引構造を記憶する。ナビゲーションデバイス1の使用において、プロセッサ2は、索引構造を用いて類似性サーチを行う。プロセッサ2は、入力インターフェース5において受信された入力をクエリーオブジェクトとして用い得るか、または入力に関するさらなる動作を行い得ることによってクエリーオブジェクトを生成する。次いで、プロセッサ2は、クエリーオブジェクトに対して索引構造を用いて類似性サーチを行う。類似性サーチは、クエリーオブジェクトと、データベースに記憶されたオブジェクトとの間の距離を計算することを含む。本明細書において用いられた場合、「計算する」は、さまざまな方法によって実装され得、ルックアップ動作を含む。距離は、クエリーオブジェクトと索引構造におけるオブジェクトとの相違に対する量的測定値を提供する。サーチにおいて見つかったいくつかの非常に類似したオブジェクトがユーザーに出力インターフェース4を介して出力される。例示として、プロセッサ2は、光学出力インターフェース4上にリストを生成し得る。光学出力インターフェース4において、クエリーオブジェクトから最も小さい距離を有する索引構造のオブジェクトが、クエリーオブジェクトからの距離によって決定された順番に羅列される。
【0054】
索引構造は、論理的にデータベースから分離している。あるいは、データベースは、索引構造と結合し得る。
【0055】
索引構造は、いずれか適切な技術を用いて実装され得る。限定としてよりも、むしろ例示として、索引構造は、SQ Liteを用いて実装され得る。索引構造は、ユーザー定義の索引構造としてデータベースシステム、特にリレーショナルデータベースシステムに実装され得る。リレーショナルデータベースは、テキストストリングまたは音素ストリングのためのテーブルもしくは対のテキストストリングと対の音素ストリングとの間の距離のための別のテーブルを含み得る。
【0056】
データベースのための索引構造は、索引ツリーとして組織化され得る。索引構造は、複数のノードを含み得、ノードの少なくとも一部は、他のノードへのポインターを含むディレクトリノードであり、少なくとも一部の他のノードは、他のノードへのポインターを含まないリーフノードである。ノードの各々は、少なくとも1つおよび一般的な複数のオブジェクトに関連付けられ得る。ディレクトリノードは、ディレクトリノードに含まれるオブジェクトに対して、それらのオブジェクトの各々に関連付けられたそれぞれのサブツリーのルートへのポインターを記憶し得る。
【0057】
記憶デバイス3に記憶された索引構造は、メトリック索引構造であり、メトリック索引構造は、距離メトリックを用いてサーチされ得る。さらに、索引構造は、また、距離メトリックに従って組織化される。つまり、索引構造は、距離メトリックに従って、決定されたデータベースのオブジェクトの間の相対的な距離に基づいてサブツリーに区分される。
【0058】
一般的な用語に従って、本明細書における「距離メトリック」または「メトリック」は、以下の条件を満たす空でないセットMのオブジェクトに対して規定された距離測定値を指す:
反射性(不可識別者同一とも呼ばれる):
∀x,y∈M: x=yの場合かつx=yの場合のみd(x,y)=0; (1)
対称性:
∀x,y∈M: d(x,y)=d(y,x) (2)
三角不等式:
∀x,y,z∈M: d(x,y)≦d(x,y)+d(y,z) (3)
上の公準(1)〜(3)が満たされた場合、距離も正値性公準を満たすことになる:
∀x,y∈M: d(x,y)≧0 (4)
セットMおよびメトリックdのタプル(M,d)は、メトリック空間とも呼ばれる。
【0059】
メトリック(このメトリックに従って、索引構造が組織化される)(また、索引構造におけるサーチを行うために用いられる)は、とりわけデータベースにおけるオブジェクトに応じて、さまざまな定義から選択され得る。例示として、テキストストリングまたは音素ストリングであるオブジェクトに対して、Levenshtein距離がメトリックを規定する。Levenshtein距離は、索引構造を作成するときと、索引構造において類似性サーチを行うときとの両方で用いられ得る。Levenshtein距離は、編集距離とも呼ばれる。2つのストリングの間のLevenshtein距離は、1つのストリングを他のストリングに変形させるために必要な編集の最小数として規定され、許容可能な編集動作は、単一の文字の挿入、削除または交換である。他のメトリックも索引構造を組織化することと、索引構造において類似性サーチが行われた場合に距離を計算することとのために用いられ得る。
【0060】
他のメトリックが用いられ得る。例示として、距離機能がDamerau−Levenshtein距離、Jaro−Winkler距離、Hamming距離、Soundex距離メトリックに従って決定された距離、Needleman−Wunsch距離、Gotoh距離、Smith−Waterman−Gotoh距離、p≧1を有するLp距離または反射性、対称性、三角不等式の公準を用いてコンパイルする任意の他のストリングメトリックからのいずれか1つとなるように選択され得る。
【0061】
記憶媒体3に記憶された索引構造は、オブジェクトおよびサーチツリーを規定する他のノードへのポインターを含み得るだけでなく、さらに索引構造におけるオブジェクト間の距離を示す距離情報も含み得る。そのような距離情報は、サーチを行う場合、索引構造から検索され得る。そのような距離情報は、下でさらに詳細に説明されるように、特に、オブジェクトまたはノードを類似性サーチから取り除くために用いられ得る。
【0062】
図2は、索引構造10の概略的表示である。図2においてツリーのような構造として示されるが、索引構造は、一般的にいずれか適切なフォーマットで記憶され得、例えば、リレーショナルデータベースにおけるユーザー定義の索引構造として記憶され得る。
【0063】
索引構造は、ディレクトリノード11〜13およびリーフノード14〜17を含む。ディレクトリノード11〜13の各々は、他のノードへのポインターを含む。各ポインターは、それぞれのノードに含まれるオブジェクトにそれぞれ関連付けられ得る。例示として、ルートノード11は、第1のオブジェクトに関連付けられたデータエントリ21および第2のオブジェクトに関連付けられたデータエントリ22を含み得る。データエントリ21は、ディレクトリノード12へのポインターを含み得る。ディレクトリノード12は、第1のオブジェクトのサブツリーのルートである。データエントリ22は、ディレクトリノード13へのポインターを含み得、ディレクトリノード13は、第2のオブジェクトのサブツリーのルートである。
【0064】
ディレクトリノード12は、データベースの他のオブジェクトに関連付けられたデータエントリ23、24を含み得る。データエントリ23、24は、それぞれ、別のノードへのポインターを含み得る。図2において例示される構造において、データエントリ23、24は、それぞれ、リーフノード14、15へのポインターを含む。ディレクトリノードのより大きい階層が実装され得る。同様に、ディレクトリノード13は、データベースの他のオブジェクトに関連付けられたデータエントリ25、26を含み得る。データエントリ25、26は、それぞれ、リーフノード16、17のような別のノードへのポインターをそれぞれ含み得る。
【0065】
リーフノード14〜17は、データベースの1つまたは複数のオブジェクトに関連付けられたデータエントリをそれぞれ含み得る。例示として、リーフノード14は、データベースの3つのオブジェクトに関連付けられたデータエントリ27〜29を含んで示される。
【0066】
索引構造において、サーチツリーは、距離メトリックに従って区分される。この目的のために、データ21によって表される第1のオブジェクトおよびデータ22によって表される第2のオブジェクトは、ルートノード12を有する第1のサブツリーに含まれる全てのオブジェクトが第1のオブジェクトの周りに第1のカバレッジ半径を有するカバレッジエリア内に配置され、ルートノード13を有する第2のサブツリーに含まれる全てのオブジェクトが第2のオブジェクトの周りに第2のカバレッジ半径を有するカバレッジエリア内に配置されるように、選択され得る。換言すると、第1のカバレッジ半径は、データエントリ21によって表されるオブジェクトからのノード12、14および15のうちのいずれか1つによって表される任意のオブジェクト間の距離の最大であり得る。データエントリ21は、このサブツリーの親である。第2のカバレッジ半径は、データエントリ22によって表されるオブジェクトからのノード13、16および17のうちのいずれか1つによって表される任意のオブジェクト間の距離の最大であり得る。データエントリ22は、このサブツリーの親である。
【0067】
ルートノード11における第1のオブジェクトおよび第2のオブジェクトならびに関連付けられたサブツリーにおけるオブジェクトは、第1および第2のカバレッジエリアが好ましくは可能な限り小さい重複を有するように選択される。さらに、ルートノード11における第1のオブジェクトおよび第2のオブジェクトならびに関連付けられたサブツリーにおけるオブジェクトは、第1のオブジェクトとルート12を有するサブツリーに含まれるいずれかのオブジェクトとの間の第1の最大距離および第2のオブジェクトとルート13を有するサブツリーに含まれるいずれかのオブジェクトとの第2の最大距離が可能な限り小さいままであるように選択され得る。したがって、索引構造は、距離メトリックに従って決定されたオブジェクト間の近接に従って区分される。
【0068】
上の索引構造を組織化するために概説された基準は、ルートノード11に当てはまるだけでなく、いずれかのディレクトリノード12、13にも当てはまる。つまり、オブジェクトは、ディレクトリノードにおける異なるオブジェクトのカバレッジエリアの重複を減少させるため、さらに、カバレッジエリアのサイズを減少させるためにディレクトリおよびリーフノードに組織化される。そのような索引構造を生成するための体系的なアプローチは、図10〜12を参照して下で説明される。
【0069】
いくつかの実施形態において、索引構造のディレクトリノードは、索引構造に含まれるオブジェクト間の距離に関する情報を含み得る。ディレクトリノードにおけるデータエントリ21〜26は、それぞれ、オブジェクトと、このオブジェクトが指すサブツリーに含まれるいずれかのオブジェクトとの間の距離の上限を含み得る。上限は、これらの距離の最大であり得る。例示として、データエントリ21は、データエントリ21によって表される第1のオブジェクトと、ノード12、14および15におけるいずれかのオブジェクトとの間の距離の上限を含み得る。データエントリ22は、データエントリ22によって表される第2のオブジェクトと、ノード13、16および17におけるいずれかのオブジェクトとの間の距離の上限を含み得る。データエントリ23は、データ23によって表されるオブジェクトと、ノード14などにおけるオブジェクトのうちのいずれか1つとの間の距離の上限を含み得る。この上限に基づいて、除外が類似性サーチにおいて行われ得る。
【0070】
親オブジェクトを有する全てのノードにおけるデータは、それぞれのノードにおけるいずれかのオブジェクトに対して、オブジェクトと、その親オブジェクトとの間の距離に関する情報をさらに含み得る。この情報も類似性サーチにおける距離を推定するために用いられ得る。
【0071】
索引構造は、P.Ciaccia、M.PatellaおよびP.Zezulaによって発展されたMツリーとして特に組織化され得る。距離メトリックに従って組織化される他の索引構造も用いられ得る。例示として、索引構造は、vantageポイントツリーであり得る。
【0072】
図3は、ディレクトリノードに含まれるオブジェクトに関連付けられたデータエントリ31に対する例示的データ構造を示す。Mツリーにおいて用いられる例示的データエントリが例示される。データエントリ31は、オブジェクトOrを含む。あるいは、オブジェクトの特徴量がデータ31に含まれ得る。あるいは、オブジェクトの識別子が、データ31に含まれ得る。
【0073】
データエントリ31は、オブジェクトOrに対するサブツリーのルートノードへのポインターptr(T(Or))をさらに含む。
【0074】
ディレクトリノードが索引構造のルートノードでない場合、データエントリ31は、オブジェクトOrとその親オブジェクトP(Or)との間の距離d(Or;P(Or))をさらに含み得る。そのような索引構造への距離を含むことによって、値d(Or;P(Or))は、距離を推定するためか、および/またはサーチを取り除くために用いられ得る。類似性サーチの効率は、ランタイムにおいて向上され得る。
【0075】
データエントリ31は、オブジェクトOrと、ルートノードT(Or)を有するサブツリーにおけるいずれかのオブジェクトとの間の距離の上限である半径r(Or)をさらに含み得る。半径r(Or)は、そのような距離の最大であることが規定され得る:
r(Or)=maxj d(Oj;Or) (5)
ここで、最大は、ポインターptr(T(Or))が指すサブツリーにおける全てのオブジェクトOjに対して決定される。
【0076】
図4は、索引構造のリーフノードに含まれるオブジェクトに関連付けられたデータエントリ32に対する例示的データ構造を示す。Mツリーにおいて用いられる例示的データエントリが例示される。データエントリ32は、オブジェクトOjを含む。あるいは、オブジェクトの特徴量がデータ32に含まれ得る。あるいは、オブジェクトの識別子がデータ32に含まれ得る。
【0077】
データエントリ32は、それぞれのオブジェクトOjとその親オブジェクトP(Oj)との間の距離d(Oj;P(Oj))をさらに含み得る。そのような索引構造への距離を含むことによって、値d(Oj;P(Oj))は、サーチ中に距離が計算されることを要求せずに、距離を推定するためか、および/またはサーチを取り除くために用いられ得る。
【0078】
他のデータ構造が用いられ得る。例示として、データエントリ31またはデータエントリ32において示されるさまざまなフィールドエントリは、互いに近接して記憶される必要はない。リレーショナルデータベースにおけるユーザー定義の索引構造は、索引構造の記憶のために用いられ得る。
【0079】
図5は、プロセッサ2によって索引構造を用いて行われ得る方法33のフローチャートである。
【0080】
34において、入力が受信される。入力は、入力インターフェース4を介して受信されたユーザー入力であり得る。あるいは、入力は、プロセッサ2へ乗り物の他のシステムまたはデバイスによって提供され得るか、または乗り物の外側から受信され得る。入力はテキストストリングであり得る。
【0081】
35において、テキスト−音素変換が行われる。結果の音素ストリングは、クエリーオブジェクトとして機能する。
【0082】
36において、類似性サーチが索引構造を用いて行われる。索引構造は、距離メトリックに従って組織化されたメトリック索引構造である。索引構造は、図2〜4を参照して上で説明されたように構成され得る。類似性サーチを行うために、クエリーオブジェクトと、索引構造におけるオブジェクトとの間の距離が距離メトリックに従って決定される。
【0083】
37において、サーチにおいて見つかる最も関連するオブジェクトが出力される。最も関連するオブジェクトは、クエリーオブジェクトのk>1個の最も近い近傍点であり得る。つまり、索引付けされたオブジェクトの中で、クエリーオブジェクトから最も小さい距離を有するk個のオブジェクトであり、距離は、距離メトリックに従って決定される。あるいは、最も関連するオブジェクトは、所定の閾値より小さいクエリーオブジェクトからある距離を有する索引構造における全てのオブジェクトであり得る。
【0084】
37における出力は、複数のオブジェクトが出力されるように行われ得る。オブジェクトは、クエリーオブジェクトからのそれぞれの距離によって決定された順序で出力され得る。
【0085】
図5は、類似性サーチを行う方法40のフローチャートである。方法40は、プロセッサ2によって行われ得る。類似性サーチは、距離メトリックd(・;・)に従って組織化された索引構造を用いて行われる。オブジェクトのタイプに応じて、さまざまな距離メトリックのうちのいずれか1つが上で説明されたように選択され得る。索引構造は、図2〜4を参照して説明されたように構成され得る。
【0086】
41において、クエリーオブジェクトが受信される。クエリーオブジェクトを受信することは、テキスト−音素変換を行うような入力の処理をすることを含み得る。
【0087】
42において、索引構造のノードNがアクセスされる。方法40のステップは、ツリーを通るパスに沿って反復的に繰り返され得る。第1の反復において、ノードNは、索引構造のルートノードであり得る。続く反復において、ノードNは、索引構造のディレクトリノードであり得る。
【0088】
43において、ノードNにおけるオブジェクトOrが選択される。異なるオブジェクトOrは、異なるオブジェクトOrがノードNに含まれる順序で選択され得る。
【0089】
44において、クエリーオブジェクトQと、ノードNにおいて選択されたオブジェクトOrとの間の距離d(Or;Q)が決定される。テキストまたは音素ストリングに対して、距離を決定することは、Levenshtein距離またはいずれか他のストリングメトリックに従う距離を計算することを含み得る。44における距離は、距離メトリックを用いて決定され、距離メトリックに従って、索引構造が区分される。
【0090】
45において、距離d(Or;Q)がオブジェクトOrのカバレッジ半径r(Or)とサーチ半径Rとの総計より大きいか否かが決定される。サーチ半径Rは、固定された半径であり得る。あるいは、サーチ半径Rは、また、類似性サーチが継続するとダイナミックに調節され得る。例示として、サーチ半径Rは、Rがクエリーオブジェクトと、それまでに検索されたk番目の最も近い近傍点との間の距離に対応するように、k個の最も近い近傍点サーチにおいて調節され得る。
【0091】
距離d(Or;Q)がカバレッジ半径r(Or)とサーチ半径Rとの総計より大きいことが決定された場合、方法は45から46へ進む。
【0092】
46において、オブジェクトOrに対するサブツリーにおける全てのオブジェクトがサーチから取り除かれる。サブツリーにおけるいずれかのオブジェクトと、オブジェクトOrとの間の距離の上限であるカバレッジ半径r(Or)の定義によって、オブジェクトOrに対するサブツリーにおけるオブジェクトは、距離d(Or;Q)がr(Or)とRとの総計より大きい場合、クエリーオブジェクトQからのサーチ半径Rより小さいか、または等しい距離を有し得ない。サーチを取り除くことによって、不要なサーチステップが避けられ得る。
【0093】
距離d(Or;Q)がカバレッジ半径r(Or)とRとの総計より大きくないことが決定された場合、方法は45から47に進む。
【0094】
47において、サーチは、オブジェクトOrに対するサブツリーにおいて継続される。この目的のために、オブジェクトOrに対するサブツリーのルートノードT(Or)がアクセスされる。ルートノードは、45においてテストされた条件に基づいて選択的にアクセスされる。このサブツリーにおけるサーチを継続するために、ステップ42〜48がサブツリー内でリーフノードに達するまで繰り返され得る。索引構造のルートからリーフノードまでのパスに沿って、45において試験された条件がこのパスに沿って横切ったいずれかのオブジェクトOrに対して満たされていない場合のみ、リーフノードに達する。
【0095】
47においてリーフノードに達した場合、リーフノードにおけるオブジェクトOjと、クエリーオブジェクトQとの間の距離d(Oj;Q)が決定され得る。
d(Oj;Q)<R (6)
の場合、オブジェクトOjは、続く出力に対して関連する索引付けられたオブジェクトのリストに含まれ得る。k個の最も近い近傍点サーチが行われた場合、サーチ半径Rが更新され得る。つまり、式(6)が満たされ、オブジェクトOjが索引構造において識別された関連するオブジェクトのリストに含まれた場合、サーチ半径Rは、減少され得る。リーフノード(リーフノードに対して式(6)が満たされる)において、オブジェクトが見つからなかった場合、方法は48に進む。
【0096】
48において、別のオブジェクトOrがノードNにあるか否かが決定される。別のオブジェクトがある場合、オブジェクトOrのうちの別の1つが選択される43に方法は戻る。
【0097】
他のオブジェクトがノードNにないことが決定された場合、方法は49に進む。49において、識別されたオブジェクトが出力される。出力は、複数のオブジェクトが出力されるように行われ得る。類似性サーチにおいて見つかったオブジェクトは、クエリーオブジェクトQからのそれぞれの距離によって決定された順序で出力され得る。この距離は、ステップ44またはステップ47において先に決定されているので、距離は、識別されたオブジェクトを続く出力に対して順序付けられたリストにおいて組織化するために用いられ得る。あるいは、サーチ中に決定された距離は、クエリーオブジェクトQからの距離に従うオブジェクトの続く選別のために登録され得る。
【0098】
方法40において、類似性サーチがクエリーオブジェクトと索引付けられたオブジェクトとの間の距離に基づいて行われる。このことは、クエリーオブジェクトおよび索引付けられたオブジェクトがユークリッド空間において規定されない場合ですら、サーチが行われることを可能にする。類似性サーチ40は、多次元ベクトル空間において規定されたオブジェクトに対しても行われ得る。フォルトトレラントなサーチは、メトリック索引構造において、類似性サーチを用いて実装される。
【0099】
方法において、サーチは、クエリーオブジェクトと、索引構造のオブジェクトとの間の距離に基づいて選択的に取り除かれ得る。取り除くことは、方法40のステップ45において確認された条件に基づくか、もしくは下で説明される代替の条件またはさらなる条件に基づいて行われ得る。
【0100】
さらなる例示として、図7および図8への参照がなされる。図7は、オブジェクトの概略的表示50であり、図8は、索引構造70の概略的表示である。
【0101】
図7において示されるオブジェクトは、索引構造のルートノードに含まれるオブジェクト52および55を含む。オブジェクト52に対するサブツリーに配置されるオブジェクトは、オブジェクト52からのカバレッジ半径53より小さいか、または等しい距離に配置される。オブジェクト53に対するサブツリーに配置されるオブジェクトは、オブジェクト55からのカバレッジ半径56より小さいか、または等しい距離に配置される。概略的に例示されるように、オブジェクト52に対するサブツリーにおけるオブジェクトは、第1のカバレッジエリア54に配置される。オブジェクト55に対するサブツリーにおけるオブジェクトは、第2のカバレッジエリア57に配置される。索引構造は、カバレッジエリア54および57が小さい重複を有するように組織化される。オブジェクト52に関連付けられたサブツリーにおけるオブジェクトは、オブジェクト52の周りに集められ、オブジェクト55に関連付けられたサブツリーにおけるオブジェクトは、オブジェクト55の周りに集められる。
【0102】
オブジェクト52に対するサブツリーのルートノードは、オブジェクト59および60を含む。オブジェクト59および60を含むノードは、ディレクトリノードである。オブジェクト59に関連付けられたポインターは、オブジェクト61のようなオブジェクト59の近接にオブジェクトを含むリーフノードを指す。オブジェクト60に関連付けられたポインターは、オブジェクト62のようなオブジェクト60の近接にオブジェクトを含むリーフノードを指す。
【0103】
オブジェクト63、64は、オブジェクト55に関連付けられたサブツリーに含まれる。
【0104】
図8は、図7の表示に対応する索引構造70を例示する。図8において、オブジェクトは、A、B、C、D、E、F、G、H、I、Jとラベル付けされる。
【0105】
索引構造は、オブジェクトAおよびBを有するルートノード71を含む。ルートノード71におけるオブジェクトAは、例えば、図7の52において示されたオブジェクトに対応する。ルートノード71におけるオブジェクトBは、例えば、図7の55において示されたオブジェクトに対応する。
【0106】
索引構造は、オブジェクトAに関連付けられたサブツリーに対するルートノードであるディレクトリノード72を含む。ノード72は、オブジェクトCおよびDを含む。ノード72におけるオブジェクトCは、例えば、図7の59において示されたオブジェクトに対応する。ノード72におけるオブジェクトDは、例えば、図7の60において示されたオブジェクトに対応する。
【0107】
索引構造は、オブジェクトCを親ノードとして有するリーフノード74を含む。ノード74は、オブジェクトGおよびHを含む。ノード74におけるオブジェクトGは、例えば、図7の61において示されたオブジェクトに対応する。索引構造は、オブジェクトDを親ノードとして有するリーフノード75を含む。ノード75は、オブジェクトIおよびJを含む。ノード75におけるオブジェクトIは、例えば、図7の62において示されたオブジェクトに対応する。
【0108】
索引構造は、オブジェクトBに関連付けられたサブツリーにさらなるノード73を含む。
【0109】
近接サーチがクエリーオブジェクト51に対して行われると想定すると、サーチは、クエリーオブジェクトと索引におけるそれぞれのオブジェクトA〜Jとの間の距離を索引構造に含まれる距離情報と組み合わせて用いて、取り除かれ得る。サーチ半径Rは、図7の58において概略的に示される。
【0110】
サーチ方法40が開始された場合、索引構造のルートノード71がアクセスされる。66において示されるクエリーオブジェクトQとオブジェクトBとの間の距離d(Q;B)は、サーチ半径58とカバレッジ半径56との総計よりも大きい。そのため、オブジェクトBに対するサブツリーにおいてサーチは行われない。
【0111】
クエリーオブジェクトQと、65において示されたオブジェクトAとの間の距離d(Q;A)は、58において示されたサーチ半径と、53において示されたオブジェクトAに対するカバレッジ半径との総計より小さい。そのため、サーチは、オブジェクトAに対するサブツリーにおいて継続される。方法40のステップ42〜49をルートノード72を有するサブツリーに対して繰り返すことによって、クエリーオブジェクト51からのサーチ半径より小さいか、または等しい距離に配置されるオブジェクトG(図7においてシンボル61によって表される)およびI(図7においてシンボル62によって表される)が識別される。
【0112】
これらのオブジェクトを識別することによって、距離メトリックに従って測定して、クエリーオブジェクトとの相違が最も小さいオブジェクトを戻すフォルトトレラントなサーチが実装される。
【0113】
類似性サーチは、サーチをカバレッジ半径に基づいて取り除くことによって効率的に行われ得る。索引構造に含まれるさらなるデータは、サーチ効率をさらに向上させるために用いられ得る。例示として、オブジェクトと、それぞれの親オブジェクトとの間の距離が索引構造に記憶される場合、この情報は、ランタイムにおいて行われる必要がある距離計算の数を減少させるために用いられ得る。
【0114】
例示として、方法40のステップ42においてアクセスされたノードNは、索引構造のルートノードではないディレクトリノードである場合、P(Or)がノードオブジェクトOrの親を意味する
|d(Q;P(Or))―d(Or;P(Qr))|≦r(Or)+R (7)
である場合のみ、ステップ44〜47は、選択的に行われ得る。距離d(,)はメトリックであり、三角不等式は、オブジェクトOrに対するサブツリーにおけるオブジェクトがRの距離を有さないか、または式(7)が満たされない場合、クエリーオブジェクトQからより短い距離を有さないことを確実にする。式(7)が満たされない場合、オブジェクトOrに対するサブツリーは、取り除かれ得る。
【0115】
式(7)は、いずれかのさらなる距離計算を要求せずに、確認され得る。量d(Q;P(Or))は、親ノードに対する方法40の先行する反復において決定された。量d(Or;P(Or))は、索引構造から読まれ得る。式(7)の条件が満たされたか否かに応じて、方法40のステップ44における計算を選択的に行うことによって、計算コストがかかるランタイムにおける距離決定の数が減少され得る。
【0116】
さらなる例示として、リーフノードが方法40のステップ47においてアクセスされた場合、リーフノードにおけるオブジェクトOjとクエリーオブジェクトQとの間の距離は、Ojが含まれるリーフノードの親をP(Oj)が意味する
|d(Q;P(Oj)−d(Oj;P(Oj))|≦R (8)
である場合のみ、選択的に決定され得る。d(,)はメトリックなので、三角不等式は、OjおよびクエリーオブジェクトQは、Rの距離を有することができないか、または式(8)が満たされない場合、より短い距離を有することができないことを確実にする。式(8)が満たされない場合、d(Q;Oj)を決定することは要求されない。
【0117】
式(8)は、いずれかのさらなる距離計算を要求せずに確認され得る。量d(Q;P(Oj))は、親ノードに対する方法40の先行するステップにおいて決定された。量(Oj;P(Oj))は、索引構造から読まれ得る。式(8)の条件が満たされた場合のみd(Q;P(Oj))を選択的に計算することによって、計算コストがかかるランタイムにおける距離決定の数が減少され得る。
【0118】
図1〜8を参照して上で説明された実施形態に従う類似性サーチを行うデバイスおよび方法は、オブジェクトがテキストストリング、音素ストリングまたはマルチメディアオブジェクトである場合、特に用いられ得る。デバイスおよび方法は、音素ストリングとの最も小さい相違を有する索引構造におけるオブジェクトを識別するために用いられ得る。索引構造は、音素ストリングに対するフィルターとして用いられ得る。
【0119】
図9は、類似性サーチが用いられ得る方法80のフローチャート表示である。
【0120】
81において、認識器が入力に基づいて音素ストリングを決定する。入力は、テキストストリングであり得る。音素ストリングへの変換は、クラスターにおける音素間の距離(距離メトリックを用いて決定される)が閾値より下という意味で、互いに類似する音素に対応する異なる音素クラスターに基づき得る。
【0121】
82において、音素ストリングは、索引構造を用いてフィルタリングされる。音素ストリングは、図1〜8のうちのいずれか1つを参照して上で説明された索引構造において、類似性サーチを行うことによってフィルタリングされ得る。いくつかの実装において、閾値より小さいか、または等しいクエリーオブジェクトからの距離を有するオブジェクトが決定され得る。代替の実装において、クエリーオブジェクトのk個の最も近い近傍点オブジェクトが決定され得る。
【0122】
83において、音素フィルタリングの結果がスペルマッチャーに提供される。
【0123】
類似性サーチを行う方法のうちのいずれか1つおよび上で説明されたナビゲーションデバイスのうちのいずれか1つにおいて、索引構造はメトリック索引構造であり得る。類似性サーチを行う方法のうちのいずれか1つおよび上で説明されたナビゲーションデバイスのうちのいずれか1つにおいて、索引構造は、平衡サーチツリーに対応し得る。類似性サーチを行う方法のうちのいずれか1つ、および上で説明されたナビゲーションデバイスのうちのいずれか1つにおいて、索引構造は、ディレクトリノード毎およびリーフノード毎のエントリの数が固定されるように構成され得る。
【0124】
図10〜12を参照して、これらのプロパティーを有する索引構造を生成する方法が説明される。
【0125】
図10は、索引構造を生成する方法90のフローチャートである。方法90は、類似性サーチとは別個に行われ得る。特に、方法90は、ナビゲーションデバイスのためにデータを前処理する場合、行われ得る。索引構造は、サーバーコンピュータによってセントラルサイトにおいて構築され得、次いで、複数のナビゲーションデバイスに配備され得る。
【0126】
方法90は、索引構造をボトムアップ態様で構築し得、さらなるオブジェクトが続いて索引構造に加えられる。索引構造は、類似性サーチを行う場合にも続いて用いられる距離メトリックを用いて構築される。
【0127】
挿入されたオブジェクトは、ストリングであり得、特に音素ストリングまたはテキストストリングであり得る。
【0128】
方法90において、索引構造は、オブジェクトを挿入することと、オーバーフロー状態がノードにおいて生じた場合、ノードを分割することとによって構築される。ノードが分割された場合、新たなディレクトリノードが生成される。
【0129】
91において、索引構造に挿入されるオブジェクトOiが検索される。オブジェクトは、音素ストリングまたはテキストストリングであり得る。
【0130】
92において、索引構造のノードNがアクセスされる。1つしかノードがない場合、このノードがアクセスされる。索引構造が既にディレクトリノードを含んでいる場合、最も高いディレクトリノード(つまり、構造のルートノード)がアクセスされる。
【0131】
93において、ノードNがリーフノードか否かが決定される。ノードがリーフノードである場合、方法は98において継続する。そうでない場合、方法は、94において継続する。
【0132】
94において、距離d(Ok;Oi)は、挿入されるオブジェクトOiと、ノードに含まれる全てのオブジェクトOkとの間で決定される。距離は、それぞれ、距離メトリックに従って決定される。
【0133】
95において、ノードNに含まれるオブジェクトOkが決定され、オブジェクトOkに対してd(Ok;Oi)は、最小となる。
【0134】
96において、新たなノードNが選択され、ノードNは、オブジェクトOkに対するサブツリーのルートノードである。ノードNがアクセスされる。
【0135】
97において、ノードNはリーフノードであるか否かが決定される。ノードNがリーフノードでない場合、方法は94に戻る。そうでない場合、方法は、98において継続する。
【0136】
98において、オブジェクトの挿入後のノードNのサイズが、許容されたノードのエントリの最大数に対応する閾値を超えるか否かが決定される。エントリの許容された最大数が超えられないことが決定された場合、オブジェクトOiが99においてノードに挿入される。次いで、方法は91に戻る。
【0137】
ノードNが既に許容されたエントリの最大数を有していることが98において決定された場合、方法は、99において継続する。99において、ノードNは、1対のノードに分割される。ノードNを分割することによって、2つの新たなリーフノードが生成される。同時に、ディレクトリノードが生成され、2つの新たなリーフノードへのポインターを有する2つのオブジェクトを含む。オブジェクトOiは、2つの新たなリーフノードのうちの1つか、または新たなディレクトリノードに挿入され得る。次いで、方法は91に戻る。
【0138】
図11および図12は、ノードにおける許容されたエントリの最大数に達した場合のリーフノードの分割を例示する。
【0139】
図11は、オブジェクトAおよびBを有するディレクトリノード111と、オブジェクトC、D、Gを有するリーフノード112と、オブジェクトEおよびFを有する別のリーフノード113とを有する索引構造110を示す。
【0140】
新たなオブジェクトI(新たなオブジェクトIに対して、d(A;I)<d(B;I))が挿入されることを想定して、方法90は、オブジェクトがリーフノード(ノードAから到達することが可能である)に挿入されることを決定する。ノードに対して許容されたエントリの最大数が3つのオブジェクトに対応する場合、オブジェクトは、単にノード112に挿入することができない。この場合、ノード112は分割される。
【0141】
図12は、ノード112が分割された後の索引構造110を示す。2つの新たなリーフノード115および116が生成される。さらに、新たなディレクトリノード114が生成される。リーフノード112に含まれるオブジェクトCおよびDは、ディレクトリノードにおけるオブジェクトにレベルが上げられる。Mツリーの専門用語において、オブジェクトCおよびDは、ルーティングオブジェクトにレベル上げされる。オブジェクトGは、オブジェクトCを親として有するリーフノード115に加えられる。オブジェクトIは、オブジェクトDを親として有するリーフノード116に加えられる。
【0142】
ノードが方法90でステップ100において分割された場合、さまざまな技術が用いられ得、ディレクトリノードへレベル上げされるオブジェクトを選択する。例えば、Mツリーに対して、以下の実装が用いられ得る:
一実装において、ディレクトリノードにレベル上げされるオブジェクトが無作為に選択され得る。
【0143】
別の実装において、サンプリングがディレクトリノードにレベル上げされた複数対のオブジェクトに対して行われる。複数対のうちのいずれか1つに対して、ノードに含まれる他のノードが2つの新たなリーフノードに区分される。オブジェクトは、新たなリーフノードのうちの1つに割り当てられる。新たなリーフノードのうちの1つに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。区分が完了したとき、結果の包含半径が決定される。包含半径が式(5)に従って決定される。ディレクトリノードにレベル上げされた異なる対のオブジェクトに対して、異なる包含半径が生じる。次いで、ノードは、サンプリングされた対のオブジェクトのうちの1つがディレクトリノードに加えられるように分割され得る。ディレクトリノードに対して、2つの包含範囲の最大は、サンプリングされた対のレベル上げされたオブジェクトの中の最小値を有する。
【0144】
別の実装において、サンプリングは、全ての可能な対のオブジェクトO1およびO2に対して行われる。オブジェクトO1およびO2は、ノードに含まれ、原則的にはディレクトリノードに加えられ得る。分割の前にノードに含まれる他のオブジェクトは、上で説明されたように区分される。つまり、オブジェクトは、新たなリーフノードのうちの1つに割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。可能な対のオブジェクトのうちのいずれか1つに対して、包含半径r(O1)+r(O2)の総計が決定される。次いで、包含半径の最小総計になる対のオブジェクトがディレクトリノードに加えられ得る。他のオブジェクトは、新たなリーフノードのうちの1つにそれぞれ割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。
【0145】
別の実装において、サンプリングは、全ての可能な対のオブジェクトO1およびO2に対して行われる。オブジェクトO1およびO2は、ノードに含まれ、原則的にはディレクトリノードに加えられ得る。分割の前にノードに含まれる他のオブジェクトは、上で説明されたように区分される。つまり、オブジェクトは、新たなリーフノードのうちの1つに割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。レベル上げされる可能な対のオブジェクトのうちのいずれか1つに対して、2つの包含半径max(r(O1),r(O2))の最大が決定される。次いで、包含半径の最大に対して最小値になる対のオブジェクトがディレクトリノードに加えられ得る。他のオブジェクトは、それぞれ、新たなリーフノードのうちの1つに割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、それぞれ、より小さい。
【0146】
別の実装において、挿入されるオブジェクトから最も大きい距離d(Ok;Oi)を有するリーフノードにおけるオブジェクトOkが決定される。次いで、このオブジェクトOkおよび新たなオブジェクトOiがディレクトノードにレベル上げされ得る。他のオブジェクトは、それぞれ、新たなリーフノードのうちの1つに割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。
【0147】
Mツリーとして構成される索引構造を生成する方法が図10〜図12を参照して、上で説明されたが、同じものを構築する他のメトリック索引構造および方法が他の実施形態において用いられ得る。例えば、vantageポイントツリーが用いられ得る。
【0148】
実施形態に従うデバイスおよび方法が詳細に説明されたが、改変が他の実施形態において実装され得る。例示として、包含半径、または親オブジェクトと子オブジェクトとの間の距離のような距離情報が索引データに記憶され得るが、そのようなデータは、また、ランタイムにおいて計算され得る。
【0149】
さらなる例示として、索引ツリーおよびそのノードの例示的構造が説明されたが、いずれか適切なデータ構造が索引ツリーを実装するために用いられ得る。例示として、索引ツリーは、リレーショナルデータベースにおけるユーザー定義の構造として記憶され得る。この場合、1つのテーブルが提供され得、テキストストリングまたは音素ストリングを含む。別のテーブルが提供され得、対のテキストストリングまたは音素ストリングの間の距離を含む。
【0150】
さらなる例示として、索引構造が「索引構造におけるオブジェクト」のような表現を用いて説明されたが、そのようなオブジェクトは、索引構造に組み込まれる必要はない。むしろ、索引構造は、オブジェクト自体よりも、オブジェクトへの識別子またはポインターを含み得る。
【0151】
さらなる例示として、類似性サーチが、クエリーオブジェクトからの固定されたサーチ半径内に配置されたオブジェクトに対するサーチに関連して説明されたか、またはk個の最も近い近傍点に対するサーチに関連して説明されたが、他の類似性サーチもメトリック索引構造を用いて実装され得る。いくつかのサーチが音素またはテキストストリングに対するサーチのような特定の距離メトリックまたは特定の適用に関連して説明されたが、実施形態は、それらに限定されない。
【0152】
発明の実施形態は、乗り物のナビゲーションデバイスに対して用いられ得る。
【符号の説明】
【0153】
10、70 索引構造
51 クエリーオブジェクト
11〜17、71〜75 ノード
【技術分野】
【0001】
(技術分野)
本発明は、ナビゲーションデバイスにおける使用のためのデータベースサーチ方法およびデバイスに関する。特に、本発明は、索引構造を用いてナビゲーションデバイスデータベースをサーチする方法と、ナビゲーションデバイスと、索引構造を生成する方法とに関する。
【背景技術】
【0002】
(背景)
ナビゲーションデバイスは公知であり、2つの場所の間のルートサーチのような機能を行う。現代のナビゲーションデバイスは、また、要求がある場合、ポイントオブインタレスト(POI)に関する情報を出力するトラベルガイドとして機能するようなさらなる機能性を提供し得る。そのような情報は、通りの名称またはPOIを含み得るが、さらなるテキスト情報またはマルチメディア情報を含む場合もある。例示として、いくつかのナビゲーションデバイスは、オブジェクトに関する詳細な説明を、テキストおよび/またはマルチメディア形態で出力するトラベルガイド機能性を含み得る。
【0003】
現代のナビゲーションデバイスにおいて用いられるデータベースのサイズに起因して、データベースにおいてサーチを行うことは、かなりの難問である。特に、テキストストリング、音素ストリング、マルチメディアオブジェクトまたはユークリッド空間において規定されない他のオブジェクトに対してサーチが行われる場合、このことは当てはまる。2Dまたは3D空間において規定されるオブジェクトの幾何学的座標は、オブジェクトが座標ベースサーチに対して座標に基づき索引付けられることを可能にし得る。そのような索引付けは、テキストストリング、音素ストリング、マルチメディアオブジェクトまたはユークリッド空間において規定されない他のオブジェクトのようなオブジェクトに対して、より難問である。
【0004】
さらに、サーチがテキストストリング、音素ストリングまたはマルチメディアオブジェクトのようなオブジェクトに対して行われた場合、ユーザーは、正確なヒットを得ることのみに興味があるわけではない場合がある。むしろ、ユーザーは、クエリーに類似するサーチ結果に関する情報を得ることに興味を有し得、必ずしも、クエリーと同一ではない。ルートサーチに対して、開始場所および目的場所、中間ポイントまたは経由ポイントを入力することまたはPOIを入力することのような多くの用途に対して、ユーザーは、正しいテキスト表示の名称に気付いていない場合がある。ストリングの最初の文字に従うデータベースにおける正確な一致に対してサーチを行う従来技術は、それらの最初の文字内にスペルミスがある場合、失敗し得る。
【0005】
さらに、ナビゲーションデバイスにおいて、記憶スペース制限によって課される制約、利用可能な計算時間に関する限界が、フォルトトレラントな効率的なサーチを実装することを特に難問にしている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
(要約)
従って、フォールトトレラントサーチが実行されることを可能にする方法およびナビゲーションデバイスを提供するニーズがある。特に、フォールトトレラントサーチが効率的に行われることを可能にする方法およびナビゲーションデバイスに対するニーズがある。
【課題を解決するための手段】
【0007】
このニーズは、独立請求項に記載されるようなデバイスおよび方法によって的にされる。従属請求項は、実施形態を規定する。
【0008】
側面に従って、ナビゲーションデバイスデータベースにおいて類似性サーチを行う方法が提供される。類似性サーチは、メトリック索引構造を用いて行われる。データベースは、複数のオブジェクトを含み、索引構造は、複数のノードを含む。クエリーオブジェクトが受信される。複数のオブジェクトのうちの少なくとも1つのオブジェクトに関連付けられる索引構造のノードがアクセスされる。アクセスされたノードのうちの少なくとも1つのオブジェクトに対して、クエリーオブジェクトとオブジェクトとの間の距離は、距離メトリックに従って決定される。決定された距離に基づいて、索引構造の別のノードが選択的にアクセスされる。
【0009】
方法は、類似性サーチを使用する。これは、ファジィサーチが実装されることを可能にし、ファジィサーチは、正確なマッチについての情報を提供するだけではなく、データベースにおいて最も類似なオブジェクトについての情報も検索する。方法において、クエリーオブジェクトと索引構造のノードのオブジェクトとの距離は、アクセスされるべきである他のノードを識別するように決定される。これは、サーチが効率的に行われることを可能にする。クエリーオブジェクトから閾値より大きな距離を有するオブジェクトを含むかまたは指すアクセスノードが必要とされない。距離メトリックに従って決定された距離を使用することによって、クエリーオブジェクトと索引構造に含まれるオブジェクトとの間の類似または相違が、量的に評価される。
【0010】
索引構造は、ナビゲーションデバイスの記憶デバイスに格納され得る。
【0011】
索引構造は、メトリック索引構造であり得る。従来の専門用語に従って、メトリック索引構造は、索引を区分するために、オブジェクトよりむしろ多重次元の空間のそれらの座標の間の相対的距離のみを考慮する索引である。索引構造は、特に、Mツリー、vantageポイントツリーまたは距離メトリックに従って組織化された任意の他のツリー構造であり得る。索引構造は、サーチを行うことにおけるクエリーオブジェクトとオブジェクトとの間の距離を決定するのに使用される距離と同じである距離関数に従って組織化される。
【0012】
従来の専門用語を用いて、「距離メトリック」または「メトリック」は、本明細書において、反射の公準、対称性および三角不等式を満たす距離関数をさすように理解される。
【0013】
従来の専門用語を用いて、用語「類似性サーチ」は、本明細書において、クエリーオブジェクトに対する例示または相違に関して所与の基準を満たす、オブジェクトに対するサーチをさすように使用される。実施例は、距離メトリックに従う距離のように測定された、固定の閾値より少ない相違を有するオブジェクトに対するサーチ、または距離メトリックに従う距離のように測定された、索引されたオブジェクトの中のクエリーオブジェクトから最も小さい相違を有するオブジェクトに対するサーチを含む。
【0014】
クエリーオブジェクトと、サーチに訪問されたノードによって表される全部のオブジェクトとの間の正確な距離を決定することが、可能であるが、必要とされない。索引構造を通るパスに沿うノードのうちの少なくともいくつかに対して、クエリーオブジェクトと索引構造のそれぞれのオブジェクトとの距離の下限を決定するのは、十分であり得る。
【0015】
オブジェクトは、ストリング、特に音素ストリングまたはテキストストリングであり得る。対応して、クエリーオブジェクトは、音素ストリングまたはテキストストリングであり得る。これは、音素ストリングまたはテキストストリングに対してフォールトトレラントサーチが行われることを可能にする。このようなサーチは、開始場所および目的地場所を入力する場合、データベース内にPOIをサーチする場合、データベースに格納されるテキストまたはマルチメディアデータをサーチする場合、または類似な場合に有用であり得る。
【0016】
ストリングであるオブジェクトに対する距離メトリックは、複数の利用可能なストリングメトリックのうちの任意の1つから選択され得る。例として、距離メトリックは、Levenshtein距離に基づき得る。距離関数はまた、Damerau−Levenshtein距離、Jaro−Winkler距離、Hamming距離、Soundex距離メトリックに従って決定される距離、Needleman−Wunsch距離、Gotoh距離、Smith−Waterman−Gotoh距離、P≧1を有するLp距離または反射の公準、対称性および三角不等式に従う任意の他のストリングメトリックのうちの任意の1つであり得る。
【0017】
テキスト入力が受信され得、テキスト−音素変換は、テキスト入力からクエリーオブジェクトを生成するように行われ得る。代替的に、またはさらに、クエリーオブジェクトは、音声入力から生成される音素ストリングであり得る。
【0018】
索引構造はさらに、アクセスされたノードに含まれる少なくとも1つのオブジェクトと、索引構造の他のオブジェクトと距離についての距離情報を含み得る。距離情報は、親オブジェクトを有する任意のノードに対して、ノードのオブジェクトとその親オブジェクトとの間の距離を含み得る。この距離情報は、索引構造に格納され得る。代替的に、またはさらに、別のノードを指し、すなわち、リーフノードにない任意のオブジェクトに対して、距離情報は、オブジェクトと、このオブジェクトに関連付けられる索引構造のサブツリーに含まれる任意のオブジェクトとの間の距離の上限を含み得る。距離に対するこの上限はまた、それが、そのサブツリーの全オブジェクトが配置されるオブジェクトの周りの距離を表すために、カバレッジ半径と呼ばれ得る。このような距離情報を索引構造に含むことによって、距離情報は、類似性サーチの間にそれが計算される必要があらず、ランタイムにおいて使用され得る。従って、サーチパフォーマンスが増強され得る。
【0019】
アクセスする別のノードは、クエリーオブジェクトとアクセスされたノードの間の距離に基づいて、そして距離情報に基づいて選択的に行われ得る。閾値比較が行われ得る。閾値比較に基づいて、サーチ索引のサブツリーがサーチされなければならないか否かが決定され得る。代替的に、またはさらに、閾値比較に基づいて、クエリーオブジェクトと、索引構造のオブジェクトとの間の正確な距離を計算する必要があるか否かが決定され得る。
【0020】
クエリーオブジェクトとノードに含まれるオブジェクトと間の距離は、カバレッジ半径とサーチ半径との総計と比較され得る。閾値比較が、クエリーオブジェクトとノードに含まれるオブジェクトと間の距離が総計より大きいであることを示す場合に、オブジェクトが指す索引構造のサブツリーにアクセスする必要とされない。サーチ半径が、固定され得、または類似性サーチが進行するので、変化するように作られ得る。
【0021】
ノードは、いくつかのオブジェクトを含み得る。索引構造は、いくつかのオブジェクトの各々に対して、それぞれのオブジェクトと、それぞれのオブジェクトを指す索引構造のサブツリーに含まれる任意のオブジェクトとの間の距離の上限を含み得る。
【0022】
オブジェクトは、決定された距離に基づいて類似性サーチから選択的に取り除かれ得る。取り除くことは、クエリーオブジェクトとノードのオブジェクトとの間の決定された距離に基づいて、そしてオブジェクトのカバレッジ半径に基づいて行われ得る。
【0023】
距離を決定するステップと、別のノードに選択的にアクセスするステップとが、反復して繰り返され得る。これらのステップが繰り返される場合に、クエリーオブジェクトとノードに含まれるオブジェクトとの間の距離は、ノードのオブジェクトのうちの各々に対して計算されることが必要とされない。クエリーオブジェクトとノードに含まれるオブジェクトとの間の距離は、基準に基づいて選択的に計算され得、基準は、それが、新しい距離が計算される必要とされないようである。他のノードが索引構造のリーフノードである場合に、距離を計算することと、別のノードに選択的にアクセスすることとが、終了され得る。
【0024】
アクセスされた他のノードがリーフノードである場合に、方法はさらに、閾値比較の結果に基づいて、リーフノードのオブジェクトとクエリーオブジェクトとの間の距離を選択的に決定することを含み得る。リーフノードの所与のオブジェクトとクエリーオブジェクトとの間の距離は、閾値比較の結果に基づいて選択的に決定され得る。閾値比較は、第1の距離と第2の距離との差異の係数と閾値を比較することを含み得る。第1の距離は、クエリーオブジェクトとのリーフノードの親オブジェクトとの距離であり得る。第2の距離は、リーフノードの親オブジェクトとリーフノードのそれぞれの所与のオブジェクトとの間の距離であり得る。リーフノードの任意の所与のオブジェクトに対して、それぞれの所与のオブジェクトとのクエリーオブジェクトとの間の距離は、このような閾値比較の結果に基づいて選択的に計算され得る。それによって、サーチ時間がさらに減少され得る。
【0025】
サーチにおいて、クエリーオブジェクトからの所定の距離内に配置された全部のオブジェクトが識別され得る。この距離は、距離メトリックに従って規定される。これは、所与の閾値を超過しない、クエリーオブジェクトへの相違を有する全部のオブジェクトが識別され、かつユーザーに出力されることを可能にする。
【0026】
代替的に、またはさらに、距離メトリックに従って決定された、索引構造のクエリーオブジェクトのk個の最も近い近傍点を表す整数個(k>1)のオブジェクトが識別され得る。これは、距離メトリックに基づいてクエリーオブジェクトの最も類似であるk個のオブジェクトが識別され、かつユーザーに出力されることを可能にする。
【0027】
識別されたオブジェクトは、クエリーオブジェクトとそれぞれの識別されたオブジェクトとの間の距離に基づいて出力され得る。識別されたオブジェクトを出力する場合に、オブジェクトは、クエリーオブジェクトとそれぞれに識別されたオブジェクトとの間の距離に従って格納され得る。例として、光学出力ユニットを介して出力することに対して、クエリーオブジェクトからの最も近い距離を有するオブジェクトは、最も上の位置または最も左の位置において出力され得、他のオブジェクトは、クエリーオブジェクトからの距離を増加する順序で出力され得る。同様に、オーディオ出力ユニットを介して出力することに対して、クエリーオブジェクトからの最も近い距離を有するオブジェクトが最初に出力され得、他のオブジェクトは、その後、クエリーオブジェクトからの距離を増加する順序で連続して出力され得る。
【0028】
もう1つの側面に従って、ナビゲーションデバイスが提供される。ナビゲーションデバイスは、規則デバイスと処理デバイスとを含む。記憶デバイスは、複数のオブジェクトを含むデータベースに対して索引構造を格納し、索引構造は、複数のノードを含む。処理デバイスは、記憶デバイスに結合される。クエリーオブジェクトに対して類似性サーチを行うために、処理デバイスは、複数のオブジェクトのうちの少なくとも1つのオブジェクトに関連付けられた索引構造のノードにアクセスするように構成される。処理デバイスはさらに、距離メトリックに従って、クエリーオブジェクトと少なくとも1つのオブジェクトとの間の距離を決定するように構成される。処理デバイスはさらに、決定された距離に基づいて、索引構造の別のノードに選択的にアクセスするように構成される。
【0029】
このようなナビゲーションデバイスは、ファジィサーチが実装されることを可能にし、ファジーサーチは、正確なマーチについての情報を提供するだけではなく、データベースの最も類似なオブジェクトについての情報も検索する。ナビゲーションデバイスにおいて、クエリーオブジェクトと索引構造のノードのオブジェクトとの距離は、アクセスされるべきである他のノードを識別するために決定される。これは、サーチが効率的に行われることを可能にする。クエリーオブジェクトから閾値より大きな距離を有するオブジェクトを含むかまたは指すアクセスノードが必要とされない。距離メトリックに従って決定された距離を使用することによって、クエリーオブジェクトと索引構造に含まれるオブジェクトとの間の類似または相違が、量的に評価される。
【0030】
オブジェクトは、音素ストリングおよび/またはテキストストリングであり得る。
【0031】
索引構造は、メトリック索引構造であり得る。
【0032】
ナビゲーションデバイスは、入力ユニットを含み得る。処理デバイスは、入力ユニットからクエリーオブジェクトを受信するように、または入力ユニットで受信された入力に基づいてクエリーオブジェクトを生成するように、入力ユニットと結合され得る。処理デバイスは、クエリーオブジェクトを生成するために、テキスト−音素変換を行うように構成され得る。
【0033】
ナビゲーションデバイスは、出力ユニットを含み得る。処理デバイスは、類似性サーチにおいて見つけられた複数のオブジェクトが出力ユニットを介して出力されるように、出力ユニットを制御するように構成され得る。処理デバイスは、出力オブジェクトがクエリーオブジェクトとそれぞれの出力オブジェクトとの距離に従って格納されるように、出力ユニットを制御するように構成され得る。
【0034】
処理デバイスは、距離メトリックに従って決定された、クエリーオブジェクトからの固定のサーチ半径より近い距離を有する全部のオブジェクトを識別するように構成され得る。処理デバイスは、代替的に、またはさらに、クエリーオブジェクトのk個の最も近い近傍点であるk>1個のオブジェクトを識別するように構成され得る。
【0035】
処理デバイスは、任意の側面または実施形態に従って類似性サーチ方法を行うように構成され得る。
【0036】
もう1つの側面に従って、ナビゲーションデバイスデータベースに対してメトリック索引構造を生成する方法が提供される。データベースは、複数のオブジェクトを含む。方法において、索引構造の他のノードへのポインターを含む索引構造のディレクトリノードと索引構造のリーフノードとが生成される。ノードを生成することは、複数組のオブジェクトに対して、オブジェクトと組のオブジェクトのオブジェクトとの間の距離をそれぞれに決定し、それによって複数の距離を決定することを含む。距離は、それぞれ、距離メトリックに従って決定される。複数の距離に基づいて、ディレクトリノードに含まれるべきであるオブジェクトとリーフノードに含まれるべきであるオブジェクトとが識別される。
【0037】
この方法を用いて、索引構造が生成され、類似性サーチ方法において、そして任意の側面および実施形態のナビゲーションデバイスにおいて使用され得る。生成されたメトリック構造は、オブジェクトの間の相対的距離である決定された複数の距離に従って組織化される。これは、また多重次元の空間の座標によって規定されないオブジェクトに対して、メトリック索引構造がセットアップされることを可能する。
【0038】
オブジェクトは、音素ストリングまたはアルファベットや数値のストリングであり得る。
【0039】
索引構造を生成する場合に、距離メトリックは、ストリングメトリックに対する複数の距離定義のうちの任意の1つから選択され得る。例として、距離メトリックは、Levenshtein距離に基づき得る。距離関数はまた、Damerau−Levenshtein距離、Jaro−Winkler距離、Hamming距離、Soundex距離メトリックに従って決定される距離、Needleman−Wunsch距離、Gotoh距離、Smith−Waterman−Gotoh距離、P≧1を有するLp距離または反射の公準、対称性および三角不等式に従う任意の他のストリングメトリックのうちの任意の1つであり得る。
【0040】
方法は、ディレクトリノードに含まれるオブジェクトに対して、それぞれのオブジェクトとオブジェクトを指す索引構造のサブツリーに含まれる任意のオブジェクトとの距離の上限を格納することを含み得る。この上限、またはカバレッジ半径は、索引構造内に格納され得る。
【0041】
方法は、代替的に、またはさらに、親オブジェクトを有するノードに含まれるオブジェクトに対して、それぞれのオブジェクトとその親オブジェクトとの距離を格納することを含み得る。
【0042】
方法において、索引構造は、反復のやり方で成長され得る。方法は、ノードに追加のオブジェクトを挿入することを含み得る。そのために、オブジェクトが挿入されるべきであるノードが識別され得る。ノードを識別することは、挿入されるべきであるオブジェクトと索引構造のディレクトリノードのオブジェクトとの距離を決定することを含み得る。
【0043】
方法はさらに、ノードを分割することを含み得る。そのために、オブジェクトの挿入の後に、ノードのオブジェクトの数は、オブジェクトの固定の最大の数より大きいか否かが決定され得る。数が最大の数を超える場合に、ノードが分割される。ノードを分割することは、新しいディレクトリノードに含まれるべきであるノードからのオブジェクトを選択することと、オブジェクトを2つの新しいリーフノードのうちの1つに割り当てることとを含み得る。ノードを分割することは、新しいディレクトリノードの2つのオブジェクトの2つのカバレッジエリアの間のオーバーラップが閾値以下に減少され、または最小化されるように行われ得る。
【0044】
もう1つの側面に従って、ナビゲーションデバイスデータベースのためのメトリック索引構造が提供される。メトリック索引構造は、索引構造の他のノードへのポインターを含むディレクトリノードとリーフノードとを含む。ノードのうちの少なくともいつくかは、メトリックに従って決定された、索引構造のオブジェクトの間の距離についての情報を表す距離情報を含み得る。少なくともディレクトリノードは、ディレクトリノードのオブジェクトと、それぞれのオブジェクトに対する索引構造のサブツリーに含まれる任意のオブジェクトとの距離の上限を含み得る。
【0045】
前述の特徴と以下に説明されるべきであるそれとは、示されるそれぞれの組み合わせだけではなく、他の組み合わせまたは単独に使用され得ることが理解されるべきである。
【0046】
本発明は、例えば以下の項目を提供する。
(項目1)
索引構造(10;70)を用いてナビゲーションデバイスデータベースにおいて類似性サーチを行う方法であって、該データベースは、複数のオブジェクトを含み、該索引構造(10;70)は、複数のノード(11−17;71−75)を含み、
該方法は、
クエリーオブジェクト(51)を受信することと、
該複数のオブジェクトのうちの少なくとも1つのオブジェクト(52,55,59,60)に関連付けられる該索引構造(10;70)のノード(11−13;71−73)にアクセスすることと、
該ノード(11−13;71−73)に関連付けられた該少なくとも1つのオブジェクト(52,55,59,60)の各々のオブジェクトに対して、それぞれ、該クエリーオブジェクト(51)と該オブジェクトとの間の距離(65,66)を決定することであって、該距離(65,66)は、それぞれ、距離メトリックに従って決定される、ことと、
該決定された距離(65,66)に基づいて、該索引構造(10;70)の別のノード(12−17;72−75)に選択的にアクセスすることと
を含む、方法。
(項目2)
上記クエリーオブジェクト(51)は、音素ストリングまたはテキストストリングである、上記項目のいずれかに記載の方法。
(項目3)
上記クエリーオブジェクト(51)を受信することは、テキスト入力を受信することと、テキスト−音素変換を行うこととを含む、上記項目のいずれかに記載の方法。
(項目4)
上記索引構造(10;70)は、上記少なくとも1つのオブジェクト(52,55,59,60)と該索引構造(10;70)の他のオブジェクトとの間の距離についての距離情報をさらに含み、
該他のノード(12−17;72−75)は、該距離情報と、上記決定された距離(65,66)とに基づいて選択的にアクセスされる、上記項目のいずれかに記載の方法。
(項目5)
上記ノード(11−13;71−73)は、いくつかのオブジェクト(52,55)に関連付けられ、
上記距離情報は、該いくつかのオブジェクト(52,55)の各々に対して、該それぞれのオブジェクト(52,55)と、該それぞれのオブジェクト(52,55)に関連付けられた上記索引構造(10;70)のサブツリーに含まれる任意のオブジェクト(59−64)との間の距離の上限(53,56)を含む、上記項目のいずれかに記載の方法。
(項目6)
上記クエリーオブジェクト(51)は、音素ストリングまたはテキストストリングであり、
該クエリーオブジェクト(51)を受信することは、テキスト入力を受信することと、テキスト−音素変換を行うこととを含む、上記項目のいずれかに記載の方法。
(項目7)
オブジェクトは、上記決定された距離(65,66)に基づいて、上記類似性サーチから選択的に取り除かれる、上記項目のいずれかに記載の方法。
(項目8)
上記他のノード(12−17;72−75)が上記索引構造(10;70)のリーフノード(14−17;74,75)である場合に、上記距離(65,66)を決定することと、上記別のノード(12−17;72−75)に選択的にアクセスすることとが終了される、上記項目のいずれかに記載の方法。
(項目9)
上記距離メトリックに従って決定された、上記クエリーオブジェクト(51)からの所定の距離(58)内に配置された全てのオブジェクトが識別される、上記項目のいずれかに記載の方法。
(項目10)
1より大きい整数k個のオブジェクトが識別され、該k個のオブジェクトは、上記距離メトリックに従って決定された、上記クエリーオブジェクト(51)のk個の最も近い近傍点を表す、上記項目のいずれかに記載の方法。
(項目11)
上記識別されたオブジェクトは、上記クエリーオブジェクト(51)と、それぞれの識別されたオブジェクトとの間の距離に基づいて決定された順序で出力される、上記項目のいずれかに記載の方法。
(項目12)
ナビゲーションデバイスであって、該ナビゲーションデバイスは、
複数のオブジェクトを含むデータベースに対する索引構造(10;70)を格納する記憶デバイス(3)であって、該索引構造(10;70)は、複数のノード(11−17;71−75)を含む、記憶デバイス(3)と、
該記憶デバイス(3)に結合された処理デバイス(2)と
を含み、該処理デバイス(2)は、クエリーオブジェクト(51)に対して類似性サーチを行うために、
該複数のオブジェクトのうちの少なくとも1つのオブジェクト(52,55,59,60)に関連付けられた該索引構造(10;70)のノード(11−13;71−73)にアクセスすることと、
距離メトリックに従って、該クエリーオブジェクト(51)と該少なくとも1つのオブジェクト(52,55,59,60)との間の距離(65,66)を決定することと、
該決定された距離(65,66)に基づいて、該索引構造(10;70)の別のノード(12−17;72−75)に選択的にアクセスすることと
を行うように構成される、ナビゲーションデバイス。
(項目13)
上記処理デバイス(2)は、上記項目のいずれかに記載の方法を行うように構成される、上記項目のいずれかに記載のナビゲーションデバイス。
(項目14)
複数のオブジェクトを含むナビゲーションデバイスデータベースのためのメトリック索引構造(10;70;110)を生成する方法であって、該方法は、該索引構造(10;70;110)の他のノードへのポインターを含む該索引構造のディレクトリノード(11−13;71−73;111,114)を生成することと、該索引構造のリーフノード(14−17;74;75;113,115,116)を生成することとを含み、
該ディレクトリノード(11−13;71−73;111,114)と該リーフノード(14−17;74;75;113,115,116)とを生成することは、
該オブジェクトの複数の組に対して、それぞれ、該オブジェクトの組のオブジェクト間の距離を決定することによって複数の距離を決定することであって、該距離は、それぞれ、距離メトリックに従って決定される、ことと、
該複数の距離に基づいて、ディレクトリノード(11−13;71−73;111,114)に含まれるべきであるオブジェクトと、リーフノード(14−17;74;75;113,115,116)に含まれるべきであるオブジェクトとを識別することと
を含む、方法。
(項目15)
上記オブジェクトは、音素ストリングまたはテキストストリングである、上記項目のいずれかに記載の方法。
(項目16)
上記ディレクトリノードおよび/または上記リーフノードにおいて、上記複数の距離から導かれた距離情報を格納することを含む、上記項目のいずれかに記載の方法。
【0047】
(摘要)
ナビゲーションデバイスデータベースにおいて類似性サーチを行う方法は、メトリック索引構造を使用する。索引構造は、複数のノードを含む。クエリーオブジェクト(51)が受信される場合に、少なくとも1つのオブジェクト(52,55,59,60)に関連付けられる索引構造のノードがアクセスされる。クエリーオブジェクト(51)と少なくとも1つのオブジェクト(52,55,59,60)との間の距離(65,66)は、距離メトリックに従って決定される。決定された距離に基づいて、索引構造の別のノードが選択的にアクセスされる。
【0048】
実施形態の先述および他の特徴は、添付の図面に関して読まれた場合、実施形態の以下の詳細な説明から、より明らかとなる。図面において、類似した参照数字は、類似した要素を指す。
【図面の簡単な説明】
【0049】
【図1】図1は、ナビゲーションデバイスの概略ブロック図である。
【図2】図2は、索引構造の概略表示である。
【図3】図3は、索引構造のノードにおけるデータエントリの概略表示である。
【図4】図4は、索引構造のノードにおけるデータエントリの概略表示である。
【図5】図5は、類似性サーチを用いる方法のフローチャートである。
【図6】図6は、類似性サーチを行う方法のフローチャートである。
【図7】図7は、図6の方法を説明するためのデータベースオブジェクトの概略表示である。
【図8】図8は、図6の方法を説明するための索引構造の概略表示である。
【図9】図9は、類似性サーチを用いる方法のフローチャートである。
【図10】図10は、索引構造を生成する方法のフローチャートである。
【図11】図11は、図10の方法を説明するための索引構造の概略表示である。
【図12】図12は、図10の方法を説明するための索引構造の概略表示である。
【発明を実施するための形態】
【0050】
(詳細な説明)
図1は、実施形態に従う乗り物のナビゲーションデバイス1を概略的に例示する。ナビゲーションデバイス1は、例えば、メモリに記憶される制御命令に従って、ナビゲーションデバイス1の動作を制御する処理デバイス2を含む。処理デバイス2は、例えば、1つ以上のマイクロプロセッサ、デジタルシグナルプロセッサまたは特定用途向け集積回路の形態の中央処理デバイスを含み得る。ナビゲーションデバイス1は、記憶デバイス3をさらに含む。記憶デバイス3は、揮発性または不揮発性記憶媒体またはメモリであり得る。記憶デバイス3は、ランダムアクセスメモリ、フラッシュメモリまたはハードドライブのようなさまざまなタイプの記憶またはメモリ媒体のうちのいずれか1つ、またはいずれかの組み合わせを含み得るが、コンパクトディスク(CD)、DVD、メモリカードなどのようなリムーバルメモリも含み得る。ナビゲーションデバイス1は、また、情報をユーザーに出力する出力インターフェース4を含む。出力インターフェース4は、光学出力デバイス、オーディオ出力デバイスまたはそれらの組み合わせを含み得る。ナビゲーションデバイス1は、また、入力インターフェース5を含み、入力インターフェース5は、ユーザーが情報を入力することを可能にする。特に、入力インターフェース5は、ユーザーがテキスト情報または音声情報を入力することを可能にし得る。
【0051】
ナビゲーションデバイスは、位置センサーおよび/またはワイヤレス受信器および/または乗り物のインターフェースのようなさらなるコンポーネントを含み得る。位置センサーは、ナビゲーションデバイス1がインストールされている乗り物の現在の位置を決定するように適合され得る。位置センサーは、GPS(全地球測位システム)センサー、ガリレオセンサー、モバイル通信網に基づく位置センサーなどを含み得る。ワイヤレス受信器は、記憶デバイス3に記憶されたデータベースを更新するための情報を受信するように構成され得る。乗り物のインターフェースは、処理ユニット2が情報を他の乗り物システムから得ることを可能にし得るか、または乗り物状態情報を乗り物のインターフェースを介して得ることを可能にし得る。例えば、乗り物のインターフェースは、CAN(コントローラーエリアネットワーク)またはMOST(メディアオリエンテッドデバイストランスポート)インターフェースを含み得る。
【0052】
記憶デバイス3は、複数のオブジェクトを含むデータベースを記憶する。複数のオブジェクトは、テキストストリングまたは音素ストリングを含み得る。例示として、データベースは、道路名称を表すオブジェクト、ポイントオブインタレスト(POI)の名称を表すオブジェクトおよび/または道路またはPOIに関してさらなる情報を表すオブジェクトを含み得る。そのような情報は、形態を有し得るか、またはテキストストリングまたは音素ストリングまたはマルチメディアオブジェクトを含み得る。
【0053】
記憶デバイス3は、データベースに対して索引構造を記憶する。ナビゲーションデバイス1の使用において、プロセッサ2は、索引構造を用いて類似性サーチを行う。プロセッサ2は、入力インターフェース5において受信された入力をクエリーオブジェクトとして用い得るか、または入力に関するさらなる動作を行い得ることによってクエリーオブジェクトを生成する。次いで、プロセッサ2は、クエリーオブジェクトに対して索引構造を用いて類似性サーチを行う。類似性サーチは、クエリーオブジェクトと、データベースに記憶されたオブジェクトとの間の距離を計算することを含む。本明細書において用いられた場合、「計算する」は、さまざまな方法によって実装され得、ルックアップ動作を含む。距離は、クエリーオブジェクトと索引構造におけるオブジェクトとの相違に対する量的測定値を提供する。サーチにおいて見つかったいくつかの非常に類似したオブジェクトがユーザーに出力インターフェース4を介して出力される。例示として、プロセッサ2は、光学出力インターフェース4上にリストを生成し得る。光学出力インターフェース4において、クエリーオブジェクトから最も小さい距離を有する索引構造のオブジェクトが、クエリーオブジェクトからの距離によって決定された順番に羅列される。
【0054】
索引構造は、論理的にデータベースから分離している。あるいは、データベースは、索引構造と結合し得る。
【0055】
索引構造は、いずれか適切な技術を用いて実装され得る。限定としてよりも、むしろ例示として、索引構造は、SQ Liteを用いて実装され得る。索引構造は、ユーザー定義の索引構造としてデータベースシステム、特にリレーショナルデータベースシステムに実装され得る。リレーショナルデータベースは、テキストストリングまたは音素ストリングのためのテーブルもしくは対のテキストストリングと対の音素ストリングとの間の距離のための別のテーブルを含み得る。
【0056】
データベースのための索引構造は、索引ツリーとして組織化され得る。索引構造は、複数のノードを含み得、ノードの少なくとも一部は、他のノードへのポインターを含むディレクトリノードであり、少なくとも一部の他のノードは、他のノードへのポインターを含まないリーフノードである。ノードの各々は、少なくとも1つおよび一般的な複数のオブジェクトに関連付けられ得る。ディレクトリノードは、ディレクトリノードに含まれるオブジェクトに対して、それらのオブジェクトの各々に関連付けられたそれぞれのサブツリーのルートへのポインターを記憶し得る。
【0057】
記憶デバイス3に記憶された索引構造は、メトリック索引構造であり、メトリック索引構造は、距離メトリックを用いてサーチされ得る。さらに、索引構造は、また、距離メトリックに従って組織化される。つまり、索引構造は、距離メトリックに従って、決定されたデータベースのオブジェクトの間の相対的な距離に基づいてサブツリーに区分される。
【0058】
一般的な用語に従って、本明細書における「距離メトリック」または「メトリック」は、以下の条件を満たす空でないセットMのオブジェクトに対して規定された距離測定値を指す:
反射性(不可識別者同一とも呼ばれる):
∀x,y∈M: x=yの場合かつx=yの場合のみd(x,y)=0; (1)
対称性:
∀x,y∈M: d(x,y)=d(y,x) (2)
三角不等式:
∀x,y,z∈M: d(x,y)≦d(x,y)+d(y,z) (3)
上の公準(1)〜(3)が満たされた場合、距離も正値性公準を満たすことになる:
∀x,y∈M: d(x,y)≧0 (4)
セットMおよびメトリックdのタプル(M,d)は、メトリック空間とも呼ばれる。
【0059】
メトリック(このメトリックに従って、索引構造が組織化される)(また、索引構造におけるサーチを行うために用いられる)は、とりわけデータベースにおけるオブジェクトに応じて、さまざまな定義から選択され得る。例示として、テキストストリングまたは音素ストリングであるオブジェクトに対して、Levenshtein距離がメトリックを規定する。Levenshtein距離は、索引構造を作成するときと、索引構造において類似性サーチを行うときとの両方で用いられ得る。Levenshtein距離は、編集距離とも呼ばれる。2つのストリングの間のLevenshtein距離は、1つのストリングを他のストリングに変形させるために必要な編集の最小数として規定され、許容可能な編集動作は、単一の文字の挿入、削除または交換である。他のメトリックも索引構造を組織化することと、索引構造において類似性サーチが行われた場合に距離を計算することとのために用いられ得る。
【0060】
他のメトリックが用いられ得る。例示として、距離機能がDamerau−Levenshtein距離、Jaro−Winkler距離、Hamming距離、Soundex距離メトリックに従って決定された距離、Needleman−Wunsch距離、Gotoh距離、Smith−Waterman−Gotoh距離、p≧1を有するLp距離または反射性、対称性、三角不等式の公準を用いてコンパイルする任意の他のストリングメトリックからのいずれか1つとなるように選択され得る。
【0061】
記憶媒体3に記憶された索引構造は、オブジェクトおよびサーチツリーを規定する他のノードへのポインターを含み得るだけでなく、さらに索引構造におけるオブジェクト間の距離を示す距離情報も含み得る。そのような距離情報は、サーチを行う場合、索引構造から検索され得る。そのような距離情報は、下でさらに詳細に説明されるように、特に、オブジェクトまたはノードを類似性サーチから取り除くために用いられ得る。
【0062】
図2は、索引構造10の概略的表示である。図2においてツリーのような構造として示されるが、索引構造は、一般的にいずれか適切なフォーマットで記憶され得、例えば、リレーショナルデータベースにおけるユーザー定義の索引構造として記憶され得る。
【0063】
索引構造は、ディレクトリノード11〜13およびリーフノード14〜17を含む。ディレクトリノード11〜13の各々は、他のノードへのポインターを含む。各ポインターは、それぞれのノードに含まれるオブジェクトにそれぞれ関連付けられ得る。例示として、ルートノード11は、第1のオブジェクトに関連付けられたデータエントリ21および第2のオブジェクトに関連付けられたデータエントリ22を含み得る。データエントリ21は、ディレクトリノード12へのポインターを含み得る。ディレクトリノード12は、第1のオブジェクトのサブツリーのルートである。データエントリ22は、ディレクトリノード13へのポインターを含み得、ディレクトリノード13は、第2のオブジェクトのサブツリーのルートである。
【0064】
ディレクトリノード12は、データベースの他のオブジェクトに関連付けられたデータエントリ23、24を含み得る。データエントリ23、24は、それぞれ、別のノードへのポインターを含み得る。図2において例示される構造において、データエントリ23、24は、それぞれ、リーフノード14、15へのポインターを含む。ディレクトリノードのより大きい階層が実装され得る。同様に、ディレクトリノード13は、データベースの他のオブジェクトに関連付けられたデータエントリ25、26を含み得る。データエントリ25、26は、それぞれ、リーフノード16、17のような別のノードへのポインターをそれぞれ含み得る。
【0065】
リーフノード14〜17は、データベースの1つまたは複数のオブジェクトに関連付けられたデータエントリをそれぞれ含み得る。例示として、リーフノード14は、データベースの3つのオブジェクトに関連付けられたデータエントリ27〜29を含んで示される。
【0066】
索引構造において、サーチツリーは、距離メトリックに従って区分される。この目的のために、データ21によって表される第1のオブジェクトおよびデータ22によって表される第2のオブジェクトは、ルートノード12を有する第1のサブツリーに含まれる全てのオブジェクトが第1のオブジェクトの周りに第1のカバレッジ半径を有するカバレッジエリア内に配置され、ルートノード13を有する第2のサブツリーに含まれる全てのオブジェクトが第2のオブジェクトの周りに第2のカバレッジ半径を有するカバレッジエリア内に配置されるように、選択され得る。換言すると、第1のカバレッジ半径は、データエントリ21によって表されるオブジェクトからのノード12、14および15のうちのいずれか1つによって表される任意のオブジェクト間の距離の最大であり得る。データエントリ21は、このサブツリーの親である。第2のカバレッジ半径は、データエントリ22によって表されるオブジェクトからのノード13、16および17のうちのいずれか1つによって表される任意のオブジェクト間の距離の最大であり得る。データエントリ22は、このサブツリーの親である。
【0067】
ルートノード11における第1のオブジェクトおよび第2のオブジェクトならびに関連付けられたサブツリーにおけるオブジェクトは、第1および第2のカバレッジエリアが好ましくは可能な限り小さい重複を有するように選択される。さらに、ルートノード11における第1のオブジェクトおよび第2のオブジェクトならびに関連付けられたサブツリーにおけるオブジェクトは、第1のオブジェクトとルート12を有するサブツリーに含まれるいずれかのオブジェクトとの間の第1の最大距離および第2のオブジェクトとルート13を有するサブツリーに含まれるいずれかのオブジェクトとの第2の最大距離が可能な限り小さいままであるように選択され得る。したがって、索引構造は、距離メトリックに従って決定されたオブジェクト間の近接に従って区分される。
【0068】
上の索引構造を組織化するために概説された基準は、ルートノード11に当てはまるだけでなく、いずれかのディレクトリノード12、13にも当てはまる。つまり、オブジェクトは、ディレクトリノードにおける異なるオブジェクトのカバレッジエリアの重複を減少させるため、さらに、カバレッジエリアのサイズを減少させるためにディレクトリおよびリーフノードに組織化される。そのような索引構造を生成するための体系的なアプローチは、図10〜12を参照して下で説明される。
【0069】
いくつかの実施形態において、索引構造のディレクトリノードは、索引構造に含まれるオブジェクト間の距離に関する情報を含み得る。ディレクトリノードにおけるデータエントリ21〜26は、それぞれ、オブジェクトと、このオブジェクトが指すサブツリーに含まれるいずれかのオブジェクトとの間の距離の上限を含み得る。上限は、これらの距離の最大であり得る。例示として、データエントリ21は、データエントリ21によって表される第1のオブジェクトと、ノード12、14および15におけるいずれかのオブジェクトとの間の距離の上限を含み得る。データエントリ22は、データエントリ22によって表される第2のオブジェクトと、ノード13、16および17におけるいずれかのオブジェクトとの間の距離の上限を含み得る。データエントリ23は、データ23によって表されるオブジェクトと、ノード14などにおけるオブジェクトのうちのいずれか1つとの間の距離の上限を含み得る。この上限に基づいて、除外が類似性サーチにおいて行われ得る。
【0070】
親オブジェクトを有する全てのノードにおけるデータは、それぞれのノードにおけるいずれかのオブジェクトに対して、オブジェクトと、その親オブジェクトとの間の距離に関する情報をさらに含み得る。この情報も類似性サーチにおける距離を推定するために用いられ得る。
【0071】
索引構造は、P.Ciaccia、M.PatellaおよびP.Zezulaによって発展されたMツリーとして特に組織化され得る。距離メトリックに従って組織化される他の索引構造も用いられ得る。例示として、索引構造は、vantageポイントツリーであり得る。
【0072】
図3は、ディレクトリノードに含まれるオブジェクトに関連付けられたデータエントリ31に対する例示的データ構造を示す。Mツリーにおいて用いられる例示的データエントリが例示される。データエントリ31は、オブジェクトOrを含む。あるいは、オブジェクトの特徴量がデータ31に含まれ得る。あるいは、オブジェクトの識別子が、データ31に含まれ得る。
【0073】
データエントリ31は、オブジェクトOrに対するサブツリーのルートノードへのポインターptr(T(Or))をさらに含む。
【0074】
ディレクトリノードが索引構造のルートノードでない場合、データエントリ31は、オブジェクトOrとその親オブジェクトP(Or)との間の距離d(Or;P(Or))をさらに含み得る。そのような索引構造への距離を含むことによって、値d(Or;P(Or))は、距離を推定するためか、および/またはサーチを取り除くために用いられ得る。類似性サーチの効率は、ランタイムにおいて向上され得る。
【0075】
データエントリ31は、オブジェクトOrと、ルートノードT(Or)を有するサブツリーにおけるいずれかのオブジェクトとの間の距離の上限である半径r(Or)をさらに含み得る。半径r(Or)は、そのような距離の最大であることが規定され得る:
r(Or)=maxj d(Oj;Or) (5)
ここで、最大は、ポインターptr(T(Or))が指すサブツリーにおける全てのオブジェクトOjに対して決定される。
【0076】
図4は、索引構造のリーフノードに含まれるオブジェクトに関連付けられたデータエントリ32に対する例示的データ構造を示す。Mツリーにおいて用いられる例示的データエントリが例示される。データエントリ32は、オブジェクトOjを含む。あるいは、オブジェクトの特徴量がデータ32に含まれ得る。あるいは、オブジェクトの識別子がデータ32に含まれ得る。
【0077】
データエントリ32は、それぞれのオブジェクトOjとその親オブジェクトP(Oj)との間の距離d(Oj;P(Oj))をさらに含み得る。そのような索引構造への距離を含むことによって、値d(Oj;P(Oj))は、サーチ中に距離が計算されることを要求せずに、距離を推定するためか、および/またはサーチを取り除くために用いられ得る。
【0078】
他のデータ構造が用いられ得る。例示として、データエントリ31またはデータエントリ32において示されるさまざまなフィールドエントリは、互いに近接して記憶される必要はない。リレーショナルデータベースにおけるユーザー定義の索引構造は、索引構造の記憶のために用いられ得る。
【0079】
図5は、プロセッサ2によって索引構造を用いて行われ得る方法33のフローチャートである。
【0080】
34において、入力が受信される。入力は、入力インターフェース4を介して受信されたユーザー入力であり得る。あるいは、入力は、プロセッサ2へ乗り物の他のシステムまたはデバイスによって提供され得るか、または乗り物の外側から受信され得る。入力はテキストストリングであり得る。
【0081】
35において、テキスト−音素変換が行われる。結果の音素ストリングは、クエリーオブジェクトとして機能する。
【0082】
36において、類似性サーチが索引構造を用いて行われる。索引構造は、距離メトリックに従って組織化されたメトリック索引構造である。索引構造は、図2〜4を参照して上で説明されたように構成され得る。類似性サーチを行うために、クエリーオブジェクトと、索引構造におけるオブジェクトとの間の距離が距離メトリックに従って決定される。
【0083】
37において、サーチにおいて見つかる最も関連するオブジェクトが出力される。最も関連するオブジェクトは、クエリーオブジェクトのk>1個の最も近い近傍点であり得る。つまり、索引付けされたオブジェクトの中で、クエリーオブジェクトから最も小さい距離を有するk個のオブジェクトであり、距離は、距離メトリックに従って決定される。あるいは、最も関連するオブジェクトは、所定の閾値より小さいクエリーオブジェクトからある距離を有する索引構造における全てのオブジェクトであり得る。
【0084】
37における出力は、複数のオブジェクトが出力されるように行われ得る。オブジェクトは、クエリーオブジェクトからのそれぞれの距離によって決定された順序で出力され得る。
【0085】
図5は、類似性サーチを行う方法40のフローチャートである。方法40は、プロセッサ2によって行われ得る。類似性サーチは、距離メトリックd(・;・)に従って組織化された索引構造を用いて行われる。オブジェクトのタイプに応じて、さまざまな距離メトリックのうちのいずれか1つが上で説明されたように選択され得る。索引構造は、図2〜4を参照して説明されたように構成され得る。
【0086】
41において、クエリーオブジェクトが受信される。クエリーオブジェクトを受信することは、テキスト−音素変換を行うような入力の処理をすることを含み得る。
【0087】
42において、索引構造のノードNがアクセスされる。方法40のステップは、ツリーを通るパスに沿って反復的に繰り返され得る。第1の反復において、ノードNは、索引構造のルートノードであり得る。続く反復において、ノードNは、索引構造のディレクトリノードであり得る。
【0088】
43において、ノードNにおけるオブジェクトOrが選択される。異なるオブジェクトOrは、異なるオブジェクトOrがノードNに含まれる順序で選択され得る。
【0089】
44において、クエリーオブジェクトQと、ノードNにおいて選択されたオブジェクトOrとの間の距離d(Or;Q)が決定される。テキストまたは音素ストリングに対して、距離を決定することは、Levenshtein距離またはいずれか他のストリングメトリックに従う距離を計算することを含み得る。44における距離は、距離メトリックを用いて決定され、距離メトリックに従って、索引構造が区分される。
【0090】
45において、距離d(Or;Q)がオブジェクトOrのカバレッジ半径r(Or)とサーチ半径Rとの総計より大きいか否かが決定される。サーチ半径Rは、固定された半径であり得る。あるいは、サーチ半径Rは、また、類似性サーチが継続するとダイナミックに調節され得る。例示として、サーチ半径Rは、Rがクエリーオブジェクトと、それまでに検索されたk番目の最も近い近傍点との間の距離に対応するように、k個の最も近い近傍点サーチにおいて調節され得る。
【0091】
距離d(Or;Q)がカバレッジ半径r(Or)とサーチ半径Rとの総計より大きいことが決定された場合、方法は45から46へ進む。
【0092】
46において、オブジェクトOrに対するサブツリーにおける全てのオブジェクトがサーチから取り除かれる。サブツリーにおけるいずれかのオブジェクトと、オブジェクトOrとの間の距離の上限であるカバレッジ半径r(Or)の定義によって、オブジェクトOrに対するサブツリーにおけるオブジェクトは、距離d(Or;Q)がr(Or)とRとの総計より大きい場合、クエリーオブジェクトQからのサーチ半径Rより小さいか、または等しい距離を有し得ない。サーチを取り除くことによって、不要なサーチステップが避けられ得る。
【0093】
距離d(Or;Q)がカバレッジ半径r(Or)とRとの総計より大きくないことが決定された場合、方法は45から47に進む。
【0094】
47において、サーチは、オブジェクトOrに対するサブツリーにおいて継続される。この目的のために、オブジェクトOrに対するサブツリーのルートノードT(Or)がアクセスされる。ルートノードは、45においてテストされた条件に基づいて選択的にアクセスされる。このサブツリーにおけるサーチを継続するために、ステップ42〜48がサブツリー内でリーフノードに達するまで繰り返され得る。索引構造のルートからリーフノードまでのパスに沿って、45において試験された条件がこのパスに沿って横切ったいずれかのオブジェクトOrに対して満たされていない場合のみ、リーフノードに達する。
【0095】
47においてリーフノードに達した場合、リーフノードにおけるオブジェクトOjと、クエリーオブジェクトQとの間の距離d(Oj;Q)が決定され得る。
d(Oj;Q)<R (6)
の場合、オブジェクトOjは、続く出力に対して関連する索引付けられたオブジェクトのリストに含まれ得る。k個の最も近い近傍点サーチが行われた場合、サーチ半径Rが更新され得る。つまり、式(6)が満たされ、オブジェクトOjが索引構造において識別された関連するオブジェクトのリストに含まれた場合、サーチ半径Rは、減少され得る。リーフノード(リーフノードに対して式(6)が満たされる)において、オブジェクトが見つからなかった場合、方法は48に進む。
【0096】
48において、別のオブジェクトOrがノードNにあるか否かが決定される。別のオブジェクトがある場合、オブジェクトOrのうちの別の1つが選択される43に方法は戻る。
【0097】
他のオブジェクトがノードNにないことが決定された場合、方法は49に進む。49において、識別されたオブジェクトが出力される。出力は、複数のオブジェクトが出力されるように行われ得る。類似性サーチにおいて見つかったオブジェクトは、クエリーオブジェクトQからのそれぞれの距離によって決定された順序で出力され得る。この距離は、ステップ44またはステップ47において先に決定されているので、距離は、識別されたオブジェクトを続く出力に対して順序付けられたリストにおいて組織化するために用いられ得る。あるいは、サーチ中に決定された距離は、クエリーオブジェクトQからの距離に従うオブジェクトの続く選別のために登録され得る。
【0098】
方法40において、類似性サーチがクエリーオブジェクトと索引付けられたオブジェクトとの間の距離に基づいて行われる。このことは、クエリーオブジェクトおよび索引付けられたオブジェクトがユークリッド空間において規定されない場合ですら、サーチが行われることを可能にする。類似性サーチ40は、多次元ベクトル空間において規定されたオブジェクトに対しても行われ得る。フォルトトレラントなサーチは、メトリック索引構造において、類似性サーチを用いて実装される。
【0099】
方法において、サーチは、クエリーオブジェクトと、索引構造のオブジェクトとの間の距離に基づいて選択的に取り除かれ得る。取り除くことは、方法40のステップ45において確認された条件に基づくか、もしくは下で説明される代替の条件またはさらなる条件に基づいて行われ得る。
【0100】
さらなる例示として、図7および図8への参照がなされる。図7は、オブジェクトの概略的表示50であり、図8は、索引構造70の概略的表示である。
【0101】
図7において示されるオブジェクトは、索引構造のルートノードに含まれるオブジェクト52および55を含む。オブジェクト52に対するサブツリーに配置されるオブジェクトは、オブジェクト52からのカバレッジ半径53より小さいか、または等しい距離に配置される。オブジェクト53に対するサブツリーに配置されるオブジェクトは、オブジェクト55からのカバレッジ半径56より小さいか、または等しい距離に配置される。概略的に例示されるように、オブジェクト52に対するサブツリーにおけるオブジェクトは、第1のカバレッジエリア54に配置される。オブジェクト55に対するサブツリーにおけるオブジェクトは、第2のカバレッジエリア57に配置される。索引構造は、カバレッジエリア54および57が小さい重複を有するように組織化される。オブジェクト52に関連付けられたサブツリーにおけるオブジェクトは、オブジェクト52の周りに集められ、オブジェクト55に関連付けられたサブツリーにおけるオブジェクトは、オブジェクト55の周りに集められる。
【0102】
オブジェクト52に対するサブツリーのルートノードは、オブジェクト59および60を含む。オブジェクト59および60を含むノードは、ディレクトリノードである。オブジェクト59に関連付けられたポインターは、オブジェクト61のようなオブジェクト59の近接にオブジェクトを含むリーフノードを指す。オブジェクト60に関連付けられたポインターは、オブジェクト62のようなオブジェクト60の近接にオブジェクトを含むリーフノードを指す。
【0103】
オブジェクト63、64は、オブジェクト55に関連付けられたサブツリーに含まれる。
【0104】
図8は、図7の表示に対応する索引構造70を例示する。図8において、オブジェクトは、A、B、C、D、E、F、G、H、I、Jとラベル付けされる。
【0105】
索引構造は、オブジェクトAおよびBを有するルートノード71を含む。ルートノード71におけるオブジェクトAは、例えば、図7の52において示されたオブジェクトに対応する。ルートノード71におけるオブジェクトBは、例えば、図7の55において示されたオブジェクトに対応する。
【0106】
索引構造は、オブジェクトAに関連付けられたサブツリーに対するルートノードであるディレクトリノード72を含む。ノード72は、オブジェクトCおよびDを含む。ノード72におけるオブジェクトCは、例えば、図7の59において示されたオブジェクトに対応する。ノード72におけるオブジェクトDは、例えば、図7の60において示されたオブジェクトに対応する。
【0107】
索引構造は、オブジェクトCを親ノードとして有するリーフノード74を含む。ノード74は、オブジェクトGおよびHを含む。ノード74におけるオブジェクトGは、例えば、図7の61において示されたオブジェクトに対応する。索引構造は、オブジェクトDを親ノードとして有するリーフノード75を含む。ノード75は、オブジェクトIおよびJを含む。ノード75におけるオブジェクトIは、例えば、図7の62において示されたオブジェクトに対応する。
【0108】
索引構造は、オブジェクトBに関連付けられたサブツリーにさらなるノード73を含む。
【0109】
近接サーチがクエリーオブジェクト51に対して行われると想定すると、サーチは、クエリーオブジェクトと索引におけるそれぞれのオブジェクトA〜Jとの間の距離を索引構造に含まれる距離情報と組み合わせて用いて、取り除かれ得る。サーチ半径Rは、図7の58において概略的に示される。
【0110】
サーチ方法40が開始された場合、索引構造のルートノード71がアクセスされる。66において示されるクエリーオブジェクトQとオブジェクトBとの間の距離d(Q;B)は、サーチ半径58とカバレッジ半径56との総計よりも大きい。そのため、オブジェクトBに対するサブツリーにおいてサーチは行われない。
【0111】
クエリーオブジェクトQと、65において示されたオブジェクトAとの間の距離d(Q;A)は、58において示されたサーチ半径と、53において示されたオブジェクトAに対するカバレッジ半径との総計より小さい。そのため、サーチは、オブジェクトAに対するサブツリーにおいて継続される。方法40のステップ42〜49をルートノード72を有するサブツリーに対して繰り返すことによって、クエリーオブジェクト51からのサーチ半径より小さいか、または等しい距離に配置されるオブジェクトG(図7においてシンボル61によって表される)およびI(図7においてシンボル62によって表される)が識別される。
【0112】
これらのオブジェクトを識別することによって、距離メトリックに従って測定して、クエリーオブジェクトとの相違が最も小さいオブジェクトを戻すフォルトトレラントなサーチが実装される。
【0113】
類似性サーチは、サーチをカバレッジ半径に基づいて取り除くことによって効率的に行われ得る。索引構造に含まれるさらなるデータは、サーチ効率をさらに向上させるために用いられ得る。例示として、オブジェクトと、それぞれの親オブジェクトとの間の距離が索引構造に記憶される場合、この情報は、ランタイムにおいて行われる必要がある距離計算の数を減少させるために用いられ得る。
【0114】
例示として、方法40のステップ42においてアクセスされたノードNは、索引構造のルートノードではないディレクトリノードである場合、P(Or)がノードオブジェクトOrの親を意味する
|d(Q;P(Or))―d(Or;P(Qr))|≦r(Or)+R (7)
である場合のみ、ステップ44〜47は、選択的に行われ得る。距離d(,)はメトリックであり、三角不等式は、オブジェクトOrに対するサブツリーにおけるオブジェクトがRの距離を有さないか、または式(7)が満たされない場合、クエリーオブジェクトQからより短い距離を有さないことを確実にする。式(7)が満たされない場合、オブジェクトOrに対するサブツリーは、取り除かれ得る。
【0115】
式(7)は、いずれかのさらなる距離計算を要求せずに、確認され得る。量d(Q;P(Or))は、親ノードに対する方法40の先行する反復において決定された。量d(Or;P(Or))は、索引構造から読まれ得る。式(7)の条件が満たされたか否かに応じて、方法40のステップ44における計算を選択的に行うことによって、計算コストがかかるランタイムにおける距離決定の数が減少され得る。
【0116】
さらなる例示として、リーフノードが方法40のステップ47においてアクセスされた場合、リーフノードにおけるオブジェクトOjとクエリーオブジェクトQとの間の距離は、Ojが含まれるリーフノードの親をP(Oj)が意味する
|d(Q;P(Oj)−d(Oj;P(Oj))|≦R (8)
である場合のみ、選択的に決定され得る。d(,)はメトリックなので、三角不等式は、OjおよびクエリーオブジェクトQは、Rの距離を有することができないか、または式(8)が満たされない場合、より短い距離を有することができないことを確実にする。式(8)が満たされない場合、d(Q;Oj)を決定することは要求されない。
【0117】
式(8)は、いずれかのさらなる距離計算を要求せずに確認され得る。量d(Q;P(Oj))は、親ノードに対する方法40の先行するステップにおいて決定された。量(Oj;P(Oj))は、索引構造から読まれ得る。式(8)の条件が満たされた場合のみd(Q;P(Oj))を選択的に計算することによって、計算コストがかかるランタイムにおける距離決定の数が減少され得る。
【0118】
図1〜8を参照して上で説明された実施形態に従う類似性サーチを行うデバイスおよび方法は、オブジェクトがテキストストリング、音素ストリングまたはマルチメディアオブジェクトである場合、特に用いられ得る。デバイスおよび方法は、音素ストリングとの最も小さい相違を有する索引構造におけるオブジェクトを識別するために用いられ得る。索引構造は、音素ストリングに対するフィルターとして用いられ得る。
【0119】
図9は、類似性サーチが用いられ得る方法80のフローチャート表示である。
【0120】
81において、認識器が入力に基づいて音素ストリングを決定する。入力は、テキストストリングであり得る。音素ストリングへの変換は、クラスターにおける音素間の距離(距離メトリックを用いて決定される)が閾値より下という意味で、互いに類似する音素に対応する異なる音素クラスターに基づき得る。
【0121】
82において、音素ストリングは、索引構造を用いてフィルタリングされる。音素ストリングは、図1〜8のうちのいずれか1つを参照して上で説明された索引構造において、類似性サーチを行うことによってフィルタリングされ得る。いくつかの実装において、閾値より小さいか、または等しいクエリーオブジェクトからの距離を有するオブジェクトが決定され得る。代替の実装において、クエリーオブジェクトのk個の最も近い近傍点オブジェクトが決定され得る。
【0122】
83において、音素フィルタリングの結果がスペルマッチャーに提供される。
【0123】
類似性サーチを行う方法のうちのいずれか1つおよび上で説明されたナビゲーションデバイスのうちのいずれか1つにおいて、索引構造はメトリック索引構造であり得る。類似性サーチを行う方法のうちのいずれか1つおよび上で説明されたナビゲーションデバイスのうちのいずれか1つにおいて、索引構造は、平衡サーチツリーに対応し得る。類似性サーチを行う方法のうちのいずれか1つ、および上で説明されたナビゲーションデバイスのうちのいずれか1つにおいて、索引構造は、ディレクトリノード毎およびリーフノード毎のエントリの数が固定されるように構成され得る。
【0124】
図10〜12を参照して、これらのプロパティーを有する索引構造を生成する方法が説明される。
【0125】
図10は、索引構造を生成する方法90のフローチャートである。方法90は、類似性サーチとは別個に行われ得る。特に、方法90は、ナビゲーションデバイスのためにデータを前処理する場合、行われ得る。索引構造は、サーバーコンピュータによってセントラルサイトにおいて構築され得、次いで、複数のナビゲーションデバイスに配備され得る。
【0126】
方法90は、索引構造をボトムアップ態様で構築し得、さらなるオブジェクトが続いて索引構造に加えられる。索引構造は、類似性サーチを行う場合にも続いて用いられる距離メトリックを用いて構築される。
【0127】
挿入されたオブジェクトは、ストリングであり得、特に音素ストリングまたはテキストストリングであり得る。
【0128】
方法90において、索引構造は、オブジェクトを挿入することと、オーバーフロー状態がノードにおいて生じた場合、ノードを分割することとによって構築される。ノードが分割された場合、新たなディレクトリノードが生成される。
【0129】
91において、索引構造に挿入されるオブジェクトOiが検索される。オブジェクトは、音素ストリングまたはテキストストリングであり得る。
【0130】
92において、索引構造のノードNがアクセスされる。1つしかノードがない場合、このノードがアクセスされる。索引構造が既にディレクトリノードを含んでいる場合、最も高いディレクトリノード(つまり、構造のルートノード)がアクセスされる。
【0131】
93において、ノードNがリーフノードか否かが決定される。ノードがリーフノードである場合、方法は98において継続する。そうでない場合、方法は、94において継続する。
【0132】
94において、距離d(Ok;Oi)は、挿入されるオブジェクトOiと、ノードに含まれる全てのオブジェクトOkとの間で決定される。距離は、それぞれ、距離メトリックに従って決定される。
【0133】
95において、ノードNに含まれるオブジェクトOkが決定され、オブジェクトOkに対してd(Ok;Oi)は、最小となる。
【0134】
96において、新たなノードNが選択され、ノードNは、オブジェクトOkに対するサブツリーのルートノードである。ノードNがアクセスされる。
【0135】
97において、ノードNはリーフノードであるか否かが決定される。ノードNがリーフノードでない場合、方法は94に戻る。そうでない場合、方法は、98において継続する。
【0136】
98において、オブジェクトの挿入後のノードNのサイズが、許容されたノードのエントリの最大数に対応する閾値を超えるか否かが決定される。エントリの許容された最大数が超えられないことが決定された場合、オブジェクトOiが99においてノードに挿入される。次いで、方法は91に戻る。
【0137】
ノードNが既に許容されたエントリの最大数を有していることが98において決定された場合、方法は、99において継続する。99において、ノードNは、1対のノードに分割される。ノードNを分割することによって、2つの新たなリーフノードが生成される。同時に、ディレクトリノードが生成され、2つの新たなリーフノードへのポインターを有する2つのオブジェクトを含む。オブジェクトOiは、2つの新たなリーフノードのうちの1つか、または新たなディレクトリノードに挿入され得る。次いで、方法は91に戻る。
【0138】
図11および図12は、ノードにおける許容されたエントリの最大数に達した場合のリーフノードの分割を例示する。
【0139】
図11は、オブジェクトAおよびBを有するディレクトリノード111と、オブジェクトC、D、Gを有するリーフノード112と、オブジェクトEおよびFを有する別のリーフノード113とを有する索引構造110を示す。
【0140】
新たなオブジェクトI(新たなオブジェクトIに対して、d(A;I)<d(B;I))が挿入されることを想定して、方法90は、オブジェクトがリーフノード(ノードAから到達することが可能である)に挿入されることを決定する。ノードに対して許容されたエントリの最大数が3つのオブジェクトに対応する場合、オブジェクトは、単にノード112に挿入することができない。この場合、ノード112は分割される。
【0141】
図12は、ノード112が分割された後の索引構造110を示す。2つの新たなリーフノード115および116が生成される。さらに、新たなディレクトリノード114が生成される。リーフノード112に含まれるオブジェクトCおよびDは、ディレクトリノードにおけるオブジェクトにレベルが上げられる。Mツリーの専門用語において、オブジェクトCおよびDは、ルーティングオブジェクトにレベル上げされる。オブジェクトGは、オブジェクトCを親として有するリーフノード115に加えられる。オブジェクトIは、オブジェクトDを親として有するリーフノード116に加えられる。
【0142】
ノードが方法90でステップ100において分割された場合、さまざまな技術が用いられ得、ディレクトリノードへレベル上げされるオブジェクトを選択する。例えば、Mツリーに対して、以下の実装が用いられ得る:
一実装において、ディレクトリノードにレベル上げされるオブジェクトが無作為に選択され得る。
【0143】
別の実装において、サンプリングがディレクトリノードにレベル上げされた複数対のオブジェクトに対して行われる。複数対のうちのいずれか1つに対して、ノードに含まれる他のノードが2つの新たなリーフノードに区分される。オブジェクトは、新たなリーフノードのうちの1つに割り当てられる。新たなリーフノードのうちの1つに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。区分が完了したとき、結果の包含半径が決定される。包含半径が式(5)に従って決定される。ディレクトリノードにレベル上げされた異なる対のオブジェクトに対して、異なる包含半径が生じる。次いで、ノードは、サンプリングされた対のオブジェクトのうちの1つがディレクトリノードに加えられるように分割され得る。ディレクトリノードに対して、2つの包含範囲の最大は、サンプリングされた対のレベル上げされたオブジェクトの中の最小値を有する。
【0144】
別の実装において、サンプリングは、全ての可能な対のオブジェクトO1およびO2に対して行われる。オブジェクトO1およびO2は、ノードに含まれ、原則的にはディレクトリノードに加えられ得る。分割の前にノードに含まれる他のオブジェクトは、上で説明されたように区分される。つまり、オブジェクトは、新たなリーフノードのうちの1つに割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。可能な対のオブジェクトのうちのいずれか1つに対して、包含半径r(O1)+r(O2)の総計が決定される。次いで、包含半径の最小総計になる対のオブジェクトがディレクトリノードに加えられ得る。他のオブジェクトは、新たなリーフノードのうちの1つにそれぞれ割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。
【0145】
別の実装において、サンプリングは、全ての可能な対のオブジェクトO1およびO2に対して行われる。オブジェクトO1およびO2は、ノードに含まれ、原則的にはディレクトリノードに加えられ得る。分割の前にノードに含まれる他のオブジェクトは、上で説明されたように区分される。つまり、オブジェクトは、新たなリーフノードのうちの1つに割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。レベル上げされる可能な対のオブジェクトのうちのいずれか1つに対して、2つの包含半径max(r(O1),r(O2))の最大が決定される。次いで、包含半径の最大に対して最小値になる対のオブジェクトがディレクトリノードに加えられ得る。他のオブジェクトは、それぞれ、新たなリーフノードのうちの1つに割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、それぞれ、より小さい。
【0146】
別の実装において、挿入されるオブジェクトから最も大きい距離d(Ok;Oi)を有するリーフノードにおけるオブジェクトOkが決定される。次いで、このオブジェクトOkおよび新たなオブジェクトOiがディレクトノードにレベル上げされ得る。他のオブジェクトは、それぞれ、新たなリーフノードのうちの1つに割り当てられ得る。新たなリーフノードに対して、オブジェクトとリーフノードの親との間の距離は、より小さい。
【0147】
Mツリーとして構成される索引構造を生成する方法が図10〜図12を参照して、上で説明されたが、同じものを構築する他のメトリック索引構造および方法が他の実施形態において用いられ得る。例えば、vantageポイントツリーが用いられ得る。
【0148】
実施形態に従うデバイスおよび方法が詳細に説明されたが、改変が他の実施形態において実装され得る。例示として、包含半径、または親オブジェクトと子オブジェクトとの間の距離のような距離情報が索引データに記憶され得るが、そのようなデータは、また、ランタイムにおいて計算され得る。
【0149】
さらなる例示として、索引ツリーおよびそのノードの例示的構造が説明されたが、いずれか適切なデータ構造が索引ツリーを実装するために用いられ得る。例示として、索引ツリーは、リレーショナルデータベースにおけるユーザー定義の構造として記憶され得る。この場合、1つのテーブルが提供され得、テキストストリングまたは音素ストリングを含む。別のテーブルが提供され得、対のテキストストリングまたは音素ストリングの間の距離を含む。
【0150】
さらなる例示として、索引構造が「索引構造におけるオブジェクト」のような表現を用いて説明されたが、そのようなオブジェクトは、索引構造に組み込まれる必要はない。むしろ、索引構造は、オブジェクト自体よりも、オブジェクトへの識別子またはポインターを含み得る。
【0151】
さらなる例示として、類似性サーチが、クエリーオブジェクトからの固定されたサーチ半径内に配置されたオブジェクトに対するサーチに関連して説明されたか、またはk個の最も近い近傍点に対するサーチに関連して説明されたが、他の類似性サーチもメトリック索引構造を用いて実装され得る。いくつかのサーチが音素またはテキストストリングに対するサーチのような特定の距離メトリックまたは特定の適用に関連して説明されたが、実施形態は、それらに限定されない。
【0152】
発明の実施形態は、乗り物のナビゲーションデバイスに対して用いられ得る。
【符号の説明】
【0153】
10、70 索引構造
51 クエリーオブジェクト
11〜17、71〜75 ノード
【特許請求の範囲】
【請求項1】
索引構造(10;70)を用いてナビゲーションデバイスデータベースにおいて類似性サーチを行う方法であって、該データベースは、複数のオブジェクトを含み、該索引構造(10;70)は、複数のノード(11−17;71−75)を含み、
該方法は、
クエリーオブジェクト(51)を受信することと、
該複数のオブジェクトのうちの少なくとも1つのオブジェクト(52,55,59,60)に関連付けられる該索引構造(10;70)のノード(11−13;71−73)にアクセスすることと、
該ノード(11−13;71−73)に関連付けられた該少なくとも1つのオブジェクト(52,55,59,60)の各々のオブジェクトに対して、それぞれ、該クエリーオブジェクト(51)と該オブジェクトとの間の距離(65,66)を決定することであって、該距離(65,66)は、それぞれ、距離メトリックに従って決定される、ことと、
該決定された距離(65,66)に基づいて、該索引構造(10;70)の別のノード(12−17;72−75)に選択的にアクセスすることと
を含む、方法。
【請求項2】
前記クエリーオブジェクト(51)は、音素ストリングまたはテキストストリングである、請求項1に記載の方法。
【請求項3】
前記クエリーオブジェクト(51)を受信することは、テキスト入力を受信することと、テキスト−音素変換を行うこととを含む、請求項2に記載の方法。
【請求項4】
前記索引構造(10;70)は、前記少なくとも1つのオブジェクト(52,55,59,60)と該索引構造(10;70)の他のオブジェクトとの間の距離についての距離情報をさらに含み、
該他のノード(12−17;72−75)は、該距離情報と、前記決定された距離(65,66)とに基づいて選択的にアクセスされる、請求項1に記載の方法。
【請求項5】
前記ノード(11−13;71−73)は、いくつかのオブジェクト(52,55)に関連付けられ、
前記距離情報は、該いくつかのオブジェクト(52,55)の各々に対して、該それぞれのオブジェクト(52,55)と、該それぞれのオブジェクト(52,55)に関連付けられた前記索引構造(10;70)のサブツリーに含まれる任意のオブジェクト(59−64)との間の距離の上限(53,56)を含む、請求項4に記載の方法。
【請求項6】
前記クエリーオブジェクト(51)は、音素ストリングまたはテキストストリングであり、
該クエリーオブジェクト(51)を受信することは、テキスト入力を受信することと、テキスト−音素変換を行うこととを含む、請求項4に記載の方法。
【請求項7】
オブジェクトは、前記決定された距離(65,66)に基づいて、前記類似性サーチから選択的に取り除かれる、請求項1〜6のうちのいずれか一項に記載の方法。
【請求項8】
前記他のノード(12−17;72−75)が前記索引構造(10;70)のリーフノード(14−17;74,75)である場合に、前記距離(65,66)を決定することと、前記別のノード(12−17;72−75)に選択的にアクセスすることとが終了される、請求項1〜6のうちのいずれか一項に記載の方法。
【請求項9】
前記距離メトリックに従って決定された、前記クエリーオブジェクト(51)からの所定の距離(58)内に配置された全てのオブジェクトが識別される、請求項1〜6のうちのいずれか一項に記載の方法。
【請求項10】
1より大きい整数k個のオブジェクトが識別され、該k個のオブジェクトは、前記距離メトリックに従って決定された、前記クエリーオブジェクト(51)のk個の最も近い近傍点を表す、請求項1〜6のうちのいずれか一項に記載の方法。
【請求項11】
前記識別されたオブジェクトは、前記クエリーオブジェクト(51)と、それぞれの識別されたオブジェクトとの間の距離に基づいて決定された順序で出力される、請求項10に記載の方法。
【請求項12】
ナビゲーションデバイスであって、該ナビゲーションデバイスは、
複数のオブジェクトを含むデータベースに対する索引構造(10;70)を格納する記憶デバイス(3)であって、該索引構造(10;70)は、複数のノード(11−17;71−75)を含む、記憶デバイス(3)と、
該記憶デバイス(3)に結合された処理デバイス(2)と
を含み、該処理デバイス(2)は、クエリーオブジェクト(51)に対して類似性サーチを行うために、
該複数のオブジェクトのうちの少なくとも1つのオブジェクト(52,55,59,60)に関連付けられた該索引構造(10;70)のノード(11−13;71−73)にアクセスすることと、
距離メトリックに従って、該クエリーオブジェクト(51)と該少なくとも1つのオブジェクト(52,55,59,60)との間の距離(65,66)を決定することと、
該決定された距離(65,66)に基づいて、該索引構造(10;70)の別のノード(12−17;72−75)に選択的にアクセスすることと
を行うように構成される、ナビゲーションデバイス。
【請求項13】
前記処理デバイス(2)は、請求項1〜6のうちのいずれか一項に記載の方法を行うように構成される、請求項12に記載のナビゲーションデバイス。
【請求項14】
複数のオブジェクトを含むナビゲーションデバイスデータベースのためのメトリック索引構造(10;70;110)を生成する方法であって、該方法は、該索引構造(10;70;110)の他のノードへのポインターを含む該索引構造のディレクトリノード(11−13;71−73;111,114)を生成することと、該索引構造のリーフノード(14−17;74;75;113,115,116)を生成することとを含み、
該ディレクトリノード(11−13;71−73;111,114)と該リーフノード(14−17;74;75;113,115,116)とを生成することは、
該オブジェクトの複数の組に対して、それぞれ、該オブジェクトの組のオブジェクト間の距離を決定することによって複数の距離を決定することであって、該距離は、それぞれ、距離メトリックに従って決定される、ことと、
該複数の距離に基づいて、ディレクトリノード(11−13;71−73;111,114)に含まれるべきであるオブジェクトと、リーフノード(14−17;74;75;113,115,116)に含まれるべきであるオブジェクトとを識別することと
を含む、方法。
【請求項15】
前記オブジェクトは、音素ストリングまたはテキストストリングである、請求項14に記載の方法。
【請求項16】
前記ディレクトリノードおよび/または前記リーフノードにおいて、前記複数の距離から導かれた距離情報を格納することを含む、請求項14または15に記載の方法。
【請求項1】
索引構造(10;70)を用いてナビゲーションデバイスデータベースにおいて類似性サーチを行う方法であって、該データベースは、複数のオブジェクトを含み、該索引構造(10;70)は、複数のノード(11−17;71−75)を含み、
該方法は、
クエリーオブジェクト(51)を受信することと、
該複数のオブジェクトのうちの少なくとも1つのオブジェクト(52,55,59,60)に関連付けられる該索引構造(10;70)のノード(11−13;71−73)にアクセスすることと、
該ノード(11−13;71−73)に関連付けられた該少なくとも1つのオブジェクト(52,55,59,60)の各々のオブジェクトに対して、それぞれ、該クエリーオブジェクト(51)と該オブジェクトとの間の距離(65,66)を決定することであって、該距離(65,66)は、それぞれ、距離メトリックに従って決定される、ことと、
該決定された距離(65,66)に基づいて、該索引構造(10;70)の別のノード(12−17;72−75)に選択的にアクセスすることと
を含む、方法。
【請求項2】
前記クエリーオブジェクト(51)は、音素ストリングまたはテキストストリングである、請求項1に記載の方法。
【請求項3】
前記クエリーオブジェクト(51)を受信することは、テキスト入力を受信することと、テキスト−音素変換を行うこととを含む、請求項2に記載の方法。
【請求項4】
前記索引構造(10;70)は、前記少なくとも1つのオブジェクト(52,55,59,60)と該索引構造(10;70)の他のオブジェクトとの間の距離についての距離情報をさらに含み、
該他のノード(12−17;72−75)は、該距離情報と、前記決定された距離(65,66)とに基づいて選択的にアクセスされる、請求項1に記載の方法。
【請求項5】
前記ノード(11−13;71−73)は、いくつかのオブジェクト(52,55)に関連付けられ、
前記距離情報は、該いくつかのオブジェクト(52,55)の各々に対して、該それぞれのオブジェクト(52,55)と、該それぞれのオブジェクト(52,55)に関連付けられた前記索引構造(10;70)のサブツリーに含まれる任意のオブジェクト(59−64)との間の距離の上限(53,56)を含む、請求項4に記載の方法。
【請求項6】
前記クエリーオブジェクト(51)は、音素ストリングまたはテキストストリングであり、
該クエリーオブジェクト(51)を受信することは、テキスト入力を受信することと、テキスト−音素変換を行うこととを含む、請求項4に記載の方法。
【請求項7】
オブジェクトは、前記決定された距離(65,66)に基づいて、前記類似性サーチから選択的に取り除かれる、請求項1〜6のうちのいずれか一項に記載の方法。
【請求項8】
前記他のノード(12−17;72−75)が前記索引構造(10;70)のリーフノード(14−17;74,75)である場合に、前記距離(65,66)を決定することと、前記別のノード(12−17;72−75)に選択的にアクセスすることとが終了される、請求項1〜6のうちのいずれか一項に記載の方法。
【請求項9】
前記距離メトリックに従って決定された、前記クエリーオブジェクト(51)からの所定の距離(58)内に配置された全てのオブジェクトが識別される、請求項1〜6のうちのいずれか一項に記載の方法。
【請求項10】
1より大きい整数k個のオブジェクトが識別され、該k個のオブジェクトは、前記距離メトリックに従って決定された、前記クエリーオブジェクト(51)のk個の最も近い近傍点を表す、請求項1〜6のうちのいずれか一項に記載の方法。
【請求項11】
前記識別されたオブジェクトは、前記クエリーオブジェクト(51)と、それぞれの識別されたオブジェクトとの間の距離に基づいて決定された順序で出力される、請求項10に記載の方法。
【請求項12】
ナビゲーションデバイスであって、該ナビゲーションデバイスは、
複数のオブジェクトを含むデータベースに対する索引構造(10;70)を格納する記憶デバイス(3)であって、該索引構造(10;70)は、複数のノード(11−17;71−75)を含む、記憶デバイス(3)と、
該記憶デバイス(3)に結合された処理デバイス(2)と
を含み、該処理デバイス(2)は、クエリーオブジェクト(51)に対して類似性サーチを行うために、
該複数のオブジェクトのうちの少なくとも1つのオブジェクト(52,55,59,60)に関連付けられた該索引構造(10;70)のノード(11−13;71−73)にアクセスすることと、
距離メトリックに従って、該クエリーオブジェクト(51)と該少なくとも1つのオブジェクト(52,55,59,60)との間の距離(65,66)を決定することと、
該決定された距離(65,66)に基づいて、該索引構造(10;70)の別のノード(12−17;72−75)に選択的にアクセスすることと
を行うように構成される、ナビゲーションデバイス。
【請求項13】
前記処理デバイス(2)は、請求項1〜6のうちのいずれか一項に記載の方法を行うように構成される、請求項12に記載のナビゲーションデバイス。
【請求項14】
複数のオブジェクトを含むナビゲーションデバイスデータベースのためのメトリック索引構造(10;70;110)を生成する方法であって、該方法は、該索引構造(10;70;110)の他のノードへのポインターを含む該索引構造のディレクトリノード(11−13;71−73;111,114)を生成することと、該索引構造のリーフノード(14−17;74;75;113,115,116)を生成することとを含み、
該ディレクトリノード(11−13;71−73;111,114)と該リーフノード(14−17;74;75;113,115,116)とを生成することは、
該オブジェクトの複数の組に対して、それぞれ、該オブジェクトの組のオブジェクト間の距離を決定することによって複数の距離を決定することであって、該距離は、それぞれ、距離メトリックに従って決定される、ことと、
該複数の距離に基づいて、ディレクトリノード(11−13;71−73;111,114)に含まれるべきであるオブジェクトと、リーフノード(14−17;74;75;113,115,116)に含まれるべきであるオブジェクトとを識別することと
を含む、方法。
【請求項15】
前記オブジェクトは、音素ストリングまたはテキストストリングである、請求項14に記載の方法。
【請求項16】
前記ディレクトリノードおよび/または前記リーフノードにおいて、前記複数の距離から導かれた距離情報を格納することを含む、請求項14または15に記載の方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−174272(P2012−174272A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2012−32698(P2012−32698)
【出願日】平成24年2月17日(2012.2.17)
【出願人】(504147933)ハーマン ベッカー オートモーティブ システムズ ゲーエムベーハー (165)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願日】平成24年2月17日(2012.2.17)
【出願人】(504147933)ハーマン ベッカー オートモーティブ システムズ ゲーエムベーハー (165)
[ Back to top ]