本ドキュメントは、本システムにおける Datalog スキーマ設計および知識表現の基本原則を定義します。
エンティティ内部に属性を閉じ込めるのではなく、事実(Fact)の集合として世界を記述します。
世界を以下の 6 つの基本的なリレーションセットで記述します。主語(S)は常に時間的に新しく追加されたもの、またはより具体的なものを選択します。
is_instance_of: 実体(具体)から概念(抽象)へのリンク。 (例: 取引実体 -(is_instance_of)-> 取引)is_super_of: 逆関係。is_attribute_of: 属性値(既存)から所有実体(新規)へのリンク。 (例: 支出 -(is_attribute_of)-> 取引実体)has_attribute: 逆関係。is_belong_to: 子(新規)から親(既存)へのリンク。 (例: 明細実体 -(is_belong_to)-> 取引実体)has_many: 逆関係。X -(is_instance_of)-> 取引 且つ 支出 -(is_attribute_of)-> X のとき、規則によって X -(is_payment_nature_of)-> 取引 という会計ドメイン述語を導出します。type)を用いて、その性質や状態を表す概念ノードへフラットにリンクします。payment_is_a)を使用します。「取引 -> 支払い」のような単一のツリー構造をデータ側で保証(暗黙のカテゴライズ)するのではなく、属性の組み合わせから規則によって動的にドメイン用語を導出します。
スキーマによる静的な制約(型、単一性など)以外のビジネスロジックに伴う制約は、ハードコードせず Validate Query(監査ルール)として記述します。
schema.ts: ユニーク識別子と、基本的な ref 型の関係のみを定義。accounting.ts: API レスポンスを上記のアトミックな事実に展開。Interpretation Rules: データをドメイン用語に翻訳する Datalog Rule 群。datalog_schema MCP ツールで取得する。より深掘りが必要な場合は
返却される recommendedQueries を参考に datalog_query を呼ぶ。datalog-store/query.<breaking>.json (共通) と datalog-store/query.<breaking>.local.json (個人) に
JSON で保存されており、datalog_query_* ツールで編集可能。datalog-store/idb.<breaking>.json / datalog-store/idb.<breaking>.local.json に
JSON で保存されており、datalog_idb_* ツールで編集可能。datalog-debug-skill スキル (references/ + recipes/) を参照。