432 lines
13 KiB
Markdown
432 lines
13 KiB
Markdown
|
|
<!--
|
|||
|
|
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?
|