(57)【要約】【課題】４分木構成中にプリミティブデータの複数の詳細レベルを記憶するときに、プリミティブデータまたはプリミティブデータのグループに関連するエンティティデータについての妥当なストレージのロケーション特定および参照のシステムを提供すること。【解決手段】地図などの電子ドキュメントにおいて、エンティティルックアップシステムは、プリミティブ４分木およびエンティティ４分木の並列な、または対応するグリッドを介してプリミティブデータをエンティティデータに関連づける。キーが、このエンティティ４分木中の特定のグリッドに関連したこのプリミティブ４分木中のグリッドに割り当てられる。【選択図】図４
2006244480.tif 000002
【特許請求の範囲】
【請求項１】
プリミティブデータを包含するグリッドを含むプリミティブ４分木と、
エンティティデータを前記プリミティブ４分木の前記グリッドに関連づける対応するグリッドを含むエンティティ４分木と
を含むことを特徴とするエンティティルックアップシステム。
【請求項２】
前記プリミティブデータは、電子ドキュメント中の形状を定義するようにグループ化されることを特徴とする請求項１に記載のエンティティルックアップシステム。
【請求項３】
前記プリミティブ４分木のグリッドは、前記エンティティ４分木中の特定のグリッドが特定の形状についてのエンティティデータを提供し、一緒にグループ化される、前記プリミティブ４分木の前記グリッドに関連づけられるように、電子ドキュメント中の前記特定の形状を包含するようにグループ化されることを特徴とする請求項１に記載のエンティティルックアップシステム。
【請求項４】
前記プリミティブ４分木中の１対のグリッドは、形状を定義し、前記エンティティ４分木中の特定のグリッドに関連づけられるプリミティブデータを包含することを特徴とする請求項１に記載のエンティティルックアップシステム。
【請求項５】
前記プリミティブ４分木中の前記グリッドを前記エンティティ４分木中の前記グリッドに関連づけるキーは、前記プリミティブ４分木中の前記各グリッドに割り当てられることを特徴とする請求項１に記載のエンティティルックアップシステム。
【請求項６】
前記キーは、特定の形状を定義するプリミティブデータを包含する１対のグリッドの一部分である、前記プリミティブ４分木中のグリッドについてのファン値を含むことを特徴とする請求項５に記載のエンティティルックアップシステム。
【請求項７】
前記キーは、前記プリミティブ４分木中のグリッドのグリッドレベルと、前記プリミティブ４分木中の前記グリッドについてのエンティティデータを提供する、前記エンティティ４分木中のグリッドのグリッドレベルの間の差を定義する詳細レベル値を含むことを特徴とする請求項５に記載のエンティティルックアップシステム。
【請求項８】
前記キーは、前記プリミティブ４分木中のグリッドと、前記プリミティブ４分木中の前記グリッドについてのエンティティデータを提供する、前記エンティティ４分木中のグリッドの間のグリッドインデックス値間の差を定義するインデックス値を含むことを特徴とする請求項５に記載のエンティティルックアップシステム。
【請求項９】
プリミティブ４分木中のプリミティブデータのグリッドを識別すること、
プリミティブデータの前記グリッドが、特定の形状を定義するプリミティブデータのグループを包含するかどうかを判定すること、および
プリミティブデータの前記グリッドを前記プリミティブ４分木に並行するエンティティ４分木中のグリッドに関連づけること
を含むことを特徴とする方法。
【請求項１０】
前記プリミティブデータは、地図上の地理的ロケーションを表現することを特徴とする請求項９に記載の方法。
【請求項１１】
プリミティブデータの前記グリッドは、プリミティブデータの前記グループを包含する１対のグリッドのうちの一方であることを特徴とする請求項９に記載の方法。
【請求項１２】
ファン値が、プリミティブデータの前記グリッドに割り当てられ、前記ファン値は、さらに前記プリミティブデータの前記グリッドを前記エンティティ４分木中の前記グリッドに関連づけることを定義することを特徴とする請求項１１に記載の方法。
【請求項１３】
前記関連づけることは、プリミティブデータの前記グリッドにキーを割り当てることによって実施され、前記キーは、プリミティブデータの前記グリッドと前記エンティティ４分木中の前記グリッドの、グリッドレベルの差を定義する詳細レベル値を含むことを特徴とする請求項９に記載の方法。
【請求項１４】
前記関連づけることは、プリミティブデータの前記グリッドにキーを割り当てることによって実施され、前記キーは、プリミティブデータの前記グリッドと前記エンティティ４分木中の前記グリッドとの、グリッドインデックス値の間の差を定義するインデックス値を含むことを特徴とする請求項９に記載の方法。
【請求項１５】
前記エンティティ４分木中の前記グリッドは、前記関連づけることを行っている間のプリミティブデータの前記グリッドについての記述的情報を提供することを特徴とする請求項９に記載の方法。
【請求項１６】
コンピュータ上で使用するための、前記コンピュータ上で実行されるときに、
電子ドキュメント中における形状を表現するプリミティブデータを包含するプリミティブ４分木中のグリッドを識別すること、
前記プリミティブ４分木中の前記グリッドに対応するグリッドを含むエンティティ４分木中の前記プリミティブデータを定義する情報を記憶すること、および
前記プリミティブ４分木中の前記グリッドを前記エンティティ４分木中のグリッドに関連づけること
を含む動作を実施する命令を有することを特徴とするストレージ媒体。
【請求項１７】
前記グリッドを識別することは、詳細レベル値およびインデックス値を含むことを特徴とする請求項１６に記載のストレージ媒体。
【請求項１８】
前記グリッドを識別することは、形状を表現する前記プリミティブデータを包含するグリッドの対を識別することを含み、前記グリッドを関連づけることは、前記エンティティ４分木中のグリッドを前記プリミティブ４分木中の１対のグリッドに関連づけることを含むことを特徴とする請求項１６に記載のストレージ媒体。
【請求項１９】
前記関連づけることは、前記プリミティブ４分木中の前記各グリッドに割り当てられるキーを使用して実施され、前記キーは、前記プリミティブ４分木中のグリッドと、前記プリミティブ４分木中の前記グリッドについての情報を提供する前記エンティティ４分木中のグリッドとの間の詳細レベルの差を定義することを特徴とする請求項１６に記載のストレージ媒体。
【請求項２０】
前記プリミティブ４分木中のグリッドが、前記電子ドキュメント中における形状を表現するプリミティブデータを包含する１対のグリッドのうちの一方である場合に、前記キーは、ファン値をさらに含むことを特徴とする請求項１９に記載のストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリミティブデータを記述するエンティティデータに、このプリミティブデータを関連づけることに関する。
【背景技術】
【０００２】
空間データまたはプリミティブデータ（ｐｒｉｍｉｔｉｖｅ  ｄａｔａ）と呼ばれることもあるプリミティブは、より複雑なグラフィックイメージを作成するために組み合わせてことができる、直線、曲線、多角形などの基本的なエレメントである。地図作成アプリケーションによって作成される地図などの電子ドキュメントのコンテキストにおいて、プリミティブデータは、この地図上のロケーションを定義することができる。プリミティブデータは、２次元空間におけるＸ−Ｙ形式などのデカルト座標系によって記述することができる。
【０００３】
プリミティブデータのグループは、特定の形状を作成することができる。地図のコンテキストにおいて、特定の形状（すなわち、プリミティブデータのグループ）は、市、郡、州などを定義することができる。エンティティデータは、プリミティブデータ、またはプリミティブデータのグループに関連づけることができる。かかるエンティティデータは、その特定のプリミティブデータ、またはプリミティブデータのグループについての詳細（情報）を記述または提供することができる。例えば、エンティティデータは、プリミティブデータのグループによって定義される特定の地域の名前、人口統計、および人口を含むことができる。
【０００４】
特定の実施例においては、プリミティブのグループは、特定の分解能で、アメリカ合衆国の形状を表現することができる。異なる１組のプリミティブを使用して、このアメリカ合衆国の形状をより高い分解能で表現することもできる。各組のプリミティブは、異なる詳細レベルで記憶する必要がある。かかる詳細レベルは、４分木（ｑｕａｄ−ｔｒｅｅ）構成によって表現することができ、この４分木構成では、所与のレベルは、４つの等しい大きさのグリッドに分割される、以前のレベルのグリッドである。このレベルに割り当てられるプリミティブは、これらが交差する四分区間（ｑｕａｄｒａｎｔ）に関連づけられる。この後に続く詳細レベルにおいては、各四分区間は、それぞれこの座標空間のうちの、比例してさらに小さな部分を占める、４つの等しい大きさのさらに小さな四分区間に再分割される。このレベルに割り当てられるさらに詳細なプリミティブは、これらがオーバーラップする四分区間に再び関連づけられる。この４分木におけるグリッド分割は、無限小の詳細レベルの度合いまで継続することができる。さらに、各詳細レベルにおいて、より高いレベルにおいては適切な表現を有していなかった新しい特徴を導入することができる。一実施例として、この最低の詳細レベルは、アメリカ合衆国についてのプリミティブしか含まない可能性がある。次に高い詳細レベルは、アメリカ合衆国と各州についてのプリミティブを含むはずである。次に高い詳細レベルは、アメリカ合衆国、すべての州についてのさらに高い分解能のプリミティブを含み、これらの郡などを表現するプリミティブを導入するはずである。
【０００５】
エンティティデータを使用して、アメリカ合衆国、テキサス州、アマリロ市、およびアマリロ内のあるストリートを表現するプリミティブデータ、またはプリミティブデータのグループを記述する場合、各グループのプリミティブデータについて別々のエントリを行う必要がある。換言すれば、アメリカ合衆国を表現するプリミティブデータのグループは、エンティティデータについてのそれ自体のエントリを有するはずであり、テキサス州を表現するプリミティブデータのグループは、エンティティデータについてのそれ自体のエントリを有するはずであり、アマリロ市を表現するプリミティブデータのグループは、エンティティデータについてのそれ自体のエントリを有するはずであり、またアマリロ内のあるストリートを表現するプリミティブデータのグループは、エンティティデータについてのそれ自体のエントリを有するはずである。
【０００６】
多くの状況においては、空間的に方向づけられたクエリを介して情報を検索することが必要になる。かかるクエリの一実施例は、これらのすべてのプリミティブと、所与の座標空間の一部のサブセットに交差する関連するエンティティデータとを返すことになるはずである。最少量の情報をスキャンしてこのクエリを満たすのに必要なデータを検索するように、このエンティティデータを記憶していることが望ましい。また、ストレージ媒体上の物理的に近接したロケーションにおいて、エンティティデータを一緒に検索することができるように記憶して、検索時間を最小にすることも望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前述のような４分木構成中にプリミティブデータの複数の詳細レベルを記憶するときに、プリミティブデータまたはプリミティブデータのグループに関連するエンティティデータについての妥当なストレージのロケーション特定（ｌｏｃａｔｉｏｎ）および参照のシステムを決定することが必要なこともある。１つのアプローチは、キーを有するプリミティブデータに縛られた関係テーブル（すなわち、プリミティブデータのグループ）中にこのエンティティデータを記憶することである。前述の第２のアプローチは、プリミティブデータの各関連付け（すなわち、プリミティブデータのグループ）を用いてこのエンティティデータを複製することである。この第１のアプローチは、このエンティティデータにアクセスするときにストレージ局所性を失ってしまうという欠点を有するが、この第２のアプローチは、エンティティデータの無駄の多い複製を必要とする。
【課題を解決するための手段】
【０００８】
地図などの電子ドキュメントにおいては、エンティティルックアップシステムは、この電子ドキュメント中において形状を定義するプリミティブデータを包含するグリッドを含むプリミティブ４分木を含んでいる。このエンティティルックアップシステムは、このプリミティブ４分木中のグリッドに対応するグリッドを含むエンティティ４分木を含んでおり、関連付けが、このプリミティブ４分木中のグリッドと、このエンティティ４分木中のグリッドについて行われる。このエンティティ４分木中のグリッドは、このプリミティブ４分木中のグリッドによって包含されるプリミティブデータについての情報を提供する。このエンティティルックアップシステムを使用してこれらの２つの４分木間をナビゲートする。
【０００９】
詳細な説明について、添付図面を参照して説明している。これらの図面中において、参照番号のうちの一番左側の１桁（または複数桁）は、この参照番号が最初に現れる図面を識別している。異なる図面中における同じ参照番号の使用は、同様なアイテムまたは同一のアイテムを示している。
【発明を実施するための最良の形態】
【００１０】
以下の開示は、プリミティブデータまたはプリミティブデータのグループが、並列な４分木構成を介して、このプリミティブデータまたはプリミティブデータのグループを記述するエンティティデータに関連づけられる技法について説明している。
【００１１】
図１は、並列な４分木構成を介してエンティティデータに関連づけられるプリミティブデータを含む地図を示している。コンピュータまたはコンピューティングデバイス１００は、画面１０５を含み、キーボード１１０などの入力デバイスに接続され、またはこの入力デバイスを含んでいる。電子ドキュメントは、ディスプレイ１０５を介してコンピューティングデバイス１００上に表示される。この実施例においては、この表示される電子ドキュメントは、アメリカ合衆国の地図１１５である。コンピューティングデバイス１００は、デスクトップＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒパーソナルコンピュータ）、ラップトップＰＣ、タブレットＰＣ、ＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ携帯型個人情報端末）、スマート電話またはフィーチャ電話（ｆｅａｔｕｒｅ  ｐｈｏｎｅ）などの様々なデバイスのうちの１つとすることができる。
【００１２】
地図１１５は、直線、点、多角形などの形状を表すプリミティブ、またはプリミティブデータとしても知られている空間データから構成される。この実施例においては、プリミティブデータのグループは、アメリカ合衆国を定義する地図１１５を構成する。さらに、地図１１５を構成するプリミティブデータのグループのサブセットは、アメリカ合衆国中の州、市、ストリートなどを定義することができる。
【００１３】
地図１１５は、４つのグリッドに分割することができる空間の一部分である。これらの４つのグリッドのそれぞれは、さらに４つのグリッドに分割することができる。このグリッドの分割は、さらに継続することができる。これらのグリッドのかかる分割または構成は４分木と呼ばれ、以下でさらに詳細に説明している。この作成されたプリミティブ４分木中の特定の各グリッドは、プリミティブデータの特定のグループを含んでいる。このプリミティブ４分木中の各グリッドには、このプリミティブ４分木中の他のグリッドからそれを区別する一意の数またはインデックスが与えられることができる。
【００１４】
エンティティデータは、プリミティブデータのグループについての記述または情報を提供している。この記述または情報は、テキサス州を表すプリミティブデータのグループに対する「テキサス（Ｔｅｘａｓ）」など、プリミティブデータのグループに関連する名前を含むことができる。エンティティデータは、プリミティブデータの特定のグループに関連づけることができる、人口統計、興味のある景色、歴史的情報など他のどのようなデータも含むことができる。
【００１５】
プリミティブデータを記述する４分木構成と並列するエンティティデータについての４分木が作成される。プリミティブデータのグループを表現するプリミティブ４分木グリッドごとに、並列グリッドがエンティティ４分木中に表現される。このエンティティ４分木中の並列グリッドは、このプリミティブ４分木中のグリッドとしてマッチするインデックスまたは数字を有することができる。このエンティティ４分木中の並列グリッドは、エンティティデータを記憶することができるストレージロケーションを表す。
【００１６】
キーは、このプリミティブ４分木中の各グリッド中における各プリミティブに関連づけられる。かかるキーを使用して、プリミティブデータのグループを表現する特定のグリッドをこのエンティティ４分木中の特定のグリッドに関連づけ、この特定のエンティティデータを各プリミティブに関連するエンティティ４分木中に位置づける。この構成については、以下で詳細にさらに説明している。
【００１７】
図２は、プリミティブ４分木およびエンティティ４分木を示している。特に、エンティティルックアップシステム２００は、並列なプリミティブ４分木２０２とエンティティ４分木２０４とを含んでおり、ここで対応するグリッドは、プリミティブ４分木２０２およびエンティティ４分木２０４中に存在する。
【００１８】
プリミティブ４分木２０２は、直線、点、多角形などの形状を表すプリミティブデータが存在する幾何学空間を表す。地図作成アプリケーションによって生成される地図（例えば、地図１１５）などの電子ドキュメントのコンテキストにおいては、かかるプリミティブデータは、国、州、郡、市、ストリートなどの地理的場所を表すことができる。
【００１９】
エンティティ４分木２０４は、プリミティブ４分木２０２に対する、並列な、または対応する４分木である。換言すれば、エンティティ４分木２０４中において表現されるグリッドは、プリミティブ４分木２０２中における並列な、または対応するグリッドを有する。この実施例において、エンティティ４分木２０４中のグリッドは、プリミティブ４分木２０２中のグリッドと対応するインデックスまたは数字を有する。エンティティ４分木２０４は、特定のプリミティブまたはプリミティブデータのグループの詳細を記述しまたは提供するデータが記憶されるストレージまたはメモリ中の区域を表す。
【００２０】
プリミティブ４分木２０２中の幾何学空間、およびエンティティ４分木２０４中のストレージ域を記述する様々な詳細レベルを提供することができる。この実施例においては、最上位の詳細レベルは、「詳細レベル０」２０６によって表現され、次の詳細レベルは、「詳細レベル１」２０８によって表現され、この最大の詳細レベルは、「詳細レベル２」２１０によって表現される。「詳細レベル２」２１０を超えるさらに大きな詳細レベルを提供することもできる。
【００２１】
このエンティティルックアップシステム２００では、より高い詳細レベルのグリッドが、４つのグリッドに分割されることが実現される。この実施例においては、プリミティブ４分木２０２では、「詳細レベル０」２０６は、空間２１２によって表現される。プリミティブ４分木２０２の「詳細レベル１」２０８は、空間２１２を４つのグリッドにセグメント化または分割する空間２１４によって表現される。プリミティブ４分木２０２の「詳細レベル」２１０は、さらに空間２１４を１６個のグリッドにセグメント化または分割する空間２１６によって表現される。同様に、エンティティ４分木２０４では、「詳細レベル０」２０６は、空間２１８によって表現される。エンティティ４分木２０４の「詳細レベル１」２０８は、空間２１８を４つのグリッドにセグメント化または分割する空間２２０によって表現される。エンティティ４分木２０４の「詳細レベル」２１０は、さらに空間２２０を１６個のグリッドにセグメント化または分割する空間２２２によって表現される。
【００２２】
エンティティルックアップシステム２００によって形成される構成においては、対応する、または並列なグリッドは、プリミティブ４分木２０２およびエンティティ４分木２０４によって提供される。例えば、「詳細レベル０」２０６において、プリミティブ４分木２０２の「グリッド１」２２４は、エンティティ４分木２０４の「グリッド１」２２６に対応する（すなわち、これらのグリッドは、「グリッド１」という同じインデックスまたは数字によって識別される）。「詳細レベル１」２０８において、空間２１４は、「グリッド２」２２８、「グリッド３」２３０、「グリッド４」２３２、および「グリッド５」２３４を含んでいる。空間２２０は、「グリッド２」２３６、「グリッド３」２３８、「グリッド４」２４０、および「グリッド５」２４２を含んでいる。さらに、「詳細レベル１」２０８では、「グリッド２」２２８は、「グリッド２」２３６に対応し、「グリッド３」２３０は、「グリッド３」２３８に対応し、「グリッド４」２３２は、「グリッド４」２４０に対応し、「グリッド５」２３４は、「グリッド５」２４２に対応する。
【００２３】
「詳細レベル２」２１０において、プリミティブ４分木２０２の空間２１６は、グリッド２４４〜２７４を含んでおり、エンティティ４分木２０４の空間２２２は、グリッド２７６〜２９８を含んでいる。プリミティブ４分木２０２の空間２１６中のグリッドは、エンティティ４分木２０４の空間２２２中に対応するグリッドを有する。
【００２４】
図３は、コンピューティングデバイスまたはコンピュータ１００をより詳細に示している。コンピュータ１００は、デスクトップパーソナルコンピュータ（ＰＣ）、ラップトップＰＣ、タブレットＰＣ、携帯型個人情報端末（ＰＤＡ）、スマート電話またはフィーチャ電話など、様々なデバイスのうちの１つとすることができる。コンピュータ１００の例示のアーキテクチャについては、以下で図７においてさらに詳細に説明している。
【００２５】
コンピュータ１００は、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ中央演算処理装置）またはプロセッサ３００と、メモリ３０５とを含んでいる。プロセッサ３００は、システムバス（図示せず）を介してメモリ３０５にアクセスする。メモリ３０５は、図１に記述される電子ドキュメントまたは地図１１５を作成するアプリケーションプログラム３１０を含んでいる。
【００２６】
電子ドキュメントまたは地図を定義するプリミティブデータは、プリミティブデータストレージ３１５に記憶される。このプリミティブデータは、特に前述のようなプリミティブ４分木の形式で記憶され構造化される。さらに、以下でさらに詳細に説明するように、プリミティブデータストレージ３１５は、プリミティブデータの各グループ、またはプリミティブ４分木グリッドに関連するキーを記憶する。キーなどを使用して、エンティティデータについてのストレージロケーションを表すエンティティ４分木中の特定のグリッドに関連づける。プリミティブデータのグループに関係し、または関連づけられるかかるエンティティデータ（すなわち、プリミティブデータのグループに関連するグリッド）は、エンティティデータストレージ３２０に記憶される。このエンティティデータは、特に前述のようなエンティティ４分木の形式で構造化され参照される。
【００２７】
入出力コンポーネント３２５は、コンピューティングデバイス１００に含められる。入出力コンポーネント３２５により、ユーザは、エンティティデータストレージ３２０に記憶されるエンティティデータなどのデータにアクセスすることができるようになる。特定の一実施例において、ユーザは、地図（例えば、地図１１５）上のポイントを選抜または選択し、この選択されたポイントに関連したエンティティデータが提供される。
【００２８】
図４は、エンティティデータのグリッドまたはロケーションに対するプリミティブデータのグループの例示の関係を示している。この実施例において、プリミティブデータのグループ４００は、「詳細レベル１」２０８におけるテキサス州を定義している。異なる１組のプリミティブ４０５は、「詳細レベル２」２１０におけるテキサス州を定義している。グリッド４１０は、プリミティブデータのグループ４０５の一部分を含んでいるが、グリッド４１０は、プリミティブデータのグループ４０５を全体的に包含してはいない。
【００２９】
空間２１６は、プリミティブデータのグループ４０５をより広く包含するグリッドを提供する。したがって、プリミティブデータのグループ４０５を記述するエンティティ４分木グリッドにプリミティブ４分木グリッド４１０を関連づける際に、グリッド４１０が存在する「詳細レベル２」２１０からプリミティブデータのグループ４０５をより広く包含する「詳細レベル１」２０８へのこの詳細レベルについてデルタが決定される。この詳細レベルにおけるデルタは、かかるデルタが「１」の値を有する詳細レベルのデルタ４１５によって表現される。他の状況においては、この詳細レベルのデルタは、「１」よりも大きな値であってもよい。
【００３０】
この実施例においては、プリミティブのグループ４０５が、次の詳細レベル（すなわち、「詳細レベル０」２０６）へと進む代わりに、空間２１６中の複数のグリッドによって定義されるが、エンティティグリッドの関連付けは、「詳細レベル１」２０８において行われ、「詳細レベル０」２０６においては行われない。このシステムに厳密に従う場合には、所与の任意のプリミティブグリッドに関連づけられたエンティティグリッドは、このグリッドそれ自体、またはこの所与のプリミティブグリッドの親グリッド（ｐａｒｅｎｔ  ｇｒｉｄ）のうちの１つと同じ範囲になる必要があるはずである。それ故に、このエンティティデータは、エンティティグリッド４２０、４２５、または４３０に記憶される。すべての詳細レベルにおけるすべてのプリミティブ表現を完全に包含する最小のプリミティブグリッドは、グリッド４３５である。したがって、エンティティデータは、エンティティグリッド４３０に記憶される。これについては、グリッド間の分割線に交差する比較的小さなプリミティブの場合に、望ましくない影響がある。この分割線が、最初の詳細レベルにおける分割線でもあった場合には、この最小の包含グリッドは、「詳細レベル０」２０６におけるグリッドである。これにより、あまりに多すぎるエンティティデータがこのレベルに記憶されるようになってしまうはずである。これを解決するために、所与のプリミティブグリッドに関連づけられたエンティティグリッドが、直接の親グリッドの同胞グリッド（ｓｉｂｌｉｎｇ  ｇｒｉｄ）になることができるようにする対策が行われる。この実施例においては、プリミティブグリッド４１０の直接の親は、エンティティグリッド４２５に正常に関連づけられるはずのプリミティブグリッド４４０である。各プリミティブを伴うキーは、このエンティティデータが、グリッド４２５ではなく、グリッド４５０に記憶されることを示す方向フラグ４４５を含んでいる。この方向フラグは、「ファン値（ｆａｎ  ｖａｌｕｅ）」と呼ばれ、５つの値、すなわち「北方、南方、西方、東方、または無方向」を有する可能性がある。この実施例においては、空間２２０のグリッド４１０におけるテキサス州４０５を表現するプリミティブは、１のオフセット値４１５と、方向フラグまたは「西方」のファン値４４５とをもつキーを有することになる。この対策なしでは、このエンティティデータは、エンティティグリッド４３０中の「詳細レベル０」２０６に記憶される必要があるはずである。これにはこのデータをあまり一様に分布することができないという影響があり、これは、空間的に方向づけられた検索についてあまり効率的でないので、望ましくない。
【００３１】
この実施例においては、空間２１６のグリッド４４０は、プリミティブデータのグループ４００のサブセットである。このグリッド中のプリミティブについてのキーは、（このエンティティデータが同じレベルに記憶されることを示す）０のオフセットと、このエンティティデータが４２５の代わりに空間２１８のグリッド４５０に記憶されることを示す左向きの方向フラグとを有するはずである。空間２１６のグリッド４５５に記憶されるプリミティブは、０のレベルオフセットのキーを含み、方向フラグを含んでいない。この実施例においては、これらのグリッドは、長方形または正方形であり、したがってファン値は、「北方、南方、西方、東方、または無方向」とすることができる。このシステムは、他の任意のタイル化可能グリッドシステムにも当てはまるはずである。グリッドの他の実施例は、六角形、または特定の空間において互いにメッシュを作る形状を含むこともできる。
【００３２】
グリッド４５０中のエンティティデータは、「テキサス」４６０である。この場合、「テキサス」は、プリミティブデータのグループ４００の記述について説明し、またはこの記述を提供する。特に、グリッド４５０は、エンティティデータを記憶する、デバイスのメモリ中のロケーションに関連している。この場合、このエンティティデータは、名前「テキサス」であるが、他の情報または記述についても、前述のように地理的ロケーションに関連する単なる名前以外のエンティティデータとして提供することができる。これは、このオブジェクトを表現するすべてのプリミティブに等しく適用される任意の非空間的アトリビュートを含むはずである。
【００３３】
この実施例においては、（プリミティブデータのグループ４０５のサブセットを含む）グリッド４１０についてのエンティティ記述は、エンティティグリッド４５０に関連している。エンティティ４分木グリッド４５０に到達するためには、キーは、プリミティブ４分木グリッド４１０（このキーは、（詳細レベルのデルタ４１５によって表現されるように）「１」の詳細レベルのデルタである）と、エンティティ４分木グリッド４２５からこのエンティティデータまたはエンティティ記述を含むエンティティ４分木グリッド４５０へと進む「西方」のファン値とに関連づけられる。他の場合には、このキーは、このプリミティブ４分木２０２およびエンティティ４分木２０４中のグリッドに割り当てられたインデックスまたは数字を含むことができる。
【００３４】
さらに、他のプリミティブ４分木グリッドは、エンティティ４分木グリッド４５０に関連づけることができる。例えば、プリミティブ４分木グリッド４６５は、「１」の詳細レベルのキーと、「西方」のファン値と（プリミティブ４分木グリッド４１０と同じキー）を有するはずである。プリミティブ４分木グリッド４７０は、「１」の詳細レベルと、「方向なし」のファン値とをもつキーを有するはずである。プリミティブ４分木グリッド４７５は、プリミティブ４分木グリッド４７０と同じキーを有するはずである。エンティティ４分木グリッド４５５は、プリミティブ４分木グリッド４５５に対する対応するグリッドであるので、プリミティブ４分木グリッド４７５は、「０」の詳細レベル値と、「方向なし」のファン値とをもつキーを有するはずである。
【００３５】
図５は、プリミティブグリッドとエンティティグリッドのさらに詳細な詳細レベルにおける関係を示している。この実施例においては、プリミティブデータのグループ４００のサブセットは、プリミティブ４分木２０２の空間２２０のグリッド５００中に存在する。グリッド５００は、グリッド５１０を含む４つのグリッドに分割される。
【００３６】
グリッド５１０内には、アマリロ市を表現するプリミティブデータのグループ５０５が存在する。グリッド５１０は、さらに４つのグリッドに分割することができ、ここでグリッド５１０は、グリッド５１５を含んでいる。プリミティブ４分木２０２のグリッド５１５は、アマリロ市を表現するプリミティブデータのグループを全面的に包含する。エンティティ４分木２０４中の対応するグリッドは、グリッド５１５に関連づけることができる。アマリロ市についての記述データまたは情報（すなわち、アマリロ市を表現するプリミティブのグループ５０５）は、ストレージメモリ中でエンティティ４分木２０４中の対応するグリッドによって参照することができる。この場合には、グリッド５１５およびプリミティブのグループ５０５をエンティティ４分木２０４中のグリッドに関連づけるキーは、「０」という詳細レベルのデルタと、このファン値についての「方向なし」である。この場合には、プリミティブ４分木グリッド５１５と、エンティティ４分木２０４中のその対応するグリッドの間には直接の関係が存在する。
【００３７】
前述の割当てシステムは、いくつかの長所を有する。この割当てシステムは、同様な重要性、サイズ、および共通のストレージ域中の空間的ロケーションの特徴についてエンティティデータを当然グループ分けすることになる。多くの空間的に方向づけられたクエリでは、これは、非常に望ましい。空間的クエリからアクセスできる可能性がある特徴については、ストレージ媒体上に順次記憶して、検索時間を高速化することができる。１つのプリミティブグリッドから参照することができるエンティティデータについては、非常に限られた組のストレージロケーションしか存在しない可能性もある。
【００３８】
図６は、プリミティブ４分木中のプリミティブグリッドを並列な、または対応するエンティティ４分木中のエンティティグリッドに関連づけるプロセス６００を示している。プロセス６００は、論理フローグラフ中のブロックの集まりとして示され、これらのブロックは、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せの形で実装することができるオペレーションのシーケンスを表す。ソフトウェアのコンテキストにおいては、これらのブロックは、１つまたは複数のプロセッサによって実行されるときにこれらの列挙されたオペレーションを実施するコンピュータ命令を表現する。プロセス６００は、前述の、また以下でさらに説明しているコンピューティングデバイス１００に関して説明しており、このコンピューティングデバイスは、プリミティブデータを含む地図などの電子ドキュメントを作成するアプリケーションプログラムを実装する。フローチャートとして説明しているが、ある種のプロセスは、並行して行うことができることも企図している。
【００３９】
ブロック６０５において、プリミティブ４分木中の特定のグリッドが識別される。このグリッドは、特定の形状を定義するプリミティブデータのグループを含むことができる。地図のコンテキストにおいては、このプリミティブデータのグループは、国、州、郡、市、ストリートなどの地理的ロケーションを表現することができる。
【００４０】
ある種の場合には、このプリミティブ４分木中におけるこの識別されたグリッドは、この特定の形状を定義し、またはこの地理的ロケーションを表現するプリミティブデータのグループ全体を包含し、または含んでいる（すなわち、ブロック６１０のＹＥＳ分岐に従う）。
【００４１】
ブロック６１５において、この識別されたグリッドが、プリミティブデータのグループ全体を包含し、または含んでいる場合には、並列なエンティティ４分木中の対応するグリッドについて、関連付けが行われる。この対応するグリッドには、このプリミティブ４分木中におけるこの識別されたグリッドと同じインデックスまたは数字がそれに割り当てられている。
【００４２】
他の場合には、このプリミティブ４分木中におけるこの識別されたグリッドは、この特定の形状を定義し、またはこの地理的ロケーションを表現するプリミティブデータのグループ全体を包含せず、または含んではいない（すなわち、ブロック６１０のＮＯ分岐に従う）。
【００４３】
特定の場合においては、このプリミティブ４分木中におけるこの識別されたグリッドは、このプリミティブ４分木中における別のグリッドと共に、このプリミティブデータのグループを包含し、または含んでいる１対のグリッドを構成する（すなわち、ブロック６２０のＹＥＳブランチに従う）。ブロック６２５において、このプリミティブ４分木中のこの識別されたグリッドに関連するファン値についての決定が行われる。ファン値は、このプリミティブ４分木中のこの識別されたグリッドに関連するものとして記述を含み、または情報を提供するこのエンティティ４分木中における特定のグリッドに到達するために使用されるキーの一部分とすることができる。
【００４４】
ある種の場合には、別のグリッドと１対として組み合わされるこの識別されたグリッドは、このプリミティブデータのグループを包含せず、または含んでいない（すなわち、ブロック６２０のＮＯ分岐に従う）。ブロック６３０において、このプリミティブ４分木中のより低い詳細レベルにあるグリッドが、識別される。かかるグリッドは、この以前に識別されたグリッドに対する、この４分木構成中における親と考えられる。このさらに低い詳細レベルのグリッドは、この４分木構成中において、この以前に識別されたグリッドと、他の３つの子グリッドを含んでいる。グリッドまたは１対のグリッドが、このプリミティブデータのグループを含み、または包含するまで、より低い詳細レベルのグリッドまで進む反復を行うことができる。前述のキーは、この最初に識別されたグリッドからこのより低い詳細レベルのグリッドへの詳細レベルにおける増分と、任意の後続または中間の親グリッドとを含むことができる。要するに、このキーは、この最初に識別されたグリッドから、このプリミティブデータのグループを含み、または包含するグリッドまたは１対のグリッドまでの詳細レベル数の値を含むはずである。
【００４５】
コンピューティングデバイス  
図７は、コンピューティングデバイスまたはコンピュータ１００の一実施例の実装形態をより詳細に示している。特に、アプリケーションプログラムは、コンピュータ１００上に実装することができ、このアプリケーションプログラムは、前述のプリミティブデータとエンティティデータの関係をサポートする。コンピュータ１００は、Ｗｉｎｄｏｗｓ（登録商標）ブランドのオペレーティングシステムを用いて構成することができる。コンピュータ１００は、前述の処理装置またはプロセッサ３００と、やはり前述のシステムメモリまたはメモリ３０５と、メモリ３０５を含めて様々なシステムコンポーネントを処理装置またはプロセッサ３００に相互接続するシステムバス７１５とを含んでいる。システムバス７１５は、いくつかのバス構造のうちの任意の１つとして、またメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含めて様々なバスアーキテクチャのうちのどれを使用しても実装することができる。
【００４６】
メモリ３０５は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ読取り専用メモリ）７２０およびＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙランダムアクセスメモリ）７２５を含んでいる。ＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ基本入出力システム）７３０は、ＲＯＭ７２０に記憶される。
【００４７】
コンピュータ１００は、以下のドライブ、すなわちハードディスクまたはハードディスクアレイから情報を読み取り、それに情報を書き込むハードディスクドライブ７３０と、着脱可能な磁気ディスク７４０から情報を読み取り、またはそれに情報を書き込む磁気ディスクドライブ７３５と、ＣＤ  ＲＯＭや他の光媒体など着脱可能な光ディスク７５０から情報を読み取り、またはそれに情報を書き込む光ディスクドライブ７４５のうちの１つまたは複数のドライブを有する。ハードディスクドライブ７３０、磁気ディスクドライブ７３５、および光ディスクドライブ７４５は、それぞれハードディスクドライブインターフェース７６０、磁気ディスクドライブインターフェース７６５、および光ディスクドライブインターフェース７７０によってシステムバス７１５に接続される。これらのドライブおよびこれらの関連するコンピュータ読取り可能媒体は、コンピュータ１００についてのコンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを実現する。
【００４８】
ハードディスク７３０、着脱可能な磁気ディスク７３５、および着脱可能な光ディスク７５０について説明しているが、他のタイプのコンピュータ読取り可能媒体を使用してデータを記憶することも可能である。かかる他の媒体には、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ（Ｂｅｒｎｏｕｌｌｉ  ｃａｒｔｒｉｄｇｅ）、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）などが含まれる。さらに、コンピュータ１００は、特に端末サーバとして実装されるときには、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ独立ディスクの冗長アレイ）ストレージシステムなどの独立システム上に記憶されるデータをサービスするように構成することができる。
【００４９】
いくつかのプログラムモジュールは、ハードディスク７３０、磁気ディスク７３５、光ディスク７５０、光ディスク７５０、ＲＯＭ７２０、またはＲＡＭ７２５上に記憶することができる。これらのプログラムは、サーバオペレーティングシステム７７５、１つまたは複数のアプリケーションプログラム３１０、他のプログラムモジュール７８２、およびプログラムデータ７８４を含んでいる。
【００５０】
ユーザは、キーボード１１０やマウス７８８などの入力デバイスを介してコマンドおよび情報をコンピュータ１００に入力することができる。他の入力デバイス（図示せず）が、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含んでいてもよい。これらおよび他の入力デバイスは、システムバス７１５に結合されたシリアルポートインターフェース７９０を介して処理装置３００に接続されるが、代わりにパラレルポート、ゲームポート、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓユニバーサルシリアルバス）など他のインターフェースによって接続することもできる。
【００５１】
モニタまたはスクリーン１０５、あるいは他のタイプのディスプレイもまた、ビデオアダプタカード７９４などのインターフェースを介してシステムバス７１５に接続される。コンピュータ１００は、ネットワークインターフェースまたはアダプタ７９６、モデム７９８、あるいはインターネット接続などのネットワーク７９９上で通信を確立するための他の手段を有する。モデム７９８は、プロトコルデコーダデバイスからの接続を実行することもできる。スクリーン１０５、およびキーボード１１０やマウス７８８などの入力デバイス。
【００５２】
結論  
この前述のアプリケーションおよび電子ドキュメントは、並列な４分木を使用してプリミティブデータをエンティティデータに関連づけることについて説明している。本発明は、構造上の機能および／または方法上の動作に特有の言語で説明してきたが、添付の特許請求の範囲において定義される本発明は、必ずしも説明しているこれらの特定の機能または動作だけに限定されるとは限らないことを理解されたい。もっと正確に言えば、これらの特定の機能および動作は、請求されている本発明を実装する例示の形態として開示されている。
【図面の簡単な説明】
【００５３】
【図１】並列な４分木構成を介してエンティティデータに関連づけられたプリミティブデータを含む、地図などの電子ドキュメントを示す図である。
【図２】プリミティブデータをエンティティデータと関連づける、プリミティブ４分木と関連したエンティティ４分木とを示す図である。
【図３】並列な４分木構成を使用して、プリミティブデータをエンティティデータと関連づけるコンピュータまたはコンピューティングデバイスのブロック図である。
【図４】特定のエンティティ４分木グリッドにプリミティブデータのグループを関連づける図である。
【図５】さらに詳細な詳細レベルと、プリミティブグリッドのエンティティグリッドへの関連付けを示す図である。
【図６】プリミティブ４分木中のプリミティブグリッドを並列なエンティティグリッドに、または対応するエンティティ４分木に関連づけることを示す流れ図である。
【図７】アドレスハイパーリンク機能を含む電子ドキュメントを作成するアプリケーションプログラムを実行することができるコンピュータまたはコンピューティングデバイスの詳細な実装形態のブロック図である。
【符号の説明】
【００５４】
１１０  キーボード
２０２  プリミティブ４分木
２０４  エンティティ４分木
２０６  詳細レベル０
２０８  詳細レベル１
２１０  詳細レベル２
３００  プロセッサ（処理装置）
３０５  システムメモリ
３１０  アプリケーションプログラム
３１５  プリミティブデータ
３２０  エンティティデータ
３２５  入出力
４６０  テキサス
７１５  システムバス
７６０  ハードディスクドライブインターフェース
７６５  磁気ディスクドライブインターフェース
７７０  光ドライブインターフェース
７７５  オペレーティングシステム
７８２  他のプログラムモジュール
７８４  プログラムデータ
７９０  シリアルポートインターフェース
７９４  ビデオアダプタ
７９６  ネットワークインターフェース
７９８  モデム
７９９  ネットワーク
【図１】
2006244480.tif 000003
【図２】
2006244480.tif 000004
【図３】
2006244480.tif 000005
【図４】
2006244480.tif 000006
【図５】
2006244480.tif 000007
【図６】
2006244480.tif 000008
【図７】
2006244480.tif 000009