Zpracovávání a příprava otevřených dat se stala důležitou součástí práce ve webstudiu. Počet zpracovaných zdravotnických datasetů stoupá, a z toho důvodu jsme se rozhodli vytvořit interný nástroj, který by nám ulehčil popis dat. Jak takový nástroj vznikl, jakou technologii jsme použili a jak můžete nástroj využívat, se dočtete na následujících řádcích.
To, že webstudio pomáhá zpracovávat a zveřejňovat zdravotnická data, není žádná novinka. Jak to děláme, se můžete dočíst v rozhovoru s Petrem Panoškou, který je hlavním guru otevřených dat ve webstudiu.
Proč potřebujeme aplikaci?
Prostor pro zlepšení se dá najít pořád a tak jsme se rozhodli v rámci zefektivnění popisu datových sad vytvořit interní nástroj, který by usnadnil naši práci.
Abychom pochopili, v čem spočívá myšlenka nástroje, pojďme si ve zkratce popsat proces přípravy otevřených dat. Ukážeme si také, v které fázi tohoto procesu využijeme náš Open Data Transformer.
Proces zjednodušeně můžeme rozdělit do několika kroků:
- Stanovíme si zda, můžeme data publikovat.
- Zamyslíme se, jak budu data vypadat. Data musíme dostatečne popsat, přidělit atributy, datové typy a nadefinovat schéma datasetu.
- Dataset validujeme a nakonec dataset zveřejníme v katalogu otevřených dat.
Druhý krok je ukázkovým příkladem pro zefektivnění procesu. Myšlenkou tedy bylo vytvořit nástroj, který by nám pomohl jednoduše popsat datasety. Úlohou uživatele by bylo zadat popisky (metadata) k datasetům a nástroj by si už se vším poradil sám. Výstupem by byl zpracovaný dataset a nadefinované schéma datasetu.
Problém s kódováním Častým problémem, na který může uživatel narazit při práci s daty, je kódování datasetu. Jako příklad můžeme uvést tabulku s daty, která byla vytvořená v Excelu.
Pro češtinu využívá MS Windows a programy v balíčku MS Office, do kterého patří taky Excel, kódování znakové sady ve Windows-1250 (Win-1250). Zjednodušeně, když tabulku otevíráme nebo vytváříme v Excelu, použije se kódování Win-1250. Pro zlepšení interoperability je doporučeno používat kódování UTF-8. Když si otevřeme CSV soubor s kódováním UTF-8 v Excelu, pravděpodobně dostaneme směs textu s různými symboly namísto písmen jako ř, ž, á… A naopak, když vytvoříme tabulku v Excelu, kterou uložíme jako CSV a následně ji otevřeme v jiném programu než je Excel, pravděpodobně dostaneme opět směs textu a různých zástupných znaků. Chtěli jsme, aby aplikace myslela i na tento případ a umožnila přepsat kódování na UTF-8.
Chybný oddělovač údajů Dalším častým problémem, se kterým se může uživatel při práci s datasety setkat, je použitý oddělovač údajů v CSV souboru. Standardně se pro CSV používá čárka, jak plyne už z názvu formátu, t.j. Comma Separated Values. Problém ale může nastat, když pro export CSV souboru použijeme aplikaci Excel. Ten, v českém prostředí, namísto čárky používá na oddělování údajů středník (;). Jedná se o chybnou implementaci CSV standardu. Také tento problém jsme chtěli v aplikaci vyřešit.
Od myšlenky k realizaci
Myšlenka Na začátku jsme si definovali, co má naše aplikace umět:
- Do aplikace nahrajeme CSV dataset bez ohledu na velikost.
- V případě, když je v datasetu použité kódování Windows-1250, můžeme ho překódovat na standardní kódování UTF-8.
- Když je v datasetu použitý oddělovač středník (;), můžeme ho změnit na čárku.
- Aplikace vytvoří formulář pro kompletní popis datasetu a předvyplní názvy atributů ze zdrojového CSV.
- Aplikace vyexportuje upravený dataset a datové schéma podle vstupních parametrů.
Realizace Na začátku jsme vymysleli jméno aplikace Open Data Transformer. Rozhodli jsme se aplikaci napsat v Reactu a celý kód zveřejnit na Github, to znamená, že budeme rádi když kdokoli náš kód použije, vylepší a bude sdílet. Výsledkem je aplikace s jednoduchým rozhraním, do kterého nahrajeme dataset. V případě potřeby změníme kódování a oddělovač. Aplikace si dataset načte, připraví a předvyplní formulář, a můžeme dopsat potřebné popisky. Nakonec si upravený dataset a datové schéma stáhneme k sobě do počítače. Dataset doporučujeme pokaždé zkontrolovat, jestli nedošlo k chybě. Pro tento účel jsme umístili do aplikace odkaz na externí službu pomocí, které lze popsané CSV snadno zvalidovat.
Závěrem
Tato aplikace je jen malým střípkem ve velké mozaice otevřených dat, která svým významem zabírá jen nepatrné místo. Pomáhá ale spoluvytvářet ekosystém, který je důležitý pro podporu a budování komunity a idey otevřených dat.