Versioning Architecture
Last modified by Robert Schaub on 2025/12/24 20:34
Versioning Architecture
This diagram shows how each entity type maintains its version history with parent-child relationships.
Versioning Architecture Explanation
Version Chains:
- Each entity type (Claim, Scenario, Evidence, Verdict) maintains independent version history
- ParentVersionID creates directed acyclic graph (DAG) of changes
- Arrow direction: Old version → New version (evolution over time)
Version Metadata (stored with every version):
- VersionID: Unique identifier for this specific version
- ParentVersionID: Links to previous version (null for v1)
- AuthorType: Human, AI, or ExternalNode
- Timestamp: Creation datetime (UTC)
- JustificationText: Brief explanation of changes
Entity Relationships (dotted lines):
- Claims have Scenarios: One claim can have multiple scenario interpretations
- Scenarios use Evidence: Each scenario version references specific evidence versions
- Scenarios produce Verdicts: Each scenario version gets verdict based on evidence
Branching Support:
- In federated environments, versions can branch:
- Node A: Version 1 → Version 2a
- Node B: Version 1 → Version 2b (parallel branch) - Both branches preserved for conflict resolution
Immutability:
- Versions never deleted, only superseded
- Historical versions remain accessible
- Complete audit trail for all changes
graph TD
subgraph ClaimVersioning[Claim Versioning]
C1[Claim v1]
C2[Claim v2]
C3[Claim v3]
C1 --> C2
C2 --> C3
end
subgraph ScenarioVersioning[Scenario Versioning]
S1[Scenario v1]
S2[Scenario v2]
S1 --> S2
end
subgraph EvidenceVersioning[Evidence Versioning]
E1[Evidence v1]
E2[Evidence v2]
E3[Evidence v3]
E1 --> E2
E2 --> E3
end
subgraph VerdictVersioning[Verdict Versioning]
V1[Verdict v1]
V2[Verdict v2]
V3[Verdict v3]
V1 --> V2
V2 --> V3
end
ClaimVersioning -.->|has| ScenarioVersioning
ScenarioVersioning -.->|uses| EvidenceVersioning
ScenarioVersioning -.->|produces| VerdictVersioning
Note[Each Version Stores:
- VersionID
- ParentVersionID
- AuthorType
- Timestamp
- JustificationText]
style Note fill:#f9f9f9,stroke:#333,stroke-width:2px