Publish your first kos.json.
Four executable steps. By the end of this walker, you will have a parseable knowledge graph at a canonical URL, served as application/json, with provenance tracking and a typed relation to the publisher graph. The minimum viable KOS Protocol publisher.
The KOS Protocol asks one question of every publisher: can a machine reach your knowledge without trusting your homepage? The answer is a JSON file with an entity, knowledge, provenance, and typed relations. The four steps below are the smallest version of that answer.
Each step ships with copyable code. The step cards on the left of the panel switch the code shown on the right — click any step to read its block. Every snippet is valid against the KOS Protocol v1 schema and can be applied to your own publisher with renaming.
// kos.json — declare the publisher entity { "$schema": "https://kosprotocol.dev/v1/schema.json", "entity": { "name": "Your Publisher Name", "type": "WebSite", "id": "kos:your-publisher", "url": "https://example.com", "description": "One sentence describing the publication.", "identifiers": { "schema_org_id": "https://example.com/#website", "publisher_id": "https://example.com/#organization" } }, "knowledge": [], "relations": [] }
// kos.json — add the first knowledge node with provenance { "knowledge": [ { "id": "kos:your-publisher-overview", "type": "concept", "label": "What this publisher publishes", "description": "One canonical paragraph an answer engine can quote.", "provenance": { "created": "2026-04-14", "verified": "2026-04-14", "source": "owner", "method": "manual-review", "confidence": 0.95 }, "tags": ["overview", "canonical"] } ] }
// kos.json — bind the entity to the publisher graph { "relations": [ { "source": "kos:your-publisher", "target": "kos:kos-protocol", "type": "dep", "label": "Implements KOS Protocol v1" }, { "source": "kos:your-publisher", "target": "kos:registry", "type": "ref", "label": "Discoverable via KOS Registry" } ] }
# .htaccess — serve kos.json as application/json AddType application/json .json <FilesMatch "kos\.json$"> Header set Content-Type "application/json; charset=utf-8" Header set Access-Control-Allow-Origin "*" </FilesMatch> # And duplicate the file at the well-known URI: # /kos.json # /.well-known/kos.json (RFC 8615) <!-- index.html — alternate link in <head> --> <link rel="alternate" type="application/json" href="/.well-known/kos.json"> <meta name="kos-protocol" content="v1">
After the four steps.
Once kos.json exists at the canonical URL and the well-known URI, the publication is parseable. A consumer agent that knows the KOS Protocol can fetch the file, validate it against the v1 schema, walk the typed relations, and inspect the provenance block on every knowledge node.
What this gives you. A second discovery surface that does not depend on Google's ranking pipeline. A canonical claim with attached provenance that an answer engine can quote. A typed relation to the broader knowledge ecosystem so consumer agents can reach you from neighbouring entities.
What this does not give you. It is not a substitute for a homepage, a sitemap, an llms.txt manifest, or Schema.org JSON-LD in the HTML. The KOS Protocol sits alongside those discovery pathways, not instead of them. Phase 04 of the implementation cluster (Schema.org Discipline) covers the parallel HTML markup; the canonical reference at IA Authority covers the conceptual frame.
Verify the parse path before you call it shipped. Fetch /kos.json with an HTTP client and confirm the response is HTTP 200 with content-type application/json. Fetch /.well-known/kos.json separately. Open the homepage and check that the alternate link in the head is reachable. Three fetches, three OKs — that is the minimum verification.
What ships next.
Phase 02 (Citation Engineering) covers how to write the canonical sentences that go inside the label and description fields so an answer engine quotes them verbatim. Phase 03 (Entity Graph Anchoring) covers how to anchor the publisher to a single canonical Organization with reciprocal sameAs across owned properties. Phase 04 (Schema.org Discipline) covers the HTML markup that runs in parallel. Phase 05 (Edition Cadence) covers the operational rhythm of reviewing every entry each cycle.
Phase 01 of the implementation cluster of Get Found by IA, published by Niseus LLC. The walker is reviewed every edition. Code blocks are executable and idempotent — running them twice produces the same kos.json.