Přeskočit na obsah

npm run data:validate — Kanonická brána datasetu

Kanonická brána datasetu: Zvaliduje tvar všech kanonických souborů proti schemas/canonical/ (AJV 2020-12, strict), pak nad celým datasetem referenční integritu, sémantiku a JSON-LD expanzi. npm skript, validace vstupů.

npm skript validace vstupů shodí běh pipeline: build pipeline: dev pipeline: check pre-commit

Volání

npm run data:validate

Spustí node scripts/data/validate.mjs (čteno z package.json při buildu)

Zdroj: scripts/data/validate.mjs

Zvaliduje tvar všech kanonických souborů proti schemas/canonical/ (AJV 2020-12, strict), pak nad celým datasetem referenční integritu, sémantiku a JSON-LD expanzi. S -- --file <cesta> zkontroluje TVAR jednoho záznamu — rychlá smyčka při editaci; referenční a sémantická pravidla v tomhle režimu záměrně neběží a skript to říká.

Kdy ho spustit

Po každé editaci čehokoli pod data/dossiers/**. Je to první krok všech tří režimů pipeline (build, dev, check) — nevalidní data musí zastavit běh dřív, než cokoli vygeneruje.

Co shodí běh

  • Kanonický soubor, který neodpovídá schématu podle svého recordType (včetně pole navíc — schémata mají additionalProperties: false).
  • R1–R8: unikátnost @id, unikátnost identifieru v dossieru, soulad cesty souboru s @id, existence cílů všech referencí uvnitř téhož dossieru, existence entit vztahů, ≥1 existující zdroj u tvrzení mimo status-opinion, integrita kurátorované grafové vrstvy, obousměrnost vazby claim↔source.
  • S1–S10: doložení tvrzení (single/corroborated přes nezávislé rodiny zdrojů), autorizační pravidla S5/S6, subjektové uzly grafu S7, souvislost grafu S8, a S10 — týž vydavatel nikdy nezakládá nezávislé doložení.
  • T1–T8: parita ručně psané tabulky „Registr tvrzení“ s kanonickými claim záznamy (kotvy, 1:1 množiny, byte-verná shoda textu/statusu/zdrojů, uzavřený slovník statusů, dedup URL u corroborated, plnostránková doktrína zdroje).
  • Neplatná JSON-LD expanze datasetu.

Co je potřeba vědět

  • Prázdný dataset (0 dossier balíčků) je legitimní stav a projde s explicitní hláškou — brána existuje dřív než data.

Vstupy a výstupy

Čte

  • data/dossiers/**/*.json
  • data/dossiers/_shared/entities/*.json
  • data/dossiers/_shared/vocabularies/*.json
  • schemas/canonical/*.schema.json

Vynucovaná pravidla datasetu

R1 R2 R3 R4 R5 R6 R7 R8 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 T1 T2 T3 T4 T5 T6 T7 T8

S1–S10 vlastní scripts/data/validate-semantics.mjs, R1–R8 scripts/data/validate-references.mjs a T1–T8 scripts/data/validate-registry-table.mjs.

Popis vychází z hlavičkového komentáře zdrojového souboru. Volání, zařazení do pipeline i členství v pre-commit hooku se dopočítávají při každém buildu ze samotného repozitáře.