Complete ASSEMBLY-WP-0002: promote organism-lens concepts, add Network Object Model
- MembraneModel, SeedKernel, EvolutionModel, MetabolismModel, ResourceOntology promoted verbatim from history/ with originating questions - NetworkObjectModel.md: implementation-neutral object model with invariants - Cross-lens notes applied from Glossary.md (T09) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 1494246@bnt-lap001 Assistant-Session: caf6de6f-f9e4-47ce-a584-49baa271fa4b
This commit is contained in:
parent
73bb8fbf16
commit
08be42f65d
12 changed files with 3088 additions and 29 deletions
431
concepts/NetworkObjectModel.md
Normal file
431
concepts/NetworkObjectModel.md
Normal file
|
|
@ -0,0 +1,431 @@
|
|||
<!--
|
||||
Created 2026-10-12 under ASSEMBLY-WP-0002-T08, as proposed in
|
||||
AdaptiveInformationProcessingNetworkConcept.md § 53.
|
||||
Sources: AdaptiveInformationProcessingNetworkConcept.md §§ 4–18, 21, 34,
|
||||
39–42; MembraneModel.md Part I §§ 8, 9, 11, 17, 18.
|
||||
-->
|
||||
|
||||
# Network Object Model
|
||||
|
||||
**Status:** v0.1, exploratory. Part of the information-organism lens (INTENT.md, Two Lenses).
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This document turns the entities of the AIPN concept into a precise object
|
||||
model: what objects exist, which fields they carry, how they relate, and which
|
||||
invariants hold between them.
|
||||
|
||||
It stays **implementation-neutral**, as the AIPN concept § 52 requires. It does
|
||||
not choose a storage engine, graph database, programming language, message
|
||||
protocol or numeric representation. Field types are conceptual (`identifier`,
|
||||
`vector`, `time`, `reference`), not machine types.
|
||||
|
||||
Normative keywords (MUST, SHOULD, MAY) carry over from the source concepts.
|
||||
|
||||
---
|
||||
|
||||
## 2. Notation
|
||||
|
||||
```text
|
||||
ObjectName
|
||||
field: ConceptualType meaning
|
||||
field: [ConceptualType] zero or more
|
||||
field?: ConceptualType optional
|
||||
```
|
||||
|
||||
`ref(X)` is a reference to an object of kind X by identity.
|
||||
`vector<D>` is a multi-dimensional value whose dimensions are named in D.
|
||||
|
||||
---
|
||||
|
||||
## 3. Common envelope
|
||||
|
||||
Every object in the network carries the same envelope. It implements the
|
||||
provenance (§ 41), uncertainty (§ 42), governance envelope (Membrane § 9) and
|
||||
historical state (Membrane § 11) requirements once, instead of per object.
|
||||
|
||||
```text
|
||||
Envelope
|
||||
id: identifier stable identity, independent of activation state
|
||||
kind: ObjectKind
|
||||
provenance: [ref(Evidence)] why this object exists or has its current state
|
||||
governance: GovernanceEnvelope
|
||||
valid_time: interval when the represented fact holds in the world
|
||||
record_time: interval when the network believed it (bi-temporal)
|
||||
confidence?: number absent = not assessed, which differs from 0
|
||||
learnable: LearnabilityMode see § 7
|
||||
```
|
||||
|
||||
```text
|
||||
GovernanceEnvelope
|
||||
classification: label e.g. public, internal, confidential
|
||||
tenant?: identifier
|
||||
owner?: identifier
|
||||
purpose: [label] permitted purposes of processing
|
||||
retention?: policy-reference
|
||||
allowed_processing: [label]
|
||||
inherited_from: [ref(Envelope)] derived knowledge inherits restrictions
|
||||
```
|
||||
|
||||
**Invariant E1.** A derived object's `governance` is at least as restrictive
|
||||
as the union of the envelopes it was derived from, unless an `Authority`
|
||||
explicitly relaxed it (§ 7).
|
||||
|
||||
**Invariant E2.** Unknown is representable. A missing `confidence` or a value
|
||||
in the `unknown` state MUST NOT be read as zero or false.
|
||||
|
||||
---
|
||||
|
||||
## 4. Structure objects
|
||||
|
||||
### 4.1 Node
|
||||
|
||||
```text
|
||||
Node : Envelope
|
||||
semantic_kind: NodeKind EntityType | State | Role | Capability | Process |
|
||||
Resource | Context | Goal | Risk | Observer |
|
||||
Policy | Concept | Chunk
|
||||
label: text
|
||||
state: NodeState
|
||||
```
|
||||
|
||||
```text
|
||||
NodeState
|
||||
activation: ActivationState
|
||||
statistics: vector<frequency, recency, ...>
|
||||
predictors: [ref(PredictionModel)]
|
||||
utility_estimates: vector<goal dimensions>
|
||||
```
|
||||
|
||||
### 4.2 Edge
|
||||
|
||||
```text
|
||||
Edge : Envelope
|
||||
source: ref(Node)
|
||||
target: ref(Node)
|
||||
relation: RelationType is-a | part-of | uses | requires | precedes |
|
||||
associated-with | predicts | enables | inhibits |
|
||||
routes-to | observed-by | contributes-to | ...
|
||||
context?: [ref(Context)] A + Context X → B is a different edge from A → B
|
||||
properties: EdgeProperties
|
||||
activation: ActivationState
|
||||
```
|
||||
|
||||
```text
|
||||
EdgeProperties (AIPN § 21: four independent properties)
|
||||
association: number co-occurrence strength
|
||||
prediction: number transition / conditional probability
|
||||
utility: vector<goal dimensions> e.g. correctness, latency, cost
|
||||
confidence: number evidence-weighted trust in the above
|
||||
```
|
||||
|
||||
**Invariant S1.** `association`, `prediction`, `utility` and `confidence` MUST
|
||||
be stored and updated independently. No operation may collapse them into one
|
||||
scalar.
|
||||
|
||||
### 4.3 Chunk
|
||||
|
||||
```text
|
||||
Chunk : Node semantic_kind = Chunk
|
||||
members: [ref(Node | Edge | Chunk)]
|
||||
pattern: PatternDescription sequence, subgraph, recurring context, workflow, ...
|
||||
formation: ref(Episode) episodes that justified formation
|
||||
```
|
||||
|
||||
A Chunk is a Node and can be activated, linked and chunked again (hierarchy).
|
||||
Across lenses, a chunk is an *assembly at organism scale* (Glossary).
|
||||
|
||||
### 4.4 Context
|
||||
|
||||
```text
|
||||
Context : Node semantic_kind = Context
|
||||
condition: ConditionDescription
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Activity objects
|
||||
|
||||
### 5.1 Token
|
||||
|
||||
```text
|
||||
Token : Envelope
|
||||
source_binding?: ref(SourceBinding) absent for internally generated tokens
|
||||
external_ref?: identifier identity in the system of record
|
||||
persistence: transient | persistent | external | reconstructed
|
||||
activates: [ref(Node)] one token may activate many nodes
|
||||
```
|
||||
|
||||
### 5.2 ActivationState
|
||||
|
||||
Activation is *state*, not an object with its own identity.
|
||||
|
||||
```text
|
||||
ActivationState
|
||||
level: number
|
||||
sources: [ActivationSource] token | neighbor | goal | context | prediction |
|
||||
surprise | attention | regulation | memory
|
||||
decay: DecayRule activation decays unless sustained
|
||||
as_of: time
|
||||
```
|
||||
|
||||
### 5.3 Episode
|
||||
|
||||
```text
|
||||
Episode : Envelope
|
||||
inputs: [ref(Token)]
|
||||
context: [ref(Context)]
|
||||
activations: [ActivationRecord] node or edge, level, time
|
||||
predictions: [ref(Prediction)]
|
||||
actions: [ref(Action)]
|
||||
observations: [ref(Claim)]
|
||||
signals: [ref(Signal)]
|
||||
boundary: interval
|
||||
```
|
||||
|
||||
Episodes are the unit of learning, replay, explanation, attribution and audit.
|
||||
|
||||
### 5.4 Prediction
|
||||
|
||||
```text
|
||||
Prediction : Envelope
|
||||
made_in: ref(Episode)
|
||||
subject: ref(Node | Token | Context)
|
||||
expectation: ExpectationDescription occurrence OR absence
|
||||
horizon: interval
|
||||
resolution?: ref(Claim) the observation that confirmed or refuted it
|
||||
error?: vector<dimensions>
|
||||
```
|
||||
|
||||
### 5.5 Action
|
||||
|
||||
```text
|
||||
Action : Envelope
|
||||
kind: ref(Node) e.g. RouteToHumanReview, Escalate
|
||||
target?: ref(Token | SourceBinding)
|
||||
state: ActionState
|
||||
state_history: [(ActionState, time, ref(Authority)?)]
|
||||
caused_by: ref(Episode)
|
||||
```
|
||||
|
||||
```text
|
||||
ActionState = possible | permitted | recommended | selected | executed | mandatory
|
||||
```
|
||||
|
||||
**Invariant A1.** These states MUST NOT be treated as equivalent. A
|
||||
transition into `permitted` or `mandatory` MUST name an `Authority`; the
|
||||
network may not grant these states to itself.
|
||||
|
||||
**Invariant A2.** "Something happened" (a Claim) and "the network caused
|
||||
something to happen" (an executed Action) are distinct objects.
|
||||
|
||||
### 5.6 EligibilityTrace
|
||||
|
||||
```text
|
||||
EligibilityTrace
|
||||
subject: ref(Node | Edge | Prediction | Action)
|
||||
episode: ref(Episode)
|
||||
strength: number
|
||||
decay: DecayRule
|
||||
```
|
||||
|
||||
Like ActivationState, a trace is temporary state used for delayed credit
|
||||
assignment, not a durable object.
|
||||
|
||||
---
|
||||
|
||||
## 6. Evaluation objects
|
||||
|
||||
### 6.1 Observer
|
||||
|
||||
```text
|
||||
Observer : Node semantic_kind = Observer
|
||||
observes: [ref(Node | Goal | ViabilityVariable)]
|
||||
method: EvaluationDescription
|
||||
operator?: human | artificial | institutional
|
||||
```
|
||||
|
||||
Multiple observers MAY evaluate the same episode differently. Their signals
|
||||
are kept side by side, not averaged at the source.
|
||||
|
||||
### 6.2 Signal
|
||||
|
||||
```text
|
||||
Signal : Envelope
|
||||
emitted_by: ref(Observer)
|
||||
about: ref(Episode)
|
||||
kind: success | failure | reward | penalty | prediction-error | novelty |
|
||||
surprise | constraint-violation | human-feedback | viability-deviation
|
||||
value: vector<dimensions> multi-dimensional by default
|
||||
```
|
||||
|
||||
**Invariant V1.** A signal's `value` MUST stay multi-dimensional through
|
||||
storage. Any aggregation is a separate, explicit step that records its
|
||||
weights.
|
||||
|
||||
### 6.3 Goal
|
||||
|
||||
```text
|
||||
Goal : Node semantic_kind = Goal
|
||||
tendency: GoalDescription desired condition, outcome or constraint
|
||||
source: ref(Authority) goals are received from the environment
|
||||
priority?: number
|
||||
conflicts: [ref(Goal)] conflicts stay visible, never silently flattened
|
||||
```
|
||||
|
||||
### 6.4 ViabilityVariable
|
||||
|
||||
```text
|
||||
ViabilityVariable : Node
|
||||
measure: ref(Node | SourceBinding)
|
||||
corridor: range acceptable operating range
|
||||
floor_kind: corridor | constitutional
|
||||
current: value
|
||||
```
|
||||
|
||||
`constitutional` corridors are non-tradeable floors. They correspond to GADM's
|
||||
constitutional constraints (Glossary, "Viability").
|
||||
|
||||
**Invariant V2.** Viability precedes optimization. No utility gain may justify
|
||||
an action that is predicted to push a `constitutional` variable out of its
|
||||
corridor.
|
||||
|
||||
---
|
||||
|
||||
## 7. Governance objects
|
||||
|
||||
### 7.1 Authority
|
||||
|
||||
```text
|
||||
Authority : Envelope
|
||||
holder: human | institution | delegated-role
|
||||
scope: [label] what it may permit, mandate, relax or make learnable
|
||||
granted_by?: ref(Authority)
|
||||
```
|
||||
|
||||
### 7.2 Learnability
|
||||
|
||||
```text
|
||||
LearnabilityMode = learnable | learnable-with-authority | frozen
|
||||
```
|
||||
|
||||
**Invariant G1.** The learning operation `L` (§ 9) MUST NOT modify an object
|
||||
whose mode is `frozen`. It may modify a `learnable-with-authority` object only
|
||||
when a referenced Authority covers that scope (AIPN § 39: learning and
|
||||
authority are distinct).
|
||||
|
||||
---
|
||||
|
||||
## 8. Membrane objects
|
||||
|
||||
### 8.1 SourceBinding
|
||||
|
||||
```text
|
||||
SourceBinding : Envelope
|
||||
semantic_entity: ref(Node)
|
||||
source_system: identifier
|
||||
source_type: label
|
||||
identity_mapping: MappingDescription
|
||||
projection_rule: ProjectionDescription read model, not a replica
|
||||
access_policy: PolicyReference
|
||||
freshness_policy: PolicyReference
|
||||
write_capabilities: [label] what actions may write back, if anything
|
||||
membrane_layer: constitutional | operational | adaptive | ephemeral
|
||||
```
|
||||
|
||||
### 8.2 Claim
|
||||
|
||||
```text
|
||||
Claim : Envelope
|
||||
subject: ref(Token | Node)
|
||||
predicate: label
|
||||
object: value | ref(Token | Node)
|
||||
source: ref(SourceBinding | Observer)
|
||||
authority?: ref(Authority)
|
||||
observed_time: time
|
||||
```
|
||||
|
||||
Claims allow contradictions: two claims with the same subject and predicate
|
||||
and different objects can coexist without corrupting the model.
|
||||
|
||||
### 8.3 Evidence
|
||||
|
||||
```text
|
||||
Evidence : Envelope
|
||||
supports: [ref(Claim | Node | Edge | Chunk)]
|
||||
origin: ref(SourceBinding | Episode | Observer)
|
||||
locator: identifier pointer into the source; the artefact stays at its source
|
||||
```
|
||||
|
||||
**Invariant M1.** Every semantic assertion entering through the membrane is a
|
||||
Claim backed by Evidence. Learning MUST NOT remove provenance.
|
||||
|
||||
---
|
||||
|
||||
## 9. Operations
|
||||
|
||||
The formal model of AIPN § 34 is \(N=(V,E,T,G,O,H)\). The objects map onto it
|
||||
as follows:
|
||||
|
||||
| Formal | Objects |
|
||||
|---|---|
|
||||
| \(V\) nodes | Node, Chunk, Context, Goal, Observer, ViabilityVariable |
|
||||
| \(E\) edges | Edge (with EdgeProperties) |
|
||||
| \(T\) tokens | Token |
|
||||
| \(G\) goals | Goal, ViabilityVariable |
|
||||
| \(O\) observers | Observer |
|
||||
| \(H\) history | Episode, Prediction, Action, Signal, Claim, Evidence (bi-temporal) |
|
||||
|
||||
The two operations:
|
||||
|
||||
```text
|
||||
evaluate: O(τ, G) → [Signal] observers evaluate an episode against goals
|
||||
learn: L(N, τ, [Signal]) → N' the network changes, subject to G1, M1, S1, V1
|
||||
```
|
||||
|
||||
`learn` covers the four core learning modes (associative, predictive,
|
||||
instrumental, structural) and optionally regulatory learning. Structural
|
||||
learning creates or removes Edges and Chunks. Every structural change produces
|
||||
Evidence that references the Episodes justifying it.
|
||||
|
||||
---
|
||||
|
||||
## 10. Worked example: invoice processing
|
||||
|
||||
```text
|
||||
Token inv-4711 (SourceBinding: SAP AccountingDocument)
|
||||
activates Invoice, SupplierInvoice, HighValueTransaction, Supplier:Acme, MonthEnd
|
||||
Edge Invoice --routes-to--> HumanReview context: [MonthEnd]
|
||||
properties association 0.42, prediction 0.18, utility {correctness .94, latency .31, cost .22}, confidence .91
|
||||
Prediction "approval within 2 days" horizon 2d
|
||||
Action RouteToHumanReview state: recommended → selected → executed
|
||||
permitted by Authority: AP-Policy-2026
|
||||
Claim inv-4711 approved-at 2026-10-03 source: SAP binding
|
||||
Signal Observer:LatencyObserver → {latency: -0.4, correctness: +0.9}
|
||||
learn edge confidence and utility updated; Evidence → episode ep-1182
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. Extension points
|
||||
|
||||
The following belong to other organism-lens concepts and are left as named
|
||||
extension points, so this model can grow without reshaping its core:
|
||||
|
||||
| Extension | From | Expected objects |
|
||||
|---|---|---|
|
||||
| Membrane layers and sampling | MembraneModel.md | Membrane, SamplingPolicy, Habituation |
|
||||
| Development | SeedKernel.md | Kernel, DevelopmentalStage |
|
||||
| Evolution | EvolutionModel.md | Genotype, Phenotype, Lineage, FitnessAssessment |
|
||||
| Metabolism | MetabolismModel.md | MetabolicBudget, SubstrateFlow, ResourceAccount |
|
||||
| Resource ontology | ResourceOntology.md | ResourceClass, ConversionFunction, SentientBoundary |
|
||||
|
||||
## 12. Open questions
|
||||
|
||||
1. Should Activation be modeled as an event stream (replayable) or only as
|
||||
current state plus Episode records?
|
||||
2. Is `Context` best treated as a Node kind or as an edge qualifier only?
|
||||
3. What is the minimum bi-temporal guarantee: full valid-time history, or
|
||||
only record-time for audit?
|
||||
4. How should a Signal's dimensions be governed, so that observers stay
|
||||
comparable without forcing a fixed schema?
|
||||
Loading…
Add table
Add a link
Reference in a new issue