ストレージの日本語は「格納器」にするかな。格納器には次がある。
- ファイルシステム : ファイル名/パス名がキー
- 各種データベース : IDフィールドの値がキー
- プログラミング言語が管理するメモリー空間 : ハッシュマップ/ディクショナリのキーがキー
文書マップの概念は、完全に格納器非依存〈storage agnostic〉にする。標準は、JavaScript/TypeScriptのメモリー空間に存在する文書マップ。
メモリー以外の格納器から、メモリーに上げる操作を文書マップのロード、メモリーから格納器にセーブする操作を文書マップのアンロードと呼ぶ。
幾つかの文書マップをロードすると、メモリー内に幾つかの文書マップの集まりができる。これは指標の集まり。文書処理の文法は、文書処理のドクトリンで定まる。文書マップの余域プロファイルを抽出すると幾つかの0-指標が出来るが、0-指標をコンテキストと呼ぶことにしたのだった。コンテキストは、{文書{マップ}?}?スキーマでもいいかも。
コンテキスト=スキーマ $`\Sigma`$ があると、その上に、文書処理の文法 $`\mathscr{G}`$ に従った文書処理コンビネーションの集合 $`\mathrm{Th}^\mathscr{G}(\Sigma)`$ が作れる。これはモナドになり、クライスリ射が文書マップ。
文書処理の文法によるセオリーモナド $`\mathrm{Th}^\mathscr{G}(-)`$ のクライスリ圏である $`{\bf Doc}`$ は、次の構造を持つ。
1. デカルト圏
2. 余デカルト圏
3. デカルト分配圏(デカルト半環圏)
4. 直積のトレースによりトレース付き圏
5. したがって、不動点付き圏
6. クリーネスターによりスター付き半環圏
ともかく、ロードした文書マップ達とそこから抽出したコンテキスト達が圏の生成系となる。生成された自由圏のなかに文書処理コンビネーションが居る。
課題は:
- どのようにして生成系をセットアップするか?
- どのようにして自由圏(の対象と射)を構成するか?
- 文法=ドクトリン をどうやって記述するか?(ハードコードもあり)