演繹システムの議論で、知識ベースの管理やダイナミズムの考慮が決定的に欠けていたと思う。知識ベースを $`\mathscr{K}, \mathscr{L}`$ などで表し、常に考慮する。知識ベースは、ハイパードクトリンやインスティチューションの生成系だと考える。生成される構造は $`\mathscr{K}^*`$ と書く。
知識ベースは、ライブラリや組織化・配布形態であるパッケージ/モジュールと考える。知識ベースに対する操作は:
- 合併する。
- 分割する。
- キーとなる名前をリネームする。
- 知識ベース自体の名前をリネームする。
- 知識ベースにアイテムを追加する。
- 知識ベースからアイテムを削除する。
- その一部をまとめて指標やデビジョンを作る。
- 組織構造を変更する。
- アイテムを検索する。
これに関して次の疑問が出てくる。
- アイテムとは何か?
- 名付けられる対象と名付け方式は?
- 組織構造とは何か?
文法も問題になる。
- 構文木は、リーフをアトムと呼ぶ。例えば、論理式のアトム=原子論理式=述語呼び出し、算術式のアトム=原子算術式=数値リテラル、バンチのアトム=原子バンチ=論理式。
- 構文木のリーフ以外のノードの付けられた“値”がコネクティブ。論理式のコネクティブ=命題コネクティブ。算術式のコネクティブ=算術演算子=数値コネクティブ。バンチのコネクティブ=論理式コネクティブ ←アリャリャ!
文法は、アトム変数とコネクティブを提供する。アトム変数への代入で“構文的に定数な”構文木が得られる。バインダーでバインドすることによって“構文的に閉じた”構文木が得られる。自由変数/束縛変数という概念は普遍的で、どの文法でも使える。
- 型項文法: アトム変数は型変数。リテラルは型固有名。
- 関数項文法: アトム変数は個体変数〈{object | individual} variable〉。リテラルは個体リテラル。
- 命題文法: アトム変数は述語変数。(「命題変数」は真偽値変数)リテラルは固有述語記号。
- 論理バンチ文法: アトム変数は論理式変数。リテラルは固有論理式記号(例、T、⊥)。コネクティブは区切り記号。区切り記号は $`{^\lor,}`$ など。
- 導出項文法: アトム変数は導出変数〈ラベル〉。リテラルは固有導出記号(例:!_P)コネクティブは結合、ペアリングなど。
- リーズニング項文法: アトム変数はリーズニング変数〈ラベル〉。リテラルは固有リーズニング{記号 | 名}。コネクティブは結合、積、ペアリングなど。