Skip to content

File Format

Extension Format MIME Type
.md Markdown (canonical) text/markdown; variant=mif
.jsonld JSON-LD (derived projection) application/ld+json; profile="https://mif-spec.dev"

Concept files use the .md extension only. The derived JSON-LD projection uses .jsonld (never .md), so OKF’s *.md glob never ingests it.

A concept’s OKF identity is its bundle-relative path minus the .md extension. The frontmatter id field MUST be a UUID, providing a stable identity that survives concept relocation; it is MIF-only and invisible to OKF.

Human-readable, path-meaningful names are RECOMMENDED, since the OKF concept ID is derived from the path:

dark-mode-preference.md

The UUID lives in frontmatter rather than the filename:

_semantic/preferences/dark-mode-preference.md

The derived projection sits alongside as dark-mode-preference.jsonld.

A MIF bundle SHOULD follow this structure:

bundle/
├── .mif/ # MIF configuration
│ ├── config.yaml # Bundle configuration
│ ├── context.jsonld # Local JSON-LD context
│ └── entities/ # Entity definitions
│ ├── person/
│ ├── organization/
│ ├── technology/
│ ├── concept/
│ └── file/
├── memories/ # Concept files
│ ├── {namespace}/ # Namespace directories
│ │ ├── {slug}.md # Canonical concept
│ │ └── {slug}.jsonld # Derived projection
│ └── ...
└── README.md # Bundle documentation