Skip to content

fairscape/fairscape_models

Repository files navigation

fairscape_models

Pydantic models that define the canonical data shape for Fairscape RO-Crate releases. This package is the source of truth: the JSON Schemas, TypeScript types, and the EVI OWL/RDFS vocabulary published with the Fairscape profile are all generated from the classes in fairscape_models/.

What's in here

Path What it is
fairscape_models/*.py Pydantic class definitions: Dataset, Software, MLModel, Computation, Annotation, Experiment, Schema, Sample, Instrument, Patient, ModelCard, AnnotatedComputation, AnnotatedEvidenceGraph, ROCrateMetadataElem, ROCrateV1_2, …
fairscape_models/conversion/ Crosswalks: Datasheet-for-Datasets (LinkML), Croissant / Croissant-RAI 1.0.
json-schemas/ Per-class JSON Schemas, generated by scripts/generate_json_schemas.py.
typescript-types/ TypeScript .d.ts declarations, generated by scripts/generate_ts_types.py.
js/ JavaScript bindings.
profiles/evi-vocabulary.ttl OWL/RDFS vocabulary for the EVI namespace, generated by scripts/generate_profile.py. Contains the class hierarchy, property domains/ranges, and owl:Restriction cardinality blocks.
profiles/profile.ttl W3C PROF manifest for the Fairscape profile (see below).
tests/ pytest suite. Test fixtures under tests/test_rocrates/ are real conforming crates.

Profile

This package implements the Fairscape Release RO-Crate Profile v0.1:

Every crate produced from the ROCrateMetadataElem model declares dct:conformsTo: https://w3id.org/fairscape/profile/0.1 on its Root Data Entity. This is the conformance signal — the Root entity's @type stays ["Dataset", "https://w3id.org/EVI#ROCrate"] and never includes "Profile". (Only the hand-authored Profile Crate published at the profile URI is Profile-typed.)

Regenerating derived artifacts

python scripts/generate_json_schemas.py
python scripts/generate_ts_types.py
python scripts/generate_profile.py profiles/evi-vocabulary.ttl

Tests

pytest

Packages

 
 
 

Contributors