Folio Assistant Core

The documents at their addresses: the primary step

A Knowledge Graph harness is its JSON and JSON-LD. Its schemas say what a declaration and every node may be; its vocabulary says what each term means; its graph says what it holds. Each names itself with an IRI: a JSON Schema with $id, a JSON-LD document with @id. An IRI that answers 404 is a broken promise, and every document and every harness that points at it inherits the break. So this is the first step checked once the declarations are read, before any directory, README or site step (owner, 2026-09-30: "json(ld) is primary step in initializing KG harness").

Which documents

Read from the files, never from a list:

Each document carries its @context inline, so publishing the document publishes its context. A harness whose documents name an external context publishes that context the same way, at its own IRI.

No iriBase, no addresses. An instance that declares none has nothing here to publish, and says so rather than reporting a pass over nothing.

Where each goes

At the path its IRI names, with iriBase removed. An extensionless address (…/0.1.0/ns) gets the document at that extensionless path. A .jsonld gets a .json copy with the same bytes beside it, because many hosts serve .jsonld as a download. The .jsonld stays the real one: it is what the @id names.

Two checks, four states

stepchecksdonenot donecould not determine
schemas:stagedthe site build puts each document at its addressevery one is there, byte for byteone is missing, or another file holds its addressthe build could not run
schemas:publishedeach address answersevery one answersone answers 404403, 407, 5xx or no answer: that is about the way from here (a proxy, an access rule), not about the address

The site is the vehicle

The documents get to their addresses by the Pages site (publish-site): its workflow stages each one where its IRI says, and lists them all under "Published documents" on the README page (README.html). When schemas:published is not done, the site steps are how it gets done. The site is not the goal: a site that answers while one schema address does not has not finished initializing the harness.

Where a toolset is available, its site check (site.ts --check) lists every address and what is staged at it, and init.ts reports both steps first.