Specified Region Event Formの略。
目的
- 特定領域(以下、これをドメインと呼んでいる場合有り)を進行運用管理するエージェントの為に、特定領域内で起こる種々のイベント(出来事)を、イベント単位で表現する為の書式を定めたい。
- ここで扱われるべき「イベント」とは、「起こったイベントの記録」ではなく、「起こったイベントそのもの(またはそのリファレンス)」的な扱いとなる。
- この書式は、人間にとって処理しやすい必要は無いが、エージェントにとって処理しやすい必要がある。
- 尚、「特定領域」とは言うものの、汎用可能である必要がある(要は、あちこちの「特定領域」で個別に使える必要がある)。
作成方針
- 草案及び確定仕様には、それぞれバージョン番号をふる。これは、最初から完璧な仕様を作成する事が困難な為、インクリメンタルにより良い仕様にしていくしか無い為。
- バージョン番号は、「x.y」のような、ドットで区切られた数値とする(x及びyは複数桁ok)。
- 仕様が変更され、バージョン番号を上げる際には、「以前の仕様と後方互換性がある」場合はyの数値を上げる。「以前の仕様と後方互換性が無い」場合はxの数値を上げ、yは0に戻す。
- 文面上での表記は、例えばバージョン1.2の場合なら「SREF/1.2」と表記する事にする。
関連
確定仕様
草案がある程度まとまり、実際に使用可能になったなら、ここに記述します。
まだありません。
草案
まだ仕様を策定している最中の、書きかけで不完全なものを、ここに記述します。
SREF/0.0
- 一つのsrefイベントは、一つのS式で表現される。
- srefイベントは、ドメインに所属する。
- 各ドメインは、それぞれ一つのストレージを持つ。
- srefイベントに記述される情報は基本的に全てリファレンス(的な何か)であり、各情報の実体は、ドメインのストレージに保存されるものとする。
- srefイベントそのものも、ドメインのストレージに保存されるものとする。
- これは、あるsrefイベントが、別のsrefイベントを参照する構造となっている為。
- ドメインのストレージに記録されたデータ(srefイベント含む)は、一旦生成されたら、内容は変更されない(immutable)ものとする。
- 但し、ストレージ内の、充分古くなったデータは、個別に破棄される可能性があるものとする。
- 破棄されたデータを参照しようとした際にどうするかはまだ考え中。
- srefイベントは、具体的には、以下のようなlist(またはそれへのリファレンス)とする。
(list
sts ; 時間情報と位置情報のセット
action ; 実イベントの詳細
.
parents ; このイベントが起こる原因となった前イベントのlist。空でも複数でもok
)
stsは、以下のようなlist(またはそれへのリファレンス)とする。
(define when
(list
...
))
(define where
(list
...
))
(list
`(when . ,when)
`(where . ,where)
)
actionは、以下のようなlist(またはそれへのリファレンス)とする。
(list
)
続きはあとで
未整理情報
- 汎用にする必要がある為、Gauche固有のkeyword指定はやめた方がよい
- srefは、5W1Hと類似の情報を持つ必要がある。
- 5W1Hとは、「Who(誰が) What(何を) When(いつ) Where(どこで) Why(どうして) How(どのように)したのか」。
- 5W1Hは、自然言語にとって表現しやすい形になっており、エージェントにとっては極めて扱いにくい為、以下のように変形して扱う事にする。
- Whoは、後述のActionの子要素に
- Whatは二つに分岐する
- 動詞つまりAction
- 行動対象つまりTarget→Actionの子要素に
- WhenとWhereは、「時空間内での位置特定子」という事で、セットにして扱う
- この「時空間内での位置特定子」を以降、stsと呼ぶ
- stsは大抵の場合、When情報とWhere情報を内包する。しかし、例外的にこれらの情報を内包(指定)できないstsが存在してもよい。
- sts内のWhen情報は「時間指定処理系の種別」「その処理系内での時刻」の二つのパラメータを持つ事が推奨される。
- sts内のWhere情報は「位置指定処理系の種別」「その処理系内での位置」の二つのパラメータを持つ事が推奨される。
- Whyは、因果関係のみを扱う
- 「あのイベントから、このイベントが発生した」という事を示すlistを用意する(空や複数を許可する)
- Howは、Actionの子要素に
- この構造は、SREF/0.0にとりあえず反映完了した。
固有用語集
sref
- このページで説明しているもの。
- この仕様全体を指している時と、sref仕様のイベントの一つを指している時の、2パターンがある。
- 旧名uef(universal event format)。当初はuniversalだったが、universalである必要性がそもそも無かったのと、universalだとストレージに問題が出る為、現在の形になった。
特定領域
- またはドメイン。
- (ある一つの)srefイベントが起こった、ワールド(的な何か)全体の事。
- 各srefイベントは、それぞれが所属する特定領域の外では意味を持たない。
エージェント
- ドメインを進行運用管理し、sref群を処理する主体。
- ワールドシミュレータを進行させるプロセスみたいなのを想定すると比較的分かりやすい?
ストレージ
- データを保存する領域の事。ファイルとかDBMSとか。
- エージェント的には、(cpuにとっての)メモリ空間的な意味合いを持つ。
- ストレージに保存されるデータは基本的に全てimmutable。
- 但し、古くなったデータは(勝手に)GCされる可能性を持つ。
- これは、通常のGCとは違い、リファレンスが残っていてもGCされる(かもしれない)という事を意味する。よって、リファレンスを辿る際には、常に、参照先が既にGCされてしまって存在しない可能性を考慮する必要がある。
リファレンス
- ストレージ内のデータ(及びsrefイベント)を指し示している事、または指し示す為の何か。
- 実装の際には、ユニークid等を用いる事を想定している。
sts
- spatiotemporal-specifierの略。「時空間位置特定子」とでもいった意味。
- 要は時間情報と位置情報をくっつけて一緒に扱うようにしたもの。
最終更新 : 2009/01/19 22:28:02 JST