Versioning & spec conformance
Declaring the spec version — _meta.conformsTo
Every FAIR² document declares which version of the FAIR² specification it was
produced against, at the root of the document, in the _meta block:
{
"@context": { ... },
"_meta": {
"conformsTo": "https://fair2.ai/spec/v1.2.0",
"version": "1.0.0",
"dateCreated": "2025-03-03",
"dateModified": "2026-04-20"
},
"@graph": [ { "@type": "Dataset", ... } ]
}
_meta.conformsTo— the FAIR² spec version, as a URL of the formhttps://fair2.ai/spec/v<MAJOR>.<MINOR>.<PATCH>. The version segment matches thefair2-specrepository release tag (e.g. tagv1.2.0↔https://fair2.ai/spec/v1.2.0), and resolves to that version's documentation (see below)._meta.version— the data package version (the dataset's own release), distinct from the spec version._meta.dateCreated/_meta.dateModified— package lifecycle dates.
_meta is document-level package metadata; it sits at the root, outside
@graph, so it does not affect how the Dataset is parsed by mlcroissant or
Google Dataset Search. It is complementary to the Dataset node's own
schema:conformsTo (which declares Croissant conformance).
_meta.conformsTois required. Thefair2-validatortool checks for it deterministically and fails a document that omits it or whose value is not ahttps://fair2.ai/spec/vX.Y.ZURL. (It is not a SHACL constraint, because_metais document metadata rather than an RDF graph node.)
Versioned documentation
The specification site is versioned with
mike. Each fair2-spec release tag vX.Y.Z
publishes a corresponding docs version:
| URL | Points to |
|---|---|
https://fair2.ai/spec/v1.2.0/ |
the docs for release v1.2.0 |
https://fair2.ai/spec/latest/ |
the newest release (moving alias) |
https://fair2.ai/spec/ |
redirects to latest |
Only tagged releases are published — there is no intermediate/dev docs
channel. Each _meta.conformsTo therefore always resolves to a real release.
So a document's _meta.conformsTo URL is a stable, resolvable link to the exact
spec version it was built against, and …/spec/latest/ always redirects readers
to the current release.
Cutting a new spec version
- Land the spec changes on
main. - Tag the release:
git tag -a vX.Y.Z -m "…" && git push origin vX.Y.Z. The docs workflow publishesvX.Y.Z, updates thelatestalias, and sets it as the site default. - Bump
_meta.conformsToin the example(s) tohttps://fair2.ai/spec/vX.Y.Z. - In consumers, pin/advance the
fair2-specreference to the new tag.