standardy:technicke-standardy-pro-vytvareni-datovych-schemat-na-stupni-3

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
standardy:technicke-standardy-pro-vytvareni-datovych-schemat-na-stupni-3 [2019/05/13 10:57] – [Metadata Vocabulary for Tabular Data (CSV on the Web, CSVW)] Jakub Klímekstandardy:technicke-standardy-pro-vytvareni-datovych-schemat-na-stupni-3 [2021/11/23 07:43] (aktuální) – [Technické standardy vytváření datových schémat pro datové sady na stupni otevřenosti 3] Jakub Klímek
Řádek 5: Řádek 5:
 Jazyk závisí na datovém formátu, který byl zvolen pro vyjádření distribuce. 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 jazyku Metadata Vocabulary for Tabular Data (https://www.w3.org/TR/tabular-metadata/) či JSON Table Schema (https://specs.frictionlessdata.io/table-schema/). +  * V případě formátu CSV je nutno schéma vyjádřit dle webového standardu CSV on the Web (https://www.w3.org/TR/tabular-metadata/). 
-  * V případě formátu XML je nutno schéma vyjádřit v jazyku XML Schema (http://www.w3.org/XML/Schema). +  * V případě formátu XML je nutno schéma vyjádřit v jazyku XML Schema (https://www.w3.org/XML/Schema). 
-  * V případě formátu JSON je nutno schéma vyjádřit v jazyku JSON Schema (http://json-schema.org/).+  * V případě formátu JSON je nutno schéma vyjádřit v jazyku JSON Schema (https://json-schema.org/a validovat pomocí validátoru, napřhttps://tryjsonschematypes.appspot.com/#validate či https://www.jsonschemavalidator.net/
  
 Při návrhu datových schémat dodržujte následující pravidla: Při návrhu datových schémat dodržujte následující pravidla:
  
-  * Pro primitivní datové typy ([[datovy-typ:řetezec|řetězec]], [[datovy-typ:celé-císlo|celé číslo]], [[datovy-typ:datum|datum]], ...) používejte datové typy jazyka XML Schema (i v případě CSV a JSON souborů).+  * Pro primitivní datové typy používejte datové typy jazyka XML Schema (i v případě CSV a JSON souborů).
   * 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:start|existujících standardů]] ve vzorových publikačních plánech, převezměte tyto položky. Nově definujte pouze ty položky, jejichž význam v žádném z existujících standardů pokryt není. 
  
 ===== Definice vlastního schématu pro data v CSV ===== ===== Definice vlastního schématu pro data v CSV =====
 Při práci s formátem CSV se nejprve seznamte s [[špatná-praxe:start#nejčastější_chyby_při_použití_formátu_csv|nejčastějšími chybami při použití formátu CSV]]. Při práci s formátem CSV se nejprve seznamte s [[špatná-praxe:start#nejčastější_chyby_při_použití_formátu_csv|nejčastějšími chybami při použití formátu CSV]].
 +
 +<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://ofn.gov.cz|Otevřené formální normy]].
 +</WRAP>
  
 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. 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: Pro dosažení maximální míry interoperability postupujte v následujících krocích:
-  - Podívejte se na [[vzor:start|již existující standardy]] pro datové sady. +  - Stanovte si jmenné konvence pro sloupcenapř.
-      - Pokud se některá datová sada shoduje s datykteré 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ě, použijte v novém schématu pro pokryté položky názvy sloupců, datové typy a popisky z existující datové sady. +
-  - Dosud nepokryté sloupce, tj. ty, jejichž význam neodpovídá žádnému sloupci v žádné existující datové sadě ze vzorových publikačních plánů, pojmenujte dle stejných jmenných konvencí. Tj.+
       - název v češtině       - název v češtině
       - všechna písmena malá (lower case)       - všechna písmena malá (lower case)
-      - žádná diakritika 
       - víceslovné názvy spojené podtržítkem ''_''       - víceslovné názvy spojené podtržítkem ''_''
-      - hierarchickou vazbu reprezentujte také podtržítkem ''_'', např. ''pokutovany_ic'', ''pokutovany_nazev'' +      - hierarchickou vazbu reprezentujte také podtržítkem ''_'', např. ''pokutovaný_ič'', ''pokutovaný_název'' 
-  - Pro nově definované sloupce použijte vhodný datový typ jazyka XML Schema.+  - 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 můžete použít buďto standard [[https://www.w3.org/TR/tabular-metadata/|Metadata Vocabulary for Tabular Data]] z rodiny standardů W3C [[https://www.w3.org/standards/techs/csv#w3c_all|CSV on the Web]] (CSVW), nebo definici [[https://specs.frictionlessdata.io/table-schema/|Table Schema]]+Jako jazyk pro definici schématu pro data v CSV použijte standard [[https://www.w3.org/TR/tabular-metadata/|Metadata Vocabulary for Tabular Data]] z rodiny standardů W3C [[https://www.w3.org/standards/techs/csv#w3c_all|CSV on the Web]] (CSVW). 
-Oba tyto jazyky říkají, jak má být CSV soubor publikovaný na webu popsán pomocí přídavného JSON souboru, který je publikován spolu s CSV souborem, a liší se pouze syntaxí a expresivitou tohoto JSON souboru. +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.
-Doporučujeme však použít standard W3C.+
  
 ==== Metadata Vocabulary for Tabular Data (CSV on the Web, CSVW) ==== ==== Metadata Vocabulary for Tabular Data (CSV on the Web, CSVW) ====
Řádek 72: Řádek 70:
 Jednotlivé položky v JSON deskriptoru mají následující význam: Jednotlivé položky v JSON deskriptoru mají následující význam:
  
-  * Položka ''@context'' musí obsahovat minimálně URL ''http://www.w3.org/ns/csvm'', v tomto případě obsahuje ještě specifikaci češtiny jakožto výchozího jazyka textových položek schématu.+  * Položka ''@context'' musí obsahovat minimálně URL ''http://www.w3.org/ns/csvw'', v tomto případě obsahuje ještě specifikaci češtiny jakožto výchozího jazyka textových položek schématu.
   * Položka ''url'' musí obsahovat (relativní či absolutní) URL popisovaného CSV souboru. Každý CSV soubor má tedy vlastní JSON deskriptor.   * Položka ''url'' musí obsahovat (relativní či absolutní) URL popisovaného CSV souboru. Každý CSV soubor má tedy vlastní JSON deskriptor.
   * Položka ''tableSchema'' musí obsahovat buďto URL jiného JSONu se samotným schématem, což je použitelné pro sdílení jednoho schématu více CSV soubory a jejich JSON deskriptory, nebo přímo schéma samotné.   * Položka ''tableSchema'' musí obsahovat buďto URL jiného JSONu se samotným schématem, což je použitelné pro sdílení jednoho schématu více CSV soubory a jejich JSON deskriptory, nebo přímo schéma samotné.
Řádek 126: Řádek 124:
 Tedy ''rdf validate xxx.csv'' Tedy ''rdf validate xxx.csv''
  
-CSV popsané pomocí CSVW lze validovat například pomocí knihovny [[https://github.com/theodi/csvlint.rb|csvlint.rb]], kterou stačí spustit a nasměrovat na JSON deskriptor, který pak ukazuje na CSV data, případně schéma. Tedy ''csvlint -s schema.json'' pro lokální schéma v souboru v souborovém systému, nebo s plným URL deskriptoru, např. ''csvlint -s https://mvcr1.opendata.cz/czechpoint/2007.json''.+CSV popsané pomocí CSVW lze validovat například pomocí knihovny [[https://github.com/theodi/csvlint.rb|csvlint.rb]], kterou stačí spustit a nasměrovat na JSON deskriptor, který pak ukazuje na CSV data, případně schéma. Tedy ''csvlint -s schema.json'' pro lokální schéma v souboru v souborovém systému, nebo s plným URL deskriptoru, např. ''csvlint -s https://data.mvcr.gov.cz/soubory/czechpoint/2007.json''.
  
 <WRAP center round important 60%> <WRAP center round important 60%>
Řádek 133: Řádek 131:
  
  
-==== Table Schema ==== 
-Table Schema je starší jazyk pro strukturovaný popis CSV souborů. 
-Doporučujeme spíše použít CSV on the Web popsaný výše. 
- 
-Použití Table Schema si opět ilustrujeme na zjednodušeném příkladu pro následující dvousloupcové CSV: 
-<code csv> 
-"idhod","hodnota" 
-"747627675","14.91" 
-"747628556","14.96" 
-</code> 
- 
-Jednoduchý Table Schema deskriptor (JSON soubor) pro tento CSV soubor může vypadat například takto: 
- 
-<code json> 
-{ 
-    "fields": [{ 
-      "name": "idhod", 
-      "description":"unikátní identifikátor údaje Veřejné databáze ČSÚ", 
-      "required": true, 
-      "type": "default" 
-    }, { 
-      "name": "hodnota", 
-      "description":"zjištěná hodnota", 
-      "required": true, 
-      "type": "number" 
-    } 
-    ], 
-    "primaryKey": "idhod" 
-} 
-</code> 
- 
-Jednotlivé položky mají stejný význam jako u schématu dle CSVW. Rozídly jsou následující: 
-  * Pole se sloupci se místo ''columns'' jmenuje ''fields'' 
-  * Místo ''datatype'' je ''type'' 
-  * Místo ''dc:description'' je ''description'' 
-  * Chybí povinný ''@context'' 
- 
-=== Validace === 
-Pro validaci lze použít online nástroj [[http://csvlint.io/|csvlint.io]]. 
-Také lze použít knihovnu [[https://github.com/theodi/csvlint.rb|csvlint.rb]]. 
-Jelikož ze schématu nevede link na samotná data, je třeba obojí poskytnout jako parametr, např. ''csvlint data.csv -s schema.json'' 
  
 ===== Definice vlastního schématu pro data v XML ===== ===== Definice vlastního schématu pro data v XML =====
  • standardy/technicke-standardy-pro-vytvareni-datovych-schemat-na-stupni-3.txt
  • Poslední úprava: 2021/11/23 07:43
  • autor: Jakub Klímek