Skip to content

bert-core: add structural() projection (composition + bonds + environment) #99

Description

@rsthornton

Context

active/bert-lenses/ (the choose-a-paradigm viewer; bert#77 worked example) renders the model through three lenses over the one kernel. Klir is backed by a real kernel() projection. Bunge has no equivalent: there is no bonds() / structural() accessor, so the lens shell currently filters interactions by endpoint id-type to decide what to show as a bond.

That filter is a presentation grouping, not a validity claim — every validity check still routes through validate_mode(_, Mode::Structural). But it means a formalism rule (what counts as a bond) lives in the shell, against the "zero formalism logic in the shell" discipline.

Ask

Add a structural() projection on WorldModel, parallel to kernel():

  • composition (systems / subsystems)
  • bonds (system↔system interactions — the structure that separates a system from an aggregate)
  • environment (external sources & sinks)

so downstream viewers consume a real projection instead of re-deriving the bond rule.

Why now / priority

Low-urgency cleanup. The shell grouping is fine for the prototype (feat: per-lens structural rendering, bert-lenses bf7375e). Promote to a real projection if/when the bond view proves load-bearing across consumers (BERT mode-selector, Facets).

Refs: bert#77 (worked example), bert#88 (kernel + mode ladder).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions