Concept — Milner Bigraph Topology in the Vespa Knowledge Garden

Robin Milner’s Bigraphical Reactive Systems decompose a system into two independent, orthogonal graphs over the same set of nodes : a hierarchical Place Graph modeling locality/containment, and a hyper/relational Link Graph modeling semantic connectivity across boundaries.

Formal Structure in the Garden

  1. Place Graph ( — Containment & Indexing):
    • Governed by structural frontmatter relations indexes indexed-by and has-part part-of, plus physical directory placement (ROLE_CANONICAL_DIRS + PARA folders).
    • Ensures every atomic zettel, concept, invariant, and bridge note has at least one parent Map of Content (orphan invariant in verify/check.py).
  2. Link Graph ( — Cross-Boundary Epistemic Wiring):
    • Governed by typed relational edges: supports supported-by, refines refined-by, supersedes superseded-by, contrasts contrasts, and related related.
    • Allows a C++ searchlib zettel in content-nodes to directly support or contrast a Java container-search zettel in container-jdisc regardless of folder hierarchy (island and reciprocity invariants in verify/check.py).

Runtime Projections

  • Quartz 5 Emitter (local-plugins/garden-meta/index.js): Exports place_edges and link_edges separately in public/static/garden-meta.json.
  • Topology & Coverage Analyzer (tools/garden/analyze_garden.py): Computes Place/Link degree distributions, HITS hub/authority scores, articulation points, and lease-disjoint batches in garden-health.
  • DuckDB Recursive CTEs (tools/garden/sync_duckdb.py): Materializes both edge classes with edge_kind IN ('place', 'link', 'body') for sub-millisecond lineage queries.