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 | ||
draft:číselníky [2018/06/25 13:59] – [SKOS - standard pro číselníky] Jakub Klímek | draft:číselníky [2019/09/17 09:40] (aktuální) – odstraněno Jakub Klímek | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
- | ====== Jak na číselníky ====== | ||
- | Číselníkem je seznam nějak souvisejících položek. | ||
- | Číselníky se mohou používat například jako seznam možných hodnot pro různé vlastnosti datových entit, což lze využít pro formuláře pro zadávání dat, aplikace vizualizující data apod. | ||
- | Ukázkou číselníku může být například [[https:// | ||
- | * aptus (norm. ukončení nemoci) | ||
- | * důchod starobní | ||
- | * mateřská dovolená | ||
- | * nástup do lázní | ||
- | * exitus | ||
- | |||
- | Použití tohoto seznamu si lze představit třeba v personálním systému nějaké organizace, kde se evidují pracovní neschopnosti zaměstnanců. | ||
- | |||
- | Tato podoba, tedy textový seznam, není příliš vhodná pro strojově čitelnou reprezentaci. | ||
- | |||
- | ===== Identifikace položek ===== | ||
- | |||
- | Největším problémem je totiž to, že jednotlivé položky jsou identifikovatelné pouze svým názvem. | ||
- | Záznamy, které by tyto položky využívaly, | ||
- | Pokud by pak došlo ke změně v názvu položky, rázem by přestaly být validní všechny záznamy tuto položku využívající. | ||
- | |||
- | Je tedy třeba zavést identifikaci položky nezávisle na jejím názvu. | ||
- | Pro každou položku se tedu zaznamená její kód: | ||
- | |||
- | ^ Kód ^ Název | ||
- | | 0 | aptus (norm. ukončení nemoci) | | ||
- | | 1 | důchod starobní | ||
- | | 3 | mateřská dovolená | ||
- | | 5 | nástup do lázní | ||
- | | E | exitus | ||
- | |||
- | Nyní se ostatní systémy mohou odkazovat na kód položky, a jejich záznamy zůstanou validní i když se název položky změní. | ||
- | Identifikace položek tímto způsobem je ale pouze lokální. | ||
- | Aby je ostatní systémy mohly vužítvat, potřebují k tomu vědět, o který číselník kterého poskytovatele dat se jedná, protože číselníků, | ||
- | |||
- | Je zde tedy jasné potřeba identifikovat položky číselníků lépe, ideálně tak, aby byly identifikovány naprosto jednoznačně. | ||
- | Pro tento účel se používají identifikátory IRI - Internationalized Resource Identifier, které jsou založeny na doménových jménech jednotlivých poskytovatelů dat a zaručují jednoznačnou identifikaci. | ||
- | Číselník s položkami identifikovanými IRI pak může vypadat například takto: | ||
- | |||
- | ^ IRI ^ Kód ^ Název | ||
- | | https:// | ||
- | | https:// | ||
- | | https:// | ||
- | | https:// | ||
- | | https:// | ||
- | |||
- | Nyní je každá položka globálně jednoznačně identifikována svým IRI, a to napříč systémy, které tyto položky využívají. | ||
- | |||
- | ===== Další vlastnosti položek ===== | ||
- | |||
- | Některé položky mohou mít kratší název, například pro zobrazení ve formuláři, | ||
- | |||
- | ^ | ||
- | | https:// | ||
- | |||
- | Dále je čím dál častější reprezentovat vícejazyčné položky číselníků, | ||
- | |||
- | ^ IRI ^ Kód ^ Název česky | ||
- | | https:// | ||
- | |||
- | ===== SKOS - standard pro číselníky ===== | ||
- | |||
- | Zde začíná být patrný další problém, a to jak číselníky reprezentovat tak, aby každý uživatel poznal, co je kód, co je název a v jakém je jazyce. | ||
- | I za předpokladu tabulkové reprezentace je variant totiž příliš mnoho, a každý poskytovatel dat si zajisté vybere jinou. | ||
- | Zpravidla se jená o ruční práci, jelikož se číselník od číselníku liší: | ||
- | * Názvy sloupců | ||
- | * Diakritika | ||
- | * Mezery a bílé znaky | ||
- | * Speciální znaky | ||
- | * Pořadí sloupců | ||
- | * Kódování souboru | ||
- | * Formáty čísel | ||
- | * Formáty datumů | ||
- | * apod. | ||
- | |||
- | Je tedy opět potřeba standardizovat podobu samotných číselníků, | ||
- | Pro publikaci číselníků na Webu se používá W3C doporučení [[https:// | ||
- | Jako datový formát používá W3C doporučení RDF - Resource Description Framework, které má vestavěnou podpouru pro jednoznačnou identifikaci entit, jejich vlastností i přirozených jazyků, ve kterých jsou psány názvy a popisy. | ||
- | Položka číselníku popsaná pomocí doporučení SKOS pak vypadá takto: | ||
- | |||
- | <code turtle> | ||
- | @prefix skos: < | ||
- | |||
- | < | ||
- | skos: | ||
- | skos: | ||
- | skos: | ||
- | skos:note " | ||
- | " | ||
- | </ | ||
- | |||
- | Vlastnost '' | ||
- | |||
- | Reprezentace číselníků v RDF dle SKOS má ještě další výhodu. | ||
- | Při správné implementaci při přístupu k URI položky či číselníku, | ||
- | |||
- | ===== Další příklady číselníků ve SKOS ===== | ||
- | |||
- | [[https:// | ||
- | |||
- | ===== Reprezentace v ostatních otevřených formátech ===== | ||
- | |||
- | Je-li číselník reprezentován pomocí SKOS, lze z něj snadno vytvořit i odvozené, zjednodušené reprezentace, | ||
- | Opačným směrem je transformace zpravidla výrazně těžší. | ||
- | Doporučujeme tedy primárně reprezentovat číselníky v RDF dle SKOS. | ||
- | |||
- | Příklad reprezentace v CSV tabulce: | ||
- | |||
- | <code csv> | ||
- | kod_polozky, | ||
- | 0,aptus (norm. ukončení nemoci), | ||
- | 1,důchod starobní, | ||
- | 3, | ||
- | 5,nástup do lázní, | ||
- | E, | ||
- | </ | ||
- | |||
- | Reprezentace v JSON souboru: | ||
- | |||
- | <code json> | ||
- | [ | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | ]</ | ||
- | |||
- | Jiná reprezentace v JSON souboru: | ||
- | |||
- | <code json> | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | }</ | ||
- | |||
- | Reprezentace v XML: | ||
- | |||
- | <code xml> | ||
- | <?xml version=" | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ |