Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze Následující verzeObě strany příští revize | ||
standardy:technicke-standardy-pro-vytvareni-datovych-schemat-na-stupni-3 [2017/09/04 15:59] – Jakub Klímek | standardy:technicke-standardy-pro-vytvareni-datovych-schemat-na-stupni-3 [2021/06/14 17:07] – [Technické standardy vytváření datových schémat pro datové sady na stupni otevřenosti 3] Jakub Klímek | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Technické standardy vytváření datových schémat pro datové sady na stupni otevřenosti 3 ====== | ====== Technické standardy vytváření datových schémat pro datové sady na stupni otevřenosti 3 ====== | ||
- | Na stupni otevřenosti 3 by měly mít distribuce datových sad přiřazeno datové schéma, které popisuje požadovanou syntaktickou strukturu distribucí. Pro vyjádření datového schématu je nutno zvolit vhodný jazyk pro jeho vyjádření. Jazyk závisí na datovém formátu, který byl zvolen pro vyjádření distribuce. | + | Na stupni otevřenosti 3 by měly mít distribuce datových sad přiřazeno datové schéma, které popisuje požadovanou syntaktickou strukturu distribucí. |
+ | Pro vyjádření datového schématu je nutno zvolit vhodný jazyk pro jeho vyjádření. | ||
+ | Jazyk závisí na datovém formátu, který byl zvolen pro vyjádření distribuce. | ||
- | * V případě formátu CSV je nutno schéma vyjádřit | + | * V případě formátu CSV je nutno schéma vyjádřit |
- | * V případě formátu XML je nutno schéma vyjádřit v jazyku XML Schema (http:// | + | * V případě formátu XML je nutno schéma vyjádřit v jazyku XML Schema (https:// |
- | * V případě formátu JSON je nutno schéma vyjádřit v jazyku JSON Schema (http:// | + | * V případě formátu JSON je nutno schéma vyjádřit v jazyku JSON Schema (https:// |
- | Při návrhu datových schémat | + | Při návrhu datových schémat dodržujte následující |
- | * Pro primitivní datové typy (řetězec, číslo, datum, ...) používejte datové typy jazyka XML Schema (i v případě CSV a JSON souborů) | + | * Pro primitivní datové typy ([[datovy-typ: |
* Schéma každé distribuce musí být volně dostupné ke stažení v síti WWW. | * Schéma každé distribuce musí být volně dostupné ke stažení v síti WWW. | ||
* Distribuce se stejnou strukturou mají společné schéma. | * Distribuce se stejnou strukturou mají společné schéma. | ||
+ | * Pokud je schéma částečně pokryto, tj. některé položky odpovídají významem, některým z již [[vzor: | ||
+ | |||
+ | ===== Definice vlastního schématu pro data v CSV ===== | ||
+ | Při práci s formátem CSV se nejprve seznamte s [[špatná-praxe: | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Pro řadu datových sad formát CSV není vhodný a je lepší je publikovat v některém ze strukturovanějších formátů, viz [[https:// | ||
+ | </ | ||
+ | |||
+ | Prvním krokem k tvorbě schematu pro CSV data je určení toho, jak se budou jmenovat jednotlivé sloupce CSV souboru, jaké budou mít datové typy a jaký budou mít význam. | ||
+ | Pro dosažení maximální míry interoperability postupujte v následujících krocích: | ||
+ | - Stanovte si jmenné konvence pro sloupce, např. | ||
+ | - název v češtině | ||
+ | - všechna písmena malá (lower case) | ||
+ | - víceslovné názvy spojené podtržítkem '' | ||
+ | - hierarchickou vazbu reprezentujte také podtržítkem '' | ||
+ | - Pro sloupce použijte vhodný datový typ jazyka XML Schema. | ||
+ | - Význam sloupců popište slovně. | ||
+ | |||
+ | Jako jazyk pro definici schématu pro data v CSV použijte standard [[https:// | ||
+ | Standard říká, jak má být CSV soubor publikovaný na webu popsán pomocí přídavného JSON-LD souboru, který je publikován spolu s CSV souborem. | ||
+ | |||
+ | ==== Metadata Vocabulary for Tabular Data (CSV on the Web, CSVW) ==== | ||
+ | Použití CSVW schématu si ilustrujeme na zjednodušeném příkladu pro následující dvousloupcové CSV: | ||
+ | <code csv> | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | Jednoduchý CSVW deskriptor (JSON soubor) pro tento CSV soubor může vypadat například takto: | ||
+ | |||
+ | <code json> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }], | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Jednotlivé položky v JSON deskriptoru mají následující význam: | ||
+ | |||
+ | * Položka '' | ||
+ | * Položka '' | ||
+ | * Položka '' | ||
+ | * Položka '' | ||
+ | * Položka '' | ||
+ | * Položka '' | ||
+ | * Položka '' | ||
+ | * Položka '' | ||
+ | * Položka '' | ||
+ | * Pro datové typy v položce '' | ||
+ | |||
+ | Vystavený JSON deskriptor dle CSVW by pak měl být poskytován s HTTP hlavičkou '' | ||
+ | |||
+ | Toto je jen minimalistický příklad toho, co lze popsat pomocí CSVW. Pro využití všech možností je třeba postupovat dle [[https:// | ||
+ | |||
+ | === Sdílené schéma pro více CSV souborů === | ||
+ | Deskriptor CSV souboru lze oddělit od schématu, pokud schéma chceme použít pro více CSV souborů. | ||
+ | Pak budeme mít JSON soubor '' | ||
+ | <code json> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }], | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | A deskriptor každého CSV souboru se na něj bude odkazovat (nejspíše však pomocí plného, absolutního URL): | ||
+ | <code json> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === Validace CSVW === | ||
+ | CSV popsané pomocí CSVW lze nejjednodušeji validovat nástrojem [[https:// | ||
+ | Ten má jednak sdílené webové rozhraní, a také lze spustit z příkazové řádky nebo použít jako webovou službu. | ||
+ | |||
+ | CSV popsané pomocí CSVW lze validovat například pomocí nástroje [[https:// | ||
+ | Tedy '' | ||
+ | |||
+ | CSV popsané pomocí CSVW lze validovat například pomocí knihovny [[https:// | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Webové rozhraní [[https:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Definice vlastního schématu pro data v XML ===== | ||
+ | Pro popis XML schématu se používá jazyk XML Schema. | ||
+ | |||
+ | Prvním krokem k tvorbě schematu pro XML data je určení toho, jak se budou jmenovat a jak budou zanořeny jednotlivé elementy v XML souboru, jaké budou mít datové typy a jaký budou mít význam. | ||
+ | Pro dosažení maximální míry interoperability postupujte v následujících krocích: | ||
+ | - Podívejte se na [[vzor: | ||
+ | - Pokud se některá datová sada shoduje s daty, které chcete publikovat, použijte její předpřipravené schéma. Existující schéma nemusíte daty pokrývat celé, všechny položky jsou volitelné. | ||
+ | - Pokud se žádná existující datová sada neshoduje s daty, které chcete publikovat, vytvořte nové schéma. | ||
+ | - Pokud některá datová sada pokrývá data která chcete publikovat pouze částečně, | ||
+ | - Dosud nepokryté elementy, tj. ty, jejichž význam neodpovídá žádnému datovému typu v žádné existující datové sadě ze vzorových publikačních plánů, pojmenujte dle stejných jmenných konvencí. Tj. | ||
+ | - vytvořte si vlastní XML namespace | ||
+ | - názvy elementů či atributů v češtině | ||
+ | - všechna písmena malá (lower case) | ||
+ | - žádná diakritika | ||
+ | - víceslovné názvy spojené podtržítkem '' | ||
+ | - hierarchickou vazbu reprezentujte vnořeným XML elementem | ||
+ | - Pro nově definované elementy použijte vhodný datový typ jazyka XML Schema. |