Taming ML dataset chaos with a Schema.org pastry
Croissant wraps metadata, resources, structure, and ML semantics into a single JSON-LD file so datasets stop being bespoke puzzles.

What it does
ML datasets are currently organized in endless ad-hoc ways, forcing every researcher to write new loading code. Croissant is a high-level metadata format—built on schema.org and expressed as JSON-LD—that describes a dataset’s files, schema, and typical ML usage in one place. Major hubs like Hugging Face, Kaggle, and Google Dataset Search already index or export it.
The interesting bit
The clever part is that it does not replace your data files; it simply layers four descriptions—metadata, resources, structure, and ML semantics—on top of existing formats. It is essentially a standardized “nutrition label” that TensorFlow Datasets, PyTorch workflows, and search engines can all read without custom glue code.
Key highlights
- Built on the widely used schema.org
Datasetvocabulary, so it is inherently web-searchable. - Already supported by Hugging Face, Kaggle, OpenML, Google Dataset Search, and TFDS via
CroissantBuilder. - The
mlcroissantPython library can inspect metadata and stream records from local or remote definitions. - A single JSON-LD file replaces the usual README-plus-code guessing game for understanding a new dataset.
- Developed under the MLCommons Association and published at NeurIPS 2024.
Caveats
- The project is explicitly “currently under development by the community,” so the spec and tooling are still evolving.
- The specification carries a CC BY-ND 4.0 license—an unusual, no-derivatives choice for a standard meant to be widely adopted.
- The reference implementation requires Python 3.10+.
Verdict
Anyone building dataset hubs, search tools, or reproducible ML pipelines should pay attention. If you only ever use one private dataset in one format, it is probably overkill for now.
Frequently asked
- What is mlcommons/croissant?
- Croissant wraps metadata, resources, structure, and ML semantics into a single JSON-LD file so datasets stop being bespoke puzzles.
- Is croissant open source?
- Yes — mlcommons/croissant is open source, released under the Apache-2.0 license.
- What language is croissant written in?
- mlcommons/croissant is primarily written in Jupyter Notebook.
- How popular is croissant?
- mlcommons/croissant has 878 stars on GitHub.
- Where can I find croissant?
- mlcommons/croissant is on GitHub at https://github.com/mlcommons/croissant.