dontodocs

Documentation

donto exposes one read-only discovery surface that lets you bind a new consumer without ever reading a SQL migration. Below: the claim model, the three live API surfaces, and a worked example of binding a domain.

The claim model

Everything in donto is a claim — a subject, a freely-minted predicate, and an object that is either an IRI or a literal. The one write-time invariant (donto I1): a claim is either anchored to an evidence span or explicitly hypothesis_only.

{
  "subject":     "ex:ada-lovelace",
  "predicate":   "wrote",            // free — invent what you need
  "object_iri":  "ex:first-algorithm",
  "object_lit":  null,               // object is IRI XOR literal
  "anchor":      { "doc_id": "memoir-1843", "span": [412, 470] },
  "confidence":  0.86,
  "hypothesis_only": false
}

Substrate API — discovery surface

Read-only introspection of the live substrate. Bind a consumer against these, not against the schema. Full machine-readable spec at /discovery/openapi.

GET/discovery/contextsEvery context (graph) in the substrate
GET/discovery/predicate-inventoryFreely-minted predicates ranked by volume
GET/discovery/identity-hypothesesActive identity (sameAs) hypotheses
GET/discovery/openapiFull OpenAPI 3 spec for the substrate
POST/searchFull-text search across all 39M+ statements
POST/search/resourcesSearch source resources → snippet + blob link
GET/statement/:idA single statement with its evidence
curl -s https://memories.apexpots.com/discovery/predicate-inventory | jq '.predicates[:5]'

curl -s -XPOST https://memories.apexpots.com/search \
  -H 'Content-Type: application/json' \
  -d '{"query":"Caroline Rose Davis","limit":8}'

Memory API

Persistent, recallable memory for agents — text in, anchored claims out. Live at memory.donto.org.

POST/memorizeExtract claims from text and ingest them
POST/recallHolder-scoped recall bundle
POST/searchRank across the whole substrate
GET/jobs/:idStatus of a deferred extraction job

Genealogy API

Evidence-first family research — the hardest test of the claim lifecycle. Live at genealogy.donto.org.

POST/jobs/extractExtract + ingest facts from a source (opencode)
POST/search/resourcesSearch stored source resources
GET/claim/:idA claim with its evidence snippet + full-resource link

Bind a consumer

  1. 1Read /discovery/contract-version and /discovery/openapi — that is the entire contract.
  2. 2Pick or create a context (graph): POST /contexts/ensure.
  3. 3Emit claims with donto-extract (free predicates, anchored to evidence) and ingest them.
  4. 4Query: align predicates at query time, search across the substrate, resolve identity hypotheses on demand.