"結合動作を自動的に行うための方法であって、ソースデータを受け取るステップと、メタデータモデルを受け取るステップであって、前記メタデータモデルはソースデータの関係を説明する階層構造を含む、ステップと、前記メタデータモデル中の前記階層構造に対して前記ソースデータを整列させてソースデータ階層を形成するステップと、前記ソースデータ階層に基づいて前記ソースデータをジオコード化情報に結合するステップとを含む、方法。前記メタデータモデル中の前記階層構造に対して前記ソースデータを整列させて前記ソースデータ階層を形成するステップは、前記ソースデータを解析してジオコード化結合に対する候補である項を定めるステップと、前記メタデータモデルを解析して前記階層構造を定めるステップと、前記ソースデータの前記項を前記メタデータモデルの前記階層構造に対応させて前記ソースデータ階層を形成することにより、前記ソースデータ階層内の前記ソースデータの前記項が前記メタデータモデルの前記階層構造と同じ包含関係を有するようにするステップとを含む、請求項1に記載の方法。前記ソースデータを前記ジオコード化情報に結合するステップは、前記ジオコード化情報を解析して前記ジオコード化結合に対する目標を定めるステップと、前記ソースデータ階層内の前記項の前記包含関係に基づいて、前記ソースデータの前記項を前記ジオコード化情報の前記目標に結合するステップとを含む、請求項2に記載の方法。前記ソースデータ階層に基づいて、前記ソースデータの項が前記ジオコード化情報に対応するカテゴリにないときは、前記ソースデータ階層の包含関係を上方に移動して前記カテゴリ内の親メンバを見出し、前記カテゴリは前記ジオコード化情報に対するキータイプである、請求項1から3のいずれか1項に記載の方法。前記ソースデータを前記ジオコード化情報の目標に結合するために前記カテゴリ内の前記親メンバが用いられる、請求項4に記載の方法。前記親メンバは前記ソースデータ内のソーステーブルに関係し、前記目標は前記ジオコード化情報内のジオコード化テーブルに関係する、請求項4に記載の方法。前記ジオコード化情報の前記目標への前記親メンバの前記結合に基づく前記ジオコード化情報を含ませるための地理空間レポートを生成するステップをさらに含む、請求項5に記載の方法。前記ソースデータ階層に基づいて、前記ソースデータの項が前記ジオコード化情報に対応するカテゴリにないときは、前記ソースデータ階層の包含関係における子メンバの子要素を集合させるステップをさらに含み、前記カテゴリは前記ジオコード化情報に対するキータイプである、請求項1から7のいずれか1項に記載の方法。前記ソースデータ階層の前記包含関係における前記子メンバの前記子要素を集合させるステップは、前記子メンバの子要素をともにグループ化することによって、前記子要素の合計が前記項になるようにするステップを含み、前記項は、前記ソースデータ階層の前記包含関係における親メンバである、請求項8に記載の方法。前記ソースデータが前記ジオコード化情報とは異なるタイプであるときには、前記ソースデータ階層を移動して以下のステップの少なくとも1つを行うステップをさらに含み、前記以下のステップは親メンバに変換するステップであって、前記親メンバは地理空間レポートを生成するために用いられるクエリに関係する子メンバを包含し、前記地理空間レポートは前記子メンバに対するものであるが前記ジオコード化情報には前記親メンバが結合される、ステップと、子メンバの子要素を集合させるステップであって、前記子メンバは前記親メンバに包含されており、前記親メンバは前記地理空間レポートを生成するために用いられるクエリに関係しており、前記地理空間レポートは前記親メンバに対するものであるが前記ジオコード化情報には前記子メンバが結合される、ステップとである、請求項1から9のいずれか1項に記載の方法。結合動作を自動的に行うために構成されたデバイスであって、前記デバイスは、1つまたはそれ以上のプログラムを保存するためのメモリと、前記メモリに機能的に結合されたプロセッサとを含み、前記プロセッサは前記1つまたはそれ以上のプログラムに含まれるコンピュータ実行可能命令に応答して以下のステップを行うために動作可能な手段を含み、前記ステップは、ソースデータを受け取るステップと、メタデータモデルを受け取るステップであって、前記メタデータモデルは階層構造を含む、ステップと、前記メタデータモデル中の前記階層構造に対して前記ソースデータを整列させてソースデータ階層を形成するステップと、前記ソースデータ階層に基づいて前記ソースデータをジオコード化情報に結合するステップとである、デバイス。前記メタデータモデル中の前記階層構造に対して前記ソースデータを整列させて前記ソースデータ階層を形成するステップのための前記手段は、前記ソースデータを解析してジオコード化結合に対する候補である項を定めるための手段と、前記メタデータモデルを解析して前記階層構造を定めるための手段と、前記ソースデータの前記項を前記メタデータモデルの前記階層構造に対応させて前記ソースデータ階層を形成することにより、前記ソースデータ階層内の前記ソースデータの前記項が前記メタデータモデルの前記階層構造と同じ包含関係を有するようにするための手段とを含む、請求項11に記載のデバイス。前記ソースデータを前記ジオコード化情報に結合するステップのための前記手段は、前記ジオコード化情報を解析して前記ジオコード化結合に対する目標を定めるための手段と、前記ソースデータ階層内の前記項の前記包含関係に基づいて、前記ソースデータの前記項を前記ジオコード化情報の前記目標に結合するための手段とを含む、請求項12に記載のデバイス。前記ソースデータ階層に基づいて、前記ソースデータの項が前記ジオコード化情報に対応するカテゴリにないときは、前記ソースデータ階層の包含関係を上方に移動して前記カテゴリ内の親メンバを見出すための手段をさらに含み、前記カテゴリは前記ジオコード化情報に対するキータイプである、請求項11から13のいずれか1項に記載のデバイス。前記ソースデータを前記ジオコード化情報の目標に結合するために前記カテゴリ内の前記親メンバが用いられる、請求項14に記載のデバイス。本発明は、結合動作を自動的に行うための方法およびデバイスを提供する。したがって本発明は第1の側面において、ソースデータを受け取るステップと、メタデータモデルを受け取るステップであって、このメタデータモデルはソースデータの関係を説明する階層構造を含む、ステップと、メタデータモデル中の階層構造に対してソースデータを整列させてソースデータ階層を形成するステップと、このソースデータ階層に基づいてソースデータをジオコード化情報に結合するステップとを含む、結合動作を自動的に行うための方法を提供する。好ましくは、メタデータモデル中の階層構造に対してソースデータを整列させてソースデータ階層を形成するステップは、ソースデータを解析してジオコード化結合に対する候補である項を定めるステップと、メタデータモデルを解析して階層構造を定めるステップと、ソースデータの項をメタデータモデルの階層構造に対応させてソースデータ階層を形成することにより、ソースデータ階層内のソースデータの項がメタデータモデルの階層構造と同じ包含関係を有するようにするステップとを含む。好ましくは、ソースデータをジオコード化情報に結合するステップは、ジオコード化情報を解析してジオコード化結合に対する目標を定めるステップと、ソースデータ階層内の項の包含関係に基づいて、ソースデータの項をジオコード化情報の目標に結合するステップとを含む。好ましくは、ソースデータ階層に基づいて、ソースデータの項がジオコード化情報に対応するカテゴリにないときは、ソースデータ階層の包含関係を上方に移動してカテゴリ内の親メンバを見出し、ここでそのカテゴリはジオコード化情報に対するキータイプである。好ましくは、ソースデータをジオコード化情報の目標に結合するためにカテゴリ内の親メンバが用いられる。好ましくは、親メンバはソースデータ内のソーステーブルに関係し、目標はジオコード化情報内のジオコード化テーブルに関係する。好ましくは、この方法はさらに、ジオコード化情報の目標への親メンバの結合に基づくジオコード化情報を含ませるための地理空間レポートを生成するステップを含む。好ましくは、ソースデータ階層に基づいて、ソースデータの項がジオコード化情報に対応するカテゴリにないときは、ソースデータ階層の包含関係における子メンバの子要素を集合させ、そのカテゴリはジオコード化情報に対するキータイプである。好ましくは、ソースデータ階層の包含関係における子メンバの子要素を集合させるステップは、子メンバの子要素をともにグループ化することによって、子要素の合計がその項になるようにするステップを含み、その項は、ソースデータ階層の包含関係における親メンバである。好ましくは、この方法はさらに、子要素の合計に基づいてジオコード化情報を含ませるための地理空間レポートを生成するステップを含む。好ましくは、ソースデータがジオコード化情報とは異なるタイプであるときには、ソースデータ階層を移動して以下の少なくとも1つを行う。すなわち、親メンバに変換するステップであって、この親メンバは地理空間レポートを生成するために用いられるクエリに関係する子メンバを包含し、地理空間レポートは子メンバに対するものであるがジオコード化情報には親メンバが結合されるステップ、および子メンバの子要素を集合させるステップであって、この子メンバは親メンバに包含されており、親メンバは地理空間レポートを生成するために用いられるクエリに関係しており、地理空間レポートは親メンバに対するものであるがジオコード化情報には子メンバが結合されるステップである。第2の側面においては、結合動作を自動的に行うために構成されたデバイスが提供され、このデバイスは、1つまたはそれ以上のプログラムを保存するためのメモリと、メモリに機能的に結合されたプロセッサとを含み、このプロセッサは1つまたはそれ以上のプログラムに含まれるコンピュータ実行可能命令に応答して以下のステップを行うために動作可能である。すなわち、ソースデータを受け取るステップと、メタデータモデルを受け取るステップであって、このメタデータモデルは階層構造を含む、ステップと、メタデータモデル中の階層構造に対してソースデータを整列させてソースデータ階層を形成するステップと、このソースデータ階層に基づいてソースデータをジオコード化情報に結合するステップとである。好ましくは、メタデータモデル中の階層構造に対してソースデータを整列させてソースデータ階層を形成するステップは、ソースデータを解析してジオコード化結合に対する候補である項を定めるステップと、メタデータモデルを解析して階層構造を定めるステップと、ソースデータの項をメタデータモデルの階層構造に対応させてソースデータ階層を形成することにより、ソースデータ階層内のソースデータの項がメタデータモデルの階層構造と同じ包含関係を有するようにするステップとを含む。好ましくは、ソースデータをジオコード化情報に結合するステップは、ジオコード化情報を解析してジオコード化結合に対する目標を定めるステップと、ソースデータ階層内の項の包含関係に基づいて、ソースデータの項をジオコード化情報の目標に結合するステップとを含む。好ましくは、ソースデータ階層に基づいて、ソースデータの項がジオコード化情報に対応するカテゴリにないときは、ソースデータ階層の包含関係を上方に移動してカテゴリ内の親メンバを見出し、そのカテゴリはジオコード化情報に対するキータイプである。好ましくは、ソースデータをジオコード化情報の目標に結合するためにカテゴリ内の親メンバが用いられる。好ましくは、親メンバはソースデータ内のソーステーブルに関係し、目標はジオコード化情報内のジオコード化テーブルに関係する。好ましくは、このデバイスは、ジオコード化情報の目標への親メンバの結合に基づくジオコード化情報を含ませるための地理空間レポートを生成するための手段を含む。好ましくは、この手段はソースデータ階層に基づいて、ソースデータの項がジオコード化情報に対応するカテゴリにないときは、ソースデータ階層の包含関係における子メンバの子要素を集合させるための手段であり、そのカテゴリはジオコード化情報に対するキータイプである。好ましくは、ソースデータ階層の包含関係における子メンバの子要素を集合させるステップは、子メンバの子要素をともにグループ化することによって、子要素の合計がその項になるようにするステップを含み、その項は、ソースデータ階層の包含関係における親メンバである。好ましくは、ソースデータがジオコード化情報とは異なるタイプであるときには、この手段はソースデータ階層を移動して以下の少なくとも1つを行う。すなわち、親メンバに変換するステップであって、この親メンバは地理空間レポートを生成するために用いられるクエリに関係する子メンバを包含し、地理空間レポートは子メンバに対するものであるがジオコード化情報には親メンバが結合されるステップ、および子メンバの子要素を集合させるステップであって、この子メンバは親メンバに含まれており、親メンバは地理空間レポートを生成するために用いられるクエリに関係しており、地理空間レポートは親メンバに対するものであるがジオコード化情報には子メンバが結合されるステップである。ビジネスレポートのためにジオコード化情報を利用するための方法が提供されてもよく、この方法は、ビジネスデータをジオコード化情報に結合するために用いられるキーを自動的に生成するステップと、ビジネスデータに関係するビジネスメタデータモデル階層におけるキーの相対位置に基づいてキーを定めるステップと、キーのうち少なくとも1つのキーに基づいてビジネスデータをジオコード化情報に結合するステップと、ビジネスデータの地理空間レポートを生成するステップとを含み、この地理空間レポートは少なくとも1つのキーを結合することに基づくジオコード化情報を含む。このデバイスはビジネスレポートのためにジオコード化情報を利用するために構成されてもよく、このデバイスは、1つまたはそれ以上のプログラムを保存するためのメモリと、メモリに機能的に結合されたプロセッサとを含み、このプロセッサは1つまたはそれ以上のプログラムに含まれるコンピュータ実行可能命令に応答して以下のステップ:すなわち、ビジネスデータをジオコード化情報に結合するために用いられるキーを自動的に生成するステップと、ビジネスデータに関係するビジネスメタデータモデル階層におけるキーの相対位置に基づいてキーを定めるステップと、キーのうち少なくとも1つのキーに基づいてビジネスデータをジオコード化情報に結合するステップと、ビジネスデータの地理空間レポートを生成するステップとを行い、この地理空間レポートは少なくとも1つのキーを結合することに基づくジオコード化情報を含む。例示的実施形態に従うと、結合動作を自動的に行うための方法が提供される。ソースデータが受け取られ、メタデータモデルと呼ばれることもあるモデルが受け取られる。このモデルは階層構造を含む。モデル中の階層構造に対してソースデータが整列されてソースデータ階層を形成する。このソースデータ階層に基づいてソースデータがジオコード化情報に結合される。例示的実施形態に従うと、ビジネスレポートのためにジオコード化情報を利用するための方法が提供される。ビジネスデータをジオコード化情報に結合するために用いられるキーが自動的に生成される。このキーは、ビジネスデータに関係するビジネスモデル階層におけるキーの相対位置に基づいて定められる。キーのうち少なくとも1つのキーに基づいてビジネスデータがジオコード化情報に結合される。ビジネスデータの地理空間レポートが生成され、この地理空間レポートは少なくとも1つのキーを結合することに基づくジオコード化情報を含む。本開示の技術を通じて付加的な特徴が実現される。他の実施形態に従う他のシステム、方法、装置、もしくはコンピュータプログラム製品またはその組み合わせが本明細書に詳細に記載され、それらは請求される本発明の部分とみなされる。例示的実施形態および特徴をより良く理解するために、説明および図面を参照されたい。添付の図面を参照して、本発明の好ましい実施形態を単なる例として説明する。リレーショナルデータベースは、結合動作を用いて異なる情報テーブルを接続する。典型的には、ソーステーブル内の主キーを用いて外部テーブル内の外部キーと整合させることによって、両方のテーブルからの要素を有する論理テーブルを形成する。SQL構造化クエリ言語structuredquerylanguage結合動作すなわち句は、データベース内の2つまたはそれ以上のテーブルからの記録を組み合わせる。結合動作は、テーブルとしてセーブできるか、またはそのまま使用できるセットを作成する。結合動作は、各々に共通の値を用いることによって2つのテーブルからのフィールドを組み合わせるための手段である。CEOテーブル1および会社テーブル2を用いた例を考える。2つのテーブル1および2を会社Idによって結合するとき、その結果は下記のような結果テーブル3となる。データをジオコード化することによって、1つまたはそれ以上のデータ要素に地理的位置を対応付ける。会社住所テーブルを用いた例を考える。ジオコード化を用いて、テーブル5に示されるとおりに各住所に緯度および経度を対応付ける。その結果得られたテーブル4および5のセットを伝統的なSQLクエリによって結合して、下に示されるとおりの論理ジオコード化顧客テーブル6を作成できる。政府、公共部門法人、および民間部門エンティティによって、膨大な量の例、ジオコード化情報テーブル内のジオコード化情報が提供されている。提供されるデータのタイプは、しばしばビジネスにとって非常に有益である。その例は、人口統計、購買習慣、所得水準、犯罪統計、教育水準、公共サービスの利用およびインフラストラクチャ、CRM、運転時間、ならびにロジスティックデータを含んでもよい。ジオコード化情報テーブルは、典型的にジオコード化外部キーによって分類される。言い換えると、データは分類されて、ある種の位置識別子すなわち外部キーによって索引付けされる。これによって、もしソースビジネスデータが同種のキーを含んでいれば、ジオコード化情報テーブルの内容を伝統的なビジネスデータと結合できるようになる。ジオコード化情報テーブルは、関連データへのアクセスを可能にするためにさまざまなジオコード化外部キーを用いる。以下は、ジオコード化情報テーブルに含まれて用いられ得るジオコード化外部キーのタイプのいくつかの例である。単純な緯度および経度属性から構築された複合キー、ジップコードもしくは郵便番号またはその両方、政治的境界または投票境界、地方自治地区、道路境界もしくは道路交差点またはその両方、測量境界もしくは不動産登記境界またはその両方、任意の多角形によって定義される地理的範囲、たとえば国勢調査ブロックなど、任意の地点および距離測定値によって定義される地理的範囲、ならびに連邦情報処理標準コードFederalinformationprocessingstandardscodes:FIPSコード、これはすべての連邦政府機関による地理的エンティティの一様な識別を確実にするために国立標準技術研究所NationalInstituteofStandardsandTechnology:NISTが発行している、数字もしくはアルファベットまたはその両方のコードの標準化されたセットである。カバーされるエンティティは以下を含む。すなわち、州および統計学的に同等のエンティティ、郡および統計学的に同等のエンティティ、名付けられた居住地および関連する場所のエンティティたとえば場所および郡の細分など、ならびにアメリカインディアンおよびアラスカ原住民の区域である。ビジネスデータベースおよびデータマートは典型的に、これらのジオコード化外部キータイプのいずれかまたはすべてに一致するソースキーを有さない。例示的実施形態は、ジオコード化情報テーブルにおいて利用可能な膨大な量の情報にソースビジネスデータを一致させるための一意のやり方においてビジネスモデルを用いることによって、この問題に対処するために構成される。グーグルGoogleRおよびピツニーボウズPitneyBowesRビジネスインサイトBusinessInsight旧MapInfoRなどの販売業者は、データをジオコード化するさまざまな方法およびジオコード化データにアクセスするさまざまな方法を提供している。しかし、これらの製品はすべて、それらの販売業者が提供する情報の核心へのアクセスを得るために図形情報システムGraphicalInformationSystems:GISの知識を必要とする。既存の無修正のビジネスデータとの簡単な統合は提供されていない。ここで図1を参照すると、図1は例示的実施形態を実施するためのさまざまなハードウェアおよびソフトウェア構成要素を有するシステムのブロック図形10を示す。ブロック図形10は、たとえばワークステーション、サーバなど、あらゆるタイプの計算デバイスであってもよいコンピュータ5を示す。コンピュータ5は、メモリ15、通信インタフェース40、ディスプレイ45、ユーザインタフェース50、プロセッサ60、およびレポートシステム103を含むか、もしくはそれらに結合されるか、またはその両方であってもよい。通信インタフェース40は、ネットワーク上で通信するためのハードウェアおよびソフトウェアを含む。ユーザインタフェース50は、コンピュータ5と対話してたとえば情報入力、選択、要求などを行うための、たとえばトラックボール、マウス、ポインティングデバイス、キーボード、タッチスクリーンなどを含んでもよい。コンピュータ5に対して考察されたのと同様に、サーバA、B、CおよびDも類似の構成要素15、40、45、50および60を含み得るが、簡潔のためそれらは図示されていない。コンピュータ5は、コンピュータ読取り可能記憶媒体であってもよいメモリ15を含む。レポートシステム103などの1つまたはそれ以上のソフトウェアアプリケーションモジュールは、メモリ15上に存在してもよいし、メモリ15に結合されてもよい。レポートシステム103は、たとえばソースデータアナライザ104、目標データアナライザ105、レポートモデルアナライザ106、および地理空間クエリビルダ107などのさまざまなソフトウェアモジュールを含んでもよく、各ソフトウェアモジュールは、コンピュータ実行可能命令の形で例示的実施形態に従って動作および機能するための論理およびソフトウェア構成要素を含む。加えてレポートシステム103は、レポート作成者110として示されるユーザが見て対話することができる図形ユーザインタフェースgraphicaluserinterface:GUIを含んでもよい。コンピュータ5は、ソースデータ100、レポートモデル101、およびジオコード化情報テーブル102をロードしてもよいし、それらを含んでもよいし、その両方であってもよい。レポートシステム103は、地理空間レポート109を生成するために用いられるデータベース内の結合データセット108を生成するように構成される。レポートシステム103は、ビジネスソースデータ100ソースデータとも呼ばれるのソースビジネスデータを外部のジオコード化情報テーブル102と透過的に自動的に結合するように構成される。結合データセット108は、ソースデータ100とジオコード化情報テーブル102との間の結合結果として得られるテーブルを一時的に保存してもよい。ビジネスソースデータ100は、レポート作成者110による修正を必要とすることなくレポートシステム103によって使用可能である。レポートシステム103による結合動作の結果として、結合データセット108において得られるデータを用いて、たとえば人口統計、購買習慣、所得水準、犯罪統計、教育水準、公共サービスの利用およびインフラストラクチャ、顧客関係管理customerrelationshipmanagement:CRM、運転時間、ならびにロジスティックなどであるがそれに限定されない多くの垂直アプリケーションにおける報告の問題を解決できる。たとえばレポート作成者110などの典型的なレポートのオーサリング技能を有する人物は、GISエキスパート111として表されるより専門的なGIS技能を有する人物の助けを必要とすることなく、十分にこのタスクを行うことができる。たとえば、レポートシステム103は地理空間レポート109を生成するためにレポート作成者110によって用いられる。ソースデータ100は、レポートモデル101において定義される高レベルデータ階層を用いてモデル化される。レポートモデル101内のこれらの高レベルデータ階層は、レポート作成者110が地理空間レポート109を生成する書くことをより容易にする。なぜなら、レポート作成者110はソースデータ100およびジオコード化情報テーブル102に用いられた、基礎をなす物理データベースおよびデータモデルに関わる必要がないからである。レポートシステム103によって、特定のビジネスもしくはエンティティまたはその両方からのソースデータ100がジオコード化情報テーブル102と結合されることによって、両方のテーブル100および102からの複合データを含む結合データセット108が作成される。ソースデータ100内のデータは、テーブル、マトリックスなどを含むあらゆるフォーマットでコンパイルされて提供されてもよい。レポートシステム103は、結合データセット108からのデータを用いて、レポート作成者110が指定するとおりに結合データの異なる視覚的表現を生成することによって地理空間レポート109を生成する。産業界においては、保険、警備業界、およびロジスティック業界において用いるために、たとえばGISエキスパート111などのGISエキスパート技能を有する人によって地理空間レポート109がルーチン的に構築されている。オーサリングのコストが高いため、地理空間レポートは他の業界において本来可能であるほど広くは用いられていない。地理空間レポート109を作成するために必要とされるGISエキスパート111技能を有する人は比較的少ない。こうした人物は、データベースクエリ設計およびビジネスレポートの領域の技能も有する必要がある。伝統的に、地理空間レポート109を作成するGISエキスパート111には典型的に以下のことが求められる。1.ソースデータ100内の物理的地理空間データベースとジオコード化情報テーブル102との統合を取り扱う。2.ソースデータをどのように外部ジオコード化キーに一致させるかを決定する。3.地理空間クエリを書き込んでソースデータ100からデータを抽出し、ソースデータ100をジオコード化情報テーブル102に結合する。4.地理空間レポート109にビジネスの内容をオーサリングする。しかし例示的実施形態に従うと、レポートシステム103は、GISエキスパート111技能を有さないレポート作成者110が地理空間レポート109を十分に構築および維持することを可能にすることによって、上記のステップ1~3を効果的に自動化するように構成される。レポート作成者110は一般的なビジネスレポート技能を有するがGISエキスパート111の専門技能は有さないときの以下のシナリオについて考える。レポート作成者110は、何らかの地理的位置によって分類された情報であるジオコード化情報テーブル102からのデータ要素を使用することを希望する。ジオコード化情報テーブル102のデータ要素は典型的に人口統計、購買習慣、所得水準、犯罪統計、教育水準、公共サービスの利用およびインフラストラクチャ、CRM、運転時間、ならびにロジスティックを含むが、それに限定されることは意味しない。レポート作成者110はGISエキスパート111技能を有さないため、レポート作成者110はたとえば専門のクエリを用いるなどしてジオコード化情報テーブル102のデータに直接アクセスする方法を知らない。ジオコード化テーブルは典型的に、特定の地理空間範囲または形状ファイルに関連する主キーを有する。その例は、国勢調査ブロックによってキー付けされた人口、および郡によってキー付けされた平均所得、または4本もしくはそれ以上の道路の組によって区切られた領域における平均年齢である。こうしたジオコード化テーブルのクエリを行うために、GISエキスパート111は地理空間データベースシステム内の関連GISオブジェクトを参照する専門クエリ句およびパラメータを構築する必要がある。さらに、これらのオブジェクトは典型的に共通のビジネスデータ内に存在しないため、GISエキスパート111は中間結果を変換し、おそらくは集合させて有効な結果セットを生成する必要がある。たとえば、ソースの道路住所と、国勢調査ブロックによってキー付けされた目標のジオコード化人口テーブルとが与えられるとき、GISエキスパート111は地理空間クエリを構築してどの国勢調査ブロックがソースの道路住所を含むかを決定し、次いで見出された国勢調査ブロック識別子によって目標の人口テーブルのクエリを行う必要がある。さらに、もし見出された国勢調査ブロック識別子のフォーマットが目標キーと異なっていれば、目標キーのフォーマットに一致するように国勢調査ブロック識別子を変換する必要がある。たとえば、ソース識別子はフォーマットnnnn.nnであってもよく、目標フォーマットはフォーマットnnnnnnかもしれない。例示的実施形態は、GISエキスパート111のようなエキスパート技能を必要とせずに、レポート作成者110がレポートシステム103を用いてさまざまな地理空間レポート109を生成できるように構成される。レポートシステム103は、IBMIBM社の登録商標CognosIBM社の登録商標ソフトウェアなどによって提供されるものなど、汎用レポートシステムの通常の構成要素を含んでもよい。しかしレポートシステム103は、本明細書において考察されるとおりに動作および機能するように付加的に構成される。レポートシステム103は、データ階層の高レベル表現であるレポートモデル101を受け取ってロードするように構成され、レポートモデル101は物理データベース実施詳細をレポート作成者110から隠す。レポートモデル101は、ソースデータ100に対応するさまざまなタイプのビジネスモデルを表現もしくは含有するか、またはその両方であってもよい。レポートモデル101はビジネスまたは事業に対する異なる項例、組織化され得るあらゆるタイプのデータの階層構造を示すビジネス指向階層であり、レポートモデル101はレポートシステム103に、対応するソースデータ100がソースデータ100のテーブル単数または複数における関連項の階層であることを通知する。よって、ソースデータ100はテーブルフォーマットであるかもしれないが、レポートシステム103はソースデータ100に対する階層構造を得て、図2および図4に示されるとおりにソースデータ100をレポートモデル101の階層構造に整列させるように構成される。加えて、レポートモデル101はさまざまな階層ビジネスモデル、たとえば販売地域モデル、供給業者位置モデルなどを含むが、それに限定されない。レポートモデル101は、たとえば情報フレームワークinformationframework:IFWモデルなどのより一般的なモデルであってもよい。言い換えると、図2および図4に示されるとおりのソースデータ階層を構築するためにレポートシステム103によって用いるために、多くの異なる階層構造を有する多くの異なるレポートモデル101が利用可能である。さらに、レポートモデル101は、ソースデータ100の関係を説明するメタデータモデルであってもよい。理解を容易にするために、かつ限定的でなく、レポートシステム103の特徴をそのさまざまなソフトウェアモジュールを用いて説明してもよいが、このソフトウェアモジュールの部分またはすべては要望に応じてレポートシステム103に統合されていてもよいし、レポートシステム103から分離していてもよいし、その両方であってもよいことが理解される。ソースデータアナライザ104は、ソースデータ100を読み取ってソースデータ要素のデータタイプおよびデータフォーマットを定めるように構成される。ソースデータアナライザ104は、地理空間データであるように見えるソースデータ100のテーブル内のデータフィールドを識別および選択するための字句パーサによって構成されてもよく、たとえばソースデータアナライザ104は住所、州の名前、部分番号などを識別および選択してもよい。これらのデータ要素または項は、後でソースデータ100に対する親子関係を示す階層を構築するために用いられる。ソースデータアナライザ104は、地理空間要素すなわち位置情報を有する項であるように見えるあらゆるタイプのデータフォーマットを識別および選択するように構成される。ソースデータアナライザ104は、ソースデータ100のテーブル内の正しい位置において一連の番号を見出してもよい。たとえば、ソースデータアナライザ104は電話番号を見出してもよく、ここで最初の3つの番号は区域コードであり、2番目の3つの番号は州コードであり、最後の4つの番号はその電話番号に対する点位置である。ソースデータアナライザ104は、たとえばデータベース115などのルックアップを行って、その電話番号がどの州に対応するかを定めてもよい。加えて、レポートシステム103のソースデータアナライザ104は、ソースデータ100のテーブル内からたとえばジェファーソンJeffersonもしくは州名またはその両方などの項を見出して選択してもよい。例示的実施形態の一実施において、ソースデータアナライザ104は、ジェファーソンという項が実際に地理空間データであることを確認したいかもしれない。したがってソースデータアナライザ104は、データベース115のルックアップを行うか、もしくはジオコード化情報テーブル102のルックアップを行うか、またはその両方を行うことによって、ジェファーソンという項が実際に特定の州の郡または地区、市などであってもよいであることを確認するように構成される。ソースデータアナライザ104によって識別されたソースデータ100内の項は、ジオコード化情報テーブル102への結合に対する候補項でもある。さらに、ソースデータアナライザ104はレポートモデル101を読み取って、地理空間データ結合に適したレポートモデル101のビジネスモデルに整列されるソースデータ要素項の特徴付け、識別もしくは選択、またはその組み合わせを行う。ソースデータ100内の複数の項がデータ結合に適しているとして選択されてもよい。選択された項は、主キーとして用いられてもよい。下にさらに考察されるとおり、レポートモデルアナライザ106は、ソースデータ100をレポートモデル101の階層に自動的に整列させる。ソースデータアナライザ104が自動的に行う際の、ソースデータ100もしくはレポートモデル101またはその両方における候補地理空間要素項に対する選択基準は以下を含むがそれに限定されない。すなわち、緯度および経度の値、国、市および郡などの地名、位置情報を保持するオンライン分析処理onlineanalyticalprocessing:OLAP次元、住所要素、たとえば道路番号、道路名、私書箱、郵便局番号、ルータ番号など、ジップコードおよび郵便番号、地方自治地区座標、ならびに名付けられた地理的領域、たとえば投票/選挙区、警察管区もしくは地域名またはその組み合わせなど、ならびにFIPSコードUSであり、これらはすべて1つまたはそれ以上のジオコード化情報テーブル102に存在してもよい。目標データアナライザ105は、ジオコード化情報テーブル102を読み取って、ジオコード化データ結合の目標として適切なジオコード化情報テーブル102内の要素項を特徴付けおよび選択するように構成される。目標となるのは、ジオコード化情報テーブル102への結合のための、ジオコード化情報テーブル102内のキーデータベースキーまたは外部キーとも呼ばれるである。ソースデータ100もしくはレポートモデル101またはその両方における項を識別するための、上に考察されたものと同じかまたは類似の選択基準を用いて、ジオコード化情報テーブル102内の地理空間要素項を識別および選択してもよい。目標データアナライザ105は、ソースデータ100内の自動的に選択された項すなわち主キーと、ジオコード化情報テーブル102内の選択された項すなわち外部キーとの間に一致があるかどうかを判定するように構成される。ソースデータ100内の選択された項と、ジオコード化情報テーブル102内の選択された項との間に見出された各々の一致に対して、一致する選択項に対するソースデータ100およびジオコード化情報テーブル102内の対応するテーブルが、たとえば結合データセット108内で結合される。レポートモデル101は、ソースデータアナライザ104によって分析されたソースデータ100からの選択項例、要素またはデータを表す階層構造内の高レベルデータによって拡張される。レポートモデルアナライザ106は、レポートモデル101を読み取って包含関係、レベル属性、および物理データベース属性を定めるように構成される。たとえば、レポートモデル101のモデル次元は、図2に示されるものなどの階層および属性を提供してもよい。図2は、例示的実施形態に従うレポートモデル101に基づくソースデータ階層200の例を示す。この例において、レポートモデル101はビジネスの階層を含むビジネスモデルであり、レポートモデルアナライザ106によってこの階層をソースデータ100に整列させることによって、ソースデータ階層200と呼び得るものが形成される。たとえば、レポートモデルアナライザ106はソースデータ階層200を生成することによってレポートモデル101を拡張するように構成され、かつレポートモデルアナライザ106はレポートモデル101階層をソースデータ100の選択項に行方向に整列させるように構成される。図2において、階層列205は元のレポートモデル101の階層構造を示す。レベル列210は階層列205の異なるレベルを示し、ここで階層205の最高レベルはレベル0であり、最低レベルはレベル5である。ソーステーブル列215は、レポートモデル101が階層列205に含むのと同じ階層関係で、ソースデータ100からのたとえばソースビジネスデータこの例においては販売データなどの対応するデータを示す。ソースデータ階層200を生成するとき、レポートモデルアナライザ106はソースデータ100の各項をレポートモデル101の階層205およびレベル210に対応させて、レポート作成者110に対してソースデータ階層200を例、ディスプレイ45上に表示してもよい。一実施において、レポートモデルアナライザ106はレポートモデル101を読み取ってソースデータ100に対するメタデータすなわちそのデータに関するデータを得る。このメタデータは典型的にデータベース列またはフィールドの集合のための包含関係を定めるものであり、メタデータはさらに簡単な親-子関係およびisa継承階層をも定め得る。図4は、典型的な包含もしくはisa階層またはその両方と、クエリに用いるためのソースデータ100列名とを示す。たとえば州によって報告を構築するとき、レポートモデルアナライザ106は関連クエリにおいて市に対して集められた値を集合させるように構成される。同様のやり方で、レポートモデルアナライザ106は例示的実施形態に従ってどのように州を集合させて地域にし、地域を国にするかを知るように構成される。レポート作成者110はユーザインタフェース50を介して、レポートモデル101に対応するソースデータ100からのさまざまな異なる項要素をジオコード化情報テーブル102に結合することをレポートシステム103に指示してもよい。付加的もしくは代替的に、またはその両方で、レポートシステム103はレポートモデル101に対応するソースデータ100からのさまざまな異なる項要素をジオコード化情報テーブル102に自動的に結合するように構成される。こうして図2のソースデータ階層200に示されるとおりにレポートモデル101がソースデータ100にリンクされたため、ソースデータ100はジオコード化情報テーブル102に結合されて、列205の階層構造を利用する。結合動作に対するソースデータがソースデータ100からのものであり、目標データがジオコード化情報テーブル102からのものであるとき、結合動作のために要求されるデータを検索するために地理空間クエリビルダ107が起動される。レポートモデル101に整列させたソースデータ100とジオコード化情報テーブル102の目標データとの結合の結果は、結合データセット108に入れられる。地理空間クエリビルダ107は、レポートモデル101の階層列205を上下に移動するそれによってソーステーブル列215を上下に移動するように構成され、かつ地理空間クエリビルダ107はレポートモデル101の階層205に基づいてソースデータ100を操作するように構成される。図2を参照すると、階層列205において、国は州もしくは省またはその両方を包含する。これは国が州もしくは省またはその両方の親であることを意味し、加えて州もしくは省またはその両方が国の子であることも意味する。州/省は郡を包含し、これは州/省が郡の親であり、郡が州/省の子であることを意味する。この階層205は住所を所有する顧客に達するまで続き、これは顧客が住所の親であり、住所が顧客の子であることを意味する。これらは階層205の包含関係非集合性の関係である顧客対住所を除くすべての要素に対するおよびhas所有関係であり、列215に示されるとおり、レポートモデルアナライザ106によってソースデータ100にも同じ包含関係およびhas関係が適用される。言い換えると、U.S.などの販売.国は、たとえばアラバマ、アラスカ...ニューヨークなどの多くの異なる販売.州を包含する。各販売.州は販売.郡を包含し、そこにはさまざまな異なる販売郡があってもよい。各販売.郡は、特定の販売郡を構成するさまざまな市であってもよい販売.市を包含する。各販売.市は顧客.顧客を包含し、これは特定の販売市にいる顧客の異なる名前/識別である。最後に、列215のソースデータ100の階層において、顧客.顧客は顧客.住所を有し、これは顧客.顧客において挙げられた各顧客の住所である。ソーステーブル.列215における各エントリは、そのエントリにおいて指示されている対応データである。たとえば、ソーステーブル.列215における各エントリは、たとえば販売.市などの特定のエントリ内にある多数のソースデータ100を含み得る。付加的もしくは代替的に、またはその両方で、ソーステーブル.列215における各エントリは、そのエントリに対する特定のテーブルにリンクされてもよい。たとえば販売.市は、すべての対応する販売市を含むソースデータ100内のテーブルにリンクされてもよい。加えて、レポートモデル101に対して、たとえば一般的に子要素を集合させるcontains包含関係および一般的に集合しないhas関係などの2タイプの親-子関係が存在してもよいことに留意されたい。集合は一般的に、レポートモデル101における親-子関係がcontains関係であるときたとえば州が市を包含するときに本明細書において考察される地理空間クエリビルダ107によって可能にされる。hasタイプの関係たとえば顧客は住所を所有hasするは一般的に集合化されない。図3に移って、図3は例示的実施形態に従う地理空間クエリビルダ107処理のいくつかの例を示す。地理空間クエリビルダ107は、ソースデータ100、レポートモデル101およびジオコード化情報テーブル102からの入力を受け取り、次いで、たとえ地理空間レポート109に含めるためにレポート作成者110によって要求されるソースデータ100の項単数または複数がジオコード化情報テーブル102の項単数または複数とは違うタイプであっても、たとえソースデータ100の要求される項単数または複数を直接の主キーから外部キーへの索引付けもしくは結合動作またはその両方に使用できなくても、クエリを構築して出力地理空間レポート109に含められるか、または地理空間レポート109の部分となるを提供するように構成される。ソースデータ100のソースデータおよびジオコード化情報テーブル102の目標データが同じ地理空間タイプおよび地理空間フォーマットであるとき、地理空間クエリビルダ107によってソースデータ100データベースおよびジオコード化情報テーブル102データベースに対するデータベースクエリが直接生成され、レポートシステム103はそのクエリの結果を用いて、ソースデータ100のビジネスデータをジオコード化情報テーブル102の対応するデータと組み合わせることによって地理空間レポート109を生成する。たとえば、ソース顧客.latLonghh.mm.m130は、キータイプ緯度/経度Latitude/Longitudehh.mm.m132と同じタイプおよびフォーマットである。地理空間クエリビルダ107は、ソースデータ100のソース130に対応するジオコード化情報テーブル102の地理空間データ132を抽出するためにクエリ131を生成するように構成される。レポートシステム103はこの抽出された地理空間データ132を地理空間レポート109に含める。ソースソースデータ100と目標データジオコード化情報テーブル102とが同じ地理空間タイプだが異なる地理空間フォーマットであるとき、地理空間クエリビルダ107によってソースタイプが変換され、次いでデータベースクエリが生成される。たとえば、ソース顧客.latLonghh.mm.m130がキータイプ緯度/経度hh.mm.ss134と同じタイプだが異なるフォーマットであるとき、地理空間クエリビルダ107はソース130をhh.mm.ssに変換してクエリ133を生成するように構成される。クエリ133は、地理空間レポート109の生成に含ませるための、ソースデータ100のソース130に対応するジオコード化情報テーブル102からの地理空間データ134を抽出する。ソースおよび目標データが異なる地理空間タイプであるとき、地理空間クエリビルダ107は、ビジネスモデルソースデータ階層200または下に考察される400からの代替の親もしくは子またはその両方のメンバを置換し、これらの代替の親もしくは子またはその両方のメンバを用いてクエリを構築するように構成される。その例を以下に説明する。第1の例は、図2のソースデータ階層200に示されるレポートモデル101階層の同じレベルたとえば図2の階層レベル210などでの変換である。顧客.住所135は、テキストの住所を保持するストリングタイプである。キータイプ緯度/経度hh.mm.m132は、hh.mm.mフォーマットの緯度/経度である。顧客.住所135はソース列215においてレポートモデル101階層におけるリーフメンバであるため、地理空間クエリビルダ107は子を集合させず、したがって緯度/経度に変換してクエリ136を生成できる。次のように取り扱われる地理空間点である住所要素顧客.住所などのシナリオを考える。顧客.住所データベース列からのテキスト道路住所値がジオコード化されて、各住所値に対する緯度/経度座標対として表される地理空間点が生成される。この座標対は、座標フォーマット変換たとえばhh.mm.mからhhmmssなどのみが任意に必要とされる地理空間点によってキー付けされたあらゆる目標データソースのクエリを直接行うために使用され得る。目標データソースが地理空間区域によってキー付けされており、単純な点または一致しない2つの地理空間区域ではないとき、一致する地理空間区域への変換が必要であり、これは地理空間クエリビルダ107によって達成できる。このタイプの変換は、目標地理空間区域がレポートモデル101における親要素に関連しているときに地理空間クエリビルダ107によって可能である。たとえば、住所は地理空間親の市および州を有する。関連区域がソース座標対を含むとき、これらの地理空間キーのいずれかが用いられてもよい。たとえば、ソース座標対がテキサスと名付けられた地理空間区域の中に位置すると判断されるときは、州=テキサスが用いられてもよい。あるものが完全に親の中に包含されている異なる区域に対しても同様の動作が有効である。第2の例は、ソースデータ階層200における子メンバ要素への変換である。販売.郡137は、テキストの郡名を保持するストリングタイプである。キータイプ市名139はテキストの市名である。販売.郡はその階層図2において販売.市を包含するため、地理空間クエリビルダ107は販売.郡のすべての子市を集合させてクエリ138を生成するように構成される。クエリ138販売.市に等しいすべての子市を有するをレポートシステム103が用いることによって、ジオコード化情報テーブル102から市名139に対する対応データを抽出して地理空間レポート109を生成する。第3の例は、図2に示されるソースデータ階層200における親メンバ要素への変換である。販売.市140は、テキストの市名を保持するストリングタイプである。キータイプ郡名142はジオコード化情報テーブル102内のテキストの郡名である。販売.郡はその階層図2において販売.市の親であるため、地理空間クエリビルダ107は親の名販売.郡への変換を行い、その親の名を用いてクエリ141を生成するように構成される。親郡のクエリ141をレポートシステム103が用いることによって、ジオコード化情報テーブル102における郡名142に対する対応データを抽出する。上記の例において説明した変換の各々は、地理空間システムに存在する何百ものフォーマットに適用可能である。このプロセスによって、どの変換が有効かを調停するためにレポートモデル101を用いて、レポートシステム103において変換が自動的に処理される。上に考察したとおり、地理空間データを結合するためのデータベースキーすなわち項は、レポートモデル101階層に基づくソースデータ階層200におけるそのキーの相対位置に基づいて、地理空間クエリビルダ107によって自動的に生成される。図2に示されるとおり、以下の階層を有するレポートモデル101を考える。国[contains]州/省[contains]郡[contains]市[contains]顧客[has]住所。地理空間情報テーブル102の目標テーブルがソースデータ100の親要素メンバ識別子によってキー付けされているときは、レポートシステム103の地理空間クエリビルダ107を介して、このレポートモデル101階層を用いて子メンバ要素を親メンバ要素に変換できる。ソースデータ階層200の次元レポートモデルから以下の関係が得られるときの、地理空間クエリビルダ107が適用できる自動変換のタイプのいくつかのさらなる例がここにある。たとえば、顧客Aは国Zの州Yの郡Xの市Wの住所Vに住んでいると仮定する。地理空間クエリビルダ107によって、顧客Aに対する参照は、住所Vを用いてその住所に対する緯度/経度AAを作成できる。たとえば、地理空間クエリビルダ107は住所Vに対する緯度/経度を検索してもよい。ジオコード化情報テーブル102が緯度/経度によってキー付けされているとき、地理空間クエリビルダ107は結果として得られた緯度/経度AAを用いてジオコード化情報テーブル102に結合できる。加えて地理空間クエリビルダ107は、異なる緯度/経度フォーマットを自動的に変換するように構成される。たとえば、地理空間クエリビルダ107はhhh.mm.mmmとhh°mm’ss{N|S|E|W}との間の変換を行い得る。地理空間クエリビルダ107は緯度/経度から住所への自動変換すなわち逆ジオコード化を行うように構成され、次いでこの住所は住所によってキー付けされているあらゆるジオコード化情報テーブル102に対するキーとして用いられ得る。地理空間クエリビルダ107は、異なる住所フォーマットを自動的に変換するように構成される。地理空間クエリビルダ107は、異なる名前もしくはエイリアスまたはその両方のフォーマットを自動的に変換するように構成される。たとえば地理空間クエリビルダ107は、たとえばデータベース115におけるCAのルックアップを行うことなどによって、適切な状況においてカリフォルニアはCAと同等であることを認識するように構成される。ジオコード化情報テーブル102が親メンバ値によってキー付けされているとき、地理空間クエリビルダ107がソースデータ階層200のソーステーブル.列215を上方に移動することによって、顧客Aに対する参照はあらゆる親メンバ値を使用できる。地理空間レポート109を生成するためのソースデータ100内の所望の情報が主キーではない子メンバであると仮定すると、地理空間クエリビルダ107はソースデータ階層200を上方に移動することによって、ジオコード化情報テーブル102に対するキーとして用いられ得る親メンバを見出すように構成される。たとえば、もしレポート作成者110が顧客Aの名前によって複数の顧客を表す顧客Aに対するテーブル102からの地理空間情報を要求したが顧客Aの名前はジオコード化情報テーブル102に対するキーではなかったとしても、顧客Aは地理空間クエリビルダ107によって特定のロケータキーが市=W、郡=X、州=Yもしくは国=Z、またはその組み合わせであるジオコード化情報テーブル102の外部テーブルに自動的に結合され得る。加えて、地理空間クエリビルダ107は、親メンバ要素を下方の子メンバジオコード化された要素に変換するように構成され、この子メンバはジオコード化情報テーブル102に対するキーとして使用可能である。なぜなら、地理空間レポート109に用いるためにレポート作成者110によって要求される親メンバは、ジオコード化情報テーブル102への結合に使用できる主キーではないからである。たとえば、市=W、郡=X、州=Yもしくは国=Z、またはその組み合わせは、ジオコード化情報テーブルが緯度/経度によってキー付けされているときには、地理空間クエリビルダ107によってそれらの地理的中心における緯度/経度に変換されてもよい。本明細書において言及されるとおり、ジオコード化情報テーブル102が子メンバ値によってキー付けされているときは、地理空間クエリビルダ107は親メンバのすべての包含される子を集合させるように構成される。たとえば、ジオコード化情報テーブル102が郡によってキー付けされているときは、地理空間クエリビルダ107によって州=Yがすべての包含される郡={X1,X2,X3,...Xn}の和集合となる。さらに、地理空間点および距離計算値を任意に追加するために上記の変換のいずれかを用いてもよい。たとえば地理空間クエリビルダ107は、緯度/経度位置半径5マイル約8kmを要求すること、市Wの外側端縁の3マイル約4.8km以内を要求すること、郡Xに隣接するすべての郡を要求することなどのために構成される。目標データアナライザ105は、ジオコード化情報テーブル102への結合のための外部キーとして用いられ得るすべての可能な項をジオコード化情報テーブル102内に見出すように構成されているため、地理空間クエリビルダ107はソースデータ階層200関係を上下に移動して、ソースデータ100内の適切な一致する主キーを見出すことができる。レポートモデルアナライザ106は、レポートモデル101の階層構造に対してソースデータ100を対応付ける整列させることによってソースデータ階層200を構築する。ソースデータ階層200はソースデータ100内の階層関係を地理空間クエリビルダ107が定めることを可能にし、ソースデータ階層200なしでは、地理空間クエリビルダ107は変換可能である親子関係を認識できない。図4は、例示的実施形態に従ってレポートモデル101に基づいてレポートモデルアナライザ106によって自動的に作成されたソースデータ階層400の別の例である。ソースデータ階層400のレポートモデル101において、階層列405は、国が地域を包含し、地域が州を包含し、州が市を包含し、市が顧客を包含し、顧客が住所を有することを示す。レポートモデルアナライザ106は、たとえばソースデータアナライザ104とともに、ソースデータ100に対するソースデータをレポートモデル101の階層構造の各レベルに自動的に整列させるように構成されることによって、地理空間クエリビルダ107が包含関係すなわち親子関係を利用できるようにする。たとえば、レポート作成者110は地理空間クエリビルダ107に対して、東部販売.地域である東部地域におけるすべての顧客に対する販売を合計し、かつ東部販売.地域における顧客の所得データを提供するよう指示してもよい。地理空間所得データはジオコード化情報テーブル102内にあるが、ジオコード化情報テーブル102は東部地域、西部地域もしくはいずれかの地域またはその組み合わせによってキー付けされていない。しかし、レポート作成者110は東部販売.地域における顧客に対する所得データを提供するために地理空間レポート109を生成させる必要がある。レポート作成者110の要求とは異なる項によってジオコード化情報テーブル102がキー付けされているときはいつも、地理空間クエリビルダ107はソースデータ階層400を上下に移動することによってソースデータ100の項をジオコード化情報テーブル102内のキー単数または複数に自動的に変換するように構成され、次いで抽出されたデータによって、地理空間クエリビルダ107は要求どおりに地理空間レポート109を生成する。目標データアナライザ105がすべての可能な目標外部キーを見出すためにジオコード化情報テーブル102を予め解析したために、ジオコード化情報テーブル102が目標データアナライザ105に定められたとおりに市によってキー付けされていると仮定する。ソースデータアナライザ104は、販売.市がソースデータ100における主キー項であると判断する。したがって地理空間クエリビルダ107は販売.市すなわちそれが表す単数または複数の市をジオコード化情報テーブル102内の市外部キーに自動的に結合する。ここで、ソースデータ階層400内の東部販売.州を包含する東部販売.地域に基づいて、地理空間クエリビルダ107は、たとえばニューヨーク州、ニュージャージー州、バージニア州などであってもよい個々の東部販売.州をすべて集合させるように構成される。東部販売.市を包含する東部販売.州に基づいて、地理空間クエリビルダ107はニューヨーク州、ニュージャージー州、バージニア州などにある個々の販売市をすべて集合させるように構成され、その個々の販売市はJ、K、L、MおよびNであってもよい。個々の市すべてが集合すると、地理空間クエリビルダ107は結合されたジオコード化情報テーブル102から個々の市各々に対する地理空間データこの例においては地理空間所得データを抽出するように構成される。ジオコード化情報テーブル102が東部販売.地域によってキー付けされていないにもかかわらず、各東部販売.市に対するこの地理空間所得データは東部販売.地域に対する地理空間レポート109に含まれる。東部販売.地域は地理的位置のあらゆる任意のグループ化であり得るため、地理空間クエリビルダ107はこの任意のグループ化に対する子メンバを定めるように構成され、その子メンバはジオコード化情報テーブル102に対する1つまたはそれ以上のキーであり得る。例示的実施形態のさらなる特徴は、レポートシステム103がレポートモデル101を用いてソースデータ100をレポートモデル101の階層構造に整列させているため、データをソースデータ100データベースに入力するときに予め分類する必要がないことである。たとえば東部販売.地域が西部販売.地域または南部販売.地域と相対することなどを識別する必要なく、多くの異なる顧客.住所を入力できる。たとえば、地理空間クエリビルダ107は顧客に対する個々の住所を解析して、その顧客がどの販売市に位置するかを定めるように構成される。地理空間クエリビルダ107はソースデータアナライザ104とともにソースデータ100を解析して東部販売.市を定め、この顧客が東部販売.市にいることを認識することができ、ソースデータ階層400は地理空間クエリビルダ107に対して、東部販売.市が東部販売.地域に包含されることを通知する。ビジネス決定としてたとえば東部販売.地域が南部販売.地域に変更されるとき、個々の顧客各々を南部販売.地域として再分類する必要はない。その代わりに、ソーステーブル列415において東部販売.地域を南部販売.地域に置換することによって、前に東部販売.地域にいた各顧客が地理空間クエリビルダ107によって南部販売.地域に集合させられてもよい。図5は、例示的実施形態に従って地理空間レポート109を生成するために結合動作を自動的に行うための方法500を示す。動作505において、レポートシステム103はソースデータ100を受け取る。動作510において、レポートシステム103はレポートモデル101を受け取り、レポートモデル101は階層構造を含む。動作515において、レポートシステム103はレポートモデル101の階層構造にソースデータ100を整列させてソースデータ階層たとえばソースデータ階層200もしくは400またはその両方などを形成する。動作520において、レポートシステム103はソースデータ階層に基づいてソースデータ100をジオコード化情報テーブル102に結合する。ジオコード化情報テーブル102へのソースデータ100のこの結合によって、レポートシステム103は、ソースデータ100に対する地理空間レポート109の生成にジオコード化情報テーブル102からの地理空間データを使用できる。図6は、例示的実施形態に含まれ得る、能力を有するコンピュータ600の例を示す。本明細書において考察されるさまざまな方法、手順、モジュール、流れ図、ツール、アプリケーションおよび技術は、コンピュータ600の能力をも取り入れるか、もしくは使用するか、またはその両方であってもよい。さらに、本明細書において考察される例示的実施形態の特徴を実現するためにコンピュータ600の能力が用いられてもよい。コンピュータ600の能力の1つまたはそれ以上は、コンピュータ5もしくはサーバA、B、CおよびDまたはその両方を含む、本明細書において考察されるあらゆる構成要素を実現してもよい。一般的に、ハードウェアアーキテクチャの観点から、コンピュータ600は1つまたはそれ以上のプロセッサ610と、コンピュータ読取り可能記憶装置メモリ620と、1つまたはそれ以上の入力もしくは出力または入出力inputand/oroutput:I/Oデバイス670とを含んでもよく、それらはローカルインタフェース図示せずを介して通信的に結合される。ローカルインタフェースは、当該技術分野において公知であるとおり、たとえば1つもしくはそれ以上のバス、またはその他のワイヤードもしくはワイヤレス接続などであってもよいがそれに限定されない。ローカルインタフェースは、通信を可能にするために、たとえばコントローラ、バッファキャッシュ、ドライバ、リピータおよびレシーバなどの付加的な構成要素を有してもよい。さらにローカルインタフェースは、前述の構成要素間の適切な通信を可能にするためにアドレス、制御もしくはデータ接続またはその組み合わせを含んでもよい。プロセッサ610は、メモリ620に保存され得るソフトウェアを実行するためのハードウェアデバイスである。プロセッサ610は実質的に、あらゆる特別注文もしくは商業的に入手可能なプロセッサ、中央処理ユニットcentralprocessingunit:CPU、データ信号プロセッサdatasignalprocessor:DSP、またはコンピュータ600に関連するいくつかのプロセッサの中の補助プロセッサであってもよく、プロセッサ610はマイクロチップの形の半導体に基づくマイクロプロセッサまたはマクロプロセッサであってもよい。コンピュータ読取り可能メモリ620は、揮発性記憶素子例、ランダムアクセスメモリrandomaccessmemory:RAM、たとえば動的ランダムアクセスメモリdynamicrandomaccessmemory:DRAM、静的ランダムアクセスメモリstaticrandomaccessmemory:SRAMなどおよび不揮発性記憶素子例、ROM、消去可能プログラマブルリードオンリメモリerasableprogrammablereadonlymemory:EPROM、電気的消去可能プログラマブルリードオンリメモリelectronicallyerasableprogrammablereadonlymemory:EEPROM、プログラマブルリードオンリメモリprogrammablereadonlymemory:PROM、テープ、コンパクトディスクリードオンリメモリcompactdiscreadonlymemory:CD-ROM、ディスク、ディスケット、カートリッジ、カセットなどのいずれか1つまたはその組み合わせを含んでもよい。さらに、メモリ620は電子的、磁気的、光学的もしくはその他のタイプまたはその組み合わせの記憶媒体を組み込んでもよい。なお、メモリ620は、さまざまな構成要素が互いに離れて位置するがプロセッサ610によってアクセスされ得る分散アーキテクチャを有してもよい。コンピュータ読取り可能メモリ620内のソフトウェアは1つまたはそれ以上の別個のプログラムを含んでもよく、各々のプログラムは論理機能を実施するために実行可能な命令の順序付きリストを含む。メモリ620内のソフトウェアは、好適なオペレーティングシステムoperatingsystem:O/S650と、コンパイラ640と、ソースコード630と、例示的実施形態の1つまたはそれ以上のアプリケーション660とを含む。示されるとおり、アプリケーション660は例示的実施形態の特徴、プロセス、方法、機能および動作を実現するための多数の機能構成要素を含む。コンピュータ600のアプリケーション660は、本明細書において考察されるとおり、多数のアプリケーション、エージェント、ソフトウェア構成要素、モジュール、インタフェース、コントローラなどを表してもよいが、アプリケーション660は限定となることは意味しない。オペレーティングシステム650は他のコンピュータプログラムの実行を制御して、スケジューリング、入出力制御、ファイルおよびデータ管理、メモリ管理、ならびに通信制御および関連サービスを提供してもよい。アプリケーション単数または複数660はサービス指向アーキテクチャを用いてもよく、それは互いに通信するサービスの集合であってもよい。加えて、サービス指向アーキテクチャは2つまたはそれ以上のサービスが協調するか、もしくは例、互いの代わりに活動を行うか、またはその両方を行うことを可能にする。サービス間の各対話は独立型および疎結合であることによって、各対話はあらゆる他の対話とは独立していてもよい。さらに、アプリケーション660はソースプログラム、実行可能プログラムオブジェクトコード、スクリプト、または実行されるべき命令の組を含むあらゆるその他のエンティティであってもよい。ソースプログラムのとき、次いでそのプログラムは通常、O/S650に関連して適切に動作するように、メモリ620内に含まれていてもいなくてもよいコンパイラたとえばコンパイラ640など、アセンブラ、インタープリタなどを介して変換される。さらに、アプリケーション660はaデータおよび方法のクラスを有するオブジェクト指向プログラミング言語、またはbルーチン、サブルーチンもしくは関数またはその組み合わせを有する手続き型プログラミング言語として書かれてもよい。I/Oデバイス670は、たとえばマウス、キーボード、スキャナ、マイクロホン、カメラなどであるがそれに限定されない入力デバイスまたは周辺装置を含んでもよい。I/Oデバイス670はさらに、たとえばプリンタ、ディスプレイなどであるがそれに限定されない出力デバイスまたは周辺装置を含んでもよい。最後に、I/Oデバイス670は、たとえば遠隔デバイス、他のファイル、デバイス、システムまたはネットワークにアクセスするためのNICまたは変調装置/復調装置、無線周波数radiofrequency:RFまたはその他のトランシーバ、電話インタフェース、ブリッジ、ルータなどであるがそれに限定されない、入力および出力の両方を通信するデバイスをさらに含んでもよい。加えてI/Oデバイス670は、たとえばインターネットまたはイントラネットなどのさまざまなネットワーク上を通信するための構成要素を含む。I/Oデバイス670は、BluetoothR接続およびたとえばユニバーサルシリアルバスUniversalSerialBus:USBポート、シリアルポート、パラレルポート、ファイアワイヤ、HDMI高品位マルチメディアインタフェースHigh-DefinitionMultimediaInterfaceなどを介したケーブルを用いて、プロセッサ105に接続されるか、もしくはプロセッサ105と通信するか、またはその両方であってもよい。コンピュータ600が動作中のとき、プロセッサ610はメモリ620内に保存されるソフトウェアを実行し、メモリ620とデータを通信し、一般的にはそのソフトウェアに従ってコンピュータ600の動作を制御するように構成される。アプリケーション660およびO/S650は、プロセッサ610によって全体的または部分的に読み取られ、ときにはプロセッサ610内にバッファリングされてから実行される。アプリケーション660がソフトウェアにおいて実現されるとき、アプリケーション660は、あらゆるコンピュータ関連システムまたは方法による使用またはそれに関連する使用のための、実質的にあらゆるコンピュータ読取り可能記憶媒体に保存され得ることに留意すべきである。本文書の状況において、コンピュータ読取り可能記憶媒体は、コンピュータ関連システムまたは方法による使用またはそれに関連する使用のためのコンピュータプログラムを包含または保存できる電子、磁気、光学、またはその他の物理デバイスまたは手段であってもよい。アプリケーション660は、命令実行システム、装置、サーバまたはデバイスによる使用、またはそれに関連する使用のためのあらゆるコンピュータ読取り可能媒体620、たとえばコンピュータに基づくシステム、プロセッサを含むシステム、または命令実行システム、装置もしくはデバイスから命令をフェッチしてその命令を実行できるその他のシステムなどにおいて具現化されてもよい。本文書の状況において、コンピュータ読取り可能記憶媒体は、命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを保存、読取り、書込み、通信または移送できるあらゆる手段であってもよい。コンピュータ読取り可能媒体は、たとえば電子、磁気、光学または半導体のシステム、装置またはデバイスなどであってもよいがそれに限定されない。コンピュータ読取り可能媒体620のより特定的な例非網羅的リストは以下を含む。すなわち1つまたはそれ以上のワイヤを有する電気的接続電子、ポータブルコンピュータディスケット磁気または光学、ランダムアクセスメモリRAM電子、リードオンリメモリROM電子、消去可能プログラマブルリードオンリメモリEPROM、EEPROMまたはフラッシュメモリ電子、光ファイバ光学、およびポータブルコンパクトディスクメモリCD-ROM、CD-R/W光学である。なお、コンピュータ読取り可能媒体は、プログラムが印刷または穿孔された紙または別の好適な媒体であってもよい。なぜなら、たとえばその紙または他の媒体の光学的走査などを介してプログラムを電子的に捕捉して、必要であればコンパイルするか、翻訳するか、または別様に好適な態様で処理してからコンピュータメモリに保存できるからである。例示的実施形態において、アプリケーション660がハードウェアにおいて実現されるとき、アプリケーション660は各々が当該技術分野において周知である以下の技術のいずれか1つまたは組み合わせによって実現されてもよい。すなわち、データ信号に対して論理関数を実現するための論理ゲートを有する個別論理回路単数または複数、適切な組み合わせ論理ゲートを有する特定用途向け集積回路applicationspecificintegratedcircuit:ASIC、プログラマブルゲートアレイ単数または複数programmablegatearrays:PGA、フィールドプログラマブルゲートアレイfieldprogrammablegatearray:FPGAなどである。コンピュータ600は、本明細書において考察されるさまざまなデバイス、サーバおよびシステムに含まれ得るソフトウェアおよびハードウェア構成要素の非限定的な例を含むことが理解され、例示的実施形態において考察されるさまざまなデバイスおよびシステムには付加的なソフトウェアおよびハードウェア構成要素が含まれ得ることが理解される。当業者に認識されるとおり、本発明の側面はシステム、方法またはコンピュータプログラム製品として具現化されてもよい。したがって本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、またはソフトウェアおよびハードウェアの側面を組み合わせた実施形態の形を取ってもよく、本明細書においてこれらはすべて一般的に回路、モジュールまたはシステムと呼ばれることがある。さらに、本発明の側面は、媒体において具現化されるコンピュータ読取り可能プログラムコードを有する1つまたはそれ以上のコンピュータ読取り可能媒体単数または複数において具現化されるコンピュータプログラム製品の形を取ってもよい。1つまたはそれ以上のコンピュータ読取り可能媒体単数または複数のあらゆる組み合わせが使用されてもよい。コンピュータ読取り可能媒体は、コンピュータ読取り可能信号媒体またはコンピュータ読取り可能記憶媒体であってもよい。コンピュータ読取り可能記憶媒体は、たとえば電子、磁気、光学、電磁気、赤外、または半導体のシステム、装置、もしくはデバイス、または前述のもののあらゆる好適な組み合わせなどであってもよいがそれに限定されない。コンピュータ読取り可能記憶媒体のより特定的な例非網羅的なリストは以下を含む。すなわち、1つまたはそれ以上のワイヤを有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、リードオンリメモリROM、消去可能プログラマブルリードオンリメモリEPROMまたはフラッシュメモリ、光ファイバ、ポータブルコンパクトディスクリードオンリメモリCD-ROM、光学記憶装置、磁気記憶装置、または前述のもののあらゆる好適な組み合わせである。本文書の状況において、コンピュータ読取り可能記憶媒体は、命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを含有または保存できるあらゆる有形の媒体であってもよい。コンピュータ読取り可能信号媒体は、たとえばベースバンド内で、または搬送波の部分などとして媒体内で具現化されるコンピュータ読取り可能プログラムコードを有する伝播データ信号を含んでもよい。こうした伝播信号は、電磁気信号、光学信号、またはそのあらゆる好適な組み合わせを含むがそれに限定されないさまざまな形のいずれかを取ってもよい。コンピュータ読取り可能信号媒体は、コンピュータ読取り可能記憶媒体ではなく、かつ命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを通信、伝播または移送できるあらゆるコンピュータ読取り可能媒体であってもよい。コンピュータ読取り可能媒体において具現化されるプログラムコードは、ワイヤレス、ワイヤライン、光ファイバケーブル、RFなど、または前述のもののあらゆる好適な組み合わせを含むがそれに限定されないあらゆる適切な媒体を用いて送信されてもよい。本発明の側面に対する動作を行うためのコンピュータプログラムコードは、オブジェクト指向プログラミング言語、たとえばJava商標、Smalltalk商標、Cなど、および従来の手続き型プログラミング言語、たとえばCプログラミング言語または類似のプログラミング言語などを含む、1つまたはそれ以上のプログラミング言語のあらゆる組み合わせで書かれていてもよい。プログラムコードは、すべてがユーザのコンピュータで実行されてもよいし、スタンドアロンソフトウェアパッケージとして部分的にユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモートコンピュータで実行されてもよいし、すべてがリモートコンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワークlocalareanetwork:LANまたは広域ネットワークwideareanetwork:WANを含むあらゆるタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、たとえば、インターネットサービスプロバイダを用いてインターネットを通じて外部コンピュータへの接続が行われてもよい。上述のとおり、実施形態はコンピュータに実現されるプロセスおよびそれらのプロセスを実行するための装置の形で具現化され得る。例示的実施形態において、本発明は、1つまたはそれ以上のネットワーク構成要素によって実行されるコンピュータプログラムコードにおいて具現化される。実施形態は、図7に示されるとおりのコンピュータ読取り可能使用可能記憶媒体702上のコンピュータプログラム製品700を含み、これは製造品として有形の媒体において具現化される命令を含むコンピュータプログラムコード論理704を有する。コンピュータ使用可能媒体702に対する例示的製造品は、フロッピーRディスケット、CD-ROM、ハードドライブ、ユニバーサルシリアルバスUSBフラッシュドライブ、またはあらゆるその他のコンピュータ読取り可能記憶媒体を含んでもよく、コンピュータプログラムコード論理704がコンピュータにロードされてコンピュータによって実行されるとき、そのコンピュータは本発明を実行するための装置となる。実施形態が含むコンピュータプログラムコード論理704は、たとえば記憶媒体に保存されるか、コンピュータにロードされるか、もしくはコンピュータによって実行されるか、またはその組み合わせであるか、または何らかの送信媒体、たとえば電気配線もしくはケーブル、光ファイバまたは電磁放射などを通じて送信され、コンピュータプログラムコード論理704がコンピュータにロードされてコンピュータによって実行されるとき、そのコンピュータは本発明を実行するための装置となる。汎用マイクロプロセッサにおいて実現されるとき、コンピュータプログラムコード論理704セグメントは特定の論理回路を作成するようにマイクロプロセッサを構成する。本明細書においては、本発明の実施形態に従う方法、装置システムおよびコンピュータプログラム製品の流れ図もしくはブロック図またはその両方を参照して、本発明の側面が説明される。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータプログラム命令によって実現され得ることが理解されるだろう。これらのコンピュータプログラム命令が、汎用コンピュータもしくは特定目的のコンピュータのプロセッサ、またはマシンを生成するためのその他のプログラマブルデータ処理装置に与えられることによって、そのコンピュータのプロセッサまたはその他のプログラマブルデータ処理装置を介して実行された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能/動作を実現するための手段を作成するようにしてもよい。これらのコンピュータプログラム命令は、コンピュータ、その他のプログラマブルデータ処理装置またはその他のデバイスに特定の態様で機能するよう指示できるコンピュータ読取り可能媒体の中に保存されることによって、コンピュータ読取り可能媒体に保存された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能/動作を実現する命令を含む製造品を生成するようにしてもよい。さらに、コンピュータプログラム命令は、コンピュータ、その他のプログラマブルデータ処理装置またはその他のデバイスにロードされることによって、そのコンピュータ、その他のプログラマブル装置またはその他のデバイスにおいて一連の動作ステップを行わせることにより、コンピュータまたはその他のプログラマブル装置において実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能/動作を実現するためのプロセスを提供するような、コンピュータに実現されるプロセスを生成してもよい。本明細書において用いられる用語は特定の実施形態を説明する目的のためのみのものであって、本発明を限定することは意図されない。本明細書において用いられる単数形a、anおよびtheは、状況が明らかに別様を示していない限り、複数形をも含むことが意図される。さらに、含むcomprisesもしくは含むcomprisingという用語またはその両方が本明細書において用いられるとき、それは述べられる特徴、完全体、ステップ、動作、構成要素もしくは成分、またはその組み合わせの存在を特定するが、1つまたはそれ以上の他の特徴、完全体、ステップ、動作、構成要素、成分もしくはその群、またはその組み合わせの存在または追加を排除するものではないことが理解されるだろう。添付の特許請求の範囲におけるすべてのミーンズまたはステッププラスファンクション要素に対応する構造、材料、動作、および同等物は、特定的に請求される他の請求要素と組み合わせてその機能を行うためのあらゆる構造、材料または動作を含むことが意図される。本発明の説明は例示および説明の目的のために提供されたものであるが、網羅的になったり、開示される形に本発明を制限したりすることは意図されない。本発明の範囲および趣旨から逸脱することなく、通常の当業者には多くの修正および変更が明らかになるだろう。実施形態は、本発明の原理および実際の適用を最も良く説明し、他の通常の当業者が予期される特定の使用に好適であるようなさまざまな修正を伴うさまざまな実施形態に対して本発明を理解できるようにするために選択されて記載されたものである。本明細書に示される流れ図は単なる一例である。本発明の趣旨から逸脱することなく、この図面またはそこに記載されるステップもしくは動作に対する多くの変形が存在し得る。たとえば、それらのステップが異なる順序で行われてもよいし、ステップが追加、削除または修正されてもよい。これらの変形はすべて、請求される発明の部分とみなされる。本発明の例示的実施形態を説明したが、現在および将来にわたり、当業者が請求項の範囲内のさまざまな改善および強化を行い得ることが理解されるだろう。"