[Glue!] 名前の表現


名前

名前は Glue Logic のデータベースに納められた情報を参照する時に、 情報を識別するために利用される。 同じ「協調の場」に属するエージェントは全ての名前とその値を共有する。 他のエージェントとやり取りをするためには、 双方のエージェントが通信を行なうための名前を了解している必要がある。

名前はピリオドで区切られた任意個の識別子の列である。 ここで、識別子とは、任意個の英数字から構成される文字列である。 ただし、名前の先頭の文字だけは英字でなければならず、 名前を構成する先頭の識別子以外の識別子は数字で始まってもよい。

名前としては、原則として幾つの識別子をピリオドで繋いでも良いが、 処理系によっては識別子の数に上限を設けられている場合がある。 この場合でも少なくとも 8 個の識別子を繋げられることが保証される。

同様に、一つの識別子は原則として任意の長さのものが許されるが、 処理系によっては識別子の先頭から一定数の文字までのみを、 有意な文字列として取り扱う場合がある。 この場合でも少なくとも先頭から 16 文字の部分を有意とすることが保証される。

名前には一般に任意の識別子を使うことができるが、 名前の先頭の識別子については以下に示す幾つかのものが システムにあらかじめ予約されている。

SystemStatus
Glue Logic のその瞬間における各種の状態量を記述する
SystemControl
Glue Logic の挙動を制御する


属性

名前の持つ属性は、 その名前の表現の後にアポストロフィーで区切って属性の識別子を付ける事で表現する。

属性の名前は全てシステムに予約されており、 既に機能が定義されている識別子には以下のものがある。 なお、属性の値としてリストが要求される場合は、 その要素を空白文字一文字で区切って並べるものとする。
通常は、属性値の参照は専用の操作によって行なわれ、 Control属性以外の属性値については、 通常の利用者が参照・変更する必要は稀である。

Value
名前の指し示す値であり、主値と呼ぶ。 属性が指定されていない名前は、この属性の指定があるものとみなす。
リンク型のデータを与えられた名前の場合は、 値の代入と参照の両方の場合について、 そのリンクが指し示している名前を指定した時と同等の効果を持つ。
演算式型のデータを与えられた名前の場合は、 値の代入と参照の両方の場合において、 その演算式を評価した結果を演算式そのものに置き換える。 即ち、代入の場合は与えられた演算式を評価した結果を名前に代入し、 参照の場合は代入されていた演算式を評価した結果を名前の値として扱う。

Control
名前の指し示す値を規定する制御情報。
代入・参照しようとする名前の値がリンク型であっても、 指定されたその名前そのものを変更の対象とし、 あるいはリンク型のデータそのものを参照する。
代入・参照しようとする値が演算式型であっても、 その演算式の評価を行なわず、演算式自体をデータとして扱う。

InformTo
名前の値が変化した時に通知メッセージを送る宛先のリスト。
一般に通知先のエージェント識別子を与えるが、 通知モード ( 通知を行なう契機 ) や 通知文字列 ( 通知の時にメッセージの先頭に用いる文字列 ) を変更したい場合には、 エージェント識別子、通知モード、通知文字列を "/" で区切って 連続したものを指定する。

Triggers
その名前の値が変わった時に、再評価を必要とするような名前のリスト。

TriggeredBy
値が変化した時に、その名前の値の再評価が必要となるような、名前のリスト。 Triggeres 属性に指定される関係の逆。

IfTriggered
名前の再評価に用いるべき値。 再評価が必要になった瞬間のこの属性の値が、 Value 属性が指定された参照の場合と同様の変換を経てこの名前の値となる。 即ち、この属性の値がリンクであればそのリンクで示される名前の値が、 この属性の値が演算式であればその評価結果が、この名前の主値となる。 この属性の値が整数、浮動小数点数、文字列の場合は、 その値がそのままこの名前の値とされる。


 [M.T. HomePage]  [written & copyrighted by Masayuki Takata]