(57)【特許請求の範囲】
【請求項１】
結合動作を自動的に行うための方法であって、
コンピュータがソース・データを受け取るステップと、
前記コンピュータがジオコード化情報テーブルを受け取るステップと、
前記コンピュータがメタデータ・モデルを受け取るステップであって、前記メタデータ・モデルはソース・データの関係を説明する階層構造を含む、ステップと、
前記コンピュータが前記メタデータ・モデル中の前記階層構造に対して前記ソース・データを整列させてソース・データ階層を形成するステップと、
前記コンピュータが前記ソース・データに対応するジオコード化情報を前記ジオコード化情報テーブルから抽出するためのクエリを生成するステップと、
前記コンピュータが前記ソース・データ階層に基づいて前記ソース・データを前記クエリにより抽出されたジオコード化情報に結合するステップと
を含む、方法。
【請求項２】
前記メタデータ・モデル中の前記階層構造に対して前記ソース・データを整列させて前記ソース・データ階層を形成するステップは、
前記コンピュータが前記ソース・データを解析してジオコード化結合に対する候補である項を定めるステップと、
前記コンピュータが前記メタデータ・モデルを解析して前記階層構造を定めるステップと、
前記コンピュータが前記ソース・データの前記項を前記メタデータ・モデルの前記階層構造に対応させて前記ソース・データ階層を形成することにより、前記ソース・データ階層内の前記ソース・データの前記項が前記メタデータ・モデルの前記階層構造と同じ包含関係を有するようにするステップと
を含む、請求項１に記載の方法。
【請求項３】
前記ソース・データを前記ジオコード化情報に結合するステップは、
前記コンピュータが前記ジオコード化情報を解析して前記ジオコード化結合に対する目標を定めるステップと、
前記コンピュータが前記ソース・データ階層内の前記項の前記包含関係に基づいて、前記ソース・データの前記項を前記ジオコード化情報の前記目標に結合するステップと
を含む、請求項２に記載の方法。
【請求項４】
前記ソース・データ階層に基づいて、前記ソース・データの項が前記ジオコード化情報に対応するカテゴリにないときは、前記ソース・データ階層の包含関係を上方に移動して前記カテゴリ内の親メンバを見出し、
前記カテゴリは前記ジオコード化情報に対するキー・タイプである、請求項３に記載の方法。
【請求項５】
前記ソース・データを前記ジオコード化情報の目標に結合するために前記カテゴリ内の前記親メンバが用いられる、請求項４に記載の方法。
【請求項６】
前記ジオコード化情報の前記目標への前記親メンバの前記結合に基づく前記ジオコード化情報を含ませるための地理空間レポートを生成するステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記ソース・データ階層に基づいて、前記ソース・データの項が前記ジオコード化情報に対応するカテゴリにないときは、前記ソース・データ階層の包含関係における子メンバの子要素を集合させるステップをさらに含み、
前記カテゴリは前記ジオコード化情報に対するキー・タイプである、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記ソース・データ階層の前記包含関係における前記子メンバの前記子要素を集合させるステップは、前記子メンバの子要素をともにグループ化することによって、前記子要素の合計が前記項になるようにするステップを含み、
前記項は、前記ソース・データ階層の前記包含関係における親メンバである、請求項７に記載の方法。
【請求項９】
前記ソース・データが前記ジオコード化情報とは異なるタイプであるときには、前記ソース・データ階層を移動して以下のステップの少なくとも１つを行うステップをさらに含み、前記以下のステップは
前記コンピュータが親メンバに変換するステップであって、前記親メンバは地理空間レポートを生成するために用いられるクエリに関係する子メンバを包含し、前記地理空間レポートは前記子メンバに対するものであるが前記ジオコード化情報には前記親メンバが結合される、ステップと、
前記コンピュータが子メンバの子要素を集合させるステップであって、前記子メンバは前記親メンバに包含されており、前記親メンバは前記地理空間レポートを生成するために用いられるクエリに関係しており、前記地理空間レポートは前記親メンバに対するものであるが前記ジオコード化情報には前記子メンバが結合される、ステップと
である、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
結合動作を自動的に行うために構成されたデバイスであって、前記デバイスは、
１つまたはそれ以上のプログラムを保存するためのメモリと、
前記メモリに機能的に結合されたプロセッサとを含み、前記プロセッサは前記１つまたはそれ以上のプログラムに含まれるコンピュータ実行可能命令に応答して以下のステップをコンピュータに動作させる手段を含み、前記ステップは、
ソース・データを受け取るステップと、
ジオコード化情報テーブルを受け取るステップと、
メタデータ・モデルを受け取るステップであって、前記メタデータ・モデルは階層構造を含む、ステップと、
前記メタデータ・モデル中の前記階層構造に対して前記ソース・データを整列させてソース・データ階層を形成するステップと、
前記ソース・データに対応するジオコード化情報を前記ジオコード化情報テーブルから抽出するためのクエリを作成するステップと、
前記ソース・データ階層に基づいて前記ソース・データを前記クエリにより抽出されたジオコード化情報に結合するステップと
である、デバイス。
【請求項１１】
前記メタデータ・モデル中の前記階層構造に対して前記ソース・データを整列させて前記ソース・データ階層を形成するステップのための前記手段は、
前記ソース・データを解析してジオコード化結合に対する候補である項を定めるための手段と、
前記メタデータ・モデルを解析して前記階層構造を定めるための手段と、
前記ソース・データの前記項を前記メタデータ・モデルの前記階層構造に対応させて前記ソース・データ階層を形成することにより、前記ソース・データ階層内の前記ソース・データの前記項が前記メタデータ・モデルの前記階層構造と同じ包含関係を有するようにするための手段と
を含む、請求項１０に記載のデバイス。
【請求項１２】
前記ソース・データを前記ジオコード化情報に結合するステップのための前記手段は、
前記ジオコード化情報を解析して前記ジオコード化結合に対する目標を定めるための手段と、
前記ソース・データ階層内の前記項の前記包含関係に基づいて、前記ソース・データの前記項を前記ジオコード化情報の前記目標に結合するための手段と
を含む、請求項１１に記載のデバイス。
【請求項１３】
前記ソース・データ階層に基づいて、前記ソース・データの項が前記ジオコード化情報に対応するカテゴリにないときは、前記ソース・データ階層の包含関係を上方に移動して前記カテゴリ内の親メンバを見出すための手段をさらに含み、
前記カテゴリは前記ジオコード化情報に対するキー・タイプである、請求項１０から１２のいずれか１項に記載のデバイス。
【請求項１４】
前記ソース・データを前記ジオコード化情報の目標に結合するために前記カテゴリ内の前記親メンバが用いられる、請求項１３に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
例示的実施形態はレポートを生成することに関し、より特定的にはレポートに地理空間情報を自動的に含ませることに関する。
【背景技術】
【０００２】
地理情報システム（ｇｅｏｇｒａｐｈｉｃ  ｉｎｆｏｒｍａｔｉｏｎ  ｓｙｓｔｅｍ：ＧＩＳ）または地理情報システム（ｇｅｏｇｒａｐｈｉｃａｌ  ｉｎｆｏｒｍａｔｉｏｎ  ｓｙｓｔｅｍ）とは、位置に関連するデータを捕捉、保存、分析、管理および提供するあらゆるシステムのことである。最も簡単に言うと、ＧＩＳは地図作製と、統計分析と、データベース技術とを併合したものである。ＧＩＳシステムは、地図作製、遠隔検知、土地測量、ユーティリティ管理、天然資源管理、写真測量、地理学、都市計画、危機管理、ナビゲーション、および局所的検索エンジンにおいて用いられる。ＧＩＳはシステムであるため、管轄権、目的指向性、またはアプリケーション指向性であってもよい境界を確立し、それに対して特定のＧＩＳが開発されている。したがって、あるアプリケーション、管轄権、事業、または目的のために開発されたＧＩＳは、何らかの他のアプリケーション、管轄権、事業、または目的のために開発されたＧＩＳと必ずしも相互運用可能であるかまたは互換性があるとは限らない。加えて、ＧＩＳは空間（または地理空間）データ・インフラストラクチャ（ｓｐａｔｉａｌ  ｄａｔａ  ｉｎｆｒａｓｔｒｕｃｔｕｒｅ：ＳＤＩ）を含んでおり、これはこうした制限的境界を有さない概念である。したがって一般的な意味では、この用語は地理情報を統合、保存、編集、分析、共有および表示するあらゆる情報システムを説明するものである。より包括的な意味では、ＧＩＳアプリケーションとはユーザが対話型クエリ（ユーザ作成の検索）を作成し、空間情報を分析し、データを編集し、マップし、これらすべての動作の結果を提供することを可能にするツールである。
【０００３】
地理空間（Ｇｅｏｓｐａｔｉａｌ）とは、空間ソフトウェアおよび分析法と、地上または地理データセットとの組み合わせを説明するために広く用いられる用語である。この用語はしばしば地理情報システム（ＧＩＳ）および地球数学（ｇｅｏｍａｔｉｃｓ）と組み合わせて用いられる。多くの地理情報システム（ＧＩＳ）製品は地理空間分析を応用している。
【０００４】
地理情報システムはさらに、たとえばビジネスなど、さまざまな事業を支援するための非直感的方法に利用されてもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、結合動作を自動的に行うための方法およびデバイスを提供する。
【課題を解決するための手段】
【０００６】
したがって本発明は第１の側面において、ソース・データを受け取るステップと、メタデータ・モデルを受け取るステップであって、このメタデータ・モデルはソース・データの関係を説明する階層構造を含む、ステップと、メタデータ・モデル中の階層構造に対してソース・データを整列させてソース・データ階層を形成するステップと、このソース・データ階層に基づいてソース・データをジオコード化情報に結合するステップとを含む、結合動作を自動的に行うための方法を提供する。
【０００７】
好ましくは、メタデータ・モデル中の階層構造に対してソース・データを整列させてソース・データ階層を形成するステップは、ソース・データを解析してジオコード化結合に対する候補である項を定めるステップと、メタデータ・モデルを解析して階層構造を定めるステップと、ソース・データの項をメタデータ・モデルの階層構造に対応させてソース・データ階層を形成することにより、ソース・データ階層内のソース・データの項がメタデータ・モデルの階層構造と同じ包含関係を有するようにするステップとを含む。好ましくは、ソース・データをジオコード化情報に結合するステップは、ジオコード化情報を解析してジオコード化結合に対する目標を定めるステップと、ソース・データ階層内の項の包含関係に基づいて、ソース・データの項をジオコード化情報の目標に結合するステップとを含む。好ましくは、ソース・データ階層に基づいて、ソース・データの項がジオコード化情報に対応するカテゴリにないときは、ソース・データ階層の包含関係を上方に移動してカテゴリ内の親メンバを見出し、ここでそのカテゴリはジオコード化情報に対するキー・タイプである。好ましくは、ソース・データをジオコード化情報の目標に結合するためにカテゴリ内の親メンバが用いられる。好ましくは、親メンバはソース・データ内のソース・テーブルに関係し、目標はジオコード化情報内のジオコード化テーブルに関係する。好ましくは、この方法はさらに、ジオコード化情報の目標への親メンバの結合に基づくジオコード化情報を含ませるための地理空間レポートを生成するステップを含む。好ましくは、ソース・データ階層に基づいて、ソース・データの項がジオコード化情報に対応するカテゴリにないときは、ソース・データ階層の包含関係における子メンバの子要素を集合させ、そのカテゴリはジオコード化情報に対するキー・タイプである。好ましくは、ソース・データ階層の包含関係における子メンバの子要素を集合させるステップは、子メンバの子要素をともにグループ化することによって、子要素の合計がその項になるようにするステップを含み、その項は、ソース・データ階層の包含関係における親メンバである。好ましくは、この方法はさらに、子要素の合計に基づいてジオコード化情報を含ませるための地理空間レポートを生成するステップを含む。好ましくは、ソース・データがジオコード化情報とは異なるタイプであるときには、ソース・データ階層を移動して以下の少なくとも１つを行う。すなわち、親メンバに変換するステップであって、この親メンバは地理空間レポートを生成するために用いられるクエリに関係する子メンバを包含し、地理空間レポートは子メンバに対するものであるがジオコード化情報には親メンバが結合されるステップ、および子メンバの子要素を集合させるステップであって、この子メンバは親メンバに包含されており、親メンバは地理空間レポートを生成するために用いられるクエリに関係しており、地理空間レポートは親メンバに対するものであるがジオコード化情報には子メンバが結合されるステップである。
【０００８】
第２の側面においては、結合動作を自動的に行うために構成されたデバイスが提供され、このデバイスは、１つまたはそれ以上のプログラムを保存するためのメモリと、メモリに機能的に結合されたプロセッサとを含み、このプロセッサは１つまたはそれ以上のプログラムに含まれるコンピュータ実行可能命令に応答して以下のステップを行うために動作可能である。すなわち、ソース・データを受け取るステップと、メタデータ・モデルを受け取るステップであって、このメタデータ・モデルは階層構造を含む、ステップと、メタデータ・モデル中の階層構造に対してソース・データを整列させてソース・データ階層を形成するステップと、このソース・データ階層に基づいてソース・データをジオコード化情報に結合するステップとである。
【０００９】
好ましくは、メタデータ・モデル中の階層構造に対してソース・データを整列させてソース・データ階層を形成するステップは、ソース・データを解析してジオコード化結合に対する候補である項を定めるステップと、メタデータ・モデルを解析して階層構造を定めるステップと、ソース・データの項をメタデータ・モデルの階層構造に対応させてソース・データ階層を形成することにより、ソース・データ階層内のソース・データの項がメタデータ・モデルの階層構造と同じ包含関係を有するようにするステップとを含む。好ましくは、ソース・データをジオコード化情報に結合するステップは、ジオコード化情報を解析してジオコード化結合に対する目標を定めるステップと、ソース・データ階層内の項の包含関係に基づいて、ソース・データの項をジオコード化情報の目標に結合するステップとを含む。好ましくは、ソース・データ階層に基づいて、ソース・データの項がジオコード化情報に対応するカテゴリにないときは、ソース・データ階層の包含関係を上方に移動してカテゴリ内の親メンバを見出し、そのカテゴリはジオコード化情報に対するキー・タイプである。好ましくは、ソース・データをジオコード化情報の目標に結合するためにカテゴリ内の親メンバが用いられる。好ましくは、親メンバはソース・データ内のソース・テーブルに関係し、目標はジオコード化情報内のジオコード化テーブルに関係する。好ましくは、このデバイスは、ジオコード化情報の目標への親メンバの結合に基づくジオコード化情報を含ませるための地理空間レポートを生成するための手段を含む。好ましくは、この手段はソース・データ階層に基づいて、ソース・データの項がジオコード化情報に対応するカテゴリにないときは、ソース・データ階層の包含関係における子メンバの子要素を集合させるための手段であり、そのカテゴリはジオコード化情報に対するキー・タイプである。好ましくは、ソース・データ階層の包含関係における子メンバの子要素を集合させるステップは、子メンバの子要素をともにグループ化することによって、子要素の合計がその項になるようにするステップを含み、その項は、ソース・データ階層の包含関係における親メンバである。好ましくは、ソース・データがジオコード化情報とは異なるタイプであるときには、この手段はソース・データ階層を移動して以下の少なくとも１つを行う。すなわち、親メンバに変換するステップであって、この親メンバは地理空間レポートを生成するために用いられるクエリに関係する子メンバを包含し、地理空間レポートは子メンバに対するものであるがジオコード化情報には親メンバが結合されるステップ、および子メンバの子要素を集合させるステップであって、この子メンバは親メンバに含まれており、親メンバは地理空間レポートを生成するために用いられるクエリに関係しており、地理空間レポートは親メンバに対するものであるがジオコード化情報には子メンバが結合されるステップである。
【００１０】
ビジネス・レポートのためにジオコード化情報を利用するための方法が提供されてもよく、この方法は、ビジネス・データをジオコード化情報に結合するために用いられるキーを自動的に生成するステップと、ビジネス・データに関係するビジネス・メタデータ・モデル階層におけるキーの相対位置に基づいてキーを定めるステップと、キーのうち少なくとも１つのキーに基づいてビジネス・データをジオコード化情報に結合するステップと、ビジネス・データの地理空間レポートを生成するステップとを含み、この地理空間レポートは少なくとも１つのキーを結合することに基づくジオコード化情報を含む。
【００１１】
このデバイスはビジネス・レポートのためにジオコード化情報を利用するために構成されてもよく、このデバイスは、１つまたはそれ以上のプログラムを保存するためのメモリと、メモリに機能的に結合されたプロセッサとを含み、このプロセッサは１つまたはそれ以上のプログラムに含まれるコンピュータ実行可能命令に応答して以下のステップ：すなわち、ビジネス・データをジオコード化情報に結合するために用いられるキーを自動的に生成するステップと、ビジネス・データに関係するビジネス・メタデータ・モデル階層におけるキーの相対位置に基づいてキーを定めるステップと、キーのうち少なくとも１つのキーに基づいてビジネス・データをジオコード化情報に結合するステップと、ビジネス・データの地理空間レポートを生成するステップとを行い、この地理空間レポートは少なくとも１つのキーを結合することに基づくジオコード化情報を含む。
【００１２】
例示的実施形態に従うと、結合動作を自動的に行うための方法が提供される。ソース・データが受け取られ、メタデータ・モデルと呼ばれることもあるモデルが受け取られる。このモデルは階層構造を含む。モデル中の階層構造に対してソース・データが整列されてソース・データ階層を形成する。このソース・データ階層に基づいてソース・データがジオコード化情報に結合される。
【００１３】
例示的実施形態に従うと、ビジネス・レポートのためにジオコード化情報を利用するための方法が提供される。ビジネス・データをジオコード化情報に結合するために用いられるキーが自動的に生成される。このキーは、ビジネス・データに関係するビジネス・モデル階層におけるキーの相対位置に基づいて定められる。キーのうち少なくとも１つのキーに基づいてビジネス・データがジオコード化情報に結合される。ビジネス・データの地理空間レポートが生成され、この地理空間レポートは少なくとも１つのキーを結合することに基づくジオコード化情報を含む。
【００１４】
本開示の技術を通じて付加的な特徴が実現される。他の実施形態に従う他のシステム、方法、装置、もしくはコンピュータ・プログラム製品またはその組み合わせが本明細書に詳細に記載され、それらは請求される本発明の部分とみなされる。例示的実施形態および特徴をより良く理解するために、説明および図面を参照されたい。
【００１５】
添付の図面を参照して、本発明の好ましい実施形態を単なる例として説明する。
【図面の簡単な説明】
【００１６】
【図１】例示的実施形態を実施するためのさまざまなハードウェアおよびソフトウェア構成要素を有するシステムを示すブロック図である。
【図２】例示的実施形態に従うソース・データ階層を示す図である。
【図３】例示的実施形態に従う処理の例を示す図である。
【図４】例示的実施形態に従うソース・データ階層を示す図である。
【図５】例示的実施形態に従う方法を示す図である。
【図６】例示的実施形態に含まれ得る、能力を有するコンピュータの例を示す図である。
【図７】例示的実施形態に従うコンピュータ読取り可能（使用可能）記憶媒体におけるコンピュータ・プログラム製品を示す図である。
【発明を実施するための形態】
【００１７】
リレーショナル・データベースは、結合動作を用いて異なる情報テーブルを接続する。典型的には、ソース・テーブル内の主キーを用いて外部テーブル内の外部キーと整合させることによって、両方のテーブルからの要素を有する論理テーブルを形成する。ＳＱＬ（構造化クエリ言語（ｓｔｒｕｃｔｕｒｅｄ  ｑｕｅｒｙ  ｌａｎｇｕａｇｅ））結合動作（すなわち句）は、データベース内の２つまたはそれ以上のテーブルからの記録を組み合わせる。結合動作は、テーブルとしてセーブできるか、またはそのまま使用できるセットを作成する。結合動作は、各々に共通の値を用いることによって２つのテーブルからのフィールドを組み合わせるための手段である。ＣＥＯテーブル１および会社テーブル２を用いた例を考える。
【００１８】
【表１】
0005856618.tif 000002
【００１９】
【表２】
0005856618.tif 000003
【００２０】
２つのテーブル１および２を会社Ｉｄによって結合するとき、その結果は下記のような結果テーブル３となる。
【００２１】
【表３】
0005856618.tif 000004
【００２２】
データをジオコード化することによって、１つまたはそれ以上のデータ要素に地理的位置を対応付ける。会社住所テーブルを用いた例を考える。
【００２３】
【表４】
0005856618.tif 000005
【００２４】
ジオコード化を用いて、テーブル５に示されるとおりに各住所に緯度および経度を対応付ける。
【００２５】
【表５】
0005856618.tif 000006
【００２６】
その結果得られたテーブル４および５のセットを伝統的なＳＱＬクエリによって結合して、下に示されるとおりの論理ジオコード化顧客テーブル６を作成できる。
【００２７】
【表６】
0005856618.tif 000007
【００２８】
政府、公共部門法人、および民間部門エンティティによって、膨大な量の（例、ジオコード化情報テーブル内の）ジオコード化情報が提供されている。提供されるデータのタイプは、しばしばビジネスにとって非常に有益である。その例は、人口統計、購買習慣、所得水準、犯罪統計、教育水準、公共サービスの利用およびインフラストラクチャ、ＣＲＭ、運転時間、ならびにロジスティック・データを含んでもよい。
【００２９】
ジオコード化情報テーブルは、典型的にジオコード化外部キーによって分類される。言い換えると、データは分類されて、ある種の位置識別子（すなわち外部キー）によって索引付けされる。これによって、もしソース・ビジネス・データが同種のキーを含んでいれば、ジオコード化情報テーブルの内容を伝統的なビジネス・データと結合できるようになる。
【００３０】
ジオコード化情報テーブルは、関連データへのアクセスを可能にするためにさまざまなジオコード化外部キーを用いる。以下は、ジオコード化情報テーブルに含まれて用いられ得るジオコード化外部キーのタイプのいくつかの例である。
【００３１】
単純な緯度および経度属性から構築された複合キー、
ジップ・コードもしくは郵便番号またはその両方、
政治的境界または投票境界、
地方自治地区、
道路境界もしくは道路交差点またはその両方、
測量境界もしくは不動産登記境界またはその両方、
任意の多角形によって定義される地理的範囲、たとえば国勢調査ブロックなど、
任意の地点および距離測定値によって定義される地理的範囲、ならびに
連邦情報処理標準コード（Ｆｅｄｅｒａｌ  ｉｎｆｏｒｍａｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ  ｓｔａｎｄａｒｄｓ  ｃｏｄｅｓ：ＦＩＰＳコード）、これはすべての連邦政府機関による地理的エンティティの一様な識別を確実にするために国立標準技術研究所（Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ：ＮＩＳＴ）が発行している、数字もしくはアルファベットまたはその両方のコードの標準化されたセットである。カバーされるエンティティは以下を含む。すなわち、州および統計学的に同等のエンティティ、郡および統計学的に同等のエンティティ、名付けられた居住地および関連する場所のエンティティ（たとえば場所および郡の細分など）、ならびにアメリカ・インディアンおよびアラスカ原住民の区域である。
【００３２】
ビジネス・データベースおよびデータマートは典型的に、これらのジオコード化外部キー・タイプのいずれかまたはすべてに一致するソース・キーを有さない。例示的実施形態は、ジオコード化情報テーブルにおいて利用可能な膨大な量の情報にソース・ビジネス・データを一致させるための一意のやり方においてビジネス・モデルを用いることによって、この問題に対処するために構成される。
【００３３】
グーグル（Ｇｏｏｇｌｅ）（Ｒ）およびピツニー・ボウズ（Ｐｉｔｎｅｙ  Ｂｏｗｅｓ）（Ｒ）ビジネス・インサイト（Ｂｕｓｉｎｅｓｓ  Ｉｎｓｉｇｈｔ）（旧ＭａｐＩｎｆｏ（Ｒ））などの販売業者は、データをジオコード化するさまざまな方法およびジオコード化データにアクセスするさまざまな方法を提供している。しかし、これらの製品はすべて、それらの販売業者が提供する情報の核心へのアクセスを得るために図形情報システム（Ｇｒａｐｈｉｃａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍｓ：ＧＩＳ）の知識を必要とする。既存の無修正のビジネス・データとの簡単な統合は提供されていない。
【００３４】
ここで図１を参照すると、図１は例示的実施形態を実施するためのさまざまなハードウェアおよびソフトウェア構成要素を有するシステムのブロック図形１０を示す。
【００３５】
ブロック図形１０は、たとえばワークステーション、サーバなど、あらゆるタイプの計算デバイスであってもよいコンピュータ５を示す。コンピュータ５は、メモリ１５、通信インタフェース４０、ディスプレイ４５、ユーザ・インタフェース５０、プロセッサ６０、およびレポート・システム１０３を含むか、もしくはそれらに結合されるか、またはその両方であってもよい。通信インタフェース４０は、ネットワーク上で通信するためのハードウェアおよびソフトウェアを含む。ユーザ・インタフェース５０は、コンピュータ５と対話してたとえば情報入力、選択、要求などを行うための、たとえばトラック・ボール、マウス、ポインティング・デバイス、キーボード、タッチ・スクリーンなどを含んでもよい。コンピュータ５に対して考察されたのと同様に、サーバＡ、Ｂ、ＣおよびＤも（類似の）構成要素１５、４０、４５、５０および６０を含み得るが、簡潔のためそれらは図示されていない。
【００３６】
コンピュータ５は、コンピュータ読取り可能記憶媒体であってもよいメモリ１５を含む。レポート・システム１０３などの１つまたはそれ以上のソフトウェア・アプリケーション（モジュール）は、メモリ１５上に存在してもよいし、メモリ１５に結合されてもよい。レポート・システム１０３は、たとえばソース・データ・アナライザ１０４、目標データ・アナライザ１０５、レポート・モデル・アナライザ１０６、および地理空間クエリ・ビルダ１０７などのさまざまなソフトウェア・モジュールを含んでもよく、各ソフトウェア・モジュールは、コンピュータ実行可能命令の形で例示的実施形態に従って動作および機能するための論理およびソフトウェア構成要素を含む。加えてレポート・システム１０３は、レポート作成者１１０として示されるユーザが見て対話することができる図形ユーザ・インタフェース（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ：ＧＵＩ）を含んでもよい。
【００３７】
コンピュータ５は、ソース・データ１００、レポート・モデル１０１、およびジオコード化情報テーブル１０２をロードしてもよいし、それらを含んでもよいし、その両方であってもよい。レポート・システム１０３は、地理空間レポート１０９を生成するために用いられるデータベース内の結合データセット１０８を生成するように構成される。
【００３８】
レポート・システム１０３は、ビジネス・ソース・データ１００（ソース・データとも呼ばれる）のソース・ビジネス・データを外部のジオコード化情報テーブル１０２と透過的に自動的に結合するように構成される。結合データセット１０８は、ソース・データ１００とジオコード化情報テーブル１０２との間の結合（結果として得られるテーブル）を（一時的に）保存してもよい。ビジネス・ソース・データ１００は、レポート作成者１１０による修正を必要とすることなくレポート・システム１０３によって使用可能である。レポート・システム１０３による結合動作の結果として、結合データセット１０８において得られるデータを用いて、たとえば人口統計、購買習慣、所得水準、犯罪統計、教育水準、公共サービスの利用およびインフラストラクチャ、顧客関係管理（ｃｕｓｔｏｍｅｒ  ｒｅｌａｔｉｏｎｓｈｉｐ  ｍａｎａｇｅｍｅｎｔ：ＣＲＭ）、運転時間、ならびにロジスティックなどであるがそれに限定されない多くの垂直アプリケーションにおける報告の問題を解決できる。たとえばレポート作成者１１０などの典型的なレポートのオーサリング技能を有する人物は、ＧＩＳエキスパート１１１として表されるより専門的なＧＩＳ技能を有する人物の助けを必要とすることなく、十分にこのタスクを行うことができる。
【００３９】
たとえば、レポート・システム１０３は地理空間レポート１０９を生成するためにレポート作成者１１０によって用いられる。ソース・データ１００は、レポート・モデル１０１において定義される高レベルデータ階層を用いてモデル化される。レポート・モデル１０１内のこれらの高レベルデータ階層は、レポート作成者１１０が地理空間レポート１０９を生成する（書く）ことをより容易にする。なぜなら、レポート作成者１１０はソース・データ１００およびジオコード化情報テーブル１０２に用いられた、基礎をなす物理データベースおよびデータ・モデルに関わる必要がないからである。
【００４０】
レポート・システム１０３によって、特定のビジネスもしくはエンティティまたはその両方からのソース・データ１００がジオコード化情報テーブル１０２と結合されることによって、両方のテーブル１００および１０２からの複合データを含む結合データセット１０８が作成される。ソース・データ１００内のデータは、テーブル、マトリックスなどを含むあらゆるフォーマットでコンパイルされて提供されてもよい。レポート・システム１０３は、結合データセット１０８からのデータを用いて、レポート作成者１１０が指定するとおりに結合データの異なる視覚的表現を生成することによって地理空間レポート１０９を生成する。
【００４１】
産業界においては、保険、警備業界、およびロジスティック業界において用いるために、たとえばＧＩＳエキスパート１１１などのＧＩＳエキスパート技能を有する人によって地理空間レポート１０９がルーチン的に構築されている。オーサリングのコストが高いため、地理空間レポートは他の業界において本来可能であるほど広くは用いられていない。地理空間レポート１０９を作成するために必要とされるＧＩＳエキスパート１１１技能を有する人は比較的少ない。こうした人物は、データベース・クエリ設計およびビジネス・レポートの領域の技能も有する必要がある。
【００４２】
伝統的に、地理空間レポート１０９を作成するＧＩＳエキスパート１１１には典型的に以下のことが求められる。
１．ソース・データ１００内の物理的地理空間データベースとジオコード化情報テーブル１０２との統合を取り扱う。
２．ソース・データをどのように外部ジオコード化キーに一致させるかを決定する。
３．地理空間クエリを書き込んでソース・データ１００からデータを抽出し、ソース・データ１００をジオコード化情報テーブル１０２に結合する。
４．地理空間レポート１０９にビジネスの内容をオーサリングする。
【００４３】
しかし例示的実施形態に従うと、レポート・システム１０３は、ＧＩＳエキスパート１１１技能を有さないレポート作成者１１０が地理空間レポート１０９を十分に構築および維持することを可能にすることによって、上記のステップ１〜３を効果的に自動化するように構成される。
【００４４】
レポート作成者１１０は一般的なビジネス・レポート技能を有するがＧＩＳエキスパート１１１の専門技能は有さないときの以下のシナリオについて考える。レポート作成者１１０は、何らかの地理的位置によって分類された情報であるジオコード化情報テーブル１０２からのデータ要素を使用することを希望する。ジオコード化情報テーブル１０２のデータ要素は典型的に人口統計、購買習慣、所得水準、犯罪統計、教育水準、公共サービスの利用およびインフラストラクチャ、ＣＲＭ、運転時間、ならびにロジスティックを含むが、それに限定されることは意味しない。レポート作成者１１０はＧＩＳエキスパート１１１技能を有さないため、レポート作成者１１０はたとえば専門のクエリを用いるなどしてジオコード化情報テーブル１０２のデータに直接アクセスする方法を知らない。ジオコード化テーブルは典型的に、特定の地理空間範囲または形状ファイルに関連する主キーを有する。その例は、国勢調査ブロックによってキー付けされた人口、および郡によってキー付けされた平均所得、または４本もしくはそれ以上の道路の組によって区切られた領域における平均年齢である。こうしたジオコード化テーブルのクエリを行うために、ＧＩＳエキスパート１１１は地理空間データベース・システム内の関連ＧＩＳオブジェクトを参照する専門クエリ句およびパラメータを構築する必要がある。さらに、これらのオブジェクトは典型的に共通のビジネス・データ内に存在しないため、ＧＩＳエキスパート１１１は中間結果を変換し、おそらくは集合させて有効な結果セットを生成する必要がある。たとえば、ソースの道路住所と、国勢調査ブロックによってキー付けされた目標のジオコード化人口テーブルとが与えられるとき、ＧＩＳエキスパート１１１は地理空間クエリを構築してどの国勢調査ブロックがソースの道路住所を含むかを決定し、次いで見出された国勢調査ブロック識別子によって目標の人口テーブルのクエリを行う必要がある。さらに、もし見出された国勢調査ブロック識別子のフォーマットが目標キーと異なっていれば、目標キーのフォーマットに一致するように国勢調査ブロック識別子を変換する必要がある。たとえば、ソース識別子はフォーマットｎｎｎｎ．ｎｎであってもよく、目標フォーマットはフォーマットｎｎｎｎ  ｎｎかもしれない。例示的実施形態は、ＧＩＳエキスパート１１１のようなエキスパート技能を必要とせずに、レポート作成者１１０がレポート・システム１０３を用いてさまざまな地理空間レポート１０９を生成できるように構成される。
【００４５】
レポート・システム１０３は、ＩＢＭ（ＩＢＭ社の登録商標）Ｃｏｇｎｏｓ（ＩＢＭ社の登録商標）ソフトウェアなどによって提供されるものなど、汎用レポート・システムの通常の構成要素を含んでもよい。しかしレポート・システム１０３は、本明細書において考察されるとおりに動作および機能するように付加的に構成される。
【００４６】
レポート・システム１０３は、データ階層の高レベル表現であるレポート・モデル１０１を受け取ってロードするように構成され、レポート・モデル１０１は物理データベース実施詳細をレポート作成者１１０から隠す。レポート・モデル１０１は、ソース・データ１００に対応するさまざまなタイプのビジネス・モデルを表現もしくは含有するか、またはその両方であってもよい。レポート・モデル１０１はビジネスまたは事業に対する異なる項（例、組織化され得るあらゆるタイプのデータ）の階層構造を示すビジネス指向階層であり、レポート・モデル１０１はレポート・システム１０３に、対応するソース・データ１００がソース・データ１００のテーブル（単数または複数）における関連項の階層であることを通知する。よって、ソース・データ１００はテーブル・フォーマットであるかもしれないが、レポート・システム１０３はソース・データ１００に対する階層構造を得て、図２および図４に示されるとおりにソース・データ１００をレポート・モデル１０１の階層構造に整列させるように構成される。加えて、レポート・モデル１０１はさまざまな階層（ビジネス）モデル、たとえば販売地域モデル、供給業者位置モデルなどを含むが、それに限定されない。レポート・モデル１０１は、たとえば情報フレームワーク（ｉｎｆｏｒｍａｔｉｏｎ  ｆｒａｍｅｗｏｒｋ：ＩＦＷ）モデルなどのより一般的なモデルであってもよい。言い換えると、図２および図４に示されるとおりのソース・データ階層を構築するためにレポート・システム１０３によって用いるために、多くの異なる階層構造を有する多くの異なるレポート・モデル１０１が利用可能である。さらに、レポート・モデル１０１は、ソース・データ１００の関係を説明するメタデータ・モデルであってもよい。
【００４７】
理解を容易にするために、かつ限定的でなく、レポート・システム１０３の特徴をそのさまざまなソフトウェア・モジュールを用いて説明してもよいが、このソフトウェア・モジュール（の部分またはすべて）は要望に応じてレポート・システム１０３に統合されていてもよいし、レポート・システム１０３から分離していてもよいし、その両方であってもよいことが理解される。ソース・データ・アナライザ１０４は、ソース・データ１００を読み取ってソース・データ要素のデータ・タイプおよびデータ・フォーマットを定めるように構成される。ソース・データ・アナライザ１０４は、地理空間データであるように見えるソース・データ１００のテーブル内のデータ・フィールドを識別および選択するための字句パーサによって構成されてもよく、たとえばソース・データ・アナライザ１０４は住所、州の名前、部分番号などを識別および選択してもよい。これらのデータ要素または項は、後でソース・データ１００に対する親子関係を示す階層を構築するために用いられる。ソース・データ・アナライザ１０４は、地理空間要素すなわち位置情報を有する項であるように見えるあらゆるタイプのデータ・フォーマットを識別および選択するように構成される。ソース・データ・アナライザ１０４は、ソース・データ１００のテーブル内の正しい位置において一連の番号を見出してもよい。たとえば、ソース・データ・アナライザ１０４は電話番号を見出してもよく、ここで最初の３つの番号は区域コードであり、２番目の３つの番号は州コードであり、最後の４つの番号はその電話番号に対する点位置である。ソース・データ・アナライザ１０４は、たとえばデータベース１１５などのルックアップを行って、その電話番号がどの州に対応するかを定めてもよい。加えて、レポート・システム１０３のソース・データ・アナライザ１０４は、ソース・データ１００のテーブル内からたとえばジェファーソン（Ｊｅｆｆｅｒｓｏｎ）もしくは州名またはその両方などの項を見出して選択してもよい。例示的実施形態の一実施において、ソース・データ・アナライザ１０４は、ジェファーソンという項が実際に地理空間データであることを確認したいかもしれない。したがってソース・データ・アナライザ１０４は、データベース１１５のルックアップを行うか、もしくはジオコード化情報テーブル１０２のルックアップを行うか、またはその両方を行うことによって、ジェファーソンという項が実際に特定の州の郡（または地区、市などであってもよい）であることを確認するように構成される。ソース・データ・アナライザ１０４によって識別されたソース・データ１００内の項は、ジオコード化情報テーブル１０２への結合に対する候補項でもある。
【００４８】
さらに、ソース・データ・アナライザ１０４はレポート・モデル１０１を読み取って、地理空間データ結合に適した（レポート・モデル１０１のビジネス・モデルに整列される）ソース・データ要素（項）の特徴付け、識別もしくは選択、またはその組み合わせを行う。ソース・データ１００内の複数の項がデータ結合に適しているとして選択されてもよい。選択された項は、主キーとして用いられてもよい。下にさらに考察されるとおり、レポート・モデル・アナライザ１０６は、ソース・データ１００をレポート・モデル１０１の階層に自動的に整列させる。ソース・データ・アナライザ１０４が自動的に行う際の、ソース・データ１００もしくはレポート・モデル１０１またはその両方における候補地理空間要素（項）に対する選択基準は以下を含むがそれに限定されない。すなわち、緯度および経度の値、国、市および郡などの地名、位置情報を保持するオンライン分析処理（ｏｎｌｉｎｅ  ａｎａｌｙｔｉｃａｌ  ｐｒｏｃｅｓｓｉｎｇ：ＯＬＡＰ）次元、住所要素、たとえば道路番号、道路名、私書箱、郵便局番号、ルータ番号など、ジップ・コードおよび郵便番号、地方自治地区座標、ならびに名付けられた地理的領域、たとえば「投票／選挙区」、「警察管区」もしくは「地域名」またはその組み合わせなど、ならびにＦＩＰＳコード（ＵＳ）であり、これらはすべて１つまたはそれ以上のジオコード化情報テーブル１０２に存在してもよい。
【００４９】
目標データ・アナライザ１０５は、ジオコード化情報テーブル１０２を読み取って、ジオコード化データ結合の目標として適切なジオコード化情報テーブル１０２内の（要素）項を特徴付けおよび選択するように構成される。目標となるのは、ジオコード化情報テーブル１０２への結合のための、ジオコード化情報テーブル１０２内のキー（データベース・キーまたは外部キーとも呼ばれる）である。ソース・データ１００もしくはレポート・モデル１０１またはその両方における項を識別するための、上に考察されたものと同じかまたは類似の選択基準を用いて、ジオコード化情報テーブル１０２内の地理空間（要素）項を識別および選択してもよい。目標データ・アナライザ１０５は、ソース・データ１００内の自動的に選択された項（すなわち主キー）と、ジオコード化情報テーブル１０２内の選択された項（すなわち外部キー）との間に一致があるかどうかを判定するように構成される。ソース・データ１００内の選択された項と、ジオコード化情報テーブル１０２内の選択された項との間に見出された各々の一致に対して、一致する選択項に対する（ソース・データ１００およびジオコード化情報テーブル１０２内の）対応するテーブルが、たとえば結合データセット１０８内で結合される。
【００５０】
レポート・モデル１０１は、ソース・データ・アナライザ１０４によって分析されたソース・データ１００からの選択項（例、要素またはデータ）を表す（階層構造内の）高レベル・データによって拡張される。レポート・モデル・アナライザ１０６は、レポート・モデル１０１を読み取って包含関係、レベル属性、および物理データベース属性を定めるように構成される。たとえば、レポート・モデル１０１のモデル次元は、図２に示されるものなどの階層および属性を提供してもよい。
【００５１】
図２は、例示的実施形態に従うレポート・モデル１０１に基づくソース・データ階層２００の例を示す。この例において、レポート・モデル１０１はビジネスの階層を含むビジネス・モデルであり、（レポート・モデル・アナライザ１０６によって）この階層をソース・データ１００に整列させることによって、ソース・データ階層２００と呼び得るものが形成される。たとえば、レポート・モデル・アナライザ１０６はソース・データ階層２００を生成することによってレポート・モデル１０１を拡張するように構成され、かつレポート・モデル・アナライザ１０６はレポート・モデル１０１階層をソース・データ１００の選択項に（行方向に）整列させるように構成される。図２において、階層列２０５は（元の）レポート・モデル１０１の階層構造を示す。レベル列２１０は階層列２０５の異なるレベルを示し、ここで階層２０５の最高レベルはレベル０であり、最低レベルはレベル５である。ソース・テーブル列２１５は、レポート・モデル１０１が階層列２０５に含むのと同じ階層関係で、ソース・データ１００からのたとえばソース・ビジネス・データ（この例においては販売データ）などの対応するデータを示す。ソース・データ階層２００を生成するとき、レポート・モデル・アナライザ１０６はソース・データ１００の各項をレポート・モデル１０１の階層２０５およびレベル２１０に対応させて、レポート作成者１１０に対してソース・データ階層２００を（例、ディスプレイ４５上に）表示してもよい。一実施において、レポート・モデル・アナライザ１０６はレポート・モデル１０１を読み取ってソース・データ１００に対するメタデータ（すなわちそのデータに関するデータ）を得る。このメタデータは典型的にデータベース列またはフィールドの集合のための包含関係を定めるものであり、メタデータはさらに簡単な親−子関係および「ｉｓ  ａ（継承）」階層をも定め得る。図４は、典型的な包含もしくは「ｉｓ  ａ」階層またはその両方と、クエリに用いるためのソース・データ１００列名とを示す。たとえば「州」によって報告を構築するとき、レポート・モデル・アナライザ１０６は関連クエリにおいて「市」に対して集められた値を集合させるように構成される。同様のやり方で、レポート・モデル・アナライザ１０６は例示的実施形態に従ってどのように「州」を集合させて「地域」にし、「地域」を「国」にするかを知るように構成される。
【００５２】
レポート作成者１１０はユーザ・インタフェース５０を介して、（レポート・モデル１０１に対応する）ソース・データ１００からのさまざまな異なる項（要素）をジオコード化情報テーブル１０２に結合することをレポート・システム１０３に指示してもよい。付加的もしくは代替的に、またはその両方で、レポート・システム１０３は（レポート・モデル１０１に対応する）ソース・データ１００からのさまざまな異なる項（要素）をジオコード化情報テーブル１０２に自動的に結合するように構成される。こうして図２のソース・データ階層２００に示されるとおりにレポート・モデル１０１がソース・データ１００にリンクされたため、ソース・データ１００はジオコード化情報テーブル１０２に結合されて、列２０５の階層構造を利用する。（結合動作に対する）ソース・データがソース・データ１００からのものであり、目標データがジオコード化情報テーブル１０２からのものであるとき、結合動作のために要求されるデータを検索するために地理空間クエリ・ビルダ１０７が起動される。レポート・モデル１０１に整列させたソース・データ１００とジオコード化情報テーブル１０２の目標データとの結合の結果は、結合データセット１０８に入れられる。
【００５３】
地理空間クエリ・ビルダ１０７は、レポート・モデル１０１の階層列２０５を上下に移動する（それによってソース・テーブル列２１５を上下に移動する）ように構成され、かつ地理空間クエリ・ビルダ１０７はレポート・モデル１０１の階層２０５に基づいてソース・データ１００を操作するように構成される。
【００５４】
図２を参照すると、階層列２０５において、「国」は「州もしくは省またはその両方」を包含する。これは「国」が「州もしくは省またはその両方」の親であることを意味し、加えて「州もしくは省またはその両方」が「国」の子であることも意味する。「州／省」は「郡」を包含し、これは「州／省」が「郡」の親であり、「郡」が「州／省」の子であることを意味する。この階層２０５は「住所」を所有する「顧客」に達するまで続き、これは「顧客」が「住所」の親であり、「住所」が「顧客」の子であることを意味する。これらは階層２０５の包含関係（非集合性の関係である「顧客」対「住所」を除くすべての要素に対する）および「ｈａｓ（所有）」関係であり、列２１５に示されるとおり、レポート・モデル・アナライザ１０６によってソース・データ１００にも同じ包含関係および「ｈａｓ」関係が適用される。言い換えると、Ｕ．Ｓ．などの「販売．国」は、たとえばアラバマ、アラスカ…ニューヨークなどの多くの異なる「販売．州」を包含する。各「販売．州」は「販売．郡」を包含し、そこにはさまざまな異なる販売郡があってもよい。各「販売．郡」は、特定の販売郡を構成するさまざまな市であってもよい「販売．市」を包含する。各「販売．市」は「顧客．顧客」を包含し、これは特定の販売市にいる顧客の異なる名前／識別である。最後に、列２１５のソース・データ１００の階層において、「顧客．顧客」は「顧客．住所」を有し、これは「顧客．顧客」において挙げられた各顧客の住所である。ソース・テーブル．列２１５における各エントリは、そのエントリにおいて指示されている対応データである。たとえば、ソース・テーブル．列２１５における各エントリは、たとえば「販売．市」などの特定のエントリ内にある多数のソース・データ１００を含み得る。付加的もしくは代替的に、またはその両方で、ソース・テーブル．列２１５における各エントリは、そのエントリに対する特定のテーブルにリンクされてもよい。たとえば「販売．市」は、すべての対応する販売市を含むソース・データ１００内のテーブルにリンクされてもよい。
【００５５】
加えて、レポート・モデル１０１に対して、たとえば一般的に子要素を集合させる「ｃｏｎｔａｉｎｓ（包含）」関係および一般的に集合しない「ｈａｓ」関係などの２タイプの親−子関係が存在してもよいことに留意されたい。集合は一般的に、レポート・モデル１０１における親−子関係が「ｃｏｎｔａｉｎｓ」関係であるとき（たとえば州が市を包含するとき）に（本明細書において考察される地理空間クエリ・ビルダ１０７によって）可能にされる。「ｈａｓ」タイプの関係（たとえば顧客は住所を「所有（ｈａｓ）」する）は一般的に集合化されない。
【００５６】
図３に移って、図３は例示的実施形態に従う地理空間クエリ・ビルダ１０７処理のいくつかの例を示す。地理空間クエリ・ビルダ１０７は、ソース・データ１００、レポート・モデル１０１およびジオコード化情報テーブル１０２からの入力を受け取り、次いで、たとえ（地理空間レポート１０９に含めるためにレポート作成者１１０によって要求される）ソース・データ１００の項（単数または複数）がジオコード化情報テーブル１０２の項（単数または複数）とは違うタイプであっても、たとえソース・データ１００の要求される項（単数または複数）を直接の（主キーから外部キーへの）索引付けもしくは結合動作またはその両方に使用できなくても、クエリを構築して出力（地理空間レポート１０９に含められるか、または地理空間レポート１０９の部分となる）を提供するように構成される。
【００５７】
ソース・データ１００のソース・データおよびジオコード化情報テーブル１０２の目標データが同じ地理空間タイプおよび地理空間フォーマットであるとき、地理空間クエリ・ビルダ１０７によって（ソース・データ１００データベースおよびジオコード化情報テーブル１０２データベースに対する）データベース・クエリが直接生成され、レポート・システム１０３はそのクエリの結果を用いて、ソース・データ１００のビジネス・データをジオコード化情報テーブル１０２の対応するデータと組み合わせることによって地理空間レポート１０９を生成する。たとえば、ソース「顧客．ｌａｔＬｏｎｇ（ｈｈ．ｍｍ．ｍ）」１３０は、キー・タイプ「緯度／経度（Ｌａｔｉｔｕｄｅ／Ｌｏｎｇｉｔｕｄｅ）（ｈｈ．ｍｍ．ｍ）」１３２と同じタイプおよびフォーマットである。地理空間クエリ・ビルダ１０７は、ソース・データ１００のソース１３０に対応するジオコード化情報テーブル１０２の地理空間データ１３２を抽出するためにクエリ１３１を生成するように構成される。レポート・システム１０３はこの抽出された地理空間データ１３２を地理空間レポート１０９に含める。
【００５８】
ソース（ソース・データ１００）と目標データ（ジオコード化情報テーブル１０２）とが同じ地理空間タイプだが異なる地理空間フォーマットであるとき、地理空間クエリ・ビルダ１０７によってソース・タイプが変換され、次いでデータベース・クエリが生成される。たとえば、ソース「顧客．ｌａｔＬｏｎｇ（ｈｈ．ｍｍ．ｍ）」１３０がキー・タイプ「緯度／経度（ｈｈ．ｍｍ．ｓｓ）」１３４と同じタイプだが異なるフォーマットであるとき、地理空間クエリ・ビルダ１０７はソース１３０をｈｈ．ｍｍ．ｓｓに変換してクエリ１３３を生成するように構成される。クエリ１３３は、地理空間レポート１０９の生成に含ませるための、ソース・データ１００のソース１３０に対応するジオコード化情報テーブル１０２からの地理空間データ１３４を抽出する。
【００５９】
ソースおよび目標データが異なる地理空間タイプであるとき、地理空間クエリ・ビルダ１０７は、（ビジネス・モデル）ソース・データ階層２００（または下に考察される４００）からの代替の親もしくは子またはその両方のメンバを置換し、これらの代替の親もしくは子またはその両方のメンバを用いてクエリを構築するように構成される。その例を以下に説明する。
【００６０】
第１の例は、図２のソース・データ階層２００に示されるレポート・モデル１０１階層の同じレベル（たとえば図２の階層レベル２１０など）での変換である。「顧客．住所」１３５は、テキストの住所を保持するストリング・タイプである。キー・タイプ「緯度／経度」（ｈｈ．ｍｍ．ｍ）１３２は、ｈｈ．ｍｍ．ｍフォーマットの緯度／経度である。「顧客．住所」１３５は（ソース列２１５において）レポート・モデル１０１階層におけるリーフ・メンバであるため、地理空間クエリ・ビルダ１０７は子を集合させず、したがって緯度／経度に変換してクエリ１３６を生成できる。次のように取り扱われる地理空間点である住所要素（「顧客．住所」など）のシナリオを考える。「顧客．住所」データベース列からのテキスト道路住所値がジオコード化されて、各住所値に対する緯度／経度座標対として表される地理空間点が生成される。この座標対は、座標フォーマット変換（たとえばｈｈ．ｍｍ．ｍからｈｈ  ｍｍ  ｓｓなど）のみが任意に必要とされる地理空間点によってキー付けされたあらゆる目標データ・ソースのクエリを直接行うために使用され得る。目標データ・ソースが地理空間区域によってキー付けされており、単純な点または一致しない２つの地理空間区域ではないとき、一致する地理空間区域への変換が必要であり、これは地理空間クエリ・ビルダ１０７によって達成できる。このタイプの変換は、目標地理空間区域がレポート・モデル１０１における親要素に関連しているときに（地理空間クエリ・ビルダ１０７によって）可能である。たとえば、「住所」は地理空間親の「市」および「州」を有する。関連区域がソース座標対を含むとき、これらの地理空間キーのいずれかが用いられてもよい。たとえば、ソース座標対が「テキサス」と名付けられた地理空間区域の「中」に位置すると判断されるときは、「州」＝「テキサス」が用いられてもよい。あるものが完全に親の中に包含されている異なる区域に対しても同様の動作が有効である。
【００６１】
第２の例は、ソース・データ階層２００における子メンバ（要素）への変換である。「販売．郡」１３７は、テキストの郡名を保持するストリング・タイプである。キー・タイプ「市名」１３９はテキストの市名である。「販売．郡」はその階層（図２）において「販売．市」を包含するため、地理空間クエリ・ビルダ１０７は「販売．郡」のすべての子市を集合させてクエリ１３８を生成するように構成される。クエリ１３８（「販売．市」に等しいすべての子市を有する）をレポート・システム１０３が用いることによって、ジオコード化情報テーブル１０２から「市名」１３９に対する対応データを抽出して地理空間レポート１０９を生成する。
【００６２】
第３の例は、図２に示されるソース・データ階層２００における親メンバ（要素）への変換である。「販売．市」１４０は、テキストの市名を保持するストリング・タイプである。キー・タイプ「郡名」１４２はジオコード化情報テーブル１０２内のテキストの郡名である。「販売．郡」はその階層（図２）において「販売．市」の親であるため、地理空間クエリ・ビルダ１０７は親の名（「販売．郡」）への変換を行い、その親の名を用いてクエリ１４１を生成するように構成される。（親郡の）クエリ１４１をレポート・システム１０３が用いることによって、ジオコード化情報テーブル１０２における「郡名」１４２に対する対応データを抽出する。
【００６３】
上記の例において説明した変換の各々は、地理空間システムに存在する何百ものフォーマットに適用可能である。このプロセスによって、どの変換が有効かを調停するためにレポート・モデル１０１を用いて、レポート・システム１０３において変換が自動的に処理される。
【００６４】
上に考察したとおり、地理空間データを結合するためのデータベース・キー（すなわち項）は、レポート・モデル１０１階層に基づくソース・データ階層２００におけるそのキーの相対位置に基づいて、地理空間クエリ・ビルダ１０７によって自動的に生成される。図２に示されるとおり、以下の階層を有するレポート・モデル１０１を考える。
国
［ｃｏｎｔａｉｎｓ］
州／省
［ｃｏｎｔａｉｎｓ］
郡
［ｃｏｎｔａｉｎｓ］
市
［ｃｏｎｔａｉｎｓ］
顧客
［ｈａｓ］
住所。
【００６５】
（地理空間情報テーブル１０２の）目標テーブルがソース・データ１００の親（要素）メンバ識別子によってキー付けされているときは、レポート・システム１０３の地理空間クエリ・ビルダ１０７を介して、このレポート・モデル１０１階層を用いて子メンバ（要素）を親メンバ（要素）に変換できる。
【００６６】
ソース・データ階層２００の次元レポート・モデルから以下の関係が得られるときの、地理空間クエリ・ビルダ１０７が適用できる自動変換のタイプのいくつかのさらなる例がここにある。たとえば、顧客「Ａ」は国「Ｚ」の州「Ｙ」の郡「Ｘ」の市「Ｗ」の住所「Ｖ」に住んでいると仮定する。
【００６７】
地理空間クエリ・ビルダ１０７によって、顧客Ａに対する参照は、住所Ｖを用いてその住所に対する緯度／経度ＡＡを作成できる。たとえば、地理空間クエリ・ビルダ１０７は住所Ｖに対する緯度／経度を検索してもよい。ジオコード化情報テーブル１０２が緯度／経度によってキー付けされているとき、地理空間クエリ・ビルダ１０７は結果として得られた緯度／経度ＡＡを用いてジオコード化情報テーブル１０２に結合できる。加えて地理空間クエリ・ビルダ１０７は、異なる緯度／経度フォーマットを自動的に変換するように構成される。たとえば、地理空間クエリ・ビルダ１０７はｈｈｈ．ｍｍ．ｍｍｍとｈｈ°ｍｍ’ｓｓ”｛Ｎ｜Ｓ｜Ｅ｜Ｗ｝との間の変換を行い得る。地理空間クエリ・ビルダ１０７は緯度／経度から住所への自動変換（すなわち逆ジオコード化）を行うように構成され、次いでこの住所は住所によってキー付けされているあらゆるジオコード化情報テーブル１０２に対するキーとして用いられ得る。地理空間クエリ・ビルダ１０７は、異なる住所フォーマットを自動的に変換するように構成される。地理空間クエリ・ビルダ１０７は、異なる名前もしくはエイリアスまたはその両方のフォーマットを自動的に変換するように構成される。たとえば地理空間クエリ・ビルダ１０７は、たとえばデータベース１１５におけるＣＡのルックアップを行うことなどによって、適切な状況においてカリフォルニアはＣＡと同等であることを認識するように構成される。
【００６８】
ジオコード化情報テーブル１０２が親メンバ値によってキー付けされているとき、地理空間クエリ・ビルダ１０７がソース・データ階層２００のソース・テーブル．列２１５を上方に移動することによって、顧客Ａに対する参照はあらゆる親メンバ値を使用できる。地理空間レポート１０９を生成するためのソース・データ１００内の所望の情報が主キーではない子メンバであると仮定すると、地理空間クエリ・ビルダ１０７はソース・データ階層２００を上方に移動することによって、ジオコード化情報テーブル１０２に対するキーとして用いられ得る親メンバを見出すように構成される。たとえば、もしレポート作成者１１０が顧客Ａの名前によって（複数の顧客を表す）顧客Ａに対する（テーブル１０２からの）地理空間情報を要求したが顧客Ａの名前はジオコード化情報テーブル１０２に対するキーではなかったとしても、顧客Ａは（地理空間クエリ・ビルダ１０７によって）特定のロケータ・キーが「市」＝Ｗ、「郡」＝Ｘ、「州」＝Ｙもしくは「国」＝Ｚ、またはその組み合わせであるジオコード化情報テーブル１０２の外部テーブルに自動的に結合され得る。
【００６９】
加えて、地理空間クエリ・ビルダ１０７は、親メンバ（要素）を下方の子メンバ（ジオコード化された要素）に変換するように構成され、この子メンバはジオコード化情報テーブル１０２に対するキーとして使用可能である。なぜなら、（地理空間レポート１０９に用いるためにレポート作成者１１０によって要求される）親メンバは、ジオコード化情報テーブル１０２への結合に使用できる主キーではないからである。たとえば、「市」＝Ｗ、「郡」＝Ｘ、「州」＝Ｙもしくは「国」＝Ｚ、またはその組み合わせは、ジオコード化情報テーブルが緯度／経度によってキー付けされているときには、（地理空間クエリ・ビルダ１０７によって）それらの地理的中心における緯度／経度に変換されてもよい。
【００７０】
本明細書において言及されるとおり、ジオコード化情報テーブル１０２が子メンバ値によってキー付けされているときは、地理空間クエリ・ビルダ１０７は（親メンバの）すべての包含される子を集合させるように構成される。たとえば、ジオコード化情報テーブル１０２が郡によってキー付けされているときは、地理空間クエリ・ビルダ１０７によって「州」＝Ｙがすべての包含される郡＝｛Ｘ１，Ｘ２，Ｘ３，…Ｘｎ｝の和集合となる。
【００７１】
さらに、地理空間点および距離計算値を任意に追加するために上記の変換のいずれかを用いてもよい。たとえば地理空間クエリ・ビルダ１０７は、緯度／経度位置＋半径５マイル（約８ｋｍ）を要求すること、市「Ｗ」の外側端縁の３マイル（約４．８ｋｍ）以内を要求すること、郡「Ｘ」に隣接するすべての郡を要求することなどのために構成される。
【００７２】
目標データ・アナライザ１０５は、ジオコード化情報テーブル１０２への結合のための（外部）キーとして用いられ得るすべての可能な項をジオコード化情報テーブル１０２内に見出すように構成されているため、地理空間クエリ・ビルダ１０７はソース・データ階層２００関係を上下に移動して、ソース・データ１００内の適切な一致する（主）キーを見出すことができる。レポート・モデル・アナライザ１０６は、レポート・モデル１０１の階層構造に対してソース・データ１００を対応付ける（整列させる）ことによってソース・データ階層２００を構築する。ソース・データ階層２００はソース・データ１００内の階層関係を地理空間クエリ・ビルダ１０７が定めることを可能にし、ソース・データ階層２００なしでは、地理空間クエリ・ビルダ１０７は変換可能である親子関係を認識できない。
【００７３】
図４は、例示的実施形態に従ってレポート・モデル１０１に基づいてレポート・モデル・アナライザ１０６によって自動的に作成されたソース・データ階層４００の別の例である。ソース・データ階層４００のレポート・モデル１０１において、階層列４０５は、「国」が「地域」を包含し、「地域」が「州」を包含し、「州」が「市」を包含し、「市」が「顧客」を包含し、「顧客」が「住所」を有することを示す。レポート・モデル・アナライザ１０６は、たとえばソース・データ・アナライザ１０４とともに、ソース・データ１００に対するソース・データをレポート・モデル１０１の階層構造の各レベルに自動的に整列させるように構成されることによって、地理空間クエリ・ビルダ１０７が包含関係（すなわち親子関係）を利用できるようにする。たとえば、レポート作成者１１０は地理空間クエリ・ビルダ１０７に対して、「東部販売．地域」である東部地域におけるすべての顧客に対する販売を合計し、かつ「東部販売．地域」における顧客の所得データを提供するよう指示してもよい。地理空間所得データはジオコード化情報テーブル１０２内にあるが、ジオコード化情報テーブル１０２は東部地域、西部地域もしくはいずれかの地域またはその組み合わせによってキー付けされていない。しかし、レポート作成者１１０は「東部販売．地域」における顧客に対する所得データを提供するために地理空間レポート１０９を生成させる必要がある。
【００７４】
レポート作成者１１０の要求とは異なる項によってジオコード化情報テーブル１０２がキー付けされているときはいつも、地理空間クエリ・ビルダ１０７はソース・データ階層４００を上下に移動することによってソース・データ１００の項をジオコード化情報テーブル１０２内のキー（単数または複数）に自動的に変換するように構成され、次いで抽出されたデータによって、地理空間クエリ・ビルダ１０７は要求どおりに地理空間レポート１０９を生成する。目標データ・アナライザ１０５がすべての可能な目標（外部）キーを見出すためにジオコード化情報テーブル１０２を予め解析したために、ジオコード化情報テーブル１０２が目標データ・アナライザ１０５に定められたとおりに「市」によってキー付けされていると仮定する。ソース・データ・アナライザ１０４は、「販売．市」がソース・データ１００における主キー（項）であると判断する。したがって地理空間クエリ・ビルダ１０７は「販売．市」（すなわちそれが表す単数または複数の市）をジオコード化情報テーブル１０２内の「市」（外部キー）に自動的に結合する。ここで、ソース・データ階層４００内の「東部販売．州」を包含する「東部販売．地域」に基づいて、地理空間クエリ・ビルダ１０７は、たとえばニューヨーク州、ニュージャージー州、バージニア州などであってもよい個々の「東部販売．州」をすべて集合させるように構成される。「東部販売．市」を包含する「東部販売．州」に基づいて、地理空間クエリ・ビルダ１０７はニューヨーク州、ニュージャージー州、バージニア州などにある個々の販売市をすべて集合させるように構成され、その個々の販売市はＪ、Ｋ、Ｌ、ＭおよびＮであってもよい。個々の市すべてが集合すると、地理空間クエリ・ビルダ１０７は結合されたジオコード化情報テーブル１０２から個々の市各々に対する地理空間データ（この例においては地理空間所得データ）を抽出するように構成される。ジオコード化情報テーブル１０２が「東部販売．地域」によってキー付けされていないにもかかわらず、（各「東部販売．市」に対する）この地理空間所得データは「東部販売．地域」に対する地理空間レポート１０９に含まれる。「東部販売．地域」は地理的位置のあらゆる任意のグループ化であり得るため、地理空間クエリ・ビルダ１０７はこの任意のグループ化に対する子メンバを定めるように構成され、その子メンバはジオコード化情報テーブル１０２に対する１つまたはそれ以上のキーであり得る。
【００７５】
例示的実施形態のさらなる特徴は、レポート・システム１０３がレポート・モデル１０１を用いてソース・データ１００をレポート・モデル１０１の階層構造に整列させているため、データをソース・データ１００データベースに入力するときに予め分類する必要がないことである。たとえば「東部販売．地域」が「西部販売．地域」または「南部販売．地域」と相対することなどを識別する必要なく、多くの異なる「顧客．住所」を入力できる。たとえば、地理空間クエリ・ビルダ１０７は顧客に対する個々の住所を解析して、その顧客がどの販売市に位置するかを定めるように構成される。地理空間クエリ・ビルダ１０７は（ソース・データ・アナライザ１０４とともに）ソース・データ１００を解析して「東部販売．市」を定め、この顧客が「東部販売．市」にいることを認識することができ、ソース・データ階層４００は地理空間クエリ・ビルダ１０７に対して、「東部販売．市」が「東部販売．地域」に包含されることを通知する。ビジネス決定としてたとえば「東部販売．地域」が「南部販売．地域」に変更されるとき、個々の顧客各々を「南部販売．地域」として再分類する必要はない。その代わりに、ソース・テーブル列４１５において「東部販売．地域」を「南部販売．地域」に置換することによって、前に「東部販売．地域」にいた各顧客が地理空間クエリ・ビルダ１０７によって「南部販売．地域」に集合させられてもよい。
【００７６】
図５は、例示的実施形態に従って地理空間レポート１０９を生成するために結合動作を自動的に行うための方法５００を示す。動作５０５において、レポート・システム１０３はソース・データ１００を受け取る。動作５１０において、レポート・システム１０３はレポート・モデル１０１を受け取り、レポート・モデル１０１は階層構造を含む。動作５１５において、レポート・システム１０３はレポート・モデル１０１の階層構造にソース・データ１００を整列させてソース・データ階層（たとえばソース・データ階層２００もしくは４００またはその両方など）を形成する。動作５２０において、レポート・システム１０３はソース・データ階層に基づいてソース・データ１００をジオコード化情報テーブル１０２に結合する。ジオコード化情報テーブル１０２へのソース・データ１００のこの結合によって、レポート・システム１０３は、ソース・データ１００に対する地理空間レポート１０９の生成にジオコード化情報テーブル１０２からの地理空間データを使用できる。
【００７７】
図６は、例示的実施形態に含まれ得る、能力を有するコンピュータ６００の例を示す。本明細書において考察されるさまざまな方法、手順、モジュール、流れ図、ツール、アプリケーションおよび技術は、コンピュータ６００の能力をも取り入れるか、もしくは使用するか、またはその両方であってもよい。さらに、本明細書において考察される例示的実施形態の特徴を実現するためにコンピュータ６００の能力が用いられてもよい。コンピュータ６００の能力の１つまたはそれ以上は、コンピュータ５もしくはサーバＡ、Ｂ、ＣおよびＤまたはその両方を含む、本明細書において考察されるあらゆる構成要素を実現してもよい。
【００７８】
一般的に、ハードウェア・アーキテクチャの観点から、コンピュータ６００は１つまたはそれ以上のプロセッサ６１０と、コンピュータ読取り可能記憶装置メモリ６２０と、１つまたはそれ以上の入力もしくは出力または入出力（ｉｎｐｕｔ  ａｎｄ／ｏｒ  ｏｕｔｐｕｔ：Ｉ／Ｏ）デバイス６７０とを含んでもよく、それらはローカル・インタフェース（図示せず）を介して通信的に結合される。ローカル・インタフェースは、当該技術分野において公知であるとおり、たとえば１つもしくはそれ以上のバス、またはその他のワイヤードもしくはワイヤレス接続などであってもよいがそれに限定されない。ローカル・インタフェースは、通信を可能にするために、たとえばコントローラ、バッファ（キャッシュ）、ドライバ、リピータおよびレシーバなどの付加的な構成要素を有してもよい。さらにローカル・インタフェースは、前述の構成要素間の適切な通信を可能にするためにアドレス、制御もしくはデータ接続またはその組み合わせを含んでもよい。
【００７９】
プロセッサ６１０は、メモリ６２０に保存され得るソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ６１０は実質的に、あらゆる特別注文もしくは商業的に入手可能なプロセッサ、中央処理ユニット（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：ＣＰＵ）、データ信号プロセッサ（ｄａｔａ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ：ＤＳＰ）、またはコンピュータ６００に関連するいくつかのプロセッサの中の補助プロセッサであってもよく、プロセッサ６１０は（マイクロチップの形の）半導体に基づくマイクロプロセッサまたはマクロプロセッサであってもよい。
【００８０】
コンピュータ読取り可能メモリ６２０は、揮発性記憶素子（例、ランダム・アクセス・メモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）、たとえば動的ランダム・アクセス・メモリ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＤＲＡＭ）、静的ランダム・アクセス・メモリ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＳＲＡＭ）など）および不揮発性記憶素子（例、ＲＯＭ、消去可能プログラマブル・リード・オンリ・メモリ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：ＥＰＲＯＭ）、電気的消去可能プログラマブル・リード・オンリ・メモリ（ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：ＥＥＰＲＯＭ）、プログラマブル・リード・オンリ・メモリ（ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：ＰＲＯＭ）、テープ、コンパクト・ディスク・リード・オンリ・メモリ（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：ＣＤ−ＲＯＭ）、ディスク、ディスケット、カートリッジ、カセットなど）のいずれか１つまたはその組み合わせを含んでもよい。さらに、メモリ６２０は電子的、磁気的、光学的もしくはその他のタイプまたはその組み合わせの記憶媒体を組み込んでもよい。なお、メモリ６２０は、さまざまな構成要素が互いに離れて位置するがプロセッサ６１０によってアクセスされ得る分散アーキテクチャを有してもよい。
【００８１】
コンピュータ読取り可能メモリ６２０内のソフトウェアは１つまたはそれ以上の別個のプログラムを含んでもよく、各々のプログラムは論理機能を実施するために実行可能な命令の順序付きリストを含む。メモリ６２０内のソフトウェアは、好適なオペレーティング・システム（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ：Ｏ／Ｓ）６５０と、コンパイラ６４０と、ソース・コード６３０と、例示的実施形態の１つまたはそれ以上のアプリケーション６６０とを含む。示されるとおり、アプリケーション６６０は例示的実施形態の特徴、プロセス、方法、機能および動作を実現するための多数の機能構成要素を含む。コンピュータ６００のアプリケーション６６０は、本明細書において考察されるとおり、多数のアプリケーション、エージェント、ソフトウェア構成要素、モジュール、インタフェース、コントローラなどを表してもよいが、アプリケーション６６０は限定となることは意味しない。
【００８２】
オペレーティング・システム６５０は他のコンピュータ・プログラムの実行を制御して、スケジューリング、入出力制御、ファイルおよびデータ管理、メモリ管理、ならびに通信制御および関連サービスを提供してもよい。
【００８３】
アプリケーション（単数または複数）６６０はサービス指向アーキテクチャを用いてもよく、それは互いに通信するサービスの集合であってもよい。加えて、サービス指向アーキテクチャは２つまたはそれ以上のサービスが協調するか、もしくは（例、互いの代わりに）活動を行うか、またはその両方を行うことを可能にする。サービス間の各対話は独立型および疎結合であることによって、各対話はあらゆる他の対話とは独立していてもよい。
【００８４】
さらに、アプリケーション６６０はソース・プログラム、実行可能プログラム（オブジェクト・コード）、スクリプト、または実行されるべき命令の組を含むあらゆるその他のエンティティであってもよい。ソース・プログラムのとき、次いでそのプログラムは通常、Ｏ／Ｓ６５０に関連して適切に動作するように、メモリ６２０内に含まれていてもいなくてもよいコンパイラ（たとえばコンパイラ６４０など）、アセンブラ、インタープリタなどを介して変換される。さらに、アプリケーション６６０は（ａ）データおよび方法のクラスを有するオブジェクト指向プログラミング言語、または（ｂ）ルーチン、サブルーチンもしくは関数またはその組み合わせを有する手続き型プログラミング言語として書かれてもよい。
【００８５】
Ｉ／Ｏデバイス６７０は、たとえばマウス、キーボード、スキャナ、マイクロホン、カメラなどであるがそれに限定されない入力デバイス（または周辺装置）を含んでもよい。Ｉ／Ｏデバイス６７０はさらに、たとえばプリンタ、ディスプレイなどであるがそれに限定されない出力デバイス（または周辺装置）を含んでもよい。最後に、Ｉ／Ｏデバイス６７０は、たとえば（遠隔デバイス、他のファイル、デバイス、システムまたはネットワークにアクセスするための）ＮＩＣまたは変調装置／復調装置、無線周波数（ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ：ＲＦ）またはその他のトランシーバ、電話インタフェース、ブリッジ、ルータなどであるがそれに限定されない、入力および出力の両方を通信するデバイスをさらに含んでもよい。加えてＩ／Ｏデバイス６７０は、たとえばインターネットまたはイントラネットなどのさまざまなネットワーク上を通信するための構成要素を含む。Ｉ／Ｏデバイス６７０は、Ｂｌｕｅｔｏｏｔｈ（Ｒ）接続および（たとえばユニバーサル・シリアル・バス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ：ＵＳＢ）ポート、シリアル・ポート、パラレル・ポート、ファイアワイヤ、ＨＤＭＩ（高品位マルチメディア・インタフェース（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ））などを介した）ケーブルを用いて、プロセッサ１０５に接続されるか、もしくはプロセッサ１０５と通信するか、またはその両方であってもよい。
【００８６】
コンピュータ６００が動作中のとき、プロセッサ６１０はメモリ６２０内に保存されるソフトウェアを実行し、メモリ６２０とデータを通信し、一般的にはそのソフトウェアに従ってコンピュータ６００の動作を制御するように構成される。アプリケーション６６０およびＯ／Ｓ６５０は、プロセッサ６１０によって全体的または部分的に読み取られ、ときにはプロセッサ６１０内にバッファリングされてから実行される。
【００８７】
アプリケーション６６０がソフトウェアにおいて実現されるとき、アプリケーション６６０は、あらゆるコンピュータ関連システムまたは方法による使用またはそれに関連する使用のための、実質的にあらゆるコンピュータ読取り可能記憶媒体に保存され得ることに留意すべきである。本文書の状況において、コンピュータ読取り可能記憶媒体は、コンピュータ関連システムまたは方法による使用またはそれに関連する使用のためのコンピュータ・プログラムを包含または保存できる電子、磁気、光学、またはその他の物理デバイスまたは手段であってもよい。
【００８８】
アプリケーション６６０は、命令実行システム、装置、サーバまたはデバイスによる使用、またはそれに関連する使用のためのあらゆるコンピュータ読取り可能媒体６２０、たとえばコンピュータに基づくシステム、プロセッサを含むシステム、または命令実行システム、装置もしくはデバイスから命令をフェッチしてその命令を実行できるその他のシステムなどにおいて具現化されてもよい。本文書の状況において、「コンピュータ読取り可能記憶媒体」は、命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを保存、読取り、書込み、通信または移送できるあらゆる手段であってもよい。コンピュータ読取り可能媒体は、たとえば電子、磁気、光学または半導体のシステム、装置またはデバイスなどであってもよいがそれに限定されない。
【００８９】
コンピュータ読取り可能媒体６２０のより特定的な例（非網羅的リスト）は以下を含む。すなわち１つまたはそれ以上のワイヤを有する電気的接続（電子）、ポータブル・コンピュータ・ディスケット（磁気または光学）、ランダム・アクセス・メモリ（ＲＡＭ）（電子）、リード・オンリ・メモリ（ＲＯＭ）（電子）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭ、ＥＥＰＲＯＭまたはフラッシュ・メモリ）（電子）、光ファイバ（光学）、およびポータブル・コンパクト・ディスク・メモリ（ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ）（光学）である。なお、コンピュータ読取り可能媒体は、プログラムが印刷または穿孔された紙または別の好適な媒体であってもよい。なぜなら、たとえばその紙または他の媒体の光学的走査などを介してプログラムを電子的に捕捉して、必要であればコンパイルするか、翻訳するか、または別様に好適な態様で処理してからコンピュータ・メモリに保存できるからである。
【００９０】
例示的実施形態において、アプリケーション６６０がハードウェアにおいて実現されるとき、アプリケーション６６０は各々が当該技術分野において周知である以下の技術のいずれか１つまたは組み合わせによって実現されてもよい。すなわち、データ信号に対して論理関数を実現するための論理ゲートを有する個別論理回路（単数または複数）、適切な組み合わせ論理ゲートを有する特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ：ＡＳＩＣ）、プログラマブル・ゲート・アレイ（単数または複数）（ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ（ｓ）：ＰＧＡ）、フィールド・プログラマブル・ゲート・アレイ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ：ＦＰＧＡ）などである。
【００９１】
コンピュータ６００は、本明細書において考察されるさまざまなデバイス、サーバおよびシステムに含まれ得るソフトウェアおよびハードウェア構成要素の非限定的な例を含むことが理解され、例示的実施形態において考察されるさまざまなデバイスおよびシステムには付加的なソフトウェアおよびハードウェア構成要素が含まれ得ることが理解される。
【００９２】
当業者に認識されるとおり、本発明の側面はシステム、方法またはコンピュータ・プログラム製品として具現化されてもよい。したがって本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアおよびハードウェアの側面を組み合わせた実施形態の形を取ってもよく、本明細書においてこれらはすべて一般的に「回路」、「モジュール」または「システム」と呼ばれることがある。さらに、本発明の側面は、媒体において具現化されるコンピュータ読取り可能プログラム・コードを有する１つまたはそれ以上のコンピュータ読取り可能媒体（単数または複数）において具現化されるコンピュータ・プログラム製品の形を取ってもよい。
【００９３】
１つまたはそれ以上のコンピュータ読取り可能媒体（単数または複数）のあらゆる組み合わせが使用されてもよい。コンピュータ読取り可能媒体は、コンピュータ読取り可能信号媒体またはコンピュータ読取り可能記憶媒体であってもよい。コンピュータ読取り可能記憶媒体は、たとえば電子、磁気、光学、電磁気、赤外、または半導体のシステム、装置、もしくはデバイス、または前述のもののあらゆる好適な組み合わせなどであってもよいがそれに限定されない。コンピュータ読取り可能記憶媒体のより特定的な例（非網羅的なリスト）は以下を含む。すなわち、１つまたはそれ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、または前述のもののあらゆる好適な組み合わせである。本文書の状況において、コンピュータ読取り可能記憶媒体は、命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを含有または保存できるあらゆる有形の媒体であってもよい。
【００９４】
コンピュータ読取り可能信号媒体は、たとえばベースバンド内で、または搬送波の部分などとして媒体内で具現化されるコンピュータ読取り可能プログラム・コードを有する伝播データ信号を含んでもよい。こうした伝播信号は、電磁気信号、光学信号、またはそのあらゆる好適な組み合わせを含むがそれに限定されないさまざまな形のいずれかを取ってもよい。コンピュータ読取り可能信号媒体は、コンピュータ読取り可能記憶媒体ではなく、かつ命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを通信、伝播または移送できるあらゆるコンピュータ読取り可能媒体であってもよい。
【００９５】
コンピュータ読取り可能媒体において具現化されるプログラム・コードは、ワイヤレス、ワイヤライン、光ファイバ・ケーブル、ＲＦなど、または前述のもののあらゆる好適な組み合わせを含むがそれに限定されないあらゆる適切な媒体を用いて送信されてもよい。
【００９６】
本発明の側面に対する動作を行うためのコンピュータ・プログラム・コードは、オブジェクト指向プログラミング言語、たとえばＪａｖａ（商標）、Ｓｍａｌｌｔａｌｋ（商標）、Ｃ＋＋など、および従来の手続き型プログラミング言語、たとえば「Ｃ」プログラミング言語または類似のプログラミング言語などを含む、１つまたはそれ以上のプログラミング言語のあらゆる組み合わせで書かれていてもよい。プログラム・コードは、すべてがユーザのコンピュータで実行されてもよいし、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモート・コンピュータで実行されてもよいし、すべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＬＡＮ）または広域ネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＷＡＮ）を含むあらゆるタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、（たとえば、インターネット・サービス・プロバイダを用いてインターネットを通じて）外部コンピュータへの接続が行われてもよい。
【００９７】
上述のとおり、実施形態はコンピュータに実現されるプロセスおよびそれらのプロセスを実行するための装置の形で具現化され得る。例示的実施形態において、本発明は、１つまたはそれ以上のネットワーク構成要素によって実行されるコンピュータ・プログラム・コードにおいて具現化される。実施形態は、図７に示されるとおりのコンピュータ読取り可能（使用可能）記憶媒体７０２上のコンピュータ・プログラム製品７００を含み、これは製造品として有形の媒体において具現化される命令を含むコンピュータ・プログラム・コード論理７０４を有する。コンピュータ使用可能媒体７０２に対する例示的製造品は、フロッピー（Ｒ）ディスケット、ＣＤ−ＲＯＭ、ハード・ドライブ、ユニバーサル・シリアル・バス（ＵＳＢ）フラッシュ・ドライブ、またはあらゆるその他のコンピュータ読取り可能記憶媒体を含んでもよく、コンピュータ・プログラム・コード論理７０４がコンピュータにロードされてコンピュータによって実行されるとき、そのコンピュータは本発明を実行するための装置となる。実施形態が含むコンピュータ・プログラム・コード論理７０４は、たとえば記憶媒体に保存されるか、コンピュータにロードされるか、もしくはコンピュータによって実行されるか、またはその組み合わせであるか、または何らかの送信媒体、たとえば電気配線もしくはケーブル、光ファイバまたは電磁放射などを通じて送信され、コンピュータ・プログラム・コード論理７０４がコンピュータにロードされてコンピュータによって実行されるとき、そのコンピュータは本発明を実行するための装置となる。汎用マイクロプロセッサにおいて実現されるとき、コンピュータ・プログラム・コード論理７０４セグメントは特定の論理回路を作成するようにマイクロプロセッサを構成する。
【００９８】
本明細書においては、本発明の実施形態に従う方法、装置（システム）およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方を参照して、本発明の側面が説明される。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実現され得ることが理解されるだろう。これらのコンピュータ・プログラム命令が、汎用コンピュータもしくは特定目的のコンピュータのプロセッサ、またはマシンを生成するためのその他のプログラマブル・データ処理装置に与えられることによって、そのコンピュータのプロセッサまたはその他のプログラマブル・データ処理装置を介して実行された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能／動作を実現するための手段を作成するようにしてもよい。
【００９９】
これらのコンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置またはその他のデバイスに特定の態様で機能するよう指示できるコンピュータ読取り可能媒体の中に保存されることによって、コンピュータ読取り可能媒体に保存された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能／動作を実現する命令を含む製造品を生成するようにしてもよい。
【０１００】
さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置またはその他のデバイスにロードされることによって、そのコンピュータ、その他のプログラマブル装置またはその他のデバイスにおいて一連の動作ステップを行わせることにより、コンピュータまたはその他のプログラマブル装置において実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能／動作を実現するためのプロセスを提供するような、コンピュータに実現されるプロセスを生成してもよい。
【０１０１】
本明細書において用いられる用語は特定の実施形態を説明する目的のためのみのものであって、本発明を限定することは意図されない。本明細書において用いられる単数形「ａ」、「ａｎ」および「ｔｈｅ」は、状況が明らかに別様を示していない限り、複数形をも含むことが意図される。さらに、「含む（ｃｏｍｐｒｉｓｅｓ）」もしくは「含む（ｃｏｍｐｒｉｓｉｎｇ）」という用語またはその両方が本明細書において用いられるとき、それは述べられる特徴、完全体、ステップ、動作、構成要素もしくは成分、またはその組み合わせの存在を特定するが、１つまたはそれ以上の他の特徴、完全体、ステップ、動作、構成要素、成分もしくはその群、またはその組み合わせの存在または追加を排除するものではないことが理解されるだろう。
【０１０２】
添付の特許請求の範囲におけるすべてのミーンズまたはステップ・プラス・ファンクション要素に対応する構造、材料、動作、および同等物は、特定的に請求される他の請求要素と組み合わせてその機能を行うためのあらゆる構造、材料または動作を含むことが意図される。本発明の説明は例示および説明の目的のために提供されたものであるが、網羅的になったり、開示される形に本発明を制限したりすることは意図されない。本発明の範囲および趣旨から逸脱することなく、通常の当業者には多くの修正および変更が明らかになるだろう。実施形態は、本発明の原理および実際の適用を最も良く説明し、他の通常の当業者が予期される特定の使用に好適であるようなさまざまな修正を伴うさまざまな実施形態に対して本発明を理解できるようにするために選択されて記載されたものである。
【０１０３】
本明細書に示される流れ図は単なる一例である。本発明の趣旨から逸脱することなく、この図面またはそこに記載されるステップ（もしくは動作）に対する多くの変形が存在し得る。たとえば、それらのステップが異なる順序で行われてもよいし、ステップが追加、削除または修正されてもよい。これらの変形はすべて、請求される発明の部分とみなされる。
【０１０４】
本発明の例示的実施形態を説明したが、現在および将来にわたり、当業者が請求項の範囲内のさまざまな改善および強化を行い得ることが理解されるだろう。
【図１】
0005856618.tif 000008
【図２】
0005856618.tif 000009
【図３】
0005856618.tif 000010
【図４】
0005856618.tif 000011
【図５】
0005856618.tif 000012
【図６】
0005856618.tif 000013
【図７】
0005856618.tif 000014