Blog

Blog

V nadväznosti na ostatný blog post zo série "Porovnania s inými" (za jún 2015) dnes ponúkam po dvoch rokoch aktualizáciu porovnania Slovenska s niekoľkými ďalšími krajinami pokiaľ ide o počet zverejnených datasetov. Počty datasetov nie je úplne presná či všeobjímajúca metrika, ale ako čiastkový indikátor poslúži (nie je dataset ako dataset, niektoré sa dajú použiť viac a na dôležitejšie veci, iné menej, ale to sa tiež ťažko meria - ale ak datasetov pribúda, zvyčajne je to dobre). Zaujímavý je teda najmä vývoj v čase a tak v tomto porovnaní pribudol graf.

Porovnám konkrétne Slovensko (SR), Rakúsko (AT), Bulharsko (BG), Maďarsko (HU) a Rumunsko (RO) čo do počtu zverejnených datasetov a ich licencií (k 15.6.2017):

 SRATBGHURO
počet datasetov11362399219352987
počet zdrojov (resources)53209533577210820218
počet datasetov s otvorenou licenciou1017 (89.5%)1957 (81.6%)1882 (85.8%)7 (13.5%)850 (86.1%)
počet datasetov s nie otvorenou licenciou11944231145137

"Živá" verzia grafu (s priebežne aktualizovanými údajmi) je k dispozícii na adrese https://hanecak.github.io/viz-data_catalog_stats-dataset_count-sk_comparison/ .

Pozorovania
  1. (nové) Bulharsko spustilo svoj katalóg s prvým datasetom v máji 2015 (viď Bulgarian government publishes first open datasets). Začiatky boli pomalšie, o rok neskôr však zvýšili tempo pridávania datasetov a udržujú ho na vyššej úrovni než SR.
  2. (nové) Maďarsko naďalej nemá oficiálny dátový portál, a tak monitorujem aspoň ten, ktorý spustili dobrovoľníci a neziskové organizácie. Keďže ho prevádzkuje komunita, obsahuje informácie nie len o vládnych, ale aj komunitných zdrojoch údajov.
  3. Rumunsko a SR udržiavajú zhruba podobnú úroveň: v oboch portáloch pribúdajú datasety priebežne, zhruba rovnakým tempom, v SR nastal väčší skok smerom hore zhruba v novembri 2015, v Rumunsku v septembri 2016.
  4. V SR "hladina vody stúpa" naďalej, veľký podiel má na tom má stále aktivita Štatistického úradu, ktorý má aktuálne na konte 606 datasetov (viď https://data.gov.sk/dataset?organization=f4787c6f-9fa3-406c-b8d5-d374f1e1f2d3).
  5. V Rakúsku taktiež naďalej stúpa počet datasetov a drží sa na prvej priečke z porovnávaných (aj napriek nejakému upratovaniu vo februári, kedy ubudlo zhruba 500 datasetov).
  6. Počty datasetov s otvorenou licenciou sa vo väčšine prípadov držia vcelku vysoko (medzi 80 a 90%), čo je dôležité kvôli ich reálnemu použitiu ("Whoever wants to use existing data needs to know whether they have the right to do so", viď The state of open licensing in 2017).
  7. Oproti ostatnému porovnaniu vypadli údaje za ČR, Taliansko a UK, ktorých zber mi prestal fungovať (či už kvôli zmene technológie portálu alebo kvôli chybám v SSL certifikátoch).
    1. V ČR zhruba v čase písania ostatného porovnania (jún 2015) spustili novú verziu katalógu otvorených údajov z ktorej zatiaľ údaje o počtoch cez API zbierať neviem. Katalóg eviduje rádovo 130 tisíc datasetov, drvivú väčšinu z nich publikuje Český úřad zeměměřický a katastrální.
Možné vylepšenia tohto porovnania
  1. Bolo by zaujímavé porovnať aj zastúpenie použitých formátov a API. Je tam však veľká variabilita a navyše aj niektoré CSV je lepšie ako iné CSV a pod. Toť téma na ďalšie skúmanie.
  2. Bolo by zaujímavé vyčísľovať aj počty aplikácií postavených nad dátami. Takéto údaje však zatiaľ ucelene vedené nie sú.
Zdroje a metodika

Zdrojmi údajov sú API jednotlivých data katalógov:

Počty položiek sú získané jednoduchými "list" a "search" dotazmi, bez filtrovania či vyhodnocovania.

Čo je a čo nie je "otvorená licencia" je na rozhodnutí kurátorov daných katalógov. Dôležité totiž je, či a ako vyplnili položku "isopen" k jednotlivým datasetom. Pre potreby tohto porovnania je "isopen=true" brané ako "otvorená licencia" a zbytok ako "nie otvorená licencia".

Aktuálne údaje vo forme CSV si môžete stiahnuť na adrese https://github.com/hanecak/data_data-catalog-stats/ . Kód harvestera údajov je na adrese https://github.com/hanecak/data-catalog-stats a kód vizualizácie na https://github.com/hanecak/viz-data_catalog_stats-dataset_count-sk_comparison . Návrhy či pull-requesty s vylepšeniami sú vítané.

Peter Hanečák, 15.6.2017

15.11.2016 sme vypustili novú verziu Open Data Node (ODN) 1.6.0 . Tzv. Release Notes sú dostupné na adrese:

Release obsahuje drobné nové funkcie (tzv. DPU pre ETL časť: e-t-excelToCSV na extrakciu údajov z XLS súborov a q-sparqlAsk na validáciu Linked Data) a niekoľko bugfixov (v takmer všetkých častiach ODN, prebraté z upstream projektov).

Naposledy som o Open Data Node (ODN) v tejto Wiki písal 1.3.2016 o verzii 1.2.4 . Odvtedy sme vypustili aj ďalšie nové verzie:

Použitie ODN a ďalších výstupov projektu COMSODE vrámci data.gov.sk vyzerá pomohlo SR v hodnotení EUDP, takže dúfam, že ODN si čoskoro nájde uplatnenie aj v ďalších krajinách.

Peter Hanečák, 13.10.2016

Aby sme mali pokope zoznam datasetov, ktorých zverejnenie považujeme za dôležité, zriadil som tzv. "wish list":

https://github.com/OpenDataSk/SK-Dataset-WishList/issues

Toť aby bol operatívne k nahliadnutiu zoznam a k jednotlivým položkám aj nejaké zdôvodnenie. Zíde sa v prípade stretávania sa s úradníkmi či politikmi alebo na inšpiráciu. A tiež aby sme nezabudli, že už sme niekoho niekedy niečo pýtali.

Na začiatok som tam popridával napr. požiadavky zozbierané vrámci verejnej konzultácie z roku 2015, viď https://github.com/otvorenavlada/akcnyplan2015/tree/master/uloha-03 .

Samozrejme to, že tam niečo nie je, neznamená, že to má povedzme výnimku z PSI smernice či infozákona a že to zverejniť netreba. (smile)

Peter Hanečák, 13.10.2016

1.3.2016 sme vypustili novú verziu Open Data Node (ODN) 1.2.4 . Tzv. Release Notes sú dostupné na adrese:

Popri tom sme zverejnili aj ukážkovú aplikáciu na harvestovanie datasetov cez API, viď:

Keďže báza pre API je v ODN aj data.gov.sk rovnaká, t.j. CKAN Data Store, tak možno ukážkovú aplikáciu kombinovať s tým, čo je popísané v týchto blogoch:

V januári 2016 začalo MV SR v spolupráci s NASES zverejňovať údaje z Registra adries (RA) v podobe otvorených údajov prostredníctvom portálu data.gov.sk.

Keďže RA obsahuje o čosi viac než len zoznam adresných bodov, je na data.gov.sk zverejnený ako sada viacerých datasetov, viď https://data.gov.sk/dataset?tags=register+adries .

Nuž a je tu napr. otázka "takže aký je postup pre niekoho kto chce zistiť všetky adresy v meste X?" (viď Platforma Slovensko.Digital).

Úvod

Dátový model RA obsahuje zoznamy viacerých typov objektov:

  • adresné body
  • vchody
  • ulice
  • obce
  • ...

Zjednodušene povedané, jeden typ objektov = jeden zoznam = jedna DB tabuľka.

Mapovanie na datasety je teda realizované systémom jedna DB tabuľka = jeden dataset. V datasetoch sú potom údaje dostupne pod tzv. resources, konkrétne vždy dvojmo:

  1. konsolidované dáta: všetky časové verzie všetkých objektov - aktuálne aj historické
  2. zmenové dáta: jeden riadok v tabuľke predstavuje jednu zmenu a dokumentuje históriu zmien

A API je implementované pomocou CKAN DataStore, takže budeme postupovať podľa SQL API na baze CKAN DataStore: JOIN.

Krok 1

Chceme teda vyhľadávať cez názov mesta, takže nás najprv zaujíma dataset "Register Adries - Register obcí" (dokumentácia).

Údaje budeme brať z resource "Obce - konsolidované dáta" ku ktorému je podstatnou informáciou jeho ID "15262453-4a0f-4cce-a9e4-7709e135e4b8" (viď už spomenutý článok o SQL API na báze CKAN DataStore).

Zaujímajú nás pre jednoduchosť tieto položky:

  • municipalityName (názov obce): podla neho budeme vyhľadávať
  • objectId (identifikátor objektu): s ohľadom na dátovú schému, pomocou tohto identifikátora budeme filtrovať ulice patriace k mestu s týmto ID

Takže povedzme, že ideme hľadať adresy pre mesto Poprad. Prvý dopyt teda bude vyzerať takto:

SELECT "objectId", "municipalityName"
FROM "15262453-4a0f-4cce-a9e4-7709e135e4b8"
WHERE "municipalityName" = 'Poprad'

URL: https://data.gov.sk/api/action/datastore_search_sql?sql=SELECT%20%22objectId%22,%20%22municipalityName%22%20from%20%2215262453-4a0f-4cce-a9e4-7709e135e4b8%22%20WHERE%20%22municipalityName%22%20=%20%27Poprad%27

Výsledok (krátený):

{"help": "...", "success": true, "result": {
"records":[{"municipalityName": "Poprad", "objectId": "2087"}],
"fields": [{"type": "int8", "id": "objectId"}, {"type": "text", "id": "municipalityName"}],
"sql": "SELECT \"objectId\", \"municipalityName\" from \"15262453-4a0f-4cce-a9e4-7709e135e4b8\" WHERE \"municipalityName\" = 'Poprad'"}}

Krok 2

Poďme sa teda pozrieť na ulice v danom meste. Zaujíma nás dataset "Register Adries - Register ulíc" (dokumentácia).

Údaje vezmeme z resource "Ulice - konsolidované dáta" ktorého ID je "47f0e853-3a67-487e-b45f-3f5d099105cf".

Zaujímajú nás tieto položky:

  • streetName (názov)

  • municipalityIdentifiers (buď identifikátor obce alebo identifikátory mestských častí, cez ktoré ulica prechádza): tot by malo byt ID obce ktora nas zaujima
  • objectId (identifikátor objektu): s ohľadom na dátovú schému, pomocou tohto identifikátora budeme filtrovať vchody patriace k ulici s týmto ID

Takže ďalší jednoduchý dopyt:

SELECT "objectId", "municipalityIdentifiers"
FROM "47f0e853-3a67-487e-b45f-3f5d099105cf"
WHERE "municipalityIdentifiers" = '2087'

URL: https://data.gov.sk/api/action/datastore_search_sql?sql=SELECT%20%22objectId%22,%20%22municipalityIdentifiers%22%20from%20%2247f0e853-3a67-487e-b45f-3f5d099105cf%22%20WHERE%20%22municipalityIdentifiers%22%20=%20%272087%27

Výsledok (krátený):

{"help": "...", "success": true, "result": {
"records": [{"objectId": "39436", "municipalityIdentifiers": "2087"}, {"objectId": "40013", "municipalityIdentifiers": "2087"}, ...],
"fields": [{"type": "int8", "id": "objectId"}, {"type": "text", "id": "municipalityIdentifiers"}],
"sql": "..."}}


Zhruba to, čo sme čakali.

Takže poďme začať robiť JOIN:

SELECT "municipalityName", "streetName"
FROM "15262453-4a0f-4cce-a9e4-7709e135e4b8", "47f0e853-3a67-487e-b45f-3f5d099105cf"
WHERE "municipalityName" = 'Poprad' AND "15262453-4a0f-4cce-a9e4-7709e135e4b8"."objectId"::text = "47f0e853-3a67-487e-b45f-3f5d099105cf"."municipalityIdentifiers"

URL: https://data.gov.sk/api/action/datastore_search_sql?sql=SELECT%20%22municipalityName%22,%20%22streetName%22%20from%20%2215262453-4a0f-4cce-a9e4-7709e135e4b8%22,%20%2247f0e853-3a67-487e-b45f-3f5d099105cf%22%20WHERE%20%22municipalityName%22%20=%20%27Poprad%27%20AND%20%2215262453-4a0f-4cce-a9e4-7709e135e4b8%22.%22objectId%22::text%20=%20%2247f0e853-3a67-487e-b45f-3f5d099105cf%22.%22municipalityIdentifiers%22

Výsledok (krátený):

{"help": "...", "success": true, "result": {
"records": [{"municipalityName": "Poprad", "streetName": "Feldzamova"}, {"municipalityName": "Poprad", "streetName": "Marxova"}, ...],
"fields": [{"type": "text", "id": "municipalityName"}, {"type": "text", "id": "streetName"}],
"sql": "..."}}

Krok 3

A teraz poďme na vchody:

kde nás zaujímajú tieto položky:

  • buildingNumber (orientačné číslo vchodu)
  • streetNameIdentifier (identifikátor (StreetName/objectId) ulice)

Poďme rovno na JOIN (a pridajme aj LIMIT, nech zbytočne nepreťažujeme)::

SELECT "municipalityName", "streetName", "buildingNumber"
FROM "15262453-4a0f-4cce-a9e4-7709e135e4b8", "47f0e853-3a67-487e-b45f-3f5d099105cf", "011f4ec3-7a73-4dff-a63e-81b64cc52947"
WHERE "municipalityName" = 'Poprad' AND "15262453-4a0f-4cce-a9e4-7709e135e4b8"."objectId"::text = "47f0e853-3a67-487e-b45f-3f5d099105cf"."municipalityIdentifiers" AND "47f0e853-3a67-487e-b45f-3f5d099105cf"."objectId" = "011f4ec3-7a73-4dff-a63e-81b64cc52947"."streetNameIdentifier"
LIMIT 10

URL: https://data.gov.sk/api/action/datastore_search_sql?sql=SELECT%20%22municipalityName%22,%20%22streetName%22,%20%22buildingNumber%22%20from%20%2215262453-4a0f-4cce-a9e4-7709e135e4b8%22,%20%2247f0e853-3a67-487e-b45f-3f5d099105cf%22,%20%22011f4ec3-7a73-4dff-a63e-81b64cc52947%22%20WHERE%20%22municipalityName%22%20=%20%27Poprad%27%20AND%20%2215262453-4a0f-4cce-a9e4-7709e135e4b8%22.%22objectId%22::text%20=%20%2247f0e853-3a67-487e-b45f-3f5d099105cf%22.%22municipalityIdentifiers%22%20AND%20%2247f0e853-3a67-487e-b45f-3f5d099105cf%22.%22objectId%22%20=%20%22011f4ec3-7a73-4dff-a63e-81b64cc52947%22.%22streetNameIdentifier%22%20LIMIT%2010

Výsledok (krátený):

{"help": "...", "success": true, "result": {
"records": [{"municipalityName": "Poprad", "buildingNumber": "8", "streetName": "1.m\u00e1ja"}, {"municipalityName": "Poprad", "buildingNumber": "27", "streetName": "1.m\u00e1ja"}, ...],
"fields": [{"type": "text", "id": "municipalityName"}, {"type": "text", "id": "streetName"}, {"type": "text", "id": "buildingNumber"}],
"sql": "..."}}

Výsledok je vlastne tabuľka:

municipalityName

streetNamebuildingNumber
Poprad1.mája8
Poprad1.mája27
.........

Záver

SQL dopyt z kroku 3 by nám teda mal dať časť odpovede na zadanie, zbytok ponechávam na čitateľa. Pre praktické využitie sa ešte treba viacej venovať zoznamu stľpcov ktoré si vypýtame, zoradeniu a tomu, či kompletný výsledok stiahneme na jeden šup alebo použijeme stránkovanie na báze OFFSET + LIMIT či ORDER BY + WHERE.

Príklady sú naschvál zjednodušené, aby sa to čo najľahšie čítalo. Asi najväčším opomenutím je to, že v príkladoch neberiem do úvahy platnosť údajov (t.j. aktuálny dátum a položky validFrom a validTo). Možno niekedy nabudúce.


Doplnky

Indexy

Doplnok k 2.3.3016: V OpenData.sk skupine na Facebooku bol dopyt ohľadom toho, na ktorých stĺpcoch sú nastavené indexy. Keďže cez CKAN DataStore API zatiaľ nefunguje "explain", tak vedomosť o indexoch môže napomôcť pri vylaďovaní výkonu dopytov.

datasetresourcestĺpce na ktorých je index
Register budov (súpisných čísiel)Budovy (súpisné čísla) - zmenové dátaobjectId, versionId, validFrom, validTo, modified_timestamp, municipalityIdentifier, districtIdentifier
Budovy (súpisné čísla) - konsolidované dátaobjectId, versionId, validFrom, validTo, municipalityIdentifier, districtIdentifier
Register bytovByty - zmenové dátaobjectId, versionId, validFrom, validTo, modified_timestamp, buildingNumberIdentifier
Byty - konsolidované dáta

objectId, versionId, validFrom, validTo, buildingNumberIdentifier

Register častí obcí

 

Časti obcí - zmenové dáta

objectId, versionId, validFrom, validTo, modified_timestamp, municipalityIdentifier

Časti obcí - konsolidované dáta

objectId, versionId, validFrom, validTo, municipalityIdentifier

Register krajovKraj - zmenové dátaobjectId, versionId, validFrom, validTo, modified_timestamp
Kraj - konsolidované dátaobjectId, versionId, validFrom, validTo
Register obcíObce - zmenové dátaobjectId, versionId, validFrom, validTo, modified_timestamp, countyIdentifier, cityIdentifier
Obce - konsolidované dátaobjectId, versionId, validFrom, validTo, countyIdentifier, cityIdentifier
Register okresovOkresy - zmenové dátaobjectId, versionId, validFrom, validTo, modified_timestamp, regionIdentifier
Okresy - konsolidované dátaobjectId, versionId, validFrom, validTo, regionIdentifier
Register ulícUlice - zmenové dátaobjectId, versionId, validFrom, validTo, modified_timestamp, districtIdentifiers, municipalityIdentifiers
Ulice - konsolidované dátaobjectId, versionId, validFrom, validTo, districtIdentifiers, municipalityIdentifiers
Register vchodov (orientačných čísiel)Vchody (orientačné čísla) - zmenové dátaobjectId, versionId, validFrom, validTo, modified_timestamp, propertyRegistrationNumberIdentifier, streetNameIdentifier

Vchody (orientačné čísla) - konsolidované dáta

objectId, versionId, validFrom, validTo, propertyRegistrationNumberIdentifier, streetNameIdentifier

Open Data API napr. na data.gov.sk alebo na odn.opendata.sk je implementované na báze CKAN DataStore a poskytuje pre bežný používateľov dva základné spôsoby na prístup k údajov a vyhľadávanie v nich (viď http://docs.ckan.org/en/latest/maintaining/datastore.html#the-datastore-api):

  1. full-text vyhľadávanie (viď datastore_search)
  2. vyhľadávanie pomocou SQL (viď datastore_search_sql)

Zameriam sa najmä na ten druhý, t.j. dopytovanie pomocou SQL.

Z pohľadu ľudí, ktorí poznajú SQL má toto API jednu nepeknú vlastnosť: namiesto "pekných názvov" sú ako mená tabuliek použité "škaredé hash-e" (tzv. resource ID). Je to tak preto, lebo CKAN DataStore ukladá všetky datasety do jednej databáze systémom "jeden dátový zdroj = jedna tabuľka". A keďže si datasety a zdroje môže nazývať kto chce ako chce, je unikátnosť názvov tabuliek riešená tými škaredými hash-mi.

Tento "kozmetický nedostatok" nám však v prípade SQL dopytovania otvára jednu významnú možnosť: v SQL dopytoch môžeme robiť JOIN! Takže v prípadoch CKAN katalógov, ktoré využívajú DataStore (napr. už spomenutý data.gov.sk alebo ODN), môžeme robiť zložitejšie dopytovanie cez viaceré datasety naraz. Stačí si len všimnúť, aký "resource ID" ten ktorý dátový zdroj (resource) má, viď napr. datasetu Sponzori politických strán (odkopírovaný z Datanest-u) - vidno ho v URL alebo stačí kliknúť na "Data API" a posunúť sa trochu nižšie:

Takže poďme rovno na veľmi "primitívny investigatívny SQL dopyt" v ktorom okrem už spomenutého datasetu sponzorov politických strán použijeme aj dataset Vestník verejného obstrávania (taktiež z Datanest-u):

SELECT "SUPPLIER_COMPANY_NAME", "SUPPLIER_ICO", "ICO_DARCU", "FIRMA_DARCU"
FROM "ea9b28eb-da22-4594-9fb7-4609e8507982", "c6639c7e-92ad-4b31-8f74-e46eff96825a"
WHERE "SUPPLIER_ICO" = "ICO_DARCU" AND "ICO_DARCU" != ''
LIMIT 2

Stĺpce SUPPLIER_COMPANY_NAME a SUPPLIER_ICO sú z datasetu o obstarávaní a stĺpce ICO_DARCU a FIRMA_DARCU z datasetu o obdarúvaní. Hľadáme teda také IČO, ktoré dodávajú aj obdarúvajú (a keďže dopyt je primitívny, je to len jednoduchý prienik a závery treba robiť až po dôkladnej investigatíve). Tie úvodzovky to tam tiež trochu špatia, ale tu vstupuje do hry PostgreSQL, ktorý názvy stĺpcov (ak nie sú v úvodzovkách) najprv prevádza na malé písmená. A ak teda máme v zdroji názvy stĺpcov s použitím aj veľkých písmen, SQL dopyt nefunguje správne dokým názvy stĺpcov nedáme do úvodzoviek.

Dopyt vieme "zavolať" či už napr. cez curl alebo priamo kliknutím na linku:

http://odn.opendata.sk/api/action/datastore_search_sql?sql=SELECT%20%22SUPPLIER_COMPANY_NAME%22,%20%22SUPPLIER_ICO%22,%20%22ICO_DARCU%22,%20%22FIRMA_DARCU%22%20from%20%22ea9b28eb-da22-4594-9fb7-4609e8507982%22,%20%22c6639c7e-92ad-4b31-8f74-e46eff96825a%22%20WHERE%20%22SUPPLIER_ICO%22%20=%20%22ICO_DARCU%22%20AND%20%22ICO_DARCU%22%20!=%20%27%27%20LIMIT%202

(náš dopyt sme len vložili za '...?sql=')

Takže, hor sa na dopytovanie otvorených údajov. (smile)

V skratke: Cez CKAN DataStore API sa dajú robiť aj SQL dopyty cez viac datasetov pomocou JOIN. Okrem bežného SQL treba v tomto prípade pamätať najmä na to, že:

  • používame SQL tak, ako ho implementuje PostgreSQL
  • používame "resource ID" ako mená tabuliek
  • ak má stĺpec v názve veľké písmeno, treba názov stĺpca dávať do úvodzoviek

CKAN DataSTore API je generické v tom zmysle, že bolo navrhnuté bez znalosti štruktúry dát, ktoré sa cezeň publikujú. Výhoda je tá, že netreba designovať a implementovať API pre každý dataset zvlášť. Nevýhoda je, že takéto generické API nebude nikdy také "dobré", "pekné" či "efektívne" ako API kvalitne navrhnuté a implementované špeciálne pre nejaký dataset (ako napr. API Registera ÚZ).

 

Súvisiace články:

Po vzore mesta Prešov spustili vo februári svoj katalóg otvorených údajov aj Levice:

http://egov.levice.sk/Default.aspx?NavigationState=1100:0:

Zverejnených je aktuálne (k 9.2.2016) 18 datasetov v XML formáte a s XSD schémou ku ktorým je aj popis atribútov (v PDF):

  • Zoznam objednávok
  • Zmluvy
  • Dodávateľské faktúry
  • Členovia orgánov samosprávy
  • Zoznam dotácií
  • Počty občanov v jednotlivých rokoch
  • Prírastky a úbytky občanov za jednotlivé roky
  • Počet občanov podľa ulíc
  • Zoznam obchodných prevádzok
  • Zoznam obchodných prevádzok s ukončenou činnostou
  • Evidencia psov
  • Počet prihlásených psov podľa ulíc
  • Online zoznam daňových dlžníkov
  • Register adries
  • Zoznam ulíc
  • Volebné okrsky a volebné miestnosti
  • Hrobové miesta
  • Verejné obstarávanie

Datasety sú licencované pod CC-BY (tipujem v4.0).

Zdroj: Mari, platforma.slovensko.digital

Mesto Prešov spustilo svoj Open Data katalóg:

http://egov.presov.sk/default.aspx?NavigationState=1100%3A0%3A

10 datasetov, vo formáte XML spolu s XSD schémou a XSLT šablónou, dokumentácia k veci v PDF. Datasetov je na prvý pohľad málo, ale sú opakom "hračkárskych":

  • Zoznam zverejnených zmlúv
  • Zoznam objednávok
  • Zoznam faktúr
  • Zoznam dotácií
  • Školy a školské zariadenia
  • Zoznam ulíc mesta Prešov
  • Počty občanov v jednotlivých rokoch
  • Počet občanov podľa ulíc
  • Zoznam obchodných prevádzok v meste Prešov
  • Zoznam monitorovacích zariadení

Mnohé datasety majú aj prepojené s vizualizáciami v mape pomocou svojho GIS portálu, viď napr. mashup rozmiestnenia mestských kamier a staníc mestskej polície:

http://webgis.presov.sk/?mapSet=0&center=-260042.48212723216,-1208665.1842723214&zoom=1&selVals=null&m=0&l=35

V Prešove zrejme videli prednášku o "slow-food data" skôr než ja (viď poznámky zo SEMANTiCS). Alebo skrátka uplatnili zdravý rozum. Veľmi sa teším a Prešovčanom aj trochu závidím. (smile)

Aktualizácia k februáru 2017: Prešov spustil aj publikovanie Open GEO Data vo formátoch SHP a KML, viď http://egov.presov.sk/default.aspx?NavigationState=1200:0: .

V nadväznosti na ostatný blog post zo série "Porovnania s inými" (za máj 2014) dnes ponúkam po viac ako roku aktualizáciu porovnania Slovenska s niekoľkými ďalšími krajinami pokiaľ ide o počet zverejnených datasetov. Nie je to úplne presná či všeobjímajúca metrika, ale ako čiastkový indikátor poslúži (nie je dataset ako dataset, niektoré sa dajú použiť viac a na dôležitejšie veci, iné menej, ale to sa tiež ťažko meria - ale ak datasetov pribúda, zvyčajne je to dobre).

Porovnáme konkrétne Slovensko (SR), Česko (ČR), Rakúsko (AT), Taliansko (IT), Veľkú Britániu (GB) a Rumunsko (RO) čo do počtu zverejnených datasetov a ich licencií (k 2.6.2015):

 SRČRATITGBRO
počet datasetov43518318161111024892251
počet zdrojov (resources)11931570640931240843581748
počet datasetov s otvorenou licenciou416 (95.6%)26 (14.2%)1111 (61.2%)11084 (99.8%)15438 (62.0%)244 (97.2%)
počet datasetov s nie otvorenou licenciou191577052694547
Pozorovania
  1. (nové) Rumunsko je aktuálne čisto v počte datasetov zhruba na úrovni SR pred rokom. Kladú tiež dôraz na otvorenú licenciu (97% datasetov uvádza licenciu OGL-ROU-1.0).
  2. V SR sa po dlhšom období keď bola "hladina vody ustálená" veci pohli a "hladina stúpa" o zhruba dvojnásobok. Veľký podiel má na tom aktivita Štatistického úradu, ktorý má aktuálne na konte 244 datasetov (viď http://data.gov.sk/dataset?organization=statisticky-urad-sr). V nastúpenom trende teda dúfam budeme pokračovať a k ŠÚ sa pridajú aj ďalšie organizácie.
    1. Vrámci upgradu data.gov.sk (zhruba leto 2014) prebehlo o.i. doplnenie informácií o licencii. Výsledkom je, že viac ako 95% datasetov v SR je dnes uvádza otvorenú licenciu (v drvivej väčšine CC-BY-SA).
  3. V ČR počet datasetov a zdrojov vzrástol len minimálne. Ale rozbehla sa akoby decentralizovaná aktivita a svoje katalógy spustili alebo spúšťajú napr. rôzne ministerstvá (viď napr. http://data.mfcr.cz/). Centrálny katalóg však zrejme nepreberá údaje z rezortných a teda celkový údaj v mojej štatistike tieto nové aktivity zatiaľ nezohľadňuje. (a pozor, údaje sú výnimočne k 22.5.2015, keďže potom mi prestalo fungovať API, viď 710f968)
  4. V Rakúsku naďalej stúpa počet datasetov. Zredukovali však počet zdrojov a citeľne poklesol aj počet datasetov s otvorenou licenciou (z 99.8% na 61.2%). Príčiny mi zatiaľ nie sú známe.
    1. Treba však podotknúť, že v Rakúsku otvorili dôležité a "drahé" datasety, viď napr. Open Geo Data - to sa neda? Tieto priestorové údaje sú veľmi dôležité a sú otvorené (CC-BY-AT 3.0).
  5. V Taliansku tiež stúpa počet datasetov. A stále pokračujú aj v tlaku na otvorené licencovanie, takže počet "non open" datasetov klesá. (a pozor, údaje sú výnimočne k 30.5.2015, keďže potom mi prestalo fungovať API, viď b866d3a)
  6. Obdobne aj vo Veľkej Británii počet datasetov stúpa, vo väčšine pod otvorenou licenciou. Takže aj tam sa percentuálne zvyšuje počet naozaj otvorených údajov.
  7. Oproti ostatnému porovnaniu, vznikla nová skupine "suverénov" s vysokým podielom otvorených datasetov: Slovensko a Rumunsko sa percentuálne veľmi priblížili Taliansku, Rakúsko vypadlo.
Možné vylepšenia tohto porovnania
  1. Trendy (vykazovať prírastky a úbytky) + grafy.
  2. Bolo by zaujímavé porovnať aj zastúpenie použitých formátov a API. Je tam však veľká variabilita a navyše aj niektoré CSV je lepšie ako iné CSV a pod. Toť téma na ďalšie skúmanie.
  3. Bolo by zaujímavé vyčísľovať aj počty aplikácií postavených nad dátami. Takéto údaje však zatiaľ ucelene vedené nie sú.
Zdroje a metodika

Zdrojmi údajov sú API jednotlivých data katalógov:

Počty položiek sú získané jednoduchými "list" a "search" dotazmi, bez filtrovania či vyhodnocovania.

Čo je a čo nie je "otvorená licencia" je na rozhodnutí kurátorov daných katalógov. Dôležité totiž je, či a ako vyplnili položku "isopen" k jednotlivým datasetom. Pre potreby tohto porovnania je "isopen=true" brané ako "otvorená licencia" a zbytok ako "nie otvorená licencia".

Aktuálne údaje vo forme CSV si môžete stiahnuť na adrese https://github.com/hanecak/data_data-catalog-stats/blob/master/data-catalog-stats-current.csv . Programátori či iný znalci sa tam doklikajú aj k historickým údajom. (smile)

Predchádzajúce vydania

Vrámci ďalšieho ročníka súťaže ReŠtart Slovensko sa o podporu uchádza aj projekt Chcemvediet.sk:

Prístup k verejným informáciám je kľúčový pre kvalitu spravovania štátu. Dobrá vláda nepotrebuje žiadne tajnosti. Naopak, chce aby občania sledovali, ako nakladá s verejnými prostriedkami, ako obsadzuje voľné pozície, kto dostáva štátne zákazky a na čo, pretože im chce priniesť kvalitné a efektívne služby a chce zamestnávať kvalifikovaných a šikovných ľudí, ktorí jej to pomôžu uskutočniť. Dobrá vláda chce, aby občania vedeli. Chcemvediet.sk je tu pre nich.

Téma infožiadostí úzko súvisí s témou otvorených údajov (Open Data): ak ten či onen údaj/dataset nie je proaktívne a vhodne zverejnený inštitúciou ako Open Data, tak si ho vie občan zaobstarať zrejme už iba cez infožiadosť. Proces podávania takýchto žiadostí je pre mnohých občanov zložitý a sami ho zvyčajne nezvládnu.

Ako vie v takých prípadoch pomôcť štátna inštitúcia alebo inštitúcia samosprávy? Nuž najlepšie by bolo nečakať na dopyty od občanov a zverejňovať prokatívne, pod otvorenou licenciou a s použitím otvorených formátov všetky údaje, ktoré inštitúcia má a môže zverejniť. T.j. najlepšie je skrátka zverejňovať otvorené údaje.

Čo ale v prípade, že sa to nedá? Hneď a teraz? Nuž, možno využiť infožiadosti. Ale uľahčiť ich podávanie napr. službami projektu Chcemvediet.sk, ktoré občanom prinesú:

  • jednoduchšie podávanie infožiadostí
  • asistenciu počas celého priebehu vybavovania žiadostí, od podania až po odpoveď, vrátane pomoci v prípade zamietnutia
  • lepší a prehľadnejší prístup k už poskytnutým informáciám

Okrem toho projekt poskytne aj ďalšie doplnkové služby, ako napr. vyhľadávanie a štatistiky.

V komunite OpenData.sk sme si na niečo podobné zriadili repozitár na GitHub:

https://github.com/OpenDataSk/data-requests/issues

Toto riešenie je však vhodné skôr len pre IT-čkárov. Projekt Chcemvediet.sk poskytne viacej služieb, poskytne ich jednoduchšie a má teda potenciál pomôcť omnoho lepšie omnoho širšiemu okruhu občanov. Netrpezlivo teda očakávame jeho dokončenie (projekt je už z väčšej časti hotový) a oficiálne spustenie, ktoré je plánované na leto 2015.

Zrejme tam o.i. pridáme žiadosť o podrobnejšie údaje o kriminalite v SR, aby sme mohli plnohodnotne dokončiť aj projekt MapaZlocinu.sk .

Peter Hanečák, OpenData.sk
21.4.2015

Aktualizácia k 18.12.2015

Projekt Chcemvediet.sk už spustil beta verziu na adrese:

https://www.chcemvediet.sk/

 

V SR sa často stále dokola a opakovane nakupujú tie isté geo údaje, napr. ortofotomapy. Raz ich kúpi nejaké ministerstvo, potom nejaká agentúra, následne hentá alebo tamtá obec, a tak ďalej, a tak stále dokola. Platia to daňoví poplatníci, pričom:

  1. kupujúci (inštitúcia) má veľmi oklieštené možnosti nakladania s nadobudnutými údajmi (viď napr. licenčnú zmluvu Mesta Žilina)
  2. stále tie dáta potrebuje ale nemá kopa ďalších úradníkov
  3. stále tie dáta nie sú k dispozícii nám, občanom, v podobe otvotrených údajov

Čiže, tie údaje stoja opakovane kopu peňazí, ale nie je možné využiť ich potenciál naplno.

Na dopyt, prečo si teda štát či samospráva ako zákazník nevyjedná lepšie podmienky pri kúpe údajov, je častou odpoveďou "to sa nedá, takto sa to robí už dlho". Nuž ale, kto má byť pán? Kupujúci alebo predávajúci?

Vo Viedni to evidentne ide, viď napr. https://open.wien.gv.at/site/datensatz/?id=fc21780d-bbb0-4ec9-9cb2-8687fd28ebc2, odkiaľ ktorej je táto ukážka (originálny rozmer je 16667x16667 pixelov, veľkosť 35 MB, tu som to zmenšil):

Wien Stadtplan Orthofoto
Creative Commons Namensnennung 3.0 Österreich

Takéto chcú aj občania SR, pre svoju krajinu, pre svoje mesto. Kto bude prvý? Určite sa to dá. A aj ako Open Data, s použitím Creative Commons licencie.

Peter Hanečák, 14.4.2015


Referencie:

Pozývame vás na ďalšie kolo Open Scraper Challenge 2014.

Pre tých, ktorým nebolo dosť letného scrapovania (viď https://utopia.sk/wiki/display/opendata/Open+Scraper+Challenge+2014http://www.soit.sk/sk/aktualne/oit-doma/2014-07-23/231-open-scraper-challenge-2014) alebo tých, ktorí ho nestihli, máme dobrú správú: bude aj jesenná edícia Open Scraper Challenge. Akciu organizuje SOIT v spolupráci s OpenData.sk a uskutoční sa cez víkend 25. - 26. októbra 2014. V Bratislave sa stretneme v priestoroch http://www.visualdna.com/cee/, v ostatných mestách operatívne podľa záujmu. Môžete sa pridať vzdialene :) .

Opäť sa budú scrapovat datasety pre OpenData.sk za pomoci Open Source nástroja https://morph.io .

Komunikácia bude prebiehať na kanáli #soit.sk na irc.freenode.net .

V sobotu začneme o 11:00, v nedeľu o 10:00.

Záujemcov prosíme o včasnú registráciu na http://doodle.com/h3qpm89wa44xts8u . O.i. budeme podla toho uspôsobovať miesto konania. Vopred vďaka.


Foto: By Ryan G. Wilber, U.S. Navy [Public domain], via Wikimedia Commons

During Open Culture 2014 conference I actually got a chance to follow up on the idea of Open Data in museums by giving a short talk at Open Data Unconference.

In this short summary, I publish my slides plus few additional notes.

Slides

Key points:

  • Investment: small
    • You're most probably already publishing data to general public (via your portal, Europeana, etc.)
    • With Web 2.0, you may already have an Open Data API (hint: AJAX)

    • If not, it's still easy to do (if the data already is in some database, CMS, etc.)

  • Contribution: much bigger than investment

    • Culture sector will benefit for sure: higher use/reuse of data already being published

    • Open Data will benefit too: apps and mash-up developers, ...

    • By extension society will benefit too, not just economically

  • Motivation: museum will benefit too

    • Wider use of your data => vider audience for your museum

    • Other museums can use you data too => better collaboration

Notes

I've asked the audience about who knows about Open Data: majority raised their hands. I've followed up with question about how many of them are actually publishing Open Data already: this time only minority raised their hand. So when it comes to Open Data in Culture sector, awareness seems to be there but we may say there's still a lot of work to e done.

But my key argument is that very little additional work is needed because:

  • I suspect many more are already publishing Open Data, they just not realize it and market it fully. For example some data gets published as Open through Europeana. Or as a by-product of existing nice Web 2.0 portals (which implement AJAX calls to so called back-end systems - I'm truly sorry for non-techies for this jargon: please talk to your IT guys, it's truly simple, just hidden from plain view).
  • And in cases when publishing is not being done yet, it can be done easily. For example CMS or collection management systems deployed at the museums can already do that or can be easily extended to do that.

Key-note speaker Sir Peter Bazalgette actually provided a very good introduction and few arguments in support for Open Data, Open Access:

  • those you lend to, lend back to you
  • database of oil paintings available as Open Access is already increasing visits
  • etc.

At the end I invited attendees to talk with their local Open Data activists in their countries so as to get help and guidance while solving lets say "few remaining issues" like:

  • documenting existing data and APIs
  • having that mentioned and linked in national data catalogs
  • making all that know with some press releases
  • etc.

Licensing, copyright

One question from audience was about licensing and who is owning copyrights. Well, I'm not a lawyer and it is very difficult topic. But, ...

Lots of such data (or, in this particular field it actually is a metadata about works of art and other objects) is already published on the web in human readable form "for free" and with some copyright notices at the bottom. I would thus argue that same "licensing scheme" can be reused for machine readable representation of same data/metadata.

So I think biggest part of the licensing is already solved. Or if not, it's not strictly limited to publication of Open Data, but is an issue of digital age as a whole. For example David Walsh sort of joked during his presentation, that in say 10 to 20 years this issue will be resolved ... or not. Along with some other difficulties troubling managers of digital collections. (smile)


Light side note: If I want to make complaint about missing space elevator, 27/29 South Lambeth Road, Vauxhall, London, SW8 1SZ might be one of the proper addresses.

Nadviažem na tému o Open Data API v SR (viď článoček OpenData API nemusí byť nič špeciálne). Tentoraz sa pozrieme na API portálu Register účtovných závierok, ktorý obstaralo Ministerstvo financií Slovenskej republiky. Obdobne ak v prípade portálu ZBGIS popíšem názorné ukážky toho, ako API použiť.

Upozornenie: Na rozdiel API portálu ZBGIS, ktoré vzniklo akoby náhodou, neplánovane a nechcene, API Registra účtovných závierok je jasne cielené na Open Data:

  1. existuje dokumentácia: http://www.registeruz.sk/cruz-public/static/api.html http://www.registeruz.sk/cruz-public/version/176425/static/api.html
  2. a špecificky sa v nej spomína: "Verejné RÚZ Open API poskytuje možnosť získať verejne dostupné údaje (t.j. všetko, čo je poskytované portálom registeruz.sk) v podobe vhodnej na spracovanie ..."

Takže k veci. Použitie API si ukážeme na veľmi jednoduchom praktickom príklade: Ako zistím či firma PosAm podala tohto roku účtovnú závierku?

Update k 6.6.2014: Ďalšie doplnkové čítanie: Aspoň jeden štátny IT projekt na európskej špici



Ako zistím či firma PosAm podala tohto roku účtovnú závierku?

Krok 0: zistenie IČO

Ako prvé si samozrejme preštudujeme už spomenutú dokumentáciu. Tam o.i. zistíme, že vyhľadávať možno napr. podľa IČO. Ale zatiaľ máme iba názov. Pomôžeme si Obchodným registrom: http://www.orsr.sk/vypis.asp?ID=8585&SID=2&P=0 -> 31365078 .

Krok 1: zistenie ID firmy podľa IČO

Zašleme na server požiadavku (pre potreby tohto návodu vkladáme URL rovno do browsera resp. naň klikáme a otvárame v novej záložke či novom okne):

http://www.registeruz.sk/cruz-public/api/uctovne-jednotky?zmenene-od=2014-01-01&max-zaznamov=100&ico=31365078

a získame odpoveď:

response
{"id":[156639],"pocetZostavajucichId":0}

Čiže ID je 156639.

Krok 2: zistenie ďalších atribútov k firme podľa ID

Požiadavka:

http://www.registeruz.sk/cruz-public/api/uctovna-jednotka?id=156639

Odpoveď:

response
{"id":156639,"ico":"31365078","dic":"2020315440","nazovUJ":"PosAm, spol. s r.o.",
"mesto":"Bratislava - mestská časť Nové Mesto","ulica":"Odborárska 21","psc":"83102",
"datumPoslednejUpravy":"2014-01-29","datumZalozenia":"1994-01-03","pravnaForma":"112","skNace":"62010",
"velkostOrganizacie":"23","druhVlastnictva":"2",
"kraj":"1","okres":"103","sidlo":"529346","konsolidovana":false,"zdrojDat":"ŠÚSR",
"idUctovnychZavierok":[568588,993104,2054656,284076,1713768],
"idVyrocnychSprav":[1913909]}

Overili sme si, že teda áno, je to firma PosAm a že doteraz zaslala:

  1. účtovné závierky: dokumenty z ID 568588, 993104, 2054656, 284076 a 1713768
  2. výročnú správu: dokument s ID 1913909

Krok 3: zistenie podrobností o účtovnej závierke podľa jej ID

Tu preskočím prehľadávanie viacerých ID a rovno poviem, že tá uzávierka ktorá nás zaujíma má ID 2054656:

Požiadavka:

http://www.registeruz.sk/cruz-public/api/uctovna-zavierka?id=2054656

Odpoveď:

response
{"id":2054656,
"obdobieOd":"2013-01-01","obdobieDo":"2013-12-31","datumPodania":"2014-03-31",
"datumZostavenia":"2014-03-07","datumSchvalenia":"2014-03-26","datumPrilozeniaSpravyAuditora":"2014-03-31","datumPoslednejUpravy":"2014-05-13",
"zdrojDat":"FRSR","nazovUJ":"PosAm,spol.s r.o.","ico":"31365078","dic":"2020315440","idUJ":156639,"typ":"Riadna",
"idUctovnychVykazov":[4037605,4037606,4037603,4037604]}

Takže máme odpoveď: Áno, firma PosAm podala za rok 2013 účtovnú závierku a to dňa 31.3.2014.

Ale sme zvedaví, takže poďme ešte ďalej.

Krok 4: zistenie podrobností o konkrétnom účtovnom výkaze podľa jeho ID

Opäť trochu preskočím a poviem, že nás zaujíma výkaz s ID 4037605.

Požiadavka:

http://www.registeruz.sk/cruz-public/api/uctovny-vykaz?id=4037605

Odpoveď:

response
{"prilohy":[
{"id":3390918,"meno":"POD101_2020315440_IR_2013_201801_631789.pdf","mimeType":"application/pdf",
"velkostPrilohy":264961,"digest":"c8b2017f8e5af3200beae04d8c5db2f2914dccb931f6c319d8306749c2c80d60","pocetStran":0}],
"id":4037605,"idUctovnejZavierky":2054656,"idSablony":21,
"obsah":{"titulnaStrana":{"nazovUctovnejJednotky":"PosAm,spol.s r.o.","ico":"31365078","dic":"2020315440",
"adresa":{"ulica":"Odborárska","cislo":"21","psc":"83102","mesto":"Bratislava 3 - Nové Mesto"},
"skNace":"62010","typZavierky":"Riadna",
"obdobieOd":"012013","obdobieDo":"122013","predchadzajuceObdobieOd":"012012","predchadzajuceObdobieDo":"122012",
"datumSchvalenia":"26032014","datumZostavenia":"07032014"},
"tabulky":[
{"nazov":"Strana aktív","data":[...]},
{"nazov":"Strana pasív","data":[...]}]},
"kodDanovehoUradu":"100","datumPoslednejUpravy":"2014-05-13","zdrojDat":"FRSR"}

To je kopa údajov. Kto si to doštuduje podrobnejšie, zrejme zistí čo potrebuje.

Ale teraz sme predsa len ľudia, nie programy, takže skúsme ešte niečo.

Krok 5: Stiahnutie PDF verzie účtovného výkazu podľa jeho ID

Požiadavka na PDF generované portálom z údajov:

http://www.registeruz.sk/cruz-public/domain/financialreport/pdf/4037605

Odpoveď:

report_31365078_20140605_S.pdf

Požiadavka na PDF zaslané samotnou firmou, t.j. "originál" (3390918 je ID prílohy výkaz s ID 4037605):

http://www.registeruz.sk/cruz-public/domain/financialreport/attachment/3390918

Odpoveď:

POD101_2020315440_IR_2013_201801_631789.pdf

Tu už samozrejme prestáva stačiť, že vieme volať API a k slovu prichádzajú naše znalosti účtovníctva. A tým teda končím tento praktický príklad.

Záver

API je jednoduché a funkčné (s ohľadom na bázu údajov, s ktorou pracujeme) a okrem tohto malého príkladu je schopné efektívne poskytnúť údaje aj zložitejším aplikáciám, keďže (v súlade s Výnosom o štandardoch pre ISVS č. 55/2014 Z. z.) poskytuje aj možnosť filtrovať výsledky podľa dátumu poslednej zmeny (parameter 'zmenene-od') a stránkovať (parametre 'pokracovat-za-id' a 'max-zaznamov').

Neostáva iné než pochváliť. (smile)


p.s.: Prečo práve PosAm? Lebo dodávali realizáciu portálu. Viď napr. http://otvorenezmluvy.sk/documents/703913-datacentrum-bratislava-posam-s-r-o-zmluva-o-dielo-pre-fu?q=Register+%C3%BA%C4%8Dtovn%C3%BDch+z%C3%A1vierok .