本発明に係るデータ統合装置は、例えば、複数の情報ソースにデータが分散されている環境に適用される。さらに詳しくは、列車を管理するシステムでは、複数の情報管理サーバが運用されており、複数の種類の情報を利用して様々な旅客用案内サービスが提供されている。この種のサービスとして、経路検索サーバの列車運行情報を利用した経路検索サービス、座席管理サーバの座席情報を利用した空席予約サービスがある。データ統合装置は、経路情報と座席情報とを統合し、統合データをユーザ側端末装置のアプリケーションプログラムに提供して、ユーザが統合サービス(経路・空席検索)を利用できるようにしている。
データ統合装置を利用するシステムは、データの元となる情報ソースの持つデータベースからデータを抽出し、ユーザ側端末のアプリケーションプログラムが利用しやすい形に加工(統合)し、ユーザ側端末にロードするというステップを行うことから、ETLシステムに対応するものでもある。
図1は、データ統合システム10のブロック図の一例である。データ統合システム10は、データ統合装置100と、ユーザ側端末(アプリケーション端末)130と、情報ソース140とを備える。ユーザ側端末130と情報ソース140とは、夫々、ネットワーク160を介して、データ統合装置100に接続される。
ユーザ側端末130は、スマートフォン、パソコン等のコンピュータ端末でよい。ユーザ側端末130には、例えば、経路・空席検索のための旅客案内用のアプリケーションプログラムがインストールされている。
情報ソース(ソースシステム)140は、データベース等のデータ群を管理する管理サーバであり、例えば、列車の運行管理サーバ、及び、列車の座席管理サーバである。列車の運行管理サーバは、列車の運行管理情報データベースを備え、列車の座席管理サーバは座席管理情報データべースを備える。複数の情報ソース140が、ネットワーク160を介して、データ統合装置100に接続される。データ統合装置100は、経路検索サーバ、そして、列車座席予約サーバ夫々から収集したデータを統合し、統合データ(アプリケーションデータ)をユーザ側端末130に提供するサーバであってよい。
管理システム10は、複数の鉄道事業者の管理サーバを網羅するものであってよい。複数の鉄道事業者によって、経路検索サーバ、そして、座席管理サーバが別々に運用されることがあるが、データ統合装置100は、複数の事業者夫々の管理サーバに接続してデータを収集することができる。
データ統合装置100は、通信モジュール120と、管理用ユーザインタフェースモジュール121と、クエリ生成モジュール101と、クエリ評価モジュール102と、クエリ実行モジュール103と、データ推論モジュール104と、データ格納モジュール110と、を備える。モジュールとは、データ統合を実現するための諸機能の一つ、又は、複数であり、プログラム、及び/又は、ハードウェアによって実現される。モジュールをユニット、又は、手段に言い換えてもよい。
通信モジュール120は、ネットワーク160を介して、ユーザ側端末130と情報ソース140夫々と通信して、データを送受信する。ユーザ側端末130のアプリケーションプログラムは、データ統合装置100に、論理データモデルに基づいてデータ検索用クエリ(アプリケーションクエリ)を送信する。アプリケーションクエリとしては、例えば、経路・空席検索クエリがある(後述の図10A参照)。
データ統合装置100はデータ検索クエリを受け付けると、アプリケーションのデータモデルと情報ソースのデータモデルとの間の対応関係であるマッピング情報(後述の推論ルール)に基づいて、複数の情報ソース140夫々に対するデータ検索クエリ(ソースクエリ)を生成する(クエリ生成モジュール101)。データ統合装置100のクエリ評価モジュール102は、生成した複数のソースクエリを評価する。クエリ実行モジュール103は、評価結果に基づいて複数の情報ソース140の夫々にクエリを送信する。
データ統合装置100のデータ推論モジュール104は、ソースクエリによって情報ソース140から収集したデータモデル(ソースデータ)を、推論ルール112にしたがって、ユーザ側端末のアプリケーションプログラム用のデータモデル(アプリケーションデータ)に推論、即ち、複数のソースデータを統合してアプリケーションデータを生成する。データ統合装置100は、このアプリケーションデータを、アプリケーションクエリの実行結果として、ユーザ側装置130のアプリケーションプログラムに送信する。なお、アプリケーションデータを統合データと呼ぶこともある。
“推論”とは、入力データから出力データを得るための処理を意味し、既述のとおり、入力データは、複数の情報ソース140から収集されたソースデータであり、出力データは、アプリケーションデータである。推論のためのルールを“推論ルール”という。複数のソースデータを統合するという推論ルールは,SQLにおける、テーブル結合(ジョイン)と同じである。
データ格納モジュール110は、データ統合のための管理データ、例えば、複数のソースクエリを評価するための基準(クエリ評価基準格納テーブル111)と、既述の推論のルール(推論ルール格納テーブル112)と、を格納する。さらに、データ格納モジュール110は、中間データ(アプリケーションデータを生成するためのデータ、即ち、ソースデータ)を格納する中間データ格納テーブル113を備える。
モジュール121は、管理端末(管理計算機)150に、データ統合のための管理用ユーザインタフェースを提供する。管理端末150は、例えば、クエリ評価基準格納テーブル111と推論ルール格納テーブル112とを設定する、又は、これらテーブルを更新する等の管理処理を、管理用ユーザインタフェースモジュール121を介して、データ統合装置100に適用する。
通信モジュール120は、例えば、ネットワークカードである、データ格納モジュール110は、記憶モジュールとしてのメモリ(非一時的記録媒体)である。ユーザ側端末130は、通信モジュール131と、記憶モジュール132と、制御モジュール133と、表示モジュール134と、入力モジュール135とを備える。制御モジュール133は、アプリケーションプログラムによる制御機能を備える。表示モジュール134は、例えば、液晶表示装置である。入力モジュール135は、例えば、ユーザからの入力を受けるタッチパネルである。情報ソース140も、通信モジュール141と、記憶モジュール142と、制御モジュール143とを備える。
図1Bに、データ統合装置100のハードウェアブロック図を示す。データ統合装置100は、サーバシステムとして構成されてよく、プロセッサ、又は、コントローラ12としてのCPUと、更新処理を実行するための制御プログラムや制御用データを記録するメモリ14(非一時的記録媒体)と、各種データ及びデータベースを記録するストレージ装置16と、を備える。
ストレージ装置16は、データ統合装置100に内蔵されるハードディスク等、及び/又は、ネットワーク160に接続されたストレージシステム、データセンタであってよい。プロセッサ12は、制御プログラムを実行することによって、既述のモジュール(101〜104)を実現する。クエリ評価基準格納テーブル111、推論ルーツ格納テーブル112は、中間データ格納テーブル113は、メモリ14又はストレージ装置16に格納される。
データ統合装置100からユーザ側端末130に提供されるアプリケーションデータは、例えば、図2に示すデータフォーマット(テーブル)1500のように構成される。アプリケーションデータは、経路データモデルと座席データモデルとが統合された経路座席データモデルであり、その項目には、経路ID(1501)と、経路乗車駅(1502)と、経路降車駅(1503)と、乗車時刻(1504)と、経路順序(1505)と、列車ID(1506)と、乗車駅(1507)と、降車駅(1508)と、空席(1509)と、料金(1510)とがある。
データ統合装置100は、経路検索サーバ(第1の情報ソース140)から経路データモデルを収集する。経路検索サーバは、データ統合装置100からのソースクエリに応答して、記憶モジュール142の列車運行管理データベースに記録されている物理データモデルに基づいて、経路データモデルを生成してデータ統合装置100に送信する。図3は、経路データモデルの一例としてのテーブルである。
図3のテーブル900は、経路ID(901)と、出発駅(902)と、目的駅(903)と、出発時刻(904)と、経路順序(905)と、列車ID(906)と、乗車駅(907)と、降車駅(908)とを含む。
データ統合装置100は、座席管理サーバ(第2の情報ソース140)から座席(空席)データモデルを収集する。座席管理サーバは、データ統合装置100からのソースクエリに応答して、記憶モジュール142の座席管理データベースに基づいて、座席データモデル生成してデータ統合装置100に送信する。図4Aは、A社の座席管理サーバによって生成された、座席情報としての座席(空席)データモデル1000の一例に係るテーブル、図4Bは、B社の座席管理サーバによって生成された、座席(空席)データモデル1100の一例に係るテーブルである。
A社は出発駅“八重洲”から、途中駅“原田町”の間で列車を運行し、B社は、途中駅“原田町”から目的駅“吉田町”までの間で列車を運行する。ユーザ側端末130のユーザが、出発駅“八重洲”から目的駅“吉田町”までの経路と座席を検索すると、検索される経路の情報は、出発駅“八重洲”から乗換駅“原田町”までの列車情報(列車IDと乗降時間)と、乗換駅“原田町”から目的駅“吉田町”までの列車情報(列車IDと乗降時間)とから構成される。
そして、検索される座席の情報は、A社の路線(“八重洲”から“原田町”)の座席データ(図4A)と、B社の路線(“原田町”から“吉田町”)の座席データ(図4B)とである。
図4Aに示すテーブル1000は、列車ID(1001)と、乗車駅(1002)と、降車駅(1003)と、空席(1004)と、料金(1005)とを含み、図4Bに示すテーブル1100は、列車ID(1101)と、乗車駅(1102)と、降車駅(1103)と、空席(1104)と、料金(1105)とを含む。
なお、経路検索サーバは、A社の列車運行情報と、B社の列車運行情報と、を統合して管理する。二つの路線をA社の路線とB社の路線として説明したが、二つの路線がA社に属する第1の路線と第2の路線であってもよい。
クエリ評価基準格納テーブル(111)とは、クエリ生成モジュール101が、アプリケーションクエリに基づいて生成した、複数の情報ソース140の夫々に対するソースクエリについて、複数のソースクエリ相互間の優劣を規定する指標である。クエリ実行モジュール103は、優先度が高いクエリから実行し、そのクエリによって、情報ソース140からデータモデルを収集する。そして、アプリケーションクエリと収集したデータ(或いは、データモデル)とに基づいて、優劣判断によって実行されなかった他のクエリに代えて、クエリを再生成することができる。換言すれば、実行されなかったクエリを、収集されたデータを利用して修正、補正する。クエリ実行モジュール103は、このような“2次クエリ”をクエリの送信対象である情報ソース140に適用する。
クエリを評価することが有用である理由について説明する。列車の管理データの態様、状況、形態等は列車の運行環境に依存して変動する。例えば、利用客が多い繁忙期、即ち、休日、祝日、週末、通勤通学時間帯等では空席が少なく、一方、利用客が少ない閑散期では、空席が十分にある。そこで、経路・空席検索に際して、閑散期では座席が容易に予約できるため、データ統合装置100は、経路を座席よりも優先して情報ソースを検索すれば、ユーザには、座席を予約できる経路の候補を多様に提供でき、一方、利用客が多い繁忙期では、座席の予約が困難であるため、座席を経路よりも優先して検索することにより、座席が予約できる確かな経路をユーザに提示できる。このように、列車の運行環境や外部要因に応じて、ユーザに提供できる検索結果を変化させることの方が好ましく、かつ、検索を効率的に進めることができる。
そこで、クエリ評価モジュール102は、経路を検索するためのクエリと、座席を検索するクエリとを、列車の運行環境に基づく等して評価し、そして、夫々のクエリの優劣を判定し、クエリの優先度に基づいてクエリを実行することによって、情報ソース140から収集されるデータをユーザの要望に適した検索結果になるようにしている。クエリ評価モジュール102は、ソースクエリを、例えば、クエリ評価基準格納テーブル111を利用して評価する。
図5は、ソースクエリを評価するためのクエリ評価基準格納テーブル111の一例である。クエリ評価基準格納テーブル111は、情報ソース140に対するクエリを評価するための複数の基準を定義している。クエリ評価基準格納テーブル111は、基準毎のID:基準項目(1111)と、クエリへの基準の適用の要否を判定するための適用条件(1112)と、クエリ種別(1113)と、クエリに適用される評価点(1114)とを含む。クエリ評価基準テーブル111は、業務の状況(例えば、既述の繁忙期、又は、閑散期等)に応じて、データ項目(“空席”、“乗車駅”、“降車駅”等)毎に評価量(評価点)を規定する。なお、基準項目毎に、有効又は無効を設定することができる。
クエリ評価モジュール102は、複数のソースクエリ夫々について、評価要件(適用条件1112、クエリ種別1113)を判定して、評価点の適用の要否を決定する。評価点が高いほど、ソースクエリの優先度は高くなる。例えば、繁忙期(適用要件)では、列車座席の検索クエリの評価点を高くして、座席検索クエリが経路検索クエリよりも優先的に実行されるようにしている。
図6に推論ルール格納テーブル112の一例を示す。このテーブルは、データ統合装置100のデータ推論モジュール104が複数の情報ソース140から夫々ソースデータを収集し、これからアプリケーションデータを生成するための規則を規定する。推論ルール格納テーブル112は、複数のルール毎のID(ルールID)1121と、頭部1122と、体部1123とを含む。
頭部1122は、アプリケーションデータのデータモデルを定義する。“経路空席”がデータの論理モデルであり、経路ID、順序、列車ID、乗車駅、降車駅、乗車時刻、空席、及び、料金が夫々データモデルのデータ項目である。
体部1123は、頭部1122のデータモデルを生成するためのサブモデルを定義するものであって、“経路”及び“座席”が夫々サブモデルである。サブモデルの論理和によって、頭部1122の“経路座席”のデータモデルが算出される。経路ID、順序、列車ID、乗車駅、降車駅、そして、乗車時刻は経路データモデルのデータ項目であり、列車ID、乗車駅、降車駅、空席、そして、料金が座席データモデルのデータ項目である。
データ推論モジュール104は、列車ID、乗車駅、そして、降車駅が同じ値のデータモデル(経路、座席)について論理和を適用して、“経路座席”のデータを算出する。なお、推論ルール格納テーブル112のデータモデル“経路座席”、“経路”、“座席”とは、複数のデータ項目と、各データ項目のデータ値との集合として定義された論理モデルである。
図7は、データ統合装置100が、アプリケーションデータをユーザ側端末130に送信するまでの動作を示すフローチャートの一例である。クエリ生成モジュール101(図1)は、ユーザ側端末130のアプリケーションプログラムからクエリ(アプリケーションクエリ)を受信すると(500)、情報ソース140へのデータ検索クエリ(ソースクエリ)を生成する(501)。図8は、ソースクエリを生成するステップ(501)の詳細を示すフローチャートの一例である。
アプリケーションクエリは、アプリケーションデータとしてのデータモデル“経路座席”(頭部:図6(1122))中の所定のデータ項目を用いて定義される検索条件である。クエリ生成モジュール101は、アプリケーションクエリで指定された情報をキーとして推論ルール格納テーブル112を検索し、当該キーを頭部1122に持つルールを抽出する。そして、クエリ生成モジュール101は、抽出したルールの体部1123に含まれる全てのサブモデルを入力モデルとしたリストを作成し、全ての入力モデル夫々に対するクエリを生成する(5021)。既述の推論ルール格納テーブル112(図6)を例にすると、“経路”、“座席”が夫々入力モデルである。
クエリ生成モジュール101は、全ての入力モデルのリストについてループ処理を行う(5022〜5024)。クエリ生成モジュール101は、ループ処理において、複数の入力モデルの夫々対してソースクエリを生成する(5023)。この結果、既述の推論ルール格納テーブル112(図6)を例にすると、第1の情報ソース(経路検索サーバ)に対する第1のソースクエリと、第2の情報ソース(座席管理サーバ)に対する第2のソースクエリとが生成される。なお、クエリ生成モジュール101は、推論ルール格納テーブル112以外の、例えば、一般の推論エンジンを用いて、ソースクエリを算出してもよい。
クエリ生成モジュール101が図7のステップ501(図8:5021〜2024)を終了すると、クエリ評価モジュール102は、クエリ生成モジュール101が生成したソースクエリを、既述のクエリ評価基準テーブル111を参照して、評価する(図7:502)。
図9は、クエリを評価するステップ(502)の詳細を示すフローチャートの一例である。クエリ評価モジュール102は、クエリ生成モジュール101から複数のソースクエリを受領すると、フローチャートを開始する。クエリ評価モジュール102は、複数のソースクエリの夫々ついてループ処理を適用する(図9:5031)。クエリ評価モジュール102は、ソースクエリについて、クエリ評価基準格納テーブル111を参照し、複数の基準が当てはまる場合には、夫々の基準についてループ処理を適用する(5032)。
クエリ評価モジュール102は、一つのソースクエリについて一つの評価基準を適用し、ソースクエリが、クエリ評価基準格納テーブル111(図5)の適用条件1112に一致するか否かを判定する(5033)。クエリ評価モジュール102は、一致しないことを判定すると(5033:NO)、次の評価基準の処理に移行する(5032)。クエリ評価モジュール102は、一致することを判定すると(5033:YES)、続いて、クエリの内容的要件(クエリ種別:1113)を判定する(5034)。
クエリ評価モジュール102は、クエリが種別要件に合致することをすると(5034:YES)を肯定すると、クエリの評価点に評価基準の得点1114を加算する(5035)。クエリ評価モジュール102は、ステップ5034を否定すると、ステップ5032に移行して、次の評価基準の処理を継続する。
クエリ評価モジュール102は、ステップ5033〜ステップ5035を繰り返し、全ての評価基準を処理すると(5036)、ステップ5037に移行し、全てのクエリについて、ループ処理を完了すると(5037)、図9のフローチャートを終了する。クエリ評価モジュール102は、複数クエリ夫々の評価点の合計に基づいて、複数クエリの間の優劣を設定、決定、判定する。
続いて、クエリ実行モジュール103は、クエリを実行するステップ503(図7)において、複数のクエリの中から優先度、即ち、クエリの評価点の合計が最も高いクエリを、当該クエリにとって検索となる情報ソース140に送信し、当該情報ソースからデータを収集する。
次いで、データ推論モジュール104は、ステップ504において、収集したソースデータに、推論ルール格納テーブル112のルールにしたがって、ジョインを適用する(推論の実行)。データ推論モジュール104は、ステップ504を終了すると、ステップ505に移行し、推論結果(アプリケーションデータ)が増えているか否かを判定する。
クエリ実行モジュール103が、評価点が最も高いクエリを情報ソースに送信してソースデータを収集した段階では、データ統合装置100は、一つのデータモデルしか収集していないために、データ推論モジュール104は、ステップ505を否定判定して、ステップ501にリターンする。クエリ生成モジュール101は、アプリケーションクエリと収集したソースデータを利用してクエリを再度生成し、このクエリに基づいて収集したソースデータを既に収集されているソースデータと統合する(504)。
クエリ実行モジュール103が、複数のソースクエリを夫々の優先度に基づいて、順に実行する過程で、データ推論モジュール104は、複数のソースデータを継続的に統合してアプリケーションデータを生成する。データ推論モジュール104は、ステップ505において、前回の処理で得られたアプリケーションデータと、今回の処理で得られたアプリケーションデータとを比較して、アプリケーションデータ(推論結果)が増えていれば、データの統合はまだ途中であるとしてステップ505を否定判定し、ステップ501にリターンしてフローチャートを継続し、一方、ステップ505を肯定判定すると、アプリケーションデータは完成されてユーザ側端末130に提供されてよいとして、ステップ506に移行する。データ統合装置100は、ユーザ側装置130にアプリケーションデータをアプリケーションプログラム用データとして送信し(506)、フローチャートを終了する。
次に、ここまでの説明に基づいて、データ統合装置100の動作を具体的に説明する。図10Aは、ユーザ側端末130にインストールされている経路・空席検索アプリケーションプログラムのGUI800の一例を示す。ユーザ側端末130の制御モジュール133は、記憶モジュール132に記憶されている経路・空席検索アプリケーションプログラムを起動すると、GUI800を表示モジュール134に表示させる。そして、制御モジュール133は、入力モジュール135へのユーザ入力をGUI800に適用する。
データ検索用の項目は、ユーザ側端末130が関与するデータモデル“経路座席”に属するデータ項目から選択されてよい。GUI800は、出発駅を入力する領域801と、目的駅を入力する領域802と、経路、空席検索を開始させるための入力領域803と、を備える。ユーザが出発駅名と目的駅名を入力した後、領域803を操作すると、制御モジュール133は、SQLを利用して、アプリケーションクエリ804(図10B)を生成し、これを、通信モジュール131を介して、データ統合装置100に送信する。
クエリ生成モジュール101は、アプリケーションクエリを受信すると(図7:500)、入力モデルのリストを生成する(図7:501、図8:5021)。クエリ生成モジュール101は、推論ルール格納テーブル112(図6)に基づいて、アプリケーションクエリに対応するサブモデル“経路”と“座席”を特定し、“経路”と“座席”とを入力モデルとしたリストを生成する。
次いで、クエリ生成モジュール101は、“経路”モデルと“座席”モデルとの夫々について、アプリケーションクエリに基づいて、ソースクエリを生成する(図8:5022〜5024)。図11Aは、“経路”に対するソースクエリ、即ち、経路検索サーバ(情報ソース140)に対するソースクエリ1201のSQLを示す。このクエリ1201は、アプリケーションクエリ804(図10A)に基づいて、出発駅(八重洲)と、目的駅(吉田町)の情報を備えている。
図11Bは“空席”モデルに対するソースクエリ1301(A社の管理サーバに送信される)のSQLを示し、図11Cは“空席”モデルに対するソースクエリ1301(B社の管理サーバに送信される)のSQLを示す。ソースクエリ1301のSQL(図11B)は、アプリケーションクエリ804に基づいて、出発駅“八重洲”と、可能性のある“列車ID”と、“空席”とを備えている。ソースクエリ1401のSQL(図11C)は、アプリケーションクエリ804に基づいて、目的駅“吉田町”と、“列車ID”と、“空席”とを備えている。
クエリ評価モジュール102は、ソースクエリ1201、1301、そして、1401の夫々を、クエリ評価基準テーブル111(図5)に基づいて評価する(図7:502、図9)。クエリ評価モジュール102は、ソースクエリ1201とクエリ評価基準テーブル111の夫々の基準と、を比較する。ソースクエリ1201は、“出発駅”と“空席”を含むために、クエリ評価基準テーブル111の基準ID:C03と基準ID:C04との二つの基準夫々について、クエリ評価モジュール102は、ステップ5033とステップ5034(図9)とを肯定し、ソースクエリ1201がこれら二つの基準に合致することを判定する。そして、クエリ評価モジュール102は、二つの基準夫々の点数“50”を加算した値である“100”をソースクエリ1201の基準点の合計として決定する(図9:5035)。
クエリ評価モジュール102は、ソースクエリ1301とクエリ評価基準テーブル111の夫々の基準と、を比較し、ソースクエリ1301は、“出発駅”と“空席”とを含むために、基準ID:C02と基準ID:C03との二つの基準について、ステップ5033とステップ5034(図9)とを肯定し、ソースクエリ1301がこれら二つの基準に合致することを判定する。
そして、クエリ評価モジュール102は、基準ID:C02の評価点“10”と、基準ID:C03の評価点“50”とを加算した値である“60”をソースクエリ1301の合計点として決定する(図9:5035)。
さらに、クエリ評価モジュール102は、ソースクエリ1401とクエリ評価基準テーブル111の夫々の基準と、を比較し、ソースクエリ1301は、“降車駅”と“空席”とを含むために、基準ID:C02と基準ID:C04との二つの基準について、ステップ5033とステップ5034(図9)とを肯定し、ソースクエリ1401がこれら二つの基準に合致することを判定する。
そして、クエリ評価モジュール102は、基準ID:C02の評価点“10”と、基準ID:C04の評価点“50”とを加算した値である“60”をソースクエリ1401の合計点として決定する(図9:5035)。なお、クエリ評価モジュール102は、ユーザ側端末130による検索の実行(図10A)が閑散期に行われたものとして、基準ID:C02に対するステップ5033(図9)の判断を肯定している。
クエリ実行モジュール103は、ソースクエリ1201、1301、そして、1401とを互いに比較して、評価点が最も高いソースクエリ1201を優先して実行する(図7:503)。クエリ実行モジュール103は、ソースクエリ1201を経路検索サーバ(情報ソース140)に送信する。経路検索サーバ(情報ソース140)の制御モジュール143は、通信モジュール141を介してソースクエリ1201を受けると、ソースクエリ1201に基づいて記憶モジュール142の列車運行管理データベース(物理モデル)を検索して、出発駅が“八重洲”であり、目的駅が“吉田町”である“経路”モデル900(推論ルールテーブル112(図6)の体部1123の経路データモデルに相当する図3のテーブル)を生成し、これをデータ統合装置100に送信する。
そして、データ推論モジュール104がステップ505(図7)を否定判定することにより、クエリ生成モジュール101は、クエリ生成を再度行う(図7:501)。クエリ生成モジュール101は、アプリケーションクエリ804(図10B)と“経路”データモデル900とに基づいて、A社の空席管理サーバに対するソースクエリと、B社の空席管理サーバに際するソースクエリとを、再度生成する。図11Dは、A社の空席管理サーバに対するソースクエリ1302(再生成後のクエリ)のSQLを示し、図11Eは、B社の空席管理サーバに対するソースクエリ1402(再生成後のクエリ)のSQLを示す。
クエリ生成モジュール101は、“経路”モデル900(図3)を参照することによって、これに含まれる乗換駅“原町田”を認識し、これを含めて空席管理サーバに対するクエリを生成することができる。この事は、再生成前のクエリと再生成後のクエリとを比較すると容易に理解される(クエリ1301と1302との比較、クエリ1401と1402との比較)。
クエリ評価モジュール102は、クエリ評価基準格納テーブル111(図5)を参照して、ソースクエリ1302と1402とを夫々評価する。その結果、スースクエリ1302及び1402は共に評価点が“100”になるため、クエリ実行モジュール103は、ソースクエリ1302をA社の座席管理サーバ(情報ソース140)に送信し、ソースクエリ1402をB社の座席管理サーバ(情報ソース)に送信する。これら情報ソース140の制御モジュール141は、通信モジュール141を介して、ソースクエリを受信すると、ソースクエリに基づいて、記憶モジュール142の座席管理データベース(物理モデル)を検索して、ソースクエリ1302,1402の夫々対応する“座席”モデル(推論ルールテーブル112(図6)の体部1123の座席データモデルに相当するテーブル1000(図4A)、同テーブル1100(図4B))を生成する。
データ推論モジュール104は、ステップ504(図7)によって、“経路”モデル900(図3)、“座席”モデル1000(図4A)、“座席”モデル1100(図4B)を、推論ルール格納テーブル112の頭部1122のルールにしたがってジョインし(テーブル統合)、ステップ505を経て、アプリケーションデータ(“経路空席”モデル1500:図2)を構成し、ユーザ側端末130に、アプリケーションクエリ804(図10B)の応答として送信する。
ユーザ側装置130の制御モジュール133は、アプリケーションデータに基づいて、経路空席検索結果のビジュアル情報を、表示モジュール134に表示する。図12は、経路空席検索結果の情報の表示例である。図12によれば、経路空席の候補が5件あることが提示され、そして、5件の候補のうちの1件の系統図が提示される。
経路・座席の統合モデルを検索する場合、閑散期では、座席に余裕があるために、経路モデルの検索を優先することができ、経路検索の結果に基づいて座席検索を進めればよい。この結果、ユーザが所望する経路について座席を提示することができると共に、座席モデルの検索数を制限できるために、検索を効率よく進めながら、データ量を制限してネットワーク負荷を抑えることができる。
既述の説明は、列車運行の閑散期における経路・空席検索に関するものであったが、以下説明するのは、列車運行の繁忙期における経路・空席検索に関するものである。
列車運行の繁忙期では、予約可能な座席数が減少するため、経路・空席検索に際しては、経路検索よりも空席検索を優先し、空席がある列車について経路検索を行う方が、座席を確保しようとするユーザの要望に適することは先に説明したとおりである。そこで、データ統合装置100は、座席検索のためのクエリを経路検索のためのクエリよりも優先されるように、前者のクエリの評価点を高くしている。
データ統合装置100のクエリ生成モジュール101は、アプリケーションクエリ804(図10B)に基づいて、ソースクエリ1201(図11A)、ソースクエリ1301(図11B)、ソースクエリ1401(図11C)とを生成する。そして、クエリ評価モジュール102は、これらクエリを、クエリ評価基準格納テーブル111を参照して評価する。
ソースクエリ1301は、クエリに“出発駅”と“空席”を含むため、基準IDのC01(繁忙期)とC03に合致し(図5)、ソースクエリ1301の評価点は合計で150になる。ソースクエリ1401は、クエリに“目的駅”と“空席”を含むため、基準IDのC01(繁忙期)とC04に合致し、これも150点として評価される。一方、ソースクエリ1201は、クエリに、空席を含まず、乗車駅と目的駅を含むため、繁忙期か閑散期かに拘わりなく、基準IDのC03とC04に合致し、100点として評価される。
クエリ実行モジュール103は、ソースクエリ1201、1301、そして、1401を互いに比較して、評価値がもっと高いソースクエリ1301と1401とを、ソースクエリ1201よりも優先して実行する(図7:503)。クエリ実行モジュール103は、ソースクエリ1301をA社の座席管理サーバ(情報ソース140)に送信し、ソースクエリ1402をB社の座席管理サーバ(情報ソース140)に送信する。これら情報ソース140の制御モジュール143は、通信モジュール141を介して、ソースクエリを受信すると、ソースクエリに基づいて記憶モジュール142の座席管理データベースを検索して、ソークエリに対応した“座席”モデル(図13のテーブル1910、図14のテーブル2010)を生成する。情報ソース140の通信モジュール141は、データ統合装置100に“座席”モデルを送信する。
図15は、A社の座席管理サーバ(情報ソース140)の座席管理データベースの“座席”モデル1700を示し、列車運行が繁忙期にあることから、座席に余裕が少ないことが分かる。A社の座席管理サーバの制御モジュール143は、座席管理データベースから空席がある列車(ID:T02)の管理データを抽出、選択、決定等して座席に余裕がある“座席”モデル(図13:1910)を生成する。
図16は、B社の座席管理サーバ(情報ソース140)の座席管理データベースの“座席”モデル1800を示し、列車運行が繁忙期にあることから、座席に余裕が少ないことが分かる。B社の座席管理サーバの制御モジュール143は、座席管理データベースから空席がある列車(ID:U02)の管理データを抽出、選択、決定等して座席に余裕がある“座席”モデル(図14:2010)を生成する。なお、情報ソース140がソースクエリに対応する管理情報をデータ統合装置100に送信し、データ統合装置100がデータモデルを生成してもよい。
そして、データ推論モジュール104がステップ505(図7)を否定判定することにより、クエリ生成モジュール101は、先に実施されなかった経路検索クエリ(1201:図11A)を再生する(図7:501)。クエリ生成モジュール101は、アプリケーションクエリ804(図10B)と、“座席”モデル1910(図13)と、“座席”モデル2010(図14)と、に基づいて、経路検索サーバへのソースクエリを生成する。図17は、このソースクエリ2102のSQLである。このSQLをクエリ1201として示したSQL(図)11A)と比較すると、前者のSQLによって、経路検索の対象を座席予約が可能な列車(T02:図13、U02:図14)に絞れることが分かる。
クエリ実行モジュール103は、ソースクエリ2102(図17)を経路検索サーバ(情報ソース140)に送信する。経路検索サーバの制御モジュール143は、通信モジュール141を介してソースクエリ2102を受けると、ソースクエリ2102に基づいて記憶モジュール142の列車運行管理データベースを検索して、出発駅が“八重洲”であり、目的駅が“吉田町”であり、列車IDがT02、又はU02である“経路”モデル2110(図18)を生成してデータ統合装置100に送信する。
データ推論モジュール104は、ステップ504(図7)によって、“経路”モデル2110(図18)、“座席”モデル1910(図13)、“座席”モデル2010(図14)を、推論ルール格納テーブル112の頭部1122のルールにしたがって、“経路”モデルと“座席”モデルとのジョイン(テーブル結合)を行い、ステップ505を経て、アプリケーションデータ(“経路空席”モデル:2200(図19))を生成して、ユーザ側端末130に、アプリケーションクエリ804(図10B)の応答として送信する。
ユーザ側端末130の制御モジュール133は、アプリケーションデータに基づいて、経路空席検索結果の情報を、表示モジュール134に表示する。図20は、経路空席検索結果の情報2301の表示例である。図20によれば、経路空席の候補が1件あることが提示され、その1件の系統図が提示されている。なお、ユーザ側端末130は、アプリケーションデータを、データ統合装置100から論理モデルとして受け取るため、情報ソースの140の物理データを二重に管理する必要はない。
既述の実施形態は、本発明の例であって、本発明は、実施形態に限定されない。データ統合装置100は、列車の運行を管理するシステムに適用される他、ユーザが購入を望む商品を検索するシステム等、複数の情報を統合しながら各種の検索を行うような各種の検索システムに適用することができる。