descriptionモジュールとterminologyモジュールにするか。モジュール名・名前空間があるが、description〈desc〉とterminology〈term〉は異なる名前空間〈名前コンテンナ〉。
description TransitionSystem signture RightTransitionSystem within (C in MonCAT) { sort A sort S operation t: S×A → S } signature DetTransitionSystem := TransitionSystem within Set signature ParTransitionSystem := TransitionSystem within Partial signature NonDetTransitionSystem := TransitionSystem within NonDet continue
terminology TransitionSystem vocabulary TransitionSystem for module TransitionSystem { RightTransitionSystem RightTransitionSystem.A RightTransitionSystem.S RightTransitionSystem.t DetTransitionSystem ParTransitionSystem NonDetTransitionSystem } context StdAlias for vocabulary TransitionSystem { TransitionSystem := RightTransitionSystem TransitionSystem.alphabet := RightTransitionSystem.A TransitionSystem.state-space := RightTransitionSystem.S TransitionSystem.right-transition := RightTransitionSystem.t TransitionSystem.transition := RightTransitionSystem.t } continue
拡張子を .desc, .term にしようかな。上の例だと、
- TransitionSystem.desc
- TransitionSystem.term
名前空間構造が非常に重要。パッケージ=プロジェクトはグローバルなURIを付ける。リビジョン管理システムのコミットはグローバル・コンテントIDになる。コンテントIDは、コンテント・アクセス・ストレージに保存される。プロジェクト・コンテントIDの下に、名前空間ツリーをぶら下げる。名前空間は物理的存在にネーミングしているが、デノテーションは抽象的概念。