TII — 遷移発火識別子
公開仕様書 Transition-Ignition Identifier
仕様版:0.1.0 / 状態:実験的仕様
本書は、本リポジトリの参照実装に対して規範的です。仕様が実験的である間、 本実装が発行するすべての識別子は 試験用識別子 です(§9)。
1. 目的
TIIは、区別・関係・機能・分類その他の記述が、指定された条件下でどのように 作動上有効になったか、そして記録された条件・関係・アドレス・解釈・遷移が 時間とともにどう変化したか を記録するための参照・監査インフラです。
TIIの付与が意味するのは一つだけです:ある参照点から追跡を開始した。 固定的対象の存在、参照点の恒久性、いずれかの記述の最終性を主張しません。
TIIは研究・理論アーキテクチャ(Ziran System 等)の 下位 で作動します。 それらを置換せず、その上位にも立ちません。
2. TIIが仮定しないこと
TIIは次を 仮定しません:
- 同一性が本質的である
- 状態が普遍的に適用可能である
- 遷移が普遍的存在論的原理である
- 発火が普遍的存在論的原理である
- アドレスが固定である
- ドメインが固定である
- 境界が固定である
- 所有が本質的である
- 系譜が本来的に与えられている
これらはいずれも 改訂可能な作動記述 です。記録主体が有用と判断したときにのみ 採用され、後に限定・異議・置換・再定義・撤回が可能です(過去の記録は消去しません)。
遷移と発火は改訂可能な作動記述であり、普遍的存在論的原理ではありません。 「Transition-Ignition Identifier」という名称はTIIが頻繁に扱う記述を反映した ものであって、すべてのTIIが遷移や発火を含むという主張ではありません。
3. TIIが保証しないこと
TIIは、それ単独では次を 保証しません:
- 本質的同一性
- 所有
- 真正性
- 学術的正当性
- 真理
- 恒久性
- ホスティングの永続性
- 分類の正しさ
TIIが行うこと:追跡可能な主張・関係・変更・証拠・異議・改訂を記録し公開する こと。その履歴は追記型であり、決して書き換えられません。
4. 三種の成熟度
これらは区別され、混同してはなりません:
| 概念 | 意味 | 現在値 |
|---|---|---|
| 仕様成熟度 | TII仕様そのものの確定度 | 実験的(0.1.x) |
| 配備成熟度 | 個々の稼働インスタンスの確定度 | 初期。公開インスタンスは読み取り専用の静的ミラー |
| 識別子状態 | 個々の識別子が本番か試験か | 現在発行済みのすべては 試験用識別子 |
5. TIIコア
コアは意図的に最小限です。イベントが保持するのは次のみ:
- 不透明なTII
- 記録イベント
- イベント間参照
- イベントの発生または登録時刻
- 記録主体または記録機構
- 記録内容
- 証拠または根拠への参照
- 内容検証値を付与「できる」構造
- 外部参照を付与「できる」構造
- 直前記録との監査的連結
状態・遷移・発火・アドレス・ドメイン・所有・系譜・系列・尺度・境界は コアのフィールド ではありません。
5.1 追記型履歴
既存の記録は上書きされません。訂正は、訂正対象イベントを参照する 新しい イベントであり、その後に現在の読みを再計算します。訂正対象イベントは台帳と 履歴に残ります。
5.2 ハッシュ連鎖
hash = SHA-256( prev_hash + canonicalJSON(hash項目を除いたイベント) )
canonicalJSON = キーを再帰的に辞書順ソートした決定的JSON
ジェネシス prev_hash = "0" × 64検証は連鎖全体を再計算し、内容の書き換え・行削除・並べ替えを検出します。 ブロックチェーン・トークン・暗号資産は用いません。電子署名・複数署名方式は 将来イベント内容として追加可能です。
event_type は開いた語彙です。未知のイベント種別・モジュール名・作動値は すべてそのまま保存・表示されます。
6. 任意の記述モジュール
モジュールは特権的構造ではなく、content に対する規約 です:
{ "module": "…", "ref": "…",
"act": "introduce | apply | hold | stop | replace | redefine | dispute | withdraw | …",
"description": "…" }モジュール名・act 値は開いた集合です。記録の無いモジュールは表示されません。
| module | 備考 |
|---|---|
state | 離散状態を仮定しない。二状態を後に単一の連続過程として再記述してよい。 |
transition | A → B を存在論的事実に固定しない。「遷移として分類したこと自体が不適切だった」も記録可能な訂正。 |
ignition | 記述された区別・機能・規則・役割が指定条件下で作動上有効になったこと。物理的燃焼ではない。真偽値に還元しない。 |
address | 現在の公開/保存/リポジトリ/ネットワーク/物理/論理の所在。複数同時可。いずれも自動的に正本化しない。 |
domain | 記録・関係・区別・分類が解釈される作動上/分析上の範囲。アドレスとは別。 |
boundary | 境界変更で同一性・関係判定が変わりうる。それは正常であり、変更履歴を保持する。 |
relation | 管理/保存/アクセス/変更/複製/配布/維持/停止/削除/移管/署名/著作権保持/資金提供/公開/検証/… の開いた集合。単一必須の owner は無い。 |
series/系譜 | 記録対象ではなく、記録間に置かれる 判定。同系列/別系列/不明/異議/分割/統合/撤回。過去の判定は削除しない。 |
external_identifier | DOI/ARK/ISBN/ORCID/URL/IPFS CID/… 関連付けるだけで競合させない。外部識別子ゼロでもTIIは成立。 |
interpretation | このTIIが何を追跡していると解釈されるかの改訂。識別子文字列は不変。 |
localization | ある元イベントの内容を、対象言語向けに翻訳・ローカライズして追記したもの。証拠ではなく提示・注記。source_event・source_language・target_language・kind(literal/interpretive)・translated_content を持つ。翻訳の recorded_at は翻訳時刻であり、元イベントの作成時刻とは別の事実。同じ元イベント・同じ言語に対する後続の localization イベントは先行するものを上書き表示するが、先行イベントは保持される。元の内容は改変されない。 |
イベントの作成言語は記録の一部です。新規イベントは content.language を設定します。 ローカライズは追記型であり、日本語・英語その他いずれで作成された記録も元の形を保ち、 任意個数の対象言語表現を後から追記できます(スキーマ変更なし)。 description_en/description_ja のようなコアフィールドは設けません。
7. 証拠・判定・表示の分離
- 証拠 —
basis、content_verification、external_refs - 判定 — 記録主体が
contentで主張したこと - 表示 — イベント列から再計算される「現在の読み」
システムは証拠から唯一の正しい存在論的結論を導きません。 証拠を記録 → 記録主体Xが「発火」と判定 → 記録主体Yが異議 → 後に判定撤回 という履歴は完全に保持されます。
7.1 表示に起因する改変の禁止
公開レンダリング・ローカライズ・投影・書き出し整形・文書の変更のいずれも、 過去に記録された正本イベントを改変してはなりません。
これは規範です。具体的には:
- インターフェース言語・表示用語・ラベル・翻訳・文書の文言・優先公開言語の変更が、
既存の正本イベントの書き換えを要求してはならない。
- 投影層はどの表現を表示するかを選ぶ(英語ページなら英語ローカライズがあればそれを、
なければ作成時の内容を。日本語その他も同様)。ただし投影は派生出力であって歴史的真実 ではなく、台帳へ書き込まない。
rebuild-staticは台帳+文書/ローカライズ資源からの純粋な派生である。実行しても
台帳内容・イベントID・時刻・ハッシュ・チェーンヘッド・識別子状態は変化しない。
- 試験用識別子も、TIIのセマンティクスを検証している間は本番識別子と同じ追記型規則に従う。
意図的な開発リセットは「使い捨て環境のリセット」として明示するものであり、正当な TII履歴の改変ではない。
8. 識別子構文(暫定)
下表のすべての値は 未確定 です。現在この実装が発行する識別子は 暫定・試験用 形式です。本番候補 は spec/ の凍結監査中であり、有効化されていません。
| 項目 | 暫定・試験用(現行) | 本番候補(監査中・未有効化) |
|---|---|---|
| 名前空間 | tii: | tii:(IANA暫定登録の草案あり・未提出) |
| 本体 | 12文字 | 26文字 |
| 符号化 | Crockford風 0-9 a-h j k m n p-t v-z(i l o u 除外) | RFC 4648 Base32、a-z 2-7、パディングなし、小文字 |
| エントロピー | 約60ビット | 128ビット(CSPRNG、失敗時は生成中止) |
| 大文字小文字 | 小文字。比較も小文字 | 小文字が正準。大文字Base32入力は正規化 |
| 衝突処理 | 台帳全体と照合し再試行。枯渇時はエラー | 誕生日限界は無視可能+局所一意性検査。衝突候補は記録前に破棄 |
| 解決URL | <リゾルバベース>/tii/<id> — 設定値であり識別子の一部ではない | 同左 |
| 失効/移管 | イベントとして記録。識別子文字列は保持 | 同左。加えて墓標型の解決と Ed25519 署名付きチェックポイント |
現行の12文字試験用識別子は本番へ昇格しません。本番発行は、構文凍結後に新規発行される 26文字識別子から開始します。
識別子は不透明です。組織・個人・所有者・年・場所・国・カテゴリー・文書種別・ 版・アドレス・ドメイン・理論・発火状態・遷移状態を埋め込んではなりません。
9. 試験用識別子
§8 が確定し下記の本番前監査を通過するまで、発行済みのすべての識別子は identifier_status: "test" を持ちます。本番状態への昇格で識別子文字列は 変わりません。
10. 移植性
- 正本は
data/ledger.jsonl(追記型・1行1イベント・UTF-8)。 - 書き出し:JSON、JSON Lines、CSV。
- 全記録はサーバ・DB・クラウドサービス無しで静的ファイル群として再構築可能。
- ホスティング事業者・DB製品・ドメインが変わっても、発行済み識別子は不変で
記録は同一に再構築される。
- 再実装に、いかなる事業者の独自機能も必須にしない。
11. 本番前監査
最初の本番識別子を発行する前に、§8 を確定し次を確認します:
- 既存PID(DOI/ARK/DID/内容ハッシュ/来歴記録)との差異を過大主張せず、
それらを歪めて表現しない
- 状態・遷移・発火・配置・アドレス・ドメイン・境界を存在論化しない
- 所有を固定属性として再導入しない
- AI/人間/組織等のカテゴリーを一次的にしない
- TIIのデータモデルが、それが奉仕する理論より硬くない
- TII自身の語彙の将来改訂が、発行済み識別子を維持したまま可能である
- 単一クラウド事業者からの完全移行が可能である
- 履歴改変が検出可能である
- 訂正・削除で過去の記録が失われない
後退を検出した場合、本番発行を停止します。