日本語 · English(未訳)

Kairos — 言語概要

Kairos は汎用スケジューラのためのスケジュール定義言語。連続時間軸という基底(Chronos)から、発報すべき 意味ある時点(kairos)の集合を紡ぐ——名はこの営みに由来する。本書はその設計ドキュメント群の概要。全体は 次の構成で管理する。

1. 目的

一般的なスケジューラでは定義が困難な「月末 N 日前」「第 N 営業日」といった指定を、他の一般的な定義と同様に 簡潔に書ける言語を設計する。言語はスケジュール(日時の列)の生成に特化し、その列=発報すべき時点の集合を 出力する。列を解釈して実際に発報・登録・実行するのは実装系の責務であり、言語のスコープ外とする(§2)。

2. スコープ

含めるもの:

含めないもの:

3. 既存方式との関係

独立・標準化された「スケジュール定義言語」は事実上 iCalendar の RRULE(RFC 5545)のみで、他は各スケジューラに 埋め込まれた cron 系方言である。いずれも「月末 N 日前(暦日)」までは表現できるが、「第 N 営業日(祝日考慮)」を 式の中で簡潔に書けるものは存在しない。営業日対応はエンタープライズ製品でも、言語ではなく「営業日カレンダー」 オブジェクトと「非営業日はスキップ/翌営業日へずらす」フラグの二層構造で外付け的に解決されている。 方式別の比較表(○△✗・できないことの受け皿込み)は spec §1.2 に整備した(2026-07-11)。本言語は この穴を中心に据える。

既存言語がこの穴を埋められなかった本質は、機能不足ではなく式が一枚岩で合成できない点にある。cron も RRULE も 「導いた日を基準にさらに別の定義を作る」閉包性を持たない。本言語はこの閉包性を中核に据える(ADR-04)。

4. 設計の背骨

設計の背骨の五節: ①基底は一本の時間軸 ②暦法=窓分割 ③閉包の演算子族 ④premise の統治 ⑤観測できる退化。スコープ外=発報の実行管理・カレンダーデータの真正性判定・実行起点に相対な窓・相対論的調停。

基底(TZ 非依存の単一絶対時間軸、固定。TZ は市民座標への premise 相対の写像=ADR-33)/その上の窓分割としての暦法(自由・差し替え可能、グレゴリオもその一つ)/ 窓は網羅パーティションと区間列の二種/粒度は表示射影・幅は演算子の規約引数/全式は時間ストリーム → 時間ストリーム (閉包)/演算子は生成・点変換・結合・フィルタ・窓・選択・ストライド/生成子は暦法純粋でカレンダー依存は後段 (roll/shift/filter)/roll と shift は同じ点変換族で各段が premise を自足/合成の各ホップで錨解決とロール規約を 明示必須/ロール規約は軸非依存(Following・Preceding・上位窓を引数に取る Modified)/空は正当な値・出自は評価 註釈・判定は外部/意味は premise(解釈が立つ先行条件=暦法・軸・カレンダー・ロール・粒度・TZ・asof の総称)に 相対的で、premise は既定 → 評価文脈 → ブロック宣言 → 段引数の入れ子スコープから最内優先で供給され、危険な premise の未解決は静的エラー(省略の統治)/名前もまた premise 相対に解決され、一意なら裸・曖昧なら上位存在で 修飾・未解決はエラー/言語は premise 層と本体層の二層(DDL/DML 対応、語彙共有・型分離)/本体層は core 族と糖衣の 二層(糖衣は core への展開で消せる片方向依存)/記号は三役に一対一(|> 段連結・. premise 修飾・| ストリーム 和)/発報・タスクの実行と管理、カレンダーデータの真正性、実行起点に相対な窓、相対論的調停はスコープ外。