(57)【特許請求の範囲】
【請求項１】
時間領域内の時間／空間データを保管するデータベースからの空間データの自動抽出のための方法であって、
前記データベースを含むサーバ・コンピュータが、空間照会を行うための第１の関数および前記第１の関数の引数として機能する第２の関数を含む空間照会を受け取るステップであって、前記第２の関数が１つまたは複数のオブジェクトの各々についての１組の時間値を識別し、前記１組の時間値が対応するオブジェクトの時系列データを含み、前記時系列データが各時間における前記対応するオブジェクトの緯度値および経度値を提供し、前記第２の関数の出力が１つまたは複数の空間オブジェクトである、ステップと、
前記サーバ・コンピュータが、前記第２の関数を処理するステップであって、
（１）前記第２の関数によって識別された前記１組の時間値を前記データベースから取り出すステップ、
（２）前記１つまたは複数のオブジェクトの各々について、前記データベースから取り出された前記１組の時間値から、前記緯度値および前記経度値を含む地理的位置を抽出するステップ、
（３）前記地理的位置から前記緯度値および前記経度値を指定するポイント・オブジェクトを生成するステップ、
（４）前記ポイント・オブジェクトから少なくとも１つの経路オブジェクトを前記空間オブジェクトとして生成するステップ、
を有するステップと、
前記サーバ・コンピュータが、前記空間照会を前記経路オブジェクトと照らし合わせることによって照会結果を生成するステップと、
を有し、
前記第１の関数が、前記空間オブジェクトが前記空間照会で指定されるオブジェクトと交差するかどうかを評価する関数である方法。
【請求項２】
前記地理的位置を抽出するステップと、前記ポイント・オブジェクトを生成するステップと、前記少なくとも１つの経路オブジェクトを生成するステップが、単一操作として一緒に実行される、請求項１に記載の方法。
【請求項３】
照会処理のためのデータ処理システムであって、
時間領域内の時間／空間データを保管するデータベースと、
空間照会を行うための第１の関数および前記第１の関数の引数として機能する第２の関数を含む空間照会を受け取る手段であって、前記第２の関数が１つまたは複数のオブジェクトの各々についての１組の時間値を識別し、前記１組の時間値が対応するオブジェクトの時系列データを含み、前記時系列データが各時間における前記対応するオブジェクトの緯度値および経度値を提供し、前記第２の関数の出力が１つまたは複数の空間オブジェクトである、手段と、
前記第２の関数によって識別された前記１組の時間値を前記データベースから取り出し、前記１つまたは複数のオブジェクトの各々について、前記データベースから取り出した前記１組の時間値から、前記緯度値および前記経度値を含む地理的位置を抽出し、前記地理的位置から前記緯度値および前記経度値を指定するポイント・オブジェクトを生成し、前記ポイント・オブジェクトから少なくとも１つの経路オブジェクトを前記空間オブジェクトとして生成する処理手段と、
前記空間照会を前記経路オブジェクトと照らし合わせることによって照会結果を生成する手段と、
を有し、
前記第１の関数が、前記空間オブジェクトが前記空間照会で指定されるオブジェクトと交差するかどうかを評価する関数である、データ処理システム。
【請求項４】
前記処理手段が、単一操作として、地理的位置を抽出し、ポイント・オブジェクトを生成し、少なくとも１つの経路オブジェクトを生成するように適合される、請求項３に記載のデータ処理システム。
【請求項５】
照会処理のためのコンピュータ・プログラムを含む装置であって、前記コンピュータ・プログラムが、請求項１または２に記載の操作を実行するようデータ処理装置を制御するように構成される、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時間および空間データ処理に関する。
【背景技術】
【０００２】
全地球測位システム（GlobalPositioning System）は、地球を周回し、地上ＧＰＳ受信機を備えた人が自分の地理的位置を正確に特定することを可能にする、１組の衛星である。ＧＰＳは、米国国防総省によって所有され運用されているが、世界中で一般使用のために使用可能になっている。
【０００３】
任意の所与の時点では、その１組の衛星のうちの４機の衛星が水平線より上にある。各衛星は、コンピュータと、原子時計と、無線機（Radio）とを含む。各衛星は、その軌道を理解しており、刻時機構を備えている。これにより、各衛星は、変化するその位置および時間を継続的にブロードキャストする。地上では、各ＧＰＳ受信機は、４機の衛星のうちの３機から方位を取得することにより、その位置を「三角法で測量する」コンピュータを含む。その結果は、経度と緯度の形の地理的位置である。
【０００４】
ＧＰＳ受信機は連続的に位置を三角法で測定するので、その結果は、ＧＰＳデータという１組の値になる。各値は、ある時間に関する経度と緯度を示す。ＧＰＳデータは、「時系列」データとして表に保管することができる（すなわち、時系列とは、インターナショナル・ビジネス・マシーンズ社によるＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）ＴｉｍｅＳｅｒｉｅｓ  ＤａｔａＢｌａｄｅ（商標）モジュールで使用可能なデータ・タイプを指す）。時系列データは、特定のタイプのオブジェクト（たとえば、自動車）に関するＧＰＳデータを含む。その上、４機またはそれ以上の衛星を受信できる場合、ＧＰＳ受信機は、経度と緯度に加えて、高度を決定する機能も含むことができる。
【０００５】
ＧＰＳ受信機の急増により、より多くの時間空間アプリケーションが開発されている。たとえば、ある時間アプリケーションでは、午後４時から午後５時までのある企業に関するすべての株式取引を識別するために時系列データを使用する可能性がある。ある空間アプリケーションでは、午後４時から午後５時までにある自動車がどのくらいの距離を移動したかを識別するために時系列データを使用する可能性がある。
【０００６】
時間／空間アプリケーションは、トラックがルート上で何回停車するかを文書化すること、一個人の自動車が特定の位置（たとえば、学校構内）を出発したかどうかおよびいつ出発したか、ならびにその自動車が戻ったかどうかおよびいつ戻ったかを判別すること、コンテナがいつ船に積み込まれたか、船上で移動する間にコンテナがどこで止まったか、ならびにコンテナが仕向先（たとえば、港）に到着するまでにどのくらいかかるかを判別すること、接続便がいつ空港に到着するかを判別すること、タクシーが特定の時間に特定の場所に到着したかどうかを判別することなどの多くの機能を実行することができる。
【０００７】
図１は、時間データを、空間照会によって照会可能な空間データに変換するためにユーザによって行われる従来技術の処理を示している。図１のこの例では、ユーザは、自動車１００が特定の銀行１０４の前を通過したかどうかを判別する構造化照会言語（ＳＱＬ：Structured Query Language）要求を実行依頼することを望んでいる。リレーショナル・データベース管理システム（ＲＤＢＭＳ：Relational DataBase Management System）ソフトウェアは構造化照会言語（ＳＱＬ）インターフェースを使用する。ＳＱＬインターフェースは、ＲＤＢＭＳソフトウェア用の標準言語に発展し、米国規格協会（ＡＮＳＩ：American National Standard Institute）および国際標準化機構（ＩＳＯ：International Standards Organization）の両者によってそのように採用されている。
【０００８】
自動車１００は、ＧＰＳデータを計算するＧＰＳ受信機と、ＧＰＳデータをサーバ（図示せず）に経路指定するコンピュータ・システムとを有する。ユーザは、ＧＰＳデータを表にロードして、時系列データ１１０を作成する。表１は時系列データの表を示している。時系列データの表は、表の行ごとに、時間と、経度と、緯度を含む。経度と緯度は度数で指定することができる。
【表１】
0004641421.tif 000002
【０００９】
ユーザは、第１のＳＱＬ変換１１４により、時系列データ１１０を、経度と緯度（すなわち、Ｘ，Ｙ）の値を指定するポイント・オブジェクト（Point Object）１２０に変換する。このＳＱＬ変換により、ユーザは時間およびポイント・オブジェクト１２０を表２に保管し、この表はポイント・オブジェクトの作成後に保管されたデータを示している。
【表２】
0004641421.tif 000003
【００１０】
ユーザは、第２のＳＱＬ変換１２４により、ポイント・オブジェクト１２０を、自動車１００の移動ラインを反映するライン・オブジェクト（Line Object）１３０に変換する。表３は、経路が生成された後で１行分のデータが保管されたことを示しており、その行はスタート時間と経路とを有する。
【表３】
0004641421.tif 000004
【００１１】
ライン・オブジェクト１３０は、空間照会１４０によって照会可能なタイプの空間オブジェクトである。したがって、ライン・オブジェクト１３０を作成した後、ユーザは、空間照会１４０を実行依頼して、自動車が移動したラインが建物の位置と交差するかどうかを判別する。ＳＥＬＥＣＴステートメント（１）は、ユーザによって実行依頼される空間照会１４０であり、ｉｎｔｅｒｓｅｃｔ関数を含む。ＳＥＬＥＣＴステートメント（１）でユーザは、ユーザが作成した空間オブジェクトである「ｃａｒ．ｌｉｎｅ」を指定する。
【数１】
0004641421.tif 000005
【００１２】
したがって、時間データに対する空間照会を行えるようになる前に、自動車１００のリアルタイム位置特定はいくつかの中間ステップ（すなわち、第１および第２のＳＱＬ変換１１４、１２４）を通過する。加えて、時間機能の大部分は、第１のＳＱＬ変換１１４で失われる可能性がある。この解決策では、自動車１００に関する時系列データ１１０をデータベース表に保管し、（第１のＳＱＬ変換１１４によって）その表に照会してポイント・オブジェクト１２０を構築する。この解決策では、そのポイント・オブジェクト（第１のＳＱＬ変換１１４の結果であるもの）に照会して、経路オブジェクト１３０を生成する。
【００１３】
したがって、時間／空間アプリケーションでは、時系列データの表にデータがロードされ、時間領域（Temporal Domain）で選択が行われる。すなわち、選択は時間に基づいて行われる。データは空間領域（Spatial Domain）で使用するために変換される。次に、データの分析および空間オブジェクトの表現が空間領域で完了する。相当な量のデータがロードされる事例では、データをロードするためにＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）ＴｉｍｅＳｅｒｉｅｓ  Ｒｅａｌ  Ｔｉｍｅ  Ｌｏａｄｅｒ（ＲＴＬ）（インターナショナル・ビジネス・マシーンズ社から入手可能）が使用される。空間処理を容易にするために、データ・ポイントは、時間領域内の時系列から空間ポイントに移動される。次にその空間ポイントを使用してライン・オブジェクトを構築し、次にそれを経路分析に使用する。この領域変換は時間のかかるものであり、適時データの値を損なうとともに冗長性を発生する。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
したがって、当技術分野では、改良された時間／空間データ処理が必要である。
【課題を解決するための手段】
【００１５】
時間データを処理するための方法、システム、およびプログラムが提供される。１つまたは複数のオブジェクトに関する１組の時間値を識別するマッピング関数を指定する空間照会が受け取られる。１つまたは複数のオブジェクトのそれぞれについて、各組の時間値から地理的位置が自動的に抽出される。その地理的位置からポイント・オブジェクトが生成される。そのポイント・オブジェクトから１つまたは複数の空間オブジェクトが生成される。
【００１６】
好ましくは、その１組の時間値は時系列データを有する。任意選択で、各組の時間値は、ある関連オブジェクトに関する時系列データの全部を有する。代わって、各組の時間値は、ある関連オブジェクトに関する時系列データの一部分を有する。
【００１７】
好ましくは、地理的位置は、経度値と緯度値とを有する。
【００１８】
任意選択で、１つまたは複数の空間オブジェクトはベンダ固有のものである。
【００１９】
好ましくは、空間照会は、１つまたは複数の空間オブジェクトと照らし合わせて評価される。
【００２０】
任意選択で、マッピング関数は、引数としてそのオブジェクトに関する１組の時間値の一部分を受け取る。
【００２１】
任意選択で、１つまたは複数のオブジェクトに関する各組の時間値は、関数を評価することによって決定される。
【００２２】
任意選択で、マッピング関数は複数の引数を有することができる。
【００２３】
本発明の上述の実現例は、改良された時間／空間データ処理のための方法、システム、およびプログラムを提供するものである。
【００２４】
次に添付図面を参照するが、同様の参照番号は図面全体を通して対応する部分を表している。
【発明を実施するための最良の形態】
【００２５】
本発明の実現例は、時間領域から空間領域にデータを直接移動する機能を提供し、それにより、データの収集からデータの使用までの遅れを低減するとともに冗長性を排除するものである。
【００２６】
図２は、本発明の特定の実現例によるコンピューティング環境をブロック図で示している。クライアント・コンピュータ２００は、１つまたは複数のクライアント・アプリケーション２０２を実行する。クライアント・アプリケーション２０２は、任意のタイプのアプリケーション・プログラムにすることができる。
【００２７】
位置ベースのコンピュータ２１０は、ＧＰＳ受信機などの位置認識装置２１４を含む。位置認識装置２１４は、時間値を連続的にまたは定期的に生成することができる。特定の実現例では、時間値は、関連の経度，緯度を備えた時間を含む。特定の実現例では、時間値は、車両ＩＤ（識別情報）、移動速度などの他の情報も含むことができる。特定の実現例では、時間は本質的に日付を保持する。
【００２８】
クライアント・コンピュータ２００は、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、またはインターネットなどのネットワークによってサーバ・コンピュータ２２０に接続される。位置ベースのコンピュータ２１０は、ワイヤレス・インターフェース（たとえば、携帯電話またはセルラー・デジタル・パケット・データ（ＣＤＰＤ：Cellular Digital Packet Data）モデム）を介してインターネットに接続される。インターネットは、接続されたコンピュータ・ネットワークの世界的な集合（すなわち、複数ネットワークからなるネットワーク）である。
【００２９】
位置ベースのコンピュータ２１０は、位置認識装置２１４から時間値を読み取り、インターネットへのワイヤレス接続を介してその時間値をサーバ・コンピュータ２２０に経路指定する。理解しやすくするために、１つの位置ベースのコンピュータ２１０が図示されているが、概して、複数の位置ベースのコンピュータ２１０がサーバ・コンピュータ２２０と通信する。
【００３０】
サーバ・コンピュータ２２０はデータベース・エンジン２３０を含み、そのデータベース・エンジンが時間／空間モジュール２５０を含み、その時間／空間モジュールがマッピング関数２５２を処理する。時間／空間モジュール２５０は、その実行中にデータをメモリ・バッファ２５４に保管することができる。データベース・エンジン２３０はデータベース２６０も含み、そのデータベースが、１つまたは複数のオブジェクトに関する時系列データと、１つまたは複数のポイント・オブジェクトと、１つまたは複数の空間オブジェクトとを含む。特に、位置ベースのコンピュータ２１０から受け取られた特定のオブジェクト（たとえば、自動車）に関する時間値は、時系列データに保管される。時間／空間モジュール２５０は、内部で時系列データをポイント・オブジェクトに変換し、そのポイント・オブジェクトを、クライアント・アプリケーション２０２による空間照会によって処理可能な空間オブジェクトに変換する。本発明の特定の実現例では、「時間／空間データ・システム」２４０という用語は、時間／空間モジュール２５０とデータベース２６０を指すために使用する。
【００３１】
特定の実現例では、データベース・エンジン１３０は、ＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）Ｄｙｎａｍｉｃ  Ｓｅｒｖｅｒ（ＩＤＳ）にすることができ、これはインターナショナル・ビジネス・マシーンズ社から入手可能である。
【００３２】
特定の実現例では、時間／空間モジュール２５０はサーバ拡張として実現される。また、クライアント・アプリケーション２０２が、マッピング関数２５２を含む空間照会をサーバ・コンピュータ２２０に実行依頼すると、空間照会またはマッピング関数２５２を処理する際に使用される中間データは、クライアント・コンピュータ２００とサーバ・コンピュータ２２０との間で移動されない。
【００３３】
特定の実現例では、時間／空間モジュール２５０は、ＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）Ｄｙｎａｍｉｃ  Ｓｅｒｖｅｒ上でＭａｐＩｎｆｏ  ＳｐａｔｉａｌＷａｒｅ（商標）、Ｓｐａｔｉａｌ  ＤａｔａＢｌａｄｅ（商標）、またはＧｅｏｄｅｔｉｃ  ＤａｔａＢｌａｄｅ（商標）を使用して実現される。
【００３４】
特定の実現例では、時系列データの最適化処理のために新しいマッピング関数２５２が提供される。マッピング関数２５２への入力は、１組の時間値（すなわち、時系列データの一部分または全部であり、「クリップ」とも呼ばれることがある）と、０または１つ以上の追加引数である。特定の実現例では、追加引数は、たとえば、投影データ（Projection Data）を含むことができる。マッピング関数２５２の出力は経路（すなわち、あるタイプの空間オブジェクト）である。特定の実現例では、マッピング関数２５２は、ｔｉｍｅＳｅｒｉｅｓＴｏＰａｔｈ関数（２）のフォーマットを呈する。
【数２】
0004641421.tif 000006
【００３５】
あるオブジェクトに関する時系列データは、位置認識装置（たとえば、ＧＰＳ受信機）によって時間値を生成する、特定のタイプのオブジェクト（たとえば、自動車）に関するデータを保管する。時間値は、経度値，緯度値とともに時間を含む。特定の実現例では、１組の時間値は、時系列データに保管されたデータに関する開始時間および終了時間によって定義される。
【００３６】
図３は、本発明の特定の実現例により、自動車３００が特定の銀行３０４の前を通過したかどうかを判別する要求におけるマッピング関数の使用をブロック図で示している。図３のこの例では、自動車３００が特定の銀行３０４の前を通過したかどうかを判別する要求が処理される。自動車３００は、時間値を計算する位置認識装置（たとえば、ＧＰＳ受信機）と、その時間値をサーバ（図示せず）に経路指定するコンピュータ・システムとを有する。自動車３００に関する時間値は、サーバ側の時系列データ３１０の表にロードされる。次に、時系列データ３１０を参照する空間照会を実行依頼することができる。すなわち、ユーザは、時系列データ３１０を空間データに変換して、その空間データを照会する必要がない。その代わりに、マッピング関数２５２を含む空間照会３４０を実行依頼することができる。マッピング関数の第１の引数は、時系列データ３１０の全部または一部分を指定する（すなわち、１組の時間値を指定する）。たとえば、空間照会３４０は、ＳＥＬＥＣＴステートメント（３）によって示される。
【数３】
0004641421.tif 000007
【００３７】
したがって、時間／空間データ・システム２４０は、従来技術（図１）の選択ステップと変換ステップを単一操作に縮小する。時間値の処理に関係するステップは削減されており、冗長データは排除されており、時系列機能はＳＥＬＥＣＴステートメントに使用可能になっている。この中間ステップの排除により、位置データがデータベースに追加されたときから、位置データが照会のための空間データとして使用可能になるまでの遅れ時間が削減される。
【００３８】
図４は、本発明の特定の実現例によりデータベース・エンジン２３０に実現されたロジックを示している。制御は、データベース・エンジン２３０がマッピング関数２５２とともに空間照会を受け取るブロック４００から始まる。ブロック４０５では、データベース・エンジン２３０は、最初のレコードから始めて、その照会について処理すべき次のレコードを選択する。ブロック４１０では、データベース・エンジン２３０は時間／空間モジュール２５０を呼び出して、選択したレコードについてマッピング関数２５２を処理する。ブロック４２０では、データベース・エンジン２３０は、処理すべき追加レコードが存在するかどうかを判別する。存在する場合、処理はブロック４０５にループバックし、存在しない場合、処理はブロック４３０に進む。ブロック４３０では、データベース・エンジン２３０は、１つまたは複数の空間オブジェクトと照らし合わせて空間照会を評価する。
【００３９】
図５は、本発明の特定の実現例により時間／空間モジュール２５０に実現されたロジックを示している。制御は、時間／空間モジュール２５０がマッピング関数２５２に指定された１組の時間値（すなわち、選択したレコードに関連するオブジェクトに関する時系列データの全部または一部分）を検索するブロック４４０から始まる。特定の実現例では、その１組の時間値は、表の全部または一部分として受け取られる。ブロック４５０では、時間／空間モジュール２５０は、時系列データ内の時間値から経度，緯度データ（Ｘ，Ｙ）を抽出する。ブロック４６０では、時間／空間モジュール２５０はポイント・オブジェクトを生成する。サーバ２２０側のメモリ・バッファ２５４内の各経度，緯度対ごとに１つのポイント・オブジェクトがインスタンス化される。ポイント・オブジェクトはあるタイプの空間オブジェクトであり、緯度用のメソッドと、経度用のメソッドという２つのメソッドを有する。
【００４０】
ブロック４７０では、時間／空間モジュール２５０は、ポイント・オブジェクトから空間オブジェクトを生成する。異なる実現例では、異なるタイプの空間オブジェクトを生成することができる。特定の実現例では、少なくとも１つの空間オブジェクトは、サーバ２２０側のメモリ２５４内の１組のポイント・オブジェクトについてインスタンス化される経路オブジェクトである。経路オブジェクトは、あるタイプの空間オブジェクトであり、長さおよびエンドポイントなどのメソッドを有する。
【００４１】
ブロック４８０では、空間オブジェクトが返される。次に、マッピング関数２５２を含む空間照会は、マッピング関数２５２を評価した結果として返される１つまたは複数の空間オブジェクトと照らし合わせて評価することができる。
【００４２】
したがって、本発明の実現例は、時間データを空間データに変換するために表の構築を必要としていた従来技術の処理を回避するものである。
【００４３】
ＳＥＬＥＣＴステートメント（３）は単一オブジェクト（すなわち、タクシー）を参照するが、ＳＥＬＥＣＴステートメントはデータベース１６０と照らし合わせて評価されるので、ＳＥＬＥＣＴステートメントは、すべてのタクシーなど、複数オブジェクトのグループを参照することができる。
【００４４】
ＳＥＬＥＣＴステートメント（４）では、ｃａｒ．ｉｄ＝“Ｙｅｌｌｏｗ  Ｃａｂ  ＃１２３”であり、ｔｉｍｅＳｅｒｉｅｓＴｏＰａｔｈ関数の評価の結果、対応する１組の時間値（すなわち、ｔｉｍｅＳｅｒｉｅｓＴｏＰａｔｈ関数に選択された時系列データの全部または一部分）を備えた１つの空間オブジェクト（イエロー・キャブ＃１２３用）が生成される。ＳＥＬＥＣＴステートメント（４）は、その１組の時間値によって指定された間隔について生成された空間オブジェクトと照らし合わせて評価される。さらに、ＳＥＬＥＣＴステートメント（４）の評価により、ｔｉｍｅＳｅｒｉｅｓＴｏＰａｔｈ関数によって指定された間隔における「Ｙｅｌｌｏｗ  Ｃａｂ  ＃１２３」というＩＤを有する自動車用の経路と建物の位置が交差する場合に「真」が返される。
【数４】
0004641421.tif 000008
【００４５】
ＳＥＬＥＣＴステートメントはデータベース・エンジン２３０（たとえば、ＲＤＢＭＳ）によって実行されるので、ＳＥＬＥＣＴステートメント（５）などの照会を実行依頼することができる。
【数５】
0004641421.tif 000009
【００４６】
ＳＥＬＥＣＴステートメント（５）におけるｔｉｍｅＳｅｒｉｅｓＴｏＰａｔｈ関数の評価により、そのタイプが「ｔａｘｉ」である自動車ごとに空間オブジェクトが生成される。たとえば、そのタイプが「ｔａｘｉ」である自動車が６台ある場合、６つの空間オブジェクトが生成される。６つの空間オブジェクトのそれぞれは関連時系列データを有し、したがって、６つの空間オブジェクトのそれぞれが１組の時間値（すなわち、ｔｉｍｅＳｅｒｉｅｓＴｏＰａｔｈ関数に選択された時系列データの全部または一部分）を有する。次に、ＳＥＬＥＣＴステートメント（５）は、各空間オブジェクトと照らし合わせて評価され、ｔａｘｉタイプ（すなわち、ｃａｒ．ｔｙｐｅ＝“ｔａｘｉ”）の自動車用の自動車ＩＤ（すなわち、ｃａｒ．ｉｄ）と、ｉｎｔｅｒｓｅｃｔ関数の結果（真または偽のいずれか一方）を返す。特に、ＳＥＬＥＣＴステートメント（５）の評価により表４が返される。表４では、１列目はタクシーＩＤを示し、２列目は指定の間隔中にそのタクシーが建物と交差したかどうかを示す。
【表４】
0004641421.tif 000010
【００４７】
特定の実現例では、マッピング関数はベンダ固有の空間プログラムと互換性のあるものになるように種々のフォーマットを呈し、ブロック４７０で構成された空間オブジェクトは基礎となる空間プログラムに依存する。たとえば、ベンダ固有の空間プログラムがラインを返した場合、マッピング関数２５２のフォーマットはｔｉｍｅＳｅｒｉｅｓＴｏＬｉｎｅ（）になる可能性があり、時間／空間モジュール２５０によって構成された空間オブジェクトはライン・オブジェクトになるであろう。
【００４８】
１つのプログラムは、インターナショナル・ビジネス・マシーンズ社から入手可能なＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）Ｇｅｏｄｅｔｉｃ  ＤａｔａＢｌａｄｅ（商標）モジュールである。Ｇｅｏｄｅｔｉｃ  ＤａｔａＢｌａｄｅ（商標）がインストールされている場合、ｔｉｍｅＳｅｒｉｅｓＴｏＰａｔｈ関数の「ｐａｔｈ」部分は、所望の空間オブジェクト（たとえば、ＧｅｏＳｔｒｉｎｇ、ＧｅｏＰｏｌｙｇｏｎ、ＧｅｏＳｔｒｉｎｇなど）を表すように変更され、対応する空間オブジェクトは時間／空間モジュール２５０によって構成されるであろう。もう１つのプログラムは、インターナショナル・ビジネス・マシーンズ社から入手可能なＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）Ｓｐａｔｉａｌ  ＤａｔａＢｌａｄｅ（商標）モジュールである。ＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）Ｓｐａｔｉａｌ  ＤａｔａＢｌａｄｅ（商標）モジュールがインストールされている場合、マッピング関数２５２は、ＳＴ＿ＬｉｎｅＳｔｒｉｎｇ、ＳＴ＿Ｍｕｌｔｉｌｉｎｅ、ＳＴ＿Ｐｏｌｙｇｏｎなどの空間オブジェクトを参照することができ、時間／空間モジュール２５０は対応するオブジェクトを返すことになるであろう。オブジェクト名の前の「ＳＴ」という接頭部は、そのオブジェクトがＯｐｅｎ  ＧＩＳ  Ｃｏｎｓｏｒｔｉｕｍという規格団体によって定義されたことを示している。Ｏｐｅｎ  ＧＩＳ  Ｃｏｎｓｏｒｔｉｕｍに関する詳細は、http://www.opengis.orgで入手可能である。Ｍａｐｉｎｆｏ  ＳｐａｔｉａｌＷａｒｅ（商標）モジュールはＭａｐＩｎｆｏ社のプログラムであり、ＭａｐＩｎｆｏ  ＳｐａｔｉａｌＷａｒｅ（商標）モジュールの事例では、ＭａｐＩｎｆｏ  ＳｐａｔｉａｌＷａｒｅ（商標）の実現例固有のオブジェクトが返されるであろう。
【００４９】
ＳＥＬＥＣＴステートメント（６）は、ＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）Ｓｐａｔｉａｌ  ＤａｔａＢｌａｄｅ（商標）モジュールから使用可能なＳＴ＿ＣＲＯＳＳＥＳ関数を使用するときの図３の自動車の例に関するマッピング関数２５２を含む空間照会を示している。ＳＴ＿ＣＲＯＳＳＥＳ関数は、複数の形状が互いに交差するかどうかを判別する。
【数６】
0004641421.tif 000011
【００５０】
ＳＥＬＥＣＴステートメント（６）では、ＳＴ＿ＢＵＦＦＥＲ関数（ＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）Ｓｐａｔｉａｌ  ＤａｔａＢｌａｄｅ（商標）モジュールから使用可能）は、あるポイントの周りのバッファを識別する。この例では、建物の位置を表すポイントの周りに、５０という半径が選択される。マッピング関数２５２はＴｉｍｅＳｅｒｉｓａＴｏＬｉｎｅＳｔｒｉｎｇである。
【００５１】
ｗｉｔｈｉｎＲ関数の評価の結果、あるオブジェクトに関する１組の時間値が得られる。ｗｉｔｈｉｎＲ関数の場合、トラックはそのオブジェクトに関する時系列データを保持する特定の表を識別し、「２００１−０７−０１  ０８：００：００．０００００」という日時のテキスト・ストリングはその１組の時間値に関するスタート時間を示し、「ｄａｔｅｔｉｍｅ  ｙｅａｒ  ｔｏ  ｆｒａｃｔｉｏｎ（５）」の結果、係数５の解像度で日時のテキスト・ストリングがｄａｔｅ−ｔｉｍｅというデータ・タイプに変換され、ｍｉｎｕｔｅは間隔を表し、数値４５は間隔のサイズを表し、「ｆｕｔｕｒｅ」は時間の方向を表す。特定の実現例では、間隔は、ｓｅｃｏｎｄ、ｍｉｎｕｔｅ、ｈｏｕｒ、ｄａｙ、ｗｅｅｋ、ｍｏｎｔｈ、またはｙｅａｒにすることができる。特定の実現例では、方向は、ｆｕｔｕｒｅ（すなわち、間隔がスタート時間から前進する）またはｂａｃｋｗａｒｄｓ（すなわち、間隔がスタート時間から後退する）にすることができる。ＳＥＬＥＣＴステートメント（６）では、１組の時間値は、４５分の間隔の間、指定の日時から前進する。数値５は、マッピング関数の投影を表し、追加引数（マッピング関数（２）に関して前述したもの）の一例である。
【００５２】
ＴｉｍｅＳｅｒｉｅｓＴｏＬｉｎｅＳｔｒｉｎｇ（）関数を処理した結果は空間オブジェクトである。次に、ＳＴ＿ＣＲＯＳＳＥＳ関数は、その空間オブジェクトが建物の位置のそのポイントの周りのバッファと交差するかどうかを評価する。
【００５３】
ＳＥＬＥＣＴステートメント（７）は、ＳＴ＿ＯＶＥＲＬＡＰ関数（ＭａｐＩｎｆｏ  ＳｐａｔｉａｌＷａｒｅ（商標）モジュールから使用可能）を使用する、図３の自動車の例に関するマッピング関数２５２を含む空間照会を示している。ＳＴ＿ＯＶＥＲＬＡＰ関数は、２つの空間オブジェクト間に共通ポイントが存在する場合に真を返す。
【数７】
0004641421.tif 000012
【００５４】
ＳＥＬＥＣＴステートメント（７）では、ＨＧ＿ＣＩＲＣＬＥ関数（ＭａｐＩｎｆｏ  ＳｐａｔｉａｌＷａｒｅ（商標）モジュールから使用可能）は、緯度（ｂｕｉｌｄｉｎｇ．ｌａｔ）および経度（ｂｕｉｌｄｉｎｇ．ｌｎｇ）によって指定された建物のあるポイントの周りの半径５０の円を識別する。マッピング関数２５２はＴｉｍｅＳｅｒｉｅｓＴｏＰｏｌｙＬｉｎｅである。ｗｉｔｈｉｎＲ関数の評価の結果、あるオブジェクトに関する１組の時間値が得られる。ＳＥＬＥＣＴステートメント（７）では、その１組の時間値は、８時間の間隔の間、指定の日時から前進する。この場合、マッピング関数２５２は、追加引数なしで、引数として１組の時間値を受け取る。
【００５５】
ＴｉｍｅＳｅｒｉｅｓＴｏＰｏｌｙＬｉｎｅ（）関数を処理した結果は空間オブジェクトである。次に、ＳＴ＿ＯＶＥＲＬＡＰ関数は、その空間オブジェクトが建物の位置のそのポイントの周りのバッファにオーバラップするかどうかを評価する。
【００５６】
ＳＥＬＥＣＴステートメント（８）は、ＧｅｏＰｏｉｎｔ関数（ＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）Ｇｅｏｄｅｔｉｃ  ＤａｔａＢｌａｄｅ（商標）から使用可能）を使用する、図３の自動車の例に関するマッピング関数２５２を含む空間照会を示している。ＧｅｏＰｏｉｎｔ関数の場合、両方の地理空間時間範囲が交差し、そのセグメント内の任意のポイントが地理的距離（Geodistance）より小さいかまたはそれに等しい場合に真が返される。
【数８】
0004641421.tif 000013
【００５７】
ＳＥＬＥＣＴステートメント（８）では、ＧｅｏＰｏｉｎｔ関数（ＩＢＭ（商標）Ｉｎｆｏｒｍｉｘ（商標）Ｓｐａｔｉａｌ  ＤａｔａＢｌａｄｅ（商標）モジュールから使用可能）は、緯度（ｂｕｉｌｄｉｎｇ．ｌａｔ）および経度（ｂｕｉｌｄｉｎｇ．ｌｎｇ）によって指定された建物のあるポイントを識別する。高度（ｂｕｉｌｄｉｎｇ．ａｌｔｉｔｕｄｅ）は、建物のそのポイントの周りに球形を描くために使用される。マッピング関数２５２はＴｉｍｅＳｅｒｉｅｓＴｏＧｅｏＳｔｒｉｎｇである。ｗｉｔｈｉｎＲ関数の評価の結果、あるオブジェクトに関する１組の時間値が得られる。ＳＥＬＥＣＴステートメント（８）では、その１組の時間値は、１日の間隔の間、指定の日時から前進する。この場合、マッピング関数２５２は、追加引数なしで、引数として１組の時間値を受け取る。
【００５８】
ＴｉｍｅＳｅｒｉｅｓＴｏＧｅｏＳｔｒｉｎｇ（）関数を処理した結果は空間オブジェクトである。次に、ｗｉｔｈｉｎ関数は、その空間オブジェクトがＧｅｏＰｏｉｎｔ関数によって生成された球形から５０ユニットの範囲内にあるかどうかを評価する。５０ユニットは、ｗｉｔｈｉｎ関数の「５０：ｇｅｏｄｉｓｔａｎｃｅ」という引数で指定される。
【００５９】
ＳＥＬＥＣＴステートメント（６）、（７）、および（８）は、種々の期間（たとえば、ｍｉｎｕｔｅ、ｈｏｕｒ、ｄａｙ）に渡って空間オブジェクトを導出するが、ｗｉｔｈｉｎＲ時系列関数を使用する同じスタート時間を有する。
【００６０】
その上、ＳＥＬＥＣＴステートメント（６）、（７）、および（８）は、３通りの空間環境で使用される１つのデータ・セットを示している。時間／空間データ・システム２４０の恩恵がない場合、管理者は、データの３つのコピーを管理し、各コピーを異なるフォーマットに変換しなければならないであろう。この冗長データを排除すると、データと処理リソースの両方が解放される。
【００６１】
要約すると、従来の解決策は複雑で、データ・スループットが低かった。これに対して、時間／空間データ・システム２４０は、時系列データがデータベース２６０にロードされてから、時系列データが空間オブジェクトとして提示されるまで、一時データがサーバ２２０内で費やす時間を削減する。その上、時間／空間データ・システム２４０は、中間データ・ステージングに必要なストレージの量を削減する。時間／空間データ・システム２４０は、時間領域から空間領域にデータを直接変換し、それにより、時系列データを受け取ってから、空間オブジェクトの照会準備ができるまでの時間遅れを削減する。
【００６２】
要約すると、本発明の実現例は、「バッチ」モードで時間領域から空間領域にデータを変換するために従来技術のシステムが必要とするステップを排除する。これにより、データはより容易に使用可能になり、データのインスタンスの数が削減され、より多くの時系列機能がデータの処理／分析中に使用可能になる。データは、時系列から、空間分析で使用される空間オブジェクトに直接移行する。
【００６３】
ＩＢＭ、Ｉｎｆｏｒｍｉｘ、およびＤａｔａＢｌａｄｅは、米国あるいはその他の国々またはその両方におけるインターナショナル・ビジネス・マシーンズ社の登録商標または商標である。ＳｐａｔｉａｌＷａｒｅは、米国あるいはその他の国々またはその両方におけるＭａｐＩｎｆｏ社の登録商標または商標である。
【００６４】
追加実現例の詳細
ネットワーク・コンポーネントに関する情報を維持するための上述の技法は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生成するために標準的なプログラミング技法あるいはエンジニアリング技法またはその両方を使用する方法、装置、または製品として実現することができる。本明細書で使用する「製品」という用語は、ハードウェア・ロジック（たとえば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）または磁気ストレージ・メディア（たとえば、ハードディスク・ドライブ、フレキシブル・ディスク、テープなど）、光学ストレージ（ＣＤＲＯＭ、光ディスクなど）、揮発性および不揮発性メモリ・デバイス（たとえば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラマブル・ロジックなど）などのコンピュータ可読メディアで実現されたコードまたはロジックを指す。コンピュータ可読メディア内のコードは、プロセッサによってアクセスされ実行される。さらに、好ましい諸実施形態が実現されるコードは、伝送メディアにより、またはネットワークを介してファイル・サーバからアクセス可能なものにすることができる。このような場合、そのコードが実現される製品は、ネットワーク伝送回線、ワイヤレス伝送メディア、空間、電波、赤外線信号などにより伝搬する信号などの伝送メディアを有することができる。したがって、「製品」は、そのコードが実施されるメディアを有することができる。さらに、「製品」は、そのコードが実施され、処理され、実行される、ハードウェア・コンポーネントとソフトウェア・コンポーネントの組合せを有することができる。当然のことながら、当業者であれば、本発明の範囲を逸脱せずにこの構成に対して多くの変更が可能であることと、その製品が当技術分野で知られている任意の情報担持メディアを有することができることを認識するであろう。
【００６５】
図４および図５のロジックは、特定の順序で行われる特定の操作を記述している。代替実現例では、この論理操作のうちのいくつかは、異なる順序で実行するか、変更するか、または除去することができる。その上、上述のロジックにステップを追加することができ、そのステップは依然として上述の実現例に適合するものである。さらに、本明細書に記述した操作は順次行うことができ、特定の操作は並行して処理することができ、また、単一プロセスによって実行されると記述されている操作は分散プロセスによって実行することもできる。
【００６６】
図４および図５の図示したロジックは、ソフトウェアで実現されるものとして記述されている。このロジックは、ハードウェアで実現するかまたはプログラマブルおよび非プログラマブル・ゲート・アレイ・ロジックで実現することができる。
【００６７】
図６は、本発明の特定の実現例によるコンピュータ・システム２００、２１０、２２０のアーキテクチャの一実現例を示している。コンピュータ・システム２００、２１０、２２０は、プロセッサ５０２（たとえば、マイクロプロセッサ）と、メモリ５０３（たとえば、揮発性メモリ・デバイス）と、ストレージ５０６（たとえば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの不揮発性ストレージ・エリア）とを有するコンピュータ・アーキテクチャ５００を実現することができる。オペレーティング・システム５０５はメモリ５０３で実行することができる。ストレージ５０６は、内部ストレージ・デバイスまたは付加ストレージあるいはネットワーク・アクセス可能ストレージを有することができる。ストレージ５０６内のコンピュータ・プログラム５０４は、当技術分野で知られている方法でメモリ５０３にロードされ、プロセッサ５０２によって実行される。このアーキテクチャは、ネットワークとの通信を可能にするためのネットワーク・カード５０８をさらに含む。入力装置５１０は、プロセッサ５０２にユーザ入力を提供するために使用され、キーボード、マウス、ペンスタイラス、マイクロホン、タッチ検知表示画面、または当技術分野で知られている任意の他の起動あるいは入力メカニズムを含むことができる。出力装置５１２は、プロセッサ５０２または表示モニター、プリンタ、ストレージなどのその他のコンポーネントから伝送された情報を提供することができる。
【００６８】
このコンピュータ・アーキテクチャ５００は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、電話装置、ネットワーク家電、仮想化デバイス、ストレージ・コントローラなど、当技術分野で知られている任意のコンピューティング・デバイスを有することができる。当技術分野で知られている任意のプロセッサ５０２およびオペレーティング・システム５０５を使用することができる。
【図面の簡単な説明】
【００６９】
【図１】時間データを、空間照会によって照会可能な空間データに変換するためにユーザによって行われる従来技術の処理を示す図である。
【図２】本発明の特定の実現例によるコンピューティング環境を示すブロック図である。
【図３】本発明の特定の実現例により、自動車が特定の銀行の前を通過したかどうかを判別する要求におけるマッピング関数の使用を示すブロック図である。
【図４】本発明の特定の実現例によりデータベース・エンジンに実現されたロジックを示す図である。
【図５】本発明の特定の実現例により時間／空間モジュールに実現されたロジックを示す図である。
【図６】本発明の特定の実現例によるコンピュータ・システムのアーキテクチャの一実現例を示す図である。
【図１】
0004641421.tif 000014
【図２】
0004641421.tif 000015
【図３】
0004641421.tif 000016
【図４】
0004641421.tif 000017
【図５】
0004641421.tif 000018
【図６】
0004641421.tif 000019