このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

ワールドとエクスプローラー

ユグドラシル・エクスプローラー - 檜山正幸のキマイラ飼育記 メモ編の続き。

ワールドのなかにある項目を、ミクロ項目とマクロ項目に分けたほうがいい。

  • マクロ項目: 項目なので区分〈division〉、プロファイル、名前を持つが、名前だけでなくて、名前に関連付けられたマップ定義を持つ。

マップ定義は、次元差〈余次元〉と次元ごとの成分に分かれる。マップ〈ファミリー〉の各成分は、実装言語の関数として与えられる。関数の内部実装は隠蔽される。

マップの次元ごとの成分のあいだには一貫性が必要で、その一貫性はなんらかの手段で尊守されなくてはならない。関手=0トランスフォー、自然変換=1-トランスフォーに関しては、一貫性を等式で露骨に書ける。

  • ミクロ項目: 区分、プロファイル、名前を持つが、マップ定義は持たない。ただし、自分を定義する式〈expression〉を持てる。式は自分自身であってもいい(俺の定義は俺自身、俺とは俺だ)。

マクロ項目とミクロ項目の境界線となるのが、基底圏の概念。基底圏の内側にはミクロ項目があり、基底圏の外側にはマクロ項目がある。基底圏自体はすぐ外の圏の対象項目となる。

さてエクスプローラーだが、エクスプローラーは何を知っているべきか?

  1. コレクティブに関しては、その扱い方を知っている。
  2. コレクティブが持つ項目の共通メタデータは取得できる。
  3. 非コレクティブ項目の内部に関しては不可知である。
  4. 項目の種別〈カインド〉を知ることができるが、種別の意味は知らない。

お尻スラッシュに関しては、

  1. ./ のようにスラッシュが付くと、コレクティブのメタデータと直接メンバーのリストを表示する。
  2. ./* のようにアスタが付くと、コレクティブの直接メンバーのリストだけを表示する。
  3. ./A で、Aが非コレクティブであるときは、Aの共通メタデータだけを表示し、コンテンツは表示しない。
  4. ルートコレクティブは、/ という記法しかない。ルートコレクティブのメタデータと直接メンバーのリストを表示する。ルートのメタデータだけを表することは出来ない。
  5. ルート以外のコレクティブでは、スラッシュを付けなければ、メタデータだけを表示できる。