(1) メディエータと共通モデル
メディエータアーキテクチャは複数の異種情報源に対して統合的なビューを定 義することを目的に提案されたもので、情報源、ラッパー、メディエータから 構成される。
文献[3]ではラッパーの共通モデル記述 としてのオブジェクト交換モデル (OEM; object exchange model) を複合オブ ジェクトとして定義している。
ところが演繹オブジェクト指向モデルの観点からの拡張を考えれば、単一の情 報源に閉じたビューだけでは以下の点で不十分である。
さらにルールと包摂関係を記述できるが、モジュールについてはそれ自体が局 所的であるため、メディエータに輸出することは考えにくいので、共通モデル としての QUIXOTE には モジュール指定はないものとする。
メディエータは、複数の情報源のそれぞれの共通モデルを使い、統合された一 種のビューを定義する。文献[3]のメディ エータ仕様記述言語は複数の情報源を意識したオブジェクト識別子の生成に ILOG で提案された Skolem 関数を使うなど興味深い点も多いが、より大きな 問題点がある。
本研究では、情報源の共通モデルを QUIXOTE としたが、上記のようにメディエータ仕様記述言 語と共通化することによって、階層的なメディエータ記述が可能になる。 QUIXOTE 自体は情報源 の記述や包摂関係のマージ機能を持っていないので、QUIXOTE を拡張した新しい知識表 現言語 QUIK ( QUIXOTE in Kyoto) を設計することにした。したがって情報源の共通モデルも QUIK で の記述とする。
QUIK プログラム P は、データディクショナリ /ディレクトリ( DD / D ) D 、情報源関係 I、包摂関係 S、 ルールの集合 Rからなっている。つまり
情報源の手続き的意味は QUIXOTEにおけるモジュールの外部参照と同じである。情 報源識別子が省略されると自情報源を探索する。情報源関係は、この情報源/ メディエータがどの情報源を参照するか、どの情報源のルールを継承するかを 指定する。
一般的にルール型言語では単なる外部参照か、継承かで意味が異なっているの で2種類の情報源関係を導入した。ルールでの情報源の外部参照は、ここで規 定する参照関係に従っていなければならない。これは包摂関係の一貫性を保つ ためである。
情報源 I が情報源
I 1 ,
I 2 , … ,
I n
を参照しているとき、それぞれの包摂関係を
L ,
L 1 ,
L 2 , … ,
L n とすると、
I の包摂関係は
L ∪
L 1 ∪
L 2 ∪ … ∪
L n
から得られる包摂関係である。一般的に束
L 1 と
L 2 の合併
L 1 ∪
L 2
は必ずしも束とはならない。この束の生成アルゴリズムはよく知られている
[1]が、実際には が得られる危険性があるので、QUIK ではメディエー
タ作成時の支援環境と位置づけ、ここでは利用者の対話的構築によって可能と
している[2]。この構築の過程で生じ
る同値関係が新たに DD/D に貯えられる。束 L
1 とL 2 から生成できる束を
と書くことにする。
(簡略化のために包摂関係定義とそれから生成される束を同
一視している)、そして
のとき、L' を I , I 1 , I 2 , … , I n に共通の包摂関係として定義し、各情 報源を以下のように考える。
これによって関係するすべての情報源はメディエータによって定義されること によって、メディエータ内で一貫性をもった大域的な包摂関係をもつことにな る。つまりメディエータで生成されたこの包摂関係は関係する情報源に輸出さ れ、各情報源での制約解消や属性継承は、対応するメディエータから呼び出さ れたときにはこの制約解消に従うことになる。
(3) 仮説生成と情報源の探索
仮説生成と条件付き問合せは部分情報をもった情報源に対する問合せ処理で有 効である。仮説生成は QUIXOTEでは制約論理型言語と異なり導出列を
の3つ組として考えた ( G iはゴールの集合、A iは解くべく包摂制約、C
iは解制約) が、オブジェクトのゴールが充足され
さえすれば、充足されない制約A n のみを仮説として生成し、解のひとつとして( , A n
, C n ) を生成してき
た。これはオブジェクトの存在は仮説としては生成しないが、その属性は仮説
とすることに対応していた。これはまた解の生成の爆発を防ぐことにも役立っ
ていた。
分散環境ではあらかじめ指定された情報源にオブジェクトが存在しないとして も、他の情報源には存在するかもしれない。したがって上記の制限を緩和する ことが有効なことが多い。しかし一般に開放系の中で必要なオブジェクトを探 索するのは事実上不可能なので、メディエータという閉鎖系の中でオブジェク トを探索することを考える。
QUIK プログラム ( D , I , S , R )、問合せ ?-G に対する失敗した導出列の最終ノードが
N i = (
G i ,
A i ,
C i ) であるとする。DD/D
D が、オブジェクトに対して情報源識別子を返すとする。
のとき、
D が o に対して
Ic = {
s 1 ,
s 2 , … ,
s n } を返すとすれば、
N i から
を生成することができる。さらにオブジェクトの存在が解消された後、属性に 関する制約解消にも DD/D を用いることができる。情報源に対応する変数が実 行時に束縛されていない場合、この DD/D によって情報源を見つける。
たとえば
のとき、メディエータ m に対する問合せ?-p はこのままでは失敗する が、DD/D により、r が s1 にあることを知り、s1 : rの代替サブゴールにより、候補解が得られ る。
QUIK における導出には、最終ノード ( G n , A n , C n ) の種類に応じて以下の種類がある。
ただし 3 の効率が問題なので、実際には何らかの制限を設ける必要があるだ ろう。
「研究の背景と目的」で述べたように、ネッ トワーク環境における情報源は自律性が高く、不安定な場合を考えなければな らない。メディエータ仕様記述での動的要素として以下のものがある。
さらに共通モデルとメディエータ仕様記述を QUIK で共通化することによって、 特定のメディエータで得られない解を上位のメディエータを用いることによっ て、求めることができる可能性がある。そのための推論方式と対話環境も検討 している。
(4) 応用
QUIK のさらなる拡張を考えるためにワークフローモデルと地理情報処理を検 討している。
[ワークフローモデル]
まず独自のモデルとして、入出力に制約をもち、内部にエージェントをもった 活動オブジェクトに基づいたものを定義する。
活動オブジェクト (activity object) は仕事の単位に対応しており、 以下のように再帰的に定義される。
ここで I は a
への入力、O は a からの出力、P は
a に実行主体であるエージェント、S は a を実行するための
ワークフローテンプレート (WFT) である。直観的には、a が入力 I を受けとると、
P は必要な仕事を実行し、出力 O を出す。そのとき a は
必要なら I を分割してS にその依頼を行ない、実行を監視し、結果を合成して
出力 O を生成する。WFT W は活動オブジェクト a1 , … , の集合 として定義される。
WFT 中には、活動オブジェクト間に以下に示す2種類のフローが以下のように 定義できる。
2番目の定義は、入力の最小性を保証するものである。
例を考えよう。4つの活動オブジェクト a1, a2, a3, a があったとする。 ただし、 O1 = { o 1, o 2 }, O2 = { o 2, o 3 }, O3 = { o 3, o 1 }, I = { o 1, o 2, o 3 } である。このとき以下のワークフローが考えられる。
一方、 { a 1, a 2, a 3 } =⇒ a は、入力の最小性を満たさないため、ワークフローとは扱わない。
WFT からさまざまなクラスに属するワークフローを定義するため、WFT 上での 制限をいくつか定義する。
もしであれば、
W は =⇒ に関して循環しているという。
また、
であれば、
W は −→ に関して循環しているという。
循環ワークフローは、作業のフィードバックに相当する。
であったとすれば、a 1 と a 2 の間には少なくとも2本のフローが存在する。 集合の場合には、 三角性制約は次のように定義される。
ワークフローの集合 S を 考える。ただし、 その要素はいずれも S 中の他のワークフローに つながっているとする。すなわち、
かつ、S は単一のグラフで構成されているとする。 先にあげたワークフローの定義を拡張し、このようなワークフローの集合 S を一般にワークフローと呼ぶ。 このとき、先に述べた閉鎖性、循環性、冗長性、三角性はいずれもこの定義上で も考えることができる。なお、フローが陰に表現されているため、このようなワー クフローの集合は、単なる活動オブジェクトの集合としても考えることができる。
2つのワークフロー S 1
と S 2を考える。
これらの間の順序関係を部分集合関係、すなわち
によって定義する。この順序関係上で、WFT 中の極大集合を極大ワークフローという。
極大ワークフローにおいて、親を持たない活動オブジェクトを単に親という。
この定義に従うと、一般にはWFT は複数のワークフローを定義する。
閉じた WFT において、作業全体をあらわすワークフローは必ず閉じている。す なわち、閉じた WFT は、少なくとも一つの閉じたワークフローの定義を持つこ とが保証される。 このことは、閉じていないワークフローには、作業を構成する活動オブジェクト のいくつかが欠けているような作業の定義が含まれているということを意味する。
WFT の実行モデルは、水平フローと垂直フローにそれぞれ対応した2種類のモ デル P-box と B-box とから構成される。
水平フローは以下のようにプロダクションルールとして定義できる。
の右側は条件部であり、左側が行動部である。このルールは前向きに評
価される。つまり、それぞれの条件部は対応する活動オブジェクトの終了条件
を受け取ることによって成功となる。すべての条件部が成功することによって
行動部が活性化される。このようなプロダクションルールの集合がプロダクショ
ンシステムであり、WFT 中の P-box に格納される。
一方、垂直フローは Prolog のような論理プログラミング言語の確定節の集合 として表現される。つまり活動オブジェクト a が子オブジェクト a 1 , a 2 , … , a n , を生成したとき、その実行モデルは
と表現される。直観的には、a から制約/束縛情報が a 1 , a 2 , … , a n , に伝播され、それらすべての子オブジェクトの実行が成功で終了すると、 a の実行が終了する。つまりこれらは後向きに評価される。これら確定節の集合 は WFT 中の B-box に格納される。動的に生成される子オブジェクトも ひとつの活動オブジェクトであるので、その子オブジェクト自体は P-box に 格納される。
例として査読過程を考えてみよう。 このプロセスは WFT として以下のように定義できる。
実際のワークフローのプロセスでは、査読論文, 委員長, 秘書, 委員, などは 実行前に実体化されるべきだが、それは次節で説明する。
ここで注意すべきことは、{ 査読 } のように指定されている子オブジェクトが、 委員長が全査読結果を受けとった後、動的に複数生成されなければならないこ とである。したがってこの例の実行モデルは以下のようになる。
まず3つのプロダクションルール「受付」, 「分配1」, 「送付分配1」
が P-box に生成される。「分配1」が起動された後で、「分配21」、
「分配22」、…、「分配2n」が生成され、その活動オブジェクトが
P-box に、実行を制御するためのルール (確定節) が B-box に生成される。
各活動オブジェクト「分配2i」が「分配2」を起動するとそれに対応した
「査読」のための活動オブジェクトとルールがそれぞれ P-box と B-box に置
かれる。
実行時に P-box に挿入される活動オブジェクトは新たに生成されたものであっ て、既存のオブジェクトとは異なっている。したがってプロダクションシステ ムとしての P-box の動的な更新は既存のものの保守的拡張であって、その意 味論を変更したり新たに競合を生じさせるものではない。
これまでの WFT を実際の仕事に適用するためには、WFT 中の入力、出力、エー ジェント等を実体化しなければならない。そのためにオブジェクト間に順序を 挿入し、それを元にワークフロー間の順序を考える。このようにして実体化さ れたワークフローを ワークフローインスタンス (WFI) という。WFT と WFI は本質的には同じであり、順序関係で相対的な名称でしかないが、ここで は具体的な仕事を行なうものとして WFI を考える。
入力、出力のオブジェクトであるメッセージオブジェクトの定義域 M とエージェントの定義域 P を考える。活動オブジェクト a = ( I , O , P , S ) は基本的には I から O への関数であり、以下のように定義される。
も
上の関数として
定義できるが、ここでは異なった定義域
を考えることにする。つまり入出力がたとえ同一でもエージェントの違いによっ
て活動オブジェクトを異なったものとして定義するためである。
活動オブジェクト a = (
I , O ,
P , S ) に対して、
I に
I' = {
i 1 ,
i 2 , … ,
i n } 、
O に
O' = {
o 1 ,
o 2 , … ,
o m } 、
P に
P' = {
p 1 ,
p 2 , … ,
p k }
を割り当てることを考える。このためには
,
はそれぞれ
,
で半順序集合であると仮定する。
ただし誤解のない限り
の下付文字は省略する。この割り当てを
と書く。この割り当ては型の特化に対応しており、
という関係にある。つまり は Smyth 順序で、この成立が割り当て
であることの必要十分条件となっている。一部のみの割り当ての場合でも
であるので問題はない。となる。割り当て θ は WFT W に対しては Wθ = { a 1θ , … , a mθ } となる。
先の査読過程の例を考えよう。WFT「会議査読」を「CODAS 査読」 に実体化するためには
を考える必要がある。WFT「会議査読」は実体化されて「CODAS査読」という WFI が生成されるが、それも上にならって
と書くことにする。WFI として実体化されることによりよってその実行が始まる。
WFT も WFI も実体としては同一であったので、それらの間には割り当てによっ て順序が付けられる。 W 1 = { I 1 , O 1 , P 1 , S 1 } と W 2 = { I 2 , O 2 , P 2 , S 2 } に対して
と定義される。
これまでに定義した各種情報がワークフロー用のデータベース、つまり ワークフローベース (Workflow Base) に格納される。議論を単純化するために、 WFT/WFI、活動オブジェクト、メッセージオブジェクト、エージェントなどの 識別子は大域的であるとする。
ワークフローベースは WFT (WFI を含む) の集合と によって定義される。ここで WFT は WFI も含むために
定義を一般化しよう。つまり各 WFT W は特化し
た上位 WFT W' の識別子と割り当て情報を含む。
その結果、ワークフローベースは以下のように構成される。
ワークフローベースの一貫性制約としては以下の1種類がある。
に基づいて WFT 間の順序が矛盾なく定義されている。
[連続オブジェクトとしての地理情報]
地理情報の大きな特徴としてオブジェクト同定の曖昧さがある。その主な原因 は対象の時空間にわたる連続性である。たとえば河川は、流れが分岐したり、 合流しながら、最後は海に流れ込む。それは支流や本流、あるいは流れている 地域に依存して、名前を変えることが多く、それらの境界も必ずしもはっきり していない。またそれらは歴史的に流れを変えていることもある。道路も同様 な例である。別の例としてイベントがある。イベントの開催される地域は必ず しも行政区画とは一致せず、恣意的な要素もある。たとえば「祇園祭」という イベントの地域は、鉾の巡行、交通規制、関連寺院など観点によって異なって くる。
もうひとつの大きな特徴としては、地理情報の中心をなす空間データは、それ がたとえ複雑なものであったとしても、地球という空間座標の中で絶対的な位 置情報を持ちうることである。たとえば地図上で「銀閣寺」という名前で表わ される地理実体は、寺そのものを表したり、境内を表したり、周辺地区をも含 む場合があるが、それぞれの空間実体は幾何学的には明確に表現できる。
空間データを表現する空間オブジェクトを
g 1 ,
g 2 とする。具体的な幾何
学的実体を表現するのは複雑なので、ここではその表現には触れない。これは
空間的な包含関係が明確に設定できるので、その順序を
G で定義する。
集合論的な操作、合併 ∪G、
共通部分 ∩G 、差 / G
も定義できることを仮定する。この空間オブジェクトを使って地理オブジェクトを
o [ loc = g ]
のように表現することにしよう。
o はアトム、loc は空間オブジェクトを
指す特殊な属性名、g は空間オブジェクトであ
る。このような表現をとることによって、地理情報の連続性は空間オブジェク
トの中で幾何学的に表現することが可能となる。
空間オブジェクトに基づいた地理オブジェクトを同定するために特殊な属性 inc を導入する。QUIK オブジェクト o 1 , o 2 , o 3 、空間オブジェクト g 1 , g 2 の間に
という関係があったとき
と定義する。 inc に関しては半順序関係
が成立することを仮定する。
地理的な名称では別名を付けることが多い。地理オブジェクト o1 [ loc = g 1 ] に別の地理オブジェクト o 2 を o 2 = o 1 [ loc = g 1 ] と対応付けたとき、さらに o 2 の一部 o 2 [ loc = g 2 ] を o 3 と対応させたとする。 すると
が得られる。QUIXOTE ではこれは構文的に禁止しているが、空間データの特殊性 を考え、
と定義する。上の例では、 g 2 は g 1 の部分空間であるので、 o 3 = o 1 [ loc = g 2 ] が得られる。また o 1 = o 2 [ loc = g 2 ] o 2 = o 1 [ loc = g 1 ] という定義が与えら たとき、
が得られ、これは矛盾ではない。
この地理オブジェクト関係を QUIK の包摂関係に組み込むためには、 以下について考察しなければならない。
複数の情報源を統合しようというとき、人によるオブジェクト同定が行われる こともある。したがってメディエータ仕様記述としての QUIK プログラムの DD/D には、大域的包摂関係を生成する際に生じる同値関係の他に、利用者が 自由に上のような同定関係を導入することができる。これら同定関係および空 間オブジェクトの性質を使った制約解消と導出については今後の検討課題であ る。
(5) 外部発表論文リスト
本研究に関連した論文発表は以下の通りである。
ソフトウェアとしての成果
本研究開発でのソフトウエアとしての研究成果は
ステップ数は現在の予想では、それぞれ Java (とネイティブコード呼出の C プログラムを含めて)で約1万である。また付属ドキュメントとしては、
(7) 残された課題
本研究を一言でいえば、QUIXOTE を 分散環境に適用し、いわゆる「ネットワーク指向知識表現言語」へのアプローチを採っている ことである。QUIK だけに限定しても以下のような課題が残っている。
自己評価
QUIK はメディエータシステムの拡張として、マルチデータベースとマルチエー ジェントシステムの中間的な位置を占め、データベース的な観点からは妥当な 研究としてまとまったものになった。また本稿では応用について述べるスペー スがあまりなかったが、応用のひとつとして検討したワークフローモデルは予 想外のかつ予想以上の成果であった。
一般的に大学においては研究の継続性がとりにくく、本研究は2年計画ではあっ たが研究協力者の異動等で本年度再立ちあげが必要で、それに予想以上の時間 がかかった。QUIXOTE 外の類似言語の評価の不足が反省点としてある。