Sprint 1: project skeleton, type system, and all architecture specs
- src/types.hpp: complete UCWM type system in C++20 — 19 enums, 11 facet data types, all core structs (CanonicalObject, Constraint, Facet, GateSignal, WorldState, etc.) with full JSON round-trip serialization - src/main.cpp: smoke test — constructs apple-problem WorldState by hand, serializes to JSON - tests/test_types.cpp: 19 tests, 123 assertions, all passing - CMakeLists.txt: CMake + CPM build with nlohmann/json, spdlog, Catch2 - schemas/: JSON Schema contracts for all UCWM data types - gates/, specialists/, resolver/, synthesis/: language-agnostic interface contracts and domain specs for all pipeline layers - docs/: architecture, vocabulary, decision matrices, roadmap (6 phases, 28 sprints), sprint_001, implementation_constraints Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
90
docs/vocabulary.md
Normal file
90
docs/vocabulary.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# UCWM Vocabulary
|
||||
|
||||
## Core terms
|
||||
|
||||
**UCWM — Unified Constraint World Model**
|
||||
The whole structured reasoning substrate. Converts messy natural language into a typed world state of objects, facets, and constraints, then resolves that state to produce answers.
|
||||
|
||||
**RSA — Relay Specialist Architecture**
|
||||
The routing and dispatch mechanism inside UCWM. RSA decides which specialists run, on which objects, with what budget. RSA is not the model core; UCWM is.
|
||||
|
||||
**CanonicalObject**
|
||||
The primary reusable referent. A stable anchor that facets attach to. Objects are not overloaded — they carry identity, kind, status, confidence, and refs to facets, constraints, and provenance.
|
||||
|
||||
**FacetBundle**
|
||||
The collection of typed descriptions attached to a single canonical object. A single object may have temporal, causal, spatial, logical, and other facets simultaneously.
|
||||
|
||||
**Facet**
|
||||
A partial, typed view of a canonical object. Examples: TemporalFacet, SpatialFacet, CausalFacet, QuantityFacet. Facets are optional — not every object exists in every relation type.
|
||||
|
||||
**Schema Plurality**
|
||||
The principle that the same underlying thing may be validly described by multiple schema systems simultaneously. UCWM does not force a single schema early. Specialists attach schema-shaped facets; the resolver reconciles.
|
||||
|
||||
**Constraint**
|
||||
An explicit relation, restriction, incompatibility, requirement, or preference involving objects and/or facets. Constraints are the core reasoning currency. Examples: `before(E1, E2)`, `owns(Alice, apples, count=5)`, `quantity(Q1) = quantity(Q2) - 3`.
|
||||
|
||||
**Constraint Profile**
|
||||
The active set of constraints touching a given object and its facets.
|
||||
|
||||
**Composite Routing**
|
||||
A relay decision that activates multiple specialists on the same target simultaneously.
|
||||
|
||||
**Relation Gate Array**
|
||||
The front-end set of small recognizers that detect which relation families are probably relevant to the input. High-recall by design — prefer false activation over missed activation.
|
||||
|
||||
**GateSignal**
|
||||
The output of a single gate. Contains: gate_id, activated flag, confidence score, and evidence spans.
|
||||
|
||||
**RoutingDecision**
|
||||
The output of the relay. Contains: active specialists, target object refs, execution mode, budget, and priority order.
|
||||
|
||||
**WorldState**
|
||||
The active UCWM state at a given processing stage. Contains all current objects, facets, constraints, and their statuses.
|
||||
|
||||
**Contractual Layer**
|
||||
A module boundary with typed input/output schemas and testable behavior. Every UCWM layer is a contractual layer.
|
||||
|
||||
**Specialist**
|
||||
A contract-bound module that takes canonical objects and routing context, and emits typed facets and constraints. May be neural, symbolic, statistical, or hybrid. Emits bounded structured output — never unconstrained free text.
|
||||
|
||||
**Resolver**
|
||||
The UCWM component that combines constraints from specialists, detects contradictions, reinforces agreements, and stabilizes WorldState into a resolved form ready for synthesis.
|
||||
|
||||
**Synthesis**
|
||||
The final stage. Produces a natural language answer and derivation trace from resolved WorldState. The answer must be derivable from constraints, not from surface token patterns.
|
||||
|
||||
**Provenance**
|
||||
A record of where a fact, object, facet, or constraint came from: which input span, which module, which inference step, at what confidence.
|
||||
|
||||
## Constraint strength levels
|
||||
|
||||
| Strength | Meaning |
|
||||
|---|---|
|
||||
| `hard` | Must hold; contradiction is an error |
|
||||
| `soft` | Preferred; can be overridden by hard constraints |
|
||||
| `probabilistic` | Holds with a stated probability |
|
||||
| `defeasible` | Default assumption; can be retracted by new evidence |
|
||||
|
||||
## Constraint status lifecycle
|
||||
|
||||
```
|
||||
unresolved → resolved
|
||||
→ contradicted
|
||||
→ suspended
|
||||
```
|
||||
|
||||
## Object kinds
|
||||
|
||||
`entity`, `event`, `concept`, `proposition`, `relation_instance`, `procedure_step`, `code_object`, `quantity`, `claim`, `state`
|
||||
|
||||
## Object status lifecycle
|
||||
|
||||
```
|
||||
proposed → active → merged
|
||||
→ split
|
||||
→ invalidated
|
||||
```
|
||||
|
||||
## Facet kinds
|
||||
|
||||
`temporal`, `spatial`, `causal`, `logical`, `syntactic`, `semantic`, `social`, `ownership`, `code_structure`, `quantity`, `planning`
|
||||
Reference in New Issue
Block a user