}w!"#$%&'()+,-./012345<ya
|
|
- Stanislava Šmídová
- před 8 lety
- Počet zobrazení:
Transkript
1 MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY }w!"#$%&'()+,-./012345<ya Wiki s podporou zpracování sémantiky DIPLOMOVÁ PRÁCE Bc. Jakub Talaš Brno, podzim 2010
2 Prohlášení Prohlašuji, že tato diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Vedoucí práce: RNDr. Tomáš Gregar ii
3 Poděkování Chtěl bych poděkovat RNDr. Tomáši Gregarovi za odborné vedení. Rodičům za podporu během studia a všem ostatním, kteří jakkoliv napomohli vzniku této práce. iii
4 Shrnutí Sémantické technologie prodělaly v posledních letech bouřlivý vývoj. Novým cílem současných snah je představit jejich výhody a přivést je i k běžnému uživateli. Jednou z cest nabývajících na významu je nenásilná a vhodná integrace sémanticky zpracovávaných dat do známých systémů a aplikací operačních systémů, wiki, systémů pro správu obsahu apod. Moje diplomová práce se zabývá zapojením sémantických dat do wiki systému Trac a jejich využití především v oblasti project managementu a e-learningu. iv
5 Klíčová slova sémantický web, wiki, Trac, XML, RDF, project management, Python v
6 Obsah 1 Úvod Motivace pro sémantický web Technologie sémantického webu Sémantika dat Ontologie Resource Description Framework (RDF) Úložiště sémantických dat SPARQL Sesame Wiki systémy Trac Deep Thought Sémantická data v současných nástrojích Sémantické wiki Další projekty se sémantikou Shrnutí Požadavky na sémantické wiki Analýza Tracu a Deep Thought Sémantický e-learning Základní struktura sytému Trac Rozdíly mezi Trac a Deep Thought Trac API Webové technologie v rámci Trac Analýza návazností pluginu na Trac Vývoj a využití Semantic Extension Výběr použitého software Používané ontologie Použití a funkce programu Vnitřní struktura pluginu Hlavní komponenta SemanticExtensionPlugin Makro SemexCommon Makro Semex Nasazení a další rozvoj Závěr Literatura A Postup nasazení Semantic Extension A.1 Konfigurace Sesame A.2 Instalace Trac 0.12 a jeho spuštění A.3 Zasazení Semex do infrastruktury B Wiki systémy se sémantikou a bez ní vi
7 C Sémantická úložiště D Ontologie použité v Semex E Snímky obrazovek F Struktura archívu práce vii
8 Kapitola 1 Úvod Rozmach takzvaných sémantických technologií v první dekádě jednadvacátého století přinesl nové pohledy na práci s informacemi. Sémantika, tedy nauka o významu dat, jeho vyjádření, zpracování a využívání, začíná pronikat z akademické sféry do širšího povědomí, z teorie do praktického užívání. Informace dnešního webu jsou zacíleny především na lidské uživatele. Takzvaný sémantický web je model sít ové služby podobné současnému webu, avšak postaven mnohem více na strojově čitelných datech. Ta mohou být zpracována počítači a v konečném důsledku předložena člověku jako informace v přesnější a jednodušší podobě. Základní technologie pro podporu sémantického webu už existují řadu let. Umíme více či méně dobře sémantická data získat, vyčistit a zpracovat, uložit i použít. V dnešní době stojíme především před úkolem přinést vytvořené technologie mezi běžné uživatele Internetu. Ti jsou často velmi konzervativní a nestojí o změny způsobů práce. Proto se v poslední době prosazuje myšlenka preferovat uživatelskou přívětivost před formální korektností a úplností. Současný směr se orientuje na uživatele a hledá způsoby, jak integrovat výhody sémantického webu s existujícími nástroji prohlížeči, wiki systémy, systémy pro správu obsahu, e-learningovými aplikacemi i celými operačními systémy. Dobrým testovacím prostředím pro nasazování nových metod jsou vzdělávací instituce. Masarykova univerzita byla vždy na jedné z předních pozic v zavádění e-learningu v České republice[1]. V posledních letech proběhlo na Fakultě informatiky několik výzkumných programů zaměřených na využití sémantiky dat ve vzdělávání. V jejich rámci proběhl vývoj např. v oblasti získávání sémantických dat, jejich anotaci a ukládání. Moje diplomová práce se zaměřuje na integraci sémantiky do wiki systémů a její praktickou implementaci do systému Trac. Jde o populární webovou aplikaci zaměřenou na podporu vývoje a prezentace softwarových projektů. Její fakultní instalace Deep Thought je součástí širšího ekosystému programů používaných na fakultě k podpoře výuky. Především v kurzech Moderní značkovací jazyky, Programování v jazyce Java a při závěrečných pracích studentů. Praktická část diplomové práce přidává sémantiku založenou na jazyce zvaném RDF (Resource Description Framework) a sémantickém úložišti Sesame 2 do wiki, která je součástí Tracu. Její rozšiřitelnost a otevřená veřejná licence ovšem slibuje v budoucnu rozsáhlejší možnosti použití i za hranicemi potřeb zmíněných kurzů. Motivaci k vyvíjení a studování právě sémantiky uvedu v následující kapitole Motivace pro sémantický web. Dále ve třetí kapitole popíšu několik klíčových technologií a postupů použitých k dosažení cíle. Ve čtvrté navazuji zhodnocením současných sémantických wiki 1
9 1. ÚVOD systémů a dalších příkladů uživatelsky příjemného využití sémantiky. Pátá kapitola popisuje projekty Trac a Deep Thought, jejich součásti, rozdíly, návaznosti a aplikační programovací rozhraní (API). Šestou kapitolu věnuji popisu samotného vývoje a použití praktické části rozšíření Trac Semantic Extension. Rozeberu jeho jednotlivé součásti, jejich využití a možnosti rozšíření. V závěrečné sedmé kapitole se zamýšlím nad současnými trendy a dalším rozvojem technologií v oblasti sémantiky nejen na Masarykově univerzitě. 2
10 Kapitola 2 Motivace pro sémantický web Současný web si dobyl rozhodující pozici mezi ostatními internetovými službami a jen málokdo si bez něj dovede dnešní svět představit. Jedním z problémů je však rozsáhlost a neuspořádanost jeho obsahu. Jím komplikuje uživatelům orientaci a vyžaduje od nich věnovat pozornost i zbytečným informacím. S myšlenkou přidání sémantiky k obsahu (jako cesty k pozvednutí úrovně současného webu) přišel Tim Berners-Lee[2]. K tomu je potřeba především sémanticky označkovat stávající data. Bývají často uložena ve špatně strukturovaných nebo neformalizovaných a nestandardizovaných formátech HTML, obrázcích, textových souborech i různých proprietárních formátech, at už založených na XML, nebo binárních. Vize sémantického webu přináší možnost inteligentního získávání přesnějších informací s ohledem na kontext a okamžitou aktualizaci obsahu v závislosti na změnách v sémantických datech, ze kterých obsah vychází. Příkladem budiž třeba seznam 10 nejlidnatějších měst v České republice na Wikipedii 1 nebo jiné populární informační službě. V současné době je třeba udržovat takový seznam manuálně a při změnách jej adekvátně aktualizovat. Přesto se nabízí elegantnější řešení, vytvoření automatického seznamu a jeho okamžitou reflexi při změnách. Pokud by v nějaké databázi existoval seznam měst a počtu jejich obyvatel, bylo by jednoduché se při požadavku na tuto stránku dotázat na města umístěna v České republice a jejich počet obyvatel. Z nich by bylo automaticky vybráno deset nejlidnatějších a výsledek by byl vrácen stránce. To je přínos, který právě sémantický web umožňuje. Popsaná procedura je však běh na dlouhou trat vyžadující kooperaci několika odlišných součástí. Zejména je třeba mít informace v sémantické formě dostupné. Jelikož chceme použít i kvanta sémantiky prostých existujících dat, je třeba zajistit jim takzvanou anotaci. To je proces přiřazování především slov a frází, ale také obrázků a jiných multimediálních formátů takzvaným ontologickým pojmům. Na ontologie lze nahlížet jako na explicitní popis určité domény, části lidského světa, s jejími termíny a vztahy mezi nimi. Ontologie tedy tvoří znalostní bázi dané domény. Anotaci ontologických pojmů v textu jsem se věnoval ve své bakalářské práci 2. Pro tyto potřeby dnes existuje poměrně široká škála více či méně dobře zvládnutých a funkčních nástrojů. Při procesu anotace se získané informace ukládají typicky ve formátu Resource Description Framework (RDF). Po anotaci je třeba RDF data někam uložit. Nejefektivnějším způsobem je použít specializovaná úložiště. Taktéž těch je dostupných řada v čele s produktem Sesame, který byl 1. Wikipedia, the free encyclopedia: < 2. Sémantické značkování textu: < 3
11 2. MOTIVACE PRO SÉMANTICKÝ WEB vybrán[4] jako nejvhodnější a nejrozšiřitelnější pro dlouhodobé užití pod produktivní zátěží. Tento sémantický repozitář ukládá anotovaná data a poskytuje svým klientům služby pro vyhledávání požadovaných informací. Rozdíl mezi klienty se stírá použitím jednotného protokolu; sémantika může být integrována do různě zaměřených nástrojů každodenního užití. V mobilním telefonu může turistovi zobrazit seznam levných hotelů v okolí, vedoucímu týmu ukáže webová aplikace postup v plnění plánů a podobně. Není to nic, co by nezvládly i specializované aplikace. Ovšem při jednotném stylu ukládání a jednoznačnému formátu tvrzení v RDF datech je možné kombinovat při vytváření dotazu najednou i několika sémantických úložišt a využít jejich souběžnou sílu 3. Pěkným příkladem je možnost naplánovat například automaticky schůzku více partnerů podle jejich volného času (jedno úložiště může uchovávat osobní data o účastnících schůzky, jiné má každý z nich s jeho veřejně přístupným kalendářem), vyhledat a naplánovat levnou dovolenou pro rodinu s dětmi pomocí pár kliknutí atd. Na principu přeposílání dotazů "poučenějším" funguje také například služba DNS. V prvních letech webu vládly popularitě katalogy a řazení podle kategorií. V dnešní éře takzvaného webu 2.0 se častěji setkáváme s mraky štítků a fulltextovým vyhledáváním. V rámci webu sémantického se dá čekat inteligentní navrhování souvisejících a zajímavých informací podle kontextu a dosavadního chování, důraz na individualitu a odlišné zájmy a potřeby uživatelů. 3. Sesame 3 by měl podporovat takzvané federace: kombinace více úložišt do jednoho virtuálního, obsahujícího tvrzení ze všech členských. To by mělo podle tvůrců přinést možnost spolupráce více nezávislých datových souborů. 4
12 Kapitola 3 Technologie sémantického webu Už v úvodu se několikrát objevilo slovo sémantika, které se bude prolínat celým obsahem práce. Sémantika úzce souvisí s lingvistikou a dala by se jednoduše popsat jako nauka o významu. Na širokou otázku co znamená význam 1 odpovídá John Lyons ve své knize Semantics[3]. V oblasti informatiky se s ním však pracuje především v rámci významu slov a slovních spojení, jejich vzájemných vztahů a vztahů k jejich kontextu. K přidání významu datům je třeba mít připraven celý ekosystém nástrojů a technologií, které toto umožní. Celý proces definice, sběru a uložení sémanticky obohacených dat uzavírá jejich integrace do softwaru, který jich může využít. Následující kapitolu tedy věnuji stručnému popisu používaných základních pojmů, technologií, postupů a aplikačního software používaného v současnosti k práci se sémantickými daty. 3.1 Sémantika dat Nejznámější definici sémantiky provedl pravděpodobně německý filosof Rudolf Carnap. V jeho knize Introduction to Semantics je uvedena jako součást takzvané semiotické 2 triády (pragmatika-sémantika-syntax). Ta je v překladu Jaroslava Peregrina z Filosofického ústavu Akademie věd ČR je vymezena následovně: [5]: Je-li při zkoumání [jazyka] explicitně odkazováno k mluvčímu, nebo, obecněji, k uživateli jazyka, řadíme jej do oblasti pragmatiky. (... ) Abstrahujeme-li od uživatele jazyka a analyzujeme-li jenom útvary jazyka a jejich designáty, jsme v oblasti sémantiky. Abstrahujeme-li nakonec také od designátů a analyzujeme-li jenom vztahy mezi výrazy, jsme v (logické) syntaxi. Informatický význam většinou používáme ve smyslu přidání strojově rozpoznatelné informace ke slovu tak, aby kódovala jeho význam ve skutečném světě. To se provádí mapováním slov na pojmy z takzvaných ontologií reflektujících uspořádání věcí v realitě. K porozumění sémantice dat a jejímu rozvoji a využití si můžeme položit několik základních otázek: Jak formálně pojmout význam dat? Jak tvořit sémantická tvrzení? 1. The meaning of "meaning" 2. Semiotika je nauka o znakových systémech 5
13 3.2. ONTOLOGIE Co použít pro jejich zápis? Kde je perzistentně uložit? Jak můžeme výsledky použít? Jelikož v posledních deseti letech prošla tato oblast bouřlivým rozvojem, na většinu těchto otázek už známe poměrně uspokojivou odpověd. Cílem ted zůstává především přinést výhody sémantiky k běžnému používání a umožnit spolupráci sémantických systémů. Ačkoliv tušíme, jak by měla fungující soustava sémanticky obohacených systémů fungovat, v praxi se dnes jedná často pouze o software základní funkčnosti a sporné kvality. Vyšší úroveň jejích služeb může přivést sémantiku také k obchodnímu využití a teprve vidina výdělku zajistí sémantice její další rozvoj i mimo akademickou sféru. 3.2 Ontologie Také toto je slovo původně vycházející z filozofie. Ve svém původním významu označuje disciplínu zabývající se jsoucnem a bytím. V informatice a výpočetní technice má přenesený význam. Ontologie je datová struktura, pomocí které můžeme deklarativně popsat (do jisté úrovně) znalosti z nějaké zájmové domény lidské činnosti nebo reálného světa. Tím formálně zachytíme intuitivně vnímané vlastnosti a vztahy ve skutečném světě. Americký vědec v oblasti umělé inteligence a zpracování znalostí Tom Gruber definoval ontologii (používejme už jenom informatický význam slov ontologie a sémantika) jako explicitní vyjádření konceptualizace 3. Každá definice ontologie obsahuje třídy. Mezi nimi je možné vytvářet vztahy odpovídající vztahům v doméně, pro kterou ontologii vytváříme. Třídy obohacujeme o atributy (také tzv. sloty, vlastnosti). Celkově můžeme shrnout, že ontologie se může skládat ze čtyř základních stavebních částí tříd, jedinců (tedy instancí tříd), atributů a vztahů. Někdy se můžeme setkat i s událostmi, omezeními, axiomy, pravidly... Pro ukázku jsem vybral komplexní, ale snadno pochopitelnou ontologii zabývající se hudbou Music Ontology 4. Na obrázku 3.1 z editoru ontologií Protégé 5 je vidno, jak v Music Ontology vypadá struktura tříd. Jejich hierarchie obsahuje hudební pojmy s jejich vztahy (podtřída, nadtřída atd.) a vlastnostmi (např. třída AudioFile má vlastnost encoding zapsanou jako literál.) Objekty v ontologii souhrnně označujeme jako zdroje (angl. resource). Zdroje jednoznačně zapisujeme a odkazujeme se na ně ve tvaru URI. Například hudební ontologie popsaná výše obsahuje třídu Festival, zapsanou následovně: < 3. Původní definici ontologie později její autor ještě zpřesnil: < ontology-definition-2007.htm> 4. Music Ontology: < 5. Protégé: < 6
14 3.2. ONTOLOGIE Obrázek 3.1: Třídy hudební ontologie URI zdroj se zapisuje v klasickém HTTP formátu, avšak neznamená to, že musí být pod uvedeným odkazem fyzicky dostupný. Bývá zvykem v textu uzavírat tyto adresy do špičatých závorek. Tato konvence je například v úložišti Sesame 2 povinná. Jelikož je tento styl zápisu poněkud zdlouhavý a nepřehledný, lze použít i zkrácený zápis, kdy jmennému prostoru (do kterého patří všechny objekty dané ontologie) přiřadíme zkratku. mo Potom předchozí příklad zapíšeme jako: mo:festival V tomto typu zápisu oddělujeme zkratku jmenného prostoru od části označující ontologický zdroj dvojtečkou. V zápisu přes oddělujeme cestu od jména zdroje znakem / nebo #. Některé ontologické jmenné prostory a jejich zkratky můžeme označit za standardizované. rdf doap foaf dc Obrázek 3.2: Ukázka několika well-known jmenných prostorů. K zápisu ontologií používáme specializované jazyky, mezi nejčastěji používané patří RDF Schema nebo Web Ontology Language (OWL). Dále existují jazyky OIL, DAML+OIL, 7
15 3.3. RESOURCE DESCRIPTION FRAMEWORK (RDF) KIF a mnoho dalších. Přehled několika základních jazyků pro ontologie i s popisem jejich omezení a schopností nabízí [6] a také [7]. Jednotlivé jazyky se mohou lišit například typickým způsobem zápisu syntaxe (nejčastěji XML, jindy výpisem pravidel formální gramatiky), množstvím nástrojů k jejich zpracování, svou vyjadřovací silou atd. Vyjadřovací síla určuje, jak složité podmínky nebo výrazy umožňuje ontologie definovat. Nižší úrovně poskytují většinou pouze základní hierarchii tříd a atributů s jednoduchými omezeními. Naopak nejvyšší úrovně dovedou například omezovat kardinalitu podtříd, jejich průnik (např. že třídy Muž a Žena jsou disjunktní), definovat vlastnosti domain (které třídě daná vlastnost přísluší) a range (instance které třídy jsou její hodnoty) apod. Každá vyšší úroveň obsahuje všechny předchozí nižší úrovně, na ně nabaluje nové možnosti. Vyšší vyjadřovací síla jazyka s sebou ovšem přináší také nevýhody. Je nutné udělat jazyk syntakticky i výpočetně složitější a tím méně přehledný. Například nejvyšší úroveň jazyka OWL OWL Full už nezajišt uje spočitatelnost všech závěrů v konečném čase. Proto několik jazyků poskytuje více úrovní subjazyků, každý s jinou mírou vyjadřovací síly. Kupříkladu Web Ontology Language poskytuje následující úrovně: OWL Lite OWL DL OWL Full Ze stejných důvodů také např. jazyk OIL definuje tyto úrovně jeho subjazyků: Core OIL Standard OIL Instance OIL Heavy OIL Tvorba ontologie (ontology engineering) není jednoduchá činnost. Pro jejich design existují speciální nástroje, mezi matadory patří všestranný editor ontologií Protégé. Pěkný článek popisující tvorbu ontologií se nachází na [8]. Ontologie se mimo oblasti sémantického webu používají také ve zpracování znalostí, umělé inteligenci, uchování knihovních metadat (dat o datech), výzkumu genů a dalších odvětvích moderních informačních technologií. 3.3 Resource Description Framework (RDF) V této podkapitole v krátkosti popíšu jazyk RDF (Resource Description Framework) pro zápis metadat, mezi které počítáme i sémantiku. Jeho vývoj a standardizaci zaštit uje konsorcium W3C a úzce souvisí s XML, v jehož syntaxi jsou nejčastěji RDF tvrzení zapisována. Hlavním důvodem vzniku RDF se stala potřeba uchovávat v jednoznačném stylu tvrzení o skutečnostech. Právě jednoznačnost dovoluje strojovou zpracovatelnost takových informací. 8
16 3.3. RESOURCE DESCRIPTION FRAMEWORK (RDF) Pomocí RDF tvrzení dále tvoříme celý sémantický svět objektů, jejich vlastností a vztahů. Ontologie nám udávají možnosti, hranice a omezení v tomto světě. Například personální ontologie Friend of a Friend 6 (FOAF) definuje, že třída Person má mimo jiné vlastnosti name a knows. RDF tvrzením tak můžeme zaznamenat například, že osoba s univerzitním číslem osoby má jméno Jakub Talaš a zná se ještě s jinou osobou. Samotné tvrzení (RDF statement, RDF triple) má velice jednoduchou a přímočarou strukturu; skládá se ze tří součástí: subjektu, predikátu, objektu. Předchozí tvrzení bychom popsali RDF výrazy (použijme nyní pro tvrzení vysokoúrovňovou abstraktní syntax) využívajícími ontologii FOAF takto: foaf:jtalas foaf:id "173016" foaf:jtalas foaf:name "Jakub Talaš" foaf:jtalas foaf:knows foaf:nekdojiny Přímo ze specifikace ontologie FOAF (na obrázku 3.3) vidíme, jak je vlastnost znát někoho popsána a definována. Následující příklad nám říká, že vlastnost znát někoho aplikujeme na osobu (rdfs:domain) a hodnota této vlastnosti je také osoba (rdfs:range). Celý příklad je na rozdíl od výše uvedených tvrzení zapsán už v konkrétní syntaxi RDF/XML. Povšimněte si, jak se v ontologii transparentně prolínají zdroje patřící do více jmenných prostorů (rdf:property, rdfs:domain, owl:class... ). <rdf:property rdf:about=" vs:term_status="stable" rdfs:label="knows" rdfs:comment="a person known by this person."> <rdf:type rdf:resource=" <rdfs:domain rdf:resource=" <rdfs:range rdf:resource=" <rdfs:isdefinedby rdf:resource=" </rdf:property> Obrázek 3.3: Útržek z definice ontologie FOAF. Systém ontologických výrazů popisujících svět a další tvrzení tvořící fakta o tomto světě nám vytvářejí celek sémantických informací, které můžeme dále využít. XML je pouze jedna z více možných forem zápisu RDF tvrzení. Existují i další typy konkrétních syntaxí pro RDF RDF/Turtle, RDF/Notation3, RDF/NTriples, apod. Systém RDF tvrzení tvoří orientovaný ohodnocený graf (viz obrázek ). 6. Friend of a Friend: < 7. Zdroj obrázku: < 9
17 3.4. ÚLOŽIŠTĚ SÉMANTICKÝCH DAT Obrázek 3.4: Vizualizace RDF jako grafu. 3.4 Úložiště sémantických dat V prvopočátku vývoje technologií sémantického webu bylo potřeba nejprve vyřešit, jak význam dat vyjádřit formálně. Tento krok jsem popsal v minulých sekcích o sémantických jazycích a ontologiích význam je uchováván v RDF tvrzeních. Se systémy velkých RDF grafů se pojí problémy jak je uložit a jak s nimi efektivně pracovat. Aktuální podkapitola se bude věnovat trvalému uložení sesbíraných sémantických dat a jejich zpracování tedy především odvozování nových informací a jejich poskytování klientům. RDF data můžeme prakticky ukládat dvěma způsoby: bud přímo v rámci jimi obohacených dat, nebo separátně. V projektu mé diplomové práce byl pro jeho flexibilitu zvolen právě druhý způsob, byt se občas setkáváme i s metodou přímého ukládání (např. v Semantic MediaWiki). Proto provedu charakteristiku externích sémantických úložišt, věnovat se budu především produktu Sesame 2, který tvoří datové centrum mé sémantické wiki. Při dnešním rostoucím počtu sémantických webových aplikací je zásadní ukládat RDF data metodami, které zajistí harmonii mezi expresivností, jednoduchostí a škálovatelností[9]. Na první pohled se požadavky na takové sémantické úložiště příliš neliší od požadavků na klasickou relační databázi. Potřebujeme často uložit velké množství dat, potřebujeme se k nim rychle dostat a potřebujeme je účinně filtrovat. Však jsou někdy také relační databázové systémy používány jako "backend" pro ukládání RDF výrazů (v těchto případech se sémantické dotazy překládají na databázové[9]). Sémanticky obohacená data mají však svá specifika především, na rozdíl od obyčejných dat, umožňují odvozování. Předpokládejme, že jsou v úložišti definována následující fakta o známém sylogizmu: foaf:sokrates rdf:type foaf:person foaf:person rdfs:subclassof fimuni:mortalthing Z těchto dvou tvrzení logicky vyplývá, že Sokrates je smrtelný. To je přesně ten typ odvození, který bychom chtěli, aby nám úložiště bylo schopno najít. Sémantická úložiště tedy 10
18 3.4. ÚLOŽIŠTĚ SÉMANTICKÝCH DAT musí nabízet nějaký způsob odvozování (inference). Implementace odvozování se dá rozdělit na dva typy: dopředné řetězení (forward chaining) a zpětné řetězení (backward chaining). Dopředné řetězení znamená, že se všechna možná další tvrzení odvodí a uloží už při vkládání dat do úložiště; zpětné znamená, že se odvozují dynamicky až při konkrétním dotazu. Výhody a nevýhody těchto dvou způsobů jsou zřejmé mají vliv na fyzickou velikost databáze, rychlost vrácení výsledku dotazu, rychlost při vkládání nových RDF dat. Dalším rozdílem je, že zatímco schéma databázových dat je pevně dané, schéma sémantických dat závisí na ontologiích. Nové ontologie a jim podřízená data je možné za běhu do úložiště přidávat. Tím se mění schéma RDF databáze. Mezi úložiště používaná nejčastěji patří: Sesame SwiftOWLIM BigOWLIM Jena/Joseki Mulgara CubicWeb Virtuoso Redland Soprano Pro sémantická úložiště se používají i tyto termíny: reasoner, ontology server, semantic store, metastore, RDF database 8. K účelu hledání v datech se používají speciální dotazovací jazyky (RDF Query Languages): SPARQL SeRQL používaný strojem Sesame Seznam úložišt i s odkazy na jejich webové stránky obsahuje příloha C SPARQL Dotazovací jazyk, jehož název je rekurzivní akronym pro SPARQL Protocol and RDF Query Language, je standardizovaný konsorciem W3C 9 a stal se jím oficiálně doporučený pro použití v rámci sémantického webu. Je komplexní a propracovaný, dovoluje široké možnosti tvorby dotazů (i když v praxi se ukázalo, že některé možnosti ještě chybí). Přenosový protokol tohoto jazyka je vyjádřen v XML a přenášen protokolem HTTP. 8. Převzato z: < 9. Specifikace jazyka: < 11
19 3.4. ÚLOŽIŠTĚ SÉMANTICKÝCH DAT PREFIX doap:< PREFIX foaf:< PREFIX rdf:< SELECT?projectname?personname WHERE {?project rdf:type doap:project ; doap:name?projectname.?person foaf:currentproject?project ; foaf:name?personname } Obrázek 3.5: Ukázka složitějšího SPARQL dotazu. Samotný dotaz jazyka SPARQL může vypadat podobně, jak je uvedeno na příkladu 3.5. Prefixy v prvních řádcích označují zkratky pro jmenné prostory, které potom můžeme používat v samotném dotazu. Dotaz je podobný například jazyku SQL, výrazy začínající otazníkem jsou proměnné, ostatní popisují URI RDF zdroje. Klauzule WHERE filtruje výsledky dle zadaných parametrů. Výsledek tohoto dotazu vrátí dva sloupce, obsahem prvního sloupce bude vždy název projektu a obsahem druhého člověk, který na něm pracuje. Tedy dotaz vrátí seznam pracovníků na všech projektech Sesame Sesame je open source rámec (framework) pro ukládání, odvozování a dotazování RDF dat. Hlavním vývojářem je nizozemská společnost Aduna 10 ve spolupráci s nadací NLnet Foundation 11. Na vývoji se také, jak je ve světě otevřeného kódu zvykem, podílejí jednotlivci nepatřící pod žádnou z těchto organizací. V diplomové práci Pavla Čížka[4] v roce 2007 byl Sesame větve 1 vybrán jako nejvhodnější sémantické úložiště. Mezi ostatními konkurenty vynikal zejména vysokou rychlostí a širokou paletou funkcí. Nyní je vydána už druhá verze rámce Sesame 2. Se Sesamem 2 přišla změna celé architektury. Celý rámec se nyní skládá z několika součástí: Sesame sémantické úložiště SeRQL dotazovací jazyk Elmo poskytuje API pro několik základních ontologií Alibaba knihovna pro práci s RDF daty Rio RDF input/output (parsery a zapisovače) 10. Aduna Software: < 11. NLnet Foundation: < 12
20 3.5. WIKI SYSTÉMY Nás zajímá především sémantické úložiště. To bylo rozděleno na dvě webové aplikace: jedna je administrační (openrdf-workbench), druhá (openrdf-sesame) slouží přímému přístupu k uloženým datům. Přístup k openrdf-sesame je možný Representational State Transfer (REST) protokolem, tedy pomocí standardních metod HTTP. Pro populární programovací jazyky Java, C# a Python existují i knihovny poskytující vysokoúrovňové API. Úložiště je možné dotazovat standardním jazykem SPARQL, ale alternativně i vlastním jazykem SeRQL. Ten se občas hodí pro funkčnost, kterou SPARQL zatím neposkytuje (například zjištění všech nadtříd vybrané třídy aj.). Samotný způsob fyzického uložení dat je velice flexibilní jako základ je možné použít relační databázi, soubor, operační pamět apod. Každé RDF tvrzení v úložišti je ve verzi Sesame 2 také součástí takzvaného kontextu. Kontext je URI přiřazené ke tvrzení, jde říci, že pomocí kontextu pojmenováváme graf spolu souvisejících tvrzení (např. tvrzení od určitého uživatele nebo soubor tvrzení vztažených ke stejnému projektu). Přes všechny klady má ovšem Sesame k "dospělému" software přece jenom dlouhou cestu. Ačkoliv je dobře navržen a je stabilní, trpí několika zásadními chybami. Nepodporuje žádný způsob autentizace, uzamykání transakcí, nelze dohledat historii změn ani časové značky přidání tvrzení ani jejich autora (podpora verzování byla přidána projektem [4], týkala se však verze Sesame 1.x). Zvláště nedostatky v oblasti AAA 12 ho prozatím diskvalifikují z možnosti být široce používán na dnešním Internetu Wiki systémy Poněkud nezvykle znějící slovo wiki pochází z havajštiny. Označuje výraz rychle nebo rychlý. Historie webových wiki stránek v dnešní podobě 14 začíná v polovině 90. let minulého století. Americký programátor Ward Cunningham tehdy začal vytvářet webové stránky o softwarových návrhových vzorech, kterými se intenzivně zabýval. Naprogramoval také svůj nápad, aby uživatelé mohli sami obsah webu upravovat. Celý projekt pojmenoval WikiWikiWeb. Dnes zažívají wiki velký rozmach. Používají se pro sdílení informací v rámci sociálních skupin (různé vysokoškolské, vzdělávací a vnitrofiremní wiki), spolupráci na projektech (např. i jako součást aplikace Trac a podobných), proslulá je internetová wiki encyklopedie Wikipedia. Hlavní charakteristikou wiki je možnost editace stránek otevřená návštěvníkům. Dokonce ani není potřeba žádná znalost jazyka HTML. Používá se mnohem jednodušší wiki syntaxe (různých typů). Rozpis všech možností, které wiki syntaxe Tracu nabízí je dostupný na < Upravená stránka se ihned po uložení stává aktivní. Ke starým verzím stránky je možné se jednoduše vrátit nebo porovnat jejich rozdíly. Bývá totiž zvykem, že se všechny provedené změny ukládají. 12. AAA authentication, authorization, accounting 13. Metodu řízení přístupu k obecným RDF úložištím předkládá např. [9] 14. Systém ENQUIRE od Tima Berners-Lee připomínal dnešní wiki, ale byl příliš komplikovaný a jeho vývoj byl zastaven. 13
21 3.6. TRAC == Nadpis == text kurzívou tučný text [[OdkazJinam Odkaz na jinou stránku a jeho popis]] [[File:Obrazek.jpg]] Obrázek 3.6: Wiki syntaxe používaná MediaWiki Většina současných wiki systémů neobsahuje žádnou přidanou hodnotu použitím sémantiky. K některým wiki se ovšem dá tato podpora přidat pomocí pluginů. Jiné, většinou experimentální projekty, jsou psány už přímo jako sémantické wiki. Wiki systémy se sémantikou se budu zabývat ještě v další kapitole. Mezi nejpoužívanější zástupce ze skupiny klasických wiki patří: MediaWiki Dokuwiki TWiki TikiWiki socialtext.com JSPWiki Jejich seznam i s odkazy najdete v příloze B. 3.6 Trac V projektu sémantické wiki se nyní dostáváme k popisu další zásadní části. Systému Trac pro správu vývoje a prezentaci software. Jeho součástí je právě wiki, kterou můj diplomový projekt obohacuje sémantickým rozšířením Trac Semantic Extension (Semex). Trac 15 je systém umožňující efektivně a pohodlně sledovat vývoj produktu, zejména softwarového. Funguje jako webová aplikace napsaná v programovacím jazyce Python. Je to open source produkt, vývoj však vede společnost Edgewall Software. Současná verze je označena jako 0.12 a drží si vedoucí pozici mezi podobnými systémy. Překonává i některé komerční produkty. Mimo jiné Trac nabízí následující vlastnosti: Synchronizace se Subversion (a dalším verzovacím softwarem) Integrovaná wiki Možnost rozšíření pomocí pluginů 15. Oficiální web: < 14
22 3.6. TRAC Sledování chyb a žádostí (bugtracking) Multiplatformnost Vytváření stránek pomocí šablonovacího systému Genshi Architekturu systému Trac budu detailněji popisovat v sekci věnující se návrhu sémantického pluginu Deep Thought Na Fakultě informatiky Masarykovy univerzity se Trac používá pro vývoj a prezentaci některých semestrálních nebo závěrečných projektů. Tato instalace Tracu vychází z vývojové verze směřované k Trac 0.11 (0.11 dev), je však do hloubky upravená. Nazývá se Deep Thought[13] a obsahuje několik úprav a funkčností, které samotný Trac nenabízí: především podporu pro více projektů a jejich automatickou správu (vytváření, načítání). Té se dosáhlo úpravami ve schématu databáze i v kódu. Také lokalizace byla přidána vlastní cestou a byl změněn vzhled aplikace. Do Deep Thought bylo zakomponováno také několik dalších, dříve samostatných, nástrojů (mimo jiné plugin pro zobrazování snímků obrazovek). Jeho srovnání s jinými podobnými produkty spravujícími více projektů najednou popisuje [14]. Právě Deep Thought prezentuje fakultou vyvinutý software a pro něj bude cílena praktická část této diplomové práce. Vznikl jako součást rozsáhlého projektu E-learning v kontextu sémantického webu 16 (ELSW). Cílem tohoto projektu bylo vyvinout rámec spolupracujících služeb a programů zpracovávajících dokumenty vhodné pro e-learning. Deep Thought byl míněn jako portál integrující jednotlivé nástroje a výsledky. Z obsažených dokumentů se poté extrahují informace, ukládají se, vizualizují a jejich sémantika se využívá v dalších aplikacích. ELSW byl dále následován výzkumným projektem Sémantický e-learning (SELE), jehož je tento výzkum sémantických wiki součástí. Další informace a jeho strukturu popisuji v jemu příslušné sekci Detail projektu ELSW: < 15
23 Kapitola 4 Sémantická data v současných nástrojích Zkoumáme sémantiku z různých pohledů. Od sběru nezpracovaných dat, přes jejich čištění, anotaci, skladování až k použití. V této kapitole se budu věnovat právě využití sémanticky obohacených dat na současném webu. Zaměřím se na aplikace, které se snaží sémantiku přenést až na "poslední míli", tedy k obyčejnému uživateli webu. Největší část kapitoly věnuji právě sémantickým wiki systémům na současné scéně, které mi sloužily k inspiraci při tvorbě mého projektu. Dále představím několik dalších zajímavých projektů využívajících výhody sémantiky k vylepšení funkčnosti svých služeb. Na konci uvedu krátké shrnutí stavu sémantických technologií na současném webu. Nastíním také směr, kudy se podobné produkty ubírají. 4.1 Sémantické wiki Sémantická wiki rozšiřuje principy obyčejných wiki, které jsem popsal v minulé kapitole. Zdrojový text stránek je rozšířen o strojově čitelné informace. Těmi bývají bud samotná definice sémantické třídy nebo vlastnosti, anebo odkaz na mateřský objekt do úložiště RDF dat. Snahou takových rozšíření bývá v konečném důsledku obohatit uživatelský zážitek o zobrazení návazností, přesnější vyhledávání, sdílení informací atd. Následující seznam uvádí několik zajímavých sémantických wiki, které jsou stále vyvíjeny a dosáhly funkčního stádia. Několik dalších sémantických projektů je totiž zanedbaných a neudržovaných. Často jde o akademické projekty a nedostanou se do použitelného stavu. Seznam wiki systémů je částečně přebrán z [10], je aktualizován, upraven a doplněn. Na odborném webu Semanticweb.org je přehledný seznam 1 dalších sémantických wiki i s popisy jejich licencí, použitých technologií a stavu vývoje. AceWiki Přináší nezvyklý koncept syntaxe v přirozeném jazyce (v angličtině) omezeném na několik desítek základních gramatických vazeb a slov ("every", "or", "not"... ). Umí pracovat s oznamovacími větami (definice faktů), rozkazovacími větami (příkazy pro wiki), i otázkami (dotazy na ontologická data). Tento jazyk se nazývá Attempto Controlled English 2. Definice faktů vypadá například takto: Every country is an area. Tyto věty jsou odvozovacím strojem 1. Sémantické wiki systémy: < 2. Attempto Controlled English: < 16
24 4.1. SÉMANTICKÉ WIKI kontrolovány na vzájemné kolize významu (Country has one capital. vs. Czech Republic has capital Prague. vs. Czech Republic has capital Zlín.). Obrázek 4.1: Stránka z ukázkové wiki AceWiki. AceWiki tento jazyk používá na wiki stránkách každá stránka je napsána v ACE. Návštěvník potom může zadat do wiki otázku (What is capital of the Czech Republic?). Obsah wiki je vnitřně převáděn do OWL formátu, kde se odvodí výsledek dotazu a navrací se zpět. < Kiwi KiWi je zkratka z Knowledge In Wiki. Jak název napovídá, jde především o wiki pro sdílení a management znalostí. Není úzce zaměřena na jednu oblast, jde o obecně použitelnou wiki. Na jejím vývoji se podílí několik evropských univerzit, mimo jiné i VUT Brno. Velká základna vývojářů jde poznat, jedná se o velmi kvalitní a propracovanou sémantickou wiki s pěkným a vkusným rozhraním. KiWi používá vlastní RDF úložiště; v obsahu wiki stránek se dají sémanticky anotovat pojmy a tím je navázat na tvrzení z tohoto úložiště. Stejně jako v projektu Semantic Extension je i v KiWi přichystaná podpora pro zobrazování osob, událostí, míst, projektů a dalších často používaných pojmů. Stránku je možné zobrazit bud v prezentačním módu nebo v inspekčním módu ten ukazuje přímo RDF data. Přesto že nedávno vyšla po dlouhé době verze 1.0, ještě jsem při testování často narážel na neošetřené chyby a podivné chování. Přesto jde o velmi kvalitní a hlavně inspirativní práci. < 17
25 4.1. SÉMANTICKÉ WIKI KnowWE KnowWE je postavena na JSPWiki (založené na jazyce Java), prakticky tvoří její sémantické rozšíření. Tato open source wiki je v několika aspektech podobná mé Semantic Extension. Dovoluje anotovat pojmy na wiki stránkách a ke článkům, v závislosti na jejich typu a atributech, dovede doporučovat podobné. Jde to pěkně vidět na testovací wiki o sportu. U každého odvětví obsahuje výpis vlastností (Swimming season independent, in water, low initial costs, low running costs) a podle něj může doporučit podobný sport. Má jednoduché, ale funkční sémantické hledání (dovede tvořit filtrování ve stylu "vyber sporty kde Flexibility = spontanious"). Nepoužívá k ukládání sémantiky žádné externí úložiště, pojmy jsou ukládány přímo v rámci značkování v textu. Vnitřně k reprezentaci sémantiky užívá formáty OWL a d3web 3. < OntoWiki OntoWiki rozhodně patří do skupiny nejpokročilejších. Je to obecná a vyspělá ontologická (sémantická) wiki. Také velmi uživatelsky přívětivá. Na rozdíl od většiny jiných sémantických wiki se ontologický obsah nevkládá ručně do syntaxe, ale využívá sémantických formulářů. Je open source a je jedním z projektů skupiny Agile Knowledge Engineering and Semantic Web (AKSW) University v Lipsku. Ti mají podíl na celé řadě dalšího sémantického software (např. SoftWiki, LinkedGeoData, DBPedia, viz další sekce textu). Jde o platformu pro spolupráci, sdílení znalostí a myšlenek, zaměřuje se na e-learning a vizualizaci znalostí. Sémantiku se snaží co nejvíce skrýt výsledky dotazů a dokonce i samotné wiki stránky jsou potom často prezentovány (v závislosti na typu objektu) spíše formou vizitek, událostí v kalendáři, map nebo tabulek, než čistým textem. K autoringu obsahu používá vlastní systém RDFAuthor pracující s formátem RDFa (Resource Description Framework in attributes). To je specifikace formátu přidávajícího ontologické údaje založené na RDF a ontologiích do XHTML souborů 4. < Semantic MediaWiki Semantic MediaWiki rozšíření známé MediaWiki o možnost přidávat stránkám vlastnosti. Každá wiki stránka se může stát objektem, jedincem (tedy RDF definovatelným zdrojem). Potom v syntaxi zdrojového textu stránky zadáváme její atributy a vztahy k dalším stránkám, tedy zároveň ontologickým jedincům. Např. pokud se stránka týká filmu, je možné v textu kde je zmíněn jeho scénárista tuto skutečnost zaznamenat sémanticky přímo ve zdrojovém kódu stránky a poté využít pro hledání apod. V posledních verzích dovede poloautomaticky tvořit tabulky, umí export událostí do formátu icalendar, existuje rozšíření, které pro ni přidá možnost využití sémantických formulářů. 3. D3web: < 4. Úvod do RDFa: < 18
26 4.1. SÉMANTICKÉ WIKI The United States of America is a [[country]] located in [[has geographical location::north America]]. It borders [[borders::canada]] and [[borders::mexico]]. The capital of the United States is [[has capital::district of Columbia]]. Obrázek 4.2: Část zdroje stránky United States of America z ukázkové instalace. Semantic MediaWiki je mimořádně důležítá také z té příčiny, že na MediaWiki běží Wikipedia. Do detailů se fungováním tohoto projektu zabývá [15]. Obrázek 4.3: Úprava stránky v Semantic MediaWiki. < Wikidsmart Wikidsmart je jednoúčelová sémantická wiki od společnosti zagile 5. Její hlavní devizou je propojení s project management systémem Jira 6 (to je systém podobný Tracu, ovšem komerční), což přináší praktickou užitečnost. Ve wiki (postavená na Confluence Enterprise Wiki) se data zadávají pomocí sémantických formulářů. Jelikož se jedná o vývoj software, objekty mohou být typu Person, Document, Issue, Milestone, Project a podobně. Úpravy wiki dovedou vytvořit v Jira novou chybu, požadavek, dokument nápovědy a jiné artefakty softwarového vývoje. Obsahuje také chytré sémantické hledání. Wikidsmart sice staví na vlastnostech Jira, ale jde pomocí součásti Connector propojit i s jinými systémy. < 5. Stránky zagile: < 6. Systém Jira: < 19
27 4.2. DALŠÍ PROJEKTY SE SÉMANTIKOU SoftWiki Softwiki je platforma pro podporu vývoje software agilními metodami. Má za sebou historii od roku 2006, byla vyvíjena s podporou německé vlády. V jejím rámci byla vytvořena ontologie SWORE pro agilní správu požadavků (Agile Requirements Engineering). Dovoluje vytvářet požadavky na software (ve stylu Poštovní klient by měl podporovat možnost změny vzhledu pomocí palety témat.), komentovat je a hledat mezi nimi například pomocí klíčových slov. Wiki je pěkná s moderním GUI (technologie Ajax, kalendář apod.), bohužel trochu nepřehledná a chybí navigace, která by člověku pomohla se orientovat. Také je zatím dostupná pouze v němčině. Za podobným produktem Wikidsmart ještě značně zaostává. < 4.2 Další projekty se sémantikou Poslední dobou se sémantika konečně přehoupla přes pomyslnou bariéru extraktorů, anotátorů, vizualizátorů a podobných nástrojů do světa uživatelsky přívětivých aplikací. V této sekci představím několik zajímavých, především webových, aplikací a služeb, které ontologické pojmy využívají. Nejedná se o wiki, ale s nimi mají mnoho společného. Jako sémantickou označme aplikaci, pokud dovede zpracovat metadata o textu nebo jiných datech (obrázkových, multimediálních, mapových atd.) a pomocí jejich transparentní integrace významu vylepšit funkčnost nebo přívětivost používání. LinkedData Spíše než o konkrétní službě zde můžeme mluvit o systému a doporučených metodách (angl. best practices) provázání dat. Stejně jako provazujeme HTML dokumenty pomocí odkazů, můžeme provazovat data pomocí jejich URI, HTTP protokolu a formátu RDF/XML. Základem se neliší od již popsaných principů: RDF dokument obsahuje odkaz na další RDF dokument atd. Tím se tvoří systém propojených připravených dat ve strukturovaném formátu, který je dále využitelný. Důraz je kladen na použití standardizovaných ontologií (FOAF, DOAP apod.). Na projekt je nabaleno několik dalších produktů RDF editor, RDF validátor atp. < DBPedia Využívá data vyextrahovaná z projektu otevřené encyklopedie Wikipedia. Její RDF databáze se už sestává z milionů objektů, nad kterými je možné dělat i velice komplikované dotazy pomocí SPARQL. Nabízí i online přístupový bod < kde je možné systém odzkoušet. Například následující příklad zadaného dotazu vrátí tabulku obsahující buňku s obsahem Prague: 20
28 PREFIX dbprop: < PREFIX db: < SELECT?hlavnimesto WHERE { db:czech_republic dbprop:capital?hlavnimesto. } 4.2. DALŠÍ PROJEKTY SE SÉMANTIKOU DBPedia používá standardizované ontologie a ještě přidává svoji vlastní, velice rozsáhlou (v současné době popisuje stovky tříd a více než tisíc vlastností). Tato data jsou dolována z informačních boxů u jednotlivých článků na Wikipedii. < LinkedGeoData Velice zajímavý projekt kombinující a spojující sémantická data z DBPedie s mapami z projektu Open Street Map 7. Má vyvinutou vlastní ontologii obsahující hodně mapových údajů (ulice, obchod, zábavní centrum... ). V prohlížeči map se uživateli automaticky nabízejí objekty umístěné na aktuálně prohlíženém výřezu mapy setříděné do kategorií. Nad daty vnitřně vyhledává jazykem SPARQL, poskytuje i přístupový bod pro online prohlížení bez nutnosti instalace. < Evri Evri je inovativní "mashed-up" aplikace. Agreguje informace z různých webových služeb a zaměřuje se na jejich aktualitu. Dovoluje tedy hledat nejnovější informace, články a komentáře o vybraném subjektu (to může být osoba, produkt, událost... ). Dovoluje také stáhnout rozšíření do webového prohlížeče, to potom prochází aktuálně prohlíženou stránku a označuje slova, o kterých Evri dovede zobrazit kontextové informace. Výsledky hledání buduje podle popisu na jejich webu mimo jiné na základě zpracování přirozeného jazyka a statistické analýzy, nikoliv jenom klíčových slov. Evri zatím bohužel zůstává v betaverzi a neposkytuje více informací o technologiích, které ji tvoří. < True Knowledge Další služba s nálepkou Beta. True Knowledge dovede odpovídat na otázky položené přirozeným jazykem. Má vybudovanou poměrně obsáhlou databázi pojmů a jejich vlastností, mezi kterými dovede vyhledávat a spojovat informace. Taktéž nepoužívá pouze klíčová slova. Zabudovala sémantický engine, který používá jednu jedinou vlastní ontologii. Pro "silná témata", kterými jsou třeba geografie, lidé, matematika apod. funguje vyhledávání poměrně dobře, ovšem s obecnějšími otázkami má často problémy. Od podobných 7. OpenStreetMap je svobodná editovatelná mapa celého světa.: < 21
29 4.3. SHRNUTÍ Obrázek 4.4: Evri v akci. projektů (DBPedia, Freebase) se různí především možností zpracovat přirozený jazyk a není závislá na schopnosti uživatele vytvořit SPARQL dotaz. < Nepomuk Social Semantic Desktop Projekt Nepomuk zasahuje k uživateli ještě blíže, než webové aplikace. Jedná se totiž o projekt sémantického desktopu. Používá RDF k uchovávání metadat, se kterými se uživatel setkává při běžné práci s počítačem data a časy práce se soubory, jejich hodnocení, štítky, obsah a tak podobně. K tomu se přidávají i méně obvyklé akce zachování původní URL staženého souboru, odkaz na , se kterým přišla uložená příloha atd. Nepomuk používá několik ontologií pro soubory, pro kontakty, pro EXIF data fotografií... a ještě několik obecnějších ontologií. Data jsou ukládána v integrovaném úložišti několika typů (Redland, Virtuoso, Raptor). K indexování dat na pevném disku používá knihovnu Strigi. Nutno podotknout, že při praktických testech Nepomuk ukázal nad míru vysokou zátěž systému. V některých momentech úložiště Virtuoso vytěžovalo celé jedno jádro procesoru. < 4.3 Shrnutí Současný vývoj na poli aplikací doplněných o sémantiku by se dal jednoduše charakterizovat jako odklon. Odklon od tradičního pojetí sémantického webu definovaného před deseti lety. V původní vizi byl sémantický web budován stylem zespodu nahoru 8 (bottom-up 8. Zdroj tohoto pojmu: < web.php> 22
30 4.3. SHRNUTÍ model) nejprve definovat ontologie, poté vytvořit sémantická data a použít je. Stále více a více se však uplatňuje odklon od formalismu ke směru shora dolů (tzv. top-down model) na existující data se naroubují sémantická rozšíření. To s sebou přineslo mnoho velice dobrých projektů s nezvyklým přístupem ke zpracování dat. Mnohé z nich opravdu přinášejí zlepšení ergonomie při vyhledávání a přijímání informací. Tento styl následuje také Fakulta informatiky Masarykovy univerzity, viz dokumenty [10] a [11], kde potvrzuje příklon k tomuto postupu. V této formě nemusí být ontologie nebo např. atributy jedinců zdaleka formálně kompletní, ovšem překlenují mezeru mezi produkty vyhovující sémantickému webu a produkty, které běžní uživatelé opravdu používají. Spíše než na sémantickou úplnost se proto klade důraz na koncovou použitelnost. Sémantika se tím také začíná rozvíjet začíná mimo akademickou sféru (kde donedávna probíhal výzkum především nad sémantikou v klasické formě zespodu nahoru). Do vývoje prostředků sémantického webu začínají plynout peníze nejen z univerzitních a státních grantů, ale také z takzvaného rizikového kapitálu (venture capital). Například projekt True knowledge byl ohodnocen nejmenovanými společnostmi zabývajícími se touto formou investování na 40 milionů amerických dolarů 9. Se vstupem kapitálu a komerční sféry se zrychluje vývoj v oblasti sémantických technologií a přibývá projektů, které jsou dotaženy do použitelného stavu. Nemůžu tuto snahu ovšem upřít ani některým akademickým projektům; i univerzitní aplikace jsou dotahovány do konce a životaschopné, pokud za nimi stojí dostatek vývojářů a samozřejmě i finančních prostředků. Příkladem budiž skupina AKSW a jejich výsledky. Během následujících let bude zajímavé sledovat, zda budou sémantická rozšíření pouze doplňkem jinak samostatně fungujících nástrojů, nebo bude nalezen schopný obchodní model, který pomůže sémantické technologie dále rozšířit. Pole působnosti je různorodé a široké, ovšem větší platnosti dle mého názoru (alespoň zatím) zastávají ontologické metody v jednoúčelových produktech. At už se jedná o management projektu (Wikidsmart) nebo geografickou sémantickou aplikaci (LinkedGeoData), řeší se i sémantická wiki pro dodávku IT služeb [16]. Jejich přidaná hodnota je zjevná na první pohled a umožňuje ihned ukázat uživateli nové metody získávání informací. A v případě, že jde o uživatelsky přívětivou aplikaci, naučí je se sémantikou transparentně pracovat a vnímat ji Požadavky na sémantické wiki Z průběhu sledování současného stavu těchto aplikací vyplynulo, že přístupy k pojmu sémantická wiki se mohou diametrálně lišit. K dispozici jsou wiki jednak všeobecného typu, stejně tak však existují wiki jednostranně zaměřené. Setkáme se také s doplňkovými aplikacemi, které slouží k extrakci dat z klasických wiki. To samozřejmě souvisí s potřebou anotovat množství už existujících dat a připravit je pro použití v rámci sémantických technologií. 9. Zdroj: < -in-distance-from-the-bubble/170> 23
31 4.3. SHRNUTÍ Z prošlých wiki jsem sbíral i inspiraci na svůj diplomový projekt. Objevilo se mezi nimi mnoho zajímavých konceptů a principů, na kterých se dá sémantika postavit. Jako trio nejdůležitějších vlastností, které by úspěšná sémantická wiki měla splňovat, bych vybral následující: Uživatelská přívětivost. Zasazení sémantiky do zbytku wiki systému by mělo být přirozené a nenuceně rozvíjet existující možnosti, které wiki přináší. V opačném případě nebudou uživatelé sémantické funkce používat. I samotné wiki se rozšířily také díky jednoduché upravovatelnosti stránek. Přidaná hodnota. Sémantika by dle mého názoru neměla být samoúčelná. Výborně ji lze využít např. k vytvoření automaticky generovaných dynamických wiki stránek, které ve klasických statických wiki vytvořit nejdou. Také propojení více systémů (dvě wiki podobného zaměření mohou sdílet jedno úložiště některá data z něj apod.) pomocí sémantiky je plus. Výkon. Operace se sémantickým úložištěm (nehledě na jeho interní nebo externí podobu) mohou být dlouhotrvající. Zvláště jedná-li se o dotazování velkého objemu dat a nebo běží-li jednotlivé komponenty na různých strojích třeba i v odlišných geografických lokacích. Proto je třeba používat výkon vyžadující sémanticky anotované pojmy na jedné wiki stránce rozumně. O samotném vývoji mého sémantického rozšíření pro wiki programu Trac pojednávají následující kapitoly. 24
32 Kapitola 5 Analýza Tracu a Deep Thought Součástí diplomové práce není pouze zhodnocení současného stavu sémantických wiki systémů, ale také praktická část. Její výsledek Trac Semantic Extension spočívá v doplnění projektu Trac, respektive jeho derivátu Deep Thought, o podporu zpracování sémantiky na platformě Sesame 2. V této kapitole představím architekturu a detailní strukturu celého komplexu Trac, také jejich vliv na moje sémantické rozšíření. Průběhu vývoje, architektuře, principům a užití Semantic Extension se budu věnovat v kapitole následující. Na Fakultě informatiky se vyvíjí mnoho software, především otevřeného. Hodně softwarových výstupů poskytuje zvlášt předmět Moderní značkovací jazyky, dále semestrální a závěrečné práce na jednotlivých katedrách atp. Mnohé z těchto prací jsou velice kvalitní a použitelné. Bohužel často po obhájení zapadnou a nejsou dále udržovány anebo aspoň prezentovány širšímu okruhu potenciálních uživatelů. Jelikož má na fakultě dlouhou tradici e-learning (respektive blended learning prolínání klasických výukových metod s elektronickými), vznikl nápad prezentace vyvinutého software na fakultní wiki. Bylo posuzováno několik možností, nakonec byl vybrán systém pro vedení vývoje a jeho prezentaci Trac. Ten však trpěl několika nedostatky. Mimo chybějící podpory pro lokalizaci to byla především nemožnost jednoduše v rámci jedné instalace udržovat a prezentovat více projektů. Proto byl během výzkumného projektu ELSW upraven a výsledek byl pojmenován Deep Thought. Ten ted běží na stroji kore.fi.muni.cz 1 a přes něj je v současnosti prezentováno několik programů z oblasti e-learningu a sémantického webu (vesměs jde o závěrečné práce studentů bakalářského a navazujícího studia). 5.1 Sémantický e-learning V rámci výzkumu nových forem vzdělávání postavených na myšlence sémantického webu a souvisejících technologiích bylo navrhnuto současný Deep Thought rozšířit o možnost práce se sémantikou. Tato operace byla zapojena do většího projektu Sémantický e-learning 2 (SELE). Důležitým cílem tohoto výzkumu je dokázat, že i existující rozsáhlé aplikace lze rozšířit o podporu sémantiky tak, že její integrace nebude pro koncového uživatele překážkou. Naopak, bude vyžadovat pouze minimální předchozí znalosti pro přidávání a úpravu RDF dat. 1. Deep Thought: < 2. Detail projektu SELE: < 25
33 5.2. ZÁKLADNÍ STRUKTURA SYTÉMU TRAC Vzniklé rozšíření pro Trac a Deep Thought umožní vkládat dynamiku do wiki stránek ve spolupráci s úložištěm Sesame 2. Tím vnese užitečné funkce do jeho integrované wiki. Nové vlastnosti lze následně použít k lepšímu dojmu z této wiki, k lepšímu vyhledávání, automatickým seznamům, reportům a podobně. Přinese lepší uživatelský i administrační komfort při práci s prezentovanými projekty ve wiki Deep Thought a přiblíží návštěvníkům webu možnosti a výhody sémantiky. Služby projektu SELE tvoří rámec několika spolupracujících služeb. Následující obrázek 5.1 ukazuje schéma tohoto rámce, převzatého z letáku k projektu. Doplňující informace o celém projektu SELE nabízí [12]. Obrázek 5.1: Schéma rámce SELE 5.2 Základní struktura sytému Trac Není cílem zde popsat instalaci Tracu, jeho všechny vlastnosti a rozsáhlé možnosti. Od toho existuje jeho výborně zpracovaná projektová dokumentace online. Některé přípravné a rutinní činnosti související s instalací mého pluginu popisuji i v příloze A k diplomové práci. Rozepíšu zde především součásti, kterými jsem se při analýze, návrhu a programování zabýval a které jsem používal. Instance Tracu je tvořena takzvaným prostředím (angl. environment) 3. To je adresář v souborovém systému, který je při startu Trac démona (služby) předán jako parametr a ve kterém jsou uložena data potřebná pro správu jednoho projektu. Struktura podadresářů prostředí vypadá následovně (vybral jsem pouze adresáře související s vývojem), viz také obrázek 5.2: 3. Bližší popis: < 26
34 5.2. ZÁKLADNÍ STRUKTURA SYTÉMU TRAC templates zde jsou ukládány šablony pro uživatelem přidané webové stránky, které mají být součástí prostředí. Pluginy pro ně mohou však používat i vlastní adresáře. conf konfigurace každého prostředí je uložena v souboru trac.ini v tomto podadresáři. V případě složitějších prostředí (např. Deep Thought) je možné mít díky pluginům více takových konfiguračních souborů a přebírat jednotlivé informace také z nich. db interní databáze obsahující údaje o prezentovaném projektu, wiki stránky, chyby a požadavky a další artefakty. htdocs soubory určené k doplnění webové prezentace. Například můj projekt sem ukládá vlastní CSS soubory, ikony apod. plugins zde se ukládají pluginy a také makra pro wiki. Co tyto pojmy znamenají, popíšu v následující sekci. log výchozí adresář pro ukládání záznamu. Obrázek 5.2: Prostředí projektu v aplikaci Trac adresáře. Ve většině případů není třeba rozeznávat mezi Deep Thought a Tracem, proto budu popisovat strukturu po instalaci Tracu a vytvoření prostředí jednoho projektu určeného ke kontrole vývoje a prezentaci. Jak moc se tedy Deep Thought a Trac liší? 27
35 5.3. TRAC API Rozdíly mezi Trac a Deep Thought Deep Thought vychází ze systému Trac a i když byl mohutně upraven, programátorské API pro pluginy zůstalo (přes masivní změny v jiných oblastech doplnění lokalizace, úpravy databáze, vzhledu) prakticky nezměněno. To mi umožnilo projekt programovat jak pro fakultní použití v rámci Deep Thought, tak pro oficiální verzi Tracu. Jednak proto, aby bylo možné toto sémantické rozšíření využít i v jiných prostředích, jednak z důvodu omezení daných principem Deep Thought. O omezeních mluvím, protože Deep Thought je postaven na starší vývojové verzi (Trac 0.11 dev), kdežto současná stabilní verze je už Zmíněné verze dělí cca dva a půl roku vývoje. Navíc byl odštěpen z tehdy aktuální revize; žádného důležitějšího milníku (tedy například betaverze apod.). Tím spíše je komplikované budovat Deep Thought dál a vůbec ho udržovat v chodu. Jak se Trac vyvíjí a stále víc odlišuje, je těžší a těžší do Deep Thought zakomponovat změny z jeho mateřské aplikace. Proto v případě, že bude v budoucnu třeba přenést Deep Thought na vyšší verzi Tracu, bude jednoduché můj plugin nasadit beze změn i v nové verzi. V dalších sekcích se zmíním postupně o několika konkrétních rozdílech mezi Trac 0.12 a Deep Thought, které mě v průběhu vývoje potkaly a jejich vlivu na výslednou podobu pluginu. Zásadním požadavkem pro Deep Thought byla schopnost prezentovat a spravovat více projektů v jedné instanci. Toho bylo dosaženo pomocí využití konceptu A Comprehensive Multi-Project Solution 4. Doporučuje rozdělit databázové schéma na několik kontextů: každý projekt má svůj, navíc existuje ještě kontext master pro metaprojekt Master reprezentující společné součásti nesouvisející s žádným z jednotlivých projektů. Konkrétní aktivní projekt lze pro programátora získat pomocí Python API. Fakultní prací je také možnost automatické tvorby nových projektů v prostředí Deep Thought. 5.3 Trac API Trac, respektive Deep Thought, je napsán v programovacím jazyce Python, aktuálně podporuje řady Python 2.5 a 2.6. Jde o moderní interpretovaný jazyk, který díky své jednoduché filozofii i syntaxi dovoluje rychlé psaní aplikací. Pro potřeby programátorů poskytuje Trac rozsáhlé API, které nabízí mnoho možností ke tvorbě pluginů. Na stránce Tracu i komunitním webu Trac Hacks 5 je k dipozici celá řada pluginů, které základní Trac rozšířují o funkčnost z mnoha oblastí. Některé z nich se staly také součástmi Deep Thought. Celý systém je z hlediska architektury tvořen systémem jednotlivých komponent (Component Architecture). Komunikují spolu přes takzvané extension points, rozšiřující body. Tyto body označují místa otevřená pro komunikaci s jinými komponentami. Zmíněná architektura dovoluje do celého systému transparentně přidat další komponenty s jejich funkcionalitou. Pluginy jsou nuceny dodržovat daná pravidla a pomocí vlastních rozšiřujících bodů 4. Více projektů v Tracu: < ComprehensiveSolution> 5. Trac Hacks: < 28
36 5.3. TRAC API mohou komunikovat i jednotlivě mezi sebou. Kupříkladu přímo jádrem Tracu nabízený rozšiřující bod trac.timeline.itimelineeventprovider dovoluje připojenému pluginu doplňovat nové akce nebo upravovat stávající v časové ose projektu. Kompletní přehled všech nabízených rozšiřujících bodů je opět v dokumentaci k Tracu 6. Obrázek 5.3: Komponentová architektura Trac Mimo tohoto typu pluginu, který můžeme označit za klasický, existuje ještě jeden typ. Nazýváme ho makro a je spojen s integrovanou wiki. Makro přináší do wiki stránek dynamiku vkládáním HTML kódu až jako výsledku zpracování makra. Označují ho dvě vnořené hranaté závorky ve zdrojovém textu stránky. Například makro [[RecentChanges]] vložené do stránky vypíše poslední změny na wiki. Z programátorského hlediska se jedná o malé programy napsané v Pythonu, které jsou uloženy v podadresáři plugins. Jsou uvnitř zdrojového kódu odlišeny od klasických pluginů, které zde také sídlí. I makra jsou součástí komponentové architektury, tedy mohou také komunikovat s ostatními pluginy. Makra mohou přebírat i argumenty předané v kulatých závorkách. Další možností, jak ovlivňovat zpracování zdrojového textu stránek ve wiki jsou Wiki Processors. Dají se označit za speciální typ maker. Uzavíráme je do trojitých složených závorek a jméno procesoru se označuje #!. Používají se, pokud je potřeba vložit kus stránky v čistém HTML, v barevném zvýraznění zdrojového textu nějakého programovacího jazyka a podobně. Také wiki nabízí svoje služby přes standardní API Tracu. Je možné pomocí ní například hlídat změny na stránkách, získat jejich seznam apod. {{{ #!python def main (): return "hello world" }}} Obrázek 5.4: Ukázka Wiki procesoru zobrazení kódu v jazyce Python. 6. Seznam rozšiřujících bodů: < 29
37 5.4 Webové technologie v rámci Trac 5.4. WEBOVÉ TECHNOLOGIE V RÁMCI TRAC I samotný Trac používá pro generování svých webových stránek takzvané šablony. Šablona je HTML stránka obsahující statický kód a k němu ještě značky šablonovacího systému. Tyto značky dovolují při vykreslování stránky upravit výsledný HTML kód podle jejich definice. Toho lze využít ke vkládání dynamického obsahu do webových stránek. V Tracu se používá šikovný šablonovací systém Genshi, vyvíjený taktéž Edgewall Software jako open source. Genshi je soubor nástrojů přímo pro Python a v posledních verzích je nerozlučitelně zakomponován do infrastruktury Tracu. Dovede proto například jednoduše přenášet do webových stránek obsah proměnných z Tracu i jeho pluginů. Mimo atomických proměnných se hodí i pro zpracování polí. Genshi jsem úspěšně použil při tvorbě svého sémantického rozšíření pro zobrazování stránek, které nepatří pod wiki, ale jsou přímo generovány pluginem (jde tedy především o administrační část). <select name="list_of_people"> <py:for each="person in people"> <option>${person}</option> </py:for> </select> Obrázek 5.5: Výpis seznamu lidí do formulářového prvku pomocí Genshi Dalším obohacením webových stránek v rámci Tracu je populární javascriptová knihovna jquery 7. Ta nabízí širokou škálu funkcí k vylepšení uživatelského zážitku při prohlížení. Stejně tak programátorům dovoluje jednoduše, ba téměř bez znalosti Javascriptu, napsat rychle a úsporně mnoho užitečných funkcí. V případě jquery se ukázal jeden z rozporů mezi stabilní větví Trac a starším derivátem Deep Thought. Deep Thought obsahoval starší a ne stoprocentně kompatibilní verzi jquery. Proto jsem byl nucen ji na kore.fi.muni. cz, kde Deep Thought běží, povýšit na aktuální verzi 1.3. Naštěstí se tato změna neprojevila negativně na chodu ostatních součástí systému. 5.5 Analýza návazností pluginu na Trac Zmíněné schopnosti Tracu ohledně poskytování API pro pluginy a makra ve wiki umožňují naštěstí široké možnosti tvorby rozšíření (slovem rozšíření zde myslím úpravu Tracu, bez ohledu na to, jedná-li se o klasický plugin, makro nebo jejich kombinaci) bez nutnosti zasahovat přímo do zdrojového kódu aplikace Trac. Klasický plugin se pro moje rozšíření výborně hodil pro zajištění služeb jádra zpracování a rozdělování HTTP požadavků, servírování stránek a šablon, připojení k úložišti Sesame, řízení komunikace mezi moduly. Co se týká anotací textu přímo na wiki stránkách, bylo hned několik možností, jak se s nimi vypořádat: 7. jquery: < 30
38 použít wiki makra a zpracovávat je mimo hlavní plugin 5.5. ANALÝZA NÁVAZNOSTÍ PLUGINU NA TRAC odchytávat pomocí API wiki změny na stránkách (rozšiřující bod trac.wiki.api. IWikiChangeListener) a určovat anotace z jádra pluginu wiki procesory; ty jsou však k potřebnému využití nevhodné Nakonec jsem jako nejvhodnější řešení vybral použití maker. 31
39 Kapitola 6 Vývoj a využití Semantic Extension V předchozí kapitole jsem se začal zabývat praktickou částí práce. Představil jsem ekosystém, do kterého jsem programoval svůj diplomový projekt webové aplikace pro správu vývoje a prezentaci softwarových projektů Trac a Deep Thought. Šestou kapitolu věnuji detailnímu popisu celého sémantického rozšíření. Uvedu důvody pro výběr konkrétních softwarových komponent které jsem použil, představím architekturu projektu celkově, přiblížím i její jednotlivé komponenty. Nakonec zmíním aspekty praktického nasazení a fungování projektu a závěry, které z toho můžeme vyvodit. Jelikož je součástí výstupu také podrobná dokumentace API pro programátory, krátce se zmíním i o ní. 6.1 Výběr použitého software Jedna z věcí, kterou ctím při výběru softwarových komponent, je vyhnout se antivzoru znovuvynalézání kola. Během tohoto procesu jsem dbal na co největší použití softwarových knihoven a technologií, které jsou standardní, odzkoušené a (pokud možno) ve stabilní vývojové fázi. Základní použitá technologie, tedy programovací jazyk pro rozšíření, byla jasná protože je Trac postaven na Pythonu, je nutné psát rozšíření také v tomto programovacím jazyce. Daná podmínka determinuje další navazující skutečnosti, například nutnost vybírat knihovny a doplňky, které pro něj existují. Naštěstí právě Python má k dispozici širokou nabídku svobodných rozšiřujících knihoven, se kterými jsem mohl při návrhu počítat a při vývoji je využít. Dalším krokem, kterým jsem se zabýval, bylo najít způsob, jakým vnitřně v pluginu reprezentovat RDF trojice. Zvláště pro zpracování větších RDF grafů je vhodné používat dedikované struktury. Samotné uložení trojice je triviálně možné například do pouhého pole, ovšem specializované typy poskytují škálu předdefinovaných operací. Od exportu do různých serializací RDF (serializace je vyjádření definované posloupnostmi nul a jedniček tedy v podstatě uložení do konkrétního souboru nějakého z typů RDF vyjádření) po správu jmenných prostorů uvnitř RDF grafu. Využívám standardní knihovny RDFlib 1 pro Python ve verzi 2.4 ke skládání grafů souvisejících RDF tvrzení. Vytvořené grafy potom slouží především k předávání sémantických informací mezi jednotlivými moduly, ze kterých se plugin fyzicky skládá. 1. RDFlib: < 32
40 6.2. POUŽÍVANÉ ONTOLOGIE RDFlib však bohužel neobsahuje žádný způsob, jak by mohla komunikovat přímo se serverem Sesame (webová aplikace openrdf-sesame poskytuje HTTP rozhraní na bázi protokolu REST). Podporu pro Sesame 2 nabízí však jiná knihovna, kterou jsem objevil. Její vývoj je sice prozatím ve fázi betaverze, ovšem v praktickém provozu se dobře osvědčila. Její název je RDFAlchemy 2. Použil jsem její dva moduly sesame2 a sparql. Ačkoliv její schopnosti nejsou kvůli krátkému vývoji bohaté, vytvoření návaznosti na Sesame 2 a dotazování serveru jazyky SPARQL nebo SeRQL i se získáním výsledku zvládá. Výsledek zpracování dotazu je možné pomocí cyklu pohodlně procházet. Krátkou ukázku přeposlání dotazu k sémantickému úložišti předkládá následující příklad: import rdfalchemy.sesame2 db = rdfalchemy.sesame2.sesamegraph(self.repository) result = db.query(query, resultmethod="xml", processor=interpreter) return result Obrázek 6.1: Použití knihovny RDFAlchemy. RDFAlchemy neumí do Sesame RDF data přidávat jazykem SPARQL (v době vývoje Sesame 2.3 nepodporoval metodu HTTP PUT pro přidávání RDF dat). Proto přidávání nových sémantických dat do úložiště řeším následovně: RDF data jsou převedena do XML formátu a standardní součást Pythonu, knihovna urllib, otevře HTTP spojení s úložištěm a zašle data ve formátu, kterému Sesame rozumí. V dokumentaci tento způsob zmíněn není, ovšem jedná se o jednoduché XML, které jsem získal odchytáváním paketů při spojení mezi openrdf-workbench a openrdf-sesame. Samostatnou otázkou je práce s ontologiemi a jejich výběr. Ta je součástí širší analýzy jejich schopností, a proto je představím v samostatné sekci. 6.2 Používané ontologie Pečlivý výběr ontologií je velmi důležitý. Ovlivňují například možnou návaznost na další projekty. V závorce za názvem ontologie uvádím také prefix jmenného prostoru, který v Semantic Extension používám. Úplně kompletní přehled použitých ontologií i s odkazy na jejich specifikace je k dispozici také v přehledu v Příloze D. Friend Of A Friend (foaf): FOAF je ontologie zaměřená na popis lidí a jejich vztahů. Dovoluje uchovávat mnoho základních i pokročilých atributů, které mohou příslušet osobám. Ze základních udává pochopitelně jméno, příjmení, ovou adresu..., z pokročilých například umožní zadat fotku, webovou stránku práce, školy, aktuální projekty atd. Velký význam přisuzuji i možnosti uchovávat relaci "znát někoho" mezi lidmi. Díky ní se mohou tvořit grafy navzájem se znajících lidí a vytvářet tak malé sociální sítě. 2. RDFAlchemy: < 33
41 6.2. POUŽÍVANÉ ONTOLOGIE Description Of A Project (doap): Ontologií pro popis projektu nebo jeho vývoje jsem nalezl víc. DOAP se mi zdál vhodný jednak kvůli jeho rozšířenosti a také návaznosti na ostatní standardizované produkty (FOAF, Dublin Core apod.). Navíc je zaměřen také na open source vývoj a předpokládá se, že software vyvíjený na Fakultě informatiky v rámci jmenovaných předmětů a projektů bude také otevřený. DOAP a FOAF jsou dvě nejdůležitější a nejčastěji používané ontologie, které v Semantic Extension figurují. Dublin Core (dc a další): Dublin Core Metadata Initiative je standard pro popis metadat. Hodí se výborně pro popis dokumentů. Jím definované atributy popisují název, autora, URL dokumentu atd. V projektu Semex je míněn hlavně k popisu použité literatury u jednotlivých vytvářených projektů. Může ovšem doplňovat například také informace k wiki stránkám. WikiOnt (wiki): Semantic Extension obsahuje také správu wiki stránek. Rozšířil jsem i ji o podporu pro sémantiku přes úložiště Sesame. V sémantickém úložišti jsou k projektům, lidem, událostem i dalším objektům uloženy také objekty wiki stránek, které se jim věnují. Tyto vztahy jsou zaneseny právě použitím ontologie WikiOnt. Ta obsahuje třídy pro článek, kategorii, obrázek, odkaz i text wiki stránky. A například autora wiki stránky odkazuje přes Dublin Core wiki: Lze proto jednoduše zjišt ovat například, které objekty jsou odkazovány na jakých wiki stránkách. Detailům ke správě wiki stránek se budu věnovat i v dalším textu. The Event Ontology (event): Pro události jsem nalezl malou ale šikovnou a ontologii Event Ontology. Je vhodná k vytváření událostí různého typu; v případě e-learningu například různých semestrálních milníků, konferencí a schůzek, obhajob projektů a podobně. Využívá i dalších zde uvedených ontologií pro zaznamenání některých atributů času a místa schůzky nebo události, jejích účastníků, tématu i výstupu. WGS84 Geo Positioning (geo): Tato ontologie byla přidána především proto, aby dovedla zaznamenat místa pro objekty typu Event (viz předchozí ontologie). K objektu nějakého zeměpisného místa dovede přidat atributy označující jeho přesnou polohu. Především zeměpisnou délku a šířku. Další atribut zaznamená i nadmořskou výšku. An OWL Ontology of Time (date): Velice komplexní (a komplikovaná) ontologie zabývající se časem. Umožňuje uchovávat datum, čas, a to i ve formě intervalů. Její použití je taktéž prozatím omezeno na udávání dat událostí, ovšem její potenciál je veliký. Semantic Extension (semex): Pomocná "ontologie" semex je sice také mezi ostatními definicemi, ovšem o ontologii v pravém slova smyslu se nejedná. Potřeboval jsem zaznamenat některé skutečnosti, které nebyly ostatními použitými ontologiemi definovány a nepodařilo se mi najít jiné vhodné. Proto se uživatel pluginu setká se zdrojem příslušícím této ontologii pouze ve dvou případech: semex:bib semex:uritype Oba tyto zdroje se používají v RDF trojici na místě predikátu. semex:bib je používám pro označení skutečnosti, že v trojici tvoří objekt položku použité literatury pro uvedený 34
42 6.3. POUŽITÍ A FUNKCE PROGRAMU subjekt. semex:uritype se v projektu používá ve spojitosti s označováním dokumentů. K tomuto kroku bylo potřebné sáhnout proto, že neexistuje žádná třída dokument v použitých ontologiích. Například Dublin Core dovede označovat autora a další vlastnosti dokumentů, ovšem tyto atributy obsahují i wiki stránky. Proto je používán tento predikát, zatím výhradně ve spojení s objektem Document, k identifikaci objektů typu dokument. doap:anotace_textu rdf:type doap:project doap:anotace_textu semex:bib < < semex:uritype "document" Obrázek 6.2: Ukázka použití vlastních predikátů projekt používající literaturu. 6.3 Použití a funkce programu Semantic Extension jako rozšíření Deep Thought v podmínkách Fakulty informatiky je cílena především na tři typy uživatelů. Jeden jsou náhodní návštěvníci věnující se výhradně prohlížení prezentací vystaveného software. Na druhé straně stojí studenti z fakulty, kteří se zapojují do vývoje na wiki zmíněných projektů, a jejich vedoucí. Typické případy užití těchto skupin ukazuje následující diagram 6.3. Obrázek 6.3: Diagram zobrazující případy užití. Semex nabízí několik užitečných funkcí ve wiki je to kontextové menu se sémantickými informacemi, kalendář, automatické aktuální seznamy, možnost přidávat, mazat nebo mě- 35
43 6.4. VNITŘNÍ STRUKTURA PLUGINU nit tvrzení v úložišti pomocí několika kliknutí. Administrační sekce poskytuje Sémantické vyhledávání (využívané například i v projektu DBPedia). Po zadání SPARQL dotazu vrácí přehlednou tabulku výsledků. Podobnou funkci obsahuje i přímo openrdf-workbench. Stejným způsobem fungují také Reporty. Od předchozí popisované aplikace se liší tím, že dotyčné SPARQL dotazy jsou již uloženy v konfiguraci. Jedním kliknutím myši je tedy možno spouštět často používané dotazy. Například se dá vytvořit report rychle zobrazující, které projekty prošly obhajobou atd. Při každém spuštění tohoto reportu vrátí aktuální sémantické údaje. Během vývoje jsem dbal na čistotu návrhu a cílil jsem na jednoduchost a přímočarost ovládání. Tím spíše, že projekt se snaží sémantiku přinést i obyčejným uživatelům. Držel jsem se také zásad tvorby přístupného webu a ověřeným postupům při vytváření uživatelského prostředí. Rozšíření neobsahuje přímou podporu pro vedení kurzu mimo vytváření a editaci objektů podporovaných typů, avšak nabízí jednoduše upravitelnou platformu pro rozšiřování. K zapojení Semantic Extension do výuky pomůže také import csv souboru s definicemi projektů a jejich řešitelů do systému. Ten je vytvořen administrační aplikací pro vedoucí kurzu v Informačním systému Masarykovy univerzity. 6.4 Vnitřní struktura pluginu Semantic Extension se sestává ze tří základních softwarových komponent. Ty jsou přes poskytované API navázány na architekturu systému Trac, respektive Deep Thought. Největší část aplikační logiky je uchována v hlavním pluginu SemanticExtensionPlugin. Dále je součástí rozšíření makro Semex pro zobrazování sémantických informací ve wiki stránkách. Další makro SemexCommon je pomocné a zabezpečuje správné a efektivní zobrazování sémantických dat na wiki. Vizuální popis struktury subsystému a komunikace mezi jednotlivými součástmi je vidět na následujícím schématu 6.4. Za externí volně vázanou komponentu rozšíření bychom mohli považovat i úložiště Sesame 2, které je jeho neoddělitelnou součástí Hlavní komponenta SemanticExtensionPlugin Primárním úkolem této součásti je zaregistrovat se do systému pluginů Tracu (tím se dosáhne mimo jiné zobrazení odkazu na úvodní stránku rozšíření v hlavní nabídce) a zpracovávat HTTP požadavky, které jsou na Semantic Extension během provozu kladeny. Poté vrací odkazy na požadované webové šablony společně s dalšími získanými daty (výsledky dotazů z komunikace se serverem Sesame 2 apod.). Tyto informace předává jádru Tracu, který přes šablonovací systém Genshi vygeneruje finální webové stránky. Odchytává všechny požadavky na stránky vyhovující regulárnímu výrazu semex*. Přes tuto komponentu řídí správci a přihlášení uživatelé také administraci rozšíření: hlavní stránka (dashboard) obsahuje odkazy na sémantické formuláře pro vytváření objektů základních typů. Tyto objekty může dotyčný také procházet podle jejich kategorie, upravo- 36
44 6.4. VNITŘNÍ STRUKTURA PLUGINU Obrázek 6.4: Diagram zobrazující komponenty, které tvoří Semantic Extension a jednotlivá rozhraní mezi nimi. vat je nebo mazat. Pro vyučující kurzů je připravena funkce importu semestrálních projektů asociovaných s lidmi, kteří se na nich podílejí. Řídí i správu výše popsaných funkcí Sémantické vyhledávání a Reporty, procházení jmenných prostorů ontologií a nastavení aktivního úložiště. Dále toto administrační rozhraní zařizuje ještě správu wiki stránek spadajících pod tento plugin. Tato funkce je však dostupná pouze ve verzi Trac 0.12 a vyšší kvůli neexistenci API pro wiki v dřívějších verzích (ani v Deep Thought). Dovede zobrazit seznam stránek a smazat je i s RDF daty, která jsou k nim přiřazena v sémantickém úložišti. Spravuje wiki stránky, jejichž jméno začíná prefixem Semex: (při vytváření objektů pomocí sémantických formulářů je možné vybrat, zda se má dotyčnému objektu vytvořit i vlastní wiki stránka s tímto prefixem). Celkový rozsah této komponenty je přibližně dva a půl tisíce řádků zdrojového kódu jazyka Python. Její součástí je několik souborů se zdrojovými kódy. Napojení na Trac a zpracovávání požadavků je obsaženo v hlavním souboru semex.py, propojení se serverem Sesame v sesame.py, vnitřní zpracování RDF grafů a jejich příprava pro odeslání do úložiště v souboru rdftools.py. Další moduly obsahují funkce používané při přidávání a editaci jednotlivých typů objektů (lidé, projekty, dokumenty apod.). V kódu jsou také začleněny řádky zaznamenávající chování a průběh pluginu. Používá se standardní záznamové (logovací) rozhraní Tracu, výstup je tedy přesměrován dle jeho příslušného nastavení. Obsah textových řetězců je připraven k lokalizaci, která ovšem funguje pouze od verze Trac 0.12 a výš. Webové stránky připravené pro použití v Semantic Extension jsou uloženy ve formě HTML šablon pro Genshi. 37
45 6.4. VNITŘNÍ STRUKTURA PLUGINU Obrázek 6.5: Hlavní stránka rozšíření zakomponovaná do Deep Thought Makro SemexCommon Pomocné makro SemexCommon je nejjednodušší komponentou. Potřeba jeho začlenění vyplynula z důvodu používání vlastních souborů s kaskádovými styly k formátování doplňujících prvků na stránce. Dále také obstarává definici funkcí jquery pro otevírání kontextového menu u sémanticky anotovaných pojmů (používá je makro Semex). Tyto informace jsou potřeba na každé wiki stránce pouze jednou. Proto je při použití maker Semex zapotřebí jednou na stránku vložit také jedno makro SemexCommon. Syntaxe tohoto makra je triviální: [[SemexCommon()]] Makro Semex Stará se o zobrazování sémanticky anotovaných pojmů na stránkách ve wiki a výměnu informací s hlavní komponentou SemanticExtensionPlugin. Pro svoji práci vyžaduje makro [[SemexCommon()]] vložené na stejnou stránku. Společné pro všechny typy vý- 38
46 6.4. VNITŘNÍ STRUKTURA PLUGINU stupů tohoto makra je šedé zabarvení na pozadí vygenerovaného textu. Tím se vizuálně odlišuje od statického obsahu wiki stránky. Vložené makro může nabývat několika typů: query do definice tohoto makra se zadává SPARQL dotaz. Výsledek tohoto dotazu se poté zobrazí na wiki stránce jako seznam sémantických objektů. Celá syntaxe tohoto typu vypadá následovně: [[Semex(query, dotaz bez prefixů, návratový typ, html vloženo před makro, před položku, za položku, za makro)]] Je možné tak pohodlně na stránce zobrazit seznam např. všech wiki stránek, všech lidí, projektů... vyhovujících omezením zadaným ve SPARQL dotazu. Pro pokročilejší formátování je možné přidat i HTML kód určený posledními čtyřmi (nepovinnými) argumenty. Například pro seznam všech projektů oddělených novým řádkem se použije: [[Semex(query, SELECT?vystup?objekt WHERE {?objekt rdf:type doap:project; doap:name?vystup},project,,,<br/>,)]] allabout toto makro z úložiště zjistí takřka všechny dostupné informace o zadaném objektu. Výstup se zformátuje jako celá složitá wiki stránka, ačkoliv ve zdrojovém textu bude jenom zápis tohoto krátkého makra. Vypíše tvrzení, ve kterých tento objekt vystupuje, jeho vlastnosti, k němu vztažené objekty a objekty s ním podobné. Vypsané makro může vypadat například takto: [[Semex(allabout, event:informacni_schuzka)]] calendar zobrazí jednoduchý kalendář s nadcházejícími událostmi. info výstup správného použití tohoto makra je vyskakovací menu na označeném pojmu. Toto kontextové menu dovoluje podle svého druhu zobrazit různé doplňující informace (odkaz na wiki stránku objektu, tvrzení v úložišti, kterých se objekt účastní... ). Například jde-li o pojem události, zobrazí mimo jiné seznam jejích účastníků a místo a datum konání. U objektu označujícího člověka zase jeho ovou adresu. Každý pojem je také označen ikonkou dle jeho typu, jedná-li se o projekt, člověka, událost... Syntaxe zápisu makra vypadá následovně: [[Semex(druh, Zobrazený text na stránce,identifikator_objektu)]] Druh je jeden z následujících: person project event 39
47 6.5. NASAZENÍ A DALŠÍ ROZVOJ doc geo info pro obecný pojem Protože může být těžké si zapamatovat přesnou syntaxi maker, vytvořil jsem také pomocí knihovny jquery plovoucí okno, které je uživateli automaticky zobrazeno při editaci wiki. Obsahuje průvodce pomáhajícího při vytváření jednotlivých maker. Pomocí jiného dialogového okna je možné přímo z wiki stránek upravovat tvrzení v úložišti, není tedy nutno se přepínat do administrační sekce. Pro tuto činnost je však potřebné přihlášení. Důležitá je skutečnost, že každé makro tohoto typu přidané na wiki stránku komunikuje při generování stránky synchronně s úložištěm. Z toho vyplývá, že čím více maker stránka obsahuje, tím pomaleji se bude v prohlížeči načítat. Konkrétně v Deep Thought však omezuje uživatele až při řádově desítkách výstupů makra na jedné stránce. Vizuálně představuje Semantic Extension příloha E, která obsahuje několik snímků obrazovek. 6.5 Nasazení a další rozvoj První příklady využití pluginu se už objevily, protože byl v průběhu vývoje nasazen na webovou aplikaci Deep Thought běžící na URL Spolupracoval jsem přitom především se Silvií Petrovou 3, která pro svou bakalářskou práci věnující se projektu Fresnel (vizualizace ontologických pojmů) používala ontologie v mém úložišti a já testoval Semex na jí vložených datech. Společně jsme synchronizovali a diskutovali často používané vlastnosti objektů z FOAF a DOAP, které jsme do našich projektů zahrnuli. To umožnilo kompatibilitu mezi těmito nástroji a jejich další možnou spolupráci. V projektu Sémantický e-learning byla dále připravována SOAP rozhraní pro komunikaci mezi jednotlivými součástmi rámce ve stylu servisně orientované architektury (SOA). Zmíněná rozhraní však ještě nejsou definována. Poté bude možné rozšířit Semantic Extension (konkrétně modul sesame.py) o napojení na tuto strukturu, a tak jej zapojit i do této architektury. Jak jsem však naznačoval v předchozích kapitolách, velkou překážkou jsou rozdíly mezi Deep Thought a Tracem, které se budou dále prohlubovat. I můj plugin už některé z nich postihly. Například správa wiki stránek je dostupná pouze pro Trac nové verze. Také lokalizace byla v projektu Deep Thought importována zvlášt z testovací vedlejší větve, protože ji hlavní větev vývoje v roce 2007 neměla připravenou. Byla oficiálně přidána až do Tracu 0.12, který vyšel před nedávnem. Semantic Extension je však vnitřně pro lokalizaci připraven, používá pro ni stejně jako Deep Thought a současný Trac standardní nástroj Babel 4 3. Osobní univerzitní stránka: < 4. Edgewall Babel: < 40
48 6.5. NASAZENÍ A DALŠÍ ROZVOJ generující textové lokalizační po a následně binární mo soubory. Prozatím je dostupná lokalizace anglická a česká. Po příchodu Sesame verze 3 bude navíc možné vyhledávat RDF data transparentně v rámci více nezávislých úložišt (takzvaná federace úložišt ). Tím se nabízí možnost využití více autonomních systémů pracujících se sémantikou dat různorodých domén. Rozvoji pluginu nebrání ani jeho licence. Trac je vydáván pod mírně modifikovanou open source licencí BSD, Semantic Extension je licencován pod GNU GPL 3. Veškeré zdrojové kódy jsou přístupné také na hostingu pro otevřené projekty SourceForge <http: //sourceforge.net/projects/semex/>. Ke zdrojovým kódům aplikace je automaticky vygenerována HTML nápověda pomocí Epydoc uchovaná v podadresáři doc archívu práce. 41
49 Kapitola 7 Závěr Před třemi lety jsem ve své bakalářské práci byl zklamán z tristního stavu software pracujícího se sémantikou. Po analýze provedené při přípravě této práce jsem mnohem optimističtější. Na první pohled je znatelné, že se vývoj v této oblasti nezastavil. Ba právě naopak se objevují produkty přinášející opravdovou užitečnost. Výzkum prováděný v rámci analýzy současného stavu sémantických wiki ukazuje, že směr preferování uživatelské přívětivosti a praktické přínosnosti nad dodržováním všech formálních konceptů se vyplácí a stále více prosazuje. Snad také proto není náhoda, že mezi nejlepší projekty sémantických wiki patří také ty, které se místo obecného zaměření věnují jedné doméně a dovedou její potenciál naplno využít. Jedná se o princip podobný filozofii operačního systému Unix tvrdící, že program by měl dělat jednu věc a měl by ji dělat dobře. Podpora vývoje software je jedna z činností, kde se dá sémantika úspěšně zakomponovat. Právě zde se dá dokázat, že vize sémantického webu je sice ještě hodně vzdálená, ale její principy nejsou hodny zavržení. Praktická část práce ukázala, kde může sémantika projevit své výhody a kde může pomoci při výuce nebo prohlížení webu. Technologie které jsem během vývoje používal ještě nejsou zralé na ostré nasazení na Internetu, ale pro lokální použití, například právě pro e-learning v rámci fakulty nebo univerzity, začínají být dostačující. Přínos této práce spočívá v několika aspektech. Jde jednak o další otestování základních technologií nutných pro sémantický web z hlediska jejich použitelnosti při ostrém nasazení (zejména úložiště Sesame 2). Dále jsem provedl výběr vhodných ontologií pro používání ve vzdělávacích procesech, především DOAP a FOAF. Projekt také ukázal, že podporu sémantiky lze přidat i do existujících produktů a přiblížit tak sémantický web koncovým uživatelům. O zájmu o zmiňovaný nový přístup (top-down model) k sémantickým technologiím svědčí i prezentace celého projektu Sémantický e-learning i této diplomové práce samostatně na odborných konferencích DiVAI (Distance Learning in Applied Informatics)[10] na Slovensku a World Summit on the Knowledge Society[11] v Řecku v roce Každopádně se před sémantickými technologiemi otevírá široká, ale také dlouhá cesta. 42
50 Literatura [1] Pitner, T.: E-learning na Masarykově univerzitě In Zpravodaj ÚVT MU. ISSN , 2002, roč. XIII, č. 2, s , [cit ]. Dostupný z WWW: < 1 [2] Berners-Lee, T.: The future of the Web In LCS 35 Anniversary, 1999, [cit ]. Dostupný z WWW: < slide1-1.html>. 2 [3] Lyons, J.: Semantics, Cambridge : Cambridge University Press, ISBN , 371 s., 1993, [cit ]. Dostupný z WWW: < books?id=jqa6wvlcinuc&printsec=frontcover&hl=cs>. 3 [4] Čížek, P.: Úložiště znalostí, Masarykova univerzita, 2007, < th/60897/fi_m/thesis.pdf>. 2, [5] Peregrin, J.: Co je sémantika? In P. Sousedík (ed.): Jazyk logika věda, Filosofia, Praha, 2005, s , [cit ]. Dostupný z WWW: < peregrin.cz/mybibl/pdftxt/499.pdf>. 3.1 [6] Gómez-Pérez, A. a Corcho, O.: Ontology Languages for the Semantic Web In IEEE Inteligent Systems (17), s , 2002, [cit ]. Dostupný z WWW: < CorchoEtAl.pdf>. 3.2 [7] Antoniou, G. a Franconi, E. a van Harmelen, F.: Introduction to Semantic Web Ontology Languages In Eisinger, N. and Maluszynski, J. (Ed.), Reasoning Web, First International Summer School 2005, Malta. Springer., [cit ]. Dostupný z WWW: < 3.2 [8] Noy, N. a McGuinness, D.: Ontology Development 101: a Guide to Creating Your First Ontology, Technical Report SMI , Stanford Medical Informatics, 2001., [cit ]. Dostupný z WWW: < publications/ontology_development/ontology101-noy-mcguinness. html>. 3.2 [9] Dietzold, S. a Auer, S.: Access Control on RDF Triple Store from a Semantik Wiki Perspective In Scripting for the Semantic Web Workshop at 3rd European Semantic Web Conference (ESWC), 2006, [cit ]. Dostupný z WWW: < &rep=rep1&type=pdf>. 3.4, 13 [10] Gregar, T. a Pitner, T. a Warchil, M. a Mudrák, J. a Zezula, O. a Talaš, J. a Zemský, I.: Semantic Utilities and E-Learning. In DIVAI 2010 distance learning in applied informatics, conference proceedings, 1. vyd. Nitra : Constantine the Philosopher University in Nitra, 2010, od s , 6 s. ISBN , 4.3, 7 43
51 [11] Talaš, J. a Gregar, T. a Pitner, T.: Semantically Enriched Tools for the Knowledge Society: Case of Project Management and Presentation. In Knowledge Management, Information Systems, E-Learning, and Sustainability Research, Third World Summit on the Knowledge Society, WSKS 2010, Corfu, Greece, September 22-24, Proceedings, Part I, , 7 [12] Gregar, T. a Pitner, T.: Lightweight Document Semantics Processing in E-learning In Proceedings of I-KNOW 09 9th International Conference on Knowledge Management and Knowledge Technologies, 1. vyd. Graz : Verlag der Technischen Universität Graz, od s , 6 s, [13] Gregar, T. a Pospíšilová, R. a Pitner, T.: DEEP THOUGHT Web based System for Managing and Presentation of Research and Student Projects. In CSEDU 2009 Proceedings of the first International Conference on Computer Supported Education. Lisboa, Portugal, INSTICC Institute for Systems and Technologies of Information, Control and Comunication, od s , 5 s. ISBN [14] Friedmanský, M.: Systémy pro správu více projektů, Masarykova univerzita, 2007, < [15] Völkel, M. a Krötzsch, M. a Vrandecic, D. a Haller, H. a Studer, R.: Semantic Wikipedia In Proceedings of the 15th international conference on World Wide Web, WWW 2006, s , 9s. ACM, 2006., [cit ]. Dostupný z WWW: < aifb.kit.edu/hha/papers/semanticwikipedia.pdf>. 4.1 [16] Kleiner, F. a Abecker, A.: Towards a Collaborative Semantic Wiki-based Approach to IT Service Management In, I-SEMANTICS 2009, 2009, [cit ] Dostupný z WWW: < df/paper pdf>
52 Příloha A Postup nasazení Semantic Extension Postup by se dal rozdělit do několika základních částí: Instalace a konfigurace úložiště Sesame 2 Instalace aplikace Trac Vytvoření prostředí projektu v Trac Přidání sémantického rozšíření a konfigurace Tracu Trac, respektive Deep Thought, je multiplatformní aplikace schopná běžet na Windows i Linuxu (jako dvou nejčastěji používaných serverových systémech). Nicméně, protože já jsem během vývoje používal linuxovou distribuci opensuse 11.3, budu postup vysvětlovat právě na tomto operačním systému. V ostatních linuxových distribucích by se neměl postup zásadně lišit, je snad nutné vzít do úvahy jen jiného správce balíčků nebo si v případě potřeby Trac (popř. jiné součásti) zkompilovat ze zdrojových kódů. Ani postup pro Windows se nebude příliš lišit, stačí se držet konvencí tohoto operačního systému. Sesame 2 je psán v jazyku Java a běží v kontejneru pro webové aplikace. Popíšu jeho instalaci do servletového kontejneru Tomcat, taktéž pod Linuxem. A.1 Konfigurace Sesame 2 Pro instalaci Tomcatu postačí nainstalovat balíčky tomcat a tomcat-manager. Výchozí používaný port je 8080, po připojení na stroj se spuštěným Tomcatem nalezneme na uvítací stránce i odkaz na Tomcat Manager. Pro přístup k němu je třeba v konfiguraci (v adresáři / etc/tomcat6) zadat do roli správce Tomcatu: <role rolename="manager"/> <user username="tomcat" password="s3cret" roles="manager"/> K zasazení aplikace Sesame stačí soubory s webovými archívy stažené z oficiálních stránek projektu zkopírovat do adresáře /srv/tomcat6/webapps, budou zpracovány automaticky po restartu démona Tomcat. Přístupné budou dvě služby:
53 A.2. INSTALACE TRAC 0.12 A JEHO SPUŠTĚNÍ Setkal jsem se také s problémem, že bylo třeba vytvořit manuálně adresář /usr/share/ tomcat6/.aduna/openrdf-sesame/logs s právem zápisu pro ukládání logů Sesame aplikace (jinak bude proces hlásit Internal Server Error). A.2 Instalace Trac 0.12 a jeho spuštění Trac 0.12 potřebuje ve Vašem systému několik prerekvizit. Mnoho času ušetří utilita easy_ install (nejspíše bude součástí balíčku python-setuptools) stačí jí dát jako parametr požadovaný balíček pro Python a jeho nejnovější verze bude stažena a instalována. Přes easy_install je třeba doinstalovat simplejson, rdflib a rdfalchemy. Nyní opust me easy_install a klasickým způsobem nainstalujete vývojové nástroje pro Python 2.6 (python-devel) a vazby mezi Pythonem a Subversion (python-subversion). Poté je možné Trac používat. Vytvoření prostředí pro projekt se provede příkazem: trac-admin /cesta/k/adresari/ initenv Propojení mezi Tracem a Subversion je téma přesahující tuto práci a není pro funkčnost pluginu potřeba. Je popsáno v dokumentaci k Trac Zbývá spustit Trac: tracd -p 8000 \ --basic-auth=dp,/cesta/k/adresari/.htpasswd,/cesta/k/adresari \ /cesta/k/adresari Soubor.htpasswd obsahuje jméno a hash hesla uživatelů. Autentizaci lze však vynechat. A.3 Zasazení Semex do infrastruktury Protože ted máme fungující Trac, zbývá popsat postup, jak do něj zapojit rozšíření Semantic Extension. Během vývoje Trac umožňuje programátorům zobrazovat změny ve zdrojových kódech okamžitě. Ovšem pro ostré nasazení je pohodlnější zdrojové kódy pluginu transformovat do souboru egg (je principem i strukturou podobný balíčkům jar jazyka Java). Postup popisuje dokumentace. Před zapojením pluginu má dotyčný k dispozici následující soubory: Semantic_Extension-0.2-py2.6.egg hlavní komponenta pluginu Semex.py, SemexCommon.py makra pro wikistránky. Všechny tyto soubory přijdou do podadresáře plugins htdocs.zip soubory pro zobrazení webovým serverem. Obsah je třeba extrahovat do podadresáře htdocs v hlavním adresáři projektu. 46
54 A.3. ZASAZENÍ SEMEX DO INFRASTRUKTURY trac.ini.txt soubor obsahující obsah položky footer v sekci [project], tam je potřeba nastavit v souboru conf/trac.ini pro zobrazení plovoucího dialogového okna s průvodcem tvorby sémantických maker při editaci wiki stránek. Pozor, v této hodnotě je třeba nahradit výraz deep/master (který používá Deep Thought) cestou k aktuálně používanému prostředí Tracu. Také bude třeba upravit několik sekcí v trac.ini (v případě Deep Thought se jedná o více konfiguračních souborů, mezi kterými se hodnoty dědí). Jde o nastavení úložiště pro plugin, o aktivaci pluginu v rámci Trac subsystému, používané prostředí a (volitelně) o přidání sekce pro reporty. [semexconfig] repository= [components] semex.*=enabled [semexconfig] main_env=deep/master [semexreports] report1=testrprt Testovací SELECT?a WHERE{?a?b?c} Po restartu Trac démona a nebo webového serveru, pod kterým je proces spuštěn (Deep Thought běží pod serverem Apache 2 prostřednictvím mod_python), bude plugin načten a bude možné jej začít používat. Poslední věcí, kterou je třeba zajistit při migraci Semantic Extension z Tracu 0.12 k Deep Thought nebo starším verzím Tracu, je vypnout podporu pro lokalizaci. Následující výstup programu diff ukazuje rozdíly ve zdrojovém kódu (předpokládejme že instance Trac 0.12 využívá prostředí dp, Deep Thought potom prostředí hlavního projektu deep/master). V souboru semex.py hlavní komponenty je to: > diff semex.py semex_dt.py 13,14c13,14 < #_ = semexlocale.placeholder #DT deep/master < _ = semexlocale._ #0.12+ dp --- > _ = semexlocale.placeholder #DT deep/master > #_ = semexlocale._ #0.12+ dp Tato jednoduchá změna zajistí spuštění Semantic Extension v jakémkoliv existujícím projektu starších verzí Trac nebo Deep Thought. 47
55 Příloha B Wiki systémy se sémantikou a bez ní Mezi nejpoužívanější klasické wiki patří: MediaWiki < Dokuwiki < TWiki < TikiWiki < socialtext.com < JSPWiki < A některé sémantické wiki: Semantic MediaWiki < Ace Wiki < KiWi < KnowWE < OntoWiki < Wikidsmart < SoftWiki < 48
56 Příloha C Sémantická úložiště Seznam některých populárních RDF úložišt : Sesame < Jena < Mulgara < Redland < Soprano < CubicWeb < 49
57 Příloha D Ontologie použité v Semex Nejdůležitější využité ontologie a jejich specifikace: Friend Of A Friend (foaf): Description Of A Project (doap): Dublin Core (dc... ): WikiOnt (wiki): The Event Ontology (event): WGS84 Geo Positioning (geo): An OWL Ontology of Time (date): 50
58 Příloha E Snímky obrazovek Tato příloha v krátkosti vizuálně představí několik funkcí Semantic Extension: Obrázek E.1: Uživatel může přidávat data do úložiště přímo z wiki. V pozadí také makrem automaticky vygenerovaná wiki stránka na základě sémantických informací. 51
59 E. SNÍMKY OBRAZOVEK Obrázek E.2: Ukázka editace objektu v administrační sekci. Obrázek E.3: Zdrojový text wiki stránky doplňované o sémantická data. 52
60 E. SNÍMKY OBRAZOVEK Obrázek E.4: K vytváření syntaxe maker lze s úspěchem použít uživatelsky přívětivého průvodce. Obrázek E.5: Zapojení pluginu Semex do instalace Deep Thought. Wiki stránka také ukazuje jednu z vlastností automaticky tvořené seznamy různých typů objektů. 53
Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka
Metody tvorby ontologií a sémantický web Martin Malčík, Rostislav Miarka Obsah Reprezentace znalostí Ontologie a sémantický web Tvorba ontologií Hierarchie znalostí (D.R.Tobin) Data jakékoliv znakové řetězce
MBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz
Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem
RDF a RDF Query. Jakub Nerad 1. prosince Nerad () RDF a RDF Query 1. prosince / 16
RDF a RDF Query Jakub Nerad jakubnerad@gmail.com 1. prosince 2009 Nerad () RDF a RDF Query 1. prosince 2009 1 / 16 Součastnost Součastnost množství informací zpracování pomocí statistické analýzy problém
Sémantický web 10 let poté
Sémantický web 10 let poté Vilém Sklenák sklenak@vse.cz Vysoká škola ekonomická, fakulta informatiky a statistiky, katedra informačního a znalostního inženýrství Inforum2011, 26. 5. 2011 Vilém Sklenák
Ontologie. Otakar Trunda
Ontologie Otakar Trunda Definice Mnoho různých definic: Formální specifikace sdílené konceptualizace Hierarchicky strukturovaná množina termínů popisujících určitou věcnou oblast Strukturovaná slovní zásoba
Vzdělávací obsah vyučovacího předmětu
V.9.3. Vzdělávací obsah vyučovacího předmětu Vzdělávací oblast: Inormatika a informační a komunikační technologie Vyučovací předmět: Informatika Ročník: 1. ročník + kvinta chápe a používá základní termíny
Znalostní systém nad ontologií ve formátu Topic Maps
Znalostní systém nad ontologií ve formátu Topic Maps Ladislav Buřita, Petr Do ladislav.burita@unob.cz; petr.do@unob.cz Univerzita obrany, Fakulta vojenských technologií Kounicova 65, 662 10 Brno Abstrakt:
Logika pro sémantický web
ZVYŠOVÁNÍ ODBORNÝCH KOMPETENCÍ AKADEMICKÝCH PRACOVNÍKŮ OSTRAVSKÉ UNIVERZITY V OSTRAVĚ A SLEZSKÉ UNIVERZITY V OPAVĚ Logika pro sémantický web Martin Žáček PROČ BALÍČEK? 1. balíček Formální logické systémy
PRODUKTY. Tovek Tools
Analyst Pack je desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních
PRODUKTY Tovek Server 6
Tovek Server je serverová aplikace určená pro efektivní zpracování velkého objemu sdílených strukturovaných i nestrukturovaných dat. Umožňuje automaticky indexovat data z různých informačních zdrojů, intuitivně
PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI
PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI Cyril Klimeš a) Jan Melzer b) a) Ostravská univerzita, katedra informatiky a počítačů, 30. dubna 22, 701 03 Ostrava, ČR E-mail: cyril.klimes@osu.cz b) DC Concept
Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz
Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty
Olga Rudikova 2. ročník APIN
Olga Rudikova 2. ročník APIN Redakční (publikační) systém neboli CMS - content management system (systém pro správu obsahu) je software zajišťující správu dokumentů, nejčastěji webového obsahu. (webová
Datová věda (Data Science) akademický navazující magisterský program
Datová věda () akademický navazující magisterský program Reaguje na potřebu, kterou vyvolala rychle rostoucí produkce komplexních, obvykle rozsáhlých dat ve vědě, v průmyslu a obecně v hospodářských činnostech.
RDF serializace Turtle
4IZ440 Propojená data na webu RDF serializace Turtle Vyučující: Doc. Ing. Vojtěch Svátek, Dr. Zimní semestr 2016 http://nb.vse.cz/~svatek/rzzw.html Shrnutí obsahu a související zdroje Prezentace vychází
Formy komunikace s knihovnami
Formy komunikace s knihovnami Současné moderní prostředky Jiří Šilha a Jiří Tobiáš, Tritius Solutions a.s., Brno Osnova Základní požadavky na komunikaci s knihovnami Historie komunikace s knihovnami Confluence
Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.
Přednáška 5 1. Stručný přehled vývoje html H T m l (HTML...XML... html5), (Web API, JSON, REST,AJAX) 2. Některé související IT IP adresa, doménová adresa, name servery JavaScritp, Jquery, Angular PHP vs
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework
Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS
PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
Maturitní projekt do IVT Pavel Doleček
Maturitní projekt do IVT Pavel Doleček CO FILMBOOK JE Filmbook je uzavřená webová aplikace pro celkovou správu informací a dat souvisejících se sledováním filmů. Primárně je zaměřen na uchovávání a spravování
Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech
Adresářová služba X.500 a LDAP Autor Martin Lasoň Abstrakt Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech vedla ke vzniku specializovaných databází adresářů.
Vývoj informačních systémů. Přehled témat a úkolů
Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Teorie Praxe Cvičení Diskuze
The bridge to knowledge 28/05/09
The bridge to knowledge DigiTool umožňuje knihovnám vytvářet, administrovat, dlouhodobě uchovávat a sdílet digitální sbírky. DigiTool je možno využít pro institucionální repozitáře, sbírky výukových materiálu
UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0
UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0 OBSAH 1 ÚVOD... 3 1.1 HOME STRÁNKA... 3 1.2 INFORMACE O GENEROVANÉ STRÁNCE... 4 2 VYHLEDÁVÁNÍ V ÚZEMÍ...
Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku
Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250
Linked Data a jazyk RDF
Linked Data a jazyk RDF Doc. Ing. Vojtěch Svátek, Dr. Zimní semestr 2016 http://nb.vse.cz/~svatek/rzzw.html Osnova přednášky Strukturovaná data na webu - přehled Principy Linked Data Jazyk RDF Hlavní syntaxe
Úvod. Klíčové vlastnosti. Jednoduchá obsluha
REQUESTOR DATASHEET Úvod Requestor Service Desk poskytuje kompletní řešení pro správu interních i externích požadavků, které přicházejí do organizace libovolnou cestou. Produkt je zaměřen na vytvoření
Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází
1 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Požadavky kreditového systému. Relační datový model, relace, atributy,
Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu
StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již
Vývoj informačních systémů. Přehled témat a úkolů
Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení
8.2 Používání a tvorba databází
8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam
Modelování a odvozování v RDFS
Modelování a odvozování v RDFS Doc. Ing. Vojtěch Svátek, Dr. Zimní semestr 2012 http://nb.vse.cz/~svatek/rzzw.html Modelování v RDFS Základní konstrukce slovníku jsou Třídy Individua (jen význačná doménová
ANOTACE vytvořených/inovovaných materiálů
ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale
je serverová aplikace určená pro efektivní zpracování velkého objemu sdílených nestrukturovaných dat. Umožňuje automaticky indexovat data z různých informačních zdrojů, intuitivně vyhledávat informace,
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Vytvoření portálu odboru strukturálních fondů Ministerstva vnitra a zajištění jeho hostingu na serveru dodavatele
MINISTERSTVO VNITRA odbor strukturálních fondů č.j. MV- 82945-5 /OSF Praha dne 24. listopadu 2009 Počet listů: 5 Odpověď zadavatele na otázky ze dne 20. listopadu 2009 k Zadávací dokumentaci na veřejnou
Výměnný formát XML DTM DMVS PK
Výměnný formát XML DTM DMVS PK Představení partnerským krajům Praha 8. 2. 2016 Krajský úřad Plzeňského kraje Odbor informatiky Koncept etapizace tvorby výměnného formátu XML aktualizačních zakázek Digitální
Jak budeme řešit otevřená data ve veřejné správě? Michal Rada Ministerstvo vnitra ČR
Jak budeme řešit otevřená data ve veřejné správě? Michal Rada Ministerstvo vnitra ČR OPEN Není to jen o samotných datech Hodně se hovoří o opendatech jako otevřených datech Příkladem jsou otevřená data
POPIS STANDARDU CEN TC278/WG7. 1 z 5. draft prenv Geografická silniční databáze. Oblast: ZEMĚPISNÁ DATA V SILNIČNÍ DOPRAVĚ ( GRD)
POPIS STANDARDU CEN TC278/WG7 Oblast: ZEMĚPISNÁ DATA V SILNIČNÍ DOPRAVĚ ( GRD) Zkrácený název: GEOGRAFICKÁ DATABÁZE Norma číslo: 14825 Norma název (en): GDF GEOGRAPHIC DATA FILES VERSION 4.0 Norma název
1. Integrační koncept
Příloha č. 2: Technický popis integrace 1. Integrační koncept Z hlediska koncepčního budování Smart Administration na Magistrátu města Mostu je možno hovořit o potřebě integrace tří úrovní systémové architektury
DATABÁZOVÉ SYSTÉMY. Metodický list č. 1
Metodický list č. 1 Cíl: Cílem předmětu je získat přehled o možnostech a principech databázového zpracování, získat v tomto směru znalosti potřebné pro informačního manažera. Databázové systémy, databázové
GeoHosting. Martin Vlk. (vypusťte svoje data do světa) Help forest s.r.o. člen skupiny WirelessInfo 2008
GeoHosting (vypusťte svoje data do světa) Martin Vlk Help forest s.r.o. člen skupiny WirelessInfo 2008 Využívání geografických dat Jak můžeme pracovat s geografickými daty? Práce s vlastními geografickými
AMPHORA - NÁSTROJ PRO INDEXOVÁNÍ WEBOVÝCH STRÁNEK.
AMPHORA - NÁSTROJ PRO INDEXOVÁNÍ WEBOVÝCH STRÁNEK. Václav Snášel, Jiří Dvorský, Petr Šaloun, Daniela Ďuráková VŠB Technická univerzita, 17. listopadu 15, 708 33 Ostrava Abstract Textová databáze AmphorA
financnasprava.sk Portál Technologie Microsoft zjednodušují komunikaci občanů s Finanční správou SR a činí výběr daní transparentnějším.
Případová studie Portál financnasprava.sk Technologie Microsoft zjednodušují komunikaci občanů s Finanční správou SR a činí výběr daní transparentnějším. Portál financnasprava.sk Uvedení portálu do života
Aplikace pro srovna ní cen povinne ho ruc ení
Aplikace pro srovna ní cen povinne ho ruc ení Ukázkový přiklad mikroaplikace systému Formcrates 2010 Naucrates s.r.o. Veškerá práva vyhrazena. Vyskočilova 741/3, 140 00 Praha 4 Czech Republic tel.: +420
Produktový list. Firemní profily
Produktový list Firemní profily O službě Díky firemnímu profilu od Seznamu můžete umístit informace o vaší firmě na nejnavštěvovanější stránky českého internetu. Budete snadno k nalezení na hlavní stránce
Vznik a vývoj DDI. Struktura DDI. NESSTAR Systém pro publikování, prezentaci a analýzu dat. PhDr. Martin Vávra, Mgr. Tomáš Čížek
NESSTAR Systém pro publikování, prezentaci a analýzu dat PhDr. Martin Vávra, Mgr. Tomáš Čížek Vznik a vývoj DDI Potřeba standardizace popisu datových souborů v souvislosti s elektronickou archivací dat
Systém elektronického rádce v životních situacích portálu www.senorady.cz
Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML
Systémy pro tvorbu digitálních knihoven
Systémy pro tvorbu digitálních knihoven Vlastimil Krejčíř, krejcir@ics.muni.cz Ústav výpočetní techniky, Masarykova univerzita, Brno INFORUM 2006, Praha Obsah přednášky Úvod Fedora DSpace EPrints CDSware
MULTIMEDIÁLNÍ A HYPERMEDIÁLNÍ SYSTÉMY
MULTIMEDIÁLNÍ A HYPERMEDIÁLNÍ SYSTÉMY 1) Úvod do problematiky Petr Lobaz, 18. 2. 2004 ORGANIZACE PŘ EDMĚ TU POŽADAVKY KE ZKOUŠCE vypracování semestrální práce (max. 70 bodů) napsání testu (max. 30 bodů)
Správa VF XML DTM DMVS Datový model a ontologický popis
Správa VF XML DTM DMVS Datový model a ontologický popis Verze 1.0 Standard VF XML DTM DMVS Objednatel Plzeňský kraj Institut plánování a rozvoje hlavního města Prahy Zlínský kraj Kraj Vysočina Liberecký
Publikování map na webu - WMS
Semestrální práce z předmětu Kartografická polygrafie a reprografie Publikování map na webu - WMS Autor: Ondřej Dohnal, Martina Černohorská Editor: Filip Dvořáček Praha, duben 2010 Katedra mapování a kartografie
Použití databází na Webu
4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové
Manuscriptorium v roce 2013
Manuscriptorium v roce 2013 změny v uživatelském prostředí Olga Čiperová, AiP Beroun s.r.o. 22.5.2013 Změny pracovního a vyhledávacího prostředí podněty a připomínky od uživatelů Manuscriptoria (MNS) nová
Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů
- 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta
Obsah. Zpracoval:
Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč
Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009
Webové rozhraní pro datové úložiště Obhajoba bakalářské práce Radek Šipka, jaro 2009 Úvod Cílem práce bylo reimplementovat stávající webové rozhraní datového úložiště MU. Obsah prezentace Úložiště nasazené
Informační média a služby
Informační média a služby Výuka informatiky má na Fakultě informatiky a statistiky VŠE v Praze dlouholetou tradici. Ke dvěma již zavedeným oborům ( Aplikovaná informatika a Multimédia v ekonomické praxi
Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:
Relační databáze Pojem databáze, druhy databází Databází se myslí uložiště dat. V době začátků využívání databází byly tyto členěny hlavně hierarchicky, případně síťově (rozšíření hierarchického modelu).
Vzdělávací obsah předmětu
Vzdělávací obsah předmětu 1. správně se přihlašuje ve školní síti využívá dostupné školní informační zdroje a techniku pracuje s informacemi a softwarovým vybavením ve školní síti v souladu se školním
Jakub Šesták. http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY
MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Datové služby sdružení CESNET http://www.cesnet.cz/services/data-storage/?lang=en ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY Jakub Šesták 5. 12. 2014 1. ročník navazujícího
Úvod do aplikací internetu a přehled možností při tvorbě webu
CVT6 01a Úvod do aplikací internetu a přehled možností při tvorbě webu Internet a www Internet? Služby www ftp e-mail telnet NetNews konference IM komunikace Chaty Remote Access P2P aplikace Online games
Počítačové kurzy buildit
Počítačové kurzy buildit Kurz MS Windows - základy 1 590 Kč principy systému Windows, ovládání systému, práce s aplikacemi a okny, správa souborů a složek, multitasking, práce se schránkou Uživatelům,
Úvod do programovacího jazyka Python
Úvod do programovacího jazyka Python Co je to Python? Python je objektově orientovaný programovací jazyk, který se může využít v mnoha oblastech vývoje softwaru. Nabízí významnou podporu k integraci s
Logický datový model VF XML DTM DMVS
Logický datový model VF XML DTM DMVS Verze 1.1 VF XML DTM DMVS Objednatel Plzeňský kraj Institut plánování a rozvoje hlavního města Prahy Zlínský kraj Kraj Vysočina Liberecký kraj Karlovarský kraj Statutární
Angličtina program k procvičování slovní zásoby
Středoškolská technika 2011 Setkání a prezentace prací středoškolských studentů na ČVUT Angličtina program k procvičování slovní zásoby Kamil Hanus Střední průmyslová škola elektrotechniky a informačních
EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.
Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů. Trendy a móda EMBARCADERO TECHNOLOGIES Popularita a prodej mobilních zařízení roste Skoro každý má
Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.
Soubor kurzů XHTML, CSS, PHP a MySQL Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých. Jeden blok se skládá
PRODUKTY. Tovek Tools
jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.
INFORMATIKA. Charakteristika vyučovacího předmětu:
1 z 6 Čtyřleté gymnázium INFORMATIKA Charakteristika vyučovacího předmětu: Obsahové vymezení: Předmět pokrývá oblast Informační a komunikační technologie podle požadavků uvedených v RVP GV. Časové a organizační
Úvod do programovacího jazyka Python
Úvod do programovacího jazyka Python Co je to Python? Python je objektově-orientovaný programovací jazyk. Tento programovací jazyk je velice výkonný, čitelný a dá se snadno naučit. Jeho použití je velice
Vstupní požadavky, doporučení a metodické pokyny
Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem
Objektově orientované databáze. Miroslav Beneš
Objektově orientované databáze Miroslav Beneš Obsah přednášky Motivace Vlastnosti databázových systémů Logické datové modely Nevýhody modelů založených na záznamech Co potřebujeme modelovat? Identifikace
Informační a komunikační technologie
Dodatek č. Školního vzdělávacího programu Obchodní akademie Lysá nad Labem, obor 63-4-M/02 Obchodní akademie, platného od. 9. 202 - platnost dodatku je od. 9. 206 Informační a komunikační technologie je
Znalostní báze pro obor organizace informací a znalostí
Znalostní báze pro obor organizace informací a znalostí Představení projektu Programu aplikovaného výzkumu a vývoje národní a kulturní identity (NAKI) DF13P01OVV013 2013 2015 Helena Kučerová ÚISK FF UK
UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V.3 2009-11-08
UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V.3 2009-11-08 1 Obsah dokumentu 1 Obsah dokumentu... 2 2 Personalizovaná objednávka... 3 3 Jednoduchá... 3 4 Standardní... 4 5 Komplexní... 5 5.1 Párování
Integrace datových služeb vědecko-výukové skupiny
České vysoké učení technické v Praze Fakulta elektrotechnická Software Engineering & Networking Projekt Fondu rozvoje sdružení CESNET-513/2014/1 HS: 13144 / 830 / 8301442C Integrace datových služeb vědecko-výukové
POKROČILÉ POUŽITÍ DATABÁZÍ
POKROČILÉ POUŽITÍ DATABÁZÍ Barbora Tesařová Cíle kurzu Po ukončení tohoto kurzu budete schopni pochopit podstatu koncepce databází, navrhnout relační databázi s využitím pokročilých metod, navrhovat a
Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje
jsou souborem klientských desktopových aplikací určených k indexování dat, vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci s velkým objemem textových
Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý
Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části
Správa obsahu webové platformy
Správa obsahu webové platformy www.dobrovolnik.net Bc. Irina Kushnareva PRAHA 2019 Tento dokument byl vypracován v rámci projektu Dobrovolnictví ve veřejné správě, reg. č. CZ.03.3.X/0.0/0.0/15_018/0005458,
ArcGIS Online Subscription
ArcGIS Online Subscription GIS pro organizace ArcGIS Online je GIS v cloudu. Poskytuje služby GIS v prostředí internetu, ať už se jedná o úložné místo, publikaci mapových a geoprocessingových služeb, nebo
Ukládání a vyhledávání XML dat
XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání
UNIVERZITA PARDUBICE
UNIVERZITA PARDUBICE Fakulta chemicko-technologická Katedra analytické chemie Licenční studium chemometrie na téma Statistické zpracování dat Předmět: 4.3 Zpracování velkých objemů dat, práce s databázemi.
Metadata, sémantika a sémantický web. Ing. Vilém Sklenák, CSc.
Metadata, sémantika a sémantický web Ing. Vilém Sklenák, CSc. Inforum 2004, Praha, 27. 5. 2004 2/21 There are things we know that we know. There are known unknowns that is to say, there are things that
DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:
DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP Maturitní projekt Vypracoval: Denis Ptáček Třída: 4B Rok: 2014/2015 Obsah 1. Použité nástroje... 3 1.1 NetBeans
Sémantický web a extrakce
Sémantický web a extrakce informací Martin Kavalec kavalec@vse.cz Katedra informačního a znalostního inženýrství FIS VŠE Seminář KEG, 11. 11. 2004 p.1 Přehled témat Vize sémantického webu Extrakce informací
Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody
Obsah 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody 3) 4) Mantichora Mantichora je moderní aplikace, který
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky
České vysoké učení technické v Praze SGS ČVUT 2015 Číslo grantu: SGS15/097/OHK1/1T/15 Číslo FIS: E000. Závěrečná zpráva
Závěrečná zpráva Název projektu: Řešitel: Nové metody práce s databázovými daty dokumentujícími díla moderní architektury z hlediska dějin a vývoje architektury. Srba Jaromír Ing. arch. Informace o řešení
Profilová část maturitní zkoušky 2013/2014
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
Aplikační programové vybavení
Aplikační software Aplikační software Programy z nejrůznějších oblastí využití počítače. Dnes existují stovky programů a u každého druhu pak často desítky konkrétních programů, které s větším nebo menším
Archivace relačních databází
Archivace relačních databází Možnosti, formát SIARD, nástroje, tvorba, prohlížení, datové výstupy Martin Rechtorik 30.11.2018 Archivace relačních databází 1. Možnosti archivace relačních databází 2. Formát
Zpráva o zhotoveném plnění
Zpráva o zhotoveném plnění Aplikace byla vytvořena v souladu se Smlouvou a na základě průběžných konzultací s pověřenými pracovníky referátu Manuscriptorium. Toto je zpráva o zhotoveném plnění. Autor:
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika