ボンドとその誘導ルール
ユーザーとの対話状況を記述するために、インタラクショングラフというものを考えている。基本的に、以前からあるハイパーリンクによる状態遷移グラフだが、次の2点が違う。
- シーンという単位で状態をグループ化ができる。シーンは入れ子にできる。
- 状態をボンドという辺でつなげることができる。
ボンドはchemical bondのことで、次のような絵をイメージすればよい。
ボンドで結合された一群の状態(のオカレンス)は、複合状態(化合物に相当)を形成する。元素(elemental state)以外の化合物(compound state)では、状態遷移を行うのは複合状態となる。シーンは、複合状態がその世界線束を描く時空領域(リージョン)のようなものだ。
ボンドの記述を律儀にすると面倒なので、初期状態のボンドだけを書く。これを基本ボンドと呼ぶ。基本ボンドと状態遷移パスから、次のルールで誘導ボンドを付け加える。
- ボンドをたどっていけるノードにはボンドを足す。ボンドの推移的閉包を作ることになる。
- 既にあるボンドと、近距離(シーン内)遷移パスをたどっていけるノーにはボンドを足す。遠距離遷移ではボンドは完全に壊れる。
- 遷移が可逆(reversible)のときは、逆向きの遷移もたどる。
すべての誘導ボンドを加えたグラフが実際のインタラクショングラフになる。将来、同期機構を入れるかもしれない。誘導ボンドを含めたボンドで結ばれた状態(のオカレンス)は、同時にビュー上に存在することができる。状態(のオカレンス)の可達性は、ボンド(空間方向)と遷移(時間方向)の区別をなくしたグラフ上で定義される。