Skip to main content
The DatasetRegistry manages all datasets used for training, evaluation, and benchmarking in EMEP. It enforces versioning, split integrity, and provenance tracking. This page specifies the registry structure, dataset records, and operational invariants.

Dataset Record Schema

Split Manifest

Every dataset specifies its splits at registration time. The split manifest is immutable.

Versioning

Dataset versions follow semantic versioning:
  • Major: new samples, removed samples, changed splits
  • Minor: metadata updates, documentation improvements
  • Patch: bug fixes in preprocessing
When a dataset is updated, existing experiments remain bound to the version they used. The DatasetRegistry maintains all historical versions.

Checksums and Integrity

Every file in a dataset is hashed with SHA-256 at registration. The BenchmarkEngine verifies checksums before loading. Mismatches trigger an error and halt evaluation.

License Tracking

Each dataset record includes a license field. The DatasetRegistry validates that the license is one of the known identifiers:
  • apache-2.0
  • mit
  • cc-by-4.0
  • cc-by-nc-4.0
  • cc0-1.0
  • proprietary
  • unknown
Datasets with unknown or proprietary licenses require manual approval before use in experiments. The license field is used by the LicenseCompliance component for audit reports.

API Operations

Split Access Control

The DatasetRegistry enforces split access rules:
  • Any component can request Optimization Set samples
  • Validation Set samples require experiment phase >= EVALUATING
  • Hidden Test Set samples require experiment phase == FINAL_ASSESSMENT
These rules are enforced at the data layer, not by convention.

Integration

Dataset records are immutable after registration. Any change, even to metadata, creates a new version. This ensures that experiments always reference the exact data they were run against.