Jeden soubor data/dossiers/<slug>/claims/clm-NN.json = jedno tvrzení.
{
"@context": "https://vomaste.cz/context/v1.jsonld",
"@id": "https://vomaste.cz/id/dossiers/petr-pavel/claims/CLM-01",
"@type": "vomaste:Claim",
"recordType": "claim",
"identifier": "CLM-01",
"dossier": { "@id": "https://vomaste.cz/id/dossiers/petr-pavel" },
"text": "…",
"status": "status-corroborated",
"statusLabel": "CORROBORATED",
"sources": [
{ "@id": "https://vomaste.cz/id/dossiers/petr-pavel/sources/SRC-01" },
{ "@id": "https://vomaste.cz/id/dossiers/petr-pavel/sources/SRC-02" }
],
"subjects": ["pavel"],
"order": 1
}
Dvě identity, každá k něčemu jinému
identifier (CLM-01) je lokální — v rámci jednoho dossieru. Používá ho UI, protože „CLM-01“ se v tabulce čte líp než URL.
@id je globální a je to skutečná identita záznamu. Tvar https://vomaste.cz/id/dossiers/<slug>/claims/CLM-01 dělá kolizi napříč dossiery mechanicky nemožnou — CLM-01 existuje v každém, ale globální @id je jen jedno.
Vazby jsou obousměrné
Tvrzení odkazuje na zdroje a zdroj odkazuje zpět na tvrzení. Validátor požaduje, aby obě strany souhlasily. Nedá se tedy dostat do stavu, kdy tvrzení cituje zdroj, který o něm neví.
subjects
Redakční údaj: koho se tvrzení doopravdy týká. Není odvoditelný z grafu — je to rozhodnutí. Slouží k tomu, aby entity dossiery mohly zobrazovat filtrovaný pohled na tatáž data bez jediné kopie. Ověř si, že to sedí Chcete opravit překlep v textu tvrzení. Kolik souborů musíte změnit? Dva — a je to jediné místo v celém datovém modelu, kde je to takhle. Když opravíte jen jedno, validátor tabulkové parity build shodí. To je záměr: kdyby se ty dvě reprezentace mohly rozejít potichu, čtenář by v tabulce viděl jiné znění než na stránce tvrzení a nikdo by nevěděl, které platí. Zbytek — stránka tvrzení, registrový index, exporty, strukturovaná data, počty na dlaždicích — se generuje. Ty se nikdy neupravují ručně; ruční úprava se při dalším sestavení tiše přepíše. Po opravě obou míst se pustí Zobrazit odpověď Skrýt odpověď
data/dossiers/<slug>/claims/clm-NN.json, pole text.dossier.json.npm run data:build, který adaptéry přegeneruje.