OKF Conformance (pinned)
Conforms to OKF v0.1, criteria copied 2026-06.
This document is normative within MIF. It embeds a pinned copy of Google’s Open Knowledge Format (OKF) v0.1 conformance criteria. MIF conforms to this pinned copy, not to whatever OKF publishes next. Updates to OKF are reviewed deliberately and adopted only by an explicit MIF revision (see SPECIFICATION.md, Invariant 5 — “No floating dependency on OKF”).
Provenance note. The criteria below are reconstructed from the OKF v0.1 interoperability surface (a directory of markdown files with YAML frontmatter, a single required
typefield, a concept graph built from standard markdown links, and the reserved filenamesindex.mdandlog.md). Where the upstream wording is unavailable, the criteria are stated in MIF’s words and frozen here. A future MIF revision MAY replace this section verbatim with upstream text; until then, this pinned text is authoritative for MIF conformance.
1. Pinned OKF v0.1 criteria
A bundle conforms to OKF v0.1 when:
- Bundle shape. The bundle is a directory tree of
.mdfiles. Each.mdfile (except reserved filenames) is a concept. - Required frontmatter field. Every concept file begins with YAML
frontmatter containing at least a
typefield. All other fields are optional and pass through untouched. - Reserved filenames.
index.md(progressive disclosure) andlog.md(chronological bundle history) are reserved at every directory level and MUST NOT be used as concept documents. - Concept identity. A concept’s OKF identity is its bundle-relative path
minus the
.mdextension. - Concept graph. Relationships between concepts are expressed as standard
bundle-relative markdown links,
[text](/path/to/target.md), so a generic OKF consumer sees every edge. - Broken links are tolerated. A link whose target does not resolve is a
warning, never a conformance failure. Missing
index.mdis likewise allowed.
OKF deliberately refuses to define a content model: typed relationships, contradiction/merge semantics, trust tiers, provenance, and stale-vs-live handling are left as open design space. MIF fills that envelope (see SPECIFICATION.md §6).
2. MIF → OKF mapping
| MIF construct | OKF construct |
|---|---|
Concept file (.md) | OKF concept |
Bundle-relative path minus .md | OKF concept ID |
Frontmatter type (semantic / episodic / procedural) | OKF required type |
id (UUID) | MIF-only stable identity; invisible to OKF |
Frontmatter relationships[] (typed) | MIF overlay on OKF edges |
Body ## Relationships markdown links | OKF concept-graph edges |
index.md / log.md | OKF reserved filenames (verbatim) |
JSON-LD projection (*.jsonld, never *.md) | derived; outside the OKF *.md glob |
A MIF bundle is a superset of a conformant OKF bundle: every MIF concept is a valid OKF concept, and every typed MIF relationship also appears as a plain OKF-legible markdown link.
3. The conformance test
The validator scripts/okf_validate.py (in the modeled-information-format/MIF repo) enforces, for every concept in every
bundle:
- Type present. The concept has YAML frontmatter containing
type. - No reserved-filename concepts. No concept document is named
index.mdorlog.md. - Relationship synchronization. Every frontmatter
relationshipsentry has a corresponding body markdown link in a## Relationshipssection, and every such body link maps back to a frontmatter entry (SPECIFICATION.md §4.4). - Broken links tolerated. Unresolvable bundle-relative
.mdlinks are reported as warnings, not failures. - Lossless projection. The
markdown → json-ld → markdownround trip is lossless for all conformance-level data (scripts/mif_convert.py roundtrip).
Run it with:
python scripts/okf_validate.py # examples/ + profiles/*/examples/python scripts/okf_validate.py <bundle> # a specific bundlepython scripts/mif_convert.py roundtrip <bundle> [<bundle> ...]Exit code 0 means every concept conforms.