{
  "api": "OCOM Knowledge API",
  "version": "v1",
  "modelVersion": "0.1",
  "generated": "2026-09-07",
  "base": "https://ocom.uno",
  "engine": "OCOM Publication Engine",
  "endpoints": {
    "terms": "https://ocom.uno/api/v1/terms",
    "term": "https://ocom.uno/api/v1/term/{slug}",
    "resolve": "https://ocom.uno/api/v1/resolve/{id}",
    "explain": "https://ocom.uno/explain/{id}",
    "neighbors": "https://ocom.uno/api/v1/neighbors/{slug}",
    "graph": "https://ocom.uno/api/v1/graph",
    "governance": "https://ocom.uno/api/v1/governance"
  },
  "operations": [
    {
      "operation": "terms",
      "http": "GET /api/v1/terms"
    },
    {
      "operation": "term",
      "http": "GET /api/v1/term/{slug}"
    },
    {
      "operation": "resolve",
      "http": "GET /api/v1/resolve/{id}",
      "accepts": [
        "URI",
        "Definition ID",
        "Doc ID",
        "Specification Document ID",
        "Comparison ID",
        "Record identifier of a site-published page",
        "URI of a concept referenced by Core Vocabulary terms but not defined as one",
        "URI of the term set"
      ]
    },
    {
      "operation": "explain",
      "http": "GET /explain/{id}",
      "accepts": [
        "URI",
        "Definition ID",
        "Doc ID"
      ],
      "scope": "Term identifiers only; the Specification chapter and Comparison identifiers that resolve have no explain record."
    },
    {
      "operation": "neighbors",
      "http": "GET /api/v1/neighbors/{slug}",
      "returns": [
        "depth1",
        "depth2",
        "backlinks"
      ]
    },
    {
      "operation": "graph",
      "http": "GET /api/v1/graph"
    },
    {
      "operation": "governance",
      "http": "GET /api/v1/governance"
    }
  ],
  "note": "Static, cacheable, deterministic projection of the canonical model. Every endpoint is materialized as a file; extensionless paths resolve to JSON. A dynamic POST /api/query {operation,node,depth} can layer on later without changing these URLs.",
  "urlConvention": "Every url and record value in v1 is absolute and rooted at base. The one exception is machineResources.source and machineResources.history, which are absolute URLs into the canonical repository on GitHub, because that is where the canonical source and its history live."
}
