(57)【要約】  本発明は、圧縮オブジェクトストア及び探索木を迅速に試作することを容易にするために、コンパクトな索引付け、並びに文字列探索キーの融通性のある構成及び他の探索基準を使用してオブジェクトの効率的な多次元探索のためのシステムを構成するトライの概念に基づく。これは、種々の探索方法を組み込む。
2009543224.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実現される方法であって、
木を探索することを含み、前記木はキーと関連付けられるノードにより構成され、前記木は所定の圧縮基準に従って枝刈りされ、前記木は複数のオブジェクトを格納するか又はオブジェクトストアの複数のオブジェクトを参照する葉ノードを含み、前記複数のオブジェクトは異なるキーの値を有し、前記探索は探索キーに基づいて葉ノードを見つけるために探索することを含み、前記探索は、更に、前記葉ノードにより示される前記オブジェクトを検査することをむコンピュータにより実現される方法。
【請求項２】
前記葉ノードは、親ノードと同一のキー接頭部と関連付けられる請求項１に記載のコンピュータにより実現される方法。
【請求項３】
ノードは、他の探索基準の指示を格納する請求項１に記載のコンピュータにより実現される方法。
【請求項４】
前記他の探索基準の指示は、前記ノードの子孫において見つけられないオブジェクト属性の指示を含む請求項３に記載のコンピュータにより実現される方法。
【請求項５】
前記他の探索基準の指示は、前記ノードの少なくとも１つの子孫に含まれるオブジェクト属性の指示を含む請求項３に記載のコンピュータにより実現される方法。
【請求項６】
前記探索システムに対してキー構造を選択するためにＡＰＩが使用され、前記キー構造の前記選択に応答して、前記オブジェクトストア及び前記木を構成するためにオブジェクトのキーが使用される請求項１に記載のコンピュータにより実現される方法。
【請求項７】
ユーザは文字によりアプリケーションにキーを入力し、前記アプリケーションは有効な次の入力文字を示すために前記木を探索する請求項１に記載のコンピュータにより実現される方法。
【請求項８】
前記アプリケーションは、前記有効な次の文字を示す出力を提供する請求項７に記載のコンピュータにより実現される方法。
【請求項９】
前記キー構造は、地理的場所又はオブジェクト名を示す請求項１に記載のコンピュータにより実現される方法。
【請求項１０】
前記キー構造は州及び都市を示す請求項１に記載のコンピュータにより実現される方法。
【請求項１１】
前記キー構造は道路を示す請求項１に記載のコンピュータにより実現される方法。
【請求項１２】
前記キー構造は道路の交差点を示す請求項１に記載のコンピュータにより実現される方法。
【請求項１３】
前記キー構造は地点情報を示す請求項１に記載のコンピュータにより実現される方法。
【請求項１４】
前記キー構造は座標を示す請求項１に記載のコンピュータにより実現される方法。
【請求項１５】
前記キー構造は場所にリンクされるオブジェクトを示す請求項１に記載のコンピュータにより実現される方法。
【請求項１６】
前記葉ノードは、前記葉の親から継承される同一の接頭部を有する複数のオブジェクトを示す請求項１に記載のコンピュータにより実現される方法。
【請求項１７】
前記探索はオブジェクト名に対して行なわれる請求項１に記載のコンピュータにより実現される方法。
【請求項１８】
前記探索は、ジオコーディング、ジオルックアップ、逆ジオコーディング及び地点情報に対して行なわれる請求項１に記載のコンピュータにより実現される方法。
【請求項１９】
アプリケーションと、
前記アプリケーションのに対して木を探索するための探索システムとを備えたシステムであって、前記木はキーと関連付けられるノードにより構成され、前記木はオブジェクトストアの複数のオブジェクトと関連付けられる葉ノードを含み、前記複数のオブジェクトは異なるキーの値を有し、前記探索は探索キーに基づいて葉ノードを見つけるために探索することを含み、前記探索は、更に、前記葉ノードにより示される前記オブジェクトを検査する、システム。
【請求項２０】
ノードは、他の探索基準の指示を格納する請求項１９に記載のシステム。
【請求項２１】
前記他の探索基準の指示は、前記ノードの子孫において見つけられないオブジェクト属性の指示を含む請求項２０に記載のシステム。
【請求項２２】
前記探索されるオブジェクトは非空間オブジェクトである請求項１９に記載のシステム。
【請求項２３】
前記他の探索基準の指示は、前記ノードの少なくとも１つの子孫に含まれるオブジェクト属性の指示を含む請求項２０に記載のシステム。
【請求項２４】
前記探索されるオブジェクトは空間オブジェクトである請求項１９に記載のシステム。
【請求項２５】
前記探索システムに対してキー構造を選択するためにＡＰＩが使用され、前記キー構造の前記選択に応答して、前記オブジェクトストア及び前記木を構成するためにオブジェクトのキーが使用される請求項１９に記載のシステム。
【請求項２６】
ユーザはアプリケーションにデータを入力し、前記アプリケーションは有効な次の入力文字を示すために前記木を探索する請求項１９に記載のシステム。
【請求項２７】
前記アプリケーションは、前記有効な次の文字を示すディスプレイを提供する請求項２５に記載のシステム。
【請求項２８】
前記キーの一部分は州を示す請求項１９に記載のシステム。
【請求項２９】
前記キーの一部分は都市を示す請求項１９に記載のシステム。
【請求項３０】
前記キーの一部分は道路を示す請求項１９に記載のシステム。
【請求項３１】
前記キーの一部分は道路の交差点を示す請求項１９に記載のシステム。
【請求項３２】
前記キー構造は地点情報を示す請求項１９に記載のシステムに基づくマップ。
【請求項３３】
前記キー構造は座標を示す請求項１９に記載のシステムに基づくマップ。
【請求項３４】
前記キー構造は空間オブジェクトにリンクされるオブジェクトを示す請求項１９に記載のシステムに基づくマップ。
【請求項３５】
前記葉ノードは同一の接頭部を有する複数のオブジェクトを示す請求項１９に記載のシステムに基づくマップ。
【請求項３６】
前記探索はジオコーディングに対して行なわれる請求項１９に記載のシステムに基づくマップ。
【請求項３７】
前記探索はジオルックアップに対して行なわれる請求項１９に記載のシステムに基づくマップ。
【請求項３８】
前記探索は逆ジオコーディングに対して行なわれる請求項１９に記載のシステムに基づくマップ。
【請求項３９】
前記探索は地点情報の場所を特定するために行なわれる請求項１９に記載のシステムに基づくマップ。
【請求項４０】
コンピュータにより実現される方法であって、
利用可能な次の文字を判定するために木を探索することを有し、前記木はキーと関連付けられるノードにより構成され、前記木はオブジェクトストアの複数のオブジェクトと関連付けられる葉ノードを含み、前記複数のオブジェクトは異なるキーの値を有し、前記利用可能な次の文字を判定するための探索は前記木から及び／又は前記オブジェクトストアのオブジェクトから利用可能な次の文字情報を取得する、コンピュータにより実現される方法。
【請求項４１】
木構造を構成するコンピュータにより実現される方法であって、
キー構造に従うキーを有するオブジェクトのリストを受信し、
完全な木構造を構成し、
殆どの葉ノードが複数のオブジェクトと関連付けられるようにノードを結合することを含む、コンピュータにより実現される方法。
【請求項４２】
ノードは、他の探索基準の指示を格納する請求項４１に記載のコンピュータにより実現される方法。
【請求項４３】
前記他の探索基準の指示は、前記ノードの子孫において見つけられないオブジェクト属性の指示を含む請求項４２に記載のコンピュータにより実現される方法。
【請求項４４】
前記他の探索基準の指示は、前記ノードの少なくとも１つの子孫に含まれるオブジェクト属性の指示を含む請求項４２に記載のコンピュータにより実現される方法。
【請求項４５】
前記探索システムに対してキー構造を選択するためにＡＰＩが使用され、前記キー構造の前記選択に応答して、前記オブジェクトストア及び前記木を構成するためにオブジェクトのキーが使用される請求項４２に記載のコンピュータにより実現される方法。
【請求項４６】
前記木の高さは、圧縮基準に従って枝刈りされる請求項４１に記載のコンピュータにより実現される方法。
【請求項４７】
前記結合ステップは、葉ノードを結合することを含む請求項４１に記載のコンピュータにより実現される方法。
【請求項４８】
短い葉ノードにより参照される前記オブジェクトが連続的に格納される請求項４１に記載のコンピュータにより実現される方法。
【請求項４９】
長い葉ノードにより参照される前記オブジェクトが非連続的なオブジェクトを指し示す請求項４１に記載のコンピュータにより実現される方法。
【請求項５０】
コンピュータにより実現される方法であって、
木のノードを探索することを含み、前記木のノードはキー情報を示し、少なくとも一部のノードは追加の探索基準情報を示し、前記キー情報が前記探索の第１の次元に対して検査され且つ前記探索基準情報が前記探索の追加の次元に対して検査されるように前記探索は多次元である、コンピュータにより実現される方法。
【請求項５１】
前記探索の前記第１の次元において、前記キーの値がユーザ入力と比較される請求項５０に記載のシステム。
【請求項５２】
前記枝刈りされた木は、複数のオブジェクトを格納するか又はオブジェクトストアの複数のオブジェクトを参照する葉ノードを含む請求項５０に記載のシステム。
【請求項５３】
前記探索基準は、前記ノードの子孫では見つけられないオブジェクト属性を示す請求項５０に記載のシステム。
【請求項５４】
前記探索基準は、前記ノードの子孫に含まれるオブジェクト属性を示す請求項５０に記載のシステム。
【請求項５５】
コンピュータにより実現されるシステムであって、
ａ）オブジェクトのクラスに対する、複数のユーザインタフェースに対応するように操作される文字列探索キー構成要素の定義と、
ｂ）探索キーの構成要素を区別するオブジェクトストアと、
ｃ）所定のユーザインタフェースを与えるための前記構成要素からの探索キー構造の構成と、
ｄ）探索キー定義に対して構成された適応可能探索木であって、ノードが探索キー構造と関連付けられ、前記葉ノードがオブジェクトを格納するか又はオブジェクトストアのオブジェクトを参照し、所定の圧縮基準に基づいて前記木の記憶が最小限にされた、適応可能探索木とを具備し、前記探索木及び前記オブジェクトストアを介して一致するオブジェクトの場所を特定するために適応可能探索方法が使用され、前記探索は圧縮及び所定のユーザインタフェースから結果として得られる前記木構造に適応する、コンピュータにより実現されるシステム。
【請求項５６】
前記木からの一致するオブジェクトの検索は、部分探索キー又は完全探索キーの入力に基づく請求項５５に記載のコンピュータにより実現されるシステム。
【請求項５７】
探索キーは、基本探索キー構成要素の完全な集合又は部分集合を選択することにより定義される請求項５５に記載のコンピュータにより実現されるシステム。
【請求項５８】
探索キーは、選択された基本探索キー構成要素に対して順序を与えることにより定義される請求項５５に記載のコンピュータにより実現されるシステム。
【請求項５９】
前記オブジェクトストアの順序は、前記基本探索キーにより与えられる請求項５５に記載のコンピュータにより実現されるシステム。
【請求項６０】
各々が自身の探索キー構造を有する１つ以上の探索木が、同一のオブジェクトストアを参照できる請求項５５に記載のコンピュータにより実現されるシステム。
【請求項６１】
固有のキー構造は、オブジェクトのクラスに対して定義される請求項５５に記載のコンピュータにより実現されるシステム。
【請求項６２】
次に利用可能な入力文字は、圧縮された木及び／又はオブジェクトストアから検索される請求項５５に記載のコンピュータにより実現されるシステム。
【請求項６３】
所定のユーザインタフェースプロファイル及び選択された圧縮基準に対して、探索木の大きさ、並びに最適な、平均的な及び最悪な場合の探索性能に対してスコアが生成され、それにより、種々の実現例のスコアを比較することによって種々の必要条件を均衡化するためのツールをシステム設計者に与える請求項５５に記載のコンピュータにより実現されるシステム。
【請求項６４】
各木ノードの子孫のうち所定の基準に一致する少なくとも１つのオブジェクトの存在を示す追加の探索基準を前記ノードにオプションとして格納することにより多次元探索に対応する請求項５５に記載のコンピュータにより実現されるシステム。
【請求項６５】
前記圧縮することは、ノード及び枝を結合すること及び分割することを含む請求項５５に記載のコンピュータにより実現されるシステム。
【請求項６６】
前記結合すること及び前記分割することは、単一のステップで行なわれる請求項６５に記載のコンピュータにより実現されるシステム。
【請求項６７】
種々のユーザインタフェースルックアンドフィールプロファイルに対応するためのコンピュータにより実現されるシステムであって、
ａ）複数のユーザインタフェースに対応するように操作される文字列探索キー構成要素の、オブジェクトの種類に対する定義と、
ｂ）探索キーの構成要素を区別するオブジェクトストアと、
ｃ）キーの構成要素の操作が異なるユーザインタフェースを実現するための前記構成要素からの探索キー構造の構成と、
ｄ）設計者がキーの構成要素及び前記探索の異なるユーザインタフェースを結果として与えるキーの構成要素の順序を選択できるようにするための文字列キー構造を定義するためのＡＰＩと、
ｅ）前記オブジェクトストアの探索キー構成要素から実現される複数のユーザインタフェースのうちの１つに対するオブジェクト探索に対応するための適応圧縮探索木であって、ノードが探索キー構造と関連付けられ、前記葉がオブジェクトを格納するか又はオブジェクトストアのオブジェクトを参照する適応圧縮探索木とを備えるコンピュータにより実現されるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、以下の同時継続の出願：２００６年６月３０日出願の、Tsia Kuznetsov等による「可変圧縮による適応索引」という名称の米国仮出願番号６０／８０６，３６６（Attorney Docket No. TELA-07780US0）；２００６年６月３０日出願の、Tsia Kuznetsov等による「可変圧縮による適応索引における最近傍検索」という名称の米国仮出願番号６０／８０６，３６７（Attorney Docket No. TELA-07781US0）；２００７年６月２８日出願の、Tsia Kuznetsov等による「可変圧縮による適応索引」という名称の米国特許出願番号１１／７７０，０５８（Attorney Docket No. TELA-07780US1）；及び、２００７年６月２８日出願の、Tsia Kuznetsov等による「可変圧縮による適応索引における最近傍検索」という名称の米国特許出願番号１１／７７０，４２６（Attorney Docket No. TELA-07781US1）、の優先権を主張するものであり、それらの内容は、本願に合体されるものである。
【０００２】
発明の背景
多くのアプリケーションは、ユーザに対して地図作成サービスを提供するために、格納された地理データを使用できる。モバイルシステム又は固定システムに対して実現可能なアプリケーションは、マップレンダリング、空間オブジェクト探索、ジオコーディング又はジオルックアップ、経路探索、方向及び位置決めを含むことができる。オブジェクト探索、特に文字列キーによるオブジェクト探索はそれらのアプリケーションに対して使用される。
【図面の簡単な説明】
【０００３】
【図１】図１は、本発明の一実施形態のマップを使用するシステムを示す図である。
【図２Ａ】、
【図２Ｂ】図２Ａ及び図２Ｂは、索引付けを含むシステム及び索引付けを含まないシステムを示す図である。
【図３Ａ】、
【図３Ｂ】図３Ａ及び図３Ｂは、短い葉ノード及び長い葉ノードを示す図である。
【図４Ａ】、
【図４Ｂ】図４Ａ及び図４Ｂは、一実施形態の木システムを示す図である。
【図５】図５は、一実施形態の方法を示すフローチャートである。
【図６Ａ】、
【図６Ｂ】、
【図６Ｃ】図６Ａ〜図６Ｃは、図５の方法の実施形態の動作を示す図である。
【図７】図７は、ノードが除外又は含有情報等の他の探索基準の指示を含む一例を示す図である。
【図８】図８は、複数の木を含む単一のオブジェクトストアを使用することを示す図である。
【図９Ａ】、
【図９Ｂ】図９Ａ及び図９Ｂは、木に対するキー構造を選択するためにＡＰＩを使用することを示す図である。
【発明を実施するための形態】
【０００４】
詳細な説明
本発明の一実施形態は、文字列キーによりオブジェクトを探索する探索システムを適応的に構成するためのコンピュータにより実現される方法である。探索システムは、オブジェクトストア１０８に常駐するオブジェクト及び文字列キー構造を有するオブジェクトを使用して構成される木１０２を含むことができる。
【０００５】
木１０２は、キーが特定の探索方法に対応する文字列であるオブジェクトを索引付けするために使用される順序木データ構造であるトライ（trie）、すなわちプレフィックス木（prefix tree）に基づいてもよい。部分的な文字列キー入力を仮定すると、トライは次の文字の選択の検索を容易にする。トライについては、Donald Knuth. The Art of Computer Programming, Volume 3: Sorting andSearching, Third Edition. Addison-Wesley、１９９７年、ISBN 0-201-89685-0. Section 6.3: Digital Searching、４９２〜５１２ページにおいて説明される。
【０００６】
トライは、キーの接頭部（prefix）を操作し且つノード及び葉（leaf）の数を最小限にする重要なステップにより限定的な記憶必要条件に適応可能なように再構成される。一実施形態において、木１０２の殆どの葉ノードはオブジェクトストアの複数のオブジェクトと関連付けられる。これは、オブジェクトストアからオブジェクトのグループを取得する前に、完全なキーの一部分のみが木において探索されることを意味する。例えば、木１０２は完全なトライの可変スケール圧縮であってもよい。
【０００７】
木の記憶は、所定の圧縮基準に基づいて最小限にされる。適応可能な探索方法は、探索木及び前記オブジェクトストアを介してオブジェクトを検索するために使用される。探索は、所定のユーザインタフェース及び圧縮から結果として得られる木構造に適応可能である。
【０００８】
一実施形態において、オブジェクトストア１０８は、文字列キーを使用して探索される実世界の空間オブジェクトをモデル化する。実世界の空間オブジェクトは、都市、都市の道路、交差点、地点情報（ＰＯＩ）又は文字列キーと関連付けられる別の種類のオブジェクトを含むことができる。
【０００９】
一実施形態において、オブジェクトはトライの葉に格納される。別の実施形態において、オブジェクトの同一の集合に対する複数の探索方法に対応するために、別個のオブジェクトストアが所定の種類のオブジェクトに対して固定長又は可変長の記憶装置として構成される。可変長オブジェクトに対する記憶装置は、固定長オブジェクトオフセットディレクトリにより構成される。そのようなオブジェクトストアは、オブジェクトの探索及びスクローリングに対応できる。
【００１０】
オブジェクトストアのエントリは各オブジェクトの固有のキーにより判定され、ストア中のオブジェクトの順序はオブジェクトのソートキーにより判定される。オブジェクトストアは、探索キーの構成要素を区別できる。
【００１１】
一実施形態において、オブジェクトストアがセットアップされると、探索木１０２は、ストア中の各オブジェクトへの参照がオブジェクトの探索キーを使用して木の葉において見つけられるように構成される。
【００１２】
木の探索キー構造は、道路、道路の交差点、地点情報（ＰＯＩ）又は他の要素等の空間オブジェクト、あるいはオブジェクトの属性を示すことができる。一実施形態において、所定の種類のオブジェクトに対するキーの構成要素が連結される順序は、そのクラス（種類）のオブジェクトに対する特定の探索方法を示す。キーの構成要素の連結の順序は、システム設計者が迅速に試作し、所定のクラスのオブジェクトに対する多くの文字列キー定義に組み込まれる種々のユーザインタフェースを実験する際に使用できる単純な機構であってもよい。
【００１３】
ＡＰＩは、探索キー及び従って探索方法の構成を支援するためにアプリケーションにおいて実現及び使用され、設計者がオブジェクトの探索のための種々のユーザインタフェースを生成及び実験することを可能にする。一実施形態において、ＧＵＩはそのようなＡＰＩを使用して構築され、所定のクラスのオブジェクトに対する探索方法のキー構造を定義及び選択する。それにより、オブジェクトストア及び木に対して適切な順序を与える。ＡＰＩは、いくつかの環境に対して実際上実現不可能な記憶必要条件を有する可能性のある関係データベース管理システム（ＲＤＢＭＳ）に依存せずに、典型的には、ＲＤＢＭＳ技術と関連した探索システムのインタフェースを容易に変更できるという融通性をシステム設計者に与えることができる。
【００１４】
従って、文字列キーの構成要素及びキー構造の構成に対する構成要素の順序を選択することにより、設計者は種々のユーザインタフェース及び基礎となる探索方法を評価できる。
【００１５】
図９Ａ及び図９Ｂは、ＡＰＩ９０２を使用する木及びオブジェクトストアの構成を示す。設計者は、キーの構成要素及び順序をデータ９０４から選択できる。例えば、データ９０４のデータフィールドはキーの構成要素として使用される。キー構造及びデータは、キー構造で表される探索方法を実現するユーザインタフェースを介してアクセス可能なオブジェクトストア及び木を構成するために使用される。
【００１６】
図９Ａは、キー構造が都市／道路により与えられる一例を示す。これは、ユーザインタフェース９０６がこの順序でデータを受信するように構成されることを意味する。図９Ｂは、キー構造が道路／都市により与えられ、ユーザインタフェース９０８がこの順序でデータを受信するように構成される一例を示す。
【００１７】
所定のユーザインタフェースプロファイル及び選択した圧縮基準の場合に、探索木の大きさ、オブジェクトストアの大きさ、メモリ必要条件、並びに最適な及び最悪な場合の探索性能に対してスコアが生成される。これにより、システム設計者は種々の実現例のスコアを比較することによって種々の必要条件を均衡化するツールを与えられる。
【００１８】
例えば、圧縮量はシステムの性能に影響を及ぼす。高レベル圧縮は、より多くのオブジェクトがオブジェクトストアから取得され且つ解析される必要があることを意味する。低レベル圧縮の結果、木に対する記憶必要条件は大きくなる。木の構成を調節し、葉ノードにより参照されるオブジェクトの数を最大限にできる可変圧縮基準は、最終のアプリケーションに対して性能、メモリ及び記憶装置の使用を適切に均衡化するように調整される。一実施形態において、圧縮基準は木の任意の枝の下にあるオブジェクトの最小数を調節する。
【００１９】
図１を再度参照すると、可変圧縮の結果、木はオブジェクトストア１０８の複数のオブジェクトを参照する葉ノードを含むことができる。オブジェクト及び葉ノードにおけるオブジェクト参照は異なるキーの値を有することができ、共通の接頭部は葉の親ノードの接頭部と一致する。これは、元の非圧縮トライ構造における単純な探索に対して、探索を完了するためのオブジェクトストアへのオブジェクト参照に後続する木に対する部分探索を強化する更に複雑な探索アルゴリズムを示す。
【００２０】
葉ノードは、短い葉ノード又は長い葉ノードとして区別される。短い葉は、連続的なリストの第１の（最初の）オブジェクト及び参照される複数のオブジェクトを参照する。長い葉は、参照のカウント及びリストの各オブジェクトに対する直接参照を格納することによりオブジェクトの任意のリストを参照できる。探索は、探索キーに基づく葉ノード１１０を見つけること及び葉ノードにより参照されるオブジェクトのうち一致するオブジェクトの集合の場所を特定することを含むことができる。
【００２１】
一実施形態において、探索文字列が完成するまで又はユーザが部分キーに一致するオブジェクトの集合を要求するまで、ユーザは１文字ずつ探索文字列を入力し、アプリケーションは木１０２を探索して有効な次の入力文字の集合を示す。アプリケーションは、有効な次の文字を示すディスプレイを提供でき、あるいは有効な次の文字を出力できる。別の実施形態において、ユーザは完全な探索文字列又は部分探索文字列を入力する。そのような探索をサポートする木は、木の各ノードにおいてキーの接頭部文字列を格納でき、最短の文字列を根に格納し且つ完全な探索キーを葉に格納する。本発明の一実施形態において、探索木はノードのキー接頭部を減少することにより圧縮され、親の接頭部の拡張のみを格納するため、ノードの実際のキー接頭部は根からノードの格納されたキー接頭部を含むそのノードまでのパスにおいて全てのキー接頭部文字列を連結することにより取得される。適応索引の一実施形態において、探索木は単一の子を有するノードを折り畳むことにより更に圧縮される。
【００２２】
本発明の一実施形態は、木１０２及びオブジェクトストア１０８を含む探索システムとマップディスプレイ１０６を有するアプリケーション１０４とを具備するシステムである。木１０２は、キー構造と関連付けられるノードにより構成される。木１０２は、各ノードの接頭部を減少することにより圧縮される。オブジェクトのクラスが単一の探索方法を介してアクセスされることを意図する場合、木１０２は複数のオブジェクトを格納する葉ノードを含むことができる。オブジェクトのクラスが２つ以上の探索方法を介してアクセスされることを意図する場合、木１０２は、オブジェクトストアのオブジェクトに対する参照を含む葉ノードを含むことができる。木１０２は、可変圧縮の結果、オブジェクトストア１０８の複数のオブジェクトを参照する葉ノードを含むことができる。探索は、探索キーに基づいて葉ノード１１０を見つけるために探索することと、葉ノードにより示されるオブジェクトを検査することとを含むことができる。
【００２３】
システム１００は、ユーザから入力を受信し且つ出力を生成できるユーザインタフェース１１０を有することができる。出力の一例としては、有効な次の文字を示す次の文字指示が挙げられる。利用可能な次の文字の集合は、以下に説明するように、木１０２及び／又はオブジェクトストア１０８の探索から判定される。
【００２４】
図２Ａ及び図２Ｂは、最小数の読み出し動作によりオブジェクトストアから検索可能な複数のオブジェクト及び第１の（最初の）オブジェクトに対するポインタ（ＩＤ）含む短い葉ノードの例を示す。図２Ａは、オブジェクトが固定サイズのエントリを含むオブジェクトストア２０２に格納され、単一の読み出しを必要とする（十分なメモリがあることが条件である）例を示す。図２Ｂは、オブジェクトが可変サイズのエントリを含むオブジェクトストア２０４に格納される一例を示す。その場合、固定サイズのオフセットを有するオフセットアレイ２０６は、読み出し動作の回数を２回に制限するために使用される（十分なメモリがあることが条件である）。
【００２５】
双方の場合において、オブジェクトデータは、カウント数に対応して取得される。例えば、カウントが５０である場合、次の５０個のオブジェクトは、オブジェクトストアから取得され且つ必要に応じて解析される。短い葉ノードは木に対する記憶必要条件を低減する。これは、リソースが制限されるシステムにおいて実現されるモバイル地理アプリケーションにとって有用である。
【００２６】
一実施形態において、連続したオブジェクトは、図３Ａに示すように短い葉に格納される。短い葉ノードは、ＩＤ及びカウントを含むことができる。オブジェクトストア中のオブジェクトの順序は、キー構造により示される順序で構成される。
【００２７】
図３Ｂは長い葉を示す。長い葉は、各オブジェクトに対する個々のポインタを有する非連続的なオブジェクトを指し示すために使用される。
【００２８】
図８は、同一のオブジェクトストア８０６のオブジェクトを指し示す２つの木８０２及び８０４を含む一例を示す。２つの木は、ユーザインタフェースの２つの異なる入力要素と関連付けられる。一般に、探索キー構造がストア８０６のオブジェクトの順序に従う木は、連続したオブジェクトを指し示すために短い葉ノードを使用できる。他の木は、長い葉ノードを使用できる。長い葉は、記憶必要条件を増加する。長い葉オブジェクトに対する読み出し動作の回数は、長い葉のオブジェクト数に比例する。
【００２９】
図４Ａは、一実施形態における「次の利用可能な文字」の集合を取得する方法の一例を示す。ユーザが「PIN」を入力した場合、次の利用可能な文字は、ノード４０２の子ノードの接頭部を検査することにより取得される。
【００３０】
図４Ｂは、葉ノード４０４がオブジェクトストアの複数の連続したオブジェクトを参照するシステムを示す。この例において、ノード４０４に対応するオブジェクトの名前はオブジェクトストアから取得され、「次の文字」情報を取得するために解析される。図４Ｂの例において、葉ノード４０４と関連付けられるオブジェクトの名前PINE RIDGE、PINE VALLEY、PINEBROOK、PINECONE、PINNACLE、PINTAIL、PINTOは全て、ユーザ入力「PIN」で開始する。これらの名前は、有効な次の文字{' ', 'E', 'N', 'T'}を取得するために解析され、それらはユーザに出力される。葉ノードと関連付けられるオブジェクトデータのグループが取得され且つ表示するために処理される状況において、スクローリング及び他の機能は同様に実現される。
【００３１】
一実施形態において、葉ノードは関連するキー情報を有する必要はない。これは、葉ノードが親ノードと同一のキー接頭部を有することを意味する。これにより、オブジェクト又はオブジェクト参照は、最も効率的なパッキングのために容易に結合されて葉ノードにされる。
【００３２】
一実施形態において、葉ノードにより参照されるオブジェクトはアクセス及び解析されて、次の文字を判定し且つスクローリングを実現する。木は、木の異なるレベルで葉ノードを有することができる。
【００３３】
本発明の一実施形態は、キー構造に従うキーのリストを含む木を構成するコンピュータにより実現される方法であり、完全な木構造を構成し、殆どの葉ノードが複数のオブジェクトと関連付けられるようにノードを結合することによりその木構造を枝刈りする。
【００３４】
圧縮技術は、所定の基準に基づいて、各ノードに対して必要とされる記憶オーバヘッドを最小限にするためにオブジェクトに対する葉ノード参照を最大限にすることを含むことができる。
【００３５】
図５は、一実施形態の好適なフローチャートを示す。ステップ５０２において、キー構造が判定される。道路名に対する好適なキー構造は、「道路名?都市名」であり、「?」は区切り文字である。例えば、「Kensington?San Francisco」である。交差点に対する好適なキー構造は、「道路１の名前?道路２の名前?都市名」である。オブジェクトは、いずれの順序も道路の交差点を探索するために使用できるようにオブジェクトストアにおいて複製される。例えば、「Oak?Elm?Sacramento」及び「Elm?Oak?Sacramento」は、単一のエントリ又は各々が属性の集合を有する同一の実際の交差点を参照する木オブジェクトストアの２つのエントリを結果として与える２つの異なる木探索パスを表せる。
【００３６】
ステップ５０４において、キー構造に基づくオブジェクトに対するキーのリストが判定される。キー構造は、オブジェクトストアのオブジェクトの順序を更に判定できる。
【００３７】
ステップ５０６において、完全なノード構造はキーのリストに基づいて作成される。この完全なノード構造は、ステップ５０８、５１０及び５１２に示すように圧縮され、ノード及び葉の数を減少することにより木の大きさを縮小できる。好適なステップを図６Ａ〜図６Ｃに更に示す。
【００３８】
図６Ａにおいて、単一の子ノード６０２を有するノード６０４は、子ノード６０２と結合されてノード６０６を形成する。ノード６０６は、探索文字列の複数の文字と関連付けられる。
【００３９】
図６Ｂは、圧縮ステップの一例を示す。図６Ｂの例において、各孫ノードは、別の孫ノードと結合されるかを確認するために検査される。一例において、双方の孫ノードが所定の数の関連するオブジェクト（一実現例において１６等）より少ないオブジェクトを有する場合、木はこの基準に対応するために枝刈りされる。図６Ｂの例において、ノード６１０、６１２及び６１４は結合されて、ノード６１６を形成する。
【００４０】
図６Ｃは、ノード６２０がノード６２２及び６２４に分割されて、最大サイズ（一実施形態において６３等）を下回るように各葉ノードにおいて関連付けられるオブジェクトの数を保持する場合を示す。
【００４１】
上記例は、例として個別のステップを示している。別の実施形態において、圧縮ステップは、同一の結果をもたらす単一のステップに組み合わされる。
【００４２】
一実施形態において、木ノードは、他の探索基準の指示を格納できる。木に対する探索又は他の動作はその指示を使用して、ノード及びその子孫ノード又は関連するオブジェクトが更に解析される必要があるかを判定できる。一実施形態において、その指示はｎ次元探索を実現するために使用される。
【００４３】
一実施形態において、探索は、カテゴリ又は都市等のオブジェクト属性によりフィルタリングされる。指示は、ノードの子孫において見つけられないオブジェクトカテゴリの指示及び／又はノードの子孫のうち少なくとも１つに含まれるオブジェクトカテゴリの指示を含むことができる。同様に、指示が都市ＩＤを含む場合、探索は都市によりフィルタリングされる。一実施形態において、ユーザは名前により地点情報を探索でき、それは特定のオブジェクトカテゴリにより向上され且つそれが存在する都市名により更に向上される。
【００４４】
例えば、地点情報カテゴリの有無が木ノードにおいて示される場合、地点情報に対する文字探索は、ファーストフード等のカテゴリを除外するノードを探索パスから除去できる。
【００４５】
一実施形態において、ノードは特定のカテゴリの探索を簡単にし且つ高速化するためにカテゴリ除外又は含有情報を格納できる。除外情報は、ノードに関連付けられるオブジェクトがカテゴリに存在しないことを示せる。含有情報は、カテゴリにおいてノードと関連付けられるオブジェクトが存在することを示せる。
【００４６】
図７は一例を示す。この例において、木セグメントにおける探索は、レストランの探索である場合にノード７０２で停止可能であり、ガソリンスタンドの探索である場合にノード７０４で停止可能である。除外情報等の他の探索基準の指示は、ノード木の作成時に実現される。
【００４７】
図７の木は、多次元探索に対して使用される。例えば、キー情報は探索の第１の次元に対して検査され、探索基準情報は探索の追加次元に対して検査される。
【００４８】
一例において、ユーザインタフェースは、例えばオブジェクトカテゴリである木において示される追加の探索基準に対するユーザ入力を受信するためにチェックボックス等を含むことができる。探索は、探索において検査するノードを判定するためにカテゴリ情報を使用できる。図７の例において、ユーザがガソリンスタンドを探しており且つ「P」を入力した場合、ノード７０４がガソリンスタンドを除外するため、「I」は次に利用可能な文字として示されない。
【００４９】
探索基準は、特定のノードと関連付けられるコードであり、ノードの子孫において見つけられないカテゴリ等を示してもよい。オブジェクトストアのオブジェクトは、関連するカテゴリ情報を更に有することができるため、２次元探索は、木のノード及びオブジェクトストアのオブジェクトの双方を含むことができる。
【００５０】
キー構造を選択するために使用されるＡＰＩは、追加の探索基準を木に追加するために使用され、多次元探索を可能にする。
【００５１】
同時係属米国特許出願第６０／８０６，３６７号公報（Attorney Docket No. TELA-07781US0に対応する）「可変圧縮による適応索引における最近傍検索（NEAREST SEARCH ON ADAPTIVE INDEX WITH VARIABLE COMPRESSION）」において説明されるように、探索システムは特定の位置に対する最近傍探索を行なうために使用される。
【００５２】
コンピュータ技術者には明らかとなるように、一実施形態は、本開示の教示に従ってプログラムされた専用又は従来の汎用デジタルコンピュータ又はマイクロプロセッサを使用して実現されてもよい。ソフトウェア技術者には明らかとなるように、適切なソフトウェアコーディングは、本開示の教示に基づいて熟練したプログラマにより容易に準備される。本発明は、当業者には容易に明らかとなるように、集積回路を準備することにより又は従来のコンポーネント回路の適切なネットワークを相互接続することにより実現されてもよい。
【００５３】
一実施形態は、本明細書で提示される任意の機能を実行するようにコンピュータをプログラムするために使用される命令を格納した記憶媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、並びにコンピュータ可読媒体の任意の１つに格納された命令及び／又はデータを格納するのに適した媒体又はデバイスの光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、フラッシュメモリを含む任意の種類のディスクを含むことができるがこれらに限定されない。本発明は、汎用／専用コンピュータ又はマイクロプロセッサのハードウェアを制御するためのソフトウェア及びコンピュータ又はマイクロプロセッサが人間のユーザ又は本発明の結果を利用する他の機構と対話することを可能にするためのソフトウェアを含む。そのようなソフトウェアは、デバイスドライバ、オペレーティングシステム、実行環境／コンテナ及びユーザアプリケーションを含んでもよいが、それらに限定されない。
【００５４】
本発明の好適な実施形態の上記説明は、例示及び説明の目的で提供された。本発明を網羅する意図はなく、あるいは本発明を開示された厳密な形式に限定する意図はない。多くの変更及び変形が当業者には明らかとなるだろう。例えば、開示される本発明の実施形態において実行されるステップは別の順序で実行でき、特定のステップは省略でき、また追加のステップが追加できる。実施形態は、本発明の原理及びその実際的な応用例を最適に説明し、それにより他の当業者が特定の使用に適すると考えられる種々の実施形態に対して本発明を理解できるように選択及び説明される。本発明の範囲は、請求の範囲及びそれらの等価物により規定されることが意図される。
【図１】
2009543224.tif 000003
【図２Ａ】
2009543224.tif 000004
【図２Ｂ】
2009543224.tif 000005
【図３Ａ】
2009543224.tif 000006
【図３Ｂ】
2009543224.tif 000007
【図４Ａ】
2009543224.tif 000008
【図４Ｂ】
2009543224.tif 000009
【図５】
2009543224.tif 000010
【図６Ａ】
2009543224.tif 000011
【図６Ｂ】
2009543224.tif 000012
【図６Ｃ】
2009543224.tif 000013
【図７】
2009543224.tif 000014
【図８】
2009543224.tif 000015
【図９Ａ】
2009543224.tif 000016
【図９Ｂ】
2009543224.tif 000017
【国際調査報告】
2009543224.tif 000018
2009543224.tif 000019