Files
markitect-main/examples/infospace-with-history/schemas/relation-schema-v1.0.md
tegwick 2d45425b25 feat(infospace): add L3 relation graph with VSM-aware triplets (S2.8)
Implements the L3 relation graph layer — a directed graph of (Subject,
Predicate, Object) triplets annotated with VSM channel codes and feedback
roles. Triplets are authored as markdown files under output/relations/,
parsed into RelationMeta dataclasses, and analysed with networkx.

New modules:
- markitect/infospace/relation_models.py — RelationMeta dataclass +
  RELATION_TYPES controlled vocabulary (15 relation classes → VSM codes)
- markitect/infospace/relation_parser.py — parse_relation_file() and
  parse_relations_directory()

New schema: examples/infospace-with-history/schemas/relation-schema-v1.0.md
  — file naming convention, required sections, controlled vocabulary table

15 seed relation files covering the three core WoN feedback loops:
  - Capital Accumulation loop (positive reinforcement, S1/S3)
  - Market Price Balancing loop (negative feedback, S2/S3)
  - Market Extent mutual dependency (S1/S2)
  Plus structural relations: wages regulation, rent residual, price
  decomposition, invisible hand coordination

CLI: markitect infospace relations [--entity SLUG] [--vsm FILTER]
     [--loops] [--stats]
  - Builds directed graph from parsed files
  - Detects feedback loops via nx.simple_cycles()
  - 6 loops found from 15 seed relations (3 intended + 3 emergent)
  - --stats aggregates by VSM system code (strips parentheticals)

Config: InfospaceConfig gains relations_dir (default output/relations)
infospace.yaml: schemas.relation references relation-schema-v1.0.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 06:04:28 +01:00

4.2 KiB

Relation Triplet Schema — v1.0

Each file in output/relations/ captures a single directed relation between two entities from the L1 entity collection. Relations are the edges of the L3 relation graph.


Required Sections

H1 — Relation title

Format: # Subject — predicate phrase — Object

Example: # Division of Labour — limited by — Market Extent


Subject

The entity that is the source of the relation — the thing doing the enabling, constraining, producing, etc.

Use the entity's exact title as it appears in its L1 entity file (H1 heading).


Predicate

A short phrase from the controlled relation vocabulary (see below), or a natural language variant that maps to one of those classes.

Examples: limited by, enables, is regulated by, produces


Object

The entity that is the target of the relation — the thing being enabled, constrained, regulated, etc.

Use the entity's exact title as it appears in its L1 entity file.


Relation Type

The semantic class of the predicate, drawn from the controlled vocabulary:

Relation Type Meaning Default VSM Channel
enables Subject makes object possible or more effective S1 → S1
constrains Subject limits or bounds the object S1 ← S1
regulates Subject actively governs the object S3 → S1
is regulated by Object governs the subject S1 ← S3
coordinates Subject reduces oscillation or misalignment S2
produces Subject generates the object as output S1
consumes Subject depletes the object S1
monitors Subject observes and reports on object S3*
audits Subject verifies compliance of object S3*
adapts to Subject adjusts in response to object S4
anticipates Subject predicts or models the object S4
defines Subject sets the identity or rules of object S5 → any
is defined by Object sets the identity or rules of subject any ← S5
contradicts Subject is in direct logical conflict with object any
tensions with Subject and object exist in productive tension any

VSM Channel

The Viable System Model systems involved in this relation, with direction.

Format: S<n> → S<m> or S<n> if the relation is within a single system.

Examples:

  • S1 → S2 — operation drives a coordination signal
  • S3 → S1 — management regulates operations
  • S2 — pure coordination within S2
  • S4 → S5 — intelligence informing policy

Use S3* for audit loops (Beer's algedonic channel).


Evidence

Direct textual evidence from Adam Smith's text. Preferred format:

Book I, Chapter 3: "The division of labour is limited by the extent of the market."

Use short quotes when available. Chapter reference alone is acceptable when no single sentence captures the relation.


Feedback Role (optional)

If this relation is part of a named feedback loop, describe its role here. Name the loop and state what the relation contributes.

Example:

Part of the Market Expansion loop: larger market → more specialisation
→ higher productivity → greater surplus → expanded trade → larger market.
This edge (limited by) is the constraining link that turns the loop balancing
when market extent cannot grow further.

Omit or leave empty if the relation is not part of a known feedback loop.


File Naming

Use the pattern: <subject-slug>--<relation-type>--<object-slug>.md

Where slugs are derived from entity titles using the same slugification as entity files (lowercase, spaces and punctuation replaced with underscores).

Example: division_of_labour--constrains--market_extent.md

If two entities have the same relation type between them (unusual), append a numeric suffix: ...-2.md.


Completeness Criteria

A relation file is complete if:

  • All four required sections are present and non-empty
  • The Relation Type is from the controlled vocabulary
  • The VSM Channel is a valid VSM system designation
  • Evidence references a specific Book and Chapter

A relation file is acceptable if:

  • Required sections present but Evidence is missing (mark as (unverified))