見出し画像

TOPOS-Ξ を学ぼう!その9「三者多角形的複雑怪奇関係」←嘘です。そんなに難しくないです。

TOPOS-Ξの構造要素(space、shape、mapping)の入れ子関係について、詳しく説明しましょう。

基本的な入れ子構造のルール

実践的な例

space University {
    properties {
        continuous: Topology<Boolean> = true
        dimension: Topology<Number> = 3
    }

    // space内のspace
    space Building {
        properties {
            floors: Number
        }

        // spaceの中のshape
        shape Floor {
            properties {
                level: Number
                area: Number
            }

            // shapeの中のshape
            shape Room {
                properties {
                    room_number: String
                    capacity: Number
                }

                // shapeの中のmapping
                mapping configure_room() {
                    properties {
                        continuous: Boolean = true
                    }
                    
                    path {
                        setup_furniture ->
                        verify_capacity ->
                        check_safety
                    }
                }
            }
        }

        // spaceの中のmapping
        mapping maintain() {
            path {
                inspect_structure ->
                perform_repairs ->
                verify_condition
            }
        }
    }

    // 最上位のmapping
    mapping manage_university() {
        path {
            Building.maintain() ->
            verify_operations ->
            update_status
        }
    }
}

重要なポイント

  1. 階層的なスコープ

    • 外側の要素は内側の要素にアクセス可能

    • 内側の要素は外側の要素を参照可能

    • 同じレベルの要素間で相互参照可能

  2. 名前空間の管理

    • 入れ子構造は名前空間を形成

    • 完全修飾名で要素を参照可能

    • 名前の衝突を防ぐ

  3. 継承と参照

    • 入れ子構造は継承関係とは異なる

    • 適切なスコープ内であれば相互参照可能

    • 型システムの一貫性は保持される

  4. 制約事項

    • mappingは最も制限が強い(他の要素を含められない)

    • shapeはspaceを含められない

    • spaceは最も柔軟(すべての要素を含められる)

この階層構造により、TOPOS-Ξは論理的で管理しやすいコード構造を実現しています。