FACTUM

Knowledge, schemas and libraries

What is known is kept with where it was read.

Factum is the gateway as well as the notary. Documents are admitted into a store that belongs to one tenant. Every fact in it keeps the document it came from and the exact place it was read, and nothing in it is rewritten.

The store

A document is admitted through a declared reader into one of the tenant's scopes. Each fact read from it is stored as a subject, a property and a value, with the document's hash and the byte position and exact quote it was read from.

What a reader declines to resolve is recorded apart, as an abstention, and never admitted as a fact. A document admitted twice is admitted once. Every count is exact: eleven of them, on every intake.

A scope keeps one body of knowledge apart from another inside a tenant: a client, a matter, a portfolio. A question about a scope is answered from that scope alone.

Recorded outputOne fact as the store holds it, read back after intake. The document is the demonstration's synthetic invoice; the quote is re-read from its bytes at the offset when this page is built.
{
  "subject": "Total Amount Due",
  "property": "Amount",
  "value": "1375.00",
  "locator": {
    "offset": 2536,
    "length": 7,
    "quote": "1375.00"
  },
  "scopeId": "{scope}",
  "observedAt": "2026-11-06T03:24:47.785Z",
  "provenance": {
    "contentSha256": "409c2b8b6b3a9e9731ee590dd552e4b4179c284d5aecfbdcee144a78b2720104",
    "sourceName": "syn-inv-01-complete-import.html",
    "readerFormat": "html",
    "documentFrame": "raw-bytes"
  }
}

Nothing is rewritten

SupersedeA newer document takes the place of an older one. The older facts stay, as history.
RetractA document is withdrawn, and the withdrawal is itself recorded, with who asked.
IncorporateA caller may declare that one record carries content from another. It is declared, never inferred from two records that say the same words.
Ask as of an instantA certificate may be asked as of a past instant. It signs the instant and a digest of the exact view of the store it reasoned over, so the answer can be derived again later.

An as-of question the history cannot answer is refused by name, never approximated. There are 4 such refusals:

refusedas_of_malformedrefusedas_of_without_historyrefusedas_of_entity_resolution_declaredrefusedas_of_after_issue

Reading the store back

What was admitted is read back with its positions, page by page. Reports state what was admitted, what the readers declined, and how much of the store a question can reach, as counts that reconcile.

Coverage is a count, not an impression: a report says which questions the store can answer and which it cannot.

The Finder returns addresses, never facts: where a question is declared, and the call that reaches it.

The whole round trip, admitted and retrieved, is on a recorded run: the round trip.

Schemas: every shape declared

Every certificate names its schema and its version, and so do the store's reads and every refusal. A certificate binds to the version that issued it, and a new version of a report type never reinterprets an old certificate.

What is accepted is declared too: a report type's checklist, a composition, a workbook-fill declaration, a pairing of two documents. A declaration that names something its schema does not know is refused by name.

At the certify door a document's kind is the content type the caller declares, never sniffed from its bytes. Where the bytes cannot settle a format, as with two kinds of PDF, the format must be declared, and a declaration the bytes contradict is refused:

refusedformat_not_in_unionrefusedformat_disagrees_with_htmlrefusedformat_disagrees_with_xlsxrefusedformat_disagrees_with_docxrefusedformat_disagrees_with_jsonrefusedpdf_format_undeclared

8 format codes in all, each with the remedy class declare. Every code is on the integrators page.

Libraries: outside knowledge, declared and frozen

Reference material Factum reads against, such as a body of case law, enters as a declared library: a frozen snapshot with its own id and date, never fetched live at the moment of a question.

Every certificate that used a library names it: which one, as of when, and what it holds. A question that needs a library nobody registered is refused by name.

refusedcitation_corpus_not_availablerefusedcitation_corpus_mismatchrefusedcitation_corpus_loadingrefusedcitation_corpus_load_refused

A tenant's own library is registered the same way, when access is provisioned. The one shown here is the case-law corpus the citations report ran against.

Recorded outputThe library as the citations certificate names it, from its signed body.
Library
cap-static-us1-572-f3d1-935
As of
2019-09-09
Opinions held
471,479
Holds
F.3d volumes 1 to 935, 141,484 cases
Holds
U.S. volumes 1 to 572, 329,995 cases

Domains

Knowledge is kept by tenant and by scope. Questions are kept by domain: the catalogue's 7 shelves group its 16 report types.

narratorlogisticslegalfinancebriefreconciliationdev-records

Each domain reads against its own authorities, held as spines: the X12 transaction sets for freight, 17 identifier schemes, the case-law corpus's 2,809 courts, and the regulation each checklist was written from. The spines

Factum does not guess which domain a document belongs to. The question is declared, and the declaration says which checklist, which spine and which library apply.

A domain grows by declaration: a new report type on a shelf, a new spine, a new library. Nothing already issued is reinterpreted.