Petr Šaloun and Dušan Chlapek

Transkript

Petr Šaloun and Dušan Chlapek
2014
Proceedings of the 34th Annual
Database Conference
Edited by
Petr Šaloun
and
Dušan Chlapek
Demänovská dolina, Jasná,
Hotel Junior
Slovak Republic
September 25-27, 2014
http://www.datakon.cz
Petr Šaloun and Dušan Chlapek (Editors)
DATAKON 2014, sborník z konference
1. vydání
Určeno pro účastníky konference DATAKON 2014
elektronické vydání
151 stran
Vydává Vysoká škola báňská-Technická univerzita Ostrava,
v řadě Fakulty elektrotechniky a informatiky, 2014
Elektronická verze sborníku konference
ISBN 978-80-248-3545-7
Petr Šaloun and Dušan Chlapek (Ed.) DATAKON 2014
DATAKON
2014
sborník konference
Editoři
Petr Šaloun
Dušan Chlapek
Demänovská dolina – Jasná
Slovensko
25. - 27. září 2014
www.datakon.cz
Vydané: Vysokou školou báňskou-Technickou univerzitou Ostrava
Datakon 2014
1. vydání
Editoři
Petr Šaloun
VŠB-Technická univerzita Ostrava
katedra informatiky FEI
17. listopadu 15
70833 Ostrava-Poruba
Dušan Chlapek
Katedra informačních technologií
Vysoká škola ekonomická
Nám. W. Churchilla 4
130 67 Praha 3
Partneři vydání
Česká společnost pro kybernetiku a informatiku
Vema, a.s.
Fakulta informačních technologií Vysokého učení technického v Brně
Profinit, new frontier group
 Autoři příspěvků uvedení v obsahu, 2014
Každý příspěvek byl recenzován, recenzenti jsou členy programových výborů konferencí.
Vydává
Vysoká škola báňská-Technická univerzita Ostrava,
v řadě Fakulty elektrotechniky a informatiky, 2014
Elektronická verze sborníku konference
ISBN 978-80-248-3545-7
Partneři vydání
Česká společnost pro kybernetiku
a informatiku
Vema, a.s.
Fakulta informačních technologií
Vysokého učení technického
v Brně
Profinit, new frontier group
DATAKON® je prestižní česká a slovenská konference s mezinárodní účastí
zaměřená na teoretické a technické základy, nejlepší postupy a vývojové trendy
v oblasti využití informačních technologií při budování informačních systémů
včetně výsledků jejich aplikace v praxi.
DATAKON® představuje ideální platformu pro výměnu zkušeností mezi
českými i zahraničními odborníky z řad dodavatelů informačních technologií,
jejich zákazníků a akademického světa.
DATAKON® oslovuje zkušené odborníky i nejlepší studenty.
DATAKON® is a high-profile traditional conference focused on theoretical and
technical background, best practices and development trends in deployment of
information technology for information systems development including
application results of described approaches in industry practice.
DATAKON® serves as an ideal platform for experience exchange among experts
of information technology products and services suppliers, their customers and
the academic community both Czech, Slovak and also foreign.
DATAKON® brings together researchers, professionals, and students.
Předmluva
DATAKON ® je prestižní česká a slovenská konference s mezinárodní účastí zaměřená na
teoretické a technické základy, nejlepší postupy a vývojové trendy v oblasti využití
informačních technologií při budování informačních systémů včetně výsledků jejich
aplikace v praxi. Hlavní témata konference Datakon 2014 jsou
 Big data,
 Open data,
 Linked data.
Tematické okruhy Datakonu 2014 nejsou výlučné, preferovány jsou standardní příspěvky,
případové studie a postery s vazbou na praxi a praktické použití.
 Architektury informačních systémů
 Cloud Computing
 Datové registry
 Dobývání znalostí
 Informační bezpečnost
 Integrace datových zdrojů
 Kvalita dat a zpracování neúplné informace
 Management znalostí a znalostní technologie
 Modelování procesů a služeb
 Multimediální, časová, časově prostorová a geografická data
 Nové trendy a moderní databázové technologie
 Servisně orientované architektury
 Sociální sítě na internetu
 Vyhledávání na webu
 XML technologie
 Zpracování rozsáhlých souborů dat
 Proudy dat
 Řídicí systémy v reálném čase
Obsah sborníku odpovídá programu konference DATAKON 2014, konané 25. - 27. září
2014 v hotelu Junior, Demänovská dolina – Jasná, Slovensko. Výběr příspěvků zajišťoval
programový výbor pro rok 2014 Všechny příspěvky byly posuzovány třemi nezávislými
recenzenty. Na letošním ročníku DATAKONu byla zařazena panelová diskuse Otevřená data
v samosprávě SR a ČR, kterou organizovali Ján Gondoľ (Ministerstvo vnútra SR), Dušan
Chlapek (FIS VŠE Praha).
Sborník příspěvků obsahuje texty pěti zvaných přednášek, čtyř přijatých standardních
příspěvků a tří posterů.
Závěrem chceme poděkovat všem, kteří se zasloužili o 34. ročník konference DATAKON
a této publikace. V prvé řadě chceme poděkovat autorům zvaných přednášek, standardních
příspěvků a posterů, za úsilí, které vynaložili při jejich přípravě. Rovněž bychom chtěli
poděkovat členům programového výboru za posouzení příspěvků a jejich nápady a práci při
přípravě programu konference, zejména děkujeme předsedovi řídícího výboru Jaroslavu
Pokornému za neutuchající nadšení a podporu všemu a všem, co s konferencí souvisí. Dále
chceme poděkovat partnerům konference za podporu, bez nichž by uspořádání konference
bylo obtížně realizovatelné. Velký dík patří také kolegům z organizačního výboru
konference Yvetě Geletičové, a zejména kolegům Tomáši Horváthovi a Štefenu Perovi,
kteří v rámci kolokace konferencí s ITAT zajistili místo a organizaci v Jasnej pod
Chopkom.
Petr Šaloun a Dušan Chlapek
předsedové programového výboru
Preface
DATAKON® is a high-profile traditional conference focused on theoretical and technical
background, best practices and development trends in deployment of information
technology for information systems development including application results of described
approaches in industry practice. The main topics of conference DATAKON 2014 are
 Big data,
 Open data,
 Linked data.
The other topics of conference DATAKON are mainly (but not only):
 Information systems architecture
 Cloud Computing
 Data mining
 Information security
 Data sources integration
 Data quality and incomplete information processing
 Knowledge management and technologies
 Process and service modeling
 Multimedia, time, time space and geographic data
 New trends and modern database technologies
 Service oriented architecture
 Social networks on the Internet
 Searching on the Web
 XML technology
 Very large data sets processing
 Real-time systems
The conference DATAKON 2014 was held on September 25th - 27th 2013 at hotel Junior,
Demänovská dolina – Jasná, Slovakia. The Proceedings follows the program of the
conference. All entries were judged by three independent reviewers, members of program
committee. This year DATAKON was open panel discussion Open data in local government
Slovak Republic and Czech Republic, which was organized by Ján Gondoľ (Ministry of
Interior SR) and Dušan Chlapek (University of Economics, Prague).
Proceedings contains texts of five invited lectures, four standard contributions and tree
posters.
Finally we want to thank everyone who contributed to the 34th annual conference
DATAKON and to this publication. First of all we want to thank the authors of invited
lectures, tutorials, standard contributions and case study for the effort they put forth in their
preparation. We would also like to thank the members of the program committee for their
reviews of contributions and their ideas and work in preparing the conference program,
especially we wish thank to Jaroslav Pokorný, Steering Committee chair, for his enthusiasm
and support. We would also like thank to the partners of the conference for their support. A
big thank to colleagues from the organizing committee of the conference, namely Yveta
Geletičová, and colleagues Tomáš Horváth and Štefan Pero from the ITAT conference
Organizing Committee for the preparation, help and care during the conference
DATAKON 2014 in Jasná pod Chopkom.
Petr Šaloun and Dušan Chlapek
Program Committee Chairs
Organizace konference
(Conference Organization)
Řídící výbor (Steering Committee)
Předseda (Chair):
Jaroslav Pokorný, UK Praha
Členové (Members): Mária Bieliková, STU Bratislava
Ján Genči, TU Košice
Petr Hujňák, Per Partes Consulting Praha
Dušan Chlapek, VŠE Praha
Karel Richta, ČVUT Praha
Jan Staudek, MU Brno
Petr Šaloun, VŠB-TU Ostrava
Jaroslav Zendulka, VUT Brno
Programový výbor (Program Committee)
Předsedové (Chairs): Petr Šaloun, VŠB-TU Ostrava
Dušan Chlapek, VŠE Praha
Členové (Members): Maria Bieliková, STU Bratislava
Miroslav Benešovský, NESS Europe Brno
Marie Duží, VŠB-TU Ostrava
Ján Genči, FEI TU Košice
Ivan Halaška, ČVUT Praha
Zdeněk Havlice, TU Košice
Tomáš Hruška, VUT Brno
Petr Hujňák, Per Partes Consulting Praha
Štefan Kovalík, ŽU Žilina
Jaroslav Král, UK Praha
Pavel Král, ZČU Plzeň
Petr Kučera, Komix s.r.o.
Aleš Limpouch, TopoL Software, s.r.o.
Karol Matiaško, ŽU Žilina
Martin Molhanec, ČVUT Praha
Jaroslav Pokorný, UK Praha
Lubomír Popelínský, MU Brno
Karel Richta, ČVUT Praha
Vojtěch Svátek, VŠE Praha
Henrieta Telepovská, FEI TU Košice
Michal Valenta, ČVUT Praha
Tomáš Vlk, ČVUT Praha
Peter Vojtáš, UK Praha
Jaroslav Zendulka, VUT Brno
Organizační výbor (Organization Committee)
Petr Šaloun, předseda, VŠB-TU Ostrava
Yveta Geletičová, VŠB-TU Ostrava
Tomáš Horváth a Štefan Pero (ITAT), UPJŠ Košice
DATAKON 2014 organizují (DATAKON 2014 is organized by)
Matematicko-fyzikální fakulta, UK Praha
Česká společnost pro systémovou integraci
Slovenská informatická společnost
Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava
Partneři konference DATAKON 2014 (DATAKON 2014 Partners)
Česká společnost pro kybernetiku
a informatiku
Vema, a.s.
Fakulta informačních technologií
Vysokého učení technického
v Brně
Profinit, new frontier group
Obsah
Zvané prezentace
Big Data: jejich ukládání, zpracování a použití
Jaroslav Pokorný ........................................................................................ 3
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
Dušan Chlapek, Jakub Klímek, Jan Kučera, Martin Nečaský .................. 17
Na strastiplnej ceste k otvoreným päťhviezdičkovým údajom v Slovenskej
republike
Miroslav Líška .......................................................................................... 39
Skúsenosti so správou prepojených dát
Marek Šurek .............................................................................................. 53
Digitalizace artefaktů paměťových institucí
Petr Vršek ................................................................................................. 63
Vybrané příspěvky
Spracovanie viacslovných pomenovaní
Ján Genči, Martin Ološtiak ...................................................................... 73
Reprezentácia časových radov pomocou opakujúcich sa vzorov
Jakub Ševcech, Mária Bieliková ............................................................... 79
Extended Column Level Temporal Indexed Management System
Michal Kvet, Karol Matiaško, Monika Vajsová ....................................... 87
Úvod do vizualizácie softvéru
Kristián Šesták, Zdeněk Havlice ............................................................... 99
Postery
Webové služby v procese vyhodnocovania študentských zadaní
Miroslav Biňas ........................................................................................ 111
BOINC@Fiit – distribuovaný výpočtový systém
Peter Lacko, Juraj Vincúr, Martin Tibenský, Pavol Pidanič,
Juraj Petrík, Ján Kalmár, Ondej Jurčák, Radoslav Zápach ................... 121
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014
Databázový mirror jako nutná komponenta informační podpory při řízení
kontinuální výroby
Roman Danel, Lukáš Otte, David Johanides .......................................... 129
Rejstřík autorů ............................................................................................ 137
Zvané prezentace
Big Data: jejich ukládání, zpracování a použití
Jaroslav POKORNÝ
Katedra softwarového inženýrství, MFF UK Praha
Malostranské nám. 25, 118 00 Praha
[email protected]
Abstrakt. V posledních letech je patrný vývoj a nasazování vysoce distribuovaných a
škálovatelných systémů pro zpracování dat v oblasti zvané Big Data. Nové
architektury zahrnují např. distribuované souborové systémy a NoSQL databáze. Na
druhé straně je zřejmé, že problémy Big Data, jako jsou složitost dat, rychlost jejich
vzniku a analytické požadavky, řeší tyto prostředky pouze částečně. To je patrné
zejména v síťovém prostředí, kde součástí Big Data bývá i podniková databáze a jsou
vyžadovány ACID vlastnosti, které NoSQL databáze obecně negarantují. Vývoj tzv.
NewSQL databází je tedy aktuální, objevuje se dokonce nová kategorie databází – Big
Data Management Systems. V přednášce budeme diskutovat tyto trendy a
vyhodnotíme některé současné přístupy ke zpracování a řízení Big Data.
Klíčová slova: Big Data, Big Analytics, NoSQL, NewSQL, Hadoop
1 Úvod
Efektivní využívání systémů zahrnujících zpracování velkých objemů dat vyžaduje
v mnoha aplikačních scénářích odpovídající nástroje pro ukládání a zpracování těchto dat
na nízké úrovni a analytické nástroje ve vyšších úrovních. Zdá se, že z pohledu uživatele je
nejdůležitějším aspektem zpracování velkých objemů dat na počítači právě jejich analýza,
jak se dnes říká - Big Analytics. Bohužel, velké kolekce dat obsahují data v různých
formátech, např., relační tabulky, XML data, textová data, multimediální data nebo RDF
trojice, což může působit potíže při jejich zpracování algoritmy pro dolování dat. Rovněž
zvyšující se objem dat v úložišti nebo počet uživatelů tohoto úložiště vyžaduje spolehlivé
řešení škálování v těchto dynamických prostředích a pokročilejší, než nabízejí tradiční
databázové architektury.
Je zřejmé, že Big Analytics se provádí i nad velkým množstvím transakčních dat
rozšířením metod používaných obvykle v technologii datových skladů (DW). Technologie
DW byla vždy zaměřena na strukturovaná data ve srovnání s mnohem bohatší variabilitou
typů dat, tak jak je dnes třeba pro Big Data. Analytické zpracování velkých objemů dat
proto vyžaduje nejen nové databázové architektury, ale také nové metody pro analýzu dat.
Pro skladování a zpracování velkého množství dat a řešení uvedených problémů mají
dnes uživatelé řadu možností:
 tradiční paralelní databázové systémy,
 distribuované souborové systémy a technologii Hadoop,
 datová úložiště klíč-hodnota (tzv. NoSQL databáze),
 nové databázové architektury (např. NewSQL databáze).
Distribuované souborové systémy uvažované zde, např. Hadoop Distributed File System
(HDFS) [26], se liší od tradičních síťových souborových systémů (např. v systému UNIX).
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 3-16.
4
Big Data: jejich ukládání, zpracování a použití
Používají např. rozdělování souborů a replikace. NoSQL databáze jsou relativně novým
typem databází, které byly iniciovány webovými společnostmi počátkem 20. století.
NewSQL databáze usilují poskytnout efektivní škálování (jako NoSQL databáze) a
udržovat garanci konzistence transakcí jako v tradičních relačních systémech řízení bází dat
(SŘBD). Jsou rovněž kompatibilní s SQL.
Příspěvek se zaměřuje na výzvy přicházející s technologií Big Data. Jeho cílem je dát do
souvislosti principy tradičních nástrojů pro zpracování dat se zpracováním a řízením
velkých objemů dat a ukázat některé alternativy v této oblasti. V souladu s dnešními
konvencemi budeme někdy (nepřesně) místo SŘBD hovořit o databázi.
V sekci 2 stručně popíšeme koncept Big Data, tj. vlastnosti, zpracování a analýzu
velkých objemů dat. Sekce 3 zmiňuje v této souvislosti dva typy databázových architektur:
tradiční univerzální a architekturu založenou na software Hadoop s implementací
frameworku MapReduce. V sekci 4 předkládáme stručný přehled technologií NoSQL
databází, zejména jejich datové modely, architektury, a zmíníme některé její představitele.
V sekci 5 vyhodnotíme různé přístupy k ukládání a správě Big Data s ohledem na Big
Analytics. Sekce 6 uvádí některé otevřené problémy související s Big Data představující
výzvy pro databázovou komunitu.
2 Big Data
O velkých objemech dat obvykle mluvíme, pokud je velikost datového souboru mimo
schopnosti současného systému pro jeho ukládání, zpracovávání, vyhledávání a správu.
McKinsey popisuje v [17] Big Data jako velké zásobárny nestrukturovaných a
strukturovaných údajů, které mohou být získány, sdělovány, agregovány, uloženy a
analyzovány, a které se nyní stávají součástí každého sektoru či funkce světové ekonomiky.
Objem dat vytvořených jak uvnitř korporace tak za jejími hranicemi prostřednictvím Webu,
prostřednictvím mobilních zařízení, IT infrastruktury a dalších zdrojů, roste každým rok
exponenciálně [15].
Při vývoji paradigmatu Big Data hraje významnou roli Web. Textový obsah Webu je
zdrojem, který chtějí uživatelé snadno použít pro konzultace a vyhledávání. Výzvy v této
oblasti zahrnují zejména sumarizaci dokumentů, personalizované vyhledávání a
doporučující systémy. Sociální struktury tvořené přes Web, reprezentované hlavně on-line
aplikacemi sociálních sítí, jako jsou Facebook, LinkedIn nebo Twitter, intenzivně přispívají
k Big Data. Tyto sítě umožňují interakce uživatelů v rámci platformy sociální sítě a
vytvářejí rozsáhlé a dynamické grafy vyžadující speciální datové struktury a prostředky pro
dotazování.
Big data se objevují v těchto kontextech:
 velké kolekce dat v tradičních DW nebo databázích,
 podniková data z velkých newebových společností, které pracují s internetovými
transakcemi,
 data z velkých webových společností, které poskytují sociální sítě a média,
 data získaná a/nebo zasílaná prostřednictvím mobilních zařízení,
 proudy dat generované vzdálenými senzory a dalším IT hardwarem,
 datové archivy z e-science (výpočetní biologie, bioinformatika, genomika a
astronomie),
 současný rozvoj Internetu věcí vedoucí k velkému zatížení sítí následnému zvýšení
nároků na ukládání odpovídajících dat.
Zvaná přednáška
5
Typickým rysem velkých objemů dat je absence jejich charakterizace pomocí schématu dat,
což dělá problémy, když chceme heterogenní kolekce dat integrovat.
2.1 Charakteristiky Big Data
Big Big Data jsou nejčastěji charakterizovány několika V:
 Volume - data škálovaná v rozmezí TB až PB a více,
 Velocity - jak rychle se data se vytváří a jak rychle musí být pro splnění požadavku
zpracována,
 Variety - data jsou v mnoha formátech - strukturovaná, nestrukturovaná, semistrukturovaná, textová, média atd.,
 Veracity – věrohodnost (spolehlivosti, pravdivosti) a predikabilita dat, která jsou ze
své podstaty většinou nepřesná.
První tři V uvádí Gartner v [16], další V přidal D. Snow na svém blogu1 v roce 2012.
Různost typů dat a rychlost jejich vytváření vlastně pracují proti jejich věrohodnosti.
Snižují schopnost čistit data před jejich analýzou a následným rozhodováním. Páté V
zavedli autoři [11]:
 Value - užitečná a cenná data pro byznys.
Vize hodnoty dat zahrnuje vytváření sociální a ekonomické přidané hodnoty na základě
inteligentního využívání, řízení a znovuvyužití datových zdrojů s cílem zvýšit Business
Intelligence (BI).
V literatuře se objevují i další V:
 Vizualization - vizuální reprezentace dat a pohledy pro rozhodování,
 Variability - různé významy/kontexty spojené s danou množinou dat,
 Volatility - jak dlouho data jsou platná a jak dlouho by měla být uložena (od kdy již
konkrétní data nejsou pro současnou analýzu relevantní).
Skutečná otázka zní, zda některá V jsou opravdu definiční a nejen matoucí. Např.
spolehlivost vyjadřuje kvalitu veškerých dat a není tedy pro Big Data definiční vlastností.
Když používáme definici Gardner "Big data jsou velkoobjemová, rychle vznikající a
různorodá informační aktiva, která vyžadují nákladově efektivní, inovativní formy
zpracování informací pro lepší porozumění a rozhodování", vidíme, že zahrnutá 3 V tvoří
pouhou třetinu definice! Druhá část definice se zaměřuje k využití možností infrastruktury a
technologií, resp. toho nejlepší z nich. Společná definice velkých objemů dat je stále
nejasná [27].
2.2 Zpracování Big Data a Big Analytics
Velký objem je nejen problémem pro ukládání dat, ale ovlivňuje také Big Analytics.
S nárůstem složitosti dat je rovněž složitější i jejich analýza. Chcete-li využívat Big Data,
musíme škálovat jak infrastrukturu, tak i standardní techniky jejich zpracování. Zpracování
Big dat zahrnuje interaktivní zpracování, zpracování dat v klidu (at rest) pro podporu
rozhodování a zpracování dat v pohybu (in motion) v reálném čase, což se obvykle provádí
pomocí systémů řízení proudů dat (např. [19]). Nedílnou dimenzí dat v proudu je čas, což
ovlivňuje jejich zpracování. Analytik nemůže data poté, co proud proběhl, znovu
analyzovat. Rychlost může být také problémem, protože hodnota analýzy (a často i dat) se
snižuje s časem. Pokud je potřeba více průchodů proudu, údaje musí být vloženy do DW,
1
http://dsnowondb2.blogspot.cz/
6
Big Data: jejich ukládání, zpracování a použití
kde lze provést další analýzy. Data tak mohou být uskladněna relativně tradičním způsobem
nebo jsou uložena a zpracována pomocí levných systémů, jako jsou např. NoSQL databáze.
Big Analytics slouží k proměňování informací ve znalosti pomocí kombinace stávajících
a nových přístupů. K souvisejícím technologiím patří:
 správa dat (uvažující nejistotu, zpracování dotazu v téměř reálném čase, extrakci
informací, explicitní správu časové dimenze),
 nové programovací modely,
 strojové učení a statistické metody,
 komponentové architektury systémů ukládání a zpracování dat,
 vizualizace informací.
Big Data jsou často zmiňována pouze v souvislosti s BI, nicméně nejen vývojáři BI, ale
také vědci v e-science analyzují velké kolekce dat. Výzvou pro počítačové odborníky nebo
datové vědce je poskytnout těmto lidem nástroje, které mohou efektivně provádět složitou
analytiku s přihlédnutím ke zvláštní povaze zpracování velkých objemů dat. Je důležité
zdůraznit, že Big Analytics nezahrnuje pouze fáze analýzy a modelování. V úvahu se často
bere zkreslený kontext, heterogenita dat a interpretace výsledků. Všechny tyto aspekty
ovlivňují škálovatelné strategie a algoritmy, proto jsou zapotřebí účinnější kroky
předzpracování (filtrování a integrace) a pokročilé paralelní výpočetní prostředí.
Kromě těchto spíše klasických témat dolování velkých objemů dat se v posledních letech
objevily další zajímavé problémy, např. rozpoznávání pojmenovaných entit. Aktuální je i
analýza názorů a mínění (např. pozitivní, negativní, neutrální) a jejich dolování (sentiment
analysis) jako témata využívající metody vyhledávání informací a analýzy webových dat.
Specifickým problémem je hledání a charakterizace rozporů na základě názorů a mínění.
Porovnávání vzorů grafů se běžně používá při analýze sociálních sítí, kde grafy např.
zahrnují miliardu uživatelů a stovky miliard odkazů. V každém případě pocházejí hlavní
problémy současných technik dolování dat používaných pro Big Data z jejich nedostatečné
škálovatelnosti a paralelizace.
3 Architektury ukládání dat
V této sekci ukážeme dvě základní architektury pro správu a ukládání dat: tradiční
univerzální architekturu, na které jsou založeny běžné komerční databázové produkty, a
architekturu softwarového zásobníku Hadooop, dnes nejznámějšího přístupu v souvislosti
s Big Data.
Tabulka 1. SŘBD s pětivrstvou hierarchií zobrazení
L5
L4
L3
L2
L1
Úroveň abstrakce
neprocedurální
nebo algebraický přístup
záznamově-orientovaný
navigační přístup
management záznamů a
přístupových cest
Objekty
tabulky, pohledy, řádky
Pomocná zobrazení dat
popis logického schématu
záznamy, množiny,
hierarchie, sítě
fyzické záznamy,
přístupové cesty
řízení propagace
management souborů
segmenty, stránky
soubory, bloky
popis logického a fyzického
schématu
tabulky volného prostoru,
tabulky překladů
databázových klíčů
buffery, tabulky stránek
direktoráře
Zvaná přednáška
7
3.1 Univerzální architektura SŘBD
Tabulka 1 ukazuje univerzální architekturu SŘBD založenou na modelu mapování pěti
vrstvách abstrakce [14]. V praxi relačních SŘBD je architektura zapouzdřena spolu
s použitím jazyka SQL v L1. Stejný model může být použit v případě distribuovaných
databází na každém uzlu sítě spolu s propojovací vrstvou odpovědnou za komunikaci,
adaptace nebo zprostředkovatelské služby. Typický paralelní relační SŘBD s architekturou
"sdílení ničeho" lze rovněž popsat pomocí této architektury. Vrstvy L1-L4 jsou přítomny
obvykle na každém počítači v klastru. Typickou vlastností univerzální architektury je, že
uživatelé mohou vidět pouze nejvyšší (SQL) vrstvu. Počet vrstev v univerzální architektuře
je často redukován a vede ke známému třívrstvému modelu.
Vývoj ve 3. tisíciletí ukázal, že běžné databázové technologie (jak centralizované tak
distribuované) nejsou pro správu datových zdrojů generujících Big Data v rozsahu Webu
vhodné. Snad nejdůležitějším problémem tradičních databází v prostředí Webu je obtížná
škálovatelnost. Vertikální škálování (nazývané angl. scale-up), tj. přidávání nových a
drahých velkých serverů, bylo nahrazeno rozdělením databáze na více levných strojů
přidávaných dynamicky k síti. Toto tzv. horizontální škálování (také angl.. scale-out) může
zřejmě zajistit škálovatelnost účinnějším a levnějším způsobem. Data jsou distribuována
horizontálně v síti, což v případě tabulkových dat znamená do skupin řádků. Vertikální
dělení nebo kombinace obou stylů jsou používány také. Horizontální distribuce dat
umožňuje rozdělit výpočet do souběžně zpracovávaných úkolů. Ukážeme, že umístit více
segmentů dat na různých strojích je snadnější implementovat pro NoSQL databáze, protože
integrita, kromě té programované v aplikaci, není vyžadována. Horizontální distribuce
používá architekturu "sdílení ničeho", tj. každý server má svá vlastní data a procesor. Více
databází je v tomto případě sjednoceno i na aplikační vrstvě. Může být použito i MPP, tedy
jeden SŘBD s distribuovanou pamětí.
3.2
Softwarový zásobník Hadoop
Typicky vrstvená architektura softwaru Hadoop často používaná v NoSQL prostředí má
také třívrstvý model, vypadá však trochu jinak než v tradičních databázích. Open source
software Hadoop je založen na frameworku MapReduce [10] a HDFS. Hadoop se používá
jako vysoce škálovatelná MapReduce platforma pro aplikace náročné na data. Složitost
úloh pro zpracování dat v těchto architekturách je díky MapReduce minimalizována. Je
zřejmé, že přístup není snadno realizovatelný pro libovolný algoritmus a libovolný
programovací jazyk. MapReduce inspirovaný funkcionálním programováním umožňuje
realizovat přirozeným způsobem např. násobení řídkých matic vektorem. Na druhé straně
efektivní provádění relační operace spojení v MapReduce vyžaduje zvláštní přístup jak
k distribuci dat, tak k indexování (viz [23]). Ve verzi Apache Software Foundation se nad
HDFS NoSQL nachází databáze HBase2 a další komponenty (viz tabulku 2 vytvořenou na
základě [3]). Existují i další podobné architektury stojící na HDFS, např. BDAS (Berkeley
Data Analytics Stack)3 vhodný zvláště pro Big Analytics.
Významný rozdíl softwarového zásobníku Hadoop od univerzální SŘBD architektury je,
že v jednotlivých vrstvách můžeme k datům přistupovat pomocí tří různých sad nástrojů.
Střední vrstva - Hadoop MapReduce systémový server slouží pro dávkovou analytiku
s úlohami MapReduce (M/R). K dispozici je datové úložiště HBase jako vrstva založená na
datovém modelu klíč-hodnota (viz Sekce 4) s operacemi Get/Put na vstupu. Z nevyšší
2
3
https://hbase.apache.org/
https://amplab.cs.berkeley.edu/software/
8
Big Data: jejich ukládání, zpracování a použití
vrstvy jsou pro uživatele k dispozici jazyky vyšší úrovně HiveQL [29], PigLatin [12] a Jaql
[2]. Jazyk HiveQL je podobný SQL a umožňuje realizovat neprocedurální datovou
analytiku (s konstruktem SELECT-FROM-GROUP BY). Jaql je deklarativní skriptovací
jazyk pro analýzu velkých kolekcí semistrukturovaných dat. Využití deklarativních jazyků
snižuje velikost kódu řádově a umožňuje distribuované nebo paralelní provedení
požadavků. Pig Latin není deklarativní, programy v něm jsou sekvence přiřazení podobné
prováděcím plánům známým z relačních SŘBD.
Tabulka 2. Třívrstvý softwarový zásobník Hadoop ve verzi Apache Software Foundation
L5
L2-L4
L1
Úroveň abstrakce
neprocedurální přístup
záznamově-orientovaný
navigační přístup
management záznamů a
přístupových cest
řízení propagace
management souborů
Data processing
HiveQL/PigLatin/Jaql
M/R úlohy
Hadoop MapReduce
Dataflow Layer
Operace Get/Put
HBase uložiště typu
klíč-hodnota
HDFS
4 NoSQL databáze
Pro ukládání a zpracování velkých kolekcí dat jsou často používány NoSQL databáze.
NoSQL znamená "ne pouze SQL" nebo "žádné SQL vůbec", což dělá tuto kategorii
databází velmi různorodou a ne příliš jasně specifikovatelnou. NoSQL databáze, jejichž
vývoj začíná od konce 90. let, poskytují v porovnání s tradičními relačními databázemi
jednodušší škálovatelnost a vyšší výkon. Popíšeme stručně jejich datové modely,
identifikujeme schopnosti transakčního zpracování s následnou diskusí jejich použitelnosti
pro zpracování Big Data. Detailnější diskusi NoSQL je věnován v české literatuře např.
článek [20], ve slovenštině [28].
4.1 Datové modely používané v NoSQL databázích
To, co je hlavní klasických přístupů k databázím - (logický) datový model - je v NoSQL
databázích popsáno spíše intuitivně, bez jakýchkoliv formálních základů. Terminologie
NoSQL je také velmi rozmanitá a rozdíl mezi konceptuálním a databázovým pohledem na
data je většinou rozmazaný.
Nejjednodušší NoSQL databáze nazývané uložiště typu klíč-hodnota obsahují množinu
dvojic (klíč, hodnota). Klíč jednoznačně identifikuje hodnotu (typicky řetězec, ale také
ukazatel, kde je hodnota uložena). Hodnota může být dokonce seznamem dvojic (jméno,
hodnota) (např. v Redis4). Operace pro přístup k datům, typicky get a put, fungují pouze
prostřednictvím klíče. Ačkoliv jde o velmi efektivní a škálovatelný přístup v implementaci,
nevýhoda příliš jednoduchého modelu dat může být pro takové databáze podstatná. Nejsou
ovšem nutné NULL hodnoty, neboť ve všech případech tyto databáze nepoužívají schéma.
Ve složitějších přístupech ukládá NoSQL databáze množinu dvojic (jméno, hodnota) do
skupiny, tj. řádku adresovaného pomocí klíče. Pak mluvíme o sloupcově-orientované
NoSQL databáze. Do skupin mohou být přidávány nové sloupce, tj. dvojice (jméno,
4
https://hbase.apache.org/
Zvaná přednáška
9
hodnota). K dispozici je i další úroveň struktury nazývaná, např. v Cassandra5,
supersloupec. Supersloupec obsahuje vnořené (pod)sloupce. Přístup k datům pomocí
operací get a put je vylepšen použitím názvů sloupců.
Nejobecnější datové modely patří do dokumentově-orientovaných NoSQL databází. Jsou
stejné jako úložiště typu klíč-hodnota, párují však každý klíč s libovolně složitou datovou
strukturou připomínající semistrukturovaný dokument. Pro prezentaci těchto datových
struktur je obvykle používán formát JSON (JavaScript Object Notation). JSON je binární a
typovaný datový model, který podporuje základní datové typy a objekty – neuspořádané
množiny dvojic (jméno, hodnota), přičemž hodnota může být strukturovaná (pole). JSON je
podobný XML, je ale menší, rychlejší a jednodušší pro parsování než XML. CouchDB6 je
založen na JSON. MongoDB7 používá BSON (binární JSON). Jeho typy tvoří
podmnožinou typů JSON. Dotazování nad daty v dokumentu je možné i jinými způsoby
než pomocí klíče (nad výsledky je možné provádět operace selekce a projekce).
Zdá se, že všechny uvedené datové modely jsou v podstatě typu klíč-hodnota. Odlišují se
především v možnostech agregace dvojic (klíč, hodnota) a zpřístupňování těchto hodnot.
Nejznámější NoSQL databáze pak mohou být podle použitého datového modelu
klasifikovány jako:
 úložiště typu klíč-hodnota: SimpleDB8, Redis, Memcached9, Dynamo10,
Voldemort11,
 sloupcově-orientované: BigTable [7], HBase, HyperTable12, CASSANDRA,
PNUTS [8],
 dokumentově-orientované: MongoDB, CouchDB.
Rovněž grafové databáze (např. [24]) jsou často považovány za kategorii NoSQL. Jejich
datové modely se liší podle typu grafu (orientované, ohodnocené, s atributy uzlů a hran,
multigrafy, hypergrafy). Jejich nativní implementace umožňují k uzlu najít rychle jeho
sousedy, využívají speciální metody indexace. Využívají se i různé strategie rozdělování
grafu v distribuovaném prostředí vhodné pro velké grafy (Big Graphs), grafové dotazovací
jazyky určené pro jednotlivé typy grafů a efektivní metody vyhodnocování dotazů
(průchody grafem, dotazy na hledání podgrafů a nadgrafů, podobnost grafů apod.).
Z četných dostupných produktů grafových SŘBD jmenujme alespoň Neo4j13 a
InfiniteGraph14.
Některé NoSQL databáze jsou databáze typu in-memory, což znamená, že abychom
dosáhli rychlejší přístup, je většina dat uložena ve vnitřní paměti počítače. Nejrychlejší
NoSQL úložiště, jako Redis a Memcached, jsou omezeny celé na vnitřní paměť, na druhé
straně zachovávají perzistenci na disku.
Seznam NoSQL databází popsaný na webové stránce15 obsahuje 150 položek, včetně
objektově-orientovaných, XML, grafových a dalších.
5
http://cassandra.apache.org/
http://couchdb.apache.org/
7 https://www.mongodb.org/
8 http://aws.amazon.com/simpledb/
9 http://memcached.org/
10 http://aws.amazon.com/dynamodb/
11 http://www.project-voldemort.com/voldemort/
12 http://hypertable.org/
13 http://www.neo4j.org/
6
14
http://www.objectivity.com/infinitegraph
15
http://nosql-database.org/
10
Big Data: jejich ukládání, zpracování a použití
4.2 Zpracování transakcí v NoSQL databázích
V komunitě NoSQL databází je zvláštní pozornost zaměřena na konzistenci dat. Transakční
zpracování v tradičních relačních SŘBD je založeno na vlastnostech ACID. Konzistenci
v těchto databázích říkáme silná konzistence. V NoSQL databázích nejsou vlastnosti ACID
realizovány v plném rozsahu, databáze může být jen případně nebo slabě konzistentní.
V distribuovaných architekturách pro ukládání a zpracování dat se uvažuje trojice
požadavků: konzistence (C), dostupnost (A) a tolerance k rozdělení sítě (P), krátce CAP.
 Konzistence znamená, že pokud jsou data zapsána, každý, kdo čte z databáze, bude
vždy vidět nejnovější verzi dat. To je vlastně ekvivalentní mít jedinou
aktualizovanou kopii dat. Pojem se liší od konzistence v ACID. C v CAP je ostře
menší než C v ACID.
 Dostupnost znamená, že můžeme vždy očekávat, že každá operace obdržená
nechybujícím uzlem musí vést k obdržení výsledku (nebo chyby). Vysoká
dostupnost se obvykle dociluje pomocí velkého počtu fyzických serverů, které se
prostřednictvím sdílení dat mezi databázovými uzly a replikacemi tváří jako jedna
databáze.
 Tolerance k rozdělení sítě znamená, že z databáze lze stále číst a zapisovat do ní, i
když některé její části jsou v případě chyby sítě nepřístupné.
Podle teorému CAP [4], [13] je pro jakýkoliv systém sdílení dat nemožné všechny tyto
tři požadavky současně zajistit. Zvláště v internetových aplikací založených na
horizontálním škálování a předpokladu P je třeba se rozhodnout mezi C a A. Tj. nastávají
tyto případy:
1. C je klíčová a A je maximalizována. Výhodou silné konzistence, což připomíná
ACID transakce, znamená vývoj aplikací a řízení správy datových služeb mnohem
jednodušším způsobem. Jinak musí být implementována složitá aplikační logika,
která detekuje a řeší nekonzistence.
2. Prioritu má A a maximalizováno je C. Dát přednost A má spíše ekonomické
opodstatnění. Nedostupnost služby totiž může znamenat finanční ztráty
(připomeňme např. současné požadavky na garanci dostupnosti 99,9 %!).
V nespolehlivém systému založeném na teorému CAP nelze A plně zaručit. Pro její
zvýšení je nutné rozvolnit C. Korporátní cloudové databáze preferují C nad A a P.
Tabulka 3 ukazuje, jak různé NoSQL databáze řeší tyto problémy.
Tabulka 3. Preference konzistence a dostupnosti
CP
AP
Redis, BigTable, HBase, HyperTable, MongoDB
Dynamo, Voldemort, CASSANDRA, Memcached, PNUTS, CouchDB
Současné transakční modely používané ve webových distribuovaných replikovaných
databázích využívají vlastností BASE (Basically Available, Soft state, Eventually
consistent) [22]. Dostupnost v BASE odpovídá dostupnosti v CAP teorému. Aplikace
pracuje v podstatě po celou dobu (B), nemusí být konzistentní po celou dobu (S), ale
paměťový systém zaručuje pro případ, že žádné nové aktualizace nejsou s objektu
prováděny, že všechny přístupy k objektu vrátí nakonec poslední aktualizované hodnoty
(E). Simple DB např. potvrdí klientovi zápis před tím, než je zápis rozšířen do všech replik.
Jinými slovy řečeno, pokud opustíme silnou konzistenci, můžeme dosáhnout lepší
dostupnost, což významně zlepší škálovatelnost databáze. To může být v souladu
s databázovou praxi, kde jsou ACID transakce také požadovány pouze v určitých
případech. Ve známém příkladu s bankomaty by jistě měla mít přednost silná konzistence,
Zvaná přednáška
11
v praxi je však dostupnost služby přednější. Podobně v on-line sociálních sítí je určité
množství chyb v datech přípustné.
Analyzujeme-li NoSQL databáze můžeme najít i sofistikovanější přístupy ke
konzistenci:
 laditelná konzistence (např. v Cassandra),
 nastavitelná konzistence (např. CP nebo AP v NoSQL databázi firmy Oracle).
Laditelná konzistence znamená, že její stupeň může být ovlivněn vývojářem aplikace.
Pro operaci čtení nebo zápisu pak klientská aplikace rozhodne, jak konzistentní by měla
požadovaná data být. To umožňuje použít SŘBD Cassandra v aplikacích se zpracováním
transakcí v reálném čase.
Přijetí CAP teorému znamená, že návrh distribuovaného systému vyžaduje hlubší přístup
závislý na aplikacích a technických podmínkách. CAP např. ignoruje latenci, která je
s rozdělením sítě nedílně spjata. Problematikou teorému CAP, jeho mnohdy chybnými
intepretacemi a použitím v různých prostředích se zabývá článek [5]. Např. pro zpracování
velkých objemů dat na počítači v sítí datových center, jsou poruchy v síti minimalizovány.
Pak můžeme s vysokou pravděpodobností dosáhnout jak vysoké C tak P.
NoSQL lze vhodně použít pro nerelační distribuované systémy, které se nepokoušejí
poskytovat ACID záruky.
5 Big Data s NoSQL, Hadoop a nové architektury
V této kapitole se pokusíme analyzovat klady a zápory diskutovaných nástrojů v kontextu
Big Data a ukážeme další možnosti některých současných přístupů.
5.1 Použitelnost NoSQL databází
Použitelnost NoSQL databází je úzce spjata s neobvyklými a často nevhodnými jevy těchto
nástrojů:
 mají malou nebo žádnou podporu pro modelování dat, vývojáři tedy nevytvářejí
logický datový model,
 návrh databáze je řízený spíše dotazem,
 data nejsou omezena integritními omezeními,
 v různých aplikacích mají rozdílné chování,
 neexistuje pro ně standardní dotazovací jazyk,
 některé z nich jsou vyspělejší než jiné, ale každý z nich se snaží řešit podobné
problémy,
 migrace z jednoho systému do druhého může být složitá.
I když patří do jedné kategorie, mohou být dva NoSQL nástroje velmi odlišné. Např.
CouchDB používá dotazovací jazyk nízké úrovně a škálovatelnost prostřednictvím
replikací. Mongo má bohatý deklarativní dotazovací jazyk a škálovatelnosti dosahuje
prostřednictvím horizontální distribuce dat.
NoSQL databáze může být užitečná v aplikacích, které nevyžadují transakční sémantiku,
např. adresáře, blogy, nebo systémy řízení obsahu (CMS). Jsou rovněž vhodné pro
 indexování velkého počet dokumentů,
 pro provoz stránek na webových místech s vysokým provozem,
 doručování médií proudovým způsobem,
 správu dat v aplikacích sociálních sítí.
12
Big Data: jejich ukládání, zpracování a použití
NoSQL databáze může být také dobrou platformou pro Big Analytics, např. pro analýzu
velkých objemů dat v reálném čase. Např. analýza webových logů a analýza proudů
kliknutí patří k dobře paralelizovatelným problémům, které lze s NoSQL databázemi řešit.
Je to možné z řady důvodů:
 prosazování schémat a zamykání na úrovni řádků jak je běžné v relačních SŘBD
zbytečně komplikuje tyto aplikace,
 absence vlastností ACID umožňuje výrazné zrychlení a decentralizaci NoSQL
databází.
Naopak nevhodné jsou NoSQL databáze pro aplikace vyžadující funkce běžné na
podnikové úrovně (ACID, bezpečnost a další funkčnost technologie relačních SŘBD).
Např. sloupcově-orientované NoSQL databáze nejsou vhodné pro
 většinu aplikací DW/BI,
 a mnoho tradičních webových aplikací.
Mají málo funkcí pro ad-hoc dotazování a analýzu, dokonce i jednoduchý dotaz
vyžaduje značné zkušenosti s programováním. Např. HBase umožňuje rychlé analytické
dotazy, jde to ale pouze na úrovni sloupce.
Problémy jsou ale i na druhé straně. Běžně používané nástroje BI obvykle neposkytují
připojení k NoSQL.
5.2 Použitelnost Hadoopu
Mnoho databází NoSQL je postaveno na vrcholu jádra Hadoop a jejich výkon tak závisí na
M/R úlohách. MapReduce je technika stále velmi jednoduchá ve srovnání s těmi, které se
používají v oblasti distribuovaných databází. MapReduce se dobře hodí pro aplikace, které
analyzují prvky velkého datového souboru nezávisle; nicméně aplikace, jejichž přístupy
k datům jsou složitější, musí být postavena na několika voláních kroků metodami Map a
Reduce. Výkon takového návrhu je závislý na celkové strategii algoritmu, jakož i na povaze
a kvalitě bezprostřední reprezentace dat a jejich uložení v těchto krocích. Nové výzvy pro
systémy založené na MapReduce představují např. i složité výpočty v aplikacích e-science.
Protože vědecké údaje je často velmi nepravidelně rozložená a složitost runtime úlohy
reduktoru je obvykle vysoká, výsledné zpracování M/R úloh nemusí být příliš efektivní.
MapReduce není také vhodný pro ad hoc analýzy, ale spíše pro organizované zpracování
dat.
Proti MapReduce mluví více důvodů. Big Analytics vyžaduje často iteracé, které se jen
těžko dosahují v NoSQL databáze založeném na MapReduce. V důsledku toho se objevují
zajímavé úpravy, např. framework HaLoop [6], který se podporuje iterace. Samotný
Hadoop je vhodný spíše pro podporu rozhodování.
Problémy s NoSQL se týkají celé jejich architekturu. M. Stonebraker 16 poukazuje na to,
že softwarový zásobník Hadoop má špatný výkon s výjimkou případů, kdy je požadavek
"triviálně paralelní". Důvody pro to mají zázemí v neexistenci indexování, ve velmi
neefektivních operacích spojení v Hadoop vrstvě, "odesílání dat k dotazu" a nikoliv
"odeslání dotazu k datům". Jiným kritizovaným příkladem je Couchbase17, která kopíruje
celý dokument, pokud se změní pouze jeho malá část.
V světě Big Data dominují NoSQL databáze spíše pro operační schopnosti v reálném
čase, tedy pracovní zátěž při interaktivním zpracování, kdy data jsou primárně sbírána a
ukládána. Další třída technologií řeší zátěž objevující se při analytickém zpracování Big
16
17
http://istc-bigdata.org/index.php/no-hadoop-the-future-of-the-hadoophdfs-stack/
http://www.couchbase.com/
Zvaná přednáška
13
Data (Big Analytics), a to s řešeními pomocí MPP systémů a MapReduce. NoSQL se sice
stávají populární i pro Big Analytics, ale se spoustou nevýhod, např., těžkopádným
výpočetním modelem, nízkoúrovňovými informacemi o zpracovávaných datech apod.
Výjimky se však vyskytují, např. knihovna Mahout18 realizovaná nad Hadoop nabízí
algoritmy automatického strojového učení a dolování dat pro hledání skrytých trendů a
další často netušené či dosud neuvažované možnosti.
Big Data jsou často spojována s cloud computingem. Cloud computing obecně znamená
výpočetní zdroje, které jsou dodávány jako služba, typicky přes internet. NoSQL databáze
používané v tomto prostředí jsou proto většinou pro skladování a zpracování velkých
objemů dat dostačující. Jestliže však uvažujeme složitější cloudové architektury, NoSQL
databáze by neměla být v cloudu jedinou možností.
5.3 Směrem k novým architekturám pro zpracování Big Data
Pro řešení výzvy Big Analytics se v posledních letech objevila nová generace
škálovatelných technologií pro správu dat. Systém pro správu velkých dat (Big Data
Management Systems - BDMS) je vysoce škálovatelná platforma, která podporuje
požadavky na zpracování velkých objemů dat. Zástupcem BDMS je systém ASTERIX
[30]. Jde o plně paralelní systém s možností uložení, přístupu, indexace, dotazování,
analýzy a publikace velkého množství semistrukturovaných dat. Jeho architektura
znázorněna v tabulce 4 je podobná architektuře z tabulky 2, ale s vlastní spodní vrstvou
zvanou Hyracks, která řídí paralelní datové výpočty. Vrstva algebry Algebrics je uprostřed,
nad ní je paralelní systém pro řízení dat ASTERIX. ASTERIX QL [1] je jazyk umožňující
skládání operací (připomíná XQuery), který pro analytické účely používá speciální
techniky, např. operaci fuzzy spojení. Softwarový zásobník Asterix zahrnuje rovněž vrstvu
pro kompatibilitu s Hadoop, software Pregelix pro analýzu grafů a další funkce.
Tabulka 4. Třívrstvý softwarový zásobník Asterix
L5
Úroveň abstrakce
neprocedurální přístup
Asterix QL
L2-L4
algebraický přístup
ASTERIX
SŘBD
L1
management souborů
Zpracování dat
HiveQL, Piglet, …
kompilátory
vyšších PL
M/R úlohy Pregel úlohy
Algebricks
Hadoop M/R
Pregelix
algebraická
kompatibilita
vrstva
datová paralelní platforma Hyracks
Hyrack
úlohy
Vývoj NoSQL databází v mnoha případech dospěl do stavu, že potřeba SQL se stala
vážnější, než se na počátku jejich vývoje zdálo. Jedním z řešení je tedy poskytnout nad
NoSQL databází vrstvu s SQL. Jiná řešení navrhují zlepšení výkonu a škálovatelnosti
relačních databází. Kategorie paralelních databází nazvaná v r. 2011 NewSQL databáze19
zastřešuje oba tyto přístupy a vyznačuje se následujícími vlastnostmi:
 jsou škálovatelné horizontálně v architekturách „sdílení ničeho“,
18
19
http://mahout.apache.org/
http://451research.com/report-long?icid=1651
14
Big Data: jejich ukládání, zpracování a použití
 rozdělení dat je transparentní,
 nadále poskytují záruku ACID,
 interakce aplikací s databází je primárně pomocí SQL (včetně operace spojení),
 pro řízení souběžného zpracování nepoužívají zámky,
 poskytují vyšší výkon než tradiční systémy.
NewSQL SŘBD lze kategorizovat jako
 obecné SŘBD: Spanner [9] a F1 [25], ClustrixDB20, NuoDB21, VoltDB22
 hybridy kombinující Hadoopa relační technologii: HadoopDB23 (paralelní systém
s konektory pro Hadoop), Vertica24,
 podporující více datových modelů: FoundationDB 25.
NewSQL SŘBD poskytují podstatně vyšší výkon a škálovatelnost ve srovnání
s tradičními SŘBD či Hadoop. Např. srovnání Hadoop a Vertica ukázalo, že vyhodnocení
dotazu pro Hadoop bylo pomalejší o 1-2 řády [18].
Hodně úspěchů některých řešení NewSQL spočívá v nových databázových
architekturách, zejména v přístupu in-memory. Např. MemSQL26 patří k nejrychlejším
NewSQL nástrojům jak při vytváření databáze tak pro vyhodnocování dotazů. V souvislosti
s Big Analytics je většina zástupců NewSQL vhodná pro analýzu ve (skore) reálném čase
prostřednictvím použití technologií, jako je MPP (např. ClustrixDB a Vertica) nebo
ukládání relačních tabulek po sloupcích (Vertica). Je možné namítnout, že relační databáze
používající MPP zde byly již dávno před tím, než započala era Big Data. Kvalitativní rozdíl
je zřejmě ve vícejádrových procesorech a nových řešeních (např. Durable Distributed
Cache (DDC) v NuoDB). Database v NuoDB je množinou in-memory objektů, které
mohou přetékat na disk, je-li to třeba, nebo být zálohovány v perzistentním úložišti.
6 Závěr
Efektivní ukládání a zpracování dat databázovým způsobem jsou pouze prvním
předpokladem pro Big Analytics. Viděli jsme, že NoSQL databáze částečně přispívají
k tomuto cíli. Jejich rozmanitost a rozdílné vlastnosti tvoří základ ke klíčovým problémům
s aplikací NoSQL v praxi:
 volba správného produktu, návrh vhodného architektury pro danou třídu aplikací,
 zajištění, že budou k dispozici zkušení vývojáři aplikace.
S. Edlich27 dokonce navrhuje výběr NoSQL databáze až po zodpovězení asi 70 otázek
v 6 kategoriích a zhotovení prototypu. Navzdory tomu, že některé firmy nabízejí referenční
modely pro zpracování velkých objemů dat (např. Oracle), jeden obyčejný je již k dispozici
nyní. Takový model by měl obsahovat vrstvy: (1) datovou, (2) integrační, (3) pro analýzu a
(4) vrcholovou vrstvu pro prediktivní a normativní analýzu. Zde jsme se zabývali vrstvami
(1) a (3) a jejich vzájemnou silnou korelaci.
Techniky dolování dat, již široce používané v (3) k extrakci častých korelací hodnot jak
ze strukturovaných a semistrukturovaných souborů dat v BI, jsou zajímavými řešeními pro
20
http://www.clustrix.com/
http://www.nuodb.com/
22 http://voltdb.com/
23 http://db.cs.yale.edu/hadoopdb/hadoopdb.html
24 http://www.vertica.com/
25 https://foundationdb.com/
26 http://www.memsql.com/
27 http://www.infoq.com/presentations/Choosing-NoSQL-NewSQL
21
Zvaná přednáška
15
Big Analytics také, musí ale být rozšířeny a přizpůsobeny. Hlavní dnešní výzvy pro
výzkum v oblasti zpracování velkých objemů dat zahrnují:
 zlepšení kvality a škálovatelnosti metod dolování dat. Procesy formulace dotazu zejména při absenci schématu - a prezentace a interpretace získaných odpovědí
může být netriviální.
 transformaci obsahu do strukturovaného formátu pro pozdější analýzu, protože
mnoho dat dnes není nativně ve strukturovaném formátu.
 zlepšení výkonu příslušných aplikací a posun směrem k „No Hadoop" databázím, ve
kterých je odstraněna vrstva MapReduce.
Druhá výzva znamená nejen krok k integraci, ale týká se i filtrování Big Dat. Např.
v projektech zpracování rozsáhlých dat digitálních přehlídek oblohy se můžeme posunout
pomocí vhodné transformace dat z rozsahu TB do desítek GB.
Závěrečná výzva se týká role člověka v Big Analytics. Zatím je proces dolování řízen
analytikem či datovým vědcem. V závislosti na aplikačním scénáři ten určuje část dat,
odkud mohou být užitečné vzory extrahovány. Lepším přístupem by byl automatický
proces dolování s cílem získat přibližné syntetické informace jak o struktuře, tak o obsahu
velkého množství dat. Toto je zatím největším problémem v Big Data.
Poděkování
Tato práce byla podpořena agenturou GACŘ (grant No. P103/13/08195S).
Literatura
1.
Behm, A., Borkar, V. R., Carey, R. M., Grover, J., et al.: ASTERIX: Towards a Scalable,
Semistructured Data Platform for Evolving-world Models. Distributed and Parallel Databases,
29(3) (2011) 185–216.
2. Beyer, K., Ercegovac, V., Gemulla, R., Balmin, A., Eltabakh, M., Kanne, C.-Ch., Ozcan, F.,
Shekita, E.J: Jaql: A scripting language for large scale semistructured data analysis. PVLDB
4(12) (2011) 1272–1283.
3. Borkar, V., Carey, M.-J., Chen Li, Ch.: Inside "Big Data management": ogres, onions, or
parfaits? Proceedings of EDBT Conference, Berlin, Germany (2012) pp. 3-14.
4. Brewer, E.A.: Towards robust distributed systems. Invited Talk on PODC 2000, Portland,
Oregon, 16-19 July, 2000.
5. Brewer, E.A.: CAP twelve years later: how the ‘rules’ have changed. Computer 45(2) (2012) 29.
6. Bu, Y., Howe, Y., Balazinska, M, Ernstm M.D.: The HaLoop approach to large-scale iterative
data analysis. The VLDB Journal 21(2) (2012) 169-190.
7. Chang, F., Dean, J., Ghemavat, S., et al: BigTabulka: A Distributed Storage System for
Structured Data. ACM Transactions on Computer Systems (TOCS), 26(2) (2008) Article No. 4.
8. Cooper, B.F., Ramakrishnan , R., Srivastava, U., et al: PNUTS: Yahoo!'s hosted data serving
platform. Journal Proceedings of the VLDB Endowment 1(2) (2008) 1277-1288.
9. Corbett, J.C., Dean, J.C., Epstein, M. et al: Spanner: Google’s Globally-Distributed Database. In:
Proc. of 10th USENIX Symposium on Operation Systems Design and Implementation (OSDI
2012), Hollywood (2012) 261-264.
10. Dean, D., Ghemawat, S.: MapReduce: Simplified Data Processing on Large Clusters.
Communications the ACM 51(1) (2008) 107-113.
11. Gamble, M. and Goble, C.: Quality, Trust and Utility of Scientific Data on the Web: Toward a
Joint model. In: Proc. of WebSci’11 Conference, Koblenz, Germany, 2011.
16
Big Data: jejich ukládání, zpracování a použití
12. Gates, A., Natkovich, O., Chopra, S., et al: Building a high level dataflow system on top of
MapReduce: The pig experience. PVLDB 2(2) (2009) 1414–1425
13. Gilbert, S., Lynch, N.: Brewer’s conjecture and the feasibility consistent, available, partitiontolerant web services. ACM SIGACT News, 33(2) (2002) 51-59.
14. Härder, T., Reuter, A.: Concepts for Implementing and Centralized Database Management
System. In: Proc. Int. Computing Symposium on Application Systems Development, Nürnberg,
B.G. Teubner-Verlag (1983) 28-60.
15. Kelly, J.: Big Data: Hadoop, Business Analytics and Beyond, Wikibon, 2014
http://wikibon.org/wiki/v/Big_Data:_Hadoop,_Business_Analytics_and_Beyond (accessed 20
February 2014).
16. Laney, D.: 3d data management: Controlling data volume, velocity and variety. Gartner.
Retrieved, 6, 2001.
17. Manyika, J., Chui, M., Brown, B., et al: Big data: the next frontier for innovation, competition,
and productivity. McKinsey Global Inst., 2011.
18. Pavlo, A., Paulson, E., Rasin, A., et al: A Comparison of Approaches to Large-Scale Data
Analysis. In: Proc. of SIGMOD’09, June 29–July 2 (2009), 165-178.
19. Pokorný, J., Snášel, V.: Zpracování proudů dat. In: Proc. of the Annual Database Conf.
DATAKON'2006, P. Vojtáš ed., Brno, , Masaryk University Brno (2006) 61-76.
20. Pokorný, J.: NoSQL databáze. In: Proc. of the Annual Database Conf. DATAKON'2011, J.
Zendulka, M. Rychlý (eds.), Mikulov, VUT Brno (2011) 71-82.
21. Pokorny J.: NoSQL Databases: a step to databases scalability in Web environment. International
Journal of Web Information Systems, 9 (1) (2013) 69-82.
22. Pritchett, D.: BASE: an ACID alternative. ACM Queue, May/June (2008) 48-55.
23. Rajaman, A., Ullman, J.D.: Mining of Massive Datasets. Cambridge University Press, 2011.
24. Robinson, I., Webber J., Eifrem E.: Graph Databases - The Definitive Book on Graph
Databases. O'Reilly, 2013.
25. Shute, J., Vingralek, R., Samwel, B., et al: F1: A Distributed SQL Database That Scales. PVLDB
6(11) (2013) 1068-1079.
26. Shvachko, K., Kuang, H., Radia, S., Chansler, R.: The Hadoop Distributed File System, In:
Proceedings of MSST2010, May 2010.
27. Stuart, J., Barker, A.: Undefined By Data: A Survey of Big Data Definitions. CoRR,
abs/1309.5821 (2013).
28. Šeleng, M., Laclavík, M., Dlugolinský, Š.: Dostupné škálovateľné riešenia pre spracovanie
veľkého objemu dát a dátové sklady. In: Proc. of the Annual Database Conf. DATAKON'2011,
J. Zendulka, M. Rychlý (eds.), Mikulov, VUT Brno (2011) 1-22.
29. Thusoo, A., Sarma, J.S., Jain, N., et al: Hive - a warehousing solution over a map-reduce
framework. PVLDB 2(2) (2009) 1626–1629.
30. Vinayak, R., Borkar, V., Carey, M.-J., Chen Li, Ch.: Big data platforms: what's next? ACM
Cross Road 1 (2012) 44-49.
Annotation:
Big Data: jejich ukládání, zpracování a použití
In recent years there has been the development and deployment of highly distributed and scalable data
processing systems in the area called Big Data. New architectures include, for example. Distributed
file systems and NoSQL databases. On the other hand, obvious that Big Data challenges, such as the
complexity of the data, the rate of their occurrence and analytical requirements, solves these funds
only partially. This is particularly noticeable in the network environment where Big Data is part of the
corporate database and are required ACID properties by NoSQL databases generally guaranteed. The
development of so-called. NewSQL databases is therefore up to date, it appears even a new category
of databases - Big Data Management Systems. In this lecture we will discuss these trends and
evaluate some of the current approaches to the treatment and management of Big Data.
Otevřená a propojitelná data – metodiky, postupy,
nástroje a praxe
Dušan CHLAPEK1, Jakub KLÍMEK2, Jan KUČERA1, Martin NEČASKÝ2
1
Katedra informačních technologií, FIS VŠE v Praze
nám. W. Churchilla 4, 130 67 Praha 3
{chlapek,jan.kucera}@vse.cz
2
Katedra softwarového inženýrství, MFF UK Praha
Malostranské nám. 25, 118 00 Praha
[email protected]
Abstrakt. V přednášce budou představeny přístupy k analýze, přípravě, zpracování a
publikaci otevřených a propojitelných dat. Současně bude poskytnut přehled
experimentálně vyvíjených metod, postupů a nástrojů pro přípravu a zpracování
otevřených a propojitelných dat. V přednášce budou prezentovány zobecněné
poznatky a zkušenosti z řady výzkumných i ryze praktických projektů v oblasti
otevřených a propojitelných dat realizovaných v posledních dvou letech.
Klíčová slova: otevřená data, Open Data, propojitelná data, Linked Data, Linked
Open Data, LOD, metodika, postup, nástroj.
1 Úvod
Dle viceprezidentky Evropské komise Neelie Kroesové představují data základní surovinu
digitální ekonomiky [23]. Zejména v souvislosti se zpřístupňováním dat veřejné správy
(VS) k dalšímu využití se dnes často hovoří o tzv. otevřených datech, tj. o datech, která jsou
publikována na internetu ve strojově čitelných formátech a za takových podmínek užití
(licence), která umožňují jejich volné užití (viz [28]). Otevřená data veřejné správy jsou
vnímána jako jeden z klíčových aspektů prosazování konceptu tzv. otevřeného vládnutí, tj.
snahy o transparentnější veřejnou správu a vládnutí založené na spolupráci politiků a
orgánů veřejné správy s podnikateli a občany [2]. Kromě podpory transparentnosti a
otevřeného vládnutí existují studie, které předpokládají značný ekonomický potenciál ve
využití otevřených dat pro tvorbu nových aplikací a služeb (viz např. [13], [40]).
Buchholtzová, Bukowski a Śniegocki pak na základě své analýzy očekávají přínos
současného využití otevřených dat a Big Data pro podporu rozhodování [7].
Otevřená data veřejné správy a jejich využití slibují značné přínosy pro občany, podniky
i samotné orgány veřejné správy. Při jejich publikaci se ale orgány veřejné správy potýkají
s problémy v řadě oblastí. Dle Ubaldiové např. na strategické úrovni není vždy definována
strategie pro otevřená data, postupy publikace a formáty dat se mezi jednotlivými orgány
VS liší, postupy pro hodnocení nákladů a přínosů otevřených dat v současné době ještě
nejsou dostatečně propracovány, pro publikaci otevřených dat nejsou vždy nastaveny
vhodné procesy a odpovědnosti a překážky publikace otevřených dat existují i v právní
oblasti [36]. Kromě toho naplnění očekávaných přínosů otevřených dat může také
vyžadovat změnu přístupu či kultury organizací směrem k větší spolupráci mezi
poskytovateli a uživateli dat.
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 17-37.
18
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
Cílem tohoto příspěvku je diskutovat přístupy k publikaci otevřených a propojitelných
dat a představit existující metodiky pro jejich publikaci. Přístupy k publikaci otevřených dat
diskutované v tomto příspěvku jsou identifikovány na základě analýzy přístupů
k otevřeným datům dvou orgánů veřejné správy z České republiky. Konkrétně Českého
telekomunikačního úřadu (ČTÚ) a České obchodní inspekce (ČOI). Na základě zobecnění
zkušeností z praxe je dále v tomto příspěvku na obecné úrovni představen postup publikace
otevřených propojitelných dat, který byl formulován v rámci projektu COMSODE 1.
Příspěvek je členěn následujícím způsobem. Na úvod navazuje vymezení pojmů
otevřená data a propojitelná data. V další části je uvedena diskuse přístupů k publikaci
otevřených a propojitelných dat. Následuje část věnovaná existujícím metodikám publikace
otevřených a propojitelných dat. Dále je představen obecný postup publikace otevřených
propojitelných dat a následně jsou také diskutovány nástroje pro publikaci a využití
otevřených propojitelných dat. V závěru jsou shrnuty získané poznatky a jsou předestřeny
další výzkumné otázky.
2 Otevřená a propojitelná data
V této kapitole jsou vymezeny pojmy otevřená data (angl. Open Data, zkráceně OD),
propojitelná data (Linked Data, LD), resp. otevřená propojitelná data (Linked Open Data,
LOD).
2.1
Otevřená data
Otevřená data lze dle Open Knowledge Foundation vymezit jako data, která mohou jejich
uživatelé užívat pro libovolné účely a která mohou dále šířit za podmínky, že při užití a
šíření dat bude uveden jejich autor a pokud budou stejná oprávnění pro nakládání s daty
zachována i pro další uživatele [28]. Na základě principů formulovaných The Sunlight
Foundation (viz [33]) vymezuje Koncepce katalogizace otevřených dat VS ČR (dále jen
Koncepce) otevřená data jako data, která jsou [19]:”
1. úplná – data jsou zveřejněna v maximálním možném rozsahu. Rozsah může být
definován právním předpisem, usnesením vlády, příp. poskytovatelem dat.
Například seznam všech nemovitostí s číslem popisným nebo evidenčním v obci
XY, nebo seznam všech památkově chráněných objektů v obci XY.
2. primární (původní) – data, která jsou zveřejněna původcem dat v podobě, v jaké
byla původcem jako primární (původní) vytvořena. Za primární data se považují i
a. referenční údaje ze základních registrů,
b. data z registrů a rejstříků VS,
c. agregovaná data (např. výsledky voleb), pokud není možné zveřejnit data,
z nichž byla provedena agregace,
d. agregovaná data – (např. statistiky nad jinými otevřenými daty), pokud je
uveden způsob agregace a odkaz na zveřejněná primární data, z nichž byla
agregace provedena.
3. zveřejněná bez zbytečného odkladu – zveřejnění dat není zdrženo činnostmi, které
nesouvisí s jejich přípravou; činnosti nezbytné pro publikaci dat jsou provedeny
v čase, který umožní jejich zveřejnění bez nepřiměřeně dlouhé prodlevy od
okamžiku vzniku dat,
1
http://www.comsode.eu/
Zvaná přednáška
19
4.
snadno dostupná – data jsou dostupná a dohledatelná běžnými ICT nástroji a
prostředky,
5. strojově čitelná – data ve formátu, který je strukturovaný takovým způsobem, že
pomocí programové aplikace lze z dat získat žádané (vybrané) údaje,
6. neomezující přístup – data dostupná způsobem, který nediskriminuje jednotlivce
nebo skupinu osob,
7. používající standardy s volně dostupnou specifikací (otevřené standardy) – data
musí být ve formátu, který je volně (bezplatně) dostupný pro libovolné použití
nebo do takovéhoto formátu převoditelný volně (bezplatně) dostupnou aplikací,
8. zpřístupněna za jasně definovaných podmínek užití dat (licence) s minimem
omezení - podmínky musí být jasně a zřetelně definovány a zveřejněny,
9. stále dostupná – data jsou dostupná on-line po dobu uvedenou jejich
poskytovatelem,
10. dostupná uživatelům při vynaložení minima možných nákladů na jejich získání –
poskytovatelé jsou v souvislosti s poskytováním dat oprávněni žádat úhradu
maximálně ve výši, která nesmí přesáhnout náklady spojené s jejich
zpřístupněním uživateli; poskytovatel dat může jednorázově vyžádat i úhradu za
mimořádně náročné pořízení dat, pokud si uživatel zpřístupnění těchto dat
vyžádá.”
Protože ale nemusí být vždy snadné všechny výše uvedené podmínky splnit, rozděluje
Koncepce výše uvedené atributy otevřených dat VS na povinné a nepovinné. Dle [19] musí
data splňovat alespoň podmínky č. 1, 4, 5, 7, 8 a 10, aby byla považována za otevřená.
Zbylé podmínky č. 2, 3, 6 a 9 jsou nepovinné. Koncepce označuje data splňující všech 10
podmínek jako “dobře publikovaná otevřená data” [19].
2.2
Stupně otevřenosti dat
V předcházející části byly představeny vlastnosti, které musí otevřená data splňovat.
Nicméně otevřené datové sady mohou být publikovány v různých formátech. Berners-Lee
formuloval klasifikační schéma pro otevřená data, v rámci kterého je definováno 5 stupňů
otevřenosti v závislosti na tom, jaké formáty dat jsou použity [3]. Toto schéma dále
rozpracoval Hausenblas [17]. Jednotlivé stupně otevřenosti dat (označené počtem
hvězdiček) uvádí tabulka 1.
Tabulka 1: Stupně otevřenosti dat, zdroj: zpracováno dle [17]
Stupeň
otevřenosti
*
**
Vlastnosti dat
 Data poskytována pod otevřenou licencí či podmínkami
užití umožňujícími jejich další užití
 Data poskytována v libovolném formátu
 Data poskytována pod otevřenou licencí či podmínkami
užití umožňujícími jejich další užití
 Data poskytována ve strojově čitelném formátu
Příklad
formátu
PDF
MS Excel
20
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
Stupeň
otevřenosti
Příklad
formátu
Vlastnosti dat
 Data poskytována pod otevřenou licencí či podmínkami
užití umožňujícími jejich další užití
 Data poskytována ve strojově čitelném formátu
 Formát dat je otevřený
 Specifikace formátu je volně dostupná
 Lze využívat zdarma, další využití formátu není
omezeno
 Formát nezávislý na platformě, resp. lze vytvořit
nezávislé implementace pro různé platformy
 Data poskytována pod otevřenou licencí či podmínkami
užití umožňujícími jejich další užití
 Data poskytována ve strojově čitelném formátu
 Formát dat je otevřený
 Jako identifikátory objektů jsou použity URI 2
 Data poskytována pod otevřenou licencí či podmínkami
užití umožňujícími jejich další užití
 Data poskytována ve strojově čitelném formátu
 Formát dat je otevřený
 Jako identifikátory objektů jsou použity URI
 Data jsou pomocí odkazů propojena na jiná související
data
***
****
*****
CSV
RDF3 bez
propojení na
další zdroje
RDF s
propojeními
na další
zdroje
V následující tabulce 2 jsou pak uvedeny výhody a nevýhody jednotlivých stupňů
otevřenosti.
Tabulka 2: Hodnocení stupňů otevřenosti dat, zdroj: zpracováno dle [17]
Stupeň
otevřenosti
*
2
3
Výhody
Nevýhody
 Jednoduchost a relativně nízká
pracnost
 Data není třeba transformovat
 Zaměření pouze na právní
otevřenost
 Uživatelé vědí, že mohou data
dále zpracovávat
 Data může být obtížné využít –
např. potřeba vytěžování
tabulkových dat z PDF
dokumentů
 Příklad: tabulky s údaji
v ročenkách a výročních
zprávách
URI – Uniform Resource Identifier, viz [4]
RDF – Resource Description Framework, viz [22]
Zvaná přednáška
Stupeň
otevřenosti
**
***
****
*****
21
Výhody
Nevýhody
 Relativně jednoduché, pokud
jsou podkladová data již
dostupná ve formátu typu MS
Excel, nebo pokud je lze
takovéhoto formátu jednoduše
uložit
 Data jsou ve formátu, který je
snáze strojově zpracovatelný
 Uživatelé nejsou nuceni používat
aplikace určitého výrobce, aby s
daty mohli pracovat
 Objekty jsou jednoznačně
identifikovány způsobem, který
umožňuje se na ně odkazovat
obdobně jako na HTML stránky
 Lze kombinovat s jinými
datovými sadami na stupních 4 a
5 hvězdiček
 Data jsou propojena na další
související zdroje
 Datům lze přiřadit bohatý
kontext
 Místo opisování referenčních
údajů se lze přímo odkázat na
referenční datové zdroje
 Propojení umožňují uživateli
získat další data, která by
jinak poskytovatel musel
zahrnout do datové sady
 Jednotlivé orgány VS
zodpovídají a udržují své datové
sady, je možné se mezi nimi
odkazovat, není nutné je
duplicitně publikovat na více
místech
 Pokud neexistují volně dostupné
nástroje pro práci se zvolenými
formáty, je uživatel nucen
pořizovat odpovídající SW
nástroje
 Může být nutné data do
otevřeného strojově čitelného
formátu transformovat
 Příprava dat vyžaduje více času a
úsilí – definice schémat pro
tvorbu URI a přiřazení URI
identifikátorů objektům
 Ne všichni v současné době
disponují znalostmi pro publikaci
a zpracování dat v této podobě
 Příprava dat vyžaduje více času a
úsilí – definice schémat pro
tvorbu URI a přiřazení URI
identifikátorů objektům
 Ne všichni v současné době
disponují znalostmi pro publikaci
a zpracování dat v této podobě
 Související datové zdroje musí
být také k dispozici minimálně na
stupni 4 hvězdičky
S rostoucím stupněm otevřenosti dle “5-ti hvězdičkového schématu” [17] roste i
připravenost dat na jejich další strojové zpracování a je usnadněno jejich propojování na
další datové zdroje. Nicméně pokud zdrojová data, která mají být jako otevřená data
publikována, nejsou již dostupná v odpovídajícím formátu, je třeba zdrojová data do
formátu příslušného stupně otevřenosti převést. To může být zdrojem pracnosti spojené
s publikací dat na zvoleném stupni otevřenosti. Zároveň pro publikaci (a využití) dat na
úrovních 4* a 5* jsou také vyžadovány znalosti principů a technologií propojitelných dat
(viz dále).
22
2.3
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
Propojitelná a otevřená propojitelná data
Jak je patrné ze stupňů otevřenosti představených v předcházející části, otevřená data
mohou být publikována v různých formátech. Otevřená data na nejvyšším stupni
otevřenosti (5 hvězdiček) jsou otevřená po právní stránce a zároveň jsou u nich aplikovány
principy propojených dat (Linked Data). Tyto principy jsou následující [3]:
1. pojmenování objektů na webu pomocí URI,
2. použití HTTP URI, které umožňují je vyhledat v prostředí dnešního webu,
3. při vyhledání URI jsou uživateli poskytnuta data o objektu, data jsou poskytnuta
s využitím standardů RDF a SPARQL4,
4. objekty jsou provázány pomocí odkazů mezi HTTP URI, takže je možné
objevovat související objekty.
Hlavní myšlenkou propojených dat je propojit související data na webu pomocí odkazů
obdobně, jako je tomu v případě webových stránek [5]. Na rozdíl od odkazů mezi
webovými stránkami představují ale odkazy mezi propojenými daty tvrzení o vzájemném
vztahu těchto dat [5]. Díky tomu jsou tak data zasazena do kontextu.
Propojitelná data využívají dvou základních standardů. Prvním z nich je obecný formát
RDF (Resource Description Framework) [22]. Druhým z nich je dotazovací jazyk a
protokol SPARQL [42].
Pokud nebude třeba blíže rozlišit, zda se jedná o skutečně propojená data, nebo o data,
která jsou pouze technicky připravena pro propojování, bude pro zjednodušení v dalším
textu používán pouze pojem propojitelná data. Data, která jsou otevřená a zároveň
využívají principů propojených dat, budeme označovat jako otevřená propojitelná data
(ekvivalent anglického pojmu Linked Open Data, zkráceně LOD).
3 Přístupy k publikaci otevřených a otevřených propojitelných dat
Na základě analýzy přístupů k publikaci otevřených dat aplikovaných Českou obchodní
inspekcí (ČOI) a Českým telekomunikačním úřadem (ČTÚ) jsou v této kapitole
představeny dva možné přístupy k publikaci otevřených dat - přístup shora-dolů (top-down)
a zdola-nahoru (bottom-up).
3.1
Otevřená data ČOI
Česká obchodní inspekce (ČOI) publikovala v podobě otevřených dat databázi kontrol,
sankcí a zákazů v září roku 2013 [9]. Tato data byla zvolena pro publikaci v podobě
otevřených dat, jelikož data o kontrolách jsou častým předmětem dotazů novinářů a dotazů
dle zákona č. 106/1999 Sb., o svobodném přístupu k informacím [34]. Kromě snahy o
snížení počtu dotazů dle zák. č. 106/1999 Sb. představují otevřená data ČOI další z nástrojů
osvětové a preventivní činnosti [34].
Otevřená data poskytuje ČOI v několika datových sadách: kontroly, zaměření kontrol,
sankce, zákazy, zajištěné výrobky a předmět podnikání kontrolovaných subjektů. Data jsou
poskytována ve formátech CSV, XLSX, ODS (Open Document Spreadsheet) a RDF. Ve
formátu RDF jsou publikována i metadata [9]. Pro otevřená data ČOI dále formulovala
podmínky užití, které zajišťují jejich právní otevřenost [8]. Publikovaná data jsou
aktualizována čtvrtletně [34].
4
SPARQL – množina specifikací pro dotazování a manipulaci s daty v RDF, viz [42].
Zvaná přednáška
23
Publikací dat ve formátu RDF se ČOI snaží dosáhnout stupně otevřenosti svých dat na
úrovni 5* (viz [3], [17] a kapitola výše). Pro dosažení úrovně 5* je ale třeba, aby
u publikovaných dat byla zajištěna dereferencovatelnost použitých URI, tj. aby po
přistoupení na zvolené URI byla uživateli poskytnuta data o objektu, který je daným URI
identifikován (viz např. [18]). Tato podmínka nicméně u dat ČOI zatím splněna není.
Na základě stanoviska Úřadu pro ochranu osobních údajů byla ČOI nucena přistoupit
k částečné anonymizaci dat [9]. Úplné informace jsou poskytovány o kontrolovaných
právnických osobách. Konkrétní fyzické osoby, které byly kontrolovány, nejsou
v otevřených datech ČOI identifikovány.
3.2
Otevřená data ČTÚ
Český telekomunikační úřad se rozhodl zvýšit svoji otevřenost a publikovat otevřená data.
Vzhledem k velkému rozsahu dat, které ČTÚ zpracovává, přistoupil ČTÚ k provedení
analýzy, jejímž cílem bylo určit, jaká data by bylo vhodné publikovat v podobě otevřených
dat. Tato analýza zahrnovala [11]:
 vymezení požadavků na otevřená data ČTÚ a způsob jejich naplnění,
 identifikaci přínosů a rizik otevření dat ČTÚ,
 identifikaci potenciálních datových sad k otevření
 určení pracnosti publikace datových sad ve formátu otevřených dat,
 určení priorit otevírání datových sad ČTÚ,
 návrh podmínek užití otevřených dat ČTÚ,
 návrh vybraných částí nově navrženého interního řídícího aktu,
 návrh struktury katalogizačního záznamu a postupu katalogizace otevřených dat
ČTÚ,
 identifikace aplikací pro podporu otevřenosti ČTÚ,
 návrh projektů pro realizaci navržených doporučení.
Na základě zhodnocení pracnosti publikace a rizik bylo vybráno 50 datových sad
k publikaci [11]. Pro jednotlivé datové sady byla také určena priorita jejich publikace a dle
této priority publikace rozplánována do tří etap pro roky 2014-2015.
V březnu 2014 bylo v podobě otevřených dat publikováno prvních 10 datových sad a
v nové sekci webových stránek byl zpřístupněn katalog otevřených dat ČTÚ 5 [10]. Datové
sady jsou poskytovány ve formátu CSV a jejich stupeň otevřenosti tak odpovídá úrovni 3*.
Uživatelům je také umožněno zasílat podněty týkající se otevřených dat ČTÚ a tím i
pomáhat iniciativu dále rozvíjet.
3.3
Porovnání přístupů shora-dolů a zdola-nahoru
Přestože lze v postupu otevírání dat ČOI a ČTÚ nalézt určité shodné kroky, jako je např.
návrh podmínek užití otevřených dat, oba výše zmíněné orgány veřejné správy aplikovaly
při otevírání svých dat odlišný přístup. Zatímco v případě ČOI byla k publikaci dat vybrána
data z jedné oblasti (kontroly, sankce a zákazy) na základě zájmu novinářů a dalších
subjektů, v ČTÚ předcházelo publikaci dat provedení analýzy dat, která úřad zpracovává a
výběr datových sad, které by bylo vhodné zveřejnit v podobě otevřených dat.
Přístup ČTÚ byl strategicky zaměřen na poznání dostupných datových sad, provedení
analýzy přínosů a rizik, určení priorit publikace vybraných datových sad a sestavení
5
http://www.ctu.cz/otevrena-data/katalog-otevrenych-dat-ctu.html
24
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
harmonogramu jejich publikace. Díky postupu od celkové množiny datových sad
spravovaných úřadem ke konkrétním datovým sadám určeným k publikaci v podobě
otevřených dat lze přístup uplatněný ČTÚ označit jako přístup shora-dolů (top-down).
Oproti tomu ČOI zvolila přístup, který je možno označit jako přístup zdola-nahoru. Byla
vybrána data z jedné oblasti a postupně v rámci zvolené domény byly přidávány další
datové sady. Tento přístup také odpovídá jednomu z doporučení pro otevírání dat, které je
obsaženo v Open Data Handbook a sice “začít v malém, jednoduše a rychle” [28].
Tabulka 3 shrnuje aktivity v oblasti otevřených dat ČOI a ČTÚ.
Tabulka 3: Otevřená data ČOI a ČTÚ, zdroj: autoři
Charakteristika
Celkový přístup
Počet
publikovaných
datových sad
Výběr datových
sad
Očekávané
přínosy
Dopad
ČOI
Zdola-nahoru
6 (data za období od 1. 1. 2012
do 31. 3. 2013)
Zaměření na data vyžadovaná
novináři a v žádostech dle zák.
č. 106/1999 Sb.
Zvýšení prestiže, méně dotazů
na tiskové oddělení, přívětivé
aplikace zdarma, objevení
nových poznatků z propojení s
daty ostatních úřadů,
efektivnější prevence a osvěta
Data využívána univerzitami,
novináři a webovým portálem,
vyvinuta aplikace
VysledkyKontrol.cz6
ČTÚ
Shora-dolů
10 (březen 2014), do konce roku
2015 plánována publikace 50
datových sad
Identifikace dostupných datových
sad, analýza přínosů a rizik, určení
pracnosti a priorit publikace
Zvýšení transparentnosti, zlepšení
služeb, minimalizace chyb při
práci s daty, snazší překlady
dokumentů, lepší pochopení a
zlepšení řízení dat ČTÚ, lepší
informování veřejnosti o
výsledcích kontrol, zvýšení
hodnoty dat, zvýšení prestiže
Iniciativa otevřených dat
zaznamenána a komentována
médii, zlepšování kvality dat na
základě poskytnuté zpětné vazby
Lze shrnout, že pro přístup shora-dolů je typické především:
 provedení analýzy datových sad dostupných v rámci organizace;
 provedení výběru vhodných datových sad k otevření a
 prioritizace a sestavení plánu otevírání vybraných datových sad.
Pro přístup zdola-nahoru je pak především typické:
 volba jedné či několika málo datových sad a jejich publikace;
 zpravidla bez podrobné analýzy;
 výběr např. podle častých dotazů dle zák. č. 106/1999 Sb.;
 postupné rozšiřování publikovaných datových sad a zlepšování kvality
publikovaných dat;
 rozšiřování nabídky dat na základě zpětné vazby uživatelů;
 rozšiřování dostupných dat o historická data;
 postupné zlepšování metadat.
6
http://www.vysledkykontrol.cz
Zvaná přednáška
25
Každý z výše uvedených přístupů má přirozeně své výhody a nevýhody. Nejvýznamnější
z nich jsou shrnuty v následující tabulce 4.
Tabulka 4: Výhody a nevýhody přístupů shora-dolů a zdola-nahoru, zdroj: autoři
Přístup
Výhody
 Lepší poznání dostupných
datových sad
 Plánování a vyhodnocování
postupu
 Výsledky analýzy dat mohou
být využity pro zlepšení řízení
dat v organizaci
Shora-dolů
Zdola-nahoru
 Rychlá publikace prvních
datových sad
 Pokud jsou datové sady
využívány, může organizace
rychle získávat zkušenosti a
podněty od uživatelů
Nevýhody
 Od rozhodnutí publikovat
otevřená data do publikace
prvních datových množin
uplyne více času
 Výsledky analýzy dat nemusí
přinést výstupy přímo
využitelné potenciálními
uživateli dat
 Ne vždy musí být zřejmé,
kterými datovými sadami je
vhodné začít
4 Metodiky publikace otevřených dat
Za účelem usnadnění publikace otevřených dat a poskytnutí doporučení a návodů, jak při
publikaci otevřených dat postupovat, vznikají metodiky publikace otevřených dat. Dle
Buchalcevové metodika představuje “v obecném slova smyslu souhrn metod a postupů pro
realizaci určitého úkolu” [6]. Dle [24] pak lze metodiku publikace otevřených dat definovat
jako “soubor postupů, metod či praktik pro publikaci otevřených dat.”
V České republice v návaznosti na Koncepci katalogizace otevřených dat VS ČR [19]
byla vytvořena Metodika publikace otevřených dat veřejné správy ČR [20]. Nicméně
metodiky publikace otevřených dat vznikají i ve světě. V této části tak představíme některé
z těchto metodik. Cílem není poskytnout úplný výčet existujících metodik, ale představit
vybrané metodiky. U zahraničních metodik zejména ty, které jsou dostupné v anglickém
jazyce. Tabulka 5 uvádí přehled dále porovnaných metodik.
Tabulka 5: Přehled metodik publikace otevřených dat, zdroj: [24]7
ID
ODH
OGDTK
Název
Open Data Handbook
Guidelines on Open Government
Data for Citizen Engagement
(2nd edition)
Open Government Data Toolkit
POD
Project Open Data
OGDUN
7
Autor/Vydavatel
Open Knowledge Foundation
Zdroje
[28]
Organizace spojených národů
[37]
Světová banka
Office of Management and
Budget, Office of Science and
Technology Policy
[43]
[26]
Zdroje popisující metodiky a příslušné odkazy z původního zdroje [24] jsou upraveny, aby
odpovídaly zdrojům a číslování použitým v tomto příspěvku.
26
ID
SODFG
ODIG
ODVSCR
MELODA
MGPLD
BPPLD
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
Název
Open Data Field Guide
Open Data Institute Guides
Metodika publikace otevřených
dat veřejné správy ČR (v1.0)
MEtric for reLeasing Open Data
(v3.10)
Methodological Guidelines for
Publishing Linked Data
Best Practices for Publishing
Linked Data
Autor/Vydavatel
Socrata
The Open Data Institute
D. Chlapek, J. Kučera, M.
Nečaský
Zdroje
[32]
[27]
University Rey Juan Carlos
[38]
B. Villazón-Terrazas, O.
Corcho
B. Hyland, G. Atemezing, B.
Villazón-Terrazas
[20]
[41]
[18]
Open Data Handbook [28] obsahuje definici pojmu otevřená data a poskytuje úvod do
problematiky jejich publikace. Je definován základní postup publikace OD a metodika také
dává základní doporučení pro provádění jednotlivých kroků publikace OD.
Metodika Guidelines on Open Government Data for Citizen Engagement (2nd
edition) [37] vniká v rámci OSN a zaměřuje se zejména na využití otevřených dat pro
zapojení občanů do veřejných záležitostí. Metodika je určena především osobám
rozhodujícím o aplikaci principů otevřených dat a ICT pracovníkům. Metodika definuje
postup tvorby strategie pro otevřená data a dále obsahuje praktická doporučení pro
samotnou publikaci OD včetně interakce s uživateli dat.
Open Government Data Toolkit [43] je vytvářen Světovou bankou. Metodika
obsahuje úvod do problematiky a vymezení otevřených dat. Metodika se zabývá např.
budováním poptávky po datech, interakcí s uživateli, doporučenými technologiemi nebo
datovou kvalitou. Metodika často místo vlastních doporučení odkazuje na jiné zdroje a
metodiky. Součástí metodiky je i dotazník pro hodnocení připravenosti na otevřená data.
Project Open Data [26] představuje projekt vlády USA, který je však otevřený i širší
veřejnosti. Cílem tohoto projektu je vytvořit metodiku pro orgány VS v oblasti otevřených
dat, která by zejména umožnila orgánům VS naplnit požadavky dané Open Data Policy (viz
[15]). Kromě doporučených praktik a postupů mají poskytovatelé OD k dispozici seznam
doporučeného softwaru a případové studie.
Open Data Field Guide [32] společnosti Socrata se snaží poskytnout ucelenou sadu
doporučení pro naplánování a realizaci iniciativ otevřených dat. V metodice je tak možné
najít vysvětlení konceptu otevřených dat a praktická doporučení pro jejich publikaci, která
zahrnují jak plánování celé iniciativy, její organizační zajištění, tak i pokrývají fázi
realizace. Vedle publikace dat ve strojově čitelných formátech je kladen důraz na prezentaci
dat prostřednictvím aplikací.
Organizace The Open Data Institute vytváří metodiku, která je tvořena sadou
průvodců (Guides) [27] zaměřených na různé aspekty publikace (a využívání) otevřených
dat, např. licencování otevřených dat, katalogizaci, tvorbu business case, interakci
s uživateli nebo anonymizaci dat.
Jak již bylo uvedeno výše, Metodika publikace otevřených dat veřejné správy ČR
(v1.0) [20] byla vytvořena v návaznosti na Koncepci katalogizace otevřených dat VS ČR
[19]. Metodika definuje základní postup publikace OD VS a vymezuje základní pojmy a
dále role podílející se na publikaci OD VS. Pro jednotlivé kroky publikace OD VS jsou
uvedena doporučení pro jejich realizaci.
MEtric for reLeasing Open Data (v3.10) [38] představuje zejména metodu pro
hodnocení datových sad z hlediska toho, jak snadné je datovou sadu opětovně použít
(re-use). Hodnotí se podmínky užití datové sady, použité technické standardy, přístup
Zvaná přednáška
27
k datové sadě a datový model. Kritéria hodnocení lze nicméně využít i jako určitou sadu
doporučení, jaké vlastnosti by měly mít dobře opětovně použitelné datové sady.
Metodika Methodological Guidelines for Publishing Linked Data [41] je zaměřena
specificky na publikaci otevřených propojitelných dat. Doporučení jsou organizována na
základě životního cyklu s následujícími fázemi: specifikace, modelování, tvorba dat,
publikace a využití.
Jak je již z názvu patrné, Best Practices for Publishing Linked Data [18] je metodika
zaměřená na publikaci otevřených propojitelných dat. Metodika byla vytvořena v rámci
konsorcia W3C a má statut doporučení. Metodika popisuje nejlepší praktiky (best practices)
pro získávání podpory zainteresovaných stran, výběr datových sad, datové modelování,
volbu vhodné licence, tvorbu URI, využívání standardních slovníků a ontologií, převod dat
do formátu propojitelných dat, zpřístupnění strojově čitelných dat, informování
o dostupnosti dat a zajištění jejich dlouhodobé dostupnosti.
Tabulka 6 uvádí hodnocení výše představených metodik z hlediska naplnění požadavků
na metodiku publikace otevřených dat identifikovaných v [24]. Hodnoceny jsou metodiky
ve verzích dostupných v červenci 2014 a jsou hodnoceny následujícím způsobem [24]:
 Požadavek je hodnocen jako splněn (S), pokud metodika kromě obecného popisu
problémové oblasti obsahuje i konkrétní doporučení, návody či postupy, jak
požadavek řešit.
 Požadavek je hodnocen jako částečně splněn (Č), pokud je problémová oblast
v metodice popsána, ale metodika neobsahuje konkrétní návody či doporučení
pro řešení problémové oblasti.
 Požadavek je hodnocen jako nesplněn (N), pokud se problémovou oblastí
metodika nezabývá, nebo je zmíněna jen velmi povrchně.
8
Přeloženo do češtiny.
SODFG
ODIG
ODVSCR
MELODA
MGPLD
BPPLD
Vymezení rolí
Vyhodnocování poptávky po datech
Výběr a prioritizace datových sad
Přínosy otevřených dat
Odhadování pracnosti a nákladů
Vybírání poplatků
Zajištění souladu s legislativou
Analýza rizik
Podmínky užití
Minimalizace roztříštěnosti datových sad
Volba formátů dat
Propojení souvisejících datových sad
Posuzování dopadu na IS/ICT
POD
PO1
PO2
PO3
PO4
PO5
PO6
PO7
PO8
PO9
PO10
PO11
PO12
PO13
OGDTK
Požadavek
OGDUN
ID
ODH
Tabulka 6: Hodnocení metodik publikace otevřených dat, zdroj: [24]8
N
S
S
Č
N
Č
N
Č
S
N
S
N
N
N
S
S
Č
Č
S
Č
S
S
N
Č
Č
N
N
N
N
Č
N
N
N
N
Č
N
Č
N
N
S
S
S
Č
Č
N
S
S
S
N
Č
N
S
S
S
S
S
N
N
N
N
Č
Č
S
Č
N
N
Č
S
Č
Č
S
Č
Č
S
N
Č
N
N
S
N
Č
N
N
N
Č
N
S
N
S
Č
N
N
N
N
N
N
N
N
N
S
N
S
N
N
N
N
Č
N
N
N
N
N
S
S
Č
S
N
Č
N
Č
N
N
N
N
N
Č
Č
Č
S
N
ODIG
ODVSCR
MELODA
MGPLD
BPPLD
Postup publikace dat
Katalogizace dat
Zajištění kvality dat
Zajištění snadného přístupu
Aktualizace datových sad
Komunikační strategie
Nezávislost na centrálním portálu
Doporučený SW
Zohlednění různé velikosti orgánů VS
SODFG
PO14
PO15
PO16
PO17
PO18
PO19
PO20
PO21
PO22
POD
Požadavek
OGDTK
ID
OGDUN
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
ODH
28
S
Č
N
Č
N
S
S
Č
N
S
Č
N
Č
N
S
S
Č
N
N
Č
Č
N
N
S
S
Č
Č
Č
S
Č
N
Č
Č
S
S
N
N
N
N
Č
N
S
S
N
N
N
S
N
N
N
S
S
N
N
S
N
N
N
N
Č
S
N
N
N
N
Č
S
N
N
S
N
N
S
Č
Č
N
N
N
S
S
N
S
Č
N
N
Č
Č
S
N
N
Podrobnější komentář k hodnocení metodik lze najít v [24]. Je třeba ale uvést, že rozsah i
zaměření hodnocených metodik se liší. Např. MELODA poskytuje hlavně metodu, jak
hodnotit datové sady z hlediska snadnosti jejich dalšího využití. Metodika nedefinuje
proces publikace otevřených dat a ani to není jejím cílem. Hodnocení je tak třeba chápat
jako porovnání oblastí a problémů, kterým se jednotlivé metodiky věnují. Hodnocení
nevystihuje vhodnost či nevhodnost metodiky pro určité použití.
Open Government Data Toolkit (OGDTK) v řadě případů nepopisuje vlastní doporučení
pro dané oblasti, ale odkazuje na jiné metodiky a informační zdroje. Jako splněno jsou
hodnoceny pouze ty oblasti, které jsou v OGDTK pokryty vlastními doporučeními.
Odkazovanými metodikami jsou i Open Data Handbook, Guidelines on Open Government
Data for Citizen Engagement a Open Data Field Guide. Uživatelé tak mohou najít
doporučení pro oblasti nepokryté přímo v OGDTK např. v některé z těchto metodik.
Z provedeného hodnocení je zřejmé, že současné metodiky publikace otevřených dat se
zaměřují především na zajištění právní (PO9) a technické otevřenosti dat (PO11). Většina
metodik se také alespoň částečně zabývá otázkou komunikace s uživateli dat (PO19) a časté
je také uvedení alespoň nějakých doporučení pro výběr vhodných datových sad k publikaci
v podobě otevřených dat (PO3). Doporučení hodnocených metodik jsou také nezávislá na
centrálním datovém portálu (PO20).
5 Postup publikace otevřených propojitelných dat
Kromě softwarové platformy pro podporu publikace otevřených dat Open Data Node
(ODN) vznikají v rámci projektu COMSODE také metodická doporučení pro publikaci
otevřených dat. V této části jsou představeny jednotlivé kroky postupu publikace
otevřených dat, který je součástí metodiky Methodology for publishing datasets as open
data [29], jenž vznikla právě v rámci projektu COMSODE (dále jen Metodika
COMSODE).
Metodiku COMSODE tvoří 5 základních metodických prvků [29]:
 fáze – jednotlivé etapy procesu publikace otevřených dat, fáze se dále člení na
úlohy, tj. skupiny souvisejících činností;
Zvaná přednáška
29

průřezové aktivity – aktivity, které jsou prováděny ve všech fázích procesu
publikace otevřených dat, stejně jako fáze se dále člení na úlohy;
 artefakty – vstupy a výstupy úloh fází či průřezových aktivit;
 role – zodpovědnost, kterou zastává jedna nebo více osob či organizačních
jednotek;
 praktiky – doporučení či návod, jak postupovat při realizaci některé z úloh.
Samotný postup publikace otevřených dat pak probíhá v těchto čtyřech fázích [29]:
1. Tvorba plánu publikace otevřených dat
2. Příprava publikace
3. Realizace publikace dat
4. Archivace
Získávání a vyhodnocování zpětné vazby uživatelů otevřených dat je důležitým aspektem
úspěchu otevřených dat [21]. V Metodice COMSODE není získávání a vyhodnocování
zpětné chápáno jako samostatná fáze procesu publikace otevřených dat, ale prostřednictvím
průřezové aktivity Řízení komunikace je získávání a vyhodnocování zpětné vazby součástí
všech fází procesu publikace otevřených dat (viz obrázek 1).
Obrázek 1: Metodika COMSODE a zpětná vazba uživatelů dat, zdroj: [29]
V rámci Metodiky COMSODE je zpětná vazba využívána zejména k [29]:
 vyhodnocení poptávky po datových sadách,
 získání informací o nedostatcích a chybách v publikovaných datových sadách a
k následnému zvyšování kvality datových sad a zlepšování jejich publikace,
 vyhodnocení dopadu ukončení podpory či poskytování datových sad a zlepšování
postupů ve fázi Archivace.
V následujících sekcích jsou blíže popsány jednotlivé fáze procesu publikace otevřených
dat. Popisy jednotlivých úloh a souvisejících praktik lze pak najít v [29] a přílohách tohoto
výstupu [31], [30].
30
5.1
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
Tvorba plánu publikace otevřených dat
Přestože Metodika COMSODE předpokládá, že se publikace otevřených dat odehrává
v určitém politickém kontextu a v také v kontextu strategického řízení subjektu
poskytovatele dat, otázkami tvorby strategie a politik ve vazbě na otevřená data se nevěnuje
[29]. První fází procesu publikace otevřených dat tak je Tvorba plánu publikace otevřených
dat.
Cílem této fáze je analyzovat datové zdroje a vybrat datové sady, které mají být
publikovány jako otevřená data. Hlavním výstupem této fáze je plán publikace otevřených
dat. Tento plán by měl obsahovat [31]:
 vymezení cílů publikace otevřených dat;
 mapu datových zdrojů a datových sad;
 seznam datových sad s určením přínosů a rizik jejich publikace, odhadované
pracnosti publikace a cílovým stupněm otevřenosti;
 určení priorit publikace identifikovaných datových sad;
 harmonogram publikace datových sad;
 obsazení vymezených rolí.
5.2
Příprava publikace
Cílem fáze Přípravy publikace je připravit vybrané datové sady tak, aby mohly být
publikovány jako otevřená data v určeném formátu a za vhodných podmínek užití/licence.
V rámci této fáze by tak mělo dojít k určení struktury metadat, která budou popisovat
datové sady a budou zpřístupněna v datovém katalogu. Je doporučeno využívat standard
Data Catalog Vocabulary (DCAT)9. Dalším krokem je pak příprava samotných metadat pro
datové sady určené k publikaci.
Kromě přípravy metadata je třeba připravit samotné datové sady. Zejména navrhnout či
popsat datové schéma jednotlivých datových sad, a pokud jsou data publikována jako
otevřená propojitelná data, identifikovat vhodné existující ontologie a případně i navrhnout
vlastní, pokud dostupné ontologie nepokrývají zcela potřeby uvažovaných datových sad.
Dále je třeba vhodným způsobem zvolit identifikátory datových entit. V případě otevřených
propojitelných dat je součástí této úlohy návrh vzorů pro URI, které budou datové entity
identifikovat.
Součástí fáze je i výběr softwarových nástrojů a návrh, implementace a testování
automatizovaných ETL10 procedur, které budou zajišťovat transformaci dat z primárních
datových zdrojů do určeného cílového formátu a struktury. Tyto procedury také mohou
zajišťovat čištění a obohacování zdrojových dat.
Pro zajištění právní otevřenosti publikovaných datových sad je třeba určit, za jakých
podmínek užití nebo pod jakou licencí budou data zveřejněna. Je doporučováno využívat
standardní licence, jako jsou licence Creative Commons CC-BY 4.011, příp. právní nástroj
CC012 [30]. Není doporučováno vytvářet vlastní licence, nicméně pokud se již poskytovatel
dat rozhodne vlastní licenci formulovat, měl se snažit maximálně držet principů
uplatněných v licenci CC-BY 4.0 nebo CC0. Licence by neměla omezovat užití dat na
nekomerční účely a tvorbu odvozených datových sad (derivative works). Pro maximalizaci
9
http://www.w3.org/TR/vocab-dcat/
ETL – Extract, Transform and Load
11 http://creativecommons.org/licenses/by/4.0/legalcode
12 http://creativecommons.org/publicdomain/zero/1.0/legalcode
10
Zvaná přednáška
31
potenciálu dalšího využití datové sady by licence neměla vyžadovat, aby odvozené datové
sady byly publikovány pod stejnou licencí, jako původní datová sada (blíže viz [14]).
5.3
Realizace publikace dat
Cílem fáze Realizace publikace dat je realizovat samotnou publikaci připravených
datových sad na webu včetně publikace metadat. Dalším cílem je zajistit pravidelnou
údržbu a aktualizaci již publikovaných datových sad. Zajištění údržby datových sad se jeví
být jedním z aspektů úspěchu otevřených dat v delším časovém horizontu. Např. dle studie
Capgemini Consulting z roku 2013 96% zkoumaných zemí publikovala datové sady, které
nebyly pravidelně aktualizovány [35]. Zajištění dlouhodobé dostupnosti a údržby datových
sad je také jednou z dobrých praktik publikace otevřených propojitelných dat dle [18].
V této fázi je také významné získávání a vyhodnocování zpětné vazby od uživatelů
otevřených dat. Zpětná vazba může poskytovateli otevřených dat pomáhat odhalovat
nedostatky v publikovaných datech a díky tomu může být i cenným vstupem do činností
zajištění a zvyšování kvality dat [29] a může přispívat i ke zlepšení procesu publikace
otevřených dat jako takového [21].
Pro zajištění, že uživatelé budou moci zpětnou vazbu poskytnout, je doporučováno, aby
na webových stránkách poskytovatele dat byl zpřístupněn alespoň jeden elektronický kanál
pro tento účel [30]. Např. se může jednat o diskusní fórum, kontaktní email či formulář.
5.4
Archivace
Přestože by u publikovaných datových sad měla být zajištěna jejich dlouhodobá dostupnost
a pravidelná údržba, může nastat situace, v jejímž důsledku již nebude možné datovou sadu
dále udržovat, nebo dokonce ani dále poskytovat. Může se jednat např. o změnu legislativy,
v jejímž důsledku poskytovatel dat přestane nebo již nebude oprávněn pořizovat data, která
byla obsažena v určité datové sadě, např. z důvodu, že již nebude vykonávat určitou
činnost, jenž doposud vykonával. K ukončení poskytování datové sady by teoreticky mohlo
vést i rozhodnutí soudu či jiného příslušného orgánu, např. v situaci, kdyby bylo shledáno,
že určitá datová sada je publikována v rozporu se zákonem.
Cílem fáze Archivace tak je ukončit životní cyklus datové sady. Je rozlišováno
ukončení podpory a ukončení poskytování datové sady. V případě ukončení podpory
datové sady zůstává datová sada dostupná uživatelům, ale již nebude dále aktualizována, tj.
nebudou přibývat nová data a ani nebudou opravovány chyby v již publikovaných datech.
Při ukončení poskytování datové sady dochází ke znepřístupnění dříve publikovaných dat.
Katalogizační záznam datové sady by měl zůstat i nadále přístupný a měl by obsahovat
informaci, že datová sad již není déle dostupná [30]. Pokud je datová sada, jejíž údržba
nebo poskytování je ukončeno, nahrazena jinou datovou sadou, je vhodné uvést odkaz na
tuto datovou sadu.
Protože ukončení podpory či poskytování datové sady se patrně dotkne jejích uživatelů,
je v této fázi velmi důležitá komunikace. Kromě příslušné úpravy katalogizačních záznamů
je třeba informovat uživatele o změně stavu datové sady i jinými vhodnými kanály, např.
v rámci novinek na webu poskytovatele.
6 Nástroje
V předcházející kapitole byl představen obecný postup publikace otevřených dat. Realizaci
činností v jednotlivých fázích tohoto postupu pak může být vhodné podpořit softwarovými
nástroji. Z navrženého postupu je také zřejmé, že publikace otevřených dat není záležitostí
32
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
čistě technickou, ale vyžaduje i manažerské aktivity, jako je řízení přínosů, rizik,
komunikace nebo řízení samotné publikace otevřených dat prostřednictvím plánu publikace
otevřených dat. Zmínit lze i potřebu stanovení vhodných podmínek užití dat a zajištění
souladu publikace otevřených dat s legislativou. Paleta softwarových nástrojů
uplatnitelných při publikaci otevřených dat tak může být dosti široká a může v širším pojetí
zahrnovat jak např. kancelářské aplikace, nástroje pro podporu spolupráce či jiné obecně
použitelné nástroje, které své uplatnění naleznou např. při přípravě plánu publikace
otevřených dat nebo následně při řízení celé iniciativy, tak i specializované nástroje
zaměřené přímo na podporu přípravy, publikace, údržby a archivace datových sad.
Vzhledem k šíři možných nástrojů se zaměříme v této kapitole pouze na nástroje spadající
do druhé skupiny, specificky pak na nástroje pro publikaci a využití otevřených
propojitelných dat.
Pro podporu publikace a využití otevřených propojitelných dat je k dispozici celá řada
nástrojů vytvářených jak výzkumnými institucemi, tak i podnikatelskými subjekty. Na
tvorbu nástrojů pro tuto oblast se zaměřuje i několik výzkumných projektů financovaných
z prostředků Evropské unie (viz [25]). Jedním z těchto projektů je i projekt LOD2, jehož
hlavním výstupem je sada integrovaných nástrojů pro publikaci a využití otevřených
propojitelných dat označovaná jako LOD2 Stack 13 [1]. Nástroje v LOD2 Stacku podporují
jednotlivá stadia životního cyklu otevřených propojitelných dat, který je znázorněn na
obrázku 2.
Obrázek 2: Životní cyklus otevřených propojitelných dat, zdroj: [1]
13
Po skončení projektu LOD2 bude LOD2 Stack dále rozvíjen v rámci projektů GeoKnow a
DIACHRON pod označením Linked Data Stack [1].
Zvaná přednáška
33
LOD2 Stack tak obsahuje nástroje pro podporu [1], [39]:
 extrakce dat – získávání dat z datových zdrojů a jejich převod do podoby
otevřených propojitelných dat;
 ukládání dat – ukládání dat ve formátu RDF a dotazování nad uloženými daty;
 vytváření dat – vytváření dat ve strukturované podobě propojených na příslušné
slovníky a ontologie;
 propojování dat – vytváření a údržba propojení mezi datovými zdroji včetně
automatizace tvorby propojení;
 klasifikace dat – klasifikace a obohacování dat pomocí využívání sdílených
slovníků a ontologií;
 analýzy kvality dat – analýza dat a zjištění úrovně jejich kvality např. na základě
kontextu nebo metadat o jejich původu,
 údržby dat a jejich oprav – zajištění podpory pro transparentní úpravy slovníků a
ontologií;
 procházení dat a vyhledávání v datech – zajištění funkcí, které umožní otevřená
propojitelná data procházet, vyhledávat v nich a vizualizovat je.
Vzhledem k velkému počtu komponent zařazených do LOD2 Stacku je jejich popis nad
rámec tohoto příspěvku. Zájemci mohou najít jejich popis např. v [39]. Další informace
jsou k dispozici na webových stránkách projektu LOD2 14.
Dalším z výzkumných projektů, v rámci kterého jsou vytvářeny nástroje pro publikaci
otevřených (nejen) propojitelných dat, je projekt COMSODE. V tomto projektu je
vytvářena publikační platforma Open Data Node [16] a je jí věnována jiná přednáška
letošního ročníku konference DATAKON.
7 Závěr
Orgány veřejné správy mají v držení značné množství dat, která mohou být využita pro
tvorbu nových aplikací či služeb. Publikace dat veřejné správy ve formátu otevřených dat
tak slibuje značné přínosy jak pro posílení transparentnosti veřejné správy, tak i představuje
příležitost pro rozvoj inovací. Publikace a následné využívání otevřených dat pak také může
vést k ekonomickým přínosům.
Ačkoli zpřístupňování dat veřejné správy pro další využití není záležitost zcela nová,
v rámci iniciativ otevřených dat nabývá tato aktivita na dříve nebývalé intenzitě [12]. Mimo
to se poskytovatelé dat a osoby odpovědné za realizaci publikace otevřených dat potýkají
s celou řadou problémů, ať se již jedná např. o ne vždy nastavené odpovídající procesy a
odpovědnosti nebo o problémy právní povahy vyplývající např. z legislativy upravující
ochranu osobních údajů. Intenzita iniciativ otevřených dat a zároveň existence problémů
doprovázejících publikaci OD poukazují na skutečnost, že pro publikaci otevřených dat
jsou zapotřebí nejen softwarové nástroje, ale i metodická doporučení, která by umožnila
poskytovatelům otevřených dat získat potřebné znalosti a pomohla jim publikaci
otevřených dat lépe zvládat.
V tomto příspěvku jsme analyzovali dva z možných přístupů k publikaci otevřených
dat. Přístup shora-dolů charakteristický provedením analýzy dostupných datových sad,
výběrem vhodných datových sad k publikaci a sestavením plánu jejich publikace. Tento
přístup umožňuje lépe řídit publikaci otevřených dat, nicméně od rozhodnutí publikovat
14
http://lod2.eu
34
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
otevřená data do publikace prvních datových sad patrně uplyne více času, než v případě
přístupu zdola-nahoru. Tento přístup charakterizuje výběr jedné či několika málo datových
sad, které jsou relativně rychle publikovány, a postupné učení se ze zkušeností. Nicméně
nevýhodou tohoto přístupu může být, že ne vždy je zřejmé, kterými datovými sadami je
vhodné začít.
Pro usnadnění publikace otevřených dat vznikají metodiky pro jejich publikaci. Některé
z těchto metodik byly v tomto příspěvku stručně představeny a porovnány z hlediska jejich
obsahu či problémových oblastí, kterým se věnují.
V rámci projektu COMSODE byla vytvořena metodika Methodology for publishing
datasets as open data [29] a v tomto příspěvku byl představen postup publikace otevřených
dat navržený v této metodice. Postup publikace otevřených dat Metodiky COMSODE se
skládá ze čtyř fází: (1) Tvorba plánu publikace otevřených dat, (2) Příprava publikace,
(3) Realizace publikace dat a (4) Archivace. První fáze je zaměřena na analýzu dostupných
datových sad a výběr vhodných datových sad k publikaci ve formátu otevřených dat. Cílem
druhé fáze je připravit zvolené datové sady k publikaci, tj. zejména připravit transformaci
dat do cílových strojově čitelných formátů, opatřit datové sady metadaty a zvolit vhodnou
licenci pro zajištění jejich právní otevřenosti. Třetí fáze je pak zaměřena na realizaci
publikace datových sad společně s jejich metadaty a následné údržby a aktualizace
datových sad. Poslední fáze procesu publikace otevřených dat se pak věnuje ukončení
životního cyklu datové sady, tj. ukončení její aktualizace nebo ukončení jejího poskytování.
Publikace otevřených dat zahrnuje realizaci řady činností a je tak vhodné uvažovat
o podpoře publikace pomocí softwarových nástrojů. Na vývoj nástrojů pro podporu
publikace a využití otevřených propojitelných dat se zaměřují i výzkumné projekty, jako
např. LOD2 nebo COMSODE. V rámci prvního zmíněného projektu byla vytvořena
integrovaná sada nástrojů LOD2 Stack, ve druhém uvedeném projektu je vyvíjena
platforma pro publikaci otevřených dat Open Data Node.
Přestože metodiky publikace otevřených dat vznikají, stále existují oblasti, které
v těchto metodikách nejsou vždy pokryty. Další výzkum by se tak mohl věnovat např.
dopadu publikace otevřených dat na IS/ICT orgánů VS, které se otevřená data rozhodnou
publikovat, nebo hledání vhodných metod pro hodnocení nákladů a přínosů otevřených dat.
Poděkování: Tento příspěvek byl vypracován v rámci projektu COMSODE, který je
financován Sedmým rámcovým programem Evropské unie pod grantovým číslem 611358.
Literatura
1.
2.
3.
4.
5.
Auer, S.: Introduction to LOD2. In: Linked Open Data – Creating Knowledge Out of
Interlinked Data: Results of the LOD2 Project, LNCS 8661, S. Auer, V. Bryl and
S. Tramp (Eds.), Springer (2014), 1-17.
Bauer, F., Kaltenböck, M.: Linked Open Data: The Essentials. Edition
mono/monochrom, Vienna, 2011.
Berners-Lee,
T.:
Linked
Data
Design
Issues,
2006.
http://www.w3.org/DesignIssues/LinkedData.html
Berners-Lee, T., Fielding, R., Masinter, L.: RFC 3986 - Uniform Resource Identifier
(URI): Generic Syntax, 2005. http://tools.ietf.org/html/rfc3986
Bizer, C., Heath, T., Berners-Lee, T.: Linked Data - The Story So Far. Special Issue on
Linked Data, International Journal on Semantic Web and Information Systems, 2009.
Zvaná přednáška
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
35
Buchalcevová, A.: Metodiky budování informačních systémů. Nakladatelství
Oeconomica, Praha, 2009.
Buchholtz, S., Bukowski, M., Śniegocki, A.: Big and open data in Europe: A growth
engine or a missed opportunity? 2014. http://www.bigopendata.eu/wpcontent/uploads/2014/01/bod_europe_2020_full_report_singlepage.pdf
Česká obchodní inspekce: Licence pro používání zveřejněných dat, 2013.
http://www.coi.cz/cz/spotrebitel/open-data-databaze-kontrol-sankci-a-zakazu/opendata-licence/
Česká obchodní inspekce: Open Data – Databáze kontrol, sankcí a zákazů, 2013.
http://www.coi.cz/cz/spotrebitel/open-data-databaze-kontrol-sankci-a-zakazu/
Český telekomunikační úřad. ČTÚ zpřístupnil první otevřená data, 2014.
http://www.ctu.cz/aktuality/tiskove-zpravy.html?action=detail&ArticleId=11382
Český telekomunikační úřad: Otevřená data Českého telekomunikačního úřadu:
Použitý
postup
a
dosažené
výsledky,
2014.
http://www.isss.cz/archiv/2014/download/prezentace/ctu_drtina.pdf
Davies, T.: Supporting open data use through active engagement, 2012.
http://www.w3.org/2012/06/pmod/pmod2012_submission_5.pdf
Deloitte:
Market
Assessment
of
Public
Sector
Information,
2013.
https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/198905/
bis-13-743-market-assessment-of-public-sector-information.pdf
Dulong De Rosnay, M., Tsiavos, P., Artusio, C., Elli, J., Ricolfi, M., Sappa, C.,
Vollmer, T., Tarkowski, A.: D5.2. Licensing Guidelines, 2014. http://www.lapsiproject.eu/sites/lapsi-project.eu/files/D5.2LicensingGuidelinesPO.pdf
Executive Office of the President: Open Data Policy – Managing Information as an
Asset, 2013. http://www.whitehouse.gov/sites/default/files/omb/memoranda/2013/m13-13.pdf
Hanečák, P.: Open Data Node – what it is, what it does, what is next.
http://www.comsode.eu/index.php/2014/06/open-data-node-what-it-is-what-it-doeswhat-is-next/
Hausenblas, M.: 5 star Open Data, 2012. http://5stardata.info/
Hyland, B., Atemezing, G., Villazón-Terrazas, B.: Best Practices for Publishing
Linked Data, 2014. http://www.w3.org/TR/ld-bp/
Chlapek, D., Kučera, J., Nečaský, M.: Koncepce katalogizace otevřených dat VS ČR
(zkrácená
verze),
2012.
http://www.mvcr.cz/soubor/koncepce-katalogizaceotevrenych-dat-vs-cr-pdf.aspx
Chlapek, D., Kučera, J., Nečaský, M.: Metodika publikace otevřených dat veřejné
správy ČR verze 1.0, 2012. http://www.mvcr.cz/soubor/metodika-publ-opendata-verze1-0-pdf.aspx
Janssen, M., Zuiderwijk, A.: Open data and transformational government.
In: Proceedings of the Transforming Government Workshop 2012 (tGov2012), Brunel
University, London (2012).
Klyne, G., Carroll, J. J., McBride, B.: RDF 1.1 Concepts and Abstract Syntax, 2014.
http://www.w3.org/TR/rdf11-concepts/
Kroes, N.: Digital Agenda and Open Data, 2012. http://europa.eu/rapid/pressrelease_SPEECH-12-149_en.htm
Kučera, J.: Methodologies for publication of Open Government Data, 2014.
http://nb.vse.cz/~xkucj30/dissertation/Kucera_OGD_methodologies_EN_v1.pdf
36
Otevřená a propojitelná data – metodiky, postupy, nástroje a praxe
25. Linked Data Europe - Programme. http://www.linkeddataeurope.eu/?page_id=326
26. Office of Management and Budget, Office of Science and Technology Policy: Project
Open Data. http://project-open-data.github.io/
27. Open Data Institute, The: Guides. http://theodi.org/guides
28. Open
Knowledge
Foundation:
The
Open
Data
Handbook,
2012.
http://opendatahandbook.org/pdf/OpenDataHandbook.pdf
29. Nečaský, M. Chlapek, D., Klímek, J., Kučera, J., Maurino, A., Rula, A., Konecny, M.,
Vanova, L.: Deliverable D5.1: Methodology for publishing datasets as open data,
2014.
http://www.comsode.eu/wp-content/uploads/D5.1Methodology_for_publishing_datasets_as_open_data.pdf
30. Nečaský, M. Chlapek, D., Klímek, J., Kučera, J., Maurino, A., Rula, A., Konecny, M.,
Vanova, L.: Deliverable D5.1: Methodology for publishing datasets as open data,
Annex 1: Documentation of Practices, 2014. http://www.comsode.eu/wpcontent/uploads/Annex1_D5.1-Documentation_of_practices.pdf
31. Nečaský, M. Chlapek, D., Klímek, J., Kučera, J., Maurino, A., Rula, A., Konecny, M.,
Vanova, L.: Deliverable D5.1: Methodology for publishing datasets as open data,
Annex
2:
Master
spreadsheet,
2014.
http://www.comsode.eu/wpcontent/uploads/Annex2_D5.1-Methodology_Master_Spreadsheet.xlsx
32. Socrata: Open Data Field Guide, 2014. http://www.socrata.com/open-data-field-guide/
33. Sunlight Foundation: Ten Principles for Opening Up Government Information, 2010.
http://sunlightfoundation.com/policy/documents/ten-open-data-principles/
34. Tajtl,
M.:
Otevírání
dat
a
využití
nástroje
ODN,
2014.
http://www.cssi.cz/cssi/system/files/all/Seminar_CSSI_6-6-2014_Tajtl.pdf
35. Tinhold, D.: The Open Data Economy: Unlocking Economic Value by Opening
Government
and
Public
Data,
2013.
https://www.capgeminiconsulting.com/ebook/The-Open-DataEconomy/files/assets/downloads/publication.pdf
36. Ubaldi, B.: Open Government Data: Towards Empirical Analysis of Open Government
Data Initiatives. OECD Working Papers on Public Governance, No. 22, OECD
Publishing, 2013. http://dx.doi.org/10.1787/5k46bj4f03s7-en
37. United Nations: Guidelines on Open Government Data for Citizen Engagement, 2013.
http://workspace.unpan.org/sites/Internet/Documents/Guidenlines%20on%20OGDCE
%20May17%202013.pdf
38. University Rey Juan Carlos: MEtric for reLeasing Open DAta: Version 3.10, 2014
http://www.meloda.org/full-description-of-meloda/
39. Van Nuffelen, B., Janev, V., Martin, M., Mijovic, V., Tramp, S.: Supporting the
Linked Data Life Cycle Using an Integrated Tool Stack. In: Linked Open Data –
Creating Knowledge Out of Interlinked Data: Results of the LOD2 Project, LNCS
8661, S. Auer, V. Bryl and S. Tramp (Eds.), Springer (2014), 108-129.
40. Vickery, G.: Review of recent studies on PSI re-use and related market developments,
2011.
http://ec.europa.eu/information_society/policy/psi/docs/pdfs/report/psi_final_version_f
ormatted.docx
41. Villazón-Terrazas, B., Corcho, O.: Methodological Guidelines for Publishing Linked
Data, 2011. http://delicias.dia.fi.upm.es/wiki/images/7/7a/07_MGLD.pdf
42. W3C
SPARQL
Working
Group:
SPARQL
1.1
Overview,
2013.
http://www.w3.org/TR/sparql11-overview/
Zvaná přednáška
37
43. World Bank: Open Government Data Toolkit, 2014. http://data.worldbank.org/opengovernment-data-toolkit
Annotation:
Linked Open Data – methodologies, approaches, tools and the current practices
Open Data is data published on the Internet for free reuse and redistribution in open and machinereadable formats. Governments hold large amount of valuable datasets, therefore opening up
government data is seen as a way to increase transparency and foster economic growth. Open
Government Data (OGD) is expected to bring significant benefits to citizens, businesses and
governments as well. However approaches to publication of OGD differ among the public sector
bodies and the necessary processes and organizational structures are not always in place. In this paper
we analyse the top-down and the bottom-up approach to publication of OGD and we introduce some
of the existing OGD publication methodologies that might provide the required guidelines and best
practices for OGD publication. Finally, we propose a generic workflow for OGD publication
developed in the COMSODE project.
Na strastiplnej ceste k otvoreným päťhviezdičkovým
údajom v Slovenskej republike
Miroslav LÍŠKA
Datalan, a.s.
Galvaniho 17A, 821 04 Bratislava
[email protected]
Abstrakt. Strojové spracovanie informácií s ohľadom na ich význam je pomerne
prebádaná oblasť, no ukazuje sa, že až Sémantický web dokázal túto disciplínu
vytiahnuť zo znalostných laboratórií a presvedčiť, že pracovať s dátami bez ohľadu na
ich význam je málo efektívne a veľmi nákladné. Mimo komerčných aplikácií niet
azda lepšej oblasti ako oblasť verejnej správy a samosprávy, kde je žiadúce, aby dáta
mali význam, resp. aby boli v tvare tzv. prepojiteľných dát (LinkedData). I keď sú
dáta veľmi roztrúsené, sémanticky by sa dali ľahko pospájať a použiť na rozličný účel
a to nepomerne lacnejšie a rádovo efektívnejšie než sa to deje dnes prostredníctvom
nákladnej integrácie. Čo však krajina, to iný dosiahnutý stupeň kvality verejných dát.
Na Slovensku je to z pohľadu prepojiteľných otvorených dát zatiaľ veľká bieda,
konkrétne štandardizačný proces nad verejnými dátami v gescii Ministerstva Financií
SR je technologicky desaťročie dozadu. Čo je však ešte horšie, existuje tu dokonca
nevôľa pustiť sa týmto smerom aj od organizácií kde by ste to nečakali. Prečo je tomu
tak, pokúsim sa vysvetliť v tomto príspevku. Je síce subjektívny, nevyvážený, no
autor verí že vyprovokuje diskusiu ktorá na konci dňa prispeje k tomu aby verejné
dáta mali požadovanú kvalitu, aby Slovensko prestalo tak dramaticky zaostávať
v tejto oblasti.
Klúčové slova: sémantický web, štátna správa, umelá inteligencia, prepojené
otvorené dáta, ontológie
1 Úvod
Je krásny neskoroletný podvečer kedy som sa vybral na obhliadku mojej vysnenej záhrady.
Prichádzam na miesto, a už z diaľky vidím, že je to To miesto. Dívam sa naň, a už si
predstavujem, kde budú rásť jablone, hrušky či slivky. A potom začnú prichádzať otázky.
Aká je tu vlastne pôda, a aké sú tu ročné teploty? Je toto miesto už intravilán alebo
extravilán obce? Do ktorého katastra pozemok patrí? Kto presne je vlastníkom?Nie je tam
nejaké obmedzenie užívania pôdy? Nejaká ťarcha? Môžem si tam postaviť murovanú
chatku? Neplánuje sa tadeto vedenie nejakej cesty? A čo dosah inžinierskych sietí?
Prípadne aké sú dane a poplatky konkrétne v tejto lokalite?
Keď si toto všetko uvedomím, môžem sa pripravovať na niekoľko týždňovú analýzu
v upršaných jesenných dňoch, na obiehanie množstva úradov, navštívenie ich webových
stránok (au) na nájdenie požadovaných údajov. A tie budú vskutku rozmanite umiestnené.
Niektoré nájdem priamo v rámci textu na stránke, niektoré v excelovských, wordovských,
pdf alebo iných prílohách a mnohé nenájdem vôbec.
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 39-51.
40 Na strastiplnej ceste k otvoreným päťhviezdičkovým údajom v Slovenskej republike
Bolo by ideálne, keby boli dáta na jednom mieste. Našťastie také miesto je [19], a hoc je
to zatiaľ najlepší počin, situácia so slovenskými verejnými dátami je vskutku tragická.
Na obrázku 1 je znázornený portál data.gov.sk, ktorý má ambíciu byť centrom
obsahujúcim alebo referejúcim rôzne datasety verejnej správy. V súčasnosti je tam 206
datasetov čo je akiste veľmi málo. Horšie ale je, že základný problém nie je len v kvantite
dát, ale aj kvalite. Problém s kvalitou je založený na tom, že dáta nemajú význam a nijako
spolu nesúvisia. Sú to len “hlúpe” písmenká a číselká. S takýmito dátami sa nedá robiť ako
so znalosťami a navyše, nemôžem ani len pomýšľať nad dopytmi ktoré kombinujú viaceré
datasety. Na obrázku 1 je napr. vidieť Dataset geodetov a Dataset centrálnych zmlúv a
podobne. Neviem položiť takúto otázku: Vrát mi všetkých geodetov ktorý uzatvorili nejakú
zmluvu so štátnou správou v októbri minulého roka. Takisto ďalšia zaujímavá vec je
nemožná. Vyberiem si daného geodeta a pozriem si kde pracuje. V záujme väčšej dôvery sa
chcem o tejto spoločnosti dozvedieť všetko, čo sa len dá. Či má so štátom uzatvorenú
nejakú zmluvu, či táto spoločnosť dostala nejakú finančnú pomoc, či nemá dlhy voči
poisťovniam, alebo daňové nedoplatky a podobne.
V mojom prípade, kedy sa chcem dozvedieť niečo o vysnenom pozemku pre založenie
ovocného sadu by bolo akiste prínosné, keby som len jednoducho označil daný pozemok na
mape a vypýtal si všetko, čo s ním súvisí. Všetky dotknuté materiály ako rôzne zmluvy
ktoré súvisia s obcou, územný plán, rôzne meteorologické dáta, či dáta zo životného
prostredia o blízkych skládkach a podobne.
Aj keď bolo položených množstvo otázok a problematika je veľmi komplexná, riešenie
je jednoduché, elegantné, 10 rokov staré. Volá sa Sémantický web.
Obr. 1 – Niektoré datasety portálu http://data.gov.sk
Zvaná přednáška
41
2 Sémantický web
Sémantický web [37] (Web 3.0) je nová generácia webu. Rozvíja a stojí za ním konzorcium
W3C [29], hlavný a najdôležitejší hráč v oblasti štandardov webu. Môžeme povedať že je
to nová generácia informatiky, aj keď sa jedná v zásade len o implementáciu klasických a
známych metód umelej inteligencie do prostredia webu. Lenže ten dominuje nielen na
internete, ale aj intranete, čiže sémantický web získava na obrovskom vplyve. Sémantika je
význam a teda sémantický web je významový web. Čiže dáta na webe už majú význam.
Nie sú to len “hlúpe” písmenká a číselká, sú to dáta s reálnym významom. Presnejšie
povedané, sú to znalosti [21]. A znalosti sú zapísané tvrdeniami, čiže sémantická databáza
je vlastne databáza tvrdení. Tvrdenie je reprezentované trojicou Subjekt – Predikát –
Objekt, pričom množina tripletov vytvára graf (sieť). Napr. tvrdenia
http://sk.linkedin.com/in/miroslavliska/ rdf:type foaf:Person .
http://sk.linkedin.com/in/miroslavliska/ foaf:givenName “Miroslav” .
http://sk.linkedin.com/in/miroslavliska/ foaf:familyName “Líška” .
hovoria, že to čo je moja domovská stránka na linkedin predstavuje osobu, mňa. Kým
zatiaľ napr. o FIIT [8] by to bolo povedané takto:
http://fiit.stuba.sk/ rdf:type foaf:Organization .
http://fiit.stuba.sk/ foaf:name “Fakulta informatiky a informačných technológií” .
Asi najzaujímavejšia časť sémantického webu sa venuje strojovému odvodzovaniu
nových znalostí. Odvodzovanie nových znalostí je vlastne odvodzovanie nových tripletov,
ktorý majú status odvodené, kým zatiaľ pôvodné triplety sú tzv. stanovené. Samotné
odvodzovanie je aplikácia rôznych znalostných pravidiel, ich zreťazenia a podobne. Ak
mám napr. jeden takýto triplet:
http://www.semamtickyweb.sk/stuff/lukasko foaf:givenName “Lukáš” .
tak z neho sa dá odvodiť že
http://www.semamtickyweb.sk/stuff/lukasko rdf:type foaf:Person .
Čiže ak nejaký zdroj má prvé meno, tak je Osoba. Pretože vlastnosť prvé meno sa
používa len v súvislosti s osobami. Presnejšie povedané, definícia vlastnosti prvé meno je
že jej doména je Osoba a odvodzovanie bolo typu rdfs:domain.
Sémantické databázy sú teda databázami tripletov, niekedy sú nazývané natívne
tripletové databázy, alebo grafové databázy. Rozlišovanie medzi dobrou alebo zlou
sémantickou databázou sa dá uskutočniť prostredníctvom zistenia, koľko tripletov dokáže
daná databáza efektívne spracovávať, aké rýchle sú vstavané reasonery ktoré práve robia
základný procesing ako načrtnuté rdfs:domain odvodzovanie, aká rýchla je odozva
SPARQL dotazov [38], ktorý sa ako jazyk natívne používa na dopytovanie grafu a
podobne. Aby sa výsledky pre dotazy sa vrátili čo najrýchlejšie, tak sa odvodzovanie
vykonáva už pri vstupe dát do DB, čo sa nazýva dopredné zreťazenie [21]. Dopredné
zreťazenie vyzerá, že je veľmi dôležitá vlasnosť v komerčných riešeniach. Situácie, kedy je
DB už príliš veľká a odvodzovanie trvá buď dlho, alebo záťaž je enormná dochádza ku
presmerovaniu dopytu na kópiu DB v klasteri. Čiže kým sa odvodzujú nové dáta na jednom
servery, druhý obsluhuje používateľské dotazy, čím nedochádza k výpadku výkonu.
42 Na strastiplnej ceste k otvoreným päťhviezdičkovým údajom v Slovenskej republike
2.1
URI – referencovateľný identifikátor
Úlohou URI identifikátora [39] je identifikovať niečo, nejakú vec, osobu, udalosť atď.
prostredníctvom webovej referencie. Pozor, URI nie je URL. URL [40] je čo sa mi má
zobraziť keď zadám nejakú adresu do prehliadača, kým URI len identifikuje niečo cez
internetový odkaz, a stránka nemusí ani existovať. Platí ale, že každé URL je zároveň aj
URI. Napr. http://www.datalan.sk je URL lokátor a zároveň i URI identifikátor spoločnosti
Datalan, a.s.. Nás ale zaujíma primárne URI identifikátor. Všetko čo má URI identifikátor
sa nazýva RDF zdroj [36]. RDF zdroj predstavuje niečo identifikovateľné cez URI.
Množina RDF zdrojov a ich vzájomných vzťahov tvorí tzv. ontológiu.
2.2
Ontológie
Ontológie sú kľúčovým stavebným kameňom sémantiky. Sú to znalosti o nejakej doméne.
Vždy sa jedna o ontológiu niečoho. Napr. Ontológia liekov, ontológia osôb, ontológia
realít, atď. Ontológia liekov hovorí, ako sa lieky delia, aké majú vlastnosti, vzťahy.
V horeuvedených tvrdenia som použil ontológiu RDF keď som o zdroji mojej domovskej
stránke povedal, že má nejaký typ pomocou vlastnosti rdf:type. To aký je to typ som opäť
povedal cez ontológiu FOAF [27], kde som definoval že som osoba, tj. foaf:Person, pričom
som navyše definoval aj ako sa volám cez vlastnosti foaf:givenName a foaf:familyName.
Čiže ontológia FOAF sa používa na opis osôb, organizácií, ich rôznych vzťahov. Pozn.:
jedným z najznámejších vzťahov je asi foaf:knows, ktorým sa dá vytvoriť sociálnu sieť.
2.3
FiveStar OpenData
Samotný šéf konzorcia W3C Tim Berners-Lee, ktorý ako prvý vytvoril web definovaním
protokolu HTTP [33] už vtedy vedel, že klasický web, kde dáta nemajú význam má svoje
dni spočítané. Denne pribúda na webe obrovské množstvo obsahu ktorý keď nemá
definovaný význam, tak sa vyhľadávanie stáva čoraz ťažšie a nepresnejšie. V spojitosti
s definovaním nových štandardov pre sémantický web ako RDF, či OWL [34] alebo
SPARQL, Tim Berners-Lee definoval tzv. 5 hviezdičkovú stupnicu kvality otvorených dát
[2], ktorá je zobrazená na obrázku 2.
Obr. 2 – klasifikácia FiveStar Open data
Zvaná přednáška
43
Čím viac hviezdičiek, tým sú dáta (či už otvorené alebo nie) kvalitnejšie z pohľadu ich
strojového spracovania. Je všeobecne známe, že napr. z dátami v exceloch sa pracuje lepšie
než s dátami v PDF formáte, no na druhej strane zase pokiaľ sú dáta v CSV, resp. XML
[41] tak to je ešte lepšie než excely. Čiže to sme sa dostali na 3 hviezdičky. Ak však
začnem dáta vnímať ako RDF zdroje, tak ich môžem prostredníctvom ontológií pridať im aj
význam, čiže sme na 4 hviezdičkách. Ak navyše použijem štandardizované ontológie ako
napr. FOAF pokiaľ mám dáta o ľuďoch, alebo GeoNames [11] ako definovať geografické
dáta a mnohé iné, dostávam sa na najvyššiu možnú úroveň 5 hviezdičiek, ktorá sa nazýva
LinkedData. A to je to podstatné, čo je dôležité pre verejné dáta. Keby boli napr. datasety
Register geodetov a Register pharmaceutov reprezentované cez prepojené dáta, tj. v tvare
tripletov, tak by sa s tými dátami pracovalo veľmi ľahko, logicky a efektívne. Už len keby
som tieto dva datasety vložil do jednej databázy, automaticky mi vzniknú prepojenia cez
foaf:Person triedu, pretože oba datasety sú o osobách, takisto mohli by sa prepojiť cez
niektoré časti adresy, ako napr. rovnaké mesto, ulica, či dokonca dáta by sa prepojili aj cez
prípadné rovnaké mená, priezviská, atď. Potom by som mohol veľmi jednoducho
vykonávať takéto dopyty: Vrát mi geodetov a pharmaceutov z Bratislavy Staré Mesto.
Alebo, vrát mi všetky osoby ktoré sa volajú Slávko Líška, a podobne.
3 Aktuálny žalostný stav sémantiky v otvorených dátach
V tejto kapitole sa pokúsim opísať aktuálny stav kvality verejných dát na Slovensku, hoc
subjektívne. V gescii Ministerstva Financií SR prebieha proces štandardizácie verejných
dát, ktorého produktom sú Štandardy pre informačné systémy verejnej správy [16]. Ako
zástupcovi ITAS [] sa nám dostalo pocty zúčastňovať sa týchto stretnutí. Tému
sémantického webu, resp. kvality otvorených sme ihneď vytiahli na stôl. Samozrejme že
predstavitelia verejnej správy nemali o téme žiadne informácie, čo nie je nič nové na
Slovensku, a ďalší dôležitý zástupca ako SOIT [25], či opedata.sk [22] niečo o
problematike len čítali. Bohužiaľ, tieto spomenuté organizácie, resp. ich niektorí konkrétni
zástupcovia sa postavili k téme úplne negatívne. “Teraz nie je na to čas, ani priestor, aby
sme sa tomu venovali”. Pochopiť sa to dá, ak si predstavíme že ich čas konzumuje úsilie
s desaťročie starým prístupom. Žiadne štandardizované ontológie na popis verejných dát,
žiadne adoptovanie odporučení na tvorbu efektívnych (perzistentných) URI identifikátorov.
Nič také. Ich zámer je všetko si urobiť na novo po svojom. “To nevadí že v tomto
zaostávame za svetom. My ideme správnou cestou.” Debata teda je, ako má vyzerať popis
údajov. Ako sa majú volať tie či oné atribúty, či to má byť ValidFrom alebo EffectiveFrom,
atď. Na obrázku 3 môžete vidieť aktuálne riešený problém ako reprezentovať číselník obcí.
<CodelistItem>
<ItemCode>100</ItemCode>
<ItemName language=”sk”>Bratislava</ItemName>
<ItemName language=”en”>Pressburgh</ItemName>
<AdditionalContent>Má dvojúrovňovú štruktúru, keďže ...</AdditionalContent>
<Note language=”sk”>Meno tejto obce je fiktívne.</note>
44 Na strastiplnej ceste k otvoreným päťhviezdičkovým údajom v Slovenskej republike
<Includes>Krajské mesto</Includes>
<ValidFrom>15.01.2002</ValidFrom>
<EffectiveFrom>02.02.2002</EffectiveFrom>
<EffectiveTo>03.03.2003</EffectiveTo>
<CodelistItem>
Obr. 3 – Príklad súčasne diskutovaných štandardov
Prvá vec je, že tie pojmy ktoré tam vidíte, tj. CodelistItem, ItemCode, ItemName
predstavujú desaťročie starý prístup k reprezentácii dát. Aby som to vysvetlil, tak tým
desaťročím myslím to, že sémantický web má už viac ako desať rokov, a hlavnou vecou je
použitie ontológií, ideálne štandardizovaných, aby mali údaje význam. Nič také v danom
príklade nenájdete. Druhá vec je, že z danej definície vôbec neviem, že sa jedná o obec.
A ako bude vyzerať reprezentácia povedzme krajov? Zase tam bude CodelistItem,
ItemCode … atď? A čo keď niečo iné má tiež kód 100? Napr. nejaká odroda hrušky.
Nebude sa to potom miešať? Samozrejme bude. Čo je ale najhoršie na tomto prístupe?
Keby som chcel opäť skombinovať Dataset geodetov a Dataset pharmaucetov v takomto
formáte, musel by som to urobiť integračne, tj. musel by som urobiť mapovanie a dáta
vložiť do nejakej novej databázy ktorej relačný model by pokrýval rozsah predmetných
datasetov. Až potom by som môhol dopytovať nad takýmito dátami. Na odvodzovanie by
som musel samozrejme zabudnúť. Toto sú najväčšie problémy s verejnými údajmi. Aj keď
ich bude mnoho, pracovať s nimi bude nákladne, obtiažne, neefektívne.
Aby som to zhrnul. Z celého štandardizačného procesu mám veľmi zlý dojem. Pracovná
skupina ktorá tam pôsobí podľa mňa nie je dostatočne dobre zložená. Chýbajú tu
predstavitelia, ktorí majú k problematike spracovania verejných dát veľmi blízko a sú na
dostatočnom stupni poznania. Chýbajú tu predstavitelia FIIT, SAV [24], dokonca aj AFP
[1]. V súčasnosti to teda prebieha tak, že štandardy určuje najmä SOIT, či opendata.sk,
pričom občas sa ozve aj nejaký pracovník štátnej správy. Ja mám z toho taký pocit, že oni si
spoločne robia štandardy, nikto poriadne o tom nevie, treba hlavne spĺňať nejaké termíny, a
podobne. Rozumiem tomu tak, že dôvod prečo sa neotvoriť sémantických štandardom pre
otvorené dáta je, aby si súčasná pracovná skupina udržala svoju moc, resp. pozíciu v tejto
oblasti. To je už nadradené nad samotnú myšlienkou otvorenia dát, čo je podľa mňa
alarmujúce.
4 Návrhy na zlepšenie aktuálneho stavu
Aká cesta teda vedie z tejto zapeklitej situácie? Jednoducho taká, akú použili vyspelé
krajiny ako USA či Spojené kráľovstvo. Napr. USA má portál data.gov [28], kde je viac
než 88 tisíc datasetov. Nie všetky sú samozrejme päťhviezdičkové, no táto úroveň je tam
vyslovene žiadaná. Prečo vlastne? Kto má z toho osoh? Všetky strany! Od občana cez
firmu až po štát. Až keď sú dáta prepojené, až vtedy je možné robiť kvalitné štatistiky a
teda občan vidí, ako sa tu žije a čo je napr. mýtus. Podstatná nie je otázka, ktoré datasety
majú byť publikované, pretože to vôbec nemusí daný orgán štátnej správy riešiť. Každý si
môže použiť jemu vyhovujúci dataset na svoj prospech. Nad prepojenými dátami je oveľa
Zvaná přednáška
45
ľahšie, lacnejšie a efektívnejšie robiť aplikácie pre konečného používateľa. Dáta sa
nespájajú integráciou, dáta sú už integrované ich sémantikou. Aplikácia sa tým pádom
môže viac zamerať na prezentáciu, či funkcionalitu pre používateľa než na integráciu.
Spraviť potom aplikáciu, napr. pomocníka pre nákup pozemku, kde na vstupe označím na
mape predmetnú lokalitu o ktorej dostanem všetky súvisiace veci (dokumenty, osoby,
spoločnosti) nie je vôbec náročné. Pospájané verejné dáta tak vlastne vytvárajú platformu,
nielen databázu.
4.1
Adopcia sémantických štandardov EÚ/USA na údaje
Základným krokom k dosiahnutiu požadovaných štandardov pre verejné dáta na Slovensku
je použiť známe a štandardizované ontológie na popis dát, namiesto vymýšľania si
vlastných XML schém. V Európskej únii pod Európskou komisiou pre tento účel existuje
program ISA [12], ktorej skupina SEMIC [23] sa priamo podieľa na definovaní štandardov
pre popis verejných dát. Môžeme tu nájsť ontológiu na popis občana [31], registrovanej
firmy [35], datesetu verejnej správy [32] a mnohé iné . Zaujímavou informáciou je, že ani
SEMIC sa nesnaží tvoriť vlastné ontológie, resp. ísť vlastnou cestou ako sa to deje na
Slovensku kde sa tvoria vlastné štandardy a to ešte zastaralé. Naopak, SEMIC odporúča
svetové štandardy v danej oblasti, kde napr. v základe sú to všetko ontológie vytvorené a
spravované konzorciom W3C.
Z pohľadu EÚ dôvod nie je len ten, aby sa verejné dáta dali efektívne používať v rámci
jedného štátu. Dôvodom je aj používanie dát v rámci všetkých, alebo len vybraných
členských štátov ÉU. Predstavme si situáciu, že je potrebné urobiť report o počte čiernych
skládok v celej únii za dané obdobie. Tie dáta, ktoré sú 5hviezdičkové a majú teda
sémantiku sa dajú použiť ihneď pre základ reportu. Ostatné (napr. slovenské), ktoré sú
definované len prostredníctvom XML, resp. CVS, tj. sú na treťom stupni treba pracne
transformovať do jednotného spoločného tvaru. Do sémantiky.
4.2
Návrh na sémantické dátové štandardy SR
Vedomí si tohoto stavu, v našej spoločnosti sme spracovali tieto štandardy pre potreby
Slovenska a publikovali ich na pripomienkovanie na to určenom portáli EÚ Joinup už
v máji v roku 2013 [4] . Materiál sme prezentovali aj na štandardizačnom procese v rámci
Ministerstva Financií SR, no zbytočne. Nikto si nič neprečítal, a v podstate sme jednotlivé
stretnutia len zdržiavali. A pritom sa nejedná o žiadnu veľkú zmenu. Len namiesto
navymýšľaných pomenovaní pri popise jednotlivých dát sa použijú štandardné ontológie,
ktoré sa na tú či onú doménu používajú. Materiál v prvom rade predstavuje výber ontológií
a ich popis, na čo sa používajú, tak ako je to zobrazené na nasledovnom obrázku.
46 Na strastiplnej ceste k otvoreným päťhviezdičkovým údajom v Slovenskej republike
Obr. 4 – Ontológie navrhované pre sémantické dátové štandardy
Následne sme navrhli spôsob, akým sa budú identifikovať jednotlivé entity, tj. osoby,
kraje, lieky, úrady a podobne. Využili sme na to dokument ktorý robí štúdiu, ako sa robia
identifikátory v rôznych krajinách, pričom návrh zohľadňuje aj odporúčania, aby jednotlivé
identifikátory boli dostatočne stabilné (perzistentné) [15]. Nasledovný obrázok predstavuje
pár príkladov, ktoré reprezentujú niektoré entity.
Obr. 5 – Príklady navrhovaných URI identifikátorov
Aby sme boli čo najviac presní, špecifikáciu dátových štandardov sme doplnili aj
sémantické mapovanie medzi štandardizovanými ontológiami a súčasným Katalógom
dátových prvkov [17]. Úplný záver dátových štandardov je doplnenie špecifikácie
Zvaná přednáška
47
príkladmi o definovanie osoby, organizácie, adresy, územno-správnej jednotky,
geopriestorovej entity a lieku.
4.3
Slovpedia
Samozrejme, neostali sme len pri dátových štandardoch, ale vytvorili sme projekt Slovpedia
[5] , ktorý plní rovnakú funkciu ako data.gov.sk s rozdielom, že všetky datasety obsahujú
len 5hviezdičkové, tj. LinkedData údaje. Datasetov zatiaľ nie je mnoho, všetky sú tam
z dôvodu našej samostatnej aplikácie pre lieky, ktoré sú publikované jednak na Štátnom
ústave kontroly liečiv [26], no i na Ministerstve zdravotníctva [18], pričom niektoré dáta sú
ťahané z Európskej databázy []. Výhodou slovpedie je, že je ju možné prehliadať
prostredníctvom aplikácie Datalan Tripleskop [6]. Tripleskop umožňuje dáta prehliadať,
skúmať, dopytovať, či exportovať pre potreby tvorby štatistík. Vyhľadávať je možno
textovo, ďalej prostredníctvo dopytovacieho jazyka SPARQL ale aj vizuálne, kedy je
možné dopyt takpovediac nakresliť. Napr. Pri zadaní textu Concor do vyhľadávania systém
vráti množinu liekov Concor (pozn. liekov je viac, jeden obsahuje 5mg účinnej látky, iný
10mg a podobne.) Keď chcem želaný výsledkov preskúmať, resp. pozrieť si jeho okolie,
môžem si to vizualizovať to textovej tabuľky tak ako je to znázornené na nasledovnom
obrázku.
Obr. 6 – Niektoré vlastnosti lieku Concor zobrazené tabuľkou
Alebo alternatívne, môžem si podrobnosti o tomto lieku znázorniť ako graf, čo je
ilustrované na obrázku č. 7. Výhoda zobrazenia údajov v grafe je, že sa môžem postupne
posúvať cez jednotlivé uzly ďalej, čím vlastne traverzujem a skúmam graf.
48 Na strastiplnej ceste k otvoreným päťhviezdičkovým údajom v Slovenskej republike
Obr. 7 – Niektoré vlastnosti lieku Concor zobrazené grafom
Na horeuvedenom obrázku je možné vidieť, že liek Concor má exspiračnú dobu 60
mesiacov, že jeho výdaj je viazaný na predpis, že v rámci klasifikácie patrí do ATC skupiny
C07AB07, čo je Bisoprol. Keby som skúmal okolie práve tohoto uzla, tak by som zistil, že
Bisoprol je Selektívny betablokátor, ktorý je Betablokátor (pozn. Existujú aj neselektívne
Betablokátory). A teraz príde ďalšia skvelá vec súvisiaca so sémantickým webom.
Keďže dotaz je vlastne definícia subgrafu, tak sa dotaz dá reprezentovať grafom, resp.
nakresliť. Z daného grafu lieku som odstránil všetky vlastnosti s výnimkou exspirácie a
ATC skupiny a rovnako som zmenil daný liek za premennú.
Obr. 8 – Graf reprezentujúci vizuálny dotaz
Zvaná přednáška
49
Týmto sa nakreslil vlastne dopyt „vrát mi všetky lieky ktoré majú ATC skupinu
C07AB07 a súčasne exspirácia je 60 mesiacov“. Systém po spustení daného dopytu vráti
zoznam liekov, ktoré vyhovujú týmto podmienkam.
Toto bol jednoduchý dotaz na prezentovanie možnosti technológie. Predstavme si ešte
pár iných. Napr. môj sen o ovocnom sade môže priblížiť dotaz: Chcem vidieť také
pozemky v extraviláne do 50km od Bratislavy, kde inžinierske siete sú v dosahu do 200m,
teploty v zime nie sú nižšie než -20 stupňov Celzia, sú vysporiadané a bez ťarchy. Keby
som sa zaujímal o ekonomickú zdravosť Slovenska, mohol by som sa chcieť spýtať: Chcem
vidieť zoznam firiem, kde je pracuje nejaký poslanec pričom predmet podnikania je blízky
k predmetu práce poslanca. Čiže robím dotaz nad datasetom firiem a datasetom verejných
činiteľov. Alebo spravím dotaz, kde chcem vidieť také spoločnosti, ktoré poberajú nejaký
finančný príspevok a zároveň sú neplatiči voči niektorým subjektom. Predstavte si, ako by
sa skvele dalo robiť s verejnými dátami, keby obsahovali sémantiku. Takýto prístup
odkrýva úplne netušené možnosti využitia verejných dát. Lenže, aj keď je už rok 2014, na
slovensku sa pristupuje k otvoreným údajom ako pred desiatimi rokmi. Smutné.
5 Na záver
Článok sa snažil priblížiť problematiku štandardizácie dátových štandardov informačných
systémov verejnej správy v Slovenskej republike a vysloviť znepokojenie nad nízkou
kvalitou ich výstupov. Z pohľadu 5starOpen data sa na Slovensku dlhodobo presadzuje len
tretí stupeň, čo je škoda, pretože čím väčší stupeň kvality dát, tým bude väčšia využiteľnosť
verejných dát. Náklady na dátovú integráciu výrazne klesnú a efektivita využiteľnosti
údajov bude neporovnateľne lepšia.
Ambíciou článku bolo v jednoduchosti priblížiť aj technológie, ktoré sémantický web
tvoria a načrtnúť výhody tejto technológie na prácu s verejnými dátami. Cieľom bolo na
jednej strane poukázať, že sa jedná o novú generáciu webu (Web 3.0) ktorý už mimo
Slovenska nastúpil pred desaťročím v zahraničí, a že za Sémantikou stojí základne webové
konzorcium W3C. Sémantický web poznajú na Slovensku s výnimkami len
v akademických oblastiach, no sú to už dlhé roky pričom často sme v tejto oblasti aj
zažiarili [9, 10]. Len bohužiaľ, proces štandardizácie dátových štandardov nie je tejto téme
momentálne naklonený. Pri tomto postupne predpokladám že až za 5 rokov sa začnú prvý
krát touto témou vážne zaoberať. Škoda tohto „odkladu“ a musím povedať, že aj doteraz
minutého času.
Na záver by som chcel len povedať, že ma na jednej strane mrzí, ako som zámerne
nevychválil SOIT či opendata.sk. Viem že urobili pre Slovensko mnoho dobrého. No za
súčasného stavu poznania procesu štandardizácie a ich postoja k sémantickým dátam to
jednoducho nejde.
Literatúra
1.
2.
3.
4.
Aliancia Fair Play. http://www.afp.sk [prístupné 31.8.2014].
Berners-Lee, T.: 5 Star Deployment Scheme for Open Data. http://http://5stardata.info/
[prístupné 31.8.2014].
Datalan: Pharmanet. http://www.pharmanet.sk [prístupné od 1.1.2015].
Datalan: Proposed Data Semantic Annotation Using Standardized Web Ontologies and
URI Identifiers to the Slovak Government.
50 Na strastiplnej ceste k otvoreným päťhviezdičkovým údajom v Slovenskej republike
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
https://joinup.ec.europa.eu/elibrary/case/proposed-data-semantic-annotation-usingstandardized-web-ontologies-and-uri-identifier [prístupné od 1.1.2015].
Datalan: Slovpedia. http://www.slovpedia.sk [prístupné od 1.1.2015].
Datalan: Tripleskop. http://www.tripleskop.sk [prístupné od 1.1.2015].
European Drug Database. http://www.emcdda.europa.eu/eldd [prístupné 31.8.2014].
Fakulta informatiky a informačných technológií. http://www.fiit.stuba.sk [prístupné
31.8.2014].
Fakulta informatiky a informačných technológií. Personalized Web Group.
https://wiki.fiit.stuba.sk/research/seminars/pewe/ [prístupné 31.8.2014].
FOAF.SK. Sociálna sieť firiem. http://foaf.sk [prístupné 31.8.2014].
Geonames: GeoNames Ontology.
http://www.geonames.org/ontology/documentation.html [prístupné 31.8.2014].
ISA – Interoperability Solutions for European Public Administrations.
http://ec.europa.eu/isa/ [prístupné 31.8.2014].
IT Asociácia Slovenska. http://itas.sk [prístupné 31.8.2014].
Kvasnička, V., Pospíchal, J.: Algebra a diskrétna matematika. STU Bratislava, 2008.
Loutas, N.: 10 Rules for Persistent URIs.
https://joinup.ec.europa.eu/community/semic/document/10-rules-persistent-uris
[prístupné 31.8.2014].
Ministerstvo financií SR. http://www.informatizacia.sk [prístupné 31.8.2014].
Ministerstvo financií SR. Katalóg dátových prvkov.
http://www.informatizacia.sk/ext_dok-mpk_priloha_2/4464c [prístupné 31.8.2014].
Ministerstvo zdravotníctva. http://www.sukl.sk [prístupné 31.8.2014].
Národná agentúra pre sieťové a elektronické služby. http://data.gov.sk [prístupné
31.8.2014].
Národná agentúra pre sieťové a elektronické služby. Ústredný portál verejných služieb.
http://slovensko.sk [prístupné 31.8.2014].
Návrat, P.: Umelá inteligencia. STU Bratislava, 2002, 2006.
Opendata.sk. http://opendata.sk [prístupné 31.8.2014].
SEMIC - Semantic Interoperability Community.
https://joinup.ec.europa.eu/community/semic/description [prístupné 31.8.2014].
Slovenská akadémia vied. http://ikt.ui.sav.sk/ [prístupné 31.8.2014].
Spoločnosť pre otvorené informačné technológie. http://www.soit.sk [prístupné
31.8.2014].
Štátny ústav pre kontrolu liečiv. http://www.sukl.sk [prístupné 31.8.2014].
XMLNS.com: FOAF – Friend of a Friend Vocabulary. http://xmlns.com/foaf/spec/
[prístupné 31.8.2014].
US Government. http://data.gov [prístupné 31.8.2014].
W3C: http://www.w3.org/ [prístupné 31.8.2014].
W3C: Core Location Vocabulary.
https://joinup.ec.europa.eu/asset/core_location/description [prístupné 31.8.2014].
W3C: Core Person Vocabulary.
https://joinup.ec.europa.eu/asset/core_person/description [prístupné 31.8.2014].
W3C: Data Catalogue vocabulary. http://www.w3.org/TR/vocab-dcat/ [prístupné
31.8.2014].
Zvaná přednáška
33. W3C: HTTP - Hypertext Transfer Protocol. http://www.w3.org/Protocols/ [prístupné
31.8.2014].
34. W3C: OWL - Web Ontology Language. http://www.w3.org/OWL/ [prístupné
31.8.2014].
35. W3C: Registered Organization Vocabulary . http://www.w3.org/TR/vocab-regorg/
[prístupné 31.8.2014].
36. W3C: RDF - Resource Description Framework. http://www.w3.org/RDF/ [prístupné
31.8.2014].
37. W3C: Semantic Web Activity. http://www.w3.org/2001/sw/ [prístupné 31.8.2014].
38. W3C: SPARQL - Protocol and RDF Query Language.
http://www.w3.org/TR/sparql11-query/ [prístupné 31.8.2014].
39. W3C: URI – Uniform Resource Identifier. http://www.w3.org/wiki/URI [prístupné
31.8.2014].
40. W3C: URL – Uniform Resource Locator. http://www.w3.org/TR/url/ [prístupné
31.8.2014].
41. W3C: XML – Extensible Markup Language. http://www.w3.org/XML/ [prístupné
31.8.2014].
51
Skúsenosti so správou prepojených dát
Marek ŠUREK
Datalan a.s.
Galvániho 17/A, 821 04, Bratislava
[email protected]
Abstrakt. Spoločnosť Datalan sa niekoľko rokov venuje vývoju sémantických aplikácií
a nástrojov sémantického obsahu. V tomto príspevku sa budeme snažiť predstaviť niektoré
z vytvorených nástrojov ako aj koncových aplikácií. Nakoľko je komplexnosť jednotlivých
nástrojov netriviálna, budeme sa snažiť popísať ich hlavnú pridanú hodnotu. Na základe
našich dlhoročných skúseností sa budeme snažiť celý príspevok koncipovať v čo
najpraktickejšej rovine. Pri jednotlivých nástrojoch budeme jasne popisovať problémy,
ktoré je nutné riešiť pri vývoji sémantických aplikácií ako aj naše riešenie pre daný
problém. Jednotlivé kapitoly zároveň poskytujú aj námety na výskumné projekty v oblasti
sémantických technológií ako aj námety na participovanie pri tvorbe open source projektov,
ktoré sú nevyhnutné pre rozvoj sémantických technológií a ich väčšie rozšírenie.
Kľúčové slova: sémantický web, správa znalostných báz, odvodzovanie
1 Úvod
Sémantické technológie sú v súčasnosti etablovanou technológiou na poli IT. Je
nepochybné, že svojou štruktúrou a popisom sveta prostredníctvom ontológií ďaleko
prevyšujú vlastnosti relačných databáz. Za posledných pár rokov spoločnosť Datalan
vyvinula množstvo produktov a nástrojov, ktoré boli zamerané na prácu so sémantickým
webom a sémantickými technológiami. V nasledujúcich kapitolách si postupne predstavíme
jednotlivé produkty, ich základné vlastnosti a problémy, s ktorými sme sa museli pri vývoji
popasovať.
V jednotlivých kapitolách budeme často spomínať problémy a ich následné riešenia.
Tým ale nechceme v čitateľovi nabudiť dojem o nepriaznivom stave v danom odvetví.
Celkovo mapujeme históriu práce s technológiami a ich progresívny vývoj. Za uplynulé
obdobie sa situácia výrazne zmenila k lepšiemu a sémantické technológie vyzreli do
rozmerov plne kompetitívnych s inými riešeniami.
Z našich skúseností vieme povedať, že množstvo ľudí sa pozeralo na technológiu veľmi
negatívnym spôsobom ako na perspektívnu ale nepoužiteľnú vetvu v IT sektore. Pri
následnom prezentovaní našich produktov sme im dokázali jasne preukázať, že technológia
nie je len dostatočne vyzretá, ale dokáže poraziť aj mnohé súčasné najväčšie podnikové
riešenia. Dôležitým prvkom je obrovská informačná hodnota dát v sémantických
databázach, ktoré spolu s možnosťou odvodzovania poskytujú nespornú konkurenčnú
výhodu pre dodávateľov sémantických riešení.
Musíme podotknúť, že vlastnosti použitých technológií ďaleko prevyšujú akékoľvek
existujúce technológie a ich potenciál ešte ani zďaleka nie je naplnený. Spôsob akým sú
dáta popisované je prielomový a bude hrať v najbližších rokoch obrovskú úlohu pri tvorbe
novej generácie webu. Príspevkom chceme motivovať množstvo vývojárov k používaniu
sémantických technológií. Táto mladá technológia je v súčasnosti dostatočne vyzretá pre
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25-27.9.2014, pp. 53-61.
54
Skúsenosti so správou prepojených dát
použitie v komerčných aplikáciách, čoho jasným dôkazom sú aplikácie a nástroje vytvorené
v spoločnosti Datalan, ktoré sú nasadené v produkčných prostrediach.
2 OWLIM – GraphDB
2.1
Osobné skúsenosti
Jadrom každej sémantickej aplikácie je databáza, ktorá je schopná zachytiť a čo najlepšie
interpretovať znalosti v jednotlivých doménach. Spoločnosť Datalan v tomto ohľade
spolupracuje s firmou Ontotext, ktorá jej poskytuje v súčasnosti najkomplexnejšie riešenie
v oblasti sémantických triplestore databáz. Za dlhé roky, počas ktorých sme s týmto
dodávateľom spolupracovali, sme získali veľmi cenné skúsenosti, ktoré sme pretavili
v návrhoch a implementáciách našich produktov.
V počiatočných fázach našej spolupráce (2011), sa databáza OWLIM hrdila dodávkou
svojho riešenia anglickej televíznej spoločnosti BBC. Naše praktické skúsenosti ale
poukazovali na to, že v tomto období mala databáza značné problémy so stabilitou
i rýchlosťou, ktoré sú základom pre každú databázu. V tomto období sa stávalo, že vo
vývojárskom režime sme prišli o dáta, ktoré bolo nutné nanovo nahrať do databázy.
Celkovo môžeme povedať, že vlastnosti prvotných verzií (OWLIM 4.2 a skôr) neboli
vhodné pre komerčné využitie, hlavne kvôli svojej stabilite. Myslíme si, že aj to viedlo
mnohých potenciálnych vývojárov k tomu, že sa báli nasadzovať túto novú technológiu
v praxi. Následne takto nadobudnutú skúsenosť šírili okolo seba čo neprospelo k vývoju
technológie.
Od tejto chvíle sme sa aktívne začali podieľať na vývoji databázy OWLIM, kde sme
veľmi často komunikovali s dodávateľom a pripomienkovali jednotlivé funkcionality
a nahlasovali chyby, ktoré sme odhalili. V tomto smere musíme podotknúť, že za toto
obdobie, považujeme komunikáciu so spoločnosťou za nadštandardnú a mnohokrát máme
prístup k verziám, ktoré nie sú oficiálne prístupné širokej verejnosti. Takto sa dostávame
k novým funkcionalitám, ktoré vieme v predstihu pripomienkovať.
Výrazná zmena prišla s príchodom verzie 5.0, ktoré v dostatočne veľkom rozsahu
napravila negatívnu reputáciu. I v tomto prípade musíme poukázať na fakt, že v ranných
verziách tejto novej verzie dochádzalo pri určitých používateľských scenároch k výraznej
degradácií výkonu rôznych typov dopytov na databázu. V tomto období bola spolupráca so
spoločnosťou najintenzívnejšia nakoľko kvalita databázy výrazne ovplyvňovala nami
vyvíjané produkty. Celkovo môžeme povedať, že všetky problémy boli úspešne odstránené
a od verzie 5.2 sme nepocítili žiadne nepriaznivé a neočakávané správanie databázy.
Každá ďalšia nová verzia databázy zvyšovala vývojársky komfort a čo najdôležitejšie,
zvyšovala rýchlosť dopytovania. V súčasnosti sa spoločnosť rozhodla premenovať databázy
OWLIM na databázu GraphDB resp. OWLIM 6.0. Zároveň v nových verziách sa vo
výraznej miere zameriava na najväčších partnerov, ktorý využívajú ich Enterprise verziu.
Výhodou tejto verzie je klastrovanie databázy na niekoľko nezávislých strojov. Táto
funkcionalita bola poskytovaná už v predchádzajúcich verziách, ale až od tejto verzie
obsahuje robustný model.
2.2
Zaujímavé vlastnosti databázy
Databáza OWLIM obsahuje množstvom veľmi zaujímavých funkcionalít, ktoré
poskytujú vývojárom neobmedzené možnosti. Jednou z nich je Plugin API, pomocou
ktorého môže vývojár pristupovať k dátam na tej najnižšej úrovni. Takto je možné vytvárať
Zvaná prezentace
55
nové komponenty priamo na úrovni databázy, ktoré rozširujú vlastnosti databázy. Jednou
z nich je napríklad vstavaná integrácia s rámcom Lucene. Tento komponent poskytujú
samotný autori OWLIM databázy a využíva rovnaké API, aké je poskytnuté ostatným
vývojárom.
Pri našej práci sme takisto využili možnosti, ktoré nám poskytuje OWLIM Plugin API.
V našom prípade sme vytvorili prototyp komponentu, ktorý slúži na zachovanie
konzistencie v databáze. Nakoľko do tripletovej databázy je možné uložiť akékoľvek údaje
nezávislé na schéme, komponent slúžil ako prostriedok na zachovanie konzistenice,
nakoľko overoval jednotlivé trojice pri vkladaní do databázy proti ontológie. Zároveň daný
komponent zaobstráva zjednodušenie písaniu dopytov, ktoré pracujú s dátovými
vlastnosťami. Komponent jednoducho dopĺňa dátové vlasnosti do dopytu pred spustením
nad databázou.
3 Albert
3.1
Motivácia
Dôležitou vlastnosťou sémantických databáz je schopnosť odvodzovať nové poznatky
z existujúcej bázy znalostí. V súčasnosti je najrozšírenejší pravidlový spôsob
odvodzovania, kde si používateľ definuje pravidlá, ktorých dôsledkom je vytvorená
znalosť.
Pri tvorbe komplexných aplikácií je nutné počítať s mnohými stupňami odvodzovania
s rôznou výrazovou silou a v rôznom čase. Databáza OWLIM poskytuje odvodzovač, ktorý
je do určitej miery schopný pokryť potreby moderných aplikácií, no nie všetky.
V prvotných fázach našej práce so sémantikou sme venovali veľké úsilie hľadaniu možných
riešení, ktoré by zabezpečili požadovanú funkcionalitu pre vyvíjané koncové aplikácie
v oblasti odvodzovačov, ktoré limitovali funkcionalitu navrhnutých aplikácií.
Prvým problémom pri odvodzovaní pomocou nástroja OWLIM je jeho spôsob
materializácie. Pri každom vložení údajov do databázy sa spustí odvodzovač, ktorý sa snaží
všetky pravidlá aplikovať na existujúcu bázu dát. Tento princíp sa volá aj úplná
materializácia. Nespornou výhodou tohto prístupu je zvýšená rýchlosť dopytovania nad
takouto databázou. Nevýhodou je práve spomalenie UPDATE operácií a čo je ešte
dôležitejšie, nemožnosť definovania časových postupností a závislostí pri odvodzovaní.
Vývojár nemá plnú kontrolu, kedy sa ktoré pravidlo aplikuje, čo pri komerčných
aplikáciách môže byť kľúčové.
Ďalším problémom vstavaného odvodzovača v databáze OWLIM je nižšia vyjadrovacia
sila jazyka v ktorom je možné pravidlá zapísať. Komplikované pravidlá, ktoré sú závislé na
agregačných funkciách resp. porovnaniach, nie sú v súčasnej verzii databázy
OWLIM/GraphDB možné.
Počas nášho interného testovania sme zistili, že riešením je práve použitie SPARQL
dopytov na odvodzovanie nových znalostí. Dopyty/pravidlá v jazyku SPARQL 1.1
poskytujú dostatočnú výrazovú silu na zapísanie ľubovoľných pravidiel. V prvotných
fázach odvodzovania nových znalostí pomocou jazyka SPARQL sme sa museli vyrovnať
s obrovskou pamäťovou náročnosťou riešenia. Túto nevýhodu sme časom dokázali
odstrániť a to pri získaní niekoľko násobne vyššieho výkonu. Dôležitým architektonickým
rozhodnutím bola schopnosť odvodzovať jednotlivé pravidlá na menších zvolených
dátových sadách. Vďaka tomu sa pamäťová náročnosť výrazne zmenšila. Súčasne sme
mnohé veci komunikovali so spoločnosťou Ontotext, ktorá optimalizovala správu pamäte
56
Skúsenosti so správou prepojených dát
a tým sa aj dodávateľ priamo podieľal na lepšení vlastností odvodzovania pomocou tejto
metódy.
Správne definovanie rozdeľovača dát na menšie časti nám dovolila vytvoriť spôsob
paralelného odvodzovania s využitím veľkej sily našich serverov. Tým je možné
paralelizovať veľké množstvo odvodzovania, čo je taktiež jeden z nedostatkov
odvodzovača OWLIM. Okrem samotného plnohodnotného využitia hardverových
komponentov pri zníženej záťaži na pamäť, bolo ďalším pozitívom výrazné zníženie času
odvodzovania.
I keď by sa z predchádzajúcich odsekov mohlo zdať, že odvodzovač, ktorý je
v databáze OWLIM je nepoužiteľný, nie je tomu úplne tak. Pravidlá, ktoré sú definované
napr. podľa OWL-RL, zvláda databáza s oveľa nižšou záťažou na výpočtové prostriedky.
Typickým predstaviteľom je odvodzovanie rdfs:subClassOf, ktoré nie je závislé na časovej
postupnosti alebo biznis pravidlách. Toto pravidlo je nutné aplikovať vždy v okamihu
vloženia dát do databázy. Preto je nutné vhodne poznať, kedy je vhodné odvodzovať nové
znalosti pomocou vstavaného odvodzovača v databáze OWLIM (obvykle pravidlá
definované v deskriptívnej logike) a kedy je vhodné použitie riešenia odvodzovania
pomocou SPARQL v kombinácii s rôznymi vylepšeniami (obvykle komplikované biznis
pravidlá)
Plánovanie odvodzovania, definovanie paralelizácie či samotných pravidiel nás viedli
k vytvoreniu komplexného agentového nástroja, ktorý spravuje jednotlivé úlohy. Tento
nástroj má kódové označenie Albert.
3.2
Vlastnosti nástroja
Albert sa stal veľmi dôležitý, nakoľko sa z neho stal nástroj pre komplexnú správu dát
sémantických aplikácií. Tým, že cieľom nástroja bolo jeho použitie v rôznych
sémantických projektoch spoločnosti, musel nástroj poskytovať čo najväčšiu škálu
vlastností, ktoré si postupne predstavíme.
Základom nástroja je jeho schopnosť vykonávať naplánované úlohy. Úlohy je možné
definovať na základe vytvoreného API, ale aj prostredníctvom XML konfiguračného
súboru. V ňom si vieme definovať následnosť úloh, ich závislosti vykonávania ako aj
množstvo vlákien, ktoré je možno použiť.
Rôzne aplikácie vyžadujú rozdielne nároky na úlohy, ktoré nástroj Albert poskytuje. To
nás viedlo k vytvoreniu sady definovaných úloh, ktoré sú použiteľné v mnohých
aplikáciách naprieč doménami. Vývojári tak nie sú nútení riešiť neustále tie isté problémy,
ale používajú predpripravené úlohy, ktoré si už len dokonfigurujú. Každá úloha má navyše
možnosť nastavenia počtu vlákien a tak paralelizáciu vieme dosiahnuť nie len v rámci
plánu úloh ale aj v rámci úlohy samotnej. Jednou z takýchto úloh je napríklad samotné
odvodzovanie pomocou SPARQL, no aplikácií je hneď niekoľko. Príklady ďalších úloh,
ktoré je možné v nástroji Albert definovať sú nasledovné :
1. Štatistické dopyty
2. Vytvorenie databázy
3. Načítanie dát do databázy
4. Volanie REST API iných aplikácií
5. Kopírovanie dát medzi databázami
Zároveň sú v nástroji definované ďalšie zásuvné moduly, ktoré sú svojou povahou
natoľko dôležité, že si ich popíšeme oddelene. Tieto moduly boli primárne vytvorené pre
jednu konkrétnu aplikáciu, no ich použitie nie je obmedzené danou doménou. Pre lepšie
pochopenie dôležitosti daných modulov spomenieme, že daná aplikácia pracovala
s neštruktúrovanými dátami, ktoré obsahovali veľkú dávku nekonzistentnosti a neúplnosti.
Zvaná prezentace
57
Modul na hľadanie podobnosti medzi objektami
Ako sme uviedli v predchádzajúcich odsekoch, naše aplikácie pracujú vo veľkej miere
s nepresnými dátami ako aj dátami, ktoré sú redundantné. Medzi prvými aplikáciami vo
vývoji bola preto aplikácia zaoberajúca sa identifikáciou redundantnosti dát a ich
následnému zlúčeniu. Výsledkom je skvalitnené vyhľadávanie nad očistenou bázou dát čím
šetríme zákazníkovi čas a aj peniaze. Skvalitnená báza dát môže slúžiť aj na kvalitnejší
prehľad nad samotnými dátami, kedy sú v štatistických dopytoch započítané naozaj iba
unikátne záznamy.
Komponent v nástroji Albert bol primárne určený na odhaľovanie podobnosti medzi
dátami. Výsledkom odhalenia podobnosti je vytvorenie interného predikátu sameAs
namiesto všeobecne známeho predikátu owl:sameAs. Dôvodom tohto použitia je veľmi
vysoká vyjadrovacia sila predikátu owl:sameAs. Nakoľko pracuje s dátami, ktoré nie sú
dokonalé, automatizovaným spôsobom nevieme povedať s úplnou istotou, či sú dané dve
inštancie objektu identické. Z tohto dôvodu sme vytvorili vlastné pravdepodobnostné
modely, ktoré sú založené na definovaní pravidiel naprieč jednotlivými vlastnosťami.
Zároveň je možné pre jednotlivé vlastnosti definovať aj váhy a mnohé ďalšie parametre,
ktoré skvalitňujú výsledky vyvodzovania totožnosti medzi objektami.
Nie všetky akcie je možné robiť automatizovane bez akýchkoľvek znalostí od človeka,
obzvlášť keď pracujeme v doménach, kde je kvalita vstupných dát nízka. Z tohto dôvodu
vie nástroj pracovať aj s používateľskou odozvou korektnosti vyvodenej identity medzi
inštanciami.
Pri určovaní totožnosti je nutné brať ohľad na všetky matematické vlastnosti totožnosti
ako reflexívnosť, tranzitívnosť a symetrickosť totožných indivíduí. Jedným z najväčších
problémov pri riešení totožnosti je šírenie matematických vlastností medzi skupinou
pravdepodobne totožných indivíduí. Majme dva rozdielne zhluky totožných nehnuteľností,
každý o 30 prvkoch. Na základe šumu v dátach a definovaných pravidlách je možné, že je
vyvodená totožnosť medzi jedným z prvkov prvého zhluku z jedným z prvkov druhého
zhluku. Takéto nesprávne určenie totožnosti ale vedie k prešíreniu sameAs naprieč
všetkými vlastnosťami. Tým dostávame jeden zhluk o 60 indivíduách, ktorý ale nie je
korektne spárovaný. Hľadanie dát, na základe ktorých vznikne spojenie a následné
prešírenie sameAs zabralo pri vývoji algoritmov na elimináciu tohto problému množstvo
úsilia. V súčasnosti sa vďaka množstvu podporných mechanizmov dokážeme aspoň
čiastočne tomuto problému vyhnúť a tak vytvárať skutočne skvalitnenú bázu dát.
Modul na čistenie dát
Ďalším komponentom, ktorý je súčasťou nástroja Albert, je nástroj na čistenie dát na
základe rôznych štatistických modelov. Základným predpokladom je korektné odhalenie
vzťahu sameAs medzi inštanciami. Následne komponent čistenia dát sa snaží odhaľovať
nekonzistentné údaje. Nakoľko pracujeme s rôznymi typmi údajov a pri určovaní totožnosti
si nemôžme byť úplne istý či sú údaje naozaj nesprávne, bolo nutné zvoliť menej agresívnu
metódu. Sémantické databázy sa javia ako ideálny spôsob na vysporiadanie sa s týmto
druhom problému. Riešením je definovanie kontextu(subgrafu), kde budú všetky
nekonzistentné a pravdepodobne nesprávne údaje presunuté. Týmto spôsobom neprídeme
o žiadne údaje a zároveň vieme v údajoch filtrovať na základe ich kontextu v ktorom sa
nachádzajú.
58
Skúsenosti so správou prepojených dát
4 Rámce na prístup k databáze
Pri práci s databázou potrebuje vývojár kvalitné API, ktoré mu uľahčí prácu s ňou. Túto
oblasť považujeme za jednu z kameňov úrazu, ktorá zabraňuje k masívnejšiemu rozšíreniu
sémantických databáz do komerčných aplikácií. Rámec Openrdf Sesame poskytuje
základné štandardizované rozhranie pre prácu s databázou. Prístup k databáze ale nie je pre
dnešnú dobu intuitívny. Samotné API by sa dalo prirovnať k JDBC API, ktoré je základom
pre Javu a relačné databázy. Každý prístup do databázy sprevádza veľké množstvo
opakujúceho sa kódu, ktorý je možné eliminovať. Zároveň musí programátor ošetrovať
a zachytávať pri každom volaní veľké množstvo výnimiek, čím sa stáva výsledný kód
veľmi neprehľadný.
Nepohodlná práca s databázou nás viedla k vytvoreniu databázovej vrstvy, ktorá značne
zjednodušuje prácu s databázou. Samotná idea práce vychádza z rámca Spring a jeho triedy
JdbcTemplate. Na základe vytvoreného API, ktoré sa svojou povahou podobá práve
JdbcTemplate triede sa nám podarilo výrazne zjednodušiť prácu s databázou. Pridanou
hodnotou rámca je okrem správy pripojení aj možnosť jednotným spôsobom spravovať
mapovanie výsledkov dopytu na Java doménové objekty. Vývojár pracuje jednotným
spôsobom s API a prípadné optimalizácie na pozadí rámca sa ho nedotknú. Tento projekt
dostal názov Teatime a je súčasťou všetkých aplikácií využívajúcich pripojenie
k sémantickej databáze v spoločnosti.
Projektu Teatime sa podarilo odstrániť množstvo nepotrebného kódu bez poklesu
rýchlosti aplikácie. Cieľom pre plnohodnotné veľké aplikácie je ale vytvorenie databázovej
vrstvy(ORM), ktorá sa podobá na Hibernate vrstvu pre SQL databázy. V tejto oblasti sme
analyzovali hneď niekoľko projektov. Nakoniec sme sa podľa rôznych kritérií rozhodli pre
nástroj RDFBean. Tento rámec je open source a poskytuje funkcionalitu veľmi podobnú
rámcu Hibernate. Dôležitou vlastnosťou rámca je, jeho nezávislosť na jednom dodávateľovi
databázového riešenia. Používateľ môže používať databázu OWLIM ale aj Jena, Virtuoso
a iné bez akejkoľvek zmeny v kóde. Sami sme niekoľko mesiacov prispievali k vývoju
tohto rámca tak aby sme docielili funkcionalitu, ktorá bola pre naše aplikácie veľmi
dôležitá.
K projektu RDFBean sa viaže aj implementácia Spring Data rámca. Tento rámec sme
takisto implementovali a poskytli pre opensource využitie. Výhodou tohto rámca je jeho
priama prepojenosť s rámcom Spring, pri použití Spring Data princípov. Spring Data je
projekt rámca Spring, ktorý zabezpečuje jednotné API naprieč rôznymi NoSQL
databázami.
Prvotné implementácie zabezpečujú základnú funkcionalitu rámca. V rozvoji tohto
rámca vidíme veľký potenciál aj do budúcnosti. Bez prepracovaného rámca pre prístup
k databáze, bude záujem komerčných firiem o sémantické databázy menej výrazný.
V oblasti mapovania výsledkov dopytu na objekty je priestor na vedecký výskum, nakoľko
je tu možnosť optimalizovať dopyty na čo najlepšie a najefektívnejšiu prácu s databázou.
V rámci možností bude i naďalej spoločnosť Datalan participovať na vývoji daných
rámcov, nakoľko si uvedomujeme ich dôležitosť pre komerčnú sféru a teda aj pre nás.
5 Tripleskop
Odlišná reprezentácia dát inšpirovala spoločnosť k výskumu odlišných spôsobov
vizualizácie sémantického obsahu. Zároveň sme sa snažili vytvoriť nástroj, ktorý bude v čo
najjednoduchšej podobe dostupný aj ľuďom, ktorí nie sú profesionáli v oblasti IT.
Výsledkom tejto práce je nástroj Tripleskop, ktorý reprezentuje údaje prostredníctvom
Zvaná prezentace
59
interaktívneho grafu. Pri jeho návrhu sme chceli poskytnúť vývojárom nástroj, ktorý je
schopný rôznymi spôsobmi vizualizovať jednotlivé vzťahy čo prispieva k ich ľahšiemu
pochopeniu.
Počas úvodných fáz sme sa zameriavali na použitie existujúcich riešení napr. Gruff. Pri
používaní týchto riešení sme ale narážali na limity pri vizualizácii dát čo znemožňovalo ich
dôkladnú analýzu. Preto sa časť vývojového oddelenia zaoberala návrhom
a implementáciou nástroja, ktorý je schopný plne pokryť nároky na prehliadanie
a analyzovanie sémantického obsahu.
Veľkou výhodou nástroja je jeho nezávislosť na platforme. Vytvorená aplikácia je
nezávislá na operačnom systéme ale aj internetovom prehliadači v ktorom je používaná. Pri
tvorbe boli použité štandardy technológií HTML 5 ale aj javascriptu. Nástroj je takisto
schopný vytvoriť dopyty v jazyku SPARQL pomocou vizuálnych prvkov bez znalosti
jazyka SPARQL.
Sémantický obsah je veľmi rôznorodý. Práve z tohto dôvodu je nástroj Tripleskop
obohatený o viacero implementácií rôznych vizualizácií dát. Analytik ale aj používateľ je
schopný zvoliť si intuitívnym spôsobom rozdielne typy zobrazenia, ktoré mu dopomáhajú
k lepšiemu pochopeniu dát v databáze. Analytik si vie konštruovať aj agregačné funkcie,
ktoré mu pomôžu lepšie analyzovať existujúce dáta. Nástroj obsahuje veľké množstvo
variability pri používaní od vyhľadávania pomocou textového SPARQL dopytu, cez
vyhľadávania pomocou textu v prirodzenom jazyku ale aj pomocou vizuálnej konštrukcie
dopytu. Používateľ sa môže jednoduchým spôsobom pripojiť k ľubovoľnej sémantickej
databáze. Tieto ale aj mnohé ďalšie funkčné vlastnosti sú súčasťou komplexného
vizualizačného a analytického nástroja Tripleskop.
6 Medicínska aplikácia
V úvodných častiach tohto článku sme uvádzali prevažne nástroje a rámce, ktoré sú
všeobecného charakteru. Predstavené nástroje patria medzi nami identifikované základné
súčasti sémantických aplikácií pracujúcich s triplestore databázami. Spoločnosť Datalan
vyvinula aj viacero koncových aplikácií s určenou doménou.
Oblasť medicíny patrí k prelomovým doménam v oblasti sémantického webu v praxi.
Vďaka vhodnej štruktúre dát sme implementovali softvérovú aplikáciu, ktorá je taktiež
zasadená do domény medicíny. Aplikácia má viacero vlastností, ktoré sú na trhu jedinečné
práve kvôli sémantike a odvodzovaniu nových faktov. Zároveň sú v tejto aplikácii použité
aj prvky spracovania prirodzeného jazyka a extrakcie sémantiky z neštruktúrovaného textu.
Jednou z pridaných vlastností aplikácie je automatizované vyvodzovanie interakcií
medzi liekmi/účinnými látkami. Základom celého procesu bolo vytvorenie ontológie
vzťahov v oblasti medicíny. Následne sme na základe konzultácií s odborníkmi v danej
oblasti boli schopní extrahovať dôležité informácie z SPC letákov publikovaných na
stránkach ŠUKL. Pomocou pravidiel a odvodzovania sme boli schopní odhaliť také
interakcie medzi liekmi, ktoré poskytujú odbornej verejnosti dôležité informácie pre rýchle
rozhodovanie pri predpise liečiv.
Aplikácia má takisto pokročilé textové vyhľadávanie, ktoré taktiež obsahuje prvky
sémantiky. Používateľ je schopný na základe predspracovaných dát s extrahovanou
sémantikou hľadať indikácie či kontraindikácie v liekoch. Medzi ďalšie vlastnosti produktu
môžeme spomenúť vyhľadávanie generických substitúcií či preskripcií, ktoré sú pre
odbornú verejnosť taktiež veľmi dôležité.
Pri vývoji tejto aplikácie sme sa museli vysporiadať s odlišnou množinou problémov
ako sme popisovali v predchádzajúcich kapitolách. Jednou z najväčších výziev bola
60
Skúsenosti so správou prepojených dát
anotácia SPC letákov, ktoré obsahujú veľké množstvo odborných termínov. Tie sa
nenachádzajú v štandardných slovníkoch od SAV a preto nie sme schopní korektne
lematizovať a správne anotovať takéto pojmy. Museli sme preto vyvinúť viacvrstvové
modely, ktoré iteratívnym spôsobom postupne anotujú viac a viac textu. Ďalšia z výziev pri
tvorbe tejto aplikácie bola zameraná na odvodzovanie interakcií medzi liekmi. Táto
operácia je výkonnostne veľmi náročná nakoľko veľmi veľké množstvo liekov navzájom
interaguje práve kvôli rozličným pravidlám vyhodnocovania interakcií.
7 Univerzálny sémantický vyhľadávač
Jedným zo spôsobov, ako zapracovať sémantiku do aplikácie je aj spôsob akým používateľ
komunikuje s aplikáciou. V tejto oblasti sme sa snažili vyvinúť nástroj, pomocou ktorého sa
používateľ môže pýtať pomocou prirodzeného jazyka. Výsledkom takejto aplikácie je
rámec Susan, ktorý dokáže konvertovať používateľské dopyty do sémantickej podoby – do
jazyka SPARQL. Údaje je možné vyhľadávať na základe ich sémantiky definovanej
v ontológií a nie na základe full textovej zhody textu dopytu.
Výsledky našej práce sú zaznamenané v diplomovej práci, ktorú autor tohto článku
vypracoval v spolupráci so spoločnosti Datalan. Jednotlivé algoritmy sú navrhnuté
doménovo nezávisle a zároveň sú schopné pracovať v tak náročnom jazyku akým je
slovenčina. Nakoľko je komerčné využitie dôležitým faktorom, prototyp sémantického
vyhľadávača bol vo zvolených testoch schopný odpovedať na používateľské dopyty do
60ms v 97% prípadov.
Okrem samotnej rýchlosti vyhľadávača sme v práci preukázali, že používatelia by radi
používali textové vyhľadávanie, no na základe ich skúseností z minulosti s existujúcimi
vyhľadávačmi, neveria výsledkom vyhľadávania. Aj to viedlo respondentov k prikloneniu
sa k formulárovému vyhľadávaniu, ktoré je schopné interpretovať priamo ich požiadavky.
V prvotných fázach vývoja vyhľadávača sme sa s touto požiadavkou nezaoberali, nakoľko
bol hlavným cieľom vysoká presnosť prepisu prirodzeného jazyka do jazyka SPARQL pri
čo najnižšej latencii odpovedí. V súčasnosti sú do vyhľadávača implementované aj
podporné časti, ktoré sú schopné transformovať dopyt v prirodzenom jazyku do podoby
formulárového vyhľadávania. Používateľ tak môže zadávať dopyt v plne prirodzenom
jazyku. Výsledkom je predvyplnený formulár so vstupnými dátami.
Tento stav považujeme za krátkodobí, nakoľko chceme používateľom navrátiť dôveru
v textové vyhľadávanie. Postupne plánujeme posúvať formulárové vyhľadávanie do úzadia.
Vývoj tohto modulu patrí v súčasnosti k jedným z výskumných aktivít spoločnosti.
8 Automatizovaný zber dát
Získavanie sémantiky z dobre štruktúrovaných dát je pomerne jednoduchá úloha. Problém
nastáva v okamihu, kedy sú údaje nepresné a neponúkajú dokonalú a jednotnú štruktúru.
Ideálnym prípadom je zber dát z rôznych zdrojov, kedy sú jednotlivé dátové modely
roztrieštené a je nutné ich zjednotiť jednotnou sémantikou.
Zber dát nie je triviálna úloha a vyžaduje si mnoho času na implementáciu a vývoj
metód, ktoré sú schopné spracovávať rôznorodé neštruktúrované dáta. Do tejto oblasti
spoločnosť investuje v poslednom odbobí nemalé prostriedky. Výsledkom je vytvorený
softvérový prototyp, ktorý poskytuje veľmi zaujímavé výsledky v oblasti zberu
neštruktúrovaných dát vo zvolenej doméne. Vytvorený zberač vie automatizovaným
Zvaná prezentace
61
spôsobom mapovať dáta do ontológie a tak zjednodušiť proces automatizácie anotácie
jednotlivých polí potrebných na zber dát.
Vyvinutý komponent sa skladá z množstva štatistických modelov no súčasne aj
komponentov, ktoré je možné použiť naprieč viacerými aplikáciami. Jedným z nich je aj
nástroj, ktorý je konvertuje prirodzený vstup adresy do normalizovanej formy. Na základe
použitých algoritmov a rámcov, sa nám podarilo postupom času zrýchliť pôvodné
algoritmy spracovania a normalizácie 20 000 nenormalizovaných adries za hodinu na
30 000 nenormalizovaných adries za sekundu. Zároveň je daný nástroj normalizuje dáta
s vysokou úspešnosťou prepisu do normalizovanej formy nad 98 percent.
Vytvorený konvertor adries navyše pracuje so štandardizovanou ontológiou, ktorá je
schválená naprieč teritoriálnymi entitami európskej únie. Nakoľko sme sa snažili
o všeobecnosť nástroja. V súčasnej podobe je nástroj konvertuje do jednotnej podoby
adresy dvoch rôznych krajín v dvoch rôznych jazykoch. Nástroj je okrem iného obohatený
aj o implementácie, ktoré zabezpečujú odhaľovanie teritoriálnych entít v neštruktúrovaných
textoch.
Nakoľko sme v súčasnej dobe na začiatku výskumu v tejto oblasti, plánujeme výsledky
práce spísať a prezentovať aj na vedeckých konkurenciách v budúcnosti. Prvotné výsledky
naznačujú, že smer nášho bádania by mohol priniesť očakávané ovocie.
9 Záver
I keď sú sémantické technológie oproti technológiám založených na SQL databázach
podstatne mladšie, v súčasnej dobe poskytujú dostatočné
vlastnosti na vývoj
kompetitívnych produktov na trhu. Práve vďaka špecifickým vlastnostiam databáz
poskytujú klientom pridanú hodnotu, ktorú je možné dosiahnuť s oveľa nižším úsilím ako
pri použití štandardných relačných databáz. V príspevku sme sa zamerali aj na
pomenovanie niekoľkých oblastí, ktoré nám počas vývoja aplikácie spôsobovali problémy.
Tie sú ale vo väčšine prípadov vyriešené úplne alebo aspoň na úrovni dostatočnej pre
bezproblémový beh aplikácií. Na základe dosiahnutých výsledkov plánuje spoločnosť aj
naďalej vývoj sémantických aplikácií, čím len podčiarkuje, že je spokojná s kvalitou
projektov postavených práve nad týmito technológiami.
Annotation:
Experience with management of semantic content
For many years, Datalan invests in developement of semantic applications and tools for
management of semantic data. In this paper, we introduce some of them, which were
directly developed within company’s research group. As complexity of particular tools is
not trivial, we try to summarize emerged problems during their developement and describe
their added value. Based on our practical experience over last few years, all problems are
analyzed in practical way, which gives reader inside look into semantic development team.
Our paper also contains multiple ideas for future research projects in area of semantic
technologies. At the same time, we present multiple open source projects which could speed
up growth of popularity of semantic technologies.
Digitalizace artefaktů paměťových institucí
Petr VRŠEK
ICZ a.s.
Na hřebenech II 1718/10, 140 00 Praha 4
[email protected]
Abstrakt. Přednáška zahrnuje problémy typizace paměťových institucí (společné a
rozdílné rysy), obecnou architekturu procesu digitalizace (ukládání a zpřístupnění
objektů), principy dlouhodobé archivace, model OAIS. Popsány budou informační
balíčky, jejich smysl a struktura. Závěrem bude popsán konkrétní dlouhodobý
digitální repozitář a jeho implementace.
Klíčová slova: digitalizace, dlouhodobé uchovávání digitálních objektů, zpřístupnění
digitálních objektů, artefakt, digital born objekt, digitální data, digitalizovaná data,
digitální objekt, metadata, monografie, periodika, šedá literatura, Long Term
Preservation (LTP), Open Archival Information Systém (OAIS), Producer Submission
Package (PSP), Submission Information Package (SIP), Archival Information Package
(AIP), Dissemination Information Package (DIP), protokol OAI-PMH
1 Úvod
Pod pojmem "proces digitalizace" chápeme obecně jednak podproces skenování fyzických
2D či 3D objektů jakoukoliv technologií do formy množiny digitálních obrazů co možná
nejvyšší dostupné kvality a jednak podproces bezpodmínečně nutného vytváření či
přebírání popisných, technických a strukturáních metadat, která musí být s příslušnými
digitálními obrazy nedílně spojena do jednoho celku, digitálního balíčku.
Cílem tohoto příspěvku není zabývat se digitalizací jako takovou, ale pozornost upřít
především na dlouhodobé ukládání digitálních balíčků, což je prozatím oblast poněkud
zanedbávaná.
Stručně bude pojednáno i o oblasti zpřístupňování digitálních balíčků, bez níž by
digitalizace neměla žádný smysl.
Pojem "artefakt" je používán jako synonymum pojmu "objekt" pouze z toho důvodu, že
je pracovníkům některých typů paměťových institucí bližší. Některé "artefakty" jsou přímo
"digital born" (např. digitální soubory typu .avi dokumentující vystoupení lidového
tanečního souboru), takže u nich nebudeme pojednávat o jejich digitalizaci (digitální již
jsou), ale o jejich dlouhodobém uložení resp. způsobu zpřístupnění široké veřejnosti.
S příchodem éry digital born objektů a digitalizace materiálních objektů došlo zákonitě
k potřebě tato digitální a digitalizovaná data (obecně digitální objekty) jak především trvale
a důvěryhodně ukládat v co nejvyšší kvalitě pro budoucí generace, tak je navíc okamžitě a
v přípustné nižší kvalitě prezentovat širokému okruhu zájemců, např. badatelů. Sloučit
řešení obou těchto protichůdných požadavků do jednoho univerzálního softwarového balíku
není řešením nejvhodnějším a právě níže popisovaná architektura jedno takové vhodné a
vícekrát ověřené řešení nabízí.
Řada institucí nejrůznějšího typu má specifické úkoly a probíhají v nich procesy, které
jsou zdánlivě neslučitelné s procesy institucí jiných, což je dáno i tím, že nejrůznější
DATAKON 2014, Jasná, 25.-27. 9. 2014, pp. 63-70.
64
Digitalizace artefaktů paměťových institucí
instituce spadají pod gesce nejrůznějších ministerstev. Přesto však většina institucí,
především tzv. "paměťových", má jeden superproces naprosto společný, který je tvořen
podprocesy: "tvorba digital born objektů" resp. "digitalizace 2D resp. 3D materiálních
objektů", "dlouhodobé až trvalé ukládání vzniklých digitálních objektů" a "co nejrychlejší
prezentace digitálních objektů co největšímu okruhu koncových uživatelů". Co to vlastně
jsou "paměťové instituce", jaké mají společné a jaké mají rozdílné rysy, bude popsáno dále.
Obecně lze konstatovat, že pod velmi medializovaným pojmem "digitalizace" se často
chápe pouhé "skenování" = "tvorba digitálních obrazových souborů", bez bezpodmínečně
souvisejících kroků, kterými například jsou: úprava obrazu, přímé pořízení popisných
metadat k jednotlivým obrazům resp. dotažení popisných metadat k těmto obrazům
z elektronických katalogů, logické uspořádání obrazů a jejich popisných metadat do
příslušných stromových struktur včetně popisů těchto uzlů vyšších úrovní stromové
struktury, konverze souborů .tif pořízených skenery do archivního bezeztrátového
reversibilního formátu .jp2 a prezentačního formátu .jpg, automatické (OCR) nebo
manuální vytěžování informací, vytváření ALTO (Analyzed Layout and Text Object) .xml
souborů a prostých textových souborů z automaticky vytěženého textu.
Závěrem procesu digitalizace jednoho fyzického objektu musí být vytvoření digitálního
objektu (zde pracovně tzv. PSP balíku = Producer Submission Package), většinou ve formě
zapakované adresářové struktury s různými typy souborů na různých úrovních, který
obsahuje jak archivní příp. i prezentační obrazy všech částí skenovaného objektu, tak i
všechna popisná, technická a strukturální metadata na všech relevantních úrovních této
struktury.
Termín "PSP" není žádným oficiálním pojmem či mezinárodním standardem, ale rozšířil
se v digitalizační komunitě prostřednictvím definice standardu Národní knihovny ČR, kde
je používán v rámci definice metadatových formátů pro digitalizaci periodik a monografií viz [1] a [2].
V tomto příspěvku bude pojem "PSP-balíček" používán obecně, jako výsledný produkt
digitalizace jakéhokoliv 2D či 3D fyzického objektu v souhlasu s výše uvedeným obecným
popisem, nikoliv jako konkrétní typ PSP definovaný standardem NK ČR.
Výsledný produkt digitalizace je nutno následně trvale a bezpečně uložit
v dlouhodobém, tzv. LTP (Long Term Preservation) systému, protože jinak obrovské
digitalizační náklady přicházejí nazmar.
Optimálním postupem je současně s exportem PSP-balíčků do LTP exportovat jejich
podmnožinu též do subsytému zpřístupnění, realizovaného většinou jako webový portál či
webová aplikace nad relační databází.
2 Typizace paměťových institucí a jejich sjednocující se potřeby
Paměťové instituce můžeme roztřídit podle různých hledisek, např.
 podle druhu institucí: knihovny, archivy, muzea, univerzity, galerie, výzkumné
ústavy
 nebo podle rozsahu jejich působnosti: privátní, obecní, regionální, celostátní,
evropské, světové
Mezi typy těchto institucí můžeme nalézt rozdíly v těchto oblastech:

v architektonických nárocích na budovy sloužící různým typům paměťových
institucí

v odlišných operacích s objekty

v užívané terminologii, standardech, postupech práce
Vybraný příspěvek


65
v organizačním začlenění institucí
v různých způsobech zpřístupnění objektů klientům:

čtenářům (knihoven) – artefakty: monografie, periodika, hudebniny, CD,
DVD, sochy, obrazy ….

badatelům (archivů) – artefakty: archiválie (prakticky cokoliv)

návštěvníkům (muzeí a galerií) – artefakty: muzejní a galerijní sbírky
(prakticky cokoliv)

studentům (univerzit) – artefakty: převážně šedá literatura, monografie,
periodika

pracovníkům (vědeckých ústavů) – artefakty: převážně šedá literatura,
monografie, periodika.
Mezi typy těchto institucí můžeme však nalézt i významné shody, které je možno popsat
v chronologické škále následovně:
 v době historické:
 existovaly pouze hmotné objekty (knihy, listiny, muzejní exponáty)
 existovaly pouze listinné katalogy (kartotéční lístky), archivní pomůcky a
listinné rejstříky
 se operace s objekty evidovaly pouze v listinné evidenci (např. akvizice,
výpůjčky, zápůjčky, opravy, ošetření, vyřazení,…)
 v době nástupu počítačů a především relačních databázových systémů:
 se evidence metadat objektů příp. i operací s objekty se převedla do
elektronického katalogu instituce, příp. množiny spolupracujících
programových modulů a databází
 v době nástupu velmi kvalitních a rychlých 2D a 3D skenerů nejrůznějších typů
(umožňujících zachránit před definitivním rozpadem velké množství historických
artefaktů nevyčíslitelné hodnoty, alespoň ve formě jejich digitálních obrazů a
popisů) a masovém nárůstu počtu digital born objektů, a to nejen úředních
dokumentů, ale i uměleckých artefaktů (videa, audiovizuální produkce) se podstatně
sjednotily potřeby všech paměťových institucí, protože:
 vůbec poprvé v historii vznikla paměťovým institucím potřeba nejen své
artefakty digitalizovat, ale ukládat je vlastně ještě jednou (nebo i vícekrát)
v digitální podobě a navíc je vzdáleně prezentovat
Současné klíčové potřeby všech typů paměťových institucí můžeme tedy shrnout do
následujících bodů:
 digitalizovat fyzické objekty
 bezpečně trvale uložit digitální i digitalizované objekty včetně jejich metadat a
zaručit jejich čitelnost a srozumitelnost v daleké budoucnosti
 vzdáleně zpřístupnit digitální i digitalizované objekty včetně jejich vybraných
metadat
Proč digitalizovat a trvale uchovávat image i metadata fyzických objektů?
 pro umožnění vzdáleného přístupu k fyzickým objektům
 pro případ zničení originálu z důvodu
 opotřebení fyzického objektu používáním
 degenerace materiálu fyzického objektu
 katastrofy v paměťové instituci
 kvůli pátrání po ukradených objektech
 kvůli tvorbě kvalitních replik fyzických objektů i ve vzdálené budoucnosti
66
Digitalizace artefaktů paměťových institucí
Na základě těchto potřeb můžeme navrhnout principiální schema architektury
informačního systému paměťové instituce.
3 Architektura informačního systému paměťové instituce
Hlavními komponentami informačního systému splňujícího výše popsané požadavky jsou
čtyři zcela nezávislé subsystémy, vzájemně komunikující přes příslušná rozhraní API,
každý se zcela specifickými úkoly. Jsou to:
 Digitalizační jednotka
 Systém dlouhodobého uchovávání, Long Term Preservation (LTP), vybudován dle
modelu OAIS
 Katalog objektů paměťové instituce s množinou nadstavbových aplikací
 Subsystém zpřístupnění s možností sklízení svého obsahu jinými systémy
Následuje obrázek navrhované architektury a její podrobnější popis:
3.1
Digitalizační jednotka
Pro každý typ instituce je vhodné navrhnout jinou kombinaci skenerů s přihlédnutím
k funkcím a finančním možnostem. Skenery jsou základem, k nim je však vždy potřeba
dodat digitalizační SW na sdíleném serveru, dostatek pracovišť a pracovních stanic,
operativní datové úložiště pro skeny a metadata, dostatečné personální zajištění
digitalizační jednotky.
Skenery jsou řady typů dle různých způsobů třídění, např.: knižní, dokumentové, robotické,
ruční, kamerové, portálové, bubnové, 2D, 3D atd.
3.2
Systém dlouhodobého uchovávání, Long Term Preservation (LTP), vybudovaný
dle modelu OAIS
Zajišťuje digitálním objektům po neomezenou dobu: životaschopnost (viability), čitelnost
(renderability), pochopitelnost (understandability), autentičnost (autenticity), identifikaci
(identification).
Vybraný příspěvek
67
Budován by měl být na základě mezinárodně nejuznávanějšího modelu OAIS (Open
Archival Information Systém) definovaném normou ISO - viz [3].
Funkční části modelu jsou znázorněny na následujícím obrázku. Model pracuje
s následujícími datovými entitami, jejichž význam je konkretizován v souladu
s navrhovanou architekturou paměťové instituce:
Submission Information Package (SIP)
 vstupní informační balíček vytvářený původcem (Producer), obsahuje obrazy a
metadata vzniklá v digitalizační jednotce či přímo digital born objekty. Balíčky SIP
jsou buď přímo totožné s výstupy digitalizační jednotky, čili s balíčky PSP
(Producer Submission Package), nebo se z technických a archivačních důvodů na
optimální SIPy z PSP ještě transformují.
Archival Information Package (AIP)

archivní informační balíček, který je dlouhodobě uložen v několika kopiích na více
archivních úložištích, optimálně v geograficky oddělených lokalitách
Dissemination Information Package (DIP)

výstupní informační balíček, který se operativně vytváří z balíčků AIP na základě
dotazu konzumenta archivu
Systém LTP dle OAIS se skládá ze základních funkčních modulů, zde popsány jejich
prakticky nejdůležitější činnosti a vlastnosti:
 Ingest (příjem) kontroluje syntaxi i sémantiku SIPů přijímaných od původce
(Producer). Vytváří z obrazů a metadat obsažených v SIPech AIPy a tyto v několika
identických kopiích ukládá do několika nezávislých, geograficky oddělených
archivních úložišť (Archival Storage). Samotná metadata vytěžená ze SIPů ukládá
do databáze (Data Management).
 Acces (přístup) umožňuje konzumentovi (Consumer) na základě dotazů získat jak
informace o uložených datech z modulu Data Management, tak přímo data samotná
ve formě balíčků DIP.
 Preservation Planning (plánování uchovávání) spouští v pozadí periodické kontroly
všech kopií uložených AIP a při zjištění chyby nějaké kopie ji nahražuje kopií
68
Digitalizace artefaktů paměťových institucí
správnou. Dále umožňuje plánování a realizaci dávkových migrací zastaralých typů
souborů na typy moderní. Původní balíčky AIP se nikdy nemažou, nýbrž se
"přebalují", čili ke starým souborům se "přibalují" soubory nově vytvořené.
 Administration (administrace) je modul, jehož prostřednictvím se vykonává správa
celého systému
Z praktických zkušeností vyplývá, že není vhodné využívat LTP systém přímo jako
systém zpřístupnění pro velkou množinu uživatelů, či dokonce veřejnost, protože jeho
zdroje se musí využívat především na příjem a kontrolu balíčků a na periodické uchovávací
akce, přičemž vybavovací doba obrovských archivních úložišť je z principu dlouhá, už i
vzhledem k tomu, že se často kombinují různé typy digitálních úložišť (s přímým
přístupem, se sekvenčním přístupem) pro jednotlivé sady kopií AIP.
Modul Access je vhodný pro "insidery" LTP systému, tedy administrátory, archiváře,
knihovníky, muzejníky, galeristy, atd. převážně pro ten účel, že potřebují z nejrůznějších
důvodů získat z LTP originální, velmi kvalitní a objemné digitální obrazy artefaktů pro
publikační účely, či chtějí část obsahu LTP vyexportovat na jiné úložiště, přičemž na
vybavovací době DIP příliš nezáleží.
Pro přístup většiny uživatelů je optimální vybudovat speciální, nezávislý, velmi rychlý
subsystém zpřístupnění, obsahující pouze podmnožinu originálních metadat a pouze
degenerované (silně komprimované) kopie archivních obrazů.
3.3
Katalog objektů paměťové instituce
Je to architektonicky nejstarší komponenta, specifická dle typu instituce. V metadatech
objektu se evidují jak vlastnosti objektů, tak historie operací s objekty.
Katalog eviduje objekty většinou v hierarchické struktuře, popisná metadata eviduje ke
každé úrovni. Dříve existovaly spíše specifické metadatové modely, podle typu instituce.
Metadatové modely jsou v neustálém vývoji, existuje snaha o namapování atributů do
modelů univerzálních – pro všechny typy institucí.
Nad katalogem existuje velká množina nejrůznějších aplikací, jak postupně
v paměťových institucích chronologicky vznikaly, např. výpůjční systém, správa fondu,
restaurování fondu, systém zápůjček atd.
3.4
Subsystém zpřístupnění
Obsahuje vybraná popisná metadata z balíčků AIP (obsažená většinou též v katalogu) a
umožňuje na jejich základě zpřístupňovat uživatelské (degenerované) kopie archivních
obrazů velké komunitě zájemců přes webové rozhraní.
Hlavní vlastností subsystému zpřístupnění musí být rychlá odezva při masivním
paralelním přístupu.
Mimo specifického webového uživatelského rozhraní disponují některé subsystémy
zpřístupnění i strojovým rozhraním podporujícím protokol OAI-PMH (Open Archives
Initiative – Protocol for Metadata Harvesting) pro sklízení metadat externími poskytovateli
služeb.
Nejrozšířenějším a nejuniverzálnějším metadatovým standardem popisných metadat je
Dublin Core (dc:) – viz [5], který je i základem metadatového schematu systému
Europeanahttp: //www.europeana.eu/, který umožňuje zpřístupnit informace o artefaktech
paměťových institucí napříč státy a typy paměťových institucí.
Je proto velmi vhodné, aby popisná metadata digitalizovaných objektů uložená v rámci
balíčků AIP v xml-souborech dle standardu METS – viz [4], obsahovala i sekci Dublin
Core, protože propagací metadat a uživatelských kopií digitálních obrazů z LTP-systémů
Vybraný příspěvek
69
do subsystémů zpřístupnění a následným sklízením subsystémů zpřístupnění resp. katalogů
paměťových institucí se tak informace o jednotlivých artefaktech i digitální obrazy těchto
artefaktů nejrůznějších typů paměťových institucí dostanou ke koncovému uživateli
prostřednictvím jeho jediného dotazu, necíleného na na konkrétní typ instituce.
4 Implementace LTP systému ICZ DESA edice DEA v Archivu města Brna
Stručně popíšeme jednu konkrétní implementaci repozitáře ICZ DESA edice DEA (LTP
systém vybudovaný dle standardu OAIS se základními vlastnostmi popsanými v kapitole
3.2). Tato implementace je součástí projektu "Digitalizace archivu města Brna", v jehož
rámci se digitalizují, dlouhodobě ukládají a veřejnosti zpřístupňují dokumenty sčítání lidu
od roku 1857 – 1900.
Stručné schema architektury celého projektu je znázorněno na obrázku níže.
Celý systém byl optimálně dekomponován na podsystémy různých dodavatelů, z nichž
LTP systém, na obrázku označený jako "Elektronická archivace – Systém digitálního
archivu" (v červeném čárkovaném obdélníku) vyvinula a dodala firma ICZ a.s.
Subsystému zpřístupnění tohoto projektu, na obrázku v modrém čárkovaném obdélníku,
je možno klást otázky na oficiální webové stránce Archivu města Brna – viz [6].
4.1
O digitalizovaných dokumentech
Operáty sčítání lidu jsou rozpadající se listiny velkých formátů převážně z 19. století, na
nichž jsou ručně, částečně kurentem, částečně latinkou, částečně česky, částečně německy,
částečně čitelně, částečně nečitelně zapsány sčítacími komisaři údaje o osobách bydlících
v roce sčítání v jednotlivých bytech brněnských domů.
Jmenné rejstříky jsou indexovými knihami obsahujícími jména osob z jednotlivých
ročníků sčítání a odkazující na příslušné domovní adresy. Tyto rejstříky, pečlivě vytvořené
archiváři v 19. století, umožnily vazbou osob na domy inteligentní vyhledávání operátů
podle osob a ročníků sčítání v subsystému zpřístupnění.
Díky projektu digitalizace nejsou již zdigitalizované rozpadající se operáty a jmenné
rejstříky vůbec přístupné a jsou uloženy v depozitáři archivu.
4.2
O systému ICZ DESA edice DEA
LTP systém lze dekomponovat na "Systém digitálního archivu" (což je veškerá OAIS
funkcionalita) a na "Systém archivního úložiště", což můžeme chápat jako nízkoúrovňový
systém pro pouhé ukládání dat. Tato dekompozice se dobře osvědčila již v řadě
implementací, protože v rámci "Systému archivního úložiště" je možno použít vějíř
nejrůznějších archivních technologií podle požadavků zákazníka (od prostých filesystémů
až po sofistikované archivační systémy) pouze pro jediný účel: umožnit uložit a číst
pojmenované AIP ve formě souborů .zip či jiných balíčkových souborů.
V dané implementaci exportuje modul Ingest systému DESA ve fázi tvorby AIP popisná
metadata a uživatelské náhledy do relační databáze Subsystému zpřístupnění, jejíž
konceptuální datový model je vytvořen tak, aby relativně rychle poskytl náhledy operátů a
jmenných rejstříků podle výběrových podmínek zadaných badatelem přes webové rozhraní
– viz [6].
Přímý přístup do archivu systému DESA mají pouze archiváři a správci systému, kteří
mohou získávat plnohodnotné balíčky DIP obsahující veškerá metadata a obrazy stran
operátů a rejstříků v archivní kvalitě. Na speciální, archivářem schválený dotaz mohou
získat balíčky DIP i badatelé.
70
Digitalizace artefaktů paměťových institucí
Literatura
[1] Hutař, J., Švástová, P., Kvasnica, J.: Definice metadatových formátů pro digitalizaci periodik, verze
1.5, www.ndk.cz/digitalizace/nove-standardy-digitalizace-od-roku-2011
[2] Hutař, J., Švástová, P., Kvasnica, J.: Definice metadatových formátů pro digitalizaci monografických
dokumentů
(monografií,
kartografických
dokumentů,
hudebnin),
verze
1.1.1
www.ndk.cz/digitalizace/nove-standardy-digitalizace-od-roku-2011
[3] Open archival information system - reference model - ISO 14721:2003, this standard has been revised
by: ISO 14721:2012. Wikipedie: http://en.wikipedia.org/wiki/Open_Archival_Information_System
[4] METS, Metadata Encoding and Transmission Standard, http://www.loc.gov/standards/mets/
[5] DCMI, Dublin Core Metadata Initiative, http://dublincore.org/
[6] Digitální archiv města Brna, http://digiarchiv.brno.cz/home
Annotation:
The paper focused on the typing problems of memory institutions (common and different features),
the general architecture of the digitization process (storage and access objects), the principles of longterm archiving, OAIS model. Information packages will be described, their purpose and structure.
Finally, the specific long-term digital repository and its implementation will be described.
Vybrané příspěvky
Spracovanie viacslovných pomenovaní
Ján GENČI1, Martin OLOŠTIAK2
1
Katedra počítačov a informatiky, FEI, technická univerzita v Košiciach
Letná 9, 042 00 Košice
2
Inštitút slovakistických, mediálnych a knižničných štúdií, PU v Prešove
Ul. 17. novembra 15, 080 01 Prešov
[email protected]
[email protected]
Abstrakt. Cieľom príspevku je informovať o prebiehajúcich aktivitách v oblasti
identifikácie a spracovania viacslovných pomenovaní resp. výrazov pre slovenský
jazyk a niektorých dosiahnutých priebežných výsledkoch.
Kľúčové slová: viacslovné pomenovania, viacslovné výrazy
1 Úvod
Jednou z mnohých úloh pri sémantickom spracovaní textov je identifikácia objektov
resp. činností objektmi vykonávaných. Objekty sú primárne v textoch reprezentované
podstatnými menami, činnosti slovesami. Najjednoduchším prvoplánovým spôsobom
identifikácie týchto konštrukcií je budovať databázu slov, ktorá eviduje slová a mapuje ich
na objekty, resp. činnosti. Pri aplikácii takejto databázy však veľmi rýchlo dospejeme
k prvým problémom spojeným s nejednoznačnosťou takejto transformácie – napr. slová
mier (subst. nom. sg. aj verbum – imperatív od mieriť), diel (subst. nom. sg., ale aj gen. pl.
– subst. dielo), zviera (subst. nom. sg. aj verbum zvierať – 3. os.). Tento problém je
pomerne známy a rieši sa rôznymi metódami dezambiguácie textu.
Bohatosť jazyka vedie k tomu, že jednotlivé slová na označenie všetkých objektov
a činností vo všetkých situáciách nestačia, a preto musíme používať slovné konštrukcie
zložené z viacerých slov, tzv. viacslovné pomenovania, resp. viacslovné výrazy – napr.
starý otec, vysoká pec, dať pokoj a pod. Viacslovné pomenovania predstavujú ďalší
problém sémantického spracovania textov, pretože je ich potrebné v textoch najprv
identifikovať a prípadne následne rozhodnúť, či skutočne ide o viacslovné
pomenovanie/výraz, alebo sa jedná o iný typ konštrukcie (napr. starý otec – ide o deda,
alebo o otca, ktorý je starý?).
Cieľom prezentovaného príspevku je poukázať na niektoré aktivity a parciálne
výsledky, ktoré sa realizujú v oblasti spracovania viacslovných pomenovaní pre slovenský
jazyk.
2 Viacslovné pomenovania/výrazy a aktuálny stav v slovenčine
Viacslovné pomenovanie/výraz je definovaný ako „idiosynkratická interpretácia
prekračujúca hranice slova” [5]. Zrozumiteľnejšie, „je to lexéma (jednotka lexikálneho
významu) tvorená dvoma alebo viacerými lexémami, majúca vlastnosti neodvoditeľné od
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 73-77.
74
Spracovanie viacslovných pomenovaní
vlastností individuálnych lexém, alebo ich zvyčajnej kombinácie“ [11]. Otázka
viacslovných pomenovaní v slovenčine ostávala pomerne dlho neriešenou problematikou.
Prvé lastovičky zrejme znamenali publikácie [6] a [7], širšou aktivitou je potom projekt
„Slovník viacslovných pomenovaní (lexikografický, lexikologický a komparatívny
výskum)” [2,4] riešený v rámci grantového program slovenskej Agentúry pre podporu vedy
a výskumu (APVV). Tento projekt sa pre nás nakoniec stal vstupnou bránou do projektu
ICT COST Action IC1207 - Parsing and multi-word expressions. Towards linguistic
precision and computational efficiency in natural language processing (PARSEME)
[10,12].
3 Identifikácia viacslovných pomenovaní
Pri identifikácii viacslovných výrazov/pomenovaní sa používajú dva základné prístupy:
a) manuálne spracovanie a b) automatické spracovanie. Automatické spracovanie môže byť
potom založené na i) lingvistických, ii) štatistických a iii) kombinovaných metódach.
Náš APVV projekt „Slovník viacslovných pomenovaní“, iniciovaný lingvistami, je
založený na klasickom manuálnom spracovaní, založenom na manuálnej excerpcii
termínov lingvistami a následným iteratívnym procesom revízie vybraných termínov.
V súčasnosti je excerpovaných okolo 60 tisíc viacslovných pomenovaní, ktoré v najbližšom
období doplníme frekvenciami excerpovaných termínov podľa štatistík 1 Slovenského
národného korpusu ([13]). Na základe [9], predpokladáme využiť charakteristiku bodová
vzájomná informácia (pointwise mutual information, PMI).
Automatizované spracovanie založené na lingvistických metódach sú založené na
metódach značkovania textu (POS (part-of-speech) tagger) a syntaktických a sémantických
metódach. Pre slovenčinu sú tieto metódy do značnej miery obmedzené, pretože neexistuje
dostatočná dátová základňa, ktorá by takéto spracovanie umožňovala. V tomto prípade je
možné spracovanie založiť iba na čiastočných zdrojoch dostupných v rámci projektov
Jazykovedného ústavu Ľudovíta Štúra – POS (part-of-speech) tagger, Slovenský
závislostný korpus (malá množina syntakticky anotovaných textov) [8].
Zaujímavou alternatívou pri lingvistických metódach je využitie dostupných zdrojov
v podobe rôznych typov slovníkov – synonymických, terminologických, či prekladových,
resp. ich kombináciou. Konštrukcie pozostávajúce z viacerých slov v synonymických
radoch môžu byť priamym zdrojom viacslovných pomenovaní, podobne ako heslá
v terminologických slovníkoch. Prekladové slovníky je možné využiť či už na extrakciu,
alebo overenie, či daná konštrukcia je viacslovným pomenovaním.
Okrem uvedených prístupov boli pokusy aj o uplatnenie štatistických metód na
identifikáciu viacslovných pomenovaní/výrazov. Podľa [1], miery ako bodová vzájomná
informácia, vzájomná informácia (mutual information), χ2 skóre, logaritmická vierohodnosť
(log-likelihood) sú často používanými, pričom práve miera bodová vzájomná informácia sa
zdá byť asi najlepšie schopná rozlíšiť viacslovné pomenovania/výrazy od iných jazykových
konštrukcií.
Zatiaľ sme experimentovali s bodovou vzájomnou informáciou, ktorá je definovaná
PMI(x,y)=log(p(x,y)/p(x)p(y)) [3], kde p(x,y) je pravdepodobnosť spoločného výskytu slov
x a y, a p(x) a p(y), sú pravdepodobnosti výskytu jednotlivých slov. Pravdepodobnosti
výskytu slov sme odvodili od frekvencie jednotlivých slov resp. ich bigramov v štatistikách
Slovenského národného korpusu [13], zároveň sme sa ten istý výpočet zopakovali na dátach
1
http://korpus.juls.savba.sk/files/prim-6.1/
Vybraný příspěvek
75
získaných z vyhľadávača Google (reportovaný ako približný počet výsledkov), a taktiež
sme overovali výskyt daného viacslovného výrazu v prekladovom slovníku. Výsledky pre
viacslovné pomenovania spojené so slovom otec sú prezentované v Tab. 1. Tabuľka je
rozdelená na štyri časti. Stĺpce tabuľky označené SNK a Google obsahujú frekvencie
jednotlivých slov viacslovných pomenovaní v zodpovedajúcich zdrojoch, teda v štatistikách
Slovenského národného korpusu a vyhľadávači Goole, pričom f(ab) je frekvencia
viacslovného pomenovania, f(a) a f(b) sú frekvencie jednotlivých slov, PMI je hodnota
bodovej vzájomnej informácie určenej na základe vzťahu uvedeného vyššie; stĺpec MWE
označuje, či ide skutočne o viacslovné pomenovanie a stĺpec Slovník označuje, či sa daný
viacslovný termín nachádza v slovensko-anglickom (A v danom stĺpci) a/alebo slovenskoruskom (R v danom stĺpci) prekladovom slovníku2.
Tab. 1: Výpočet bodovej vzájomnej informácie (PMI) a určenie MWE
krstný otec
prastarý otec
nebohý otec
starostlivý otec
svätý otec
nebeský otec
vzorný otec
milujúci otec
duchovný otec
otec biskup
hrdý otec
otec arcibiskup
nešťastný otec
starý otec
šťastný otec
vlastný otec
dobrý otec
f(ab)
1727
792
206
226
10885
1047
96
215
706
1111
208
310
92
11162
138
404
318
SNK
f(a)
3364
1581
3241
1271
44369
3651
1191
1897
14789
188224
10757
188224
8674
77050
33018
58045
144632
f(b)
188224
188224
188224
188224
188224
188224
188224
188224
188224
31464
188224
16478
188224
188224
188224
188224
188224
PMI
3,44
3,43
2,53
2,98
3,12
3,18
2,63
2,78
2,4
2,27
2,01
2
1,75
2,89
1,35
1,57
1,07
f(ab)
42500
11700
10100
6540
338000
10100
2270
3770
10100
10600
7570
4580
2420
60500
5880
13300
8030
Google
f(a)
58400
39600
38300
39900
2890000
118000
31500
61100
283000
4430000
345000
4430000
170000
6010000
1690000
5840000
9500000
MWE Slovnik
f(b)
4430000
4430000
4430000
4430000
4430000
4430000
4430000
4430000
4430000
386000
4430000
219000
4430000
4430000
4430000
4430000
4430000
PMI
3,22
2,82
2,77
2,57
2,42
2,29
2,21
2,14
1,91
1,79
1,69
1,67
1,51
1,36
0,89
0,71
0,28
A
A
RA
R
A
A
A
R
A
A
A
A
A
RA
A
R
Pre viacslovné pomenovania založené na slove auto, sme spracovali podobnú tabuľku.
Na základe týchto dát Tab. 2 prezentuje zhluky viacslovných pomenovaní pri zotriedení
podľa rôznych kritérií (f-SNK a f-Google znamenajú zotriedenie podľa frekvencie
viacslovných pomenovaní podľa korpusu resp. vyhľadávača Google, PMI zase zotriedenie
podľa hodnoty bodovej vzájomnej informácie spočítané podľa dát z SNK, resp. Google).
Zaujímavosťou je, že kým v prípade viacslovných pomenovaní v spojení so slovom otec,
najlepšie výsledky sme dosiahli zotriedením podľa frekvencie výskytu, v prípade spojení so
slovom auto, to bola práve bodová vzájomná informácia.
2
http://www.slovnik.sk
76
Spracovanie viacslovných pomenovaní
Tab. 2: Zhluky, zoradené podľa rôznych kritérií pre otec (vľavo) a auto (vpravo)
f-PRIM
f-Google
PMIPRIM
PMIGoogle
f-PRIM
f-Google
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
N
N
N
N
A
N
A
A
N
A
N
A
A
N
N
N
A
A
A
N
N
A
A
N
N
N
N
N
A
A
A
A
N
N
A
A
N
A
A
A
N
A
N
A
N
N
N
N
N
N
N
A
A
N
N
A
N
N
N
N
N
N
N
N
N
N
N
N
N
N
A
A
A
PMIGoogle
N
A
A
N
N
A
N
N
A
N
A
N
A
N
A
A
A
A
A
A
N
N
A
N
A
A
A
A
PMIPRIM
A
A
A
4 Záver
Cieľom príspevku bolo informovať o aktuálnom stave problematiky a prebiehajúcich
aktivitách v oblasti spracovania viacslovných pomenovaní a výrazov pre slovenský jazyk.
Poďakovanie
Táto práca bola podporená Agentúrou na podporu výskumu a vývoja na základe zmluvy
č. APVV-0342-11.
Literatúra
1.
2.
3.
Caseli H., Villavicencio A., Machado A., Finatto M.: Statistically-Driven AlignmentBased Multiword Expression Identification for Technical Domains. Proceedings of the
2009 Workshop on Multiword Expressions, ACL-IJCNLP 2009, pages 1–8, Suntec,
Singapore, 6th August 2009
Ivanová, M.: Kolokácie v korpuse, viacslovné pomenovania v slovníku. (Úvodné
poznámky k príprave slovníka viacslovných pomenovaní) In: Jazyk je zázračný
organizmus... Metamorfózy jazyka a jazykovedy. Zborník príspevkov venovaných
prof. PhDr. Ivorovi Ripkovi, DrSc., emer. prof. PU, pri príležitosti jeho životného
jubilea. Eds. M. Imrichová – J. Kesselová. Prešov: Filozofická fakulta Prešovskej
univerzity v Prešove 2013, ss. 132 – 147.
Mihalcea R., Radev D.: Graph-Based Natural Language Processing and Information
Retrieval. Cambridge University Press, 201
Vybraný příspěvek
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
77
Ološtiak M., Ivanová M., Genči J.: Slovník viacslovných pomenovaní (lexikografický,
lexikologický a komparatívny výskum). Koncepcia projektu. In: Slovenská reč :
časopis pre výskum slovenského jazyka. Roč. 77, č. 5-6 (2012), s. 259-274.
Sag I. A. et al.: Multiword Expressions: A Pain in the Neck for NLP (2002) in: Lecture
Notes in Computer Science, Vol. 2276, pp. 1-15.
Staš, J., Hládek, D., Juhár, J., and Trnka, M., Automatic Extraction of Multiword
Expressions using Linguistics Constraints for Slovak LVCSR. In: Proc. of the 6th
International Conference on Natural Language Processing and Multilinguality,
SLOVKO 2011, Modra, Slovakia, 2011, pp. 138-145.
Staš J. et. al: Automatic Extraction of Multiword Units from Slovak Text Corpora. In.:
Natural Language Processing, Corpus Linguistics, E-learning. In: Proc. of the 7th
International Conference SLOVKO 2013, Bratislava, Slovakia, 13–15 November 2013
Šimková M., Gajdošová K.: Slovenský závislostný korpus. Dostupné na:
http://korpus.juls.savba.sk/attachments/publications/2007-Simkova-GajdosovaSZK.pdf
Villavicencio A., Caseli H., Machado A.: Identification of Multiword Expressions in
Technical Domains: Investigating Statistical and Alignment-based Approaches. In:
Proceeding STIL '09 Proceedings of the 2009 Seventh Brazilian Symposium in
Information and Human Language Technology, Pages 27-35
ICT COST Action IC1207 Parsing and multi-word expressions. Towards linguistic
precision and computational efficiency in natural language processing (PARSEME).
http://www.cost.eu/domains_actions/ict/Actions/IC1207
Multiword expression. Wikipedia. http://en.wikipedia.org/wiki/Multiword_expression
PARSEME (PARSing and Multi-word Expressions). Towards linguistic precision and
computational efficiency in natural language processing http://typo.unikonstanz.de/parseme/
Slovenský národný korpus – prim-6.1-public-all. Bratislava: Jazykovedný ústav Ľ.
Štúra SAV 2013. Dostupný z WWW: http://korpus.juls.savba.sk.
Reprezentácia časových radov pomocou opakujúcich
sa vzorov
Jakub ŠEVCECH, Mária BIELIKOVÁ
Ústav informatiky a softvérového inžinierstva, Fakulta informatiky a informačných
technológií, Slovenská technická univerzita v Bratislave
Ilkovičova 2, 812 19 Bratislava
{jakub.sevcech, maria.bielikova}@stuba.sk
Abstrakt. Počas uplynulých rokov bolo navrhnutých veľa rôznych reprezentácií
časových radov, ktoré mali za úlohu redukciu dimenzionality a podporu rôznych
algoritmov na spracovanie časových radov. Pomerne zaujímavou skupinou sú
symbolické reprezentácie, ktoré umožňujú použitie rôznych algoritmov používaných
pri spracovávaní textu v úlohách spracovania časových radov. Tieto reprezentácie
však trpia nedostatkami pri porovnávaní časových radov za prítomnosti šumu a/alebo
natiahnutia na časovej osi alebo na osi hodnôt. V tomto príspevku navrhujeme
reprezentáciu časových radov založenú na transformácii opakujúcich sa vzorov na
symboly. Hlavným cieľom tejto reprezentácie je redukcia dimenzionality časového
radu pri zachovaní možnosti zohľadnenia šumu a posunutí pri porovnávania radov.
Základným komponentom navrhnutej reprezentácie časového radu sú opakujúce sa
sekvencie časového radu získané pomocou metriky na výpočet podobnosti časových
radov schopnej pracovať so šumom, posunutím a natiahnutím ako napríklad metóda
Spatial Assembling Distance (SpADe).
Kľúčové slova: prúd dát, reprezentácia časového radu, redukcia dimenzionality
podobnosť vzorov.
1 Úvod
So stále sa zväčšujúcim objemom dát produkovaných rôznymi senzormi alebo aplikáciami
sa musíme vysporiadať s problémami s ich uchovávaním a spracovaním. Doména
spracovania týchto veľkých objemov dát (nazývaná tiež veľké dáta, angl. Big Data) sa
počas ostatných rokov teší záujmu výskumníkov ako aj praktikov. Keď hovoríme
o veľkých dátach, tak máme väčšinou na mysli len veľké objemy dát. V roku 2001 však
Doug Laley definoval veľké dáta na troch dimenziách [9]: objem, rýchlosť a rôznorodosť.
Tieto dimenzie pomenovávajú vlastnosti dát, ktoré ich robia náročnými na spracovanie.
Neskôr, v roku 2011, Hopkins Brian doplnil túto definíciu o ďalšiu dimenziu [6]:
premenlivosť, ktorá sa odkazuje na veľkú premenlivosť hodnôt typickú pre spracovanie
veľkých objemov dát a spôsobuje problémy pri odlíšení zmysluplnej informácie od
náhodného šumu. V rôznych doménach (napr. rôzne analytické nástroje, finančné alebo
herné aplikácie) sú tieto dáta produkované a ďalej spracovávané v podobe prúdu dát.
Motiváciou pre takéto spracovanie sú rôzne problémy spojené s ich uchovávaním alebo
s potrebou poskytovať výsledky v čase vzniku týchto dát. Práve pri spracovávaní prúdu dát
sa do veľkej miery prejavujú problémy spôsobené rýchlosťou vzniku dát a ich
premenlivosťou. Tieto sú doplnené o obmedzenia prostriedkov na ich spracovanie (najmä
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 79-85.
80
Reprezentácia časových radov pomocou opakujúcich sa vzorov
jediný prechod cez dáta a obmedzená pamäť), s ktorými sa musia algoritmy na ich
spracovanie vysporiadať.
Jedným z prostriedkov na podporu efektívneho spracovania prúdu dát je redukcia
dimenzionality pomocou transformácie na inú reprezentáciu. Počas uplynulých rokov bolo
navrhnutých množstvo reprezentácií časových radov, ktoré redukujú ich dimenzionalitu
a poskytujú podporu pre rôzne algoritmy, ktoré ich ďalej spracovávajú. Takéto časové rady
sú predmetom rôznych úloh analýzy dát ako je napríklad zhlukovanie, klasifikácia, detekcia
anomálií alebo hľadanie často sa opakujúcich vzorov [1].
V príspevku prezentujeme niekoľko najčastejšie používaných reprezentácií časových
radov spolu s ich obmedzeniami a navrhujeme reprezentáciu, ktorá využíva transformáciu
opakujúcich sa vzorov v tvare časového radu na symboly pri reprezentácii časového radu.
Zvyšok príspevku je organizovaný takto. V kapitole 2 prezentujeme viacero
reprezentácií časových radov a metrík na porovnávanie týchto radov spolu s ich
vlastnosťami. V kapitole 3 navrhujeme symbolickú reprezentáciu časových radov
zohľadňujúci opakujúce sa vzory a v kapitole 4 diskutujeme naše závery a ďalšiu prácu.
2 Reprezentácie časových radov a metriky podobnosti
Ako viaceré porovnávacie štúdie ukázali [4, 11], existuje množstvo reprezentácií časových
radov, ktoré sa výrazne odlišujú svojimi vlastnosťami pri použití pri rôznych úlohách a
rôznych dátových sadách. Neexistuje teda jedna reprezentácia, ktorá by konzistentne
prekonávala svojimi vlastnosťami ostatné na rôznych dátových sadách ale je potrebné
vybrať si takú ktorá spĺňa konkrétne potreby.
2.1
Reprezentácie časových radov
V práci [7] autori opisujú jednu z najčastejšie používaných reprezentácií časových radov
PAA (z angl. Piecewise Aggregate Approximation), ktorá transformuje bežiace okno
konštantnej dĺžky nad časovým radom na priemer (alebo inú metriku) hodnôt v okne.
V tejto práci autori porovnávajú túto metódu s ďalšími tromi najčastejšie používanými
reprezentáciami časových radov:
 Rozkladom singulárnych hodnôt (angl. Singular value decomposition)
 Diskrétnou Fourierovou transformáciou (angl. Discrete Fourier transform)
 Diskrétnou vlnkovou transformáciou (angl. Discrete wavelet transform)
Autori ukázali, že zložitejšie metódy ako je napríklad diskrétna Fourierova transformácia
poskytujú mierne lepšie výsledky v porovnaní s jednoduchšími metódami ako napríklad
PAA. Dosiahnuté výsledky sú však porovnateľné a jednoduchšie metódy poskytujú viacero
výhod ako je napríklad menšia výpočtová zložitosť, jednoduchosť na pochopenie a na
implementáciu a vo všeobecnosti sa lepšie hodia na spracovanie veľkého objemu dát.
V práci [10] autori prezentujú hierarchiu rôznych skupín reprezentácií časových radov,
pričom sa sústreďujú na symbolické reprezentácie a porovnávajú ich vlastnosti s inými
reprezentáciami. Symbolické reprezentácie transformujú rad reálnych hodnôt z časového
radu na rad symbolov, čo umožňuje používanie metód z oblasti spracovania textu.
Umožňujú použitie rôznych metód, ktoré nie sú aplikovateľné na sekvencie reálnych
hodnôt ako sú napríklad Markovovské modely, suffixové stromy, rozhodovacie stromy atď.
Jedna z najčastejšie používaných symbolických reprezentácií časových radov je SAX
(z angl. Symbolic Aggregate approximation) [10]. Táto reprezentácia najskôr transformuje
časový rad pomocou PAA a následne označuje jednotlivé PAA koeficienty pomocou
Vybraný příspěvek
81
symbolov, kde každý symbol reprezentuje jedno okno fixnej dĺžky z pôvodného časového
radu. Táto reprezentácia časového radu našla množstvo aplikácií pri analýze dát nad
časovými radmi ako je napríklad detekcia anomálií pomocou metódy HOT SAX (z angl.
Heuristically Ordered Time series using Symbolic Aggregate ApproXimation) [8], ktorá
slúži na hľadanie najobvyklejších sekvencií v priebehu časového radu. Metóda SAX však
zdieľa obmedzenia spoločné pre všetky symbolické reprezentácie časových radov: kvôli
transformácii okna s fixnou dĺžkou na neprekrývajúce sa symboly je veľmi náročné
pracovať s časovými radmi za prítomnosti šumu, posunutia a natiahnutia na časovej osi
alebo na osi hodnôt. V tejto práci navrhujme symbolickú reprezentáciu, ktorá umožňuje
pracovať aj pri takýchto obmedzeniach.
2.2
Metriky podobnosti
Popri rôznych reprezentáciách časových radov, bolo vytvorených množstvo metrík
podobnosti, ktoré dokážu s takto reprezentovanými časovými radmi pracovať. V práci [4]
autori prezentujú rozdelenie rôznych metrík na výpočet podobnosti medzi časovými radmi
do niekoľkých skupín:
 Metriky s fixným krokom porovnávajú i-tu hodnotu v jednom časovom rade s itou hodnotou v inom časovom rade. Medzi takéto metriky patria napríklad
Menhattanská vzdialenosť alebo Euklidovská vzdialenosť.
 Metriky s pružným krokom porovnávajú bod z jedného časového radu
s viacerými bodmi z iného časového radu. Medzi takéto metriky patrí DTW
(z angl. Dynamic Time Warping) alebo rôzne metriky, ktoré na výpočet
podobnosti využívajú počet operácií potrebných na transformáciu jedného
časového radu na iný.
 Metriky založené na prahu ako napríklad TQuEST, predpokladajú, že dva body
sú ekvivalentné v prípade ak rozdiel medzi nimi nepresahuje stanovený prah.
 Metriky založené na vzoroch ako napríklad SpADe (Spatial Assembling
Distance) porovnávajú tvary priebehu časového radu.
V kontexte našej práce sa sústreďujeme na metriky, ktoré sa dokážu vysporiadať so
šumom, natiahnutím a posunutím. Z rozdelenia vyššie, len metriky s pružným krokom
a metriky založené na vzoroch sú schopné pracovať so šumom a natiahnutím. Z tab. 1 však
vidíme, že metódy ako je DTW majú problém s natiahnutím a posunutím na osi hodnôt.
V našej práci sa preto sústreďujeme na metriky založené na vzoroch, konkrétne na metódu
SpADe [2].
Tab. 1. Vlastnosti metrík na porovnávanie časových radov. Tabuľka prebratá z [2].
Posunutie
času
Natiahnutie
času
Posunutie
hodnôt
Natiahnutie
hodnôt
Šum
Euklidovská
vzdialenosť
nie
čiastočne
nie
nie
nie
DTW
áno
áno
nie
nie
nie
CommonSub
áno
áno
nie
nie
áno
SpADe
áno
áno
áno
áno
áno
82
Reprezentácia časových radov pomocou opakujúcich sa vzorov
Metóda SpADe porovnáva lokálne vzory v zdrojovom časovom rade s posúvajúcim sa
oknom porovnávanom časovom rade. Lokálny vzor je reprezentovaný trojicou l=(θt,θa,θs)
zloženou z pozície, strednej hodnoty a identifikátorom jedného zo základných tvarov.
Obr. 1 reprezentuje proces porovnávania lokálnych vzorov s posúvajúcim sa oknom
v časovom rade.
Obr. 1. Príklad porovnávania lokálneho vzoru s posúvajúcim sa oknom v časovom rade
pomocou metriky SpADe. Obrázok prebraný z [2].
Vďaka rozkladu hľadaného vzoru na lokálne vzory metrika SpADe umožňuje vyhľadávanie
vzorov a podvzorov, a zároveň dokáže pracovať s šumom, natiahnutím a posunutím na
časovej osi a osi hodnôt. Ďalšou výhodou tejto metódy je možnosť jej použitia nielen na
statických kolekciách časových radov ale aj na prúde dát.
3 Opakujúce sa vzory ako reprezentácia časového radu
Navrhli sme reprezentáciu časových radov, ktorá adresuje problémy spojené so
spracovaním časových radov, ako sú zašumenie, posunutie a natiahnutie opakujúcich sa
vzorov na časovej osi alebo na osi hodnôt. Základnou súčasťou navrhnutej metódy je
transformácia opakujúcich sa vzorov v priebehu časového radu na symboly a vyhľadávanie
opakujúcich sa vzorov metódou odolnou voči šumu, posunutiu a natiahnutiu. Symbolická
reprezentácia časového radu nám umožňuje používať rôzne algoritmy z domény
spracovania textu pri analýze časových radov.
Naša metóda reprezentácie prúdu dát je inšpirovaná metódou na vyhľadávanie
frekventovaných vzorov v prúde dát prezentovanej v [5]. Autori tu použili model založený
na sklopenom okne (angl. Tilted window model) [3] ako prostriedok na ukladanie
frekventovaných vzorov na rôznych úrovniach granularity a ako prostriedok na zachovanie
pamäťových ohraničení pri uspokojivej presnosti počas spracovania potencionálne
nekonečných prúdov dát (obr. 2).
Vybraný příspěvek
83
Obr. 2. Model založený na sklopenom okne. S časom pohybujúcim sa do minulosti model
uchováva dáta na zvyšujúcej sa granularite. Obrázok prebraný z [3].
V práci [5] autori používajú model založený na sklopenom okne na ukladanie tabuliek
frekventovaných vzorov s do minulosti sa znižujúcou granularitou. Takto sú uložené
stabilne frekventované vzory, ktoré sa opakovane objavujú počas dlhých časových období
a rovnako sú uložené aj nové vzory, s vyššou granularitou – frekventované počas kratšieho
časového obdobia.
Túto metódu sme rozšírili o identifikáciu vzorov v tvare priebehu časového radu
pomocou metódy SpADe. SpADe používame na identifikáciu vzorov v priebehu časového
radu a na porovnávanie vzorov s prichádzajúcim prúdom dát. Nájdené vzory sa ukladajú na
viacerých úrovniach granularity, kde s rastúcim vekom vzoru sú uchovávané len vzory,
ktoré sa opakovane objavujú v prichádzajúcich dátach a teda sú stabilne frekventované za
dlhšie časové obdobie. Zároveň sa s vyššou granularitou uchovávajú aj novšie vzory a teda
sa navrhnutá metóda postupne rozširuje o stále nové vzory. Uchovávaním len dlhodobo
frekventovaných vzorov, s granularitou klesajúcou s vekom vzoru, je zabezpečené splnenie
pamäťových obmedzení, spojených so spracovaním potencionálne nekonečného prúdu dát.
V druhej fáze transformácie časového radu na nami navrhnutú reprezentáciu
vyhľadávame identifikované frekventované vzory v prichádzajúcom prúde dát
a transformujeme prichádzajúci prúd dát na prúd symbolov, kde každý nájdený vzor
reprezentujeme jedným symbolom. Obr. 3 znázorňuje príklad identifikovaných vzorov
v prichádzajúcom prúde dát a jeho transformáciu na prúd prekrývajúcich sa symbolov.
Obr. 3. Vzor identifikovaný v bežiacom okne pomocou metódy SpADe je transformovaný
na symbol reprezentujúci tento vzor. Časový rad sa transformuje na postupnosť
prekrývajúcich sa symbolov.
84
Reprezentácia časových radov pomocou opakujúcich sa vzorov
Každé prekrývajúce sa okno (s definovaným posunutím) je transformované na symbol,
ktorý reprezentuje vzor identifikovaný v tomto okne. Vďaka použitiu metódy SpADe na
porovnávanie vzorov s prichádzajúcim prúdom dát je možné zohľadniť šum, natiahnutie
a posunutie hodnôt na časovej osi ako aj na osi hodnôt. Vďaka transformácii časového radu
na prúd symbolov je zabezpečená redukcia dimenzionality ako aj možnosť použiť rôzne
algoritmy pre spracovanie textu na rôzne úlohy analýzy časového radu.
Pomocou navrhnutej reprezentácie vidíme priamočiare využitie v rôznych úlohách
analýzy prúdu dát, ako je napríklad klasifikácia na úrovni jedného časového radu, ale aj na
úrovni viacerých paralelne bežiacich časových radov, kde vstupom pre klasifikáciu môže
byť sada vzorov (symbolov) identifikovaných nad paralelnými časovými radmi v jednom
momente.
Ďalšou možnosťou využitia navrhnutej reprezentácie je predikcia vývoju časového radu
vďaka možnosti vyhľadávania podvzorov v prichádzajúcom prúde dát pomocou metódy
SpADe. Podobne je možné použiť túto metódu na priamočiaru identifikáciu anomálií
v časovom rade – ak sa prichádzajúce dáta nezhodujú so žiadnym existujúcim vzorom, ide
o anomálny stav.
4 Záver
Navrhli sme symbolickú reprezentáciu časového radu, ktorá transformuje opakujúce sa
vzory v časovom rade na symboly. Na identifikáciu opakujúcich sa vzorov používame
metódu SpADe, vďaka ktorej dokáže reprezentácia pracovať so šumom ako aj posunutím
a natiahnutím na časovej osi a na osi hodnôt. Na ukladanie opakujúcich sa vzorov
používame model založený na sklopenom okne, ktorý uchováva frekventované vzory
s granularitou znižujúcou sa s vekom nájdeného vzoru. Vďaka použitiu sklopeného okna je
možné použiť navrhovanú metódu nie len na reprezentáciu statických kolekcií dát, ale aj na
reprezentáciu potencionálne nekonečných prúdov dát.
Navrhnutá reprezentácia poskytuje priamočiare použitie v rôznych úlohách spracovania
časových radov ako napríklad klasifikácia, detekcia anomálií alebo predikcia. Aplikácie
navrhnutej metódy vidíme najmä v doménach, kde sú dáta produkované vysokou
rýchlosťou a s veľkou variabilitou, kde sa kladie dôraz na tvar priebehu sledovaných
časových radov ako je to napríklad pri monitorovaní finančných dát alebo analýze
prístupov k webovým aplikáciám.
V súčasnosti pracujeme na metrikách na porovnávanie transformovaných časových
radov na úrovni jednotlivých vzorov ako aj na úrovni postupnosti symbolov. Sústreďujeme
sa na aplikáciu navrhnutej reprezentácie v rôznych úlohách analýzy prúdov dát a na
porovnanie jej vlastností s bežne používanými reprezentáciami na rôznych typoch dát.
Poďakovanie: Táto publikácia vznikla vďaka čiastočnej podpore projektov VG1/0971/11 a
APVV-0208-10.
Literatúra
1.
2.
Aggarwal, C. C.: Data streams: models and algorithms. Springer, 31 (2007)
Chen, Y., Chen, K., Nascimento, M.: Effective and efficient shape-based pattern
detection over streaming time series. In: IEEE Transactions on Knowledge and Data
Engineering (TKDE) 24(2), IEEE (2012), 265-278.
Vybraný příspěvek
85
3.
Chen, Y., Dong, G., Han, J., Wah, B. W., Wang, J.: Multi-dimensional regression
analysis of time-series data streams. In: Proc. of the 28th international conference on
Very Large Data Bases, VLDB Endowment (2002), 323-334.
4. Ding, H., Trajcevski, G., Scheuermann, P.: Querying and mining of time series data:
experimental comparison of representations and distance measures. In: Proc. of the
VLDB Endowment, VLDB Endowment 1(2), (2008), 1542-1552.
5. Giannella, C., Han, J., Pei, J., Yan, X., Yu, P.: Mining frequent patterns in data streams
at multiple time granularities. Next Generation Data Mining, AAAI/MIT (2003), 191212.
6. Hopkins B.: (2011) Blogging From the IBM Big Data Symposium - Big Is More Than
Just Big. url: http://blogs.forrester.com/brian_hopkins/11-05-13-blogging_from_the_
ibm_big_data_symposium_big_is_more_than_just_big.
7. Keogh, E., Chakrabarti, K.: Dimensionality reduction for fast similarity search in large
time series databases. Knowledge and information Systems 3(3), Springer (2001), 263286.
8. Keogh, E., Lin, J., Fu, A.: Hot SAX: Efficiently finding the most unusual time series
subsequence. In: Fifth IEEE International Conference on Data Mining, IEEE (2005),
226-233.
9. Laney, D.: 3D data management: Controlling data volume, velocity and variety. In:
META Group Research Note, 6, (2001).
10. Lin, J., Keogh, E., Wei, L., Lonardi, S.: Experiencing SAX: a novel symbolic
representation of time series. Data Mining and Knowledge Discovery 15(2), Springer
(2007), 107-144.
11. Wang, X., Mueen, A., Ding, H., Trajcevski, G., Scheuermann, P., Keogh, E.:
Experimental comparison of representation methods and distance measures for time
series data. Data Mining and Knowledge Discovery 26(2), Springer (2012), 275-309.
Annotation:
Time series representation using repeating patterns
Over the past years multiple representations for time series were proposed. The main purpose of these
representations is dimensionality reduction and support of various algorithms in the domain of time
series data processing. Rather interesting group of time series representations are symbolic
representations allowing the employment of various algorithms from the domain of text processing.
These methods however suffer from the disadvantages associated with comparison of time series in
the presence of noise and/or shifting and scaling on temporal and amplitude dimensions. In this work,
we propose a novel symbolic representation of time series based on transformation of reoccurring
patterns into symbols. The main purpose of this representation is the dimensionality reduction on
evolving data streams while preserving the ability to cope with noise, shifting, and scaling in both
temporal and amplitude dimensions. The essential component of the proposed time series
representation are repeating time series sequences extracted using time series similarity measure
capable of dealing with noise, shifting and scaling such as using Spatial Assembling Distance
(SpADe).
Extended Column Level Temporal Indexed
Management System
Michal KVET, Karol MATIAŠKO, Monika VAJSOVÁ
1,2,3
Katedra informatiky, Fakulta riadenia a informatiky, ŽU
Univerzitná 8215/1, 010 26 Žilina
{Michal.Kvet, Karol.Matiasko}@fri.uniza.sk
Abstract. Standard relational data model is based on paradigm managing current
valid data. Historical values can be obtained only using backups and log-files.
However, these data are raw and complicated to use for operational decision making.
Therefore, concept of temporal management has been developed. Data structure for
historical and future valid data is similar to the actual data in conventional system.
However, existing solutions are based on object level temporal data, which is
inadequate in terms of performance – effectiveness of the whole system which is
manifested using the size of the whole structure and processing time to get required
data. This paper deals with the principles of transaction management and indexing in
extended column level temporal approach, describes the structure and methods for
manipulation.
Keywords: column level temporal data, valid time, transactions, indexing, time point,
changes monitoring.
1 Introduction
Database systems are one of the most important parts of the information technology, it
occupies the central position. The development of data processing has brought the need for
modelling and accessing large structures based on the simplicity, reliability and speed [13].
Thus, the main factors are correctness and efficiency of these systems. However, most
databases process and represent the current state of the data valid in this moment. Properties
and states of the objects evolve over time, become invalid and are replaced by new ones.
Once the state is changed, the corresponding data are updated in the database and it still
contains only the current valid data. Temporal data processing is very important in
dynamically evolving systems, industry, communication systems and also in systems
processing sensitive data. Simply, in systems, where it is necessary to store not only the
current state, but also the previous states and progress. It can also help us to optimize
processes and make future decisions [2] [4].
This paper deals with the temporal system based on the column level, focuses
performance, size optimization and also easy manipulation. It describes the structure,
operations and principles of the proposed solution. Moreover, this system manages also
transactions using the standard identifier of the running transactions. Experiment section
compares the performance of structural indexes (size and time to get and process data) in
the auto-commiting system. Thus, this system is extended by the transaction management.
This paper consists of the 6 sections. The section 2 defines the temporal system
principles and existing solutions and approaches. The section 3 describes the developed
system, which is transactional, which is confirmed by the section 4. Auto-committing
system delimiting the end of the transaction significantly together with the defined indexes,
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 87-97.
88
Data Commiting in Extended Column Level Temporal Indexed System
significantly influence the performance of the system (expressed in section 5). Section 6
concludes the developed solution.
2 Temporal approach
Temporal system has been developed soon after the development of databases.
Historical data were saved using log files and archives in the recent past. Although the
historical data could be obtained, it is a complicated process because of the raw form,
which requires too much time for processing. In addition, management requires quick and
reliable access to data defined by any time point, but also getting information about the
attributes changes in the future without significant time delays.





Later, the temporal systems on the object level have been developed. Temporal databases
define a new paradigm for selecting one or more rows based on the specified criteria, for
projecting one or more columns to the output sets and for joining the tables by specifying
relationship criteria. Rows with the different values of the primary key (PK) can represent one
object at different times [1] [5] [6].
The first model in figure 1 does not use time for definition at all, it cannot provide
management for non-current data in the main structure. This is a standard model used today,
called the conventional model. The primary key is defined by the attribute ID (can be
composite). In non-timed table, each row represents an instance identified by a primary key.
The uniqueness of the primary key values without defining additional conditions ensures that
the number of rows in the table is identical with the number of managed objects. Any change
is directly reflected to the database and the old value is deleted.
The second model in figure 1 is uni-temporal system, ID is a unique identifier; PK refers to a
primary key. BD1 and ED1 is a pair of columns defining the beginning and end value of the
period – validity. The uni-temporal system always uses the composite primary key – object
identifier and time interval defining the validity state characterizing the row [3].
Another approach for managing temporal data is bi-temporal system (third model in Fig. 1). It
uses two directions of the time. The first one is the validity (BD1, ED1), the second one
represents the transaction time (BD2, ED2). This system allows storing also incorrectly
updated data or data changed (corrected) during the time period (for example for audits).
More about bi-temporal structure can be found in [8] [9].
Figure 1. Temporal models
Special type of uni-temporal system is a solution that contains only one time attribute
defining the validity. This means that any change of the corresponding object determines
the validity of the prior state. However, there can be problem with the object definition, if
one or more data attributes are undefined. The whole object must be considered as nonactual and should be distinguished from the other (actually valid) objects. Thus, the system
Full paper
89
must be extended by the definition of the validity or the object must be in that case deleted.
However, if the object is deleted, the whole temporal system is degraded.
The principles of transformation uni-temporal system defined by begin date of the
validity to the standard approach and time intervals are described in [10] [11].


Current database systems provide methods for temporal management, however, they are
focused on historical data processing. The output of the Flashback operation is the image of
the whole database at defined timepoint. The main disadvantage of this method is the
impossibility of future valid data objects processing. Moreover, temporal system requires
image of the objects during the whole time frame definition, which cannot be provided using
this functionality, respectively the process is very complicated with significant time
consumption.
Changing model to temporal is not easy problem and requires sophisticated methods. Object
level temporal data extend the primary key with the validity definition. If there is a need to
update the attribute, the whole state is modified and inserted new, thus, some attribute values
are only copied to the new state, because the values have not been changed. One of the
solutions is based on a division of the original table. One contains non-temporal attributes, it
is classical conventional table, the second one is temporal, but consists only of temporal
columns – columns, which must be monitored and changes must be stored. However, the
problem is solved only partially, there is still problem with temporal columns, which do not
change their values in the time of update. Simply, the system is not effective and stores too
many duplicities.
Solution for temporal management should be universal, not only in terms of usability in
practice, but also in terms of independence from the used database system. Creating new
structures at the core level of the database system is therefore not appropriate. The basis of
the proposed solution is to use existing resources and their combinations to create temporal
solution. Moreover, it should be possible to be adapted into existing applications without
the need of changing application programs.
3 Extended column level temporal system

Extended column level temporal system can be considered as the improvement of the column
level temporal system (described in [9] [10]) in the term of the performance and the simplicity
of the model management for the users. It is extended by the definition of the type of the
operation. If the operation is update, there is also the reference to the data type tables with
historical values. The figure 2 shows the complete structural model with dataflow.
Application is directly connected to the main tables with current valid values. It means that
currently used applications can be used without any change. Historical values are stored in the
special part of the database scheme, each temporal data type has one table defined by the
primary key (see explanation of Data_Type attribute below in this section). The whole system
is based on triggers providing the global functionality. New numerical values (mostly
identifiers) are provided by the defined sequences. Principles and system is similar to the
column level temporal system, but historical values management and temporal table is
different.
90
Data Commiting in Extended Column Level Temporal Indexed System
Figure 2. Extended column level temporal structure













Management of the temporal table is completely different. It consists of these attributes (Fig.
3, Fig. 4):
ID_change – primary key of the table.
ID_previous_change – references the last change of an object identified by ID. This
attribute can also have NULL value that means, the data have not been updated yet, so the
data were inserted for the first time in past and are still actual.
ID_tab – references the table, record of which has been processed by DML statement
(INSERT, DELETE, UPDATE, RESTORE).
ID_orig - carries the information about the identifier of the row that has been changed.
ID_column – holds the information about the changed attribute (each temporal attribute has
defined value for the referencing).
Data_type – defines the data type of the changed attribute:
 C = char / varchar
 N = numeric values (real, integer, …)
 D = date
T = timestamp
T
Create table t_tab (
h
id Integer NOT NULL primary key,
i
val Timestamp(6) NOT NULL);
s
m
odel can be also extended by the definition of the other data types like binary objects.
--historical
for value
timestamp
values.
ID_row
– referencestable
to the old
of attribute
(if the DML statement was UPDATE).
Only update statement of temporal column sets not NULL value.
Operation – determines the provided operation:
 I = insert
 D = delete
 U = update
 R = restore
The principles and usage of proposed operations are defined the in the part of this paper.
BD – the begin date of the new state validity of an object.
Full paper
91
Figure 3. Temporal table
Transaction system is based on adding new attribute for the identifying transaction
provided by the manager. Thus, temporal_table consists of the attribute ID_trans, complete
data are stored in system data tables, which can be directly referenced. The principle of
transaction modelling and processing is described in the next sections.
3.1
Insert
Trigger before insert operation stores information about this operation into
temporal_table. New value of the primary key is set using the sequence.
It is new object, therefore attribute id_previous_change (based on this object) has NULL
value. Also attributes referencing temporal attributes changes have NULL values
(id_column, id_row, data_type). Each table must have numeric value characterizing the
table containing temporal attributes.
3.2
Update
Update operation is a bit more complicated, because the root of the system granularity attribute itself, not the whole object. Thus, each updated temporal attribute is stored
separately in temporal_table and historical values are inserted into particular table based on
the data type. However, it is important to mention the main table can also consists of the
non-temporal (conventional) columns – it means that the attribute does not change its value
over the time or the changes are not important to be monitored. These data updates do not
cause the insert operation into the temporal_table.
The next code shows the series of the steps, which must be done to store the history of
the temporal attributes complexly:
 Get the value of the last change of the appropriate object. This is very important
part of the optimization, because of the time consumption.
 Store the old value of the changed attribute in the historical tables based on the
data type:





C = char / varchar -- > c_tab
N = numeric values -- > n_tab
D = date
-- > d_tab
T = timestamp
-- > t_tab
Insert the information about the update operation and references into the
temporal_table.
This operation is also the limitation of the whole system. It is necessary to know the
ratio of the changed attributes at a given time to the total number of attributes (temporal and
conventional). If all of the attributes are temporal and have the same granularity for the
changes, the uni-temporal system managing the whole object is more convenient. However,
a lot of systems used today are characterized by the different granularity. In that case, this
solution rapidly decreases the need for the disc storage and processes the changes more
easily.
92
3.3
Data Commiting in Extended Column Level Temporal Indexed System
Delete
Operation for the deleting objects can be divided into two groups. The proposed scheme
handles only the beginning of the validity. If the new valid value for the attribute,
respectively for the whole object is not available (or it is incorrect), such object must be
removed from the table, which contains only current valid objects.
However, this state is often only temporary and short-term, therefore it is not convenient to
remove the entire object due to time management. Thus, the current time value is set into
the attribute validity, which determines the last time point of the correct validity. If the
values are corrected and known later, the object state is rebuilt and the value of the validity
has the NULL value then. Of course, all of these operations are stored into the
temporal_table. Thus, we can get the complete image of the object in the system over the
time.
Another situation occurs, if the user is sure, that the object should be removed. In that case,
the whole object is moved into historical table, which has the same structure as main table
(without the validity attribute).
Based on the performance, the system defines the time interval, which determines the
maximal time, during the invalid object can be placed in the main table. After the defined
time, the object is automatically moved into the historical tables (tables for deleted objects).
Referential information is stored in temporal_table to provide whole and complex
management of the objects in time evolution.
Another operation linked with the delete operation is Restore. The aim of this operation
is to reestablish the validity of the object. If the object is in main table, it deletes the value
of the validity. However, if the object is in the table with deleted, it must be transformed
into the main table. Naturally, each change is stored in temporal_table.
3.4
States of the objects
The most important part of the developed solution is the performance based on getting
states of the objects or the whole database. This can be also considered as the critical part of
the whole system. Therefore, the special structures like indexes are developed to improve
the performance and lower time management to get required data.
Select operation can be divided into two groups. The aim of the first one is to get all
actually valid data. It means, that the system returns the data from main table (objects
without ended validity definition). However, more complicated is the second group monitoring the progress of the changes of the object attributes over the time. Using
temporal_table, the object data are reconstructed and the complete states during the defined
time interval or timepoint can be obtained. This procedure has in principle two parameters –
identifier of the object and time point determines the validity – the system provides data
from the defined time till now. Using cursor, the data about operations from temporal_table
are processed. Then, the changes are
Listing changes:
processed and written step by step from
U - 20.05.14
now to the history.
id:2,
datum:
16.07.13,
cislo:
The code in the right part shows the output
1368784703,
cislo2:
-1433307823,
retazec: ABC
of the procedure, the insert operation was
performed in 14.5.2014, the first update
U - 15.05.14
was done during the 15.5.2014, the second
id:2,
datum:
16.07.13,
cislo:
one during the 20.5.2014. Certainly, the
1598829631,
cislo2:
-1433307823,
retazec: DEF
system works on timestamp level
(microseconds), but for presentation
I - 14.05.14
purposes, it is easier to use only dates. The
id:2,
datum:
18.01.13,
cislo:
1598829631,
cislo2:
retazec: AAA
-1128911893,
Full paper
93
attributes changed during the updates, are underlined.
4 Transactions
Conventional databases usually store information that describes actually valid data
objects. When the event happens in the real world, corresponding object must be updated.
These operations are processed and executed using the transactions. Each transaction must
be designed to declare the correctness of the results. Thus, the transaction must ensure the
transformation from the consistent state to the new, consistent. Moreover, there are more
requirements placed on the transaction [13] [14]:
 Consistency – transaction must preserve all database integrity constraints. For
example, the number of students in the subject cannot exceed the capacity. Thus,
after the registration for subjects, there cannot be amount discrepancy. All these
requirements are performed by the transaction management accepting the defined
constraints. There exists four consistency levels:
 Transaction does not overwrite the data managed by another transaction.
 Transaction does not confirm changes before reaching commit.
 Transaction does not read data managed by another transaction.
 Other transactions do not read data managed by the transaction before the
commit operation.
 Atomicity – processing system guarantees, that the transaction either runs to
completion or if it is not completed, there is no effect in the database at all as if the
transaction has not been defined. Commit statement successfully determines the
transaction processing, whereas abort forces the system to rollback all the changes
provided by the transaction.
 Durability ensures that the commited data cannot be rollbacked, the system cannot
loose processed information. Thus, the effects should remain in the database even
after the collision of the system and medium damage (for example, if the student
successfully takes the exam, the result may not be lost).
 Isolation – transactions must be isolated one from another. In general, system can
process and manage several transactions in parallel. Changes are not available
before the transaction confirmation (commit). This requirement is mostly
associated with the parallel processing to ensure getting actual values.
A database transaction consists of one or more statements. Specifically, a transaction
can consist of one of the following:
 one or more data manipulation language (DML) statements,
 one data definition language (DDL) statement.
Each transaction has the beginning and the end point defined by the transaction
manager. All of the DDL statements (create, alter, drop) automatically end transaction
successfully (commit). Transaction in the system has assigned unique identifier
called a transaction_ID provided by the transaction manager. These identifiers are stored in
temporal_table for easy management and grouping operations into transactions (Fig. 4).
Moreover, the user can set the transaction name for easier manipulation using a simple and
memorable text string (SET TRANSACTION ... NAME). These names with transaction IDs
are also stored in log files and data dictionary views. Naming transactions means assigning
user defined name with system managed identifier of the transaction. Transaction identifier
is unique, whereas the name does not need to be. Transactions, which are currently defined
94
Data Commiting in Extended Column Level Temporal Indexed System
and processed in the system (have not reach the commit or rollback statements) are called
active.
Another approach is the auto-commit system, which delimits the transactions after
executing each INSERT, UPDATE, or DELETE operation, or PL/SQL block [13] [14].
Figure 4. Transaction temporal system (extended column level approach)
5 Experiments
The aim of the developed structure is to provide fast, reliable approach to the actual and
historical data objects (and also deleted objects) – data, which were valid in the past. The
optimization is based on the performance level – size of the whole structure and time to get
required data (actual state of the whole database and the object changes monitoring over the
time).
This section deals with the index performance of the global structure based on the autocommitting data option. Six indexes have been tested, which were compared to declare the
quality and usability for this system. Notice that although these indexes improve
performance of the system, inappropriately designed index structure can even significantly
decrease the solution quality. The system uses none or one developed index for
temporal_table (Fig. 3):
 Ind1:
System without indexes.
 Ind2:
ID_orig
 Ind3:
ID_orig, ID_previous_change
 Ind4:
ID_orig, BD
 Ind5:
ID_orig, ID_previous_change, BD
 Ind6:
UNIQUE ID_orig, ID_previous_change
Experiment results were provided using Oracle 11g. The parameters of used computer
are:
 Processor: Intel Core i7-3612QM, CPU @ 2.10GHz
 Operation memory: 16GB
 HDD: 1TB, 5400rpm
Complete number of each operation was 10 000 (insert, delete, update, restore).
Minimal number of operations on the object was 3, maximal number was 24, the average
value was 5,4795.
Full paper
95
Another problem is based on the transaction management of the DML operations Insert,
Delete and Update. If the parameter of the auto-commit system is set to ON value, commit
is reached after each Insert, Update, Delete operation or after PL/SQL block. It means that
the index structure is reconstructed after each operation. Based on the defined type of
experiments, slowdown of the auto – commit ON solution without indexing (without
building index structure) compared to of the auto – commit OFF solution without indexing
(reference 100%) is (Fig. 5): Insert: 143, 75%, Update: 123,84%, Delete: 114, 70%,
Restore: 110, 83%. Values in the figure 5 are in seconds.
Figure 4 shows the experiments results using auto-commit ON for DML operations –
insert, delete, update and restore in comparison with auto-commit OFF solution in graph
representation. This parameter does not influence the Select operation, therefore it is not
referenced in the figure.
Auto Auto commit OFF commit ON
Figure 4. Performance of the operations in different environments (auto-commit ON / OFF)
Insert
Update
Delete
Restore
Insert
Update
Delete
Restore
Ind1
Ind2
Ind3
Ind4
Ind5
Ind6
Ind7
Ind8
21,4353
9,2800
9,8663
9,6253
9,3143
9,5117
9,5440
9,5833
92,6447 18,6110 19,0563 18,6680 17,6667 18,7003 42,9603 42,6630
65,8047 12,7467 13,1903 12,3677 12,6237 12,4213 31,0997 31,6860
78,1120 14,0220 13,9777 14,1163 13,7153 14,2193 37,0247 37,3020
8,7940
9,2800
9,8663
9,6253
9,3143
9,5117
9,5440
9,5833
41,3880 18,6110 19,0563 18,6680 17,6667 18,7003 42,9603 42,6630
30,4940 12,7467 13,1903 12,3677 12,6237 12,4213 31,0997 31,6860
37,0503 14,0220 13,9777 14,1163 13,7153 14,3393 37,0247 37,3020
Figure 5: Performance (time to get required data)
The performance results show the quality of the Ind2 – Ind6. Data objects are selected
based on their identifier referenced as ID_orig in temporal_table. The second criterion can
be divided based on the user requirements. If the aim of the most operations are based on
time (get image of the database at defined time point), Ind2 - ID_orig, ID_previous_change
96
Data Commiting in Extended Column Level Temporal Indexed System
– is more convenient. However, if there is requirement for one object monitoring over the
time, Ind3 performs better solution. Interesting result provides index Ind3 compared to the
Ind6. Unique index definition does not provide significant change of the performance. If the
first attribute is not identifier of the object, the performance is the same as solution without
indexes, or even worse. The reason is based on temporal system, which is object oriented.
Next figure shows the performance of the auto-commit OFF system with emphasis on
DML operations (Insert, Delete, Update) and operation Restore, which rebuilds the validity
in case of managing invalidated or deleted objects.
Figure 6. Experiment results (auto-commit OFF)
6 Conclusion
Standard temporal system deals with the whole objects as the granularity, which is used,
if all temporal columns are updated at the same time. Effective managing temporal data can
be very useful for decision making, analyses, process optimization and can be used in any
area – industry, communication systems, medicine, and transport systems and so on.
However, a lot of systems manage data with the different character of the granularity.
Temporal data management used today are based on object level (one row represents the
whole state at defined time point or time interval), which often does not cover the
complexity of the data management in time validity. A significant aspect is just
performance reflected to processing time and size of the structure. Extended column level
temporal system is based on the column attribute level developed by us in the past, the
whole state is created by the grouping the properties and states of the attributes. Model
described in this paper significantly improves the usability thanks to simplifying the
structure and manipulation system.
This paper deals with the principles, characteristics and describes implementation
methods to provide the complex temporal data management. The developed system is
compared based on the performance. In the future research, the system will be extended by
the distribution and parallelism management.
Acknowledgment
This publication is the result of the project implementation:
Centre of excellence for systems and services of intelligent transport II., ITMS 26220120050
supported by the Research & Development Operational Programme funded by the ERDF.
"PODPORUJEME VÝSKUMNÉ AKTIVITY NA SLOVENSKU
Full paper
97
Projekt je spolufinancovaný zo zdrojov EÚ"
The work is also supported by the project VEGA 1/1116/11 - Adaptive data distribution.
References
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Date J. C.: Date on Database. Apress, 2006.
Date J. C., Darwen H., and Lorentzos A. N.: Temporal data and the relational model,
Morgan Kaufmann, 2003.
Jensen S. Ch.: Introduction to Temporal Database Research,
Web: http://infolab.usc.edu/csci599/Fall2001/paper/chapter1.pdf
Jensen S. Ch. and Snodgrass T. R.: Temporally Enhanced Database Design, MIT Press,
2000.
Hubler N. P. and Edelweiss N.: Implementing a Temporal Database on Top of a
Conventional Database. In Proceedings of Conference SCCC ’00,(2000), pp. 58 – 67.
Johnson T. and Weis R.: Managing Time in Relational Databases, Morgan Kaufmann,
2010.
Kvet M., Lieskovský A., and Matiaško K.: Temporal data modelling, In: Proceedings of
IEEE conference ICCSE 2013, 26.4. – 28.4.2013, pp. 452 – 459.
Kvet M. and Lieskovský A.: Temporal Data Management – Uni-temporal table Modelling
Update, In: Proceedings of Conference ICCGI 2013, 21.7. – 26.7.2013, pp. 146 – 161.
Kvet M. and Matiaško K.: Column level uni-temporal, Journal Communications, Vol. 16,
no. 1 (2014), pp. 97 –104
Kvet M. and Matiaško K.: Uni-temporal modelling extension at the object vs. attribute
level, In: Proceeding of UKSim-AMSS 7th European modelling symposium, Manchester,
20.11. – 22.11.2013, pp. 6 – 11
Kvet M., Matiaško K., Kvet M.: Transaction Management in Fully Temporal System, In:
Proceedings of UKSim-AMSS 16th international conference on computer modelling and
simulation, Cambridge, 26.3.– 28.3.2014, pp. 147 – 152
Lewis P., Bernstein A., and Kifer M.: Databases and Transaction Processing (An
Application Oriented Approach), Addison-Wesley, 2002
Matiaško M., Vajsová M., Zábovský M., and Chochlík M.: Database systems, EDIS, 2008
Ozsu M. and Valduriez P.: Principles of Distributed Database Systems, Springer, 2011
Úvod do vizualizácie softvéru
Kristián ŠESTÁK, Zdeněk HAVLICE
Technická univerzita v Košiciach, Fakulta elektrotechniky a informatiky, Katedra počítačov
a informatiky, Letná 9, 042 00 Košice, Slovenská republika
[email protected]
[email protected]
Abstrakt. Príspevok sa zaoberá problematikou vizualizácie softvéru, modelovania
softvérového systému, popisuje základné princípy a funkcie z tejto oblasti. Analyzuje
niekoľko nástrojov pre vizualizáciu softvérového modelu, taktiež ponuka nové
riešenia.
Klíčová slova: vizualizácia, softvérový model, 2D, 3D, virtuálna realita
1 Úvod
Vývoj softvérových systémov je náročná úloha, ktorá zahŕňa množinu súvisiacich fáz, tieto
fázy vytvárajú životný cyklus softvéru. Počas všetkých týchto fáz, softvéroví inžinieri
potrebujú pomocou rôznych metód, nástrojov, metodík a metodológií pre pochopenie a
zvládnutie zložitosti, rozsahu a komplexnosti softvérových systémov a požiadaviek na tieto
systémy. V tejto súvislosti môže použitie interaktívnej grafickej reprezentácie dát
modelovaného systému významne pomôcť k analýze a pochopeniu týchto zložitých
informácii.
Správna definícia požiadaviek na softvérový systém má veľký vplyv na zvyšok
vývojového procesu. Splnenie používateľských požiadaviek na softvérový systém je
hlavnou výzvou pre softvérových inžinierov. Skúsenosti na mnohých veľkých projektoch
ukazujú, že veľmi veľké percento chýb bolo v dôsledku nepresnosti v skorších fázach
procesu vývoja softvéru [5].
Efektívne grafické znázornenie môže bližšie poskytnúť vhodnejší model pre
používateľa, ako je textová reprezentácia. Skúsenosti v softvérovom inžinierstve a v oblasti
vizualizácie, potvrdzujú, že vizuálna reprezentácia softvérového systému môže zvýšiť jeho
pochopiteľnosť a znížiť náklady na vývoj [28].
2 Vizualizácia
Vizualizáciu možno definovať nasledovne: vizualizácia je ...„počítačom podporovaná,
interaktívna, vizuálna reprezentácia dát k rozšíreniu poznania“, kde poznanie je
nadobudnutie, alebo využitie znalosti. Tieto grafické reprezentácie môžu sprostredkovať
jasné myšlienky, presnosť a efektívnosť [31, 16].
V skutočnosti, ľudský vizuálny systém (t.j. oko a vizuálny kortex) predstavuje efektívny
paralelný procesor, ktorý maximálne podporuje komunikačný kanál do ľudských
kognitívnych centier [6]. Navyše vizuálny systém uvoľní kognitívne kapacity a presúva tam
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 99-108.
100
Základné princípy vizualizácie softvéru
časť spracovania [32]. Napríklad, v dôsledku vizualizácie vedci zmenili spôsob myslenia,
tvrdia, že nie je možné robiť vedecký výskum bez vizualizácie [26] (pozri Obr.1).
Vizualizácia dát je disciplína, ktorá študuje princípy a metódy pre vizualizáciu kolekcie
dát s cieľom získať prehľad o dátach. To sa odráža v jednej z najviac dnes akceptovaných
definícii vizualizácie „Vizualizácia je proces transformácie informácie do vizuálnej formy,
ktorá umožňuje používateľovi sledovať informáciu. Výsledné vizuálné zobrazenie umožňuje
pre vedca, alebo inžiniera vnímať vizuálne prvky, ktoré sú skryté v dátach, ale napriek tomu
sú potrebne pre prieskum a analýzu dát“ [17].
Obr. 1 Proces vizualizácie - interaktívny, počítačom podporovaný [1].
3 Vizualizácia softvéru
Vizualizácia softvéru (VS) je široká výskumná oblasť, ktorá zahŕňa veľké množstvo
pojmov a techník [22]. Oblasť VS (pozri Obr. 2) je zameraná na vizuálnu reprezentáciu
s cieľom vytvárať softvér viac pochopiteľný. Jedna sa o špecializovanú vetvu vizualizácie
informácie, ktorá zobrazuje artefakty súvisiace so softvérom a jeho vývojovým procesom
[33].
Porozumenie, pochopenie softvéru je proces prijatia zdrojového kódu a jeho pochopenie
[10]. Je to proces získavania a pochopenia softvéru, ako systému funkcií [30].
Obr. 2 Vennov diagram ukazuje vzťahy medzi rôznymi oblasťami softvérovej vizualizácie
[3].
Vybraný příspěvek
101
Porozumenie softvéru sa odlišuje od porozumenia programu tým, že porozumenie
softvéru zahŕňa dokumentáciu, zatiaľ čo porozumenie programu sa vzťahuje iba na
zdrojový kód.
Vizuálné programovanie môžeme definovať, ako: „Akýkoľvek systém ktorý umožňuje
používateľovi zadať program v dvoch, alebo viacerých dimenziách“, ale výslovne vylúčime
textové jazyky (považujeme ich za jednorozmerné) a obrazovo definované jazyky [4].
Iná definícia vizuálneho programovania: „použitie techník vizualizácie pre špecifikáciu
programu.“ [6].
Programová vizualizácia sa od vizualizácie programu odlišuje a to tak, že programová
vizualizácia je: „program sa špecifikuje konvenčným, textovým spôsobom, a grafika je
použitá na ilustráciu niektorých aspektov programu“ [18].
Techniky pre porozumenie softvéru môžu byť klasifikovane buď ako:
 Statické
 Dynamické
Mnohé z existujúcich vizualizácií softvérových systémov sa sústreďujú na animáciu
programu, alebo algoritmu a vizualizáciu založenú na grafoch, statických a dynamických
vzťahoch medzi softvérovými komponentmi [25].
Všeobecne platí, že VS by mala determinovať úroveň abstrakcie informácie, ktorá
vypovedá o softvérovom systéme. Mal by sa používať vizuálny jazyk, alebo
pretransformovať zdrojový kód do vizuálnej reprezentácie [25].
Sémantika jazyka by mala byť jednoznačná, prirodzená a naučiteľná používateľom.
Výber mapovania závisí od typu informácií, ktoré reprezentujú a média použitom
v reprezentácii. Používateľské úlohy, ktoré systém podporuje, vrátané úloh programu
s porozumením, by mali byť špecifikované [25].
3.1
Vizualizácia softvéru v 3D priestore
Vizualizácia softvéru v 2D priestore bola rozsiahlo študovaná, boli navrhnute mnohé
techniky pre reprezentáciu softvérových systémov [21, 11]. 2D techniky VS zvyčajne
zahŕňajú reprezentáciu grafu, alebo stromu a skladajú sa z veľkého počtu uzlov a oblúkov
[19].
Komplexný softvérový systém môže zahŕňať tisíce takých uzlov a oblúkov. Aby
konceptualizácia a porozumenie boli jednoduché pre používateľa, vizualizácia takýchto
systémov reprezentuje časti grafov v rôznych pohľadoch, alebo v rôznych oknách tak, že
používateľ sa môže zamerať na tú úroveň detailov, ktorú chce. Softvérový systém sa preto
reprezentuje vo viacerých oknách, ktoré predstavujú pre pozorovateľa rôzne charakteristiky
posudzovaného systému. A tak 2D vizualizácie môžu viest k neprehľadným množstvám
informácií na zobrazenej ploche.
Zobrazenie dát v troch dimenziách miesto dvoch, môže uľahčiť používateľom
porozumieť dátam. A tiež, chybovosť pri určovaní trasy v 3D grafoch je oveľa menšia ako
v 2D [34, 35].
Niektorí autori uvádzajú, že dva rozmery sú dostatočné na zobrazenie informácie, a že
nie je žiaduce pridávať tretí rozmer. Tato extra dimenzia by mala byť použitá len pre
vizualizáciu dátovej množiny, ktorá je sémanticky bohatšia. Avšak, iní autori si myslia, že
3D prezentácie uľahčujú vnímanie ľudského vizuálneho systému [23]. Domnievajú sa, že
zavedenie esteticky príťažlivých prvkov 3D grafiky a animácie, môže výrazne zvýšiť
intuitívnosť a pamätanie informácie [29].
A čo robí vizualizáciu softvéru „dobrou“? Zoznam niektorých žiadúcich vlastnosti pre
vizualizáciu [36]:
102







Základné princípy vizualizácie softvéru
Jednoduchá navigácia s minimálnou možnosťou dezorientácie: vizualizácia by mala
byť štruktúrovaná a mala by obsahovať funkcie na pomoc používateľovi pri
navigácii.
Vysoký informačný obsah: Vizualizácia by mala predložiť čo najviac možných
informácií, bez premáhania používateľa.
Dobre využitie interakcie: Interakcia poskytuje mechanizmy pre získavanie viac
informácií a udržanie pozornosti.
Nízka zložitosť vizualizácie, dobre štruktúrovaná: Dobre štruktúrované informácie
by mali viest k jednoduchšej navigácii. Nižšia zložitosť sa vymení s vysokým
informačným obsahom.
Rôzne úrovne detailov: Zrnitosť, abstrakcia, informačný obsah a druh informácie by
mali vyhovovať záujmom používateľov.
Dobre využitie vizuálnych metafor: Metafory poskytujú prostriedky k pochopeniu.
Boli vyčlenene dve kritéria pre hodnotenie mapovania dát na vizuálne metafory:
expresivita a účinnosť.
Odolnosť zmeny: Malé zmeny obsahu, alebo zmeny v pozornosti by nemali
spôsobovať veľké rozdiely vo vizualizácií.
4 Realizácia vizualizácie softvéru
Náš výskum bol zameraný na možnosti, ktoré ponúkajú viac rozmerné vizualizácie (dva
a viac rozmerov) pre statický a dynamický popis softvérového systému.
Najprv sme sa rozhodli použiť rozšírenie UML diagramov v troj-rozmernom (3D)
systéme. Tu existuje niekoľko hlavných dôvodov:
 Na UML sa môžeme pozerať, ako na štandard, UML má širokú akceptáciu
v softvérovom inžinierstve.
 UML nemá limity pre použitie 3D diagramov, stereotypy umožňujú vytvorenie
nových vizualizácií modelu, ktorý môže dať lepší význam než je to u štandardného
typu.
Pre implementáciu 3D UML diagramov sme použili gef3d – aplikačný rámec
(Graphical Editing Framework) (pozri Obr.3) [20]. Táto implementácia je 3D editovateľný
aplikačný rámec (framework), ktorý je založený na široko používanom dvoj-rozmernom
(2D) grafickom gef2d.
Obr. 3 Pohľad na systém gef3d.
Pre zistenie možných výhod použitia aplikačného rámca gef3d sme ho porovnali
s gef2d. Testovacia skupina pozostávala z piatich programátorov. Cieľom bolo porovnať
gef3d a gef2d aplikačné rámce na základe týchto kritérií:
Vybraný příspěvek
103
 čas potrebný pre porozumenie softvérového modelu,
 čas potrebný pre implementáciu softvérového modelu,
 chybovosť výslednej implementácie softvérového modelu.
Celý proces pozostával z týchto krokov:
1. Bolo vytvorených 5 softvérových modelov v gef2d a 5 softvérových modelov
v gef3d.
2. Softvérové modely v gef2d a v gef3d boli podobné, nie však rovnaké.
3. Programátor náhodne vyberal softvérový model v gef2d alebo v gef3d.
4. Meral sa čas od doby, kedy programátor získal model, až do doby, kedy model začal
implementovať.
5. Meral sa čas od začiatku implementácie až do finálneho stavu.
6. Zistila sa miera chybovosti v implementácií v percentách.
Na základe analýzy dát z výskumu sme prišli k nasledujúcemu záveru:
 Nedá sa jednoznačne povedať, že gef3d poskytuje kratší, alebo dlhší čas pre
pochopenie a následnú implementáciu softvérového modelu.
 Výskyt chybovosti v pochopení a v implementácií modelov bola nulová, treba však
poznamenať, že každý z testovaných modelov bol na jednoduchej úrovni.
Ďalej, čo sa týka samotného aplikačného rámca, riešenie gef3d je pomerne jednoduché,
implementácia je relatívne rýchla. Vizuálné prostredie a manipulácia je dostatočná
vzhľadom na ponúkane možnosti. Slabou stránkou tohto riešenia je, že neposkytuje
plnohodnotný 3D systém, ale len jednotlivé na seba poukladané 2D vrstvy a z analýzy
vyplýva, že je to jedna z možných príčin nepreukázanej výhodnosti použitia gef3d oproti
gef2d.
Pre popis dynamických častí softvérového systému sme sa rozhodli použiť prostredie
Second Life (pozri Obr.4), vyvíjaný firmou Linden Lab. Ide o 3D prostredie virtuálnej
reality (VR), ktoré rozširuje softvérový model o niekoľko ďalších rozmerov. Takto by sa
pomocou vhodného návrhu a implementácie malo dosiahnuť rýchlejšie pochopenie
softvérového modelu a samotného softvérového systému.
Obr. 4 Virtuálny svet v SecondLife.
Prostredie systému Second Life je plnohodnotným systémom VR. Poskytuje nástroje
pre vytváranie virtuálnych svetov. Avšak, tieto nástroje patria medzi slabé stránky tohto
systému. Zmeny polohy, rozmerov a správania geometrických objektov sa vykonávajú
pomocou skriptovacieho jazyka LSL (Linden Scripting Language) to znamená, že pre
automatizovanú aplikáciu, ktorej výstupom by boli špecifické dáta popisujúce štruktúry a
správanie virtuálneho sveta je potrebný prekladač práve do tohto skriptovacieho jazyka.
104
4.1
Základné princípy vizualizácie softvéru
Návrh riešenia
V 2D systéme s použitím geometrie pre popis vlastností objektov a ich vzájomných
vzťahov máme dva rozmery v
- ovej súradnicovej sústave. Ak chceme popísať ďalšie
z nášho hľadiska dôležite vlastnosti objektov, môžeme rozšíriť daný 2D model o ďalšie
rozmery (atribúty), ako sú napríklad farby objektov, texty rozširujúce vlastnosti objektov,
alebo použitie iných tvarov z ktorých sa skladajú objekty. Získanie ďalších rozmerov, ktoré
reprezentujú dôležite informácie sa dajú relatívne ľahko vytvárať. Avšak, môžu nastať tieto
problémy:
 Model môže byť neprehľadný, náročný na pochopenie.
 Model nemusí byť intuitívny, je potrebne sa učiť dodatočné informácie.
 Vzniká väčšia chybovosť pri pochopení modelu.
Z pohľadu geometrie rozšírením 2D modelu o tretí rozmer síce získame jeden rozmer
naviac. Ale, vhodným návrhom je možné získať viac použiteľných atribútov (pozri Obr. 5).
Majme geometrický objekt (kváder) a nech má tieto vlastnosti:
1. Geometrický objekt (kváder) je v systéme definovaný svojou polohou v
–
ovej súradnicovej sústave.
2. Výška geometrického objektu → dĺžka strany .
3. Šírka geometrického objektu → dĺžka strany .
4. Dĺžka geometrického objektu → dĺžka strany .
Obr. 5 Geometrický objekt – kváder.
Takto sme získali 4 atribúty, ktoré reprezentujú vlastnosti objektu. Tu je ale potrebné
zvážiť, koľko rozmerov je ešte prínosom a koľko už nie, inak povedané, kvantita
vizualizovaných informácií nemusí vždy znamenať kvalitu. Model sa môže stať
neprehliadaným a ťažko pochopiteľným.
Majme neprázdnu databázu ktorá má n tabuliek a m relácií, kde n >1, m >0. A
definujme systém G nasledovne: Nech systém G pozostáva z množiny geometrických
objektov a ich vzájomných relácií. Definujme geometrický objekt typu C – valec (pozri
Obr.6),
a nech poloha C je definovaná v súradnicovom systéme (x, y, z) a nech C má
nasledujúce vlastnosti:
 Výška objektu – reprezentuje počet riadkov v tabuľke.
 Priemer objektu – reprezentuje počet stĺpcov v tabuľke
Vybraný příspěvek
105
Obr. 6 Geometrický objekt – význam.
Ďalej definujme geometrický objekt typu L - úsečka, L
a bude reprezentovať
vzájomné relácie medzi objektmi typu C (pozri Obr.7) a nech má tieto vlastnosti:
 Cudzí kľuč - reprezentuje kružnica na povrchu objektu typu C.
 Relácia – reprezentuje úsečka.
Každý objekt typu L a typu C má jednoznačne definovanú polohu v systéme G.
Obr. 7 Relácie medzi tabuľkami - cudzí kľúč.
Obr. 8 Pohľad na 3D model s vyznačenými súradnicami.
Definujme transformáciu T takto:
 Počet riadkov databázovej tabuľky → výška geometrického objektu C.
 Počet stĺpcov databázovej tabuľky → priemer geometrického objektu C.
 Početnosť dotazov na databázovú tabuľku → poloha geometrického objektu C.
 Relácia medzi databázovými tabuľkami → poloha geometrického objektu L.
Nami predstavený návrh riešenia vizualizácie vo viac, ako dvoch rozmeroch ponúka
nasledujúce možnosti: (pozri Obr. 8)
 Je viac intuitívny, ako klasický 2D model – pre ľudské oko sú informácie
prichádzajúce z 3D prirodzenejšie.
 Na základe vizualizácie objektov ich polôh, vzájomných relácií je možné odhaliť
nedostatky modelu za behu systému.
106
Základné princípy vizualizácie softvéru
5 Záver
Cieľom vizualizácie softvéru je vytvoriť „obrazy“, ktoré evokujú pre používateľa lepšie
pochopenie softvéru [12]. Vizualizácia softvéru sa javí ako veľmi sľubné na riešenie
zložitosti a evolučných výziev v softvérovom priemysle [34]. 3D vizualizácia bola
preskúmaná vo všetkých oblastiach, kde sa používa 2D vizualizácia, vrátané vizualizácie
založenej na metrikách objektovo orientovaných programov a vizualizácie na sledovanie
chýb softvéru, izolovaných problémov, a monitorovanie priebehu vývoja [8, 9, 24]. 3D
UML boli tiež preskúmané [19, 13].
Mapovanie veľkého množstva dynamických informácií na 3D reprezentáciu je viac
výhodná a to bez ohľadu na typ použitých symbolov (reálnych alebo virtuálnych) [14].
Praktická softvérová vizualizácia musí poskytnúť nástroje pre vyber a zobrazenie len
takých informácií, ktoré sú pre vizualizáciu dôležité. Musí poskytovať kvalitne vizuálne
zobrazenie, ktoré je intuitívne a ma vysokú formu abstrakcie, a vyhýba sa preťaženiu
informácií [25].
Hoci otázka výhod ktoré ponúkajú 3D oproti 2D stále zostava otvorená, oblasť
výskumu ktorý vyšetruje použitie 3D grafiky na VS má optimistické výsledky [7, 2, 19].
Literatura
1.
Alfredo R. Teyseyre, Marcelo R. Campo, "An Overview of 3D Software
Visualization," IEEE Transactions on Visualization and Computer Graphics, pp. 87105, January/February, 2009, (Angl.)
2. A. Marcus, L. Feng, and J.I. Maletic, “3D Representations for Software Visualization,”
Proc. ACM Symp. Software Visualization (SoftVis ’03), p. 27-ff, 2003., (Angl.)
3. B.A. Price, R.M. Baecker, and I.S. Small. A principled taxonomy of software
visualization. Journal of Visual Languages and Computing, 4:211–266, 1993., (Angl.)
4. B.A. Myers. Taxonomies of visual programming and program visualization. Journal of
Visual Languages and Computing, 1:97–123, March 1990., (Angl.)
5. Ben Potter, Jane Sinclair, and David Till. An Introduction to Formal Specification and
Z. Prentice Hall, New York, 1991. , (Angl.)
6. C. Ware, Information Visualization: Perception for Design. Morgan KaufmannElsevier, 2004. , (Angl.)
7. C. Knight, “System and Software Visualisation,” Handbook of Software Eng. and
Knowledge Eng. World Scientific, 2000. , (Angl.)
8. Chuah MC, Eick SG (1997) Glyphs for software visualization. In: Proceedings of the
5th iternational workshop on program comprehension (IWPC’97), pp 183–191, (Angl.)
9. Chuah MC, Eick SG (1998) Information rich glyphs for software management data.
IEEE Comput Graph Appl 18(4):24–29, (Angl.)
10. Deimel, L., Naveda, J., Reading Computer Programs: Instructor’s Guide and Exercises,
Technical Report CMU/SEI-90-EM-3, Software Engineering Institute, Carnegie
Mellon University, 1990, (Angl.)
11. Diehl, S., ed., Revised Lectures on Software Visualization, Int’l Seminar. Springer,
2002., (Angl.)
12. Diehl, S., Software Visualization: Visualizing the Structure, Behaviour, and Evolution
of Software. Springer, 2007., (Angl.)
Vybraný příspěvek
107
13. D. Gracanin, K. Matkovic, and M. Eltoweissy, “Software visualization,” Innovations in
Systems and Software Engineering, A NASA Journal, vol. 1, no. 2, pp. 221–230, Sep.
2005. , (Angl.)
14. Dos Santos, C. R., Gros, P., Abel, P., Loisel, D., Trichaud, N., and Paris, J. P.,
"Mapping Information onto 3D Virtual Worlds", in Proceedings of IEEE International
Conference on Information Visualization, London, England, July 19-21 2000.
15. DwyerT (2001) Three dimensional UMLusing force directed layout. In: Proceedings of
the Australian symposium on information visualisation 2001, Sydney, Australia, pp
77–85, (Angl.)
16. E. R. Tufte, Visual Explanations: Images and Quantities, Evidence and Narrative.
Cheshire, CT, USA: Graphics Press, 1997., (Angl.)
17. GERSHON, N. Information visualization: The next frontier. In SIGGRAPH’94:
Proceedings of International Conference and Exibition on Computer Graphics and
Interactive Techniques (1994), pp. 485–486., (Angl.)
18. Grant, C., Software visualization in Prolog, University of Cambridge, Computer
Laboratory, dec 1999, (Angl.)
19. G. Parker, G. Franck, and C. Ware, “Visualization of Large Nested Graphs in 3D:
Navigation and Interaction,” J. Visual Languages and Computing, vol. 9, no. 3, pp.
299-317, 1998., (Angl.)
20. J. von Pilgrim, K. Duske, Gef3D: a framework for two-, two-and-a-half-, and threedimensional graphical editors, SoftVis '08 Proceedings of the 4th ACM symposium on
Software visualization, Pages 95-104, (Angl.)
21. J.T. Stasko, M.H. Brown, and B.A. Price, eds., Software Visualization: Programming
as a Multimedia Experience. MIT Press, 1997., (Angl.)
22. Qais Ali, Supervisor Prof. Dr, P. Klint, Static Program Visualization Within The
ASF+SDF Meta Environment Master Software Engineering, Centrum Voor Wiskunde
En Informatica, University of Amsterdam, Amsterdam, Holland, September, 2008,
(Angl.)
23. I. Spence, “Visual Psychophysics of Simple Graphical Elements,” J. Experimental
Psychology: Human Perception and Performance, vol. 4, no. 16, pp. 683-692, 1990.,
(Angl.)
24. Lewerentz C, Simon F (2002) Metrics-based 3D visualization of large object-oriented
programs. In: Proceedings of the 1st international workshop on visualizing software for
understanding and analysis (VISSOFT’02), Paris, pp 70–77, (Angl.)
25. Maletic, J. I., Leigh, J., Marcus, A., and Dunlap, G.: Visualizing Object-Oriented
Software in Virtual Reality, Division of Computer Science, The Department of
Mathematical Sciences, The University of Memphis and Electronic Visualization
Laboratory, University of Illinois at Chicago, 2001, (Angl.)
26. M.B. McGrath and J.R. Brown, “Visual Learning for Science and Eng.,” IEEE
Computer Graphics and Applications, vol. 25, no. 5, pp. 56-63, Sept./Oct. 2005.
27. Pacione, J., M.,: A Novel Software Visualisation Model to Support Object-Oriented
Program Comprehension, University of Strathclyde, Glasgow, 2005, (Angl.)
28. R. Mili and R. Steiner, “Software engineering - introduction,” in Revised Lectures on
Software Visualization, International Seminar. London, UK: Springer-Verlag, 2002,
pp. 129–137., (Angl.)
108
Základné princípy vizualizácie softvéru
29. R. Brath, M. Peters, and R. Senior, “Visualization for Communication: The Importance
of Aesthetic Sizzle,” Proc. Ninth Int’l Conf. Information Visualisation (IV ’05), pp.
724-729, 2005., (Angl.)
30. Russell Wood, Assisted Software Comprehension, Final report, June 2003, (Angl.)
31. S. Card, J. MacKinlay, and B. Shneiderman, Eds., Readings in Information
Visualization: Using Vision to Think. Morgan Kaufmann Publishers, 1998., (Angl.)
32. Van Ham F (2003) Using multilevel call matrices in large software projects. In:
Proceedings of the 2003 IEEE symposium on information visualization (INFOVIS’03),
pp 227–232, (Angl.)
33. Voinea, S., L., Software Evolution Visualization, 2007, ISBN 978-90-386-1099-3,
(Angl.)
34. Ware, C. and Franck, G., "Representing Nodes and Arcs in 3D Networks", in
Proceedings of IEEE Conference on Visual Languages, St. Louis, October 1994, pp.
189- 190. (Angl.)
35. Ware, C., Hui, D., and Franck, G., "Visualizing Object Oriented Software in Three
Dimensions", in Proceedings of CASCON'93, Toronto, Ontario, Canada, October
1993, pp. 612-620. (Angl.)
36. Young, P., and Munro, M. (2003) Visualising software in virtual reality. IEEE First
International Workshop on Visualizing Software for Understanding and Analysis.
IEEE Computer Society Press. (Angl.)
An Introduction to Software Visualization.
Postery
Webové služby v procese vyhodnocovania
študentských zadaní
Miroslav BIŇAS
Katedra počítačov a informatiky, FEI TU v Košiciach
Letná 9, 042 01 Košice
[email protected]
Abstrakt. S výučbou programovania úzko súvisí aj hodnotenie študentmi napísaných
programov. Proces hodnotenia vie byť veľmi zdĺhavá a náročná činnosť, ale
s použitím vhodných nástrojov je možné v relatívne krátkom čase overiť riešenia
veľkého počtu študentov so zachovaním objektívnosti hodnotiaceho procesu. Tento
článok sa venuje práve automatizácii tohto procesu s využitím architektúry SOA.
Kľúčové slová: testovanie, automatizácia, SOA, webové služby, vzdelávanie
1
Úvod
Väčšinu predmetov a kurzov, ktoré je možné na univerzitách absolvovať, je potrebné
ukončiť vypracovaním aspoň jedného projektu, v ktorom študenti preukážu nadobudnuté
znalosti a schopnosti v predmetnej oblasti. V závislosti od požiadaviek sa môže jednať o
jeden záverečný alebo o sadu menších projektov odovzdávaných priebežne.
Proces hodnotenia týchto projektov predstavuje veľmi dôležitú súčasť celkového
hodnotenia. Pre učiteľov sa jedná o proces, ktorý môže byť v závislosti od typu projektu
značne časovo náročný. Očakáva sa od nich, že ich výsledné hodnotenie bude vzhľadom na
stanovené požiadavky objektívne. Pokiaľ však nie je jasne stanovené, koľkými bodmi je
možné ohodnotiť jednotlivé časti projektu, je ťažké vidieť rozdiel medzi projektom, ktorý
bol ohodnotený počtom bodov N a projektom, ktorý bol ohodnotený počtom bodov N+1.
Študenti by zasa chceli poznať hodnotenie svojho projektu čo najskôr a v prípade, že
nedosiahli plný počet bodov, by chceli jasne poznať dôvody, prečo je tomu tak, aby mohli
zistené nedostatky opraviť.
V súvislosti s procesom odovzdávania a hlavne hodnotenia záverečných projektov, je
možné vyzdvihnúť dôležitosť nasledovných kritérií: rýchlosť hodnotiaceho procesu,
objektívnosť hodnotenia a znovupoužiteľnosť nástrojov použitých pri hodnotení.
V tomto článku sa budem venovať práve automatizovanému hodnoteniu
programátorských predmetov a teda projektov, ktorých výstupom je program. Niektoré
opisované riešenia (služby) je však možné použiť aj na iné typy projektov. To však závisí
od čitateľa, ako vie uvedené závery aplikovať aj pre iné domény.
V článku sú opísané skúsenosti s reálnym nasadením webových služieb do procesu
odovzdávania a vyhodnocovania programátorských zadaní na Technickej univerzite
v Košiciach v predmete prvého ročníka s názvom Programovanie. Jednotlivé služby, ktoré
sa podieľajú v tomto procese, budú opísané podrobnejšie v ďalšom texte. Rovnako tak
budú predstavené prípady použitia, ktoré sme v rámci predmetu úspešne realizovali.
Tento článok môže byť inšpiráciou pre tých, ktorí by chceli ušetriť čas a zobjektívniť
proces vyhodnocovania študentských zadaní jeho automatizovaním.
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 111-120.
112
Webové služby v procese vyhodnocovania študentských zadaní
2
Súčasný stav v predmetnej oblasti a existujúce riešenia
Potreba automatizovaných nástrojov súvisí hlavne s množstvom študentov, ktorí konkrétny
predmet absolvujú [9]. Toto množstvo je tým väčšie, čím je nižší ročník štúdia. Nastáva
teda situácia, kedy vzhľadom na množstvo študentov (rádovo stovky) a obmedzený počet
učiteľov (rádovo jednotky) sa stáva kontrola a hodnotenie zadaní ťažko zvládnuteľná.
Automatizované hodnotenie dokáže v takejto situácii priniesť výhody pre obe strany – ako
pre študentov tak aj pre učiteľov. To, že sa jedná o reálny problém, dokumentuje aj
niekoľko prieskumov existujúcich nástrojov v predmetnej oblasti, ako napr. [1] alebo [5].
Problém, ktorý v tejto oblasti pretrváva, bol opísaný v prieskume [11]. Aj keď sa jedná
o starší prieskum z roku 2004, analyzoval príspevky z tejto oblasti v období od 1983 do
2003. Spolu bolo analyzovaných 444 príspevkov. Výsledok prieskumu uvádza, že len malé
množstvo prezentovaných nástrojov bolo použitých a ďalej používaných mimo ich
domovskú inštitúciu. Tieto závery rovnako potvrdzuje aj novší prieskum [5].
Tento záver je zrejmý – dôvody pre vývoj nástrojov súvisia s potrebou riešenia
lokálneho problému danej inštitúcie alebo konkrétneho kurzu. Výsledkom projektu je
obyčajne prototyp, ktorému chýba podpora po ukončení projektu. A aj keď sú tieto nástroje
následne uvoľnené a voľne dostupné, ich úprava a adaptovanie pre potreby inej inštitúcie sú
obyčajne náročné.
Samozrejme existujú aj projekty, ktoré sa uchytili a medzi tie úspešné je možné zaradiť
napr. interaktívne prostredie BlueJ [7] pre výučbu objektového programovania, rodinu
mikrosvetov založenú na robotovi Karlovi [8], poloautomatický hodnotiaci systém BOSS
[6] alebo automatický hodnotiaci systém CourseMarker [3].
Podobne je tomu aj v našich nie len univerzitných, ale slovenských podmienkach, kde
prevládajú systémy „šité“ na mieru pre konkrétny kurz. Často sa dá tiež stretnúť
s CMS/LMS systémami, ktoré sa zúčastňujú procesu odovzdávania a zberu zadaní, ale nie
vyhodnocovania. V tomto prípade zrejme dominuje používanie otvoreného LMS Moodle,
ktorý síce umožňuje zber zadaní, ale nepodporuje napr. ich revízie. Rovnako tak
neumožňuje automatizáciu ich hodnotenia. Moodle síce obsahuje niekoľko modulov tretích
strán, ktoré integrujú podporu napr. pre kontrolu plagiátov a niekoľko modulov, ktoré
dokážu riešiť niektoré typy programátorských úloh, ale celkovo sa nejedná o vhodný
systém pre kurzy orientované na programovanie.
Istým príkladom, ako by mohlo vyhodnocovanie programátorských úloh vyzerať,
ponúkajú súčasné MOOC systémy, ako edx.org, Coursera, Udacity a ďalšie. V našich
podmienkach sa vývoju podobného nástroja pre oblasť programovania venujú na pôde FIIT
STU v Bratislave. Projekt má názov Peoplia [10], ale rovnako sa jedná o uzavretý systém a
v súčasnosti je zrejme ešte stále vo vývoji.
Do prostredia LMS Moodle by však bolo možné napríklad integrovať techniku
hodnotenia niektorých MOOC kurzov, kde riešenia študentov hodnotia iní študenti
(v podstate - spolužiaci). Takýto systém hodnotenia však nie je objektívny, pretože študenti
sa môžu na výslednom hodnotení vzájomne dohodnúť.
3
SOA v procese zberu a hodnotenia
Uvedené „úspešné“ systémy pre čiastočnú alebo plnú automatizáciu hodnotenia BOSS [6] a
CourseMarker [3] (a nie len tieto) sú založené na architektúre klient-server. V súčasnosti sa
dá stretnúť najmä v oblasti enterprise riešení so servisne orientovanou architektúrou (SOA).
Hlavným prvkom takejto architektúry sú služby, ktoré poskytujú potrebnú funkcionalitu.
The OpenGROUP na svojich stránkach (www.opengroup.org) charakterizuje službu ako:

samostatná a nezávislá,

môže byť zložená z ďalších služieb,
Poster
113

pre koncového klienta sa javí ako „čierna skrinka“,

poskytuje minimálne jednu funkcionalitu (činnosť).
Založiť proces zberu a hodnotenia zadaní na architektúre SOA by teda znamenalo
identifikovať jednotlivé samostatné a nezávislé služby, ktoré sa na tomto procese podieľajú,
implementovať ich a vzájomne prepojiť s cieľom dosiahnutia potrebného výsledku.
Príkladom existujúceho riešenia problému automatizovanej kontroly študentských
zadaní založeného na architektúre SOA, je možné považovať prácu M. Amelunga [2]. Na
svojej univerzite sa venoval práci na sade nástrojov s názvom eduComponents, ktoré
poskytujú e-learningové rozhranie pre CMS systém Plone. Jednotlivé komponenty sú však
vzájomne tesne previazané, čo bráni ich samostatnému použitiu ako samostatných služieb.
V nasledujúcom texte bude predstavených niekoľko prípadov použitia, ako je možné
využiť architektúru SOA v procese zberu a hodnotenia študentských programátorských
zadaní. Rovnako tak budú identifikované jednotlivé webové služby podieľajúce sa na tomto
procese tak, ako sme ich identifikovali na viacerých kurzoch ponúkaných na Technickej
univerzite v Košiciach.
Väčšina služieb bola vytvorená v jazyku Python pomocou mikro webového rámca
Flask1. Iná technológia bola použitá len v prípade systému použitého na skúške, ktorý bol
vytvorený v jazyku PHP pomocou webového rámca CodeIgniter2. Na komunikáciu medzi
jednotlivými službami bol použitý formát JSON.
1
Prípad použitia 1 – Hodnotenie na požiadanie
Schéma prvého prípadu nasadenia je znázornená na obrázku 1. V tomto prípade dochádzalo
k hodnoteniu zadania priamo po jeho odoslaní.
Študenti odovzdávali svoje zadania prostredníctvom systému na správu verzií Git,
pričom pre naše potreby používame rozhranie s názvom GitLab3. Aby bolo možné
hodnotenie spustiť priamo po operácii push, vytvorili sme obslužný skript a naviazali ho
na udalosť (hook) post-receive [4]. Ten následne projekt zabalil do zip archívu a ten
poslal na overenie službe Structure Checker. Pokiaľ kontrola prebehla v poriadku, archív
bol následne poslaný službe Arena, ktorá vykoná statickú a dynamickú analýzu kódu v
študentskom projekte. Výsledok spracovania bol vrátený študentovi ako odpoveď z VCS
systému (obr. 2), pričom pre každú chybu, ktorá bola pri testovaní zistená, bol do prostredia
GitLab-u pridaný Issue pomocou jeho REST API.
Toto testovanie trvalo dva týždne. Zúčastnilo sa ho spolu 475 študentov, ktorí vytvorili
cez 12000 kontrol, čo je priemerne 25 kontrol na jedného študenta.
1
http://flask.pocoo.org
https://ellislab.com/codeigniter
3
http://www.gitlab.com
2
114
Webové služby v procese vyhodnocovania študentských zadaní
Obr. 1. Schéma prípadu hodnotenia na požiadanie.
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
remote:
============================
=
Results
=
============================
Problemset: tiktak
Compilation: Passed
Globals: no
Testcase | State | Score
---------------------------1
| Pass | 0.2
2
| Pass | 0.2
3
| Pass | 0.2
4
| Pass | 0.2
5
| Pass | 0.2
---------------------------Sum:
5
|
5
| 1.0
---------------------------============================
Excelent! The problemset PS1 is solved.
Obr. 2. Odpoveď z VCS systému, ak kontrola prebehla v poriadku.
1.1 Webová služba Structure Checker
Úlohou služby Structure Checker je overiť štruktúru projektu. Kontrola zahŕňa overenie
existencie súborov a priečinkov vyžadovaných v danom projekte. Ak sa v ňom totiž
potrebné súbory nenachádzajú, nie je vlastne čo testovať.
Vstupom služby je zabalený archív projektu a šablóna vo formáte XML, ktorá opisuje,
ako má štruktúra projektu vyzerať. Podoba šablóny, ktorá má overiť štruktúru súborov a
priečinkov zobrazenú na obrázku 3 sa nachádza na obrázku 4.
Výstupom služby je JSON dokument so zoznamom chýb a zoznamom varovaní.
Poster
115
.
`-- ps1
|-- tesco.c
`-- tiktak.c
Obr. 3. Štruktúra súborov a priečinkov prvého zadania.
<?xml version="1.0" encoding="UTF-8"?>
<package name="prog-2014(-[a-z][a-z0-9])?\.zip">
<directory name="ps1">
<file name="tiktak.c"/>
<file name="tesco.c"/>
</directory>
</package>
Obr. 4. Šablóna opisujúca požadovanú štruktúru.
Okrem kontroly štruktúry priečinkov a súborov je však možné overiť aj správnosť
názvu súborov, priečinkov a samotného archívu (v prípade, ak sa v názve napr. nachádzajú
identifikačné údaje študenta) ale aj požadovaný obsah v niektorých súboroch (napr. ak je
potrebné prečítať doplnkové metaúdaje o študentovi, ako e-mail, číslo skupiny, meno a
priezvisko a pod.). Na kontrolu je možné s výhodou využiť regulárne výrazy.
Táto služba je príkladom univerzálnej služby, ktorá nemusí byť nutne použitá len pre
overovanie programátorských projektov.
1.2 Webová služba Arena
Najdôležitejšia služba celého procesu je služba s názvom Arena. Práve ona je
zodpovedná za samotné testovanie daného projektu.
Služba obsahuje lokálne úložisko testov pre jednotlivé úlohy. Pri posielaní úlohy na jej
overenie je potrebné špecifikovať, o ktorú úlohu sa jedná. Na správu úloh má služba
definované REST API, pomocou ktorého je možné úlohy vytvárať, aktualizovať a mazať.
Služba zabezpečuje len testovanie konkrétneho problému, resp. úlohy a preto
neobsahuje jej zadanie, ktoré by bolo možné zo služby tiež získať.
Samotné testovanie je definované pomocou JSON súboru, ktorý obsahuje zoznam
jednotlivých testov. Tie sa vykonávajú v poradí, v akom sú v tomto zozname umiestnené.
Vykonanie niektorých testov však môže byť podmienené úspešným vykonaním
predchádzajúceho (napr. unit testy sa nespustia, ak bol preklad programu neúspešný).
Pri návrhu špecifikácie testov bol kladený dôraz na to, aby boli testy do čo najväčšej
miery opisné (deklaratívne). Tým je možné testy vytvárať v pomerne krátkom čase.
Samotný test vždy len spustí niektorý spustiteľný program, ako napr. prekladač pre
preklad riešenia alebo pripravené unit testy. Týmto spôsobom testovania nedochádza ku
závislosti na žiadnom vybranom jazyku alebo špeciálnom softvérovom rámci.
Príklad jednoduchého testu, v ktorom sa testuje len správny výstup proti požadovanému
vstupu, sa nachádza na obrázku 5.
Ako je možné vidieť, autor testu má pod kontrolou aj proces rozbalenia archívu,
v ktorom je uložené riešenie projektu. Samotné testy môžu vykonávať statickú (napr.
identifikovanie globálnych premenných) aj dynamickú (napr. unit testy) analýzu kódu.
116
Webové služby v procese vyhodnocovania študentských zadaní
{
"title": "General Test for PS1",
"testcases": [ {
"title": "unzip package",
"type": "exec",
"cmd": "unzip -j prog-2014.zip ps1/tesco.c",
"strict": true
},
{
"title": "Globals - tesco",
"description": "Searching for globals",
"type": "exec",
"strict": true,
"cmd": "ctags -x --c-kinds=v --file-scope=no tesco.c"
},
{
"title": "Compile Student's Version - tesco",
"description": "Compiles code first",
"type": "exec",
"cmd": "gcc -std=c99 -Wall -Werror tesco.c -o tesco",
"strict": true
},
{
"title": "Input Over Range",
"description": "Input Over Range",
"stdin": "10000 23 17 0.12",
"expectedStdout": "Enter value of your bill: Wrong
input!",
"type": "exec",
"timeout": 2,
"cmd": "./tesco"
} ]
}
Obr. 5. Príklad testu pre službu Aréna.
Test môže mať nastavené aj ďalšie atribúty, napr. pomocou atribútu strict je možné
nastaviť striktnosť testu (ak test zlyhá, nebude vykonaný už žiadny ďalší test zo zoznamu
testov), alebo je možné nastaviť dĺžku trvania testu pomocou atribútu timeout (ochrana
napr. pred zacyklením programu).
Pri tvorbe služby sme sa inšpirovali aj hook-mi z VCS systémov a rovnako tak je možné
spustiť aj pre-test a post-test hook. pre-test zatiaľ našiel svoje využitie pri
príprave testov a generovaní náhodných vstupných hodnôt. post-test používame pre
bodové hodnotenie úloh a úpravu podoby výstupu.
Služba vráti klientovi výsledok v podobe rozšírenej verzie JSON súboru s testom, do
ktorého zahrnie aj výsledky. Klient následne rozhodne, ktoré údaje a akým spôsobom
poskytne študentovi.
Poster
2
117
Prípad použitia 2 – Hodnotenie v pravidelných časových intervaloch
Schéma nasadenia druhého prípadu použitia sa nachádza na obrázku 6. V tomto prípade
išlo o jednoduché simulovanie reálneho prostredia, kedy sa testy spúšťali v pravidelných
časových intervaloch (každé 3h).
Obr. 6. Schéma prípadu hodnotenia v pravidelných časových intervaloch.
Študent do VCS systému odošle svoje riešenie. V pravidelných časových intervaloch sa
spúšťa proces Gladiator, ktorý kontrolu týchto riešení spúšťa.
Gladiator najprv vyhľadá študentov projekt v systéme VCS, k čomu je možné využiť
REST API projektu GitLab. Po jeho nájdení najprv overí štruktúru projektu pomocou
služby Structure Checker. Po úspešnej kontrole je projekt poslaný službe Arena, kde sa nad
riešením spustia funkčné testy. Výsledky testov sú následne publikované študentovi
prostredníctvom služby Caesar.
Tento prípad použitia sme používali na dvoch projektoch a v databáze prezentačnej
služby Caesar sa nachádza spolu cez 22000 záznamov. Toto číslo žiaľ nezahŕňa všetky
testy, nakoľko počas experimentov došlo niekoľkokrát k zásahu aj do databázy.
2.1 Webová služba Caesar
Služba Caesar slúži len na publikovanie výsledkov pre študentov. Prezentácia
výsledkov je v podobe webovej stránky, kde študenti môžu v prehľadnej podobe zistiť stav
svojho projektu. Ukážka výstupu služby sa nachádza na obrázku 7.
Služba Caesar má definované REST API, pomocou ktorého vie Gladiator alebo
akákoľvek iná komunikujúca aplikácia výsledky testov prezentovať. Konkrétna podoba
výsledkov je závislá od typu výstupu testu, napr. porovnanie požadovaného výstupu
z programu so študentským je možné zobraziť pomocou nástroja diff, zatiaľ čo výsledok
hlásiaci chybu prekladu sa zobrazí ako text.
Adresu s výsledkami sme pre každého študenta posielali pomocou e-mailu. Tento
spôsob sa nám však pri takom počte študentov neosvedčil, nakoľko e-maily zvykli
v niektorých prípadoch značne meškať. Preto Caesar obsahuje aj sumárnu stránku pre
každého študenta so všetkými jeho výsledkami. Nie je preto potrebné čakať na doručenie
mailu, ale v príslušných časových intervaloch stačí sledovať len danú adresu.
118
Webové služby v procese vyhodnocovania študentských zadaní
Obr. 7. Celkový prehľad výsledkov študenta prezentovaný službou Caesar.
3
Prípad použitia 3 – Hodnotenie na požiadanie počas skúšky
Posledným prípadom použitia bolo nasadenie služieb do procesu záverečnej skúšky.
Študenti počas vymedzeného času riešili úlohy a svoje riešenia si mohli priebežne
kontrolovať, čím získali okamžitú spätnú väzbu. Schéma nasadenia tohto prípadu použitia
sa nachádza na obrázku 8.
Obr. 8. Schéma nasadenia služieb na záverečnej skúške z predmetu.
V tomto prípade s webovou službou Arena komunikuje priamo webové rozhranie,
v ktorom študent pracuje počas skúšky. Arena teda umožňuje vyhodnotiť aj samostatný
jednoduchý textový dokument (obsah odosielaného formuláru), ktorý nie je nutné baliť
samostatne do archívu.
Študenti nie sú počas trvania skúšky obmedzení v počte odoslaní riešení na kontrolu.
Aktuálne je teda v databáze po niekoľkých skúškach cez 7000 záznamov hodnotení, čo
v priemere predstavuje 15 hodnotení na študenta.
Poster
4
119
Záver
To, čo na začiatku vyzeralo ako silný experiment, sa počas semestra a postupného
nasadenia do praxe prejavilo ako riešenie s obrovským potenciálom do budúcna. Počas
testovania bolo vykonaných vyše 34000 testov, do ktorých bolo zapojených 475 študentov.
Podobný princíp hodnotenia bol čiastočne viditeľný len v prostredí systému edx. Tu sme
dokázali pri jednoduchom analyzovaní komunikácie pomocou nástrojov vo webovom
prehliadači identifikovať niekoľko služieb systému. Architektonicky podobným riešením sa
javí sada nástrojov eduComponents [2], ale podobne, ako ostatné spomínané systémy je
jeho vnútorná architektúra značne previazaná.
V článku boli prezentované tri prípady použitia troch webových služieb. V každom
jednom sa jednalo o použitie rovnakých služieb, avšak vždy v kontexte iného procesu.
Rovnako tak ich je možné podobným spôsobom prepojiť aj s existujúcimi populárnymi
CMS/LMS systémami, kedy napríklad vyhodnocovanie špecifických typov otázok v teste
môže mať práve na starosti konkrétna webová služba (podobne, ako je tomu v prípade
použitia č. 3). Môže byť však vytvorená aj špeciálna aktivita na odovzdávanie
programátorských zadaní v prostredí vybraného LMS, ale to sa bude na pozadí posielať na
hodnotenie do niektorej webovej služby a LMS bude použité len ako komunikačné
rozhranie medzi študentom a systémom (podobne, ako je tomu v prípade použitia č. 2).
Nespornou výhodou takéhoto prístupu je aj nezávislosť služieb - každá robí len to, na čo
je určená. Vďaka navrhnutému jednoduchému REST API nie je potrebné vytvárať
špeciálne používateľské rozhranie. V rámci komunikácie nedochádza k posielaniu
súkromných informácií, ako napr. prihlasovacie meno alebo heslo. Komunikáciu je ale
možné v špeciálnom prípade filtrovať pomocou súkromných tokenov, ktorým sa klient
nadväzujúci komunikáciu so službou autentifikuje v hlavičke dopytu.
Za jediný vážny zistený problém je možné považovať nasadenie systému počas skúšky,
kedy je v krátkom čase potrebné obslúžiť množstvo študentských dopytov. Ak sa totiž
hodnotenie jednej úlohy skladá z 10 testov a max. dĺžka hodnotenia jedného z nich sú 2s,
v najhoršom prípade tak trvanie celého testu zaberie 20s. Ako možné riešenie sa javí
použitie niektorého z dostupných frontov úloh. Uvedené existujúce riešenia [2], [3] a [6] sa
tomuto problému nevenujú, nakoľko každej úlohe môže učiteľ nastaviť max. počet
hodnotení, ktorý nemôže byť prekročený. V našom prípade však boli niektorí študenti
schopní počas skúšky urobiť aj viac ako 50 hodnotení.
Pomocou týchto služieb sa taktiež podarilo jednoducho naplniť kritériá uvedené
v úvode článku – dokázali sme rýchlo obslúžiť niekoľko stoviek študentov a zabezpečiť
objektívne hodnotenie ich výsledkov, pričom jednotlivé služby sme vedeli použiť znovu
v rozličných prípadoch. Vďaka tomu sa nám podarilo dosiahnuť náš hlavný cieľ omnoho
ľahšie a efektívnejšie – naučiť študentov programovať. A aj keď sa požiadavky kladené na
absolvovanie predmetu tento rok výrazne zvýšili, v porovnaní s minulým rokom je
percentuálny podiel úspešných študentov, ktorí predmet absolvovali, len o 7% nižší.
Literatúra
1.
2.
Ala-Mutka, K.: A survey of automated assessment approaches for programming
assignments. Computer Science Education, 15(2):83–102, 2005
Amelung, M., Krieger, K., & Ro, D. (2011). E-Assessment as a Service. IEEE
TRANSACTIONS ON LEARNING TECHNOLOGIES, 4(2), 162–174.
120
Webové služby v procese vyhodnocovania študentských zadaní
3.
Higgins, C. A., Gray, G., Symeonidis, P., & Tsintsifas, A. (2005). Automated
assessment and experiences of teaching programming. Journal on Educational
Resources in Computing. doi:10.1145/1163405.1163410
4. Chacon, S.: Pro Git. Apress, 2009
5. Ihantola, P., Ahoniemi, T., Karavirta, V., & Seppälä, O. (2010). Review of recent
systems for automatic assessment of programming assignments. Proceedings of the
10th Koli Calling International Conference on Computing Education Research - Koli
Calling ’10, 86–93. doi:10.1145/1930464.1930480
6. Joy, M., Griffiths, N., & Boyatt, R. (2005). The BOSS online submission and
assessment system. Journal on Educational Resources in Computing, 5(3), 2–es.
doi:10.1145/1163405.1163407
7. Kolling, M., Quig, B., Patterson A., and Rosenberg, J.: The BlueJ system and its
pedagogy. Computer Science Education, 13.dec.2003
8. Pattis, R. E.: Karel the Robot: A Gentle Introduction to the Art of Programming. John
Wiley & Sons, Inc., New York, NY, USA, 1981
9. Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., … Paterson,
J. (2007). A survey of literature on the teaching of introductory programming. In
ITiCSE-WGR ’07: Working group reports on ITiCSE on Innovation and technology in
computer science education (pp. 204–223). doi:10.1145/1345443.1345441
10. Tvarožek, J., & Bieliková, M. (2010). Feasibility of a socially intelligent tutor. In
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial
Intelligence and Lecture Notes in Bioinformatics) (Vol. 6095 LNCS, pp. 423–425).
doi:10.1007/978-3-642-13437-1_91
11. Valentine, D. W. (2004). CS educational research: a meta-analysis of SIGCSE
technical symposium proceedings. ACM SIGCSE Bulletin, 36, 255–259.
doi:10.1145/1028174.971391
12.
Poďakovanie
This work was supported by project KEGA No. 019TUKE-4/2014 Integration of the Basic
Theories of Software Engineering Engineering into Courses for Informatics Master Study
Programmes at Technical Universities - Proposal and Implementation and by project
Information technology for knowledge transfer (ITMS project code: 26220220123)
supported by the Research & Development Operational Program funded by the ERDF.
Annotation:
Web Services in the Process of Evaluation of Student's Projects
Teaching of programming is closely related with the evaluation of created programs by students. This
process can be very tedious, but with the proper tools it is possible in a relatively short time evaluate
solutions of big number of students with the objectivity of the evaluation process. This article is
dedicated to the automatization of this process with the usage of SOA architecture.
BOINC@Fiit – distribuovaný výpočtový systém
Peter LACKO, Juraj VINCÚR, Martin TIBENSKÝ, Pavol PIDANIČ, Juraj PETRÍK,
Ján KALMÁR, Ondej JURČÁK, Radoslav ZÁPACH
Ústav informatiky a softvérového inžinierstva,FIIT STU v Bratislave
Ilkovičova 2, 812 19 Bratislava
[email protected]
Abstrakt. Tento článok sa zaoberá výhodou využitia distribuovaných počítacích sietí
založených na báze spoluúčasti dobrovoľníkov. Predstavuje architektúru a základné
znaky systému BOINC, ktorý umožňuje takúto sieť vytvoriť a prevádzkovať a tiež
pilotný projekt vytvorenia takejto siete na Fakulte informatiky a informačných
technológií Slovenskej technickej univerzity v Bratislave. Systém je testovaný
pomocou riešenia hry Reversi a štatistickej úlohy týkajúcej sa DNA.
Kľúčové slová: distribuované počítanie, dobrovoľnícke počítanie, BOINC, Reversi,
DNA.
1 Úvod
Veľké množstvo moderných výkonných počítačov je v prostredí domácností alebo
organizácií využívaných len na administratívnu prácu alebo prehliadanie internetu.
Výpočtový potenciál týchto zariadení je využitý len na zlomok jeho maximálnej hodnoty.
Tu vzniká priestor na využitie týchto počítačov na špeciálny spôsob distribuovaného
počítania založeného na vytvorení sieti dobrovoľníkov. Dobrovoľníci sa podieľajú na
riešení výpočtových úloh poskytnutím svojich nevyužitých zariadení a tak pomáhajú
urýchliť výskumníkom riešenie výpočtovo náročných úloh, ktoré sa dajú vhodným
spôsobom rozdeliť na menšie úlohy.
Tento spôsob zdieľania výpočtových prostriedkov je výhodný z ekonomického aj
ekologického hľadiska, pretože nie je potrebná výroba alebo zaobstarávanie špeciálnych
superpočítačov a využívajú sa len už dostupné zariadenia.
2 Dobrovoľnícke počítanie a systém BOINC
V našom prostredí môžeme distribuované počítanie definovať ako spoluprácu väčšieho
množstva uzlov na riešení výpočtovo náročného problému. Uzly v sieti komunikujú iba
s centrálnym uzlom určeným na administráciu celého procesu a samé seba ponúkajú len
ako samostatné entity. Z tohto dôvodu musí riešený problém spĺňať určité podmienky a síce
musí byť vhodným spôsobom rozdeliteľný na menšie problémy, ktoré sa ďalej distribuujú
medzi jednotlivé uzly.
V štandardných typoch distribuovaných počítacích sietí sú všetky uzly pod kontrolou
administrátora, sú známe ich špecifiká, môže byť na nich v prípade potreby vykonaný
priamy zásah do systému a sú spojené vysokorýchlostným pripojením. Pri takomto stupni
kontroly je možné vykonávať výpočtové úlohy skrytou formou, bez vedomia prípadného
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 121-127.
122
BOINC@Fiit – distribuovaný výpočtový systém
ďalšieho používateľa uzla a výsledky vrátené od týchto uzlov možno bez špeciálnej
kontroly označiť za dôveryhodné.
V dobrovoľníckych distribuovaných počítacích sieťach je situácia trochu iná. Sieť je
vysoko heterogénna. Uzly majú rôzne operačné systémy, architektúry, systémové
prostriedky a rýchlosť pripojenia. Dobrovoľník je si plne vedomý účasti v takejto sieti. Pri
týchto podmienkach musia dobrovoľnícke siete riešiť radu ďalších problémov ako časté
pripájanie a odpájanie uzlov, efektívne prideľovanie v závislosti od systémových
prostriedkov uzla alebo potenciálne škodlivé správanie sa účastníkov vo forme sabotáže
výsledkov ich falšovaním alebo infiltráciou škodlivého kódu do systému.
Jedným zo systémov na vytváranie takýchto sietí je systém BOINC (Berkeley Open
Infrastructure for Network Computing) [1]. BOINC bol pôvodne zavedený v roku 2002 pre
podporu projektu SETI@home [2], ktorý sa zaoberá analýzou rádiových signálov za
účelom hľadania mimozemského inteligentného života. V roku 2013 bolo do projektu
zapojených už približne 145 tisíc aktívnych zariadení. Od svojho vzniku sa stal BOINC
populárnym nástrojom pre vytváranie a administráciu distribuovaných sietí aj pre mnoho
iných projektov.
2.1
Stručný popis systému
BOINC je postavený na štandardnej klient-server architektúre. Serverová časť má na
starosti celkovú administráciu projektu, vytváranie úloh, ich distribúciu dobrovoľníckym
zariadeniam, validáciu vrátených výsledkov a ich spracovanie. Štandardná inštalácia
obsahuje aj šablóny pre projektové stránky, ktoré slúžia jednak na popularizáciu projektu
a jednak na zobrazovanie priebežného stavu celkového riešenia problému alebo štatistické
údaje týkajúce sa počtu pripojených uzlov, prípadne rebríčky najlepších dobrovoľníkov.
Tieto rebríčky sa vytvárajú na základe kreditov pridelených za riešenie jednotlivých úloh.
Kreditový systém neposkytuje žiadne ďalšie výhody, ale podporuje prirodzenú súťaživosť
používateľov a tým môže projektu priniesť ďalšie výpočtové prostriedky.
V serverovej časti sa vytvárajú projekty. Každý projekt má svoj jedinečný identifikátor
a jeden BOINC server obsluhuje len jeden projekt. V rámci projektu môžeme vytvárať
ľubovoľné množstvo aplikácií, ktoré potom posielame dobrovoľníkom. Aplikácie môžu
mať niekoľko verzií, v závislosti od toho, pre koľko platforiem a architektúr ich chceme
vytvárať. Dobrovoľník má vždy možnosť pripojiť sa len k projektu, pričom o zaslanej
aplikácii rozhoduje server. Po pripojení k projektu sa dobrovoľníkovi pridelia na základe
jeho systému a systémových prostriedkov úlohy, ktoré sa odosielajú spolu s príslušnou
verziou aplikácie. Klientská časť má na starosti primárne spúšťanie, prípadne
pozastavovanie aplikácie a odosielanie výsledkov serverovej časti vo forme výstupného
súboru.
2.2
Serverová časť
Serverová časť sa skladá z niekoľkých navzájom spolupracujúcich častí. Časť má na
starosti fázu od vytvorenia úlohy až po jeho odoslanie klientovi a časť procesy spojené
s prijímaním a spracovávaním výsledkov.
Prvú časť tvorí generátor práce (work generator) slúžiaci na vytváranie úloh, ktoré
tvoria prakticky jednotlivé riešené problémy. Tieto úlohy pozostávajú zo súboru, alebo
množiny súborov, ktoré sa spolu s aplikáciou posielajú dobrovoľníkom. O tom, kto dostane
aký počet úloh rozhoduje plánovač (scheduler). V bode plánovania sa využíva aj jeden
z ochranných mechanizmov zameraných na identifikovanie nesprávne vypočítaných alebo
sfalšovaných výsledkov, ktoré sa môžu v dobrovoľníckych sieťach vyskytnúť. Ochrana
spočíva vo vygenerovaní viacerých identických úloh a ich rozposlanie rôznym klientom.
Poster
123
Pri ich prijímaní sa následne porovnávajú a výsledok nie je akceptovaný, pokiaľ sa
nedosiahne nejaké zvolené kvórum totožných odpovedí prijatých od klientov.
Druhá časť pozostáva hlavne z validátora a asimilátora. Validátor je bod prvého
kontaktu s vrátenými výsledkami a okrem vyššie spomenutého mechanizmu môže slúžiť aj
na overovanie vráteného súboru z formálnej stránky – jeho typ, veľkosť, formát obsahu atď.
Po validácii sa súbor premiestni do priečinku, kde čaká na spracovanie asimilátorom.
Jednoduchý asimilátor môže slúžiť len na spracovanie a následné uloženie výsledku do
databázy. Zložitejšie môžu vykonávať napríklad projektovo špecifické štatistické operácie
a spracovanie výsledkov.
Všetky vyššie spomenuté komponenty systému môžeme pomocou systému BOINC
spúšťať pri vzniknutí príslušných udalostí.
Obr.1. Architektúra systému BOINC
2.3
Klientská časť
Klientská časť, ktorú si na svojich zariadeniach musí nainštalovať dobrovoľník sa navonok
javí ako jeden celok, v pozadí sa skladá z viacerých častí, ktoré sú schopné fungovať
relatívne samostatne.
Jadro (core klient) komunikuje so serverom, odovzdáva mu informácie o klientovi,
stave riešenej úlohy, pýta si úlohy, spúšťa a manažuje aplikácie a v poslednom kroku
odosiela výsledky serverovej časti. Grafické rozhranie slúži dobrovoľníkovi na pripojenie
k projektu, prípadne nastavenie toho, za akých podmienok bude aplikácia spustená a aké jej
poskytne systémové prostriedky. Voliteľnou súčasťou klientskej časti je šetrič obrazovky,
ktorý môže na klientovi zobrazovať obrázky týkajúce sa projektu, prípadne zaujímavé
štatistiky a priebeh jednotlivých úloh.
124
BOINC@Fiit – distribuovaný výpočtový systém
3 Riešené projekty
Nasadenie BOINC siete prebiehalo na Fakulte informatiky a informačných technológií
STU (BOINC@Fiit – boinc.fiit.stuba.sk) v rámci študentského tímového projektu [5].
Úlohou projektu bolo otestovať sieť pomocou vybraných výpočtových úloh a vytvoriť
dokumentáciu, šablóny a návody pre ďalšie generácie študentov a výskumníkov. Keďže
výkon takýchto sietí závisí hlavne od počtu pripojených dobrovoľníkov, kriticky dôležitou
úlohou je aj verejné prezentovanie a popularizácia projektu.
3.1
Symetrická hra Reversi 8x8
Reversi je strategická dosková hra pre dvoch hráčov. Hráči postupne na plochu ukladajú
kamene a v prípade že sa hráčovi podarí ohraničiť súvislú čiaru súperových kameňov na
oboch koncoch, premení kamene na tejto čiare na svoju farbu. Cieľom hráča je mať na
konci hry na doske čo najväčší počet kameňov svojej farby.
Obr.2. Štartovná pozícia a prvý možný ťah v Reversi 8x8
Hlavným cieľom nášho projektu bolo zistiť ako hra dopadne v prípade, že sa v každom
ťahu hráč rozhodne ideálnym spôsobom, pričom prvý ťah uskutočňuje čierny hráč.
V prípade, že by sa nám podarilo uspieť, boli by sme celosvetovo prvým tímom, ktorý
našiel výsledok pre túto veľkosť šachovnice.
Hra Reversi je vďaka prirodzenému rozdeleniu možností do herného stromu ideálnym
kandidátom na riešenie pomocou distribuovanej siete. Každý uzol v strome predstavuje
šachovnicu po jednom z možných ťahov. Celkový počet legálnych ťahov pre tento rozmer
dosky je až 1028. Pri probléme takejto veľkosti je dôležité uvažovať vhodné heuristiky
jednak pri samotnom prehľadávaní stromu a jednak pri asimilácii výsledkov na strane
servera.
Úlohy vytvorené pre klienta pomocou generátora systému BOINC pozostávajú z pod
stromov, ktoré vznikli na určitej úrovni hlavného stromu hry. Samotný odosielaný súbor
obsahuje stav dosky (koreň pod stromu) a vhodne zvolený identifikátor, ktorý bol v tomto
prípade uložený v názve samotného súboru.
Klient vypočíta zadaný pod strom, rozhodne ktorý hráč a s akým náskokom vyhral
a výsledok pošle serveru. Server si výsledky ukladá do databázy a po ich skompletizovaní
určí výsledok pre celý strom.
Pri problémoch takejto veľkosti, je vhodné otestovať správnosť používaných
algoritmov, ale aj nástrojov slúžiacich na generovanie úloh a spracovávanie výsledkov. Na
takéto testovanie sme najskôr implementovali riešenie pre dosku s veľkosťou 6x6, ktorej
výsledok je známy [4] a v dnešnej dobe ho trvá bežnému počítaču nájsť rádovo minúty.
Poster
125
Obr.3. Spôsob distribúcie problému na menšie úlohy
Pomocou systému BOINC a našich algoritmov sme dostali správny výsledok (pre
zaujímavosť vyhrá biely o štyri kamene). V čase písania článku sa do tohto projektu
zapojilo 111 dobrovoľníkov, ktorí nám poskytli dokopy 1100 výpočtových jadier.
3.2
Štatistická analýza fragmentov DNA
V prostredí našej fakulty sa rozbieha aj výskum zameraný na rôzne metódy a algoritmy
spojené s DNA. Samotné skladanie DNA sme nevyhodnotili ako problém vhodný na
riešenie pomocou tohto typu siete, napríklad pre veľmi veľké nároky na pamäť už pri
menších genómoch. V rámci trvania tímového projektu však vznikla požiadavka na
vytvorenie distribuovaného systému skúmajúceho určité vlastnosti fragmentov, ktoré
produkujú zariadenia určené na skladanie DNA v procese čítania genetickej informácie.
Výstupom z tohto projektu budú nielen výsledky potenciálne užitočné pre výskumnú
prácu, ale aj šablóny pre aplikácie riešiace iné problémy týkajúce sa skúmania reťazcov
DNA.
Fragmenty, alebo laicky kúsky genetického kódu, ktoré sú vstupom pre samotné
skladanie DNA [6] môžu v rôznom počte obsahovať podreťazce, ktoré sú súčasťou
výslednej DNA. Zaujímavým problémom je zistiť, koľko krát sa štatisticky musí nachádzať
podreťazec vo fragmentoch, aby sme mohli prehlásiť, že sa v určitom počte bude nachádzať
aj vo výslednej DNA [4].
Na obrázku 4 je v hornej časti zobrazená výsledná DNA a pod ňou fragmenty,
z ktorých sa skladá. Pri fragmentoch môžeme uvažovať rôzne parametre ako dĺžka
jednotlivého fragmentu, počet fragmentov a pokrytie, ktoré vyjadruje s akou redundanciou
pokrývajú fragmenty referenčnú vzorku DNA. Spolu s množinou hľadaných podreťazcov
dostaneme množinu parametrov, ktorých hodnoty môžeme navzájom kombinovať. Tieto
kombinácie predstavujú úlohy, ktoré sa posielajú klientom. Výstupom od klienta bude
súbor s početnosťami pre hľadané podreťazce, pre dané hodnoty počtu fragmentov a dĺžky
fragmentov.
Pri tomto type úlohy nevzniká pri využití BOINCU takmer žiadna nadbytočná práca.
Generátor aj asimilátor by museli byť v nejakej forme, kvôli vytvoreniu experimentov
a spracovaniu výsledkov, vytvorené aj pri lokálnom riešení. Ak zohľadníme aj fakt, že
množstvo úloh v oblasti výskumu DNA sa týka práce s reťazcami, je reálnym a praktickým
cieľom vytvoriť nad systémom BOINC aplikačný rámec (framework). Tento rámec by
umožňoval výskumníkom nasadzovať riešenia do distribuovanej bez zbytočnej nadpráce
a agregovať viac výskumných problémov v rámci BOINC projektu.
126
BOINC@Fiit – distribuovaný výpočtový systém
Obr.4. DNA a fragmenty
4 Záver
Čísla predaných počítačov a smartfónov sa v roku 2013 pohybovali v stovkách miliónov.
Pomocou mizivého zlomku týchto zariadení sa dá vytvoriť dobrovoľnícka distribuovaná
počítacia sieť, ktorá pokryje potreby bežnej fakulty na dekádu dopredu. Systém BOINC
predstavuje technické riešenie s vysokým potenciálom pomáhať pri výučbe, teoretickom
výskume a hľadaní riešení reálnych problémov, ako napríklad existujúca dobrovoľnícka
sieť hľadajúca lieky na rakovinu. Zavádzanie a popularizovanie takýchto systémov v rámci
fakúlt im môže ušetriť finančné prostriedky, ktoré by boli potrebné na zakúpenie super
výkonných počítačov a špeciálnych priestorov, v ktorých musia byť umiestnené.
Poďakovanie. Tento článok vznikla vďaka podpore v rámci OP Výskum a vývoj pre
projekt: Podpora dobudovania Centra excelentnosti pre Smart technológie, systémy a
služby I a II, ITMS 26240120005, ITMS 26240120029, spolufinancovaný zo zdrojov
Európskeho fondu regionálneho rozvoja. Práca bola čiastočne podporená projektom APVV
0233-10.
Literatúra
1.
2.
3.
4.
5.
6.
Anderson, D. P.: BOINC: A System for Public-Resource Computing and Storage. In:
5th IEEE/ACM International Workshop on Grid Computing, November 8, 2004,
Pittsburgh, USA, pp 1-7.
Anderson, D. P. et al.: SETI@home: An Experiment in Public-Resource Computing.
Communications of the ACM, Vol. 45 No. 11, November 2002, pp. 56-61.
Feinstein, J.: Amenor Wins World 6x6 Championships! British Othello
FederationNewsletter, July, pp 6-9
Motahari, A. S. and Bresler, G.: Information Theory of DNA Shotgun Sequencing.
IEEE Transactions on Information Theory, Vol. 59, No. 10, October 2013
Vincúr, J. et al.: FIIT Grid – Distributed Computing Network. In: Proceedings in
Informatics and Information Technologies IIT.SRC 2014 Student Research Conference,
Mária Bieliková (Ed.), Nakladateľstvo STU, Bratislava (2014), 629-630
Warren, R. L. at al.: Assembling millions of short DNA sequences using SSAKE.
Bioinformatics Applications Note, Vol. 23 no. 4 2007
Poster
127
Annotation:
BOINC@FIIT – distributed computing network
This article addresses the advantage of using distributed computing networks based on participation
of volunteers. First part describes architecture and tasks of main modules of BOINC system, which is
designed to create and administer distributed computing networks. Article also covers the pilot project
of deployment distributed network on Faculty of Informatics and Information System in Bratislava.
System is tested with two different kind of tasks suitable for this way of computing. First project is
focused on finding ultra weak solution of Reversi 8x8 game. Reversi game tree can be naturally
distributed to subtrees which play role of subproblems. Second project consist of statistical task
related to searching for substrings in DNA fragments with various parameters.
Databázový mirror jako nutná komponenta
informační podpory při řízení kontinuální výroby
Roman DANEL, Lukáš OTTE, David JOHANIDES
Institut ekonomiky a systémů řízení, Hornicko-geologická fakulta,
VŠB – TU Ostrava
17. listopadu 15/2172, 708 33 Ostrava - Poruba
{roman.danel, lukas.otte, david.johanides.st}@vsb.cz
Abstrakt. Pro řízení kontinuálních technologických procesů v surovinovém průmyslu
je v dnešní době nutná existence informačního systému pro řízení výroby (MES),
který splňuje požadavky na spolehlivost a robustnost a je tedy v kategorii faulttolerant systémů. Na Institutu ekonomiky a systémů řízení se zabýváme návrhem
vhodné hardwarové i softwarové architektury takových systémů. V článku jsou
popsány důvody pro fault-tolerant řešení na příkladu informačního systému úpravny
uhlí a řízení jakostních parametrů uhlí. Pro řízení jakostních parametrů s cílem
zabránit překročení maximální hodnoty se používá informace o trendu, která je
vypočítávána z časových řad. Je tedy nutné zabezpečit data mající charakter časové
řady tak, aby byly bez přerušení, a pro tento účel je vhodná technologie databázového
mirroringu (zrcadlení). V červnu 2014 byl na Institutu zahájen projekt v rámci
Studentské grantové soutěže (SGS) s cílem porovnat technologie zrcadlení databází
čtyř producentů databázových systémů a doporučit nejvhodnější řešení z pohledu
funkcionality a ceny.
Klíčová slova: databázový mirror, informační systém úpravny, řízení kontinuálních
procesů, fault-tolerant systém, časová řada, výpočet trendu.
1 Úvod
Architektura a funkcionalita informačních systémů pro řízení výroby (označované jako
MES – Manufacturing Execution Systems) je závislá na druhu výroby. Principiálně existují
tři kategorie – výroba kusová, dávková a kontinuální. Na Institutu ekonomiky a systémů
řízení se dlouhodobě zabýváme automatizací a informačními systémy v oblasti
surovinového průmyslu, ve kterém převažují kontinuální technologické procesy (těžba uhlí,
zpracování energií, plynu, těžba a zpracování nerostů…). Typickou úlohou, řešenou
v informačních systémech pro kontinuální výrobu, je sběr dat o technologickém procesu,
což produkuje rozsáhlou množinu dat majících charakter časové řady. Tato data jsou
využívána pro bilanční výpočty a pro analýzu a výpočet trendu technologických nebo
jakostních parametrů.
Oproti nedávné minulosti je řízení výroby čím dál více závislé na existenci
informačního (řídicího) systému. Je to dáno neustálým důrazem na zvyšování produktivity
práce, stále přísnějšími požadavky odběratelů na jakost a tlakem ze strany konkurence. To
zase vytváří požadavky na informační systém, a to především na spolehlivost a robustnost
systému. Výpadek informačního systému může mít negativní důsledky jak pro samotné
řízení procesu, tak pro zajištění jakosti a kvality. Stále častěji jsou proto požadována řešení
v podobě tzv. fault-tolerant systémů (odolných vůči jakémukoli výpadku). Nejjednodušším
P. Šaloun, D. Chlapek (eds.), DATAKON 2014, Jasná, 25.-27.9.2014, pp. 129-136.
130 Databázový mirror…komponenta informační podpory při řízení kontinuální výroby
řešením pro zajištění požadavku na fault-tolerant je zdvojení systému (pokročilejší
enterprise řešení v podobě failover clusteringu a technologií „always-on“ poskytují větší
možnosti, avšak za vyšší cenu).
Hlavní myšlenkou fault-tolerant řešení informačního (řídicího) systému je existence
druhé – záložní – kopie systému, na kterou můžeme přejít v případě kritického výpadku
produkčního systému. Na systému záložním tedy musíme mít nejen identickou kopii
aplikačního vybavení, ale také aktuální data. Pokud má být přechod na záložní systém
dostatečně rychlý (v ideálním případě by uživatelé systému přechod neměli zaznamenat),
musíme mít k dispozici on-line kopii veškerých provozních dat. Přibližně před deseti lety
začali tvůrci databázových systémů nabízet technologie, které výše uvedený problém umí
zajistit – replikace a později mirroring (zrcadlení).
2 Příklad informačního systému pro řízení kontinuálních procesů
Jako příklad výrobního procesu, kde pořizovaná data mají charakter časových řad, je
například výroba černého uhlí. Výroba a prodej uhlí není jen o vytěžení uhlí z dolu, ale
podstatné je také dodržení jakostních parametrů požadovaných odběrateli. Důležitým
mezičlánkem mezi těžbou uhlí a jeho prodejem zákazníkům je zpracování uhlí v úpravně s
cílem dosáhnout odběrateli požadované jakostní parametry uhlí. Úprava uhlí v úpravně je
kontinuální proces, probíhající v režimu 7x24. Mezi základní jakostní parametry uhlí patří
obsah popele a obsah vody; další parametry jsou: výhřevnost, spalné teplo, obsah síry,
dilatace či index puchnutí. Obsah vody a popele je ovlivnitelný v procesu úpravy uhlí,
ostatní parametry jsou dány chemickým složením těžené suroviny.
Obr. 1 Kontinuální gamapopeloměr firmy Enelex Chvaletice
[Zdroj: http://www.enelex.cz/gamapopelomery.htm]
Aby bylo možné zmíněné jakostní parametry při výrobě uhlí dodržet, jsou úpravny uhlí
vybaveny informačními systémy, které v reálném čase zpracovávají informace ze snímačů.
Vzorkováním dat ze snímačů vznikají časové řady. Pro řízení jakosti jsou podstatné údaje o
jakosti na výstupu z úpravárenských technologií, měřené kontinuálními popeloměry
(nejčastěji se používají gamapopeloměry firmy Enelex, obrázek 1) a vlhkoměry (např.
Berthold), které jsou sice méně přesné než měření vzorků uhlí v laboratořích, ale jsou
schopné poskytovat údaje v reálném čase ještě v průběhu výroby [4]. Pro pracovníky
dispečinku nebo velínu nakládky uhlí není podstatná okamžitá hodnota ani její přesnost, ale
fakt, že na základě vzorkování jakostních parametrů s určitou časovou periodou informační
systém vypočítává z měřených hodnot trend (informace, zda hodnota sledovaného
Poster
131
jakostního parametru v průběhu technologického procesu stoupá či klesá). To umožňuje
dispečerovi provádět zásahy do výrobního procesu tak, aby zabránil nežádoucímu
překročení požadovaných hodnot obsahu popele či vody.
Požadovaná
hodnota
popele v %
Vypočítaná hodnota % popele a vody – vlečený
průměr
Obr. 2 Aplikace pro řízení nakládky, dispečink úpravny Dolu Darkov.
Příklad aplikace pro řízení nakládky uhlí na velínu vidíme na obrázku 2. Dispečer vidí
v informačním systému informace o odběrateli a jím požadovaného množství uhlí a obsahu
popele (tyto údaje jsou získány z podnikového informačního systému SAP R/3, kde jsou
evidovány uzavřené smlouvy na odběr uhlí, které obsahují dohodnuté požadované jakostní
parametry). Informační systém úpravny zároveň dispečerům ukazuje vlečený průměr a
trend z měření obsahu popele uhlí na pásových dopravnících. Jestliže hodnota jakostního
parametru v trendu stoupá, může dojít k překročení požadované hodnoty, což může
znamenat potenciálně problém - nesplnění požadované kvality, riziko jakostních odpočtů či
dokonce v nejhorším případě nutnost uhlí z vagonů vysypat a vrátit zpět do procesu úpravy.
Informace o trendu obsahu popele (zda stoupá či klesá) umožňuje dispečerům a
technologům provést řídící zásahy ještě v průběhu výroby tak, aby jakostní parametry byly
dodrženy. Aby byl informačním systémem trend vypočítán korektně, nesmí časová řada,
z níž je trend počítán, obsahovat mezery vzniklé odstávkou systému. Proto je důležité
zajistit, aby systém pracoval kontinuálně, bez výpadků.
V dřívějších dobách, kdy výroba probíhala bez této informační podpory, docházelo
k nedodržení kvality poměrně často. Při dnešním tlaku na efektivitu výroby už řízení
úpravny bez informační podpory není možné. V minulosti, kdy úpravny nebyly vybaveny
informačním systémem, byly informace o kvalitě zjišťovány kontrolním vzorkováním a
132 Databázový mirror…komponenta informační podpory při řízení kontinuální výroby
následnou analýzou v podnikové laboratoři. Jedná se o přesný ale časově velmi náročný
proces a výsledky laboratorních rozborů jsou známy až ve chvíli, kdy už je technologický
proces ukončen. Pokud zjistíme zásadní nedodržení kvality v situaci, kdy uhlí už je
nasypáno na vagónech k expedici, jedná se o značné ekonomické ztráty.
Současné informační systémy úpraven uhlí prošly dlouhodobým vývojem a dnes se
používá třetí generace těchto systémů [1]. Jedním z charakteristických rysů třetí generace je
fault-tolerant řešení spočívající ve zdvojení kritických komponent – serverů, koncentrátorů
dat a síťové infrastruktury. Pro řešení spadající do kategorie fault-tolerant systémů je nutné
zajistit také kontinuitu dat v relačních databázích. Pokud z důvodu nefunkčnosti systému
vznikne v datech „díra“, naruší se výpočty vlečených průměrů, trendů či bilancí.
Dnešní databázové systémy nabízejí jako vhodný prostředek pro zajištění kontinuity dat
technologii databázového mirroru (zrcadlení dat mezi dvěma nezávislými instancemi
databáze).
Zde je vhodné uvést, že technologie zrcadlení nenahrazuje zálohování. Zrcadlení i
zálohování mají poněkud jiný účel. Zálohování je pro fault-tolerant řešení nevhodné,
protože v případě výpadku produkčního systému by se na záložním musela obnovit
databáze z poslední zálohy. Nedostatky takového řešení jsou zjevné – pravděpodobně by od
poslední zálohy byla v systému nějaká prodleva a i samotný proces obnovy databáze ze
zálohy zabírá určitý čas, nemluvě o tom, že automatizace takového řešení je velice
problematická. Na druhé straně, ani zrcadlení nenahrazuje zálohování. Zrcadlení přenáší
veškeré změny v produkční databázi – pokud se v databázi nějakým způsobem poruší
integrita dat, promítne se toto narušení i do zrcadlené databáze.
V informačních systémech úpraven v těžební společnosti OKD je technologie zrcadlení
v provozu od roku 2006. Jedno z pilotních řešení na Dole Darkov bylo publikováno na
konferenci Datakon 2007 [2]. Z důvodu požadavku zákazníka na začlenění do
infrastruktury budované na platformě Microsoft, byl použit Microsoft SQL Server 2005.
Zrcadlení databází tam úspěšně funguje nepřetržitě od počátku roku 2007 a lze konstatovat,
že plní svůj účel. Přesto bylo během provozu zjištěno několik problémů, například enormní
nárůst databázových logů [3], způsobený kombinací několika faktorů - použitých
technických prostředků (velikost RAM paměti) a charakteru aplikace (kontinuální
vzorkování z přibližně 300 analogových, 60 čítačových a 1200 binárních snímačů).
3 Projekt testování technologie zrcadlení
Na jaře 2014 byl na Institutu ekonomiky a systémů řízení zahájen interní projekt v rámci
Studentské grantové soutěže (SGS), jehož cílem je ověřit a porovnat aktuální stav
technologií zrcadlení vybraných databázových systémů.
Cílem projektu je prozkoumat možnosti technologií zrcadlení jednotlivých
databázových systémů v kategorii low-end informačních systémů a doporučit nejvhodnější
řešení co se týče poměru funkcionalita a cena.
Alternativní řešení, které je rovněž často nasazováno, je řešení s využitím clusteringu
nebo tzv. „always-on“. Tyto řešení však spadají do kategorie enterprise a jejich pořizovací
cena je poměrně vysoká. V našem případě se zabýváme řešením pro informační a řídicí
systémy, jejichž pořizovací cena se pohybuje v řádu jednotek milionů korun.
Do testování byly zvoleny následující databázové systémy: Oracle, Microsoft SQL
Server, objektová databáze Caché (InterSystems) a MySQL. Poslední jmenovaný systém
disponuje pouze technologií replikace, byl však do testů zařazen jakožto zástupce „open
source“ databází. Výběr SŘBD byl omezen na databázové systémy používané v ČR
v surovinovém průmyslu z důvodu krátkých termínů řešení grantového projektu.
Poster
133
Snímaèe
Snímaèe
Snímaèe
UPS
UPS
Koncentrátory
dat
Router
Produkèní
server
UPS
Záložní
server
databázový
mirror
UPS
Server
Watchdog
UPS
Server
UPS
Router
alarm
Administrátor
Klienti
Obr. 3 Konceptuální schéma informačního systému pro řízení kontinuálních procesů
v surovinovém průmyslu
Pro účely testování byl na začátku projektu navržen model, který co nejvíce odpovídá
skutečné architektuře informačních systémů v surovinovém průmyslu. Konceptuální model
takové architektury informačních systémů vidíme na obr. 3. Základní myšlenkou zmíněné
architektury je koncepce koncentrátorů dat, které fungují jako mezistupeň při přenosu
informací ze snímačů, vážních systémů, analyzátorů apod. do samotného informačního
systému. Informační systém obsahuje dva servery, jeden je v roli produkčního serveru a
druhý v roli záložního (jedná se o konceptuální schéma, zde není rozlišováno další možné
fyzické rozdělení na aplikační a databázový server). Komponenta nazývaná watchdog
slouží pro automatizovanou kontrolu stavu produkčního systému, vyhodnocení závažnosti
výpadků a v případě potřeby zajišťuje přechod aktivního informačního systému na záložní
systém (včetně řešení přesměrování klientů systému). Klienti systému jsou v tomto případě
dispečeři, pracovníci velínů technologických celků a vedení úpravny, kteří v reálném čase
monitorují technologický proces a na základě informací poskytovaných informačním
systémem provádějí řídicí zásahy.
134 Databázový mirror…komponenta informační podpory při řízení kontinuální výroby
Sestavu technických prostředků (obr. 4) v projektu SGS pro testování zrcadlení databází
tedy tvoří také dva servery s operačním systémem Microsoft Windows Server 2012,
standardní PC v roli koncentrátoru dat a PLC (Programmable Logic Controller, zařízení pro
logické řízení; zde je používáno pro připojení snímačů jako zdroj dat pro databázový
systém) komunikující s koncentrátorem dat. Na PLC je připojeno několik snímačů.
Obr. 4 Sestava technických prostředků pro testování (servery, PC v roli koncentrátoru
dat, PLC s připojenými snímači)
Testovací sestava tedy umožňuje zprovoznit servery v roli produkčního a záložního
serveru, nastartovat zrcadlení databáze a simulovat periodické vzorkování údajů ze snímačů
s ukládáním dat ve formě časových řad do databáze. Jako snímač lze pro účely testování
použít jakýkoli analogový snímač.
Pro vyhodnocení testů byly stanoveny následující kritéria:
1. Posouzení složitosti zprovoznění zrcadlení (přehlednost a dostupnost dokumentace,
podmínky pro zprovoznění, možnosti automatizace procesu nastartování zrcadlení
pomocí skriptů).
2. Cena řešení.
3. Chování systému po rozpojení zrcadlení (složitost postupu obnovy do původního
stavu).
4. Odolnost mirroru při výpadku (vypnutí produkčního serveru při spuštěném mirroru).
U bodu 3 je záměrem ověřit také možnost využití třetího počítače v roli arbitru zrcadlení,
který umožňuje prohodit role (produkční – záložní systém). Cílem je tedy ověřit řešení
s maximální možnou míru automatizace přechodů a změn rolí bez nutnosti manuálního
zásahu operátora.
Zásadní pro vyhodnocení je čtvrté kritérium – chování zrcadlení při fyzickém vypnutí
produkčního serveru, výsledky tohoto testování jsou rozhodující pro závěrečné
vyhodnocení.
V době psaní příspěvku – červen 2014 – byla dokončena příprava testovací sestavy a
byly připraveny aplikace pro vzorkování dat ze snímačů, komunikaci s PLC a zápis dat do
databáze.
Poster
135
V průběhu srpna až září 2014 bude probíhat samotné testování a následné vyhodnocení.
Projekt SGS bude ukončen koncem roku 2014.
Již při zahájení testování můžeme konstatovat, že v dané oblasti chybí literatura, která
by komplexně popisovala způsoby práce s technologií zrcadlení v závislosti na použité
edici databázového systému. Samozřejmě, ke každému databázovému systému existují
rozsáhlá kompendia, která obsahují kapitoly věnované zrcadlení a také je celá řada článků
věnovaných zrcadlení dostupných na Internetu online. U každého systému jsme ale narazili
na několik skutečností, které nebyly úplně jasně popsány nebo jejichž popis chyběl a
k úspěšnému nastartování zrcadlení bylo nutné využít informace z několika zdrojů. Popisy
zprovoznění zrcadlení v literatuře jsou většinou zaměřeny na nejdražší enterprise verze
produktů. V případě použití standardních verzí je nutné některé postupy modifikovat.
Například u Microsoft SQL Serveru je nutné i v situaci, kdy servery nejsou zařazeny
v doméně, generovat a na druhém systému registrovat certifikáty pro přístupová práva
uživatelského účtu, který v rámci zrcadlení přistupuje do vzdáleného systému přes endpoint
protokolu TCP/IP (endpoint je objekt databáze SQL Server, který umožňuje komunikaci
v síti). Na druhé straně, při srovnání se stavem před deseti lety, je množství a přehlednost
informací dostupných k technologiím zrcadlení na Internetu podstatně vyšší.
4 Závěr
Pro řízení kontinuálních technologických procesů v surovinovém průmyslu je v současnosti
nutná existence výrobního informačního systému (MES), bez něhož by zajištění požadavků
na kvalitativní parametry a efektivnost výroby nebyla možná. V případě kontinuálních
procesů, kdy pořizovaná data mají charakter časových řad, musí být systém navržen
v kategorii fault-tolerant a splňovat požadavky na spolehlivost a robustnost.
V našem přípěvku jsme uvedli příklad takového systému ze surovinového průmyslu –
informačního systému pro úpravnu uhlí. Řízení jakostních parametrů uhlí v tomto systému
vyžaduje, z důvodu kontinuálního charakteru řízeného procesu, návrh a nasazení faulttolerant řešení, jehož nedílnou součástí je technologie zrcadlení databází. Zrcadlení
zajišťuje, že v případě výpadku systému a přechodu na záložní systém máme stále
k dispozici všechny produkční data a časové řady, sloužící k výpočtu trendů a bilancí,
nejsou významně narušeny. Výpočet trendu jakostních parametrů tak není zkreslený a
řízení výrobního procesu může pokračovat i v případě výpadku systému.
Na Institutu ekonomiky a systémů řízení se zabýváme návrhem architektury faulttolerant systémů pro kontinuální výrobní procesy – např. návrh watchdog komponenty pro
failover řešení (komponenta pro hlídání stavu produkčního serveru s algoritmem
zajišťujícím přechod na záložní systém v případě výpadku).
Ve vývoji je také varianta informačního systému se serverovým systémem na bázi
distribuce Linuxu.
Jedním z dalších oblastí řešení je zabezpečení dat v databázích, které mají charakter
časových řad a to byl důvod pro podání studentského grantového projektu zmíněného
v předchozí kapitole.
136 Databázový mirror…komponenta informační podpory při řízení kontinuální výroby
Literatura
1.
2.
3.
4.
5.
6.
7.
8.
Danel, R.: Analýza etap ve vývoji a implementaci informačních systémů a software
v úpravnách uhlí. In: Tvorba softwaru 2010, Česká společnost pro systémovou
integraci, Ostrava (2010) 33-39.
Danel, R.: Využití databázového mirroru SQL Serveru 2005 pro řešení odolnosti
informačního systému úpravny uhlí proti výpadkům. In: Datakon 2007, Brno (2007),
206-210.
Danel, R., Neustupa, Z.: Data Continuity Solution in Fault-tolerant Information
Systems. In: 12th International Carpathian Control Conference - ICCC 2011, Velké
Karlovice, Czech Republic (2011), 70 - 73.
Danel, R., Kohut, V., Kodym, O., Řepka, M., Kebo, V., Kijonka, M.: Information
Systems in Coal Preparation Plants and the Use of New Technologies. In: 13th SGEM
GeoConference on Informatics, Geoinformatics And Remote Sensing SGEM 2013.
Conference Proceedings, ISBN 978-954-91818-9-0 / ISSN 1314-2704, June 16-22,
Vol. 1 (2013), 151 – 158.
Database Mirroring Best Practices and Performance Considerations – Microsoft
MSDN
2006.
[online].
Available
at
<http://technet.microsoft.com/enus/library/cc917681.aspx>
Hemantgiri, G.: Microsoft SQL Server 2008 High Availability – Installing Database
Mirroring [online]. Available at <https://www.packtpub.com/books/content/microsoftsql-server-2008-high-availability-installing-database-mirroring>
Hirt, A.: SQL Server 2005 High Availability. Apress 2007. ISBN:13: 978-1-59059780-4
Oracle: 4 High Availability Architectures and Solutions. [online]. Available at
<http://docs.oracle.com/cd/B28359_01/server.111/b28281/architectures.htm>
Annotation:
For control of continuous technological processes in raw-material industry is nowadays necessary
existence of an information system (MES), which is in the category of fault-tolerant, and thus fulfills
the requirements for reliability and robustness. The Institute of Economics and Control Systems, we
design a suitable architecture of these systems - both hardware and software. The article describes the
reasons for the fault-tolerant solutions shown in example of coal preparation plant information system
and data safety having the character of time series using database mirroring technology. In 2014, the
Institute launched the project under the Student Grant Competition to compare the technology of
database mirroring four producers of database systems.
Rejstřík autorů
Bieliková, Mária .......................... 79
Biňas, Miroslav .......................... 111
Chlapek, Dušan ............................ 17
Danel, Roman ............................ 129
Genči, Ján ..................................... 73
Havlice, Zdeněk ........................... 99
Johanides, David ........................ 129
Jurčák, Ondej ............................. 121
Kalmár, Ján ................................ 121
Klímek, Jakub .............................. 17
Kučera, Jan ................................... 17
Kvet, Michal ................................ 87
Lacko, Peter ............................... 121
Líška, Miroslav ............................ 39
Matiaško, Karol ............................ 87
Nečaský, Martin ........................... 17
Ološtiak, Martin ........................... 73
Otte, Lukáš ................................. 129
Petrík, Juraj ................................ 121
Pidanič, Pavol ............................ 121
Pokorný, Jaroslav ........................... 3
Šesták, Kristián ............................ 99
Ševcech, Jakub ............................. 79
Šurek, Marek ................................ 53
Tibenský, Martin ........................ 121
Vajsová, Monika .......................... 87
Vincúr, Juraj .............................. 121
Vršek, Petr ................................... 63
Zápach, Radoslav ....................... 121

Podobné dokumenty

Vedení 400 kV V410/419, TR Výškov - TR Čechy Střed

Vedení 400 kV V410/419, TR Výškov - TR Čechy Střed • Vlastník stavby je povinen dbát o její statickou bezpečnost a celkovou údržbu, aby neohrožovala plynulý odtok povrchových vod, a zabezpečit jí proti škodám, způsobeným vodou a odchodem ledu (viz ...

Více

1 Nadácia otvorenej spoločnosti

1 Nadácia otvorenej spoločnosti S pokrokem fotografických technologií se v druhé polovině 19. století objevil nový žánr novinářské fotografie; žurnalistika získala kvalitativně zcela nový nástroj a všichni společně jsme získali n...

Více

Diplomová práce

Diplomová práce Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetnı́ techniky

Více

Teoretické základy kondenzační techniky

Teoretické základy kondenzační techniky Hydraulického rozdûlení je moÏno dosáhnout také pomocí akumulaãního zásobníku mezi kotlov˘m okruhem a topn˘mi–spotfiebitelsk˘mi okruhy. V‰eobecnû se tyto principy pouÏívají k zamezení interakcí mez...

Více

Druhé číslo - Psalterium - zpravodaj duchovní hudby

Druhé číslo - Psalterium - zpravodaj duchovní hudby Žalmisty nikdo neškolí ani neustavuje. V  lepším případě jsou to delegovaní členové chrámových sborů a schol. S  relativně malým úsilím by proto šlo dosáhnout jistě zlepšení jejich výkonů. Termín „...

Více

UNICORN COLLEGE BAKALÁŘSKÁ PRÁCE Efektivní datové

UNICORN COLLEGE BAKALÁŘSKÁ PRÁCE Efektivní datové 1.2.2. Nefunkční požadavky Při zopakování klíčového atributu tohoto systému, tedy že se jedná o online systém dostupný velkému množství uživatelů, vyvstávají další požadavky, na které je třeba mysl...

Více

20 stran / pages

20 stran / pages Ak sa chystáte na Oravu, srdečne Vás pozývame na prehliadku 2 aktuálnych výstav v Dolnom Kubíne SK: Karol Ondreička / 1944–2003, jubilejná výstava malieb, grafík, ex-librisov a známkovej tvorby a v...

Více

text práce - Katedra geoinformatiky

text práce - Katedra geoinformatiky automaticky. Uvedený postup musí být bezchybný, aby bylo možné vytvoření správné předpovědi. Data mohou být správně naměřena, odeslána, dokonce i zpracována, ale kvůli špatné vizualizaci mohou být ...

Více