我々の研究の特色は、以前より提案している「絵・抽象的データ間の宣言的双 方向変換の枠組」の時系列方向の拡張により、簡単な宣言的記述のみで、アプ リケーション内のデータの動的挙動をアニメーションとして変換することがで きることである。レイアウトや動きに関する制約解消が行われることによって、 アニメーションを半自動生成することができるのである。
具体的には、このモデルにおけるアプリケーションデータの視覚化は、アプリ ケーションのデータ表現(AR)から 絵のデータ表現(PR)への一連の変換と考え る。逆に、ユーザの絵に対する操作/変更のアプリケーションデータへの反映 は、 PR から AR への変換として捉える。抽象構造表現(ASR)と絵構造表現 (VSR)とは,この変換を AR や PR に依存せずに実現するためのもので、それ ぞれ AR と PR との構造を表すための一般的な中間表現である。つまり、 AR→PR の変換を、 ASR→VSR の変換で表現する。ま た、それは宣言的に対応規則によって記述できる。例えば、グラフ構造の視覚 化のためには、以下のような規則を宣言する:
node(X) :- circle(X,15,[]), label(l(X),X,[]), contain(X,l(X),0,[]). edge(A,B) :- connect(A,B,center,center,[]), adjacent(A,B,1).これに対し、
node(a). node(b). ... node(f). % ノード edge(a,b). edge(a,c). % エッジ ... edge(c,f). edge(d,b).のようなグラフの具体的なデータを与えると、自動的にグラフが描画される。
今回研究開発するシステムにおいては、このマッピングの部分にKLICを使用し、 また、KL/1等で書かれた並列アルゴリズム及びプログラムの視覚化に対応でき るようにする。また、三次元の視覚化用のVSRプリミティブを用意し、高速な 三次元表示に対応する。
さらに、アニメーションを扱うため,双方向変換モデルを拡張する。アニメー ションの実行を,アプリケーションの実行にともなって変化していくアプリケー ションデータの列,それに対応する図の列,及びそれらをつないでいく「操作」 の列としてとらえ、アプリケーションが何らかの「操作」の実行をすると,モ デル内の各データはそのデータ表現上での対応する「操作」によって次の状態 に移り、同時に絵のデータも対応する「操作」によって,次の状態に移る.こ こで、抽象構造表現(ASR)上での操作を「抽象操作」絵構造表現(VSR)上での操 作を「遷移操作」と呼ぶ。それぞれの「操作」間を変換規則で対応づけ,遷移 方法の指定ができるようにすることにより、アニメーションの作成者は,この 二つの間の対応規則を与えることで様々なアニメーションを作成できる。また、 ユーザが指定しない部分は、操作のそれぞれの前後のモデル上でのデータの視 覚化をキーフレームとして、その間を保管することにより、アニメーションの データを自動生成する。
具体的には、先のグラフ上でノードの移動が弧を描くようにするためには
turn(X) :- move(X, [clockwise]).といった遷移操作の変換規則を指定するだけで良く、ノードの位置の変化によ る配置の変化などは、制約解消系が自動的に行う。本例では clockwise といっ たアニメーションに対する属性を付加することにより、アニメーションの遷移 時にノードが時計回りに移動するアニメーションが起こることになる。
今回研究開発するシステムにおいては、このようなアニメーションの遷移則に よる生成を行う部分をKLICに移植し、並列アルゴリズムの視覚化を行えるよう にする。