英語版は IRelationResolver.md を参照。
IRelationResolver (関係解決インターフェース仕様)
1. 責務の境界 (Responsibility Boundary)
IRelationResolver は、ROM 内の参照 ID を実体エンティティへ解決するセマンティック・リンキング境界インターフェースです。
- 役割:
- 非役割:
参照識別子から ResolvableEntity を返し、解決可否を事前判定します。
実体の物理ロードやキャッシュ保持は下位実装責務です。
2. 契約シグネチャ (Signature)
namespace AIKernel.Abstractions.Rom;\n\npublic interface IRelationResolver\n{\n Task<AIKernel.Dtos.Rom.ResolvableEntity?> ResolveAsync(string referenceId, CancellationToken cancellationToken = default);\n Task<bool> CanResolveAsync(string referenceId, CancellationToken cancellationToken = default);\n}
3. 関連ユースケース (Related UCs)
UC-01ROM 構造ロードと解析:UC-15コンテキスト・ハイドレーション:UC-12参照整合検証:
テンプレート内参照を動的に実体結合します。
ID参照から実行時に必要な関連情報を展開します。
解決可否を前段で確認し、不整合を早期検出します。
4. 統治上の制約 (Governance & Determinism)
- 決定論的解決:
- Fail-Closed:
- 循環参照防止:
同一 referenceId と同一ソース状態で同一結果を返す必要があります。
必須参照が未解決なら不完全コンテキスト実行を避け、拒否側で停止します。
参照グラフの循環を検知し、無限展開やスタック枯渇を防止します。
5. 例外契約 (Exception Contract)
本インターフェース自体は例外型を固定しません。実装では以下の失敗類型を明示することが推奨されます。
- 参照形式不正:
- 解決基盤障害:
IDフォーマットが規約外の場合。
データソース到達不能やロード障害が発生した場合。
6. 実装時の注意 (Notes)
- プロトコル委譲:
- 型拡張性:
vfs:// や db:// 等のスキーム別にサブリゾルバーへ委譲する構成が有効です。
ResolvableEntity はテキスト/構造化/バイナリ等の多様な実体を扱える設計を推奨します。
変更履歴
- v0.0.0 / v0.0.0.0: 初期ドラフト
- v0.0.1 (2026-05-06): ドキュメント規約に基づくバージョン更新
Source:
architecture/interfaces/rom/IRelationResolver-jp.md