- Čeština
- English
Autoři:
Vytvořeno za podpory grantu IGA VŠE 10/2011 Sémantické propojování dat ve veřejné správě
.
Vztahuje se k: cz.ckan.net
Datum poslední úpravy: 2. 12. 2011
V tomto dokumentu je popsána metodika pro práci se software pro správu datového katalogu, který nese označení Comprehensive Knowledge Archive Network (CKAN). Účelem metodiky je poskytnout čtenářům metodické doporučení, jak vhodným způsobem používat CKAN pro správu datového katalogu. Datový katalog je systematicky vytvářený seznam datových množin, které náležejí do zvolené věcné oblasti nebo splňují jiná kritéria stanovená katalogizátorem, tedy osobou, která se zabývá identifikací datových množin, jejich popisem a následným zatříděním do vytvářeného katalogu.
Tato metodika není uživatelskou příručkou software CKAN, objasňuje ale pojmy používané tímto software a přináší doporučení ohledně způsobu, jakým popisovat datové množiny zařazované do datového katalogu, aby popis datových množin byl dobře využitelný potenciálními uživateli datového katalogu.
Metodika popsaná v tomto dokumentu je primárně určena osobám, které vytvářejí a spravují datové katalogy, tedy katalogizátorům. Metodika nicméně může být užitečná i pro jiné osoby, které přicházejí do styku se software CKAN a v něm obsaženým datovým katalogem, protože seznámení se s touto metodikou jim může pomoci v pochopení způsobu, jakým jsou jednotlivé datové množiny popisovány.
Ačkoli se snažíme udělat metodiku pokud možno obecnou, software CKAN se poměrně dynamicky vyvíjí. S tímto vývojem souvisí i fakt, že terminologie používaná tímto software se občas v průběhu vývoje mění. Metodika je tak do jisté míry svázána s určitou verzí software CKAN. Text této metodiky je v souladu s terminologií používanou ve verzi 1.5. Pokud bude v dalším textu použito označení současná verze, je tím myšlena verze 1.5.
Comprehensive Knowledge Archive Network (CKAN) je software pro vytváření a správu datového katalogu. Software CKAN je navržen tak, aby s ním mohli pracovat jak lidé, tak i další programy a aplikace. Za tímto účelem CKAN disponuje webovým rozhraním pro interakci s člověkem a aplikačním rozhraním (API).
Záznamy o datech (datových množinách) lze do CKAN vkládat, upravovat a lze v nich také vyhledávat. Datové množiny v datovém katalogu lze kategorizovat pomocí skupin a štítků (tagů). Uživatelé mohou k záznamům o datových množinách (datasetech) přidávat svoje komentáře a mohou také datasety hodnotit.
CKAN je vyvíjen jako svobodný/open source software pod licencí GNU Affero General Public Licence v3. Díky tomu je možné software snadno a bezplatně získat. Zájemci mohou software upravovat, případně se přímo zapojit do jeho vývoje. Abyste přispěli k rozvoji CKAN, není třeba umět programovat. Uživatelé CKAN z České republiky jistě ocení, pokud se rozhodnete vylepšit český překlad uživatelského rozhraní CKAN nebo pomůžete při vytváření české dokumentace či návodů pro práci s tímto software.
Bližší informace o CKAN je možné nalézt na webových stránkách věnovaných tomuto softwaru (ckan.org) nebo na wiki (wiki.ckan.org).
Open Knowledge Foundation také provozuje instanci CKAN pro Českou republiku. Ta je dostupná na adrese cz.ckan.net.
Základní jednotkou pro popis dat v software CKAN je tzv. dataset1. Tento dataset obsahuje odkaz na datové zdroje (jejich URI), prostřednictvím kterých lze získat datové množiny, a dále je v datasetu obsažen také popis těchto datových množin.
Jelikož je slovo dataset ekvivalentním označením pro datovou množinu v obecném slova smyslu, bude v rámci této metodiky používáno označení CKAN dataset, pro základní jednotku datového katalogu vytvářeného pomocí software CKAN (záznam). Pro označení souboru dat pak bude používán český pojem datová množina.
Každý CKAN dataset má několik atributů, jejichž hodnoty je možné nastavit během zakládání CKAN datasetu nebo upravit u již existujících CKAN datasetů. Tyto atributy jsou následující (anglický název atributu je uveden v závorce za českým):
Seznam organických včelařů, který má tuto podobu <http://cz.ckan.net/dataset/list_of_organic_apiarists>. Textový řetězec
list_of_organic_apiaristspak představuje název CKAN datasetu.
Aktivnípro CKAN datasety, které mají být přístupné uživatelům CKAN nebo může stav být označen jako
Smazanýpro CKAN datasety, které nemají být přístupné uživatelům CKAN. Pokud CKAN dataset obsahuje jako zdroje odkazy na existující datové množiny, stav CKAN datasetu by měl být nastaven jako
Aktivní. Stav
Smazanýse používá v případě, že datové množiny odkazované v CKAN datasetu již neexistují nebo již nejsou vystaveny na Webu a jako takové jsou pro běžného člověka nedostupné.
Za povšimnutí stojí fakt, že mezi atributy CKAN datasetu není osoba, která tento dataset vytvořila. Atributy Autor a Správce se vztahují vždy k datovým množinám (datům) samotným, nikoli k CKAN datasetu. U každého CKAN datasetu je ale možné si zobrazit historii změn, ve které je i zaznamenán vznik příslušného CKAN datasetu. Kdo vytvořil CKAN dataset a kdo provedl jaké změny je tak možné zjistit z tohoto přehledu změn. Je třeba ale podotknout, že pokud změnu či založení CKAN datasetu provedl nepřihlášený uživatel, je pouze zaznamenáno, z jaké IP adresy přišel požadavek na vytvoření/změnu CKAN datasetu.
Podrobnosti k vyplňování údajů jednotlivých atributů jsou náplní následujících kapitol.
CKAN datasety se vytvářejí pro datové množiny, které mají dobře strojově zpracovatelnou formu. Například se jedná o soubory tabulkového procesoru (MS Excel - xls, xlsx apod.), XML soubory, tabulková data v souborech oddělených čárkou či jiným oddělovačem (csv).
CKAN dataset je možné založit i pro službu (aplikaci), prostřednictvím které lze data získat. Jako zdroj je pak uvedeno API služby.
Do CKAN datasetu sdružujte datové množiny (datové zdroje), které spolu souvisí. Příkladem může být určitý typ výkazu za jednotlivá časová období, za které je výkaz tvořen (např. všechny soubory měsíční statistiky trhu drůbeže). Pro datové množiny musí platit všechny atributy CKAN datasetu, takže všechny datové množiny v CKAN datasetu musí být například zpřístupněny pod stejnou licencí nebo právními podmínkami, musí jim odpovídat text popisu datové množiny, musejí mít stejného autora/původce atd. Pokud spolu datové množiny věcně souvisejí, ale v některém atributu CKAN datasetu se liší, pak je třeba pro ně vytvořit samostatné CKAN datasety. V takovémto případě je ale vhodné vytvořené samostatné CKAN datasety opatřit stejnými štítky pro zásadní kategorie, aby je uživatel mohl lépe vyhledat (viz. kapitola Tagy).
Do CKAN se nevkládají samotné datové soubory, ale pouze odkazy na ně. Odkaz na stažitelný soubor nebo na API je v terminologii CKAN označován jako zdroj
(anglicky Resource, blíže viz příslušná kapitola tohoto dokumentu). V rámci CKAN datasetu může být evidováno několik datových zdrojů (počet není omezen), ale lze vytvořit i CKAN dataset, který nebude mít uveden žádný datový zdroj. Vytváření CKAN datasetů, které nemají žádný datový zdroj, ale není doporučováno. Proto by každý CKAN dataset měl mít uveden alespoň jeden datový zdroj.
Pro současnou verzi CKAN existuje rozšíření, které umožňuje ukládat datové soubory přímo v CKAN. Pokud pracujete s CKAN, kde je dostupné toto rozšíření, je možné do CKAN datasetů jako zdroje uvádět nejen odkaz na datový zdroj, ale je možné do něj uložit i samotný datový soubor s obsahem datové množiny.
Česká instance CKAN (cz.ckan.net) v současné době přímé ukládání datových souborů neumožňuje.
Pokud je vytvořeno více CKAN datasetů, které popisují související datové množiny, je vhodné vytvořit i CKAN dataset, který tyto související CKAN datasety sdružuje. Protože takovýto CKAN dataset zpravidla neobsahuje odkazy na datové zdroje, ale na jiné CKAN datasety, je označován jako CKAN metadataset. CKAN metadataset je vytvořen jako standardní CKAN dataset, v textu popisu datové množiny je pak použita formulace package:nazev_ckan_datasetu, která vytvoří hypertextový odkaz na CKAN dataset, jehož atribut name má hodnotu nazev_ckan_datasetu. Odkaz lze doprovodit textem, který dále vysvětluje povahu vztahu mezi uvažovanými CKAN datasety.
Pokud potřebujete vytvořit nadřazený CKAN dataset, který sdružuje určitou množinu jiných CKAN datasetů, například proto, že chcete svoje CKAN datasety určitým způsobem strukturovat, můžete použít formulaci package:nazev_ckan_datasetu. V rámci nadřazeného CKAN datasetu (CKAN metadatasetu) uveďte v textu popisu datové množiny odkazy na všechny přidružené CKAN datasety vytvořené pomocí formulace package:nazev_pridruzeneho_ckan_datasetu. Jednotlivé přidružené CKAN datasety pak v textu svého popisu obsahují odkaz na CKAN metadataset, opět vytvořený pomocí formulace package:nazev_nadrazeneho_ckan_datasetu. Takto jsou CKAN metadataset a CKAN datasety jemu podřazené propojené pomocí odkazů v textu popisu datové množiny.
Výše popsaný způsob vytváření vazeb mezi CKAN datasety má nevýhodu v tom, že je hůře strojově zpracovatelný. Pro strojové zpracování jsou vhodnější Doplňky (Extras). Každý doplněk má podobu dvojice atribut – hodnota, kde uživatel definuje jak atribut, tak i hodnotu. Pro doplňky platí výjimka z dvoujazyčného pojmenování a atribut i hodnota jsou tvořeny v angličtině.
Pokud definujete vazbu mezi CKAN datasety v rámci popisu CKAN datasetu, přidejte pro každou vazbu i doplněk vytvořený následujícím způsobem. Pokud pracujete s nadřazeným CKAN datasetem (metadatasetem), pak pro každý přidružený CKAN dataset přidejte doplněk, kde atribut bude pojmenován jako parent_of:nazev_pridruzeneho_ckan_datasetu. Jako hodnotu pak v angličtině přidejte krátký komentář popisující vzniklou vazbu. V níže uvedené tabulce je uveden příklad pro CKAN metadataset Regionální statistika ceny práce. Jedním z jeho podřazených CKAN datasetů je CKAN dataset pojmenovaný Regionální statistika ceny práce: Porovnání krajů.
| Atribut | Hodnota |
|---|---|
| parent_of:labour_cost_regional_statistics_comparison | Dataset Labour cost regional statistics: Comparison of regions is part of this dataset. |
Pokud pracujete s přidruženým CKAN datasetem a chcete vyjádřit vazbu na nadřazený metadataset, pak přidejte doplněk, kde je atribut pojmenován child_of:nazev_nadrazeneho_ckan_datasetu. Jako hodnotu opět přidejte krátký komentář popisující vzniklou vazbu. V tabulce níže je uveden příklad pro CKAN dataset Regionální statistika ceny práce: Porovnání krajů, který je přidružen k CKAN metadatasetu Regionální statistika ceny práce.
| Atribut | Hodnota |
|---|---|
| child_of:labour_cost_regional_statistics | This dataset is part of dataset Labour cost regional statistics. |
Je třeba připomenout, že výše popsaný způsob vytváření nadřazených a podřazených CKAN datasetů je pouze dohodnutý a software CKAN takto vytvořené vazby mezi CKAN datasety ve smyslu nadřazenosti a podřazenosti nevyhodnocuje.
Kromě výše popsaného způsobu vyjádření vazeb mezi CKAN datasety existuje i další možnost, jak provázat CKAN datasety vazbami. Jak bylo uvedeno ve stručném představení software CKAN, kromě webového rozhraní je možné pracovat s CKAN i pomocí aplikačního rozhraní (API). Pomocí tohoto rozhraní lze nastavovat i vazby mezi balíčky, kde mezi možnými vazbami je vazba mezi nadřazeným a podřazeným balíčkem. Jelikož v současné verzi CKAN není zadávání vazeb zpřístupněno z webového rozhraní, ale vazby lze nastavit pouze pomocí API, je nastavení vazeb mezi balíčky blíže popsáno v kapitole věnující se CKAN API.
K nastavování vazeb mezi CKAN datasety pomocí CKAN API je třeba ještě dodat, že tato funkce je stále ve vývoji. Není vhodné používat u CKAN datasetů zároveň vazby vyjádřené prostřednictvím Doplňků a nastavené pomocí CKAN API. Důvodem je fakt, že při přidání výše popsaných Doplňků vyjadřujících vazby mezi CKAN datasety může dojít ke smazání dříve nastavených vazeb pomocí CKAN API. Pokud nějaký CKAN dataset má nastavené vazby pomocí CKAN API, což poznáte snadno tak, že při prohlížení tohoto CKAN datasetu se v pravém sloupci pod údaji jako jsou tagy a skupiny zobrazuje sekce Související datasety (Related datasets), nepřidávejte k takovémuto CKAN datasetu vazby pomocí Doplňků, protože byste takto mohli smazat vazby dříve nastavené pomocí CKAN API.
Veškeré texty (titulky, popisy, tagy) jsou vytvářeny v jazyce anglickém i jazyce českém. Anglické označení by mělo předcházet označení českému.
Obsah CKAN datasetu by měl být srozumitelný jak česky mluvícím osobám, tak i lidem, kteří češtinu neovládají. Proto je popis obsahu CKAN datasetu vytvářen v češtině i angličtině. Texty v rámci CKAN datasetu by tak neměly být pouze v češtině nebo pouze v angličtině, neboť to pro určitou skupinu uživatelů vždy vytváří jazykovou barieru a snižuje to využitelnost CKAN datasetu.
Pole Doplňky (Extras, další volně přidávané atributy CKAN datasetu) mají formu dvojice atribut-hodnota, kde autor CKAN datasetu definuje jak název atributu, tak určuje i jeho hodnotu. V CKAN jsou názvy standardních atributů vytvořeny v angličtině. Proto při definici polí Extras definujte atribut i hodnotu pouze v angličtině.
Jako formát se používá koncovka souboru nebo označení typu API nebo služby, která reprezentuje zdroj. Označení formátu zpravidla představuje zkratku z anglického označení. Označení formátu zdroje se nepřekládá. Blíže viz kapitola Zdroje.
MIME type je standardizované označení formátu datového zdroje. Nepřekládá se. Blíže viz kapitola Zdroje.
MIME type je standardizované označení formátu datového zdroje. Vnitřní MIME type se používá například v případě, že ukládáte jako zdroj odkaz na komprimovaný soubor, který obsahuje sešit aplikace MS Excel. Vnitřní MIME type označuje typ souboru, který je zkomprimován (je uvnitř komprimovaného souboru. V našem případě by to bylo označení application/vnd.ms-excel pro sešit aplikace MS Excel. Toto označení se nepřekládá. Blíže viz kapitola Zdroje.
Velikost datového zdroje se udává jako hodnota v bytech. Nepřekládá se.
Datum poslední změny zdroje se udává v číselné podobě ve formátu den.měsíc.rok. Nepřekládá se.
Název CKAN datasetu je jeho jednoznačným označením. Může obsahovat malá písmena anglické abecedy, podtržítko a pomlčku. Měl by být výstižný a pokud možno lidem srozumitelný. Dle doporučení CKAN wiki je vhodné se při tvorbě identifikátoru vyhnout používání akronymů pokud nejsou všeobecně srozumitelné a známé (http://wiki.ckan.net/Creating_and_editing_Packages#Names).
Název CKAN datasetu vytvářejte pouze v angličtině. Dvoujazyčné pojmenování CKAN datasetu umístěte do atributu Titulek (Title).
URL CKAN datasetu bude z názvu vytvořeno automaticky a tudíž také bude pouze v jazyce anglickém.
Štítky (tagy) slouží k označení CKAN datasetu věcnými kategoriemi, pomocí kterých vyjadřujeme, k jakým oblastem se vztahují datové množiny obsažené v CKAN datasetu. Pomocí štítku tak můžeme například vyjádřit, že obsažené datové množiny pocházejí z Ministerstva zemědělství České republiky (přidáním tagu ministerstvo_zemědělství_české_republiky
, respektive anglickým ekvivalentem ministry_of_agriculture_of_the_czech_republic
) nebo že se vztahují k ekologickému zemědělství (tagy ekologické_zemědělství
, organic_produce
).
Štítky není třeba šetřit. Použijte ale pouze ty štítky, které vystihují obsah datové množiny. Při přidávání štítku k CKAN datasetu prostřednictvím webového rozhraní vám CKAN napovídá již existující štítky. Pokud pro vámi zvolenou kategorii již štítek existuje, využijte ho a nevytvářejte nový obdobně pojmenovaný. Štítky mají sdružovat CKAN datasety stejné věcné náplně. Vytváření více štítků pro tu samou kategorii je nevhodné, protože ztěžuje možnost dohledat všechny CKAN datasety z určité oblasti, jelikož ty mohou být označeny různými štítky pro stejnou oblast. Před přidáním nového štítku se tak snažte maximálně využít štítků již existujících. Nicméně neměli byste mít obavy přidat nový štítek pro kategorii, která se v katalogu CKAN dosud nenachází.
Pomocí štítků byste měli minimálně vyjádřit, jakých věcných oblastí se datové množiny týkají a jaký subjekt veřejné správy je původcem datových množin v CKAN datasetu.
Štítky (tagy) jsou vytvářeny v jazyce českém i v jazyce anglickém. Pokud uvedete štítek v jednom jazyce, je vždy třeba uvést i štítek v jazyce druhém.
Pro tagy v anglickém jazyce jsou primárně voleny pojmy z Integrated Public Sector Vocabulary (IPSV). Pro označení tagu dle IPSV volte preferované znění konceptu IPSV slovníku (to je obsaženo v atributu Name, respektive skos:prefLabel). Kromě štítku, který obsahuje samotný anglický slovní název, je třeba přidat ještě štítek, který obsahuje číslo ID, pod kterým je pojem evidován v IPSV. Takovýto štítek bude mít prefix IPSV_
následovaný ID číslem pojmu z IPSV. Přidáním štítku s ID IPSV pojmu se zajistí provázanost se slovníkem Integrated Public Sector Vocabulary.
Pokud chcete například označit CKAN dataset pojmem ekologického zemědělství z IPSV (pojem Organic produce), přidejte štítek se zněním organic_produce
(slovní označení) a štítek se zněním IPSV_1085
(ID číslo IPSV pojmu).
Pro české tagy je využíván CZ-NACE tam, kde se podaří vhodný termín v tomto slovníku najít. Pro české i anglické tagy platí, že pokud vhodný pojem v Integrated Public Sector Vocabulary, respektive v CZ-NACE, není, pak jsou tagy vytvářeny jako volně tvořená slovní spojení.
Protože v CKAN je seznam tagů tvořen jako seznam textových řetězců oddělených mezerou, tak v případě, že je tag víceslovný, jsou mezery nahrazeny podtržítkem (např.: ministerstvo_zemědělství_české_republiky
).
Kromě označování CKAN datasetů štítky (tagy) je možné přiřazovat CKAN datasety do skupin (groups). Uživatelům mohou být udělena práva k úpravě skupin a skupiny lze využít ke klasifikaci CKAN datasetů.
Skupiny jsou využity k vyznačení, že se CKAN datasety a v nich obsažené či odkazované datové množiny vztahují k České republice (zařazením CKAN datasetu do skupiny czech_republic
je vyjádřeno, že se CKAN dataset týká České republiky).
Skupiny mohou být dále vytvářeny a používány pro seskupování CKAN datasetů i z jiných nežli geografických hledisek. Příkladem může být skupina uep-survey
. Zařazením CKAN datasetu do skupiny uep-survey
je vyjádřeno, že vznikl v rámci projektu Interní grantové agentury (IGA) Vysoké školy ekonomické v Praze Sémantické propojování dat ve veřejné správě
2.
Skupiny je možné vytvářet dle potřeb nicméně je třeba mít na paměti, že nenahrazují tagy. Pomocí tagů věcně popisujeme, o čem datové množiny v CKAN datasetech jsou, nebo k jakým oblastem se vztahují. Skupiny slouží k seskupení většího množství CKAN datasetů, kde skupina nemusí být vždy věcná, ale může mít i administrativní povahu, jako je tomu v případě skupiny uep-survey
, která vyjadřuje, že CKAN dataset vznikl v rámci určitého grantového projektu.
Při vytvoření skupiny v CKAN doplňte do popisu skupiny bližší informace, aby se případní uživatelé CKAN mohli snadno dozvědět, jaký má skupina účel. V popisu CKAN skupiny je také vhodné uvést jméno osoby, která je jejím správcem (administrátorem) a kontaktní údaje na tohoto správce (alespoň email), aby jej bylo možné v případě potřeby kontaktovat.
Pro CKAN datasety vytvořené v rámci IGA projektu Sémantické propojování dat ve veřejné správě
pak platí, že musejí být přidány do dvou skupin: czech_republic
, uep-survey
.
Při přiřazování CKAN datasetů do skupiny je možné se setkat s problémem, kdy při založení nového CKAN datasetu není při jeho uložení uložena informace o zařazení CKAN datasetu do skupiny. V takovém případě je třeba v použít odkaz Groups a následně vybrat skupinu, do které chcete CKAN dataset zařadit. Po přechodu na stránku dané skupiny je třeba skupinu upravit (odkaz Edit) ) a přidat CKAN dataset do skupiny. Při přidávání CKAN datasetu do skupiny použijte název CKAN datasetu (atribut Name).
K neuložení údaji o skupině při zakládání nového CKAN datasetu může dojít i při přidávání nového CKAN datasetu prostřednictvím CKAN API. Proto je třeba po založení nového CKAN datasetu zařazení do skupin překontrolovat a případně přidat nově založený CKAN dataset do skupin, do kterých ho chcete zařadit.
Datové množiny dostupné prostřednictvím URI jsou v CKAN označovány jako zdroje. Datová množina může být obsažena v datovém souboru nebo může být dostupná skrze aplikačního rozhraní určité aplikace nebo rozhraní služby v prostředí internetu.
Každý zdroj je popsán několika atributy. Popis atributů zdroje odpovídá popisu, který je uveden na wiki CKAN. Na uvedeném odkaze najdete také doporučení pro vyplňování informací o zdrojích. Atributy zdroje jsou následující (v závorce za českým označením je uvedeno i označení anglické):
apia za lomítko se uvede formát dat poskytovaných skrze API. Pro API, které zpřístupňuje data ve formátu JSON by označení typu vypadalo takto:
api/json.
servicea za lomítko se uvede typ služby. Například pro Google Docs by označení služby vypadalo následovně:
service/gdocs.
indexa za lomítko se uvede typ seznamu. Pokud by seznam byl zachycen na stránce v jazyce HTML, pak by označení vypadalo takto:
index/html. Pokud by seznam byl odkazem na úložiště dostupné pomocí protokolu FTP, pak by označení bylo:
index/ftp.
Popis zdroje je tvořen popisem v angličtině a popisem v češtině. Obě jazykové verze by si měly odpovídat. U zdrojů je evidována perioda aktualizace a jazyk zdroje. Tyto doplňující informace o zdroj mají označení v anglickém jazyce: language (jazyk zdroje), frequency (periodicita/četnost aktualizace zdroje). Pokud je hodnota výše uvedených atributů stejná pro všechny zdroje v rámci jednoho CKAN datasetu, pak je tato hodnota evidována jako pole Extras (dvojice název atributu: hodnota atributu, např. Language: Czech).
Pokud perioda aktualizace datového zdroje není známá, pak samozřejmě nebude uvedena. V tomto případě není třeba ani uvádět klíčové slovo frequency, které by muselo být následováno klíčovým slovem unknown (neznámo).
Pokud se hodnota některého z atributů liší u dvou a více zdrojů v rámci jednoho CKAN datasetu, pak se příslušná dvojice atribut: hodnota zapíše do pole popisu zdroje a to na začátek tak, aby dvojice atribut: hodnota předcházely slovnímu popisu zdroje. V tomto případě je pak sekce věnovaná atributům oddělena od sekce se slovním popisem pomocí znaku |
. Za názvem atributu je třeba vždy přidat dvojtečku. Dvojice atribut: hodnota jsou odděleny středníkem. Příkladem popisu může být: language: Czech; frequency: monthly| Description of the resource A. Popis zdroje A
.
Je třeba ještě doplnit, že ačkoli je každý zdroj v CKAN datasetu popsán celou řadou atributů a při zakládání nebo při úpravách CKAN datasetu je můžete nastavit, v současné době se při zobrazení CKAN datasetu u každého jeho zdroje zobrazí pouze název zdroje a formát zdroje. Pokud zdroj nemá vyplněn název, zobrazí se jeho popis. Hodnoty ostatních atributů každého zdroje můžete získat pomocí CKAN API.
Software CKAN neumožňuje přímo vkládat obrázky jako součást popisu datových množin v rámci CKAN datasetu a nelze je vložit ani jako jeho jiný atribut. V rámci atributu CKAN datasetu určeného pro popis datových množin (atribut Description) je možno text tohoto popisu formátovat pomocí formátování Markdown. Toto formátování umožňuje vložení obrázku pomocí odkazu a lze ho tedy využít například pro přidání obrázku s entitně-relačním modelem nebo modelem tříd objektů jazyka UML, který vyjadřuje strukturu datové množiny či datových množin uložených či odkazovaných jako zdroje v rámci CKAN datasetu.
Pro přidání obrázku odkazem v Markdown formátování slouží formulace:  V kulatých závorkách místo /path/to/img.jpg uveďte cestu k Vámi požadovanému obrázku, např. http://www.mujweb.domena/mujobrazek.jpg.
Pokud chcete, aby Váš obrázek byl opatřen názvem, pak použijte formulaci:  Do uvozovek místo Optional title
napište název obrázku.
Přidání obrázku tedy jednoduše provedete tak, že v popisu datové množiny přidáte samostatný řádek, na který napíšete výše uvedenou formulaci s cestou k vašemu obrázku a případně také s jeho názvem. Protože je obrázek přidáván odkazem a není přímo vložen do software CKAN, je zřejmé, že abyste mohli obrázky tímto způsobem přidat do popisu datové množiny, musíte mít vlastní úložiště, kam obrázky uložíte a ze kterého budou pomocí URI dostupné v rámci internetu.
Existují služby, která Vám umožní ukládání a zpřístupnění souborů s obrázky v rámci internetu3. Některé z těchto služeb lze využívat i zdarma. Žádná z těchto služeb není z hlediska této metodiky preferovaná a neuvádíme tak ani žádná doporučení ohledně volny takovéto služby.
Modely struktury datových množin je vhodné vkládat na konec samotného popisu datových množin. Modely by také neměly být vloženy do popisu bez komentáře. Modely struktury datových množin vložte do samostatného oddílu, který pojmenujte Dataset structure (Struktura datasetu)
. Tento oddíl oddělte samostatným řádkem od zbytku popisu datové množiny. Ke každému obrázku přidejte popis, alespoň na té úrovni, že uvedete, k čemu se model vztahuje. Vždy by z popisu mělo být zřejmé, ke kterým datovým zdrojům v rámci CKAN datasetu se modely vztahují. Model struktury datové množiny nemusí být platný pro všechny zdroje v CKAN datasetu. Důvodem může být například situace, kdy CKAN dataset sdružuje data z určité oblasti za delší časový úsek. V průběhu času se mohla změnit struktura datové množiny. Proto v popisu vždy uvádějte, ke kterým datovým zdrojům (datovým množinám) se model vztahuje. Text popisu by měl být opět vytvořen v češtině i angličtině.
Abychom se vyhnuli právnímu problému tzv. deep linking je třeba, aby v rámci popisu datové množiny nebo jako výstižně pojmenované pole Extras (např. author_homepage), byl uveden odkaz na hlavní stránku webového sídla subjektu, na jehož stránkách jsou zpřístupněny datové soubory či služby, které jsou uvedeny jako zdroje v rámci CKAN datasetu.
Pokud v rámci webového sídla jsou uvedeny podmínky užití webových stránek, je vhodné uvést odkaz také na tyto podmínky užití.
V rámci atributů CKAN datasetu je k dispozici atribut Domovská stránka (Home page). Ten slouží ale pro uvedení odkazu na stránku, která obsahuje doplňující informace nebo popis datové množiny. Není tak určen pro uvedení odkazu na hlavní stránku organizace, která je původcem datového množiny.
Výše popsané lze demonstrovat na příkladu CKAN datasetu s titulkem Agriculture status report - Zpráva o stavu zemědělství
. Datové množiny v tomto CKAN datasetu pocházejí z Ministerstva zemědělství České republiky. Odkaz na hlavní stránku Ministerstva zemědělství (http://eagri.cz/public/web/mze/) je uveden v rámci popisu CKAN datasetu. Atribut home page CKAN datasetu obsahuje odkaz přímo na stránku, kde jsou ke stažení vystaveny soubory uvedené jako zdroje tohoto CKAN datasetu.
Možná se ptáte, proč nepoužít pro odkaz na hlavní stránku subjektu atribut home page CKAN datasetu. Podle komentáře k tomuto atributu, který můžete vidět pokud vytváříte nový CKAN dataset nebo upravujete některý ze stávajících, je tento atribut skutečně zamýšlen k použití jako odkaz na stránku, kde se nachází datová množina nebo informace o ní. Abychom byli v souladu s tímto záměrem autorů software CKAN, nepoužíváme atribut home page pro dokaz na hlavní stránku subjektu, který je původcem datové množiny.
Jelikož je ale třeba odkaz na hlavní stránku subjektu uvést, abychom se vyhnuli výše zmíněnému deep linkingu, rozhodli jsme se uvádět odkaz na hlavní stránku buď jako doplňkové pole (extras) nebo přímo v popisu CKAN datasetu.
Pokud zdroje v rámci CKAN datasetů jsou licencovány pod některou z licencí, jež je uvedena na seznamu licencí v CKAN, tak je třeba tuto licenci uvést jako licenci v rámci atributů CKAN datasetu.
Pokud licence není uvedena nebo existují pochybnosti o tom, jaké právní podmínky se váží k daným zdrojům, pak je vhodné zvolit jako licenci hodnotu Other:License not specified.
Pokud webové sídlo organizace, která je původcem datových množin, obsahuje vymezení právních podmínek jejich užití, uveďte odkaz na webovou stránku s popisem právních podmínek v popisu CKAN datasetu.
Aby byl umožněn přístup a úpravy všech CKAN datasetů všem spolupracovníkům a nejen jeho autorovi, je třeba přidat v záložce autorizace do role editor (nebo admin) autorizační skupinu uep-survey.
Pokud chcete, aby CKAN dataset nemohl být upravován nepřihlášenými uživateli, je třeba v záložce autorizace nastavit pro roli visitor práva pouze pro čtení (volba reader).
Ve výchozím nastavení může CKAN dataset upravovat každý přihlášený uživatel. Pokud chcete zamezit situaci, kdy každý přihlášený uživatel může CKAN dataset upravovat, je třeba práva přístupu pro roli logged_in nastavit na hodnotu reader.
Oprávnění jsou 3, resp. 4 typů:
Oprávnění lze nastavit pro jednotlivé role, jimiž jsou:
V této části jsou popsány návody a doporučení pro práci se software CKAN prostřednictvím aplikačního rozhraní (API). Text je platný pro CKAN API verze 1.
Kromě webového rozhraní lze s CKAN pracovat pomocí API. Bližší informace o CKAN API jsou k dispozici na webové stránce http://docs.ckan.org/en/latest/api.html.
Pro využívání CKAN API je zapotřebí API key. Ten je přidělen každému registrovanému uživateli. API key si můžete zobrazit pomocí webového rozhraní CKAN pod odkazem Můj účet (My Account).
CKAN API je postaveno na architektonickém stylu REST (REpresentational State Transfer). Každá metoda/funkce je tedy dostupná pomocí URI.
Hlavní URI CKAN API pro cz.ckan.net je http://cz.ckan.net/api/rest/package, respektive http://cz.ckan.net/api/rest/package/identifikator_datasetu (kde identifikator_datasetu na konci řetězce URI je třeba nahradit názvem (atribut Name) CKAN datasetu, se kterým chcete pracovat).
Pro získávání dat pomocí CKAN API (např. seznamu všech CKAN datasetů) je využit HTTP GET požadavek. Po odeslání požadavku na CKAN API získáte soubor ve formátu JSON, který obsahuje data vrácená funkcí, jejíž URI bylo použito. Pro vkládání dat do CKAN prostřednictvím API je použit HTTP POST požadavek.
Pro jeho vytvoření HTTP požadavků GET a POST lze využít např. nástrojů curl nebo wget. Obecně je možno využít jakéhokoli programovacího jazyku, který má k dispozici knihovnu pro práci s protokolem HTTP. Při vkládání dat pomocí CKAN API je třeba do HTTP POST požadavku přidat Authorization hlavičku s hodnotou vašeho API key. Bližší informace najdete v dokumentaci CKAN API.
API software CKAN umožňuje nastavit vazby mezi CKAN datasety. Všechny vazby, které má CKAN dataset k jiným CKAN datasetům jsou ukládány do atributu Vazby (Relationships). V současné době nelze nastavit vazby mezi CKAN datasety v rámci webového rozhraní software CKAN.
Základní informace o vazbách mezi CKAN datasety včetně příkladu, jak nastavit tyto vazby, jsou uvedeny v tomto článku na wiki software CKAN. V rámci příkladu v odkazovaném článku je pro nastavení vazeb využito nástroje curl, pomocí kterého je vytvořen příslušný požadavek na CKAN API. V následujícím textu bude popsáno, jak nastavit vazby mezi CKAN datasety s využitím klienta CKAN API v programovacím jazyce Python.
V software CKAN lze mezi CKAN datasety vytvářet následující typy vazeb:
Následující obrázek ilustruje vztahy mezi CKAN datasety typu parent_of, child_of a sibling.

Pokud u některého CKAN datasetu nastavíte vazbu, pak dojde i k nastavení dalších souvisejících vazeb. Pokud tedy nastavíte vazbu mezi dvěma CKAN datasety typu child_of, pak automaticky dojde k i nastavení vazby parent_of a případně i k nastavení vazeb typu sibling.
Python klient pro CKAN API představuje knihovnu funkcí, která umožňuje přistupovat k CKAN API z programů vytvářených pomocí programovacího jazyka Python. Python klient pro CKAN API je možné získat zde: pypi.python.org/pypi/ckanclient. Pro použití tohoto klienta je třeba mít nainstalován interpret jazyka Python verze 2, který je k dispozici pro různé platformy z webové stránky www.python.org. Python klient pro CKAN API zatím není kompatibilní s verzí 3 jazyka Python.
Pro nastavení vazby mezi CKAN datasety postačí velmi jednoduchý skript napsaný v programovacím jazyce Python. V příkladu budeme vytvářet vazbu typu child_of mezi podřazeným CKAN datasetem s názvem podrazeny a nadřazeným CKAN datasetem s názvem nadrazeny. Skript pro nastavení uvedené vazby mezi CKAN datasety bude vypadat následovně (text za znakem # je komentář, je možné ho vynechat).
# Připojení knihovny python klienta pro CKAN API
import ckanclient
# Inicializace CKAN klienta
# Parametr base_location označuje adresu instance software CKAN,
# se kterou pracuje
# Do parametru api_key uveďte Váš klíč pro CKAN API
ckan = ckanclient.CkanClient(base_location = 'http://cz.ckan.net/api', api_key = 'vas_api_key')
# Nastavení vazby mezi balíčky
ckan.package_relationship_entity_post('podrazeny', 'child_of', 'nadrazeny', 'Nadrazeny je nadřazeným CKAN datasetem')
Pro použití klienta CKAN API pro jazyk Python je třeba ve skriptu nejprve importovat knihovnu samotného klienta. To se provede pomocí příkazu import ckanclient. Dále je třeba inicializovat instanci klienta. Při inicializaci je třeba určit URL adresu software CKAN, se kterým se bude v rámci skriptu pracovat (v našem případě pracujeme s cz.ckan.net) a dále je třeba při inicializaci zadat Váš klíč k API (API key). Inicializace se provede pomocí příkazu ckan = ckanclient.CkanClient(base_location = 'http://cz.ckan.net/api', api_key = 'vas_api_key'). Řetězec vas_api_key
je třeba nahradit textovým řetězcem, který představuje Váš klíč k API.
Pro vytvoření vazby mezi CKAN datasety slouží v Python klientu pro CKAN API příkaz package_relationship_entity_post(subject_package_name, relationship_type, object_package_name, comment). Parametr příkazu subject_package_name představuje CKAN dataset, kterému je nastavována vazba na jiný CKAN dataset. V našem případě nastavujeme vazbu CKAN datasetu s označením podrazeny. Parametr relationship_type představuje typ vazby, který je mezi CKAN datasety nastavován. V našem případě je to typ vazby child_of. Dalším atributem je object_package_name, což je název CKAN datasetu, ke kterému je nastavována vazba. V našem případě je nastavována vazba směrem k CKAN datasetu s názvem nadrazeny. Posledním parametrem je komentář k vazbě, do kterého může být uveden libovolný textový řetězec. Komentář by měl být krátký a výstižný.
Výše uvedený skript můžete vykonat tak, že skript uložíte do textového souboru v kódování UTF-8. Uvažujme tedy, že soubor se skriptem je pojmenován relationships.py. Pro vykonání skriptu je třeba přejít do složky, kde je soubor uložen, a z příkazové řádky zadat příkaz python relationships.py.
Interpret jazyka Python umožňuje interaktivní zadávání příkazů. Druhou možností, jak provést výše uvedený skript, je zadat z příkazové řádky příkaz python (bez parametrů), čímž vstoupíte do interaktivního módu pro zadávání příkazů jazyka Python. V tomto módu pak můžete zadávat jednotlivé příkazy.
Výše uvedený skript obsahoval pouze jeden příkaz pro nastavení vazby mezi CKAN datasety. Je ale samozřejmě možné vytvořit skript, který bude obsahovat více takovýchto příkazů dle potřeby. Je tedy možné napsat takový skript, který nastaví vazby mezi celou skupinou CKAN datasetů.
V této části je popsáno využití CKAN API pro vytváření CKAN datasetů na základě šablony. Šablonou v tomto případě je textový soubor ve formátu JSON.
CKAN dataset je možné popsat pomocí textového souboru ve formátu JSON. Tento soubor má následující strukturu.
{
"name": "",
"title": "",
"version": "",
"url": "",
"author": "",
"author_email": "",
"maintainer": "",
"maintainer_email": "",
"notes": "",
"license_id": "",
"tags": ["", "", "", "", ""],
"relationships": [],
"state": "active",
"extras": {
"language": "",
"frequency": "",
"size": ""
},
"resources": [
{
"name": "",
"url": "",
"description": "",
"mimetype": "",
"mimetype_inner": "",
"last_modified": "",
"size": "",
"format": "",
"resource_type": ""
},
{
"name": "",
"url": "",
"description": "",
"mimetype": "",
"mimetype_inner": "",
"last_modified": "",
"size": "",
"format": "",
"resource_type": ""
},
{
"name": "",
"url": "",
"description": "",
"mimetype": "",
"mimetype_inner": "",
"last_modified": "",
"size": "",
"format": "",
"resource_type": ""
}]
}
Hodnota každého atributu je zapsána do uvozovek (text
). Pokud se jedná o složenou hodnotu pak je uvedena do složených, respektive hranatých závorek. Pokud chcete, aby hodnota určitého atributu zůstala nevyplněna, jako jeho hodnotu uveďte klíčové slovo null. Pokud atributu nenastavíte žádnou hodnotu, je možné ho místo uvádění hodnoty null zcela vynechat. Vynechání nepoužitého atributu se ukázalo jako vhodné, protože to eliminuje prostor, ve kterém je možné udělat překlep nebo chybu. Jako hodnotu atributu licence je vhodné zadat identifikátor některé z licence, která je na seznamu, který CKAN standardně nabízí. Seznam licencí a jejich identifikátorů je uveden v samostatné kapitole.
V oblasti extras
mohou být zadány libovolné dvojice atribut: hodnota. Zdrojů lze do souboru uvést libovolný počet.
Šablonu vytvoříte tak, že vytvoříte textový soubor v kódování UTF-8 (CKAN API vyžaduje kódování UTF-8), který bude mít strukturu, která je uvedena výše. V souboru vyplňte hodnoty atributů, u kterých chcete, aby byly součástí šablony. Po uložení souboru je šablona vytvořena.
Pokud chcete jako součást šablony uvést i popis datové množiny nebo část tohoto popisu, která bude všem CKAN datasetům založeným na šabloně společná, je třeba tento popis vložit jako hodnotu atributu notes. Při užití kódování UTF-8 je možné používat českou diakritiku. Je třeba si ale uvědomit, že se hodnota atributu zpracovává jako textový řetězec. Proto je třeba, aby zalomení řádku v textu popis bylo reprezentováno sekvencí \n, respektive \r\n.
Pro vytvoření CKAN datasetu založeného na šabloně je třeba otevřít soubor šablony, uložit ho jako jiný soubor, doplnit do něj chybějící údaje o CKAN datasetu a soubor uložit. Pro vložení CKAN datasetu do software CKAN je třeba odeslat obsah nově vytvořeného souboru s popisem tohoto CKAN datasetu pomocí HTTP metody POST na CKAN API (pro cz.ckan.net je to URL http://cz.ckan.net/api/rest/package). Pokud ve formátování souboru není chyba a je určen jednoznačný identifikátor jako hodnota atributu name, pak by mělo dojít ke vložení CKAN datasetu do CKAN. Při úspěšném vložení CKAN datasetu je vrácen JSON soubor s popisem nově vloženého CKAN datasetu (obsahuje i údaje, které jsou nastaveny až po vložení do CKAN např. id).
Seznam licencí CKAN a jejich identifikátorů platný ke dni 24.10. 2011.
| Identifikátor | Název licence |
|---|---|
| notspecified | Other::License Not Specified |
| odc-pddl | OKD Compliant::Open Data Commons Public Domain Dedication and Licence (PDDL) |
| odc-odbl | OKD Compliant::Open Data Commons Open Database License (ODbL) |
| cc-zero | OKD Compliant::Creative Commons CCZero |
| cc-by | OKD Compliant::Creative Commons Attribution |
| cc-by-sa | OKD Compliant::Creative Commons Share-Alike |
| gfdl | OKD Compliant::GNU Free Documentation License |
| ukclickusepsi | OKD Compliant::UK Click Use PSI |
| other-open | OKD Compliant::Other (Open) |
| other-pd | OKD Compliant::Other (Public Domain) |
| other-at | OKD Compliant::Other (Attribution) |
| ukcrown-withrights | OKD Compliant::UK Crown Copyright with data.gov.uk rights |
| hesa-withrights | OKD Compliant::Higher Education Statistics Agency Copyright with data.gov.uk rights |
| localauth-withrights | OKD Compliant::Local Authority Copyright with data.gov.uk rights |
| uk-ogl | OKD Compliant::UK Open Government Licence (OGL) |
| cc-nc | Non-OKD Compliant::Creative Commons Non-Commercial (Any) |
| ukcrown | Non-OKD Compliant::UK Crown Copyright |
| other-nc | Non-OKD Compliant::Other (Non-Commercial) |
| other-closed | Non-OKD Compliant::Other (Not Open) |
| bsd-license | OSI Approved::New and Simplified BSD licenses |
| gpl-2.0 | OSI Approved::GNU General Public License (GPL) |
| gpl-3.0 | OSI Approved::GNU General Public License version 3.0 (GPLv3) |
| lgpl-2.1 | OSI Approved::GNU Library or "Lesser" General Public License (LGPL) |
| mit-license | OSI Approved::MIT license |
| afl-3.0 | OSI Approved::Academic Free License 3.0 (AFL 3.0) |
| apl1.0 | OSI Approved::Adaptive Public License |
| apache | OSI Approved::Apache Software License |
| apache2.0 | OSI Approved::Apache License, 2.0 |
| apsl-2.0 | OSI Approved::Apple Public Source License |
| artistic-license-2.0 | OSI Approved::Artistic license 2.0 |
| attribution | OSI Approved::Attribution Assurance Licenses |
| ca-tosl1.1 | OSI Approved::Computer Associates Trusted Open Source License 1.1 |
| cddl1 | OSI Approved::Common Development and Distribution License |
| cpal_1.0 | OSI Approved::Common Public Attribution License 1.0 (CPAL) |
| cuaoffice | OSI Approved::CUA Office Public License Version 1.0 |
| eudatagrid | OSI Approved::EU DataGrid Software License |
| eclipse-1.0 | OSI Approved::Eclipse Public License |
| ecl2 | OSI Approved::Educational Community License, Version 2.0 |
| eiffel | OSI Approved::Eiffel Forum License |
| ver2_eiffel | OSI Approved::Eiffel Forum License V2.0 |
| entessa | OSI Approved::Entessa Public License |
| fair | OSI Approved::Fair License |
| frameworx | OSI Approved::Frameworx License |
| ibmpl | OSI Approved::IBM Public License |
| intel-osl | OSI Approved::Intel Open Source License |
| jabber-osl | OSI Approved::Jabber Open Source License |
| lucent-plan9 | OSI Approved::Lucent Public License (Plan9) |
| lucent1.02 | OSI Approved::Lucent Public License Version 1.02 |
| mitre | OSI Approved::MITRE Collaborative Virtual Workspace License (CVW License) |
| motosoto | OSI Approved::Motosoto License |
| mozilla | OSI Approved::Mozilla Public License 1.0 (MPL) |
| mozilla1.1 | OSI Approved::Mozilla Public License 1.1 (MPL) |
| nasa1.3 | OSI Approved::NASA Open Source Agreement 1.3 |
| naumen | OSI Approved::Naumen Public License |
| nethack | OSI Approved::Nethack General Public License |
| nokia | OSI Approved::Nokia Open Source License |
| oclc2 | OSI Approved::OCLC Research Public License 2.0 |
| opengroup | OSI Approved::Open Group Test Suite License |
| osl-3.0 | OSI Approved::Open Software License 3.0 (OSL 3.0) |
| php | OSI Approved::PHP License |
| pythonpl | OSI Approved::Python license |
| PythonSoftFoundation | OSI Approved::Python Software Foundation License |
| qtpl | OSI Approved::Qt Public License (QPL) |
| real | OSI Approved::RealNetworks Public Source License V1.0 |
| rpl1.5 | OSI Approved::Reciprocal Public License 1.5 (RPL1.5) |
| ricohpl | OSI Approved::Ricoh Source Code Public License |
| sleepycat | OSI Approved::Sleepycat License |
| sun-issl | OSI Approved::Sun Industry Standards Source License (SISSL) |
| sunpublic | OSI Approved::Sun Public License |
| sybase | OSI Approved::Sybase Open Watcom Public License 1.0 |
| UoI-NCSA | OSI Approved::University of Illinois/NCSA Open Source License |
| vidapl | OSI Approved::Vovida Software License v. 1.0 |
| W3C | OSI Approved::W3C License |
| wxwindows | OSI Approved::wxWindows Library License |
| xnet | OSI Approved::X.Net License |
| zpl | OSI Approved::Zope Public License |
| zlib-license | OSI Approved::zlib/libpng license |