Files
zeekayandHanzo Dev 07694f8e88 A paper on the temporal assertion graph as it stands on main
Describes /v1/graph at hanzo-inc/cloud 1fffdf408: one append-only table of
assertions, a server-derived knowable instant, reads at a valid and a
transaction instant, versions that correct each other only when learned
later, declared cardinality and schema as assertions, diff, path, erasure
with a receipt, Louvain communities and a citation-checked answer.

CronQuestions from hanzoai/benchmarks: 99.88% Hits@1 for the control,
semantica 0.7.0 and the store, question for question; 0.063 ms against
5,357 ms per call. The first run's 70.03% is reported with its two causes
and the two defects the harness found in the fix. LongMemEval-S is
included as a measurement of the retrieval engine, not of the store.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 00:00:10 -07:00

56 lines
2.9 KiB
TeX

\section{Conclusion}
\label{sec:conclusion}
The store keeps one table of assertions and derives every answer from it. Each
statement carries its own valid interval; the transaction instant is derived on
the server as the later of the filer's claim and the write; versions correct
each other only when learned later; a relation holds one value or several as
the organization declares; and every read names a valid and a transaction
instant. From those definitions, an answer as known at an instant is unchanged
by later writes other than erasure, a filer cannot place a row earlier in
transaction time than its write, and, for a many-valued pair without
retractions whose versions were learned together, a valid-time answer does not
depend on when the facts were filed.
On CronQuestions, the store, a dictionary control and semantica~0.7.0 give the
same answer to each of \res{cron/n} covered questions, \res{cron/kg/all}\%
Hits@1, whether the history is filed at one instant or as it happened; the
store answers a call in \res{cron/wire/p50}\,ms at the median against
semantica's \res{cron/sem/p50}\,ms. The previous version of the store scored
\res{cron/first/wire/all}\% on the same lane, and the reasons are specific: its
one read instant was a transaction time, and a retraction ended every value of
its pair. The same harness, run against the correction, found two more defects
before the change was merged.
What remains is mostly retention: an operation that sets a litigation hold, one
that disposes of rows under an organization's policy, and erasure that reaches
the other stores holding what an organization says about a subject.
\section*{Reproducing}
\begin{lstlisting}[language=bash]
# the store: github.com/hanzo-inc/cloud at 1fffdf408
go test ./apps/graph/ ./claim/
# CronQuestions: hanzoai/benchmarks at 57a55cf
bash cronquestions/run.sh # the test split
bash cronquestions/run.sh valid # the validation split
# the first run, as committed
git show 2e6d394:cronquestions/runs/hanzo-wire-test/metrics.json
# LongMemEval-S: the same repository, from brain/
EMBED=all-minilm node longmemeval/retrieve.mjs # cosine
node longmemeval/engine.mjs --embed=minilm # engine
\end{lstlisting}
\noindent \texttt{run.sh} fetches CronQuestions \texttt{data\_v2.zip} (SHA-256
\texttt{0a2f7714\ldots fd4734e}) if it is absent, builds the fact file and the
plan, runs the control, compiles the store driver from the cloud source with
\texttt{go test -overlay}, runs semantica from its own checkout in a separate
environment, and scores every row. Each run directory records the subject's
commit, the host and the load average it ran at. The values in this paper are
read from those files into \texttt{results-data.tex}. The derived values there
--- the repeated-statement counts, the ratio of medians and the sign tests ---
are computed from the fact file the lane builds and from the reported counts,
and are marked as such.