|
| 1 | +// SPDX-License-Identifier: PMPL-1.0-or-later |
| 2 | += EXPLAINME — VerisimCore.jl |
| 3 | +Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> |
| 4 | +:toc: left |
| 5 | + |
| 6 | +== What is this? |
| 7 | + |
| 8 | +A Julia package implementing the slim identity-core of VeriSimDB: |
| 9 | +3 required shapes (Semantic, Temporal, Provenance) plus a federation |
| 10 | +contract for optional peers. Think of it as "VeriSimDB Lite" — the |
| 11 | +minimum substrate that preserves VCL's consonance guarantees. |
| 12 | + |
| 13 | +== Why does it exist? |
| 14 | + |
| 15 | +Main `verisimdb/` is a comprehensive 8-shape multimodal database. |
| 16 | +Many clients don't need all 8 shapes — they need identity + audit |
| 17 | +trail only. VerisimCore lets them have that without integrating the |
| 18 | +full octad. |
| 19 | + |
| 20 | +This was proven by the sibling research experiment |
| 21 | +`verisim-modular-experiment/`: |
| 22 | + |
| 23 | +* The octad decomposes into Core (3) + Federable (4) + Conditional (1). |
| 24 | +* VCL's aggregate-drift computation over the Core gives results |
| 25 | + numerically identical to the monolithic full-octad computation on |
| 26 | + the same data (145 test assertions). |
| 27 | +* A real client (KRLAdapter.jl) is satisfied by Core alone. |
| 28 | + |
| 29 | +== How does it fit in the ecosystem? |
| 30 | + |
| 31 | +[cols="1,3",options="header"] |
| 32 | +|=== |
| 33 | +|Sibling |Relationship |
| 34 | + |
| 35 | +|main `verisimdb/` |Canonical paved-road octad. VerisimCore is a slim escape hatch, not a replacement. |
| 36 | +|`verisim-modular-experiment/` |Research prototype this package was promoted from. Contains the Idris2 ABI, 145-assertion proof, and Phase 5 findings. |
| 37 | +|`typeql-experimental/` |Sibling experimental package in `nextgen-databases` exploring VCL type-theoretic extensions. |
| 38 | +|`KRLAdapter.jl` |First demonstrated client — knot-theory stack integration verified in `verisim-modular-experiment/examples/krladapter_integration.jl`. |
| 39 | +|=== |
| 40 | + |
| 41 | +== What do I do with it? |
| 42 | + |
| 43 | +1. **Read `README.adoc`** for quick start + rule of thumb. |
| 44 | +2. **Look at `test/runtests.jl`** for working code exercising every |
| 45 | + public surface. |
| 46 | +3. **Read the experiment's `docs/FINDINGS.adoc`** if you want the full |
| 47 | + research record — why these 3 shapes, why this 5-clause contract, |
| 48 | + what the decision gates proved. |
| 49 | +4. **Adopt VerisimCore** if your workload matches identity + audit |
| 50 | + trail (no similarity/full-text/geospatial). If you need more, adopt |
| 51 | + one Federable peer at a time. |
| 52 | + |
| 53 | +== Module map |
| 54 | + |
| 55 | +[cols="2,3",options="header"] |
| 56 | +|=== |
| 57 | +|Module |Responsibility |
| 58 | + |
| 59 | +|`VerisimCore.Core` |Store, enrich!, attest, verify_attest. The identity-core primitives. |
| 60 | +|`VerisimCore.Crypto` |Ed25519 wrapper (libsodium via Sodium.jl). |
| 61 | +|`VerisimCore.Metrics` |Pairwise drift functions (d_SV, d_VD, d_SD). |
| 62 | +|`VerisimCore.Federation` |DriftWeights, Manager, renormalise, aggregate_drift, PeerAttestation. |
| 63 | +|`VerisimCore.VectorPeers` |Example Federable peer (Vector shape). |
| 64 | +|`VerisimCore.DocumentPeers`|Example Federable peer (Document shape). |
| 65 | +|`VerisimCore.VCLQuery` |PROOF clause AST. |
| 66 | +|`VerisimCore.VCLProver` |Evaluator routing to Core + Federation. |
| 67 | +|`VerisimCore.VCLParser` |String parser for a minimum VCL subset. |
| 68 | +|=== |
| 69 | + |
| 70 | +All public identifiers are re-exported at the top level, so |
| 71 | +`using VerisimCore` makes them available directly. |
| 72 | + |
| 73 | +== What's NOT in here |
| 74 | + |
| 75 | +* No full-text index (Document peer stores raw bytes; no search). |
| 76 | +* No HNSW / similarity index (Vector peer stores raw Float32 arrays). |
| 77 | +* No persistence (store is in-memory Dict). |
| 78 | +* No network transport (all peers are in-process Julia structs). |
| 79 | +* No Zig FFI (pure Julia). |
| 80 | +* No normalizer regeneration strategies (read-only drift measurement). |
| 81 | + |
| 82 | +These are main `verisimdb/`'s job. VerisimCore intentionally stays |
| 83 | +slim. |
| 84 | + |
| 85 | +== License |
| 86 | + |
| 87 | +PMPL-1.0-or-later. See `LICENSE`. |
0 commit comments