|
| 1 | +# Dataset crate (template) |
| 2 | + |
| 3 | +A self-describing dataset repository. Its metadata lives in **`ro-crate-metadata.json`** — an |
| 4 | +[RO-Crate](https://www.researchobject.org/ro-crate/) built *dynamically from whatever is in |
| 5 | +this repo*. That crate is the **single source of truth**; this README and the published page |
| 6 | +are **generated projections** of it. |
| 7 | + |
| 8 | +This template is domain-free: it produces a generic [schema.org](https://schema.org) `Dataset` |
| 9 | +crate. A discipline (e.g. geoscience) is opted into by dropping a `.mate/profile.yml` in the |
| 10 | +repo — the engine (`mate` toolkit) is identical either way. |
| 11 | + |
| 12 | +## How it works |
| 13 | + |
| 14 | +- **Seed it once.** Fill `.mate/metadata.yml` (or open a *New dataset* issue). On push, an |
| 15 | + action writes those values into the crate's root entity. |
| 16 | +- **Add data by just adding files.** `mate build` scans the filesystem and mirrors every file |
| 17 | + and folder into the crate as data entities — automatically, on every push. |
| 18 | +- **Enrich.** Best-effort resolution of any DOIs / ORCIDs you provided. |
| 19 | +- **Describe specifics.** Per-file/-folder detail (a different author, a description, a type) |
| 20 | + is an editing act: `mate describe <path>` locally, or Crate-O — *not* the issue. |
| 21 | + |
| 22 | +## Local use |
| 23 | + |
| 24 | +```bash |
| 25 | +conda env create -f environment.yml # installs the mate toolkit + quarto |
| 26 | +conda activate mate |
| 27 | +mate build . # scan repo -> crate (preserves authored content, refreshes the derived layer) |
| 28 | +mate enrich . # resolve ORCIDs / DOIs (best-effort) |
| 29 | +mate validate . # check the crate |
| 30 | +mate render . -o _site |
| 31 | +``` |
| 32 | + |
| 33 | +> Do not hand-edit `ro-crate-metadata.json`'s derived layer or the generated page — they are |
| 34 | +> regenerated on every push. |
0 commit comments