Univerzita Hradec Králové Fakulta informatiky a managementu Katedra informatiky a kvantitativních metod
Návrh a implementace informačního systému ve webovém frameworku Django Vyhledávání digitálních zdrojů ve znalostním systému
Bakalářská práce
Autor: Komárek, Aleš Studijní obor: IM3
Vedoucí práce: Mgr. Filip Rubáček
V Hradci Králové
Duben 2010
Návrh a implementace informačního systému ve webovém frameworku Django Vyhledávání digitálních zdrojů ve znalostním systému
Prohlášení Prohlašuji, že jsem svou bakalářskou práci vypracoval samostatně a použil pouze zdroje uvedené v přiloženém seznamu.
V Hradci Králové dne 30. 4. 2010
Aleš Komárek
ii
Návrh a implementace informačního systému ve webovém frameworku Django Vyhledávání digitálních zdrojů ve znalostním systému
Poděkování Rád bych zde poděkoval všem, kteří mi pomáhali při tvorbě této práce. Zvlášť pak děkuji svému vedoucímu práce, Mgr. Filipu Rubáčkovi, za odbornou pomoc, podnětné rady a čas, který mi věnoval.
iii
Návrh a implementace informačního systému ve webovém frameworku Django Vyhledávání digitálních zdrojů ve znalostním systému
Anotace práce Cílem této bakalářské práce je vytvoření webové aplikace pro správu a vyhledávání digitálních zdrojů. Aplikace bude mít jasně definovanou sémantickou vrstvu, která je dostatečně pružná a spolupracuje s ostatními metadatovými standardy. Pro vytvoření a správu digitálních zdrojů je použité moderní uživatelské rozhraní. Zdroje jde lze procházet pomocí taxonomických a facetových klasifikací nebo vyhledávat podle zadaných výrazů. Annotation The goal of this bachelor thesis is creation of an application for management and retrieval of digital assets. Application shall have clearly defined semantic layer, which is flexible and interoperable with other metadata standards. Modern user interface components are user for creation and management of digital assets. Assets can be browsed by taxonomic and facet classifications or searched by inputted terms.
iv
Návrh a implementace informačního systému ve webovém frameworku Django Vyhledávání digitálních zdrojů ve znalostním systému
Obsah 1. Úvod ....................................................................................................................................... 1 2. Cíl a metodika práce ............................................................................................................... 2 Postup práce ........................................................................................................................... 2 3. Teorie ..................................................................................................................................... 4 Systémy pro řízení podnikového obsahu ............................................................................... 4 Historie ............................................................................................................................... 4 Vlastnosti ............................................................................................................................ 6 Rozdělení ............................................................................................................................ 8 Metadata ................................................................................................................................. 9 Charakteristiky ................................................................................................................... 9 Metadatové standardy a specifikace ................................................................................. 10 Metadata multimedií ........................................................................................................ 11 Mapování metadatových schémat .................................................................................... 12 Katalogy a klasifikace .......................................................................................................... 12 Knihovní klasifikace ........................................................................................................ 12 Mezinárodní katalogy ....................................................................................................... 13 Internetové databáze ......................................................................................................... 14 Klientské technologie ........................................................................................................... 15 jQuery ............................................................................................................................... 15 Flash/FLEX ...................................................................................................................... 16 Navigační schémata.............................................................................................................. 16 Taxonomické navigace ..................................................................................................... 16 Fulltextové vyhledávání ................................................................................................... 18 v
Návrh a implementace informačního systému ve webovém frameworku Django Vyhledávání digitálních zdrojů ve znalostním systému
Facetové navigace ............................................................................................................ 18 4. Analýza................................................................................................................................. 19 Datový model ....................................................................................................................... 19 Definice datových typů .................................................................................................... 19 Definice vlastností digitálních zdrojů .............................................................................. 19 Definice typů digitálních zdrojů ....................................................................................... 24 Aplikační vrstva ................................................................................................................... 27 Získání .............................................................................................................................. 27 Správa ............................................................................................................................... 27 Doručení ........................................................................................................................... 28 5. Vlastní implementace ........................................................................................................... 29 Software serveru ................................................................................................................... 29 Základní služby ................................................................................................................ 29 Doplňkové služby ............................................................................................................. 30 Python a Django ............................................................................................................... 30 Získání .................................................................................................................................. 31 Nahrávání zdrojů .............................................................................................................. 31 Extrakce metadat .............................................................................................................. 32 Správa ................................................................................................................................... 34 Seznam zdrojů .................................................................................................................. 34 Detail zdroje ..................................................................................................................... 35 Uložení ................................................................................................................................. 39 Zabezpečení ...................................................................................................................... 39 Uložiště............................................................................................................................. 39 vi
Návrh a implementace informačního systému ve webovém frameworku Django Vyhledávání digitálních zdrojů ve znalostním systému
Doručení ............................................................................................................................... 39 Procházení ........................................................................................................................ 39 Vyhledávání ..................................................................................................................... 42 6. Závěr..................................................................................................................................... 43 Seznam použité literatury ......................................................................................................... 44
vii
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 1. Úvod
1. Úvod Problematice popisu digitálních zdrojů se věnuji několik let. Během té doby jsem se pokoušel opakovaně vytvořit systém na správu obsahu. V té době jsem ani nevěděl, že existují specializované systémy na správu obsahu a k celé problematice přistupoval velmi laicky. Výsledkem této snahy byla řada víceméně použitelných redakčních systémů. Až pokrok Internetových technologií a nově získané zkušenosti ze studia na UHK mi pomohly vytvořit systém, který sedí popisu kvalitního systému na správu obsahu. Aplikace má moderní uživatelské rozhraní, kde lze pracovat s digitálními zdroji v celém jejich životním cyklu. V první části práce je popsána teorie, která mě motivovala zvolit použité technologie a standardy. V hlavní části práce následuje analýza a vlastní implementace aplikace. V závěru je pak shrnutí celého projektu.
1
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 2. Cíl a metodika práce
2. Cíl a metodika práce Cílem této bakalářské práce je vytvoření webové aplikace pro správu a vyhledávání digitálních zdrojů. Aplikaci je možné použít jako rozšiřující modul pro další Django aplikace. Má jasně definovanou sémantiku pro základní digitální zdroje. Aplikace v první řadě dovoluje shromáždit, uspořádat a prezentovat digitální zdroje. Pro vlastní popis digitálních zdrojů
se použily informace z několika nejpoužívanějších
metadatových standardů (Dublin Core, SCORM, XMP, LOM, a dalších). Správce má možnost nahrávat a upravovat metadatové záznamy (1) jednotlivých zdrojů a to ručně i automaticky použitím nástrojů. Pro koncové uživatele je připravené rozhraní s možností procházení, vyhledávání a zobrazování digitálních zdrojů (2). Procházení digitálních zdrojů se realizuje následujícími způsoby: •
Taxonomická navigace dovoluje členění zdrojů do hierarchických struktur.
•
Facetová navigace umožňuje dynamicky filtrovat zdroje podle zadaných parametrů.
•
Tagy jsou jednoduché značky pro označení zdrojů
•
Fulltextové vyhledávání textových digitálních v textovém obsahu zdrojů.
Postup práce Metadatový model aplikace vychází z existujících standardů, které se důkladně prozkoumaly. Nakonec byla vybrána sada základních elementů digitálních zdrojů. Tento postup umožnil vytvořit metadatové schéma, které lze jednoduše mapovat na ostatní systémy a je s metadatovými standardy kompatibilní. Pro shromažďování se zkoumala technologie, která by umožnily automatizaci tohoto procesu. Existují aplikace pro automatickou extrakci metadat i Internetové služby pro doplnění chybějících metadat.
2
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 2. Cíl a metodika práce
Pro vlastní nasazení byl zvolen Django (3) framework. Tím odpadly některé problémy s návrhem, protože základní struktura aplikace je daná použitým frameworkem. Django využívá MVC architekturu, šablonovací systém a objektově relační mapování. Aplikace je v plném rozsahu nainstalovaná na lokálním virtuálním serveru, on-line je k dispozici na adrese http://skos.newt.cz/ pouze omezená verze bez integrace Apache Solr serveru.
3
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
3. Teorie Vyvíjená aplikace má některé rysy ECM (řízení podnikového obsahu) systémů (4), proto je tento pojem popsán.
Systémy pro řízení podnikového obsahu Definice řízení podnikového obsahu (ECM) pochází od sdružení Information and Image Management Internacional (AIIM). Z počátku roku 2008 je poslední definice: ECM představuje strategie, metody a nástroje používané k zachytávání, spravování, ukládání, uchovávání a poskytování obsahu a dokumentů vztahujících se k organizačním procesům. Tento pojem zahrnuje oblasti, které řeší manažerské zdroje a správu dokumentů. Zahrnují také problémy spojené s přechody mezi tradičními a digitálními médii. ECM nabízí řešení problematiky auditů, sdílení informací, personalizaci a standardizaci obsahu a problémů s tím spojených.
Historie ECM systémy vznikly jako kombinace aplikací pro zachycení, vyhledávání a organizování informací s technologiemi pro správu obsahu, které se převážně zabývají archivací a správou digitálních dokumentů. Pojem Enterprise Content Management tedy odkazuje na řešení, které se soustředí na poskytování informací, zpravidla s využitím internetových technologií. Řešení obvykle obsahuje intranetové služby pro zaměstnance, ale také podnikové portály pro B2B komunikaci. Do této kategorie spadají také tradiční systémy pro správu dokumentů, které ještě nebyly převedeny pod architekturu ECM, ale již poskytují webová rozhraní k jednotlivým aplikacím.
4
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Technologické komponenty, které zahrnují ECM systémy dnes, jsou potomci elektronických systémů pro správu dokumentů (EDMS), které byly vyvinuty koncem 80. a začátkem 90. let. Původní EDM systémy byly vyvíjeny jako samostatné technologie. EDM systémy řešily zobrazování dat, tok dat, správu dokumentů a ERM. Softwarové firmy vyvíjely nové produkty pro každou z těchto oblastí zvlášť. Typický uživatel těchto nových technologií byla organizace, ve které bylo nasazeno menší řešení pouze v jednom oddělení, aby se zde zlepšila kvalita opakujících se procesů a zahájila se migrace směrem k „bezpapírové“ kanceláři. Každá z hlavních EDMS technologií představovala velkou výhodu pro mnoho organizačních procesů, protože v té době bylo mnoho pracovních procesů závislých na papíru. Z prvních samostatných EDMS technologií měli přínos hlavně organizace, které chtěly ušetřit čas nebo zlepšit dostupnost informací. Konkrétními přínosy byly: •
redukce manipulace s papírovými záznamy,
•
zamezení chyb manuálního zpracování,
•
snížení nákladů na skladování papírových záznamů,
•
zrychlení přístupu k informacím,
•
zefektivnění časové náročnosti podnikových procesů,
•
zabezpečení přístupu k dokumentům a jejich úprava,
•
možnost spolehlivého a přesného auditu.
Ke konci 90. let všechna odvětví EDMS nadále rostla. Organizace chtěly využít více EDMS produktů najednou. Také se začalo více organizací prezentovat na Internetu. Chtěli se představit prostřednictvím internetu, což vyžadovalo, aby tento software plnil funkci správce webového obsahu. Organizace, se softwarem nainstalovaným v jednotlivých odděleních, začaly přemýšlet o využití těchto prostředků v rámci celého podniku. Obě strany trhu, jak zákazníci, tak poskytovatelé softwaru začaly vnímat strategický potenciál technologických komponent EDMS a pokusily se je sloučit do jednoho integrovaného řešení, které by bylo schopné řešit kompletně potřeby organizací ve všech oblastech řízení.
5
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Firmy, které poskytovaly samostatné EDMS řešení, nebyly zpočátku nakloněny této integraci. Proto se v první fázi vývoj omezil pouze na tvorbu balíčků, které obsahovaly více systémů najednou za sníženou cenu. Na konci 90. let započal hlavní rozvoj softwaru a rostly jeho možnosti. Integrace produktů do jediného řešení se stala velkou výzvou pro mnoho firem. Proto se začal v roce 2001 používat termín „Enterprise Content Management“, který odkazuje na softwarová řešení, která slučují jednotlivé technologie EDM systémů. Teprve relativně nedávno vstoupili Microsoft a Oracle Corporation na trh ECM systémů. Microsoft nabízí produkt SharePoint od roku 2003. Oracle přestavil Oracle Content Management v roce 2006. Obě tyto firmy nabízejí řešení pro základní ECM funkce, které se pokrývají funkční požadavky většiny běžných organizací.
Vlastnosti Enterprise Content Management není jedna technologie, je to strategie, která nemá uzavřené řešení. Proto jsou ECM technologie spolu s DRT (Document Related Technologies) nebo DLM (Document Lifecycle Management) považovány za jedno z možných řešení pro širokou škálu potencionálních požadavků. ECM systémy se používají pro správu informací bez ohledu na zdroj nebo použití. Výhodou je existence pouze jedné služby pro dané funkce, čím se zabrání zbytečné, drahé a náročné údržbě více paralelních funkcí. Infrastruktura technologie ECM podporuje použití specializovaných aplikací, které jsou podřízené službám. ECM je tedy v podstatě součástí infrastruktury, která zahrnuje všechny procesy související s manipulací, správou a dodávání strukturovaných dat i nestrukturovaných informací. V dnešní době jsou ECM systémy nezbytnou součástí eBusiness aplikací.
Uložení Tato komponenta je navržena pro uložení dokumentů a informací, u nichž není nutné, aby se archivovaly. Pokud je třeba archivovat, je nutné použít média, která jsou pro to vhodná. Komponenty pro uložení lze roztřídit do několika skupin: 6
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Repositáře •
Souborové systémy
•
Databáze
•
Datové sklady
Skladovací technologie •
Magnetické pásky
•
Digitální optická média
•
Cloud Computing
Uchování dat Komponenty pro uložení se zabývají hlavně uložením informací na dlouhou dobu, někdy je vidět pojem elektronické archivování. Všechny metody pro dlouhodobé ukládání nejsou ovšem elektronické. Možnosti pro dlouhodobé ukládání •
WORM optické disky a pásky
•
Mikrofilmy
•
Papír
Doručení Funkce doručení se v ECM systémech používá pro prezentaci informací z komponent Správa, Uchování a Skladování. Obsahuje tyto funkce např. přenos informací do médií, generování výstupních souborů atd. Funkce doručení se dělí do tří skupin: Transformační technologie, Bezpečnostní technologie a Distribuce. Transformační technologie •
XML
•
PDF 7
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Bezpečnost Bezpečnostní technologie jsou k dispozici všem ECM komponentám. Technologie jako elektronické podpisy, správa certifikátů, klíčů, správa digitálních dat a vodoznaky se používají k ochraně datového obsahu. Zabezpečují tak práva k užívání a ochranu obsahu, který je zveřejněn na internetu. Distribuce •
Internet a intranet
•
eBusiness portály
•
E-mail
•
Datový přenos pomocí XML, JSON nebo dalších formátů
•
Datová média jako CD a DVD
•
Papír
Rozdělení Bližší přestavení hlavních komponent ECM technologií.
Document Management (DMS) Správa dokumentů v elektronické podobě. Jde zřejmě o nejrozšířenější oblast ECM.
Web Content Management System (WCMS) Zahrnuje řešení pro správu obsahu webových prezentací a aplikací.
Digital Asset Management (DAM) Správa multimediálních dat. Jde o speciální oblast ECM, která navíc obsahuje podporu pro multimediální data. Nejde přitom pouze o fotografie nebo obrázky, ale i o video nebo audio záznamy.
8
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Records Management (RM) Records Management se zabývá správou dokladů, tedy takových typů dokumentů, které se již nemohou změnit.
Team Collaboration (TCM) Typické úlohy, které se těmito nástroji řeší, jsou například podpora jednání vrcholového vedení, zpracování nabídky, vývoj nového produktu nebo jeho uvedení na trh apod.
Metadata Pojem metadata vychází z řeckého meta- = mezi, za + latinského data = to, co je dáno. Metadata tedy popisují vlastnosti určitého předmětu. Jinak řečeno jsou to strukturovaná data o datech. Metadata nám slouží k identifikaci jednotlivých digitálních zdrojů a k jejich snadnému vyhledání (1).
Charakteristiky Charakteristiky kvalitního metadatového modelu pro popis elektronických zdrojů je možné rozdělit do následujících oblastí.
Jednoduchost Záměrem metadatového modelu je, aby byl použitelný jak laiky, tak specialisty v oblasti popisu digitálních zdrojů. Většina prvků musí mít proto všeobecně srozumitelnou sémantiku přibližně ve složitosti knihovního katalogizačního lístku.
Sémantická interoperabilita Různé popisné modely znemožňují možnost vyhledávání napříč různými obory v prostředí Internetu. Soubor metadatových značek aplikace byl vytvořen s ohledem na ostatní standardy pro určování obsahu dat a tím se zvýšila možnost sémantické interoperability s ostatními systémy.
9
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Rozšiřitelnost Naše základní množina metadatových prvků poskytuje odlehčenou alternativu k podrobnějším a složitějším modelům popisu, jakými jsou například Learning Object Model nebo MARC formát. Navíc v sobě zahrnuje určitou flexibilitu a rozšiřitelnost pro kódování struktury a komplikovanější sémantiky, které jsou vlastní bohatším standardům popisu.
Modifikovatelnost Každý metadatový prvek má definici, která je naprosto jasná. Je také ovšem nutné, aby definice prvků uspokojovaly potřeby rozdílných oborů. Tento cíl se dá splnit umožněním modifikovat každý prvek libovolným kvalifikátorem. Pokud není kvalifikátor přítomen, prvek má svůj všeobecně chápaný význam, jinak je definice prvku modifikována hodnotou kvalifikátoru.
Metadatové standardy a specifikace Dnes existuje celá řada standardů pro metadatové značky, z nich bylo vybráno několik nejvýznamnějších, které se pak použily jako zdroj pro vytvoření standardu vlastního.
Dublin Core Metadata Initiative (DC) Dublin Core (5) je metadatový standard pro popis digitálních objektů. Název vznikl podle města Dublin, Ohio (USA), ve kterém se konala konference, na které byl navržen. Záměrem Dublin Core je ulehčit vyhledávání elektronických zdrojů. Původně byl vytvořen pro popis zdrojů na web. Zaujal však instituce, které se zabývají formálním zpracováním zdrojů, jako jsou muzea, knihovny, některé vládní agentury a komerční organizace, začal se používat a nyní je používán ve více než 60 zemích.
Sharable Content Object Reference Model (SCORM) SCORM (6) integruje řadu technických norem, specifikací a pokynů tak, aby splňovaly funkční
požadavky
ADL
-
dostupnost,
znuvupoužitelnost. 10
interoperabilitu,
dlouhou
životnost,
a
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Learning Object Model (LOM) Learning Object Model (7) je datový model, který popisuje výukové objekty a digitální zdroje pro podporu výuky. Rozšiřuje a doplňuje Dublin Core o mnoho vlastností. CanCore (8) je obsáhlá příručka, který názorně popisuje jednotlivé prvky LOM modelu.
Metadata multimedií Různé multimediální formáty mají své metadatové záznamy. Mapování vlastností jednotlivých formátů na normalizované vlastnosti je důležitým prvkem aplikace.
Obrázky U obrázků nejsou metadata nic nového. Fotoreportéři léta používají pro identifikaci metadata specifikovaná v IPTC (International Press Telecommunications Council) záznamech, díky kterým si mohou být jisti, že bude u jejich obrázků správně uveden zdroj. Digitální fotoaparáty vkládají množství užitečných metadat přímo do hrubého obrázkového souboru do EXIF (9) polí. Společnost Adobe se snaží využít svůj vliv k prosazení formátu XMP (10) (eXtensible Metadata Platform) jako zdokumentovaného, otevřeného a rozšiřitelného standardu pro tvorbu, ukládání a sdílení metadat. V poslední době prosazuje konsorcium W3C ontologii pro mediální zdroje (11). Digitální snímky jsou vybaveny množstvím metadat už přímo ve fotoaparátu, ale jeden z problémů je nadměrný počet proprietárních a často vzájemně nekompatibilních způsobů pro zápis a uchovávání těchto metadat. Výrobci fotoaparátů mají k dispozici velkou svobodu ke kódování důležitých informací do soukromých proprietárních polí v EXIF (9).
Audio/video Audio formáty jsou zastoupeny v největší míře formátem MP3, který má metadata obsažené v ID3 značce (12). Ostatní audio formáty jako OGG nebo FLAC mají dobře zdokumentované metadatové schéma.
11
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Video formáty prošly během let mnohem bouřlivějším vývojem než obrázky nebo audio formáty. Existuje velké množství způsobů pro ukládání audiovizuálního obsahu, každý se svým vlastním metadatovým záznamem.
Kancelářské formáty V kancelářských formátech dominuje kancelářský balík Microsoft Office. MS Office s verzí 2007 opustil dosavadní formát souborů i metadatových záznamů, vytvořil formát založený na XML, který používá některé prvky z Dublin Core ve svém metadatovém záznamu. Kancelářský balík OpenOffice obsahuje od verze 1.1 metadatový záznam, který se hojně využívá Dublin Core (5) specifikaci.
Mapování metadatových schémat Interoperabilita rozdílných metadatových schémat se řeší mapováním (13). Mapování přenáší určitou vlastnost jednoho schématu druhý. Může se stát, že se kvůli rozdílné sémantice schémat určitá část informací ztratí. Například při mapování ID3 značky se ztratí vlastnost Umělec (artist) místo toho ji nahradí obecnější vlastnost Autor (author). Cílem je tedy vytvořit formát, který by dokázal komunikovat s rozdílnými schématy s minimální ztrátou významu jednotlivých vlastností.
Katalogy a klasifikace Lidé mají od nepaměti věci organizovat do různých skupin a kategorií. Přelomovým činem bylo vytvoření klasifikace rostlinné říše na základě pohlavních znaků, kdy bylo vůbec poprvé vytvořeno ucelené taxonomické členění, tak hojně používané dnes.
Knihovní klasifikace Pro použití v knihovnách vzniklo několik klasifikací, které se snaží popsat existující vědomosti jedním rámcem, který by je všechny obsáhl. Tak jak se vyvíjí lidské poznání, tak se mění a rozšiřují i tyto klasifikace. Výhodou těchto klasifikací je to, že je vyvíjí zkušení experti. 12
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
V dnešní době nejpoužívanější knihovní klasifikace jsou Universal Decimal Classification a Dewey Decimal Classification.
Universal Decimal Classification Universal Decimal Classification (14) je systém knihovní klasifikace vyvinutá belgickými bibliografy Paul Otletem a Henri La Fontainem na konci 19. století. Je založen na Dewey Decimal Classification, navíc ale používá pomocné znaky pro označení různých zvláštních aspektů předmětu a vztahů mezi subjekty. Obsahuje proto analyticko-syntetický neboli facetový prvek. Proto je používán především ve vědeckých knihovnách. MDT byla upravována a rozšiřována v průběhu let, aby se vyrovnala s pokroky ve všech disciplínách lidského vědění a je stále pod neustálým dohledem, aby mohla být případně aktualizována.
Dewey Decimal Classification Dewey Decimal Classification (15) je proprietární systém knihovnické klasifikace. DDC vypracoval Melvil Dewey v roce 1876. Systém byl upraven a rozšířen v celkem 22 velkých revizí, poslední je z roku 2003. Systém organizuje knihy do regálů v určitém a opakovatelném pořadí, aby je bylo snadné najít a vrátit zpět na své správné místo. Tento systém se používá v 200.000 knihovnách ve více jak 135 zemích.
Mezinárodní katalogy Mezinárodně akceptované katalogy unikátně popisující jedinečným způsobem knihy, časopisy, hudební média jsou v dnešním globálním světě nezbytností. Pokud známe jedinečný identifikátor daného zdroje, přináší nám to velkou výhodu, protože můžeme jednoduše dohledat ostatní informace.
International Standard Book Number (ISBN) International Standard Book Number (mezinárodní standardní číslo knihy) je alfanumerický kód určený pro jednoznačnou identifikaci knižních vydání. ISBN je specifikováno mezinárodním standardem ISO 2108, v Česku je tento standard převzat jako ČSN ISO 2108. 13
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Do roku 2007 měl ISBN kód deset cifer (devět významových a kontrolní číslici). Od 1. ledna 2007 byl kód rozšířen na třináct číslic, pro sjednocení s reprezentací ISBN v čárovém kódu a pro rozšíření kapacity systému. EAN prefix 978 byl doplněn o prefix 979, čímž kapacita stoupla na dvojnásobek.
International Standard Serial Number (ISSN) ISSN (Mezinárodní standardní číslo seriálové publikace) je jednoznačný osmiciferný identifikátor periodické publikace (noviny, časopisy, včetně těch vycházejících online). ISSN je obdobou ISBN používaného pro knihy. Na rozdíl od ISBN však ISSN nemá žádnou vnitřní strukturu a nelze z něj zjistit žádné informace o publikaci. Je to pouze jednoduchý identifikátor.
Internetové databáze Mimo mezinárodně uznávané katalogy existuje na internetu několik obecně uznávaných databází popisující digitální zdroje. Tyto zdroje často trpí problémy s financováním, to často vede ke komercializaci nebo ukončení služby.
Internet Movie Database (IMDb) Internet Movie Database je on-line databáze informací o filmech, televizních pořadech, hercích, režisérech a všem, co s filmovou tvorbou souvisí. Databáze vznikla z Usenetové skupiny rec.arts.movies. Koncem roku 1990 už seznam obsahoval přes deset tisíc položek. Nakonec Col Needham, jeden z účastníků skupiny, zveřejnil sadu UNIXových skriptů, umožňující rychlé prohledávání tohoto seznamu. V roce 1993 bylo vytvořeno webové rozhraní pro přístup k databázi a vytvořena možnost doplňování informací e-mailem. Jak objem dat postupně rostl, provoz databáze začal být stále nákladnější. V roce 1996 byla ve Velké Británii založena společnost Internet Movie Database Ltd. Majitelé IMDb v roce 1998 prodali celý podnik společnosti Amazon.com za podmínky, že její obsah zůstane volně přístupný na Internetu.
14
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Klientské technologie Technologie na straně klienta tvoří důležitou součást webových aplikací. Webové aplikace jsou vázané na prostředí webových prohlížečů a na jejich interpretaci Internetových standardů (HTML, CSS, EcmaScript). Cílem je vytvořit jednoduchou aplikaci s využitím moderních prostředků. Proto je použitá knihovna jQuery (16) jako výchozí rámec pro práci s JavaScriptem. Pro některé dílčí věci je použitá technologie Flash.
jQuery jQuery (17) je lehká javascriptová knihovna, která klade důraz na interakci mezi JavaScriptem a HTML. První verze byla vydána Johnem Resigem v lednu 2006. Výhoda použití javascriptové knihovny spočívá ve vymazání rozdílů mezi prohlížeči. Z funkcí jQuery nás zajímají nejvíce: •
Funkce pro výběr, procházení a změnu DOM
•
Události
•
Manipulace s CSS
•
AJAX
•
Rozšiřující moduly
•
Uživatelské komponenty
jQuery UI jQuery UI poskytuje abstrakci pro interakce, animace, efekty a komponenty. Používá se k vytvoření vysoce interaktivních webových aplikací. Z dostupných UI komponent používám nejvíce záložky, které tvoří jeden ze základních kamenů uživatelského rozhraní aplikace.
Ostatní jQuery rozšíření Rozšiřující moduly doplňují základní funkce jQuery knihovny. jQuery UI (16) je vlastně pouze hodně rozsáhlé jQuery rozšíření. Kromě jQuery UI aplikace používá ještě rozšíření jQuery.layout. 15
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
jQuery.layout je rozšíření, které dovoluje rozdělit obrazovku na několik separátních částí, má dobrou podporu integrace s jQuery UI.
Flash/FLEX Adobe Flex je sada technologií vytvořená firmou Adobe Systems pro vývoj RIA aplikací (Rich Internet Application) založených na technologii Adobe Flash. První verze vydala v roce 2004 firma Macromedia pod jménem Flex Data Services. V roce 2008 uvolnilo Adobe Flex 3 SDK pod otevřenou licencí. Flexové aplikace se kompilují a spouští v prostředí Adobe Flash přehrávače. Flex není o vytváření animací, MovieClipů, a podobných. Existuje zde spousta již hotových komponent (objektů) s vlastní grafikou, vlastnostmi a metodami, které můžeme použít a ušetřit si tak spoustu času. Použití Flash technologií nám umožňuje přidat na stránky prvky, které nejsou v klasickém HTML možné.
BirdEye BirdEye (18) je komunitní projekt, jehož cílem je posunout návrh a vývoj komplexního zobrazování informací a knihovny pro vizuální analytiku pro Adobe Flex. Knihovna umožňuje uživatelům vytvářet vizualizace dat pro analýzu a prezentaci informací. Projekt v sobě integruje několik souvisejících knihoven. V projektu je použitý Relation Analysis modul pro zobrazení relačních dat z databáze.
Navigační schémata Navigace digitálních zdrojů (2) představuje důležitou část aplikace. K navigaci se používají nejen metadatové záznamy digitálních zdrojů, ale i někdy i vlastní zdroje.
Taxonomické navigace Taxonomie (z řeckého taxis – uspořádání, nomos – zákon) je v pojem, který obecně představuje předmětnou klasifikaci. Předměty rozumíme určitá témata (taxony), které mají 16
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
mezi sebou definované vazby. Tyto vazby je pak dovolují členit do jednotlivých hierarchicky uspořádaných kategorií. Rozlišujeme několik skupin klasifikací, které mohou uživatelé procházet. Globální – Globální taxonomie jsou všeobecně přijaté taxonomie, například DDC, UDS. Jsou z pohledu aplikace statické. Tvoří je experti v oboru. Lokální – Lokálně uznávané taxonomie popisují například strukturu popisované organizace. Může to být struktura vyučovaných předmětů, kateder a fakult v rámci univerzity UHK. Vytváří je lokální autority. Osobní – Pod osobní taxonomií si můžeme přestavit uživatelské složky, kam si ukládá jednotlivé soubory (digitální zdroje). Tvůrce je většinou osoba neznalá problematiky. Taxonomie můžeme zobrazit a procházet několika způsoby.
Seznam taxonů Jednoduchý seznam odkazů na taxony, které splňují určitou podmínku. Je to nejčastější forma navigace například u webových stránek. Seznam taxonů může nabývat několik forem. Globální navigace Globální navigace je případ seznamu taxonů, kdy jsou taxony přímými potomky kořenového taxonu. Globální navigace bývá v rámci kontextu neměnná. Dovoluje horizontální pohyb po první úrovni hierarchie. Lokální navigace Lokální navigace může nabývat různých podob v závislosti na aktuální poloze v taxonomii. Může zobrazovat najednou celou aktuální větev taxonomie, nebo pouze aktuální úroveň. Drobková navigace Drobková navigace je speciální případ taxonomické navigace, představuje cestu od aktuálního ke kořenovému taxonu. Dovoluje pouze vertikální pohyb hierarchií.
17
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 3. Teorie
Inter-klasifikační V systému obecně existuje více klasifikací, aplikace proto dovoluje pohyb mezi jednotlivými taxonomiemi. Digitální zdroj může být najednou umístěn ve více taxonomických klasifikacích.
Fulltextové vyhledávání Fulltextové vyhledávání je technika pro prohledávání digitálních dokumentů nebo databáze. Ve fulltextovém vyhledávání vyhledávač zkoumá všechna slova v každém uloženém dokumentu a pokouší se je porovnat se slovy zadanými uživatelem. Fulltextové vyhledávání se začalo používat v 70. letech v knihovních databázích. Návratnost je množství vrácených výsledků vyhledávání a přesnost je měřítkem kvality vrácených výsledků. Návratnost je poměr vyhledaných relevantních výsledků vůči všem relevantním výsledkům. Přesnost je počet vrácených relevantních výsledků vydělený celkovým počtem vrácených výsledků. Vzhledem k nejednoznačnosti přirozeného jazyka, fulltextové vyhledávací systémy typicky obsahují možnosti pro zvýšení přesnosti a návratnosti. Kontrolované slovníky pomáhají vyhledávání a také pomáhají mírnit problémy se špatnými výsledky označením dokumentů tak, aby se nejasnosti eliminovaly. Rozpor mezi přesností a návratností je jednoduchý: zvýšení přesnosti může snížit celkovou návratnost, zatímco nárůst návratnosti má za následek snížení přesnosti.
Facetové navigace Facetová navigace, jinak také facetové vyhledávání, je technika přístupu ke kolekcím informací a zdrojů, reprezentovaných pomocí facetové klasifikace. Tato technika umožňuje uživatelům procházet informace pomocí filtrování vlastností. Facetový klasifikační systém umožňuje přiřadit více klasifikací jednomu objektu, tím se vytvoří klasifikace, kterou je možno řadit několika způsoby, lépe než v jednom předurčeném taxonomickém pořadí. Každý facet obvykle odpovídá hodnotám vlastností společných všem digitálním zdrojům.
18
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
4. Analýza V této části je popsána databázová a aplikační vrstva aplikace. Prezentační vrstva je blíže popsána v kapitole 5. Vlastní implementace.
Datový model Datový model popisuje základní sadu vlastností digitálních zdrojů. Každý typ digitálního zdroje má podmnožinu těchto vlastností. Blíže je představen digitální zdroj typu kniha.
Definice datových typů V datovém slovníku používáme následující datové typy. Všechny se dají jednoduše mapovat do relační databáze kromě typu LangString, který je uložen v externí tabulce. Typ vlastnosti
Popis
String
Jednoduchý text, omezený na 255 znaků
LangString
Jednoduchý text s kódem jazyka v ISO639-3, omezený na 255 znaků
Text
Libovolně dlouhý text
LangText
Libovolně dlouhý text s kódem jazyka v ISO639-3
Vocab
Omezení oboru hodnot dané vlastnosti
Date
Datum a čas definovaný dle W3C-DTF
Integer
Celočíselný datový typ
Decimal
Desetinné číslo, 16 znaků celkem, přesnost 6 desetinných míst
Definice vlastností digitálních zdrojů Aplikace obsahuje sadu metadatových elementů, které co nejlépe kryjí požadavky digitálních zdrojů. Některé vlastnosti jsou společné pro všechny zdroje, některé jsou specifické pro daný typ zdroje. 19
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
Název
Označení
aggregation_level
Úroveň agregace
Datový typ Integer
Definice Funkční granularita objektu.
(Vocab) contribute
Příspěvek
-
Změny na zdroji.
contribute.date
Příspěvek.datum
Date
Datum příspění.
contribute.entity
Příspěvek.entita
String
Subjekt, který přispívá k tomuto zdroje.
contribute.role
Příspěvek.role
description
Popis
format
Formát
String LangText String (Vocab)
genre
Žánr
String
Druh příspěvku. Textový popis obsahu zdroje. Fyzické nebo digitální provedení zdroje. Žánr zdroje.
(Vocab) identifier
Identifikátor
-
Jednoznačný odkaz na zdroj v rámci daného kontextu.
identifier.catalog
Identifikátor.katalog
Text
identifier.entry
Identifikátor.záznam
String
Schéma jmenného prostoru. Řetězec pro konkrétní jmenný prostor.
language
Jazyk
String
Jazyk intelektuálního obsahu zdroje.
(Vocab) pages
Počet stran
Integer
Počet stran digitálního zdroje
cover
Obal
String
Typ obalu digitálního zdroje.
edition
Edice
Integer
Vydání digitálního zdroje.
status
Status
String
Stav dokončení zdroje.
(Vocab) structure
Struktura
String
20
Základní organizační struktura
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
objektu. subject
Předmět a klíčová
String
Téma obsahu zdroje.
-
Odkaz na taxonomii.
slova taxon
Taxon
taxon.entry
Taxon.záznam
String
Konkrétní termín v taxonomii.
taxon.source
Taxon.zdroj
String
Jméno klasifikačního systému.
title
Název
type
Typ zdroje
LangString -
Jméno dané zdroji. Povaha nebo žánr (druh) obsahu zdroje.
version
Verze
String
Vydání zdroje.
Komentáře k jednotlivým vlastnostem Taxon. záznam Taxon je uzel, který má definovaný název nebo termín. Taxon může mít také alfanumerické označení nebo identifikační kód pro standardizovaný odkaz. K označení konkrétního taxonu lze použít název taxonu, nebo jeho identifikátor. Taxon. zdroj Tento datový prvek může používat jakoukoliv uznávanou "oficiální" taxonomie nebo uživatelem-definovanou taxonomii. Formát Formát většinou může obsahovat typ média nebo rozměry zdroje. Formát můžeme použít k popisu softwaru, hardwaru nebo jiného zařízení potřebného pro zobrazení nebo manipulaci se zdrojem. Příklady rozměrů zahrnují velikost a dobu trvání. Doporučuje se vybrat hodnotu prvku z řízených slovníků (např. seznam Internet Media Type definující formáty počítačových medií). Žánr Doporučený postup je použit řízeného slovníku, například EBU slovník. 21
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
Úroveň agregace 1: nejmenší úroveň agregace, např. hrubé mediální data nebo fragmenty. 2: kolekce objektů úrovně 1, např. lekce. 3: kolekce objektů úrovně 2 objektů, např. kurz. 4: Největší úroveň granularity, např. soubor předmětů, které vedou k diplomu. Pokrytí Většinou bude Pokrytí obsahovat prostorové umístění (jméno místa nebo zeměpisné souřadnice), časové období (označení období, datum nebo časové období) nebo jurisdikci (např. jméno správní jednotky). Doporučuje se vybírat hodnotu prvku z řízených slovníků (např. thesaurus geografických názvů) a kde je to vhodné, uvádět místa nebo časové úseky spíše jménem než číselnými identifikátory jako jsou soubory souřadnic nebo časové intervaly. Identifikátor Doporučuje se identifikovat zdroj znakovým řetězcem nebo číslem odpovídajícím některému z formálních identifikačních systémů. Formální identifikační systémy jsou např. Unifikovaný identifikátor zdroje (URI), dále Identifikátor digitálního objektu (DOI), Mezinárodní standardní číslo knihy (ISBN) aj. Identifikátor.katalog Název nebo označení identifikačního nebo katalogizačního systému pro tuto položku. Příklad: ISSN, DOI, ISBN, URI Identifikátor.záznam Hodnota identifikátoru v rámci identifikačního či katalogizačního systému, který určuje nebo identifikuje daný zdroj. Jazyk Doporučuje se použít RFC 3066 [RFC3066], která ve spojení s ISO639 [ISO639] definuje jazykové kódy tvořené ze dvou nebo tří písmen případně doplněných kódem země. Příklady jsou např. "en" nebo "eng" pro angličtinu, "akk" pro akadštinu a "en-GB" pro angličtinu používanou ve Velké Británii. Struktura 22
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
atomická: objekt je nedělitelný (v tomto kontextu). kolekce: soubor objektů bez stanoveného vztahu mezi sebou. síť: soubor objektů ve vztazích, které jsou blíže neurčené. hierarchická: soubor objektů, jejichž vztahy mohou být zastoupeny stromovou strukturou. lineární: soubor objektů, které jsou plně řazeny - Je to například soubor objektů, které jsou spojeny vztahem "předchozí" a "další". Název Nejčastěji bude název tvořit jméno, pod nímž je zdroj oficiálně znám. Typ zdroje Typ obsahuje termíny popisující obecné kategorie, funkce, druhy nebo agregační úrovně obsahu. Doporučuje se vybírat hodnotu prvku z řízeného slovníku (např. slovník typů DCMI). K popisu fyzického nebo digitálního provedení zdroje, použijte prvek Formát. Příspěvek subjekty (tj. osoby, organizace), které přispěly ke stavu tohoto zdroje během svého životního cyklu (např. vytvoření, editace, publikace). Příspěvek.datum Kde je to vhodné, je uvedené datum, kdy byl příspěvek uskutečněn nebo dokončen. Příspěvek.entita Identifikace a informace o subjektech (tj. osoby, organizace), které přispívají k tomuto zdroji. Příspěvek.role Uveďte funkce nebo její část, kterou uskutečňuje osoba, instituce, atd. přispívá ke zdroji. Předmět a klíčová slova Předmět bude většinou vyjádřen pomocí klíčových slov, klíčových frází nebo pomocí klasifikačních znaků popisujících téma zdroje. Doporučuje se vybírat hodnotu prvku z řízeného slovníku nebo klasifikačního schématu.
23
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
Definice typů digitálních zdrojů Typy zdrojů vycházejí ze slovníku typů DCMI. Zdroj typu Kniha (Book) je ukázka vlastního typu digitálního zdroje.
Označení
Definice
Komentář
Kniha
Oficiální textový zdroj.
Kniha je sešitý nebo slepený svazek listů nebo skládaný arch papíru, kartonu, pergamenu nebo jiného materiálu, popsaný, potištěný nebo prázdný s vazbou a opatřený přebalem. Kniha je též literární práce. Kniha publikovaná v elektronické formě se nazývá elektronická kniha nebo e-book.
Sbírka
Sbírka je seskupení jednotek.
Termín sbírka znamená, že zdroj je popisován jako skupina, části (jednotky) mohou být popsány samostatně.
Soubor dat
Soubor dat je informace
Například seznam, tabulky nebo databáze. Soubor
zakódovaná v definované
dat je určený pro přímé strojové zpracování.
struktuře. Událost
Událost je nepřetrvávající,
Metadata pro událost poskytují popisnou informaci,
časově založený výskyt.
která je podkladem pro zjištění účelu, místě, trvání, odpovědných činitelů a odkazů na související události a zdroje. Příklady - výstava, konference, workshop, den otevřených dveří, představení, bitva, soud, svatba, párty, požár.
Obraz
Obraz je symbolickým
Například obrázky nebo fotografie fyzických
vizuálním vyjádřením, jiným
objektů, malby, grafiky, kresby, ostatní obrazy a
než text.
grafická díla, animace a hrané filmy, filmy, diagramy, mapy, notové záznamy. Nutno si uvědomit, že termín Obrázek může zahrnovat jak elektronické tak i fyzické vyjádření.
24
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
Interaktivní
Interaktivní zdroj je zdroj,
Například formuláře na webových stránkách, applety,
zdroj
který vyžaduje interakci ze
multimediální výukové objekty, chatové služby,
strany uživatele, aby mohl být
virtuální realita.
pochopen, spuštěn nebo proveden. Pohyblivý
Sled/řada vizuálních
Příklady pohyblivých obrázků jsou: animace, filmy,
obraz
vyjádření, které pokud jsou
televizní vysílání, video, stroboskopy nebo vizuální
ukazovány za sebou, navozují
výstup ze simulace. Případy typu Pohyblivý obraz
dojem pohybu.
musí být popsatelné i jako příklady širšího typu Obraz.
Fyzický
Neživotný, třírozměrný objekt
Například počítač, pyramida nebo socha. Nutno si
objekt
nebo hmota.
uvědomit, že digitální vyjádření nebo náhražka těchto věcí může být Obraz, Text nebo jeden z dalších Typů.
Digitální
Základní abstraktní zdroj.
definovaných digitálním zdrojem.
zdroj Služba
Všechny zdroje sdílí základní sadu vlastností
Služba je systém, který
Například: kopírovací služba, bankovní služby,
poskytuje koncovému
autentifikační služby, meziknihovní výpůjční služby,
uživateli jednu nebo více
Z39.50 nebo webový server.
hodnotných funkcí. Software
Software je počítačový
Software je počítačový program ve zdrojové nebo
program ve zdrojové nebo
binární podobě, která může být použitelná pro (ne
binární podobě.
nutně přenositelnou) instalaci na jiných počítačích. Pro software, který slouží pouze pro vytvoření interaktivního prostředí, použijte termín Interaktivní zdroj.
Zvuk
Zvuk je zdroj, jehož obsah je
Například počítačový soubor s hudbou, hudební CD
primárně určen pro
disk, záznam řeči nebo zvuků.
reprodukci k poslechu. Statický
Statické vizuální vyjádření.
Obrazům textových dokumentů se doporučuje
25
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
obraz
Příklady statických obrazů:
přiřadit typ text. Případy typu Statický obraz musí
malby, kresby, grafické
taktéž být popsatelné jako širší typ Obraz.
návrhy, plány a mapy. Text
Zdroj, jehož obsah tvoří
Například knihy, dopisy, disertace, básně, noviny,
hlavně slova ke čtení.
články, archivy adresářů. Nutno si uvědomit, že kopie nebo obrázky textu jsou stále druhem textu.
Zdroj kniha (Book) Knihu definují vlastnosti popsané v následující tabulce. Položky označené * jsou vlastnosti zděděné z abstraktního typu Zdroj (Resource). Označení
Kardinalita
Definice
aggregation_level*
1
Funkční granularita objektu.
contribute*
1+
Změny na zdroji.
cover
1
Typ obalu.
description*
0..1
Textový popis obsahu zdroje.
edition
1
Edice zdroje
format*
1
Fyzické nebo digitální provedení zdroje.
full_title
0..1
Plný název zdroje
identifier*
1+
Jednoznačný odkaz na zdroj v rámci daného kontextu.
language*
1
Jazyk intelektuálního obsahu zdroje.
pages
1
Počet stran.
status*
1
Stav dokončení zdroje.
structure*
1
Základní organizační struktura objektu.
subject*
0+
Téma obsahu zdroje.
taxon*
0+
Konkrétní termín v taxonomii.
26
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
title*
1+
Jméno dané zdroji.
type
1
Povaha nebo žánr (druh) obsahu zdroje.
Aplikační vrstva Aplikační vrstva obsahuje základní akce pro každou fázi životního cyklu digitálních zdrojů. Aplikace definuje tyto fáze životního cyklu digitálního zdroje: •
Získání
•
Správa
•
Doručení
Získání V rámci získávání jsou definovány akce pro nahrávání digitálních zdrojů a následná automatická extrakce metadatových záznamů. Akce
Výstup
Popis
upload_single
HTML
Jednoduché HTML rozhraní pro nahrání jednoho souboru.
upload_multi
HTML
Rozhraní používající SWFUpload knihovnu s možností nahrání více souborů najednou.
upload_process
JSON
Zpracování nahraných souborů s automatickou extrakcí metadat.
resource_create
HTML
Rozhraní pro nahrání jednoho souboru se použije v případě, kdy klient nemá podporu pro Flashový přehrávač.
Správa Hlavní cíl správy je doplnit chybějící metadata a zpřístupnění digitálních zdrojů koncovému uživateli. K tomu slouží seznam digitálních zdrojů, kde jsou všechny zdroje v systému 27
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 4. Analýza
přehledně zobrazené s možností základního filtrování a vyhledávání. V detailu zdroje se dají upravovat jednotlivé vlastnosti digitálních zdrojů. Akce
Výstup
Popis
resource_list
HTML
Rozhraní zobrazení seznamu digitálních zdrojů.
resource_detail
HTML
Rozhraní pro zpracování metadat jednoho digitálního zdroje.
Doručení Každý uživatel má vytvořenou svoji úvodní stranu (dashboard). Úvodní strana je důležitou součástí aplikace. Obsahuje základní navigační prvky: •
Formuláře pro zadání dotazů
•
Seznam taxonomických klasifikací
•
Seznam klíčových slov
•
Možnost výběru základních facetových vlastností.
Akce
Výstup
Popis
user_dashboard
HTML
Základní stránka uživatele, kde má možnost použít základní navigační prky.
taxon_detail
HTML
Seznam všech zdrojů, které jsou klasifikovány aktuálním taxonem.
facet_detail
HTML
Seznam všech zdrojů, které vyhovují vybraným facetovým prvkům.
tag_detail
HTML
Seznam všech zdrojů, které mají nastavenou určitou značku.
search_result
HTML
Seznam všech textových zdrojů, které vyhovují zadaným termínům.
resource_detail
HTML
Detail zdroje, podle typu zdroje má uživatel možnost zvolit některý z přednastavených typů zobrazení.
resource_map
SWF
Graf reprezentující zdroje, jejich umístění ve struktuře. Využívá Flash knihovnu BirdEye (18).
28
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
5. Vlastní implementace V této kapitole je popsán software a postupy použité při implementaci navrhovaného řešení.
Software serveru V této části jsou popsány aplikace tvořící prostředí nutné pro optimální fungování aplikace.
Základní služby Jádrem serveru je operační systém Ubuntu (19) 10.04 Server Edition s kódovým označením Hardy Heron. Je to osvědčený systém, který bude nahrazen koncem dubna 2010 novou verzí 10.04 s kódovým označením Lucid Lynx. Systém má aplikací pro správu softwarových balíků aptitude. Většina požadovaných aplikací šla nainstalovat bez problémů, pouze některé Java aplikace se museli doinstalovat ručně.
Webové servery Jako webový server pro python aplikace slouží Apache2 Web Server 2.2 s modulem mod_WSGI. Tento modul umožňuje rychlou CGI bránu pro python aplikace. Pro běh Java aplikací je nainstalovaný aplikační server Tomcat 6.0. Je kvalitní alternativou pro komerční produkty, z nichž nejznámější jsou „WebSphere Application Server“ od IBM nebo „WebLogic Application Server“ od Oracle.
Databázový server Pro relační databázi je použitý PostgreSQL Server ve verzi 8.4. PostgreSQL je relační databázový systém s otevřeným zdrojovým kódem. Má za sebou více než patnáct let vývoje a zakládá si na spolehlivosti a bezpečnosti. Často je srovnáván s databází MySQL, kterou v mnoha ohledech překonává.
29
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
Doplňkové služby Základní služby dovolují plné fungování webového serveru z pohledu koncové uživatele, ale pro správu serveru jsou důležité i další služby.
Cron Cron je softwarový démon, který v Unixových operačních systémech automatizovaně spouští v určitý čas daný příkaz. Jedná se vlastně o specializovaný systémový proces, který v operačním systému slouží jako plánovač úloh, jenž umožňuje opakované spouštění periodicky se opakujících procesů. V našem případě slouží pro noční běhy dávkových úloh při zpracování metadatových záznamů.
Vzdálený přístup Přístup
přes
SSH
protokol
umožňuje
bezpečnou
komunikaci
mezi
serverem
a
administrátorem. Administrátor využívá tento protokol pro zprostředkování přístupu k příkazovému řádku, kopírování souborů a vlastně jakýkoliv přenos dat.
Python a Django Jádrem aplikace je webový framework Django postavený na programovacím jazyku Python.
Python Python je dynamický objektově orientovaný programovací jazyk, který v roce 1990 navrhl Guido van Rossum. Python zdarma nabízí instalační balíky pro většinu běžných operačních systémů. Ve většině distribucí systému Linux je Python součástí základní instalace. Python je hybridní jazyk (neboli víceparadigmatický). Znamená to, že při psaní programů dovoluje používat nejen objektově orientované paradigma, ale i procedurální a v omezené míře i funkcionální. Python má díky tomu vynikající vyjadřovací schopnosti. Kód aplikací je ve srovnání s jinými jazyky krátký a dobře čitelný. Django rozšiřuje vlastnosti pythonu o komponenty pro tvorbu webových aplikací.
30
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
Django Django (3) je open webový aplikační framework, který se volně drží architektury MCV (Model-View-Controller). Původně byl navržen pro správu zpravodajských stránek společnosti The World Company v USA. V červnu 2005 byl vydán pod BSD licencí. Framework je pojmenován po jazzovém kytaristovi Django Reinhardtovi. Hlavní úkol Djanga je umožnit vytvoření komplexních, databází řízených webových aplikací. Výhody jsou znuvupoužitelnost komponent, rychlý vývoj a především „DRY“ (Don’t Repeat Yourself) koncept.
Získání Získávání je první krok v práci s digitálními zdroji v systému. V rámci získávání se řeší nahrávání zdrojů do informačního systému a následná automatická extrakce metadatových značek podle typu nahraného zdroje.
Nahrávání zdrojů Zdroje můžeme do systému automaticky nahrát pomocí nástroje SWFUpload (20) nebo přes klasický HTML formulář. SWFUpload je malá JavaScriptová/flashová knihovna, která si bere to nejlepší z obou světů. Má Flashové možnosti nahrávání souborů a přístupnost a jednoduchost HTML.
31
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
Extrakce metadat Dolování metadat ze souborů mají na starosti Apache Tika (21) a MediaInfo (22). Tika je sada nástrojů pro detekci a extrakci metadat a strukturovaný text obsahu z různých dokumentů. MediaInfo je program pro extrakci metadat z audiovizuálních souborů.
Textové dokumenty Typ HTML
Popis Hypertext Markup Language (HTML) je lingua franca webu. Tika podporuje prakticky jakékoliv HTML. Výstup z HTML parseru je platný
XHTML
kód
32
a různé heuristiky
zaručují
odstranění
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
nežádoucích prvků, jako jsou skripty, které znečišťují vytěžený textový obsah. XML a odvozené
Extensible Markup Language (XML) je obecný formát zápisu dat, který lze použít pro popis všech druhů obsahu. Tika má vlastní parsery pro některé běžně používané XML slovníky, jako je XHTML, OOXML a ODF. XML parser jednoduše vytěží textový obsah dokumentu a ignoruje jakoukoliv XML strukturu. Jedinou výjimkou z tohoto pravidla jsou DC (5) metadatové prvky, které se parsují jako metadata dokumentu.
Microsoft Office
Microsoft Office a některé další aplikace ukládají dokumenty ve formátu OLE2 Compound Document nebo Office Open XML (OOXML). Starší OLE2 formát byl představen v balíku Microsoft Office 97 a byl výchozí formát až po Office 2007, kde byl představen nový formát OOXML založený na XML. Apache POI knihovna obstarává extrakci textu a metadat z OLE2 i OOXML dokumentů.
OpenDocument
Formát OpenDocument (ODF) je výchozí formát kancelářského balíku OpenOffice.org. OpenDocument parser podporuje tento formát i starší OpenOffice 1.0 formát, na kterém je ODF založen.
PDF
PDF parser zpracovává Portable Document Format (PDF) dokumenty pomocí Apache PDFBox knihovny.
ePUB
Tika
podporuje
formát
pro
elektronickou
publikaci
(EPub)
používaného pro mnoho digitálních knih. RTF
Tika používá RTF parser pro extrahování textového obsahu z Rich Text Format (RTF) dokumentů.
Prostý text
Extrakce obsahu z textových souborů se může jevit jako jednoduchý úkol do té doby, než začnete přemýšlet o všech možných kódování. TXT parser využívá projekt ICU pro automatickou detekci kódování textu dokumentu. Speciální parser zpracovává soubory titulků.
Multimediální formáty Typ
Popis
33
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
Audio parser používá knihovnu MediaInfo pro extrakci metadat z
Audio
MP3, OGG Vorbis a Flac formátů. Metadata obrázků jsou k dispozici prostřednictvím JPEG parseru.
Image
který podporuje extrakci EXIF informací z JPEG souborů. Video parser podporuje širokou škálu formátů a audio/video
Video
kontejnerů (.avi, .wmv, .qt, .mkv, .mp4).
Instalace a použití nástrojů pro extrakci metadat Je potřeba nainstalovat poslední produkční verzi aplikace Apache Tika a pomocí instalátoru Maven ji zkompilujeme. Aplikace MediaInfo se instaluje z instalačního balíku, který je k dispozici na oficiálních stránkách. Vlastní komunikace mezi django aplikací a analyzátory probíhá přes CLI rozhraní. Django zavolá příkazem s parametry nástroj pro analýzu. Výstup z analyzátoru je pak v předem definovaném XML, který django aplikace zachytí a dále zpracuje.
Správa Po nahrání digitálních zdrojů přichází na řadu jejich správa. V rámci správy můžeme spravovat metadatové záznamy jednotlivých digitálních zdrojů.
Seznam zdrojů V seznamu zdrojů můžeme zdroje filtrovat podle: •
Typu zdroje
•
Zdroje náležící do určitého taxonu
V seznamu je vidět název zdroje a některé další vlastnosti.
34
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
Detail zdroje V detailu zdroje je možné upravovat vlastnosti digitálního zdroje. Jednotlivé prvky uživatelského rozhraní pro správu jsou pro lepší přehlednost členěny do záložek. •
Záložka General
•
Záložka Technical
•
Záložka Classification
Složka General obsahuje základní textové vlastnosti digitálního zdroje, záložka Technical obsahuje informace o životním cyklu digitálního zdroje a například formát. V záložce Classification jsou přiřazené taxony a klíčová slova.
35
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
Ukázka metadatového záznamu zdroje typu Kniha (Book) Následující záznam popisuje ukázkový digitální zdroj. Je to fyzická kniha v angličtině “Ambient Findability” od Petera Morvilla. Vlastnost
Ukázková hodnota
aggregation_level
2
contribution
Role
Publisher
Date
September 2005
Entity
O’Reilly Media, Inc.
36
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
contribution
contribution
Role
Author
Date
September 2005
Entity
Morville, Peter
Role
Content provider
Date
2010-04-15
Entity
Komárek, Aleš
cover
paperback
description (EN)
How do you find your way in an age of information overload? How can you filter streams of complex information to pull out only what you want? Why does it matter how information is structured when Google seems to magically bring up the right answer to your questions? What does it mean to be "findable" in this day and age? This eye-opening new book examines the convergence of information and connectivity. Written by Peter Morville, author of the groundbreaking Information Architecture for the World Wide Web, the book defines our current age as a state of unlimited findability. In other words, anyone can find anything at any time. Complete navigability. Morville discusses the Internet, GIS, and other network technologies that are coming together to make unlimited findability possible. He explores how the melding of these innovations impacts society, since Web access is now a standard requirement for successful people and businesses. But before he does that, Morville looks back at the history of wayfinding and human evolution, suggesting that our fear of being lost has driven us to create maps, charts, and now, the mobile Internet.
edition
1
format
Physical
full_title (EN)
Ambient Findability: What We Find Changes Who We Become
37
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
identifier
identifier
Catalog
ISBN-10
Entry
0596007655
Catalog
ISBN-13
Entry
978-0596007652
keyword
Findability
keyword
Semantic web
keyword
Information architecture
language
EN
pages
188
size
0
status
Final
structure
atomic
taxon
Source
UDC
Entry
004.5 Human-computer interaction. User interface. User environment
taxon
taxon
Source
Amazon
Entry
Website Architecture & Usability
Source
Komárek, Aleš
Entry
Favorite books
title (EN)
Ambient Findability
type
Book
38
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
Uložení Data se ukládají do relační databáze. Soubory jsou uloženy na pevném disku serveru. Data v databázi i soubory je nutné chránit před ztrátou a před neoprávněným přístupem.
Zabezpečení Zabezpečení dat je důležitou částí systému pro správu obsahu. Musí být zajištěno bezpečné uložiště, autentifikace a scénář pro zálohy. V našem případě je uložiště pevný disk serveru, což není nejbezpečnější médium z hlediska možné ztráty dat, proto jsou data automaticky zálohována pravidelně spouštěným skriptem na disk na externím serveru. Pro autentifikaci je použitý implicitní autentifikační systém Django frameworku.
Uložiště Problém zabezpečení dobře řeší externích uložiště, ze kterých vyniká Amazon S3 (23). Amazon S3 (Simple Storage Service) je online úložiště, které nabízí firma Amazon Web Services. Amazon S3 nabízí neomezený úložný prostor přes jednoduché webové rozhraní. Amazon zahájil provoz S3 ve Spojených státech v březnu 2006 a v Evropě v listopadu 2007. Od svého založení, Amazon účtoval koncovým uživatelům 15 centů za gigabyte/měsíc plus poplatky za odesílání i přijímání dat.
Doručení Koncový uživatel přichází do kontaktu s digitálními zdroji ve fázi doručení. Uživatel může hledané zdroje nalézt procházením pomocných navigačních struktur nebo vyhledáváním v obsahu digitálních zdrojů.
Procházení Základní procházení je realizováno pomocí jednoduchých seznamů odkazů, které jsou zobrazeny ve stromových strukturách. Základní kámen uživatelské rozhraní pro procházení jsou jQuery (17) a jQuery UI (16), které poskytují bohaté možnosti pro vytvoření uživatelského rozhraní. 39
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
Předmětné taxonomie Každý digitální zdroj může mít vazbu na taxony. Taxony jsou jednotlivé prvky předmětných klasifikací. Taxony mají mezi sebou tranzitivní vazbu, proto se zdroje přiřazené taxonům zanořeným hluboko v taxonomii automaticky přenáší i do nadřazených taxonů. Předmětné taxonomické klasifikace jsou nejobvyklejší formou navigace na Internetu. Předmětné klasifikace můžeme procházet nejen přes klasické HTML, ale můžeme použít i sofistikovanější nástroje, jako je RaVis modul knihovny birdeye, která dovoluje jednoduchým způsobem procházet relační data a je velmi dobře použitelný pro procházení stromových struktur i grafů. V aplikaci je vytvořeno několik základních taxonomií •
UDC – Zjednodušená verze univerzální desetinné klasifikace 40
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
•
Amazon – Rozdělení knih podle portálu Amazon.com
•
Osobní taxonomie jednotlivých uživatelů
Facetové navigace Facetová navigace je rozšíření předmětných klasifikací. Dovoluje třídit zdroje podle určitých vlastností. V ukázce vidíte procházení autorů digitálních zdrojů, kde můžete vybrat pohlaví, zemi a rok narození. Facetové navigace jsou realizované pomocí Solr vyhledávacího serveru (24), který je blíže popsán v části o vyhledávání.
Klíčová slova a tagy Klíčové slova a tagy jsou pečlivě vybrané termíny, které charakterizují daný digitální zdroj. Kliknutím na daný tag se zobrazí seznam digitálních zdrojů popsaných určitou značkou.
41
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
Vyhledávání Vyhledávání je vázáno na vyhledávací server. Byl zvolen Apache Solr (24), protože jde jednoduše nainstalovat, nakonfigurovat a propojit s Django aplikacemi.
Vyhledávací služba Projekt Apache Lucene je Java aplikace, která poskytuje indexovací a vyhledávací technologii, kontrolu pravopisu, zvýraznění hledaného textu i pokročilé analyzátory. Solr je výkonný vyhledávací server, který využívá technologii Apache Lucene. Podporuje XML/HTTP a JSON/Python/Ruby API, zvýraznění hledaných výrazů, facetové vyhledávání, replikaci a spravuje se přes webové rozhraní.
Integrace vyhledávacího serveru s django projektem Pro komunikaci mezi django projektem a vyhledávacím serverem slouží aplikace Django Haystack (25). Django haystack je aplikace, která dovoluje propojit django model s vyhledávacím serverem. Podporuje několik vyhledávacích serverů, zejména Solr, Whoosh a Xapian. Použití aplikace Django-haystack s Solr (24) serverem je jednoduché. Příkazem se z datového modelu django projektu vygeneruje XML konfigurace pro Solr server, která se překopíruje do nastavení serveru a server se restartuje. Poté je možné dotazovat Solr server.
42
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 6. Závěr
6. Závěr Podařilo se vytvořit webovou aplikaci, do které jdou jednoduše nahrát soubory, na kterých se provádí základní extrakce metadat. Jednoduché soubory se tím mění na digitální zdroje, se kterými je možné dále pracovat. Digitálním zdrojům se dají doplnit chybějící metadata a tím je v systému klasifikovat. Koncový uživatel má pak možnost vybrat si z několika způsobů, jak se k hledaným zdrojům dostat. Aplikace používá volně šiřitelný software, který je ve většině případů špičkové úrovně. Tento postup dovoluje, s relativně nízkými náklady, řešit velmi komplikované problémy, jako jsou automatická extrakce metadat, vytváření facet nebo fulltextové vyhledávání a další. Možnosti pro vylepšení aplikace jsou jak na straně rozšíření podporovaných formátů digitálních zdrojů, implementovány jsou zatím pouze základní zdroje, tak v možnostech přístupu ke zdrojům, kde se dá uživatelské rozhraní vylepšit o moderní prvky, používající JavaScriptové a Flashové technologie. Rád bych se zvolenému tématu dále věnoval a v rámci diplomové práce prezentoval prakticky použitelné řešení.
43
Návrh a implementace informačního systému ve webovém frameworku Django Seznam použité literatury
Seznam použité literatury 1. HILLMANN, Diane. Using Dublin Core. [Online] DCMI, 07. 11 2005. [Citace: 01. 04 2010.] http://dublincore.org/documents/2005/11/07/usageguide/. 2. MORVILLE, Peter. Ambient Findability: What We Find Changes Who We Become. místo neznámé : O'Reilly, 2005. 978-0596007652. 3. Django Software Foundation. Django | The Web framework for perfectionists with deadlines. [Online] Django Software Foundation, 22. 04 2010. [Citace: 26. 04 2010.] http://docs.djangoproject.com/en/1.1/. 4. BOIKO, Bob. Content Management Bible. s.l. : Wiley, 2004. 978-0764573712. 5. DCMI Usage Board. DCMI Metadata Terms. [Online] DCMI Usage Board, 14. 01 2008. [Citace: 01. 04 2010.] http://dublincore.org/documents/2008/01/14/dcmi-terms/. 6. Advanced Distributed Learning. SCORM Documentation Suite (SCORM 2004 4th ed.). [Online] Advanced Distributed Learning, 14. 08 2009. [Citace: 01. 04 2010.] http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/SCORM 2004 4th Ed V1.1/Documentation Suite/SCORM_2004_4ED_v1_1_Doc_Suite.zip. 7. IEEE. Draft Standard for Learning Object Metadata. [Online] IEEE, 15. 07 2002. [Citace: 01. 04 2010.] http://ltsc.ieee.org/wg12/files/LOM_1484_12_1_v1_Final_Draft.pdf. 8. FRIESSEN, Norm. CanCore Guidelines. [Online] Athabasca University, 2006., 26. 03 2006. [Citace: 01. 04 2010.] http://cancore.athabascau.ca/en. 9. JEITA. Exchangeable image file format for digital still cameras: Exif Version 2.2. [Online] JEITA, 2002. [Citace: 01. 04 2010.] http://www.exif.org/Exif2-2.PDF. 10. Adobe. Adobe XMP Specification. [Online] Adobe, 2008. [Citace: 01. 04 2010.] http://www.adobe.com/devnet/xmp. 11. BÜRGER, Tobias a další. Ontology for Media Resource 1.0. [Online] W3C, 09. 03 2010. [Citace: 01. 04 2010.] http://www.w3.org/TR/2010/WD-mediaont-10-20100309.
44
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
12. M. Nilsson and others. ID3 Developer Information. [Online] M. Nilsson and others, 2000. [Citace: 01. 04 2010.] http://www.id3.org/Developer_Information. 13. KALFOGLOU, Yannis, SCHORLEMMER, Marco. Ontology mapping: the state of the art. [Online] Advanced Knowledge Technologies, 2007. [Citace: 01. 04 2010.] http://eprints.ecs.soton.ac.uk/10519/1/ker02-ontomap.pdf. 14. UDC Consortium. About Universal Decimal Classification. [Online] UDC Consortium, 2010. [Citace: 01. 04 2010.] http://www.udcc.org/about.htm. 15. OCLC. Dewey Decimal Classification revision 22 summaries. [Online] OCLC, 09. 03 2010. [Citace: 01. 04 2010.] http://www.oclc.org/dewey/resources/summaries/default.htm. 16. The jQuery Project & jQuery UI Team. jQuery UI. [Online] The jQuery Project & jQuery UI Team, 2003. [Citace: 01. 04 2010.] http://jqueryui.com/. 17. The jQuery Project. jQuery: The Write Less, Do More, JavaScript Library. [Online] The jQuery Project, 2010. [Citace: 01. 04 2010.] http://jquery.com/. 18. Google. birdeye - Information Visualization and Visual Analytics Library. [Online] Google, 2010. [Citace: 01. 04 2010.] http://code.google.com/p/birdeye. 19. Canonical Ltd. Ubuntu Server Edition. [Online] Canonical Ltd, 2010. [Citace: 13. 04 2010.] http://www.ubuntu.com/products/whatisubuntu/serveredition. 20. SWFUpload. SWFUpload Documentation. [Online] SWFUpload, 2010. [Citace: 17. 04 2010.] http://www.swfupload.org/documentation/development. 21. The Apache Software Foundation. Apache Tika - Supported formats . [Online] The Apache Software Foundation, 2009. [Citace: 01. 04 2010.] http://lucene.apache.org/tika/0.6/formats.html. 22. MARTINEZ, Jerome. MediaInfo - Supported formats. [Online] Jerome Martinez, 2009. [Citace: 01. 04 2010.] http://mediainfo.sourceforge.net/en/Support/Formats. 23. Amazon Web Services LLC. Amazon Simple Storage Service (Amazon S3). Amazon Web Services. [Online] Amazon Web Services LLC, 2010. [Citace: 15. 04 2010.] http://aws.amazon.com/s3/. 45
Návrh a implementace informačního systému ve webovém frameworku Django Kapitola 5. Vlastní implementace
24. The Apache Software Foundation. Apache Solr Wiki - Using Solr . [Online] The Apache Software Foundation, 01. 03 2010. [Citace: 01. 04 2010.] http://wiki.apache.org/solr/#Using_Solr. 25. LINDSLEY, Daniel. Haystack v1.1.0-alpha documentation. [Online] LINDSLEY, Daniel, 2009. [Citace: 07. 04 2010.] http://docs.haystacksearch.org/dev.
46