MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨  AKULTA INFORMATIKY !"#$%&'()+,-./012345

Wiki s podporou zpracování sémantiky

DIPLOMOVÁ PRÁCE

Bc. Jakub Talaš

Brno, podzim 2010 Prohlášení

Prohlašuji, že tato diplomová práce je mým p ˚uvodnímautorským dílem, které jsem vypra- coval samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování použí- val nebo z nich ˇcerpal,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušnýzdroj.

Vedoucí práce: RNDr. Tomáš Gregar

ii Podˇekování

Chtˇelbych podˇekovatRNDr. Tomáši Gregarovi za odborné vedení. Rodiˇc˚umza podporu bˇehemstudia a všem ostatním, kteˇríjakkoliv napomohli vzniku této práce.

iii Shrnutí

Sémantické technologie prodˇelalyv posledních letech bouˇrlivývývoj. Novým cílem sou- ˇcasnýchsnah je pˇredstavitjejich výhody a pˇrivéstje i k bˇežnémuuž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 ˚ua aplikací – operaˇcních systém ˚u,wiki, systém ˚upro 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ˇredevšímv oblasti project managementu a e-learningu.

iv Klíˇcováslova sémantický web, wiki, Trac, XML, RDF, project management, Python

v Obsah

1 Úvod ...... 1 2 Motivace pro sémantický web ...... 3 3 Technologie sémantického webu ...... 5 3.1 Sémantika dat ...... 5 3.2 Ontologie ...... 6 3.3 Resource Description Framework (RDF) ...... 8 3.4 Úložištˇesémantických dat ...... 10 3.4.1 SPARQL ...... 11 3.4.2 Sesame ...... 12 3.5 Wiki systémy ...... 13 3.6 Trac ...... 14 3.6.1 Deep Thought ...... 15 4 Sémantická data v souˇcasnýchnástrojích ...... 16 4.1 Sémantické wiki ...... 16 4.2 Další projekty se sémantikou ...... 20 4.3 Shrnutí ...... 22 4.3.1 Požadavky na sémantické wiki ...... 23 5 Analýza Tracu a Deep Thought ...... 25 5.1 Sémantický e-learning ...... 25 5.2 Základní struktura sytému Trac ...... 26 5.2.1 Rozdíly mezi Trac a Deep Thought ...... 28 5.3 Trac API ...... 28 5.4 Webové technologie v rámci Trac ...... 30 5.5 Analýza návazností pluginu na Trac ...... 30 6 Vývoj a využití Semantic Extension ...... 32 6.1 Výbˇerpoužitého software ...... 32 6.2 Používané ontologie ...... 33 6.3 Použití a funkce programu ...... 35 6.4 Vnitˇrnístruktura pluginu ...... 36 6.4.1 Hlavní komponenta SemanticExtensionPlugin ...... 36 6.4.2 Makro SemexCommon ...... 38 6.4.3 Makro Semex ...... 38 6.5 Nasazení a další rozvoj ...... 40 7 Závˇer ...... 42 Literatura ...... 44 A Postup nasazení Semantic Extension ...... 45 A.1 Konfigurace Sesame 2 ...... 45 A.2 Instalace Trac 0.12 a jeho spuštˇení ...... 46 A.3 Zasazení Semex do infrastruktury ...... 46 B Wiki systémy se sémantikou a bez ní ...... 48

vi C Sémantická úložištˇe ...... 49 D Ontologie použité v Semex ...... 50 E Snímky obrazovek ...... 51 F Struktura archívu práce ...... 54

vii Kapitola 1 Úvod

Rozmach takzvaných sémantických technologií v první dekádˇejednadvacátého století pˇri- nesl nové pohledy na práci s informacemi. Sémantika, tedy nauka o významu dat, jeho vy- jádˇrení,zpracování a využívání, zaˇcínápronikat z akademické sféry do širšího povˇedomí, z teorie do praktického užívání. Informace dnešního webu jsou zacíleny pˇredevšímna lidské uživatele. Takzvaný sémantický web je model sít’ové služby podobné souˇcasnémuwebu, avšak postaven mnohem více na strojovˇeˇcitelných datech. Ta mohou být zpracována po- ˇcítaˇcia v koneˇcném d ˚usledkupˇredloženaˇclovˇekujako informace v pˇresnˇejšía jednodušší podobˇe. Základní technologie pro podporu sémantického webu už existují ˇradulet. Umíme více ˇciménˇedobˇresémantická data získat, vyˇcistita zpracovat, uložit i použít. V dnešní dobˇesto- jíme pˇredevšímpˇredúkolem pˇrinéstvytvoˇrenétechnologie mezi bˇežnéuživatele Internetu. Ti jsou ˇcastovelmi konzervativní a nestojí o zmˇenyzp ˚usob˚upráce. Proto se v poslední dobˇe prosazuje myšlenka preferovat uživatelskou pˇrívˇetivostpˇredformální korektností a úpl- ností. Souˇcasnýsmˇerse orientuje na uživatele a hledá zp ˚usoby, jak integrovat výhody sé- mantického webu s existujícími nástroji – prohlížeˇci,wiki systémy, systémy pro správu ob- sahu, e-learningovými aplikacemi i celými operaˇcnímisystémy. Dobrým testovacím prostˇredímpro nasazování nových metod jsou vzdˇelávacíinstituce. Masarykova univerzita byla vždy na jedné z pˇredníchpozic v zavádˇeníe-learningu v Ceskéˇ republice[1]. V posledních letech probˇehlona Fakultˇeinformatiky nˇekolikvýzkumných pro- gram ˚uzamˇeˇrenýchna využití sémantiky dat ve vzdˇelávání.V jejich rámci probˇehlvývoj napˇr.v oblasti získávání sémantických dat, jejich anotaci a ukládání. Moje diplomová práce se zamˇeˇrujena integraci sémantiky do wiki systém ˚ua její praktic- kou implementaci do systému Trac. Jde o populární webovou aplikaci zamˇeˇrenouna pod- poru vývoje a prezentace softwarových projekt ˚u.Její fakultní instalace Deep Thought je sou- ˇcástíširšího ekosystému program ˚upoužívaných na fakultˇek podpoˇrevýuky. Pˇredevším v kurzech Moderní znaˇckovacíjazyky, Programování v jazyce Java a pˇrizávˇereˇcnýchpra- cích student ˚u.Praktická ˇcástdiplomové práce pˇridávásémantiku založenou na jazyce zva- ném RDF (Resource Description Framework) a sémantickém úložišti Sesame 2 do wiki, která je souˇcástíTracu. Její rozšiˇritelnosta otevˇrenáveˇrejnálicence ovšem slibuje v budoucnu roz- sáhlejší možnosti použití i za hranicemi potˇrebzmínˇenýchkurz ˚u. Motivaci k vyvíjení a studování právˇesémantiky uvedu v následující kapitole Motivace pro sémantický web. Dále ve tˇretíkapitole popíšu nˇekolikklíˇcovýchtechnologií a postup ˚u použitých k dosažení cíle. Ve ˇctvrté navazuji zhodnocením souˇcasnýchsémantických wiki

1 1. ÚVOD systém ˚ua dalších pˇríklad˚uuživatelsky pˇríjemnéhovyužití sémantiky. Pátá kapitola popi- suje projekty Trac a Deep Thought, jejich souˇcásti,rozdíly, návaznosti a aplikaˇcníprogra- movací rozhraní (API). Šestou kapitolu vˇenujipopisu samotného vývoje a použití praktické ˇcásti– rozšíˇrení Trac Semantic Extension. Rozeberu jeho jednotlivé souˇcásti,jejich využití a možnosti rozšíˇrení.V závˇereˇcné sedmé kapitole se zamýšlím nad souˇcasnýmitrendy a dal- ším rozvojem technologií v oblasti sémantiky nejen na Masarykovˇeuniverzitˇe.

2 Kapitola 2 Motivace pro sémantický web

Souˇcasnýweb si dobyl rozhodující pozici mezi ostatními internetovými službami a jen má- lokdo si bez nˇejdovede dnešní svˇetpˇredstavit.Jedním z problém ˚uje však rozsáhlost a neu- spoˇrádanostjeho obsahu. Jím komplikuje uživatel ˚umorientaci a vyžaduje od nich vˇenovat pozornost i zbyteˇcnýminformacím. S myšlenkou pˇridánísémantiky k obsahu (jako cesty k pozvednutí úrovnˇesouˇcasnéhowebu) pˇrišelTim Berners-Lee[2]. K tomu je potˇrebapˇrede- vším sémanticky oznaˇckovatstávající data. Bývají ˇcastouložena ve špatnˇestrukturovaných nebo neformalizovaných a nestandardizovaných formátech – HTML, obrázcích, textových souborech i r ˚uznýchproprietárních formátech, at’ už založených na XML, nebo binárních. Vize sémantického webu pˇrinášímožnost inteligentního získávání pˇresnˇejšíchinformací s ohledem na kontext a okamžitou aktualizaci obsahu v závislosti na zmˇenáchv séman- tických datech, ze kterých obsah vychází. Pˇríkladembudiž tˇrebaseznam 10 nejlidnatˇejších mˇestv Ceskéˇ republice na Wikipedii1 nebo jiné populární informaˇcníslužbˇe.V souˇcasné dobˇeje tˇrebaudržovat takový seznam manuálnˇea pˇrizmˇenáchjej adekvátnˇeaktualizovat. Pˇrestose nabízí elegantnˇejšíˇrešení,vytvoˇreníautomatického seznamu a jeho okamžitou re- flexi pˇrizmˇenách.Pokud by v nˇejakédatabázi existoval seznam mˇesta poˇctujejich obyvatel, bylo by jednoduché se pˇripožadavku na tuto stránku dotázat na mˇestaumístˇenav Ceskéˇ republice a jejich poˇcetobyvatel. Z nich by bylo automaticky vybráno deset nejlidnatˇejších a výsledek by byl vrácen stránce. To je pˇrínos,který právˇesémantický web umožˇnuje. Popsaná procedura je však bˇehna dlouhou trat’ vyžadující kooperaci nˇekolikaodlišných souˇcástí.Zejména je tˇrebamít informace v sémantické formˇedostupné. Jelikož chceme po- užít i kvanta sémantiky prostých existujících dat, je tˇrebazajistit jim takzvanou anotaci. To je proces pˇriˇrazovánípˇredevšímslov a frází, ale také obrázk ˚ua jiných multimediálních for- mát ˚utakzvaným ontologickým pojm ˚um.Na ontologie lze nahlížet jako na explicitní popis urˇcitédomény, ˇcástilidského svˇeta,s jejími termíny a vztahy mezi nimi. Ontologie tedy tvoˇrí znalostní bázi dané domény. Anotaci ontologických pojm ˚uv textu jsem se vˇenovalve své bakaláˇrsképráci2. Pro tyto potˇrebydnes existuje pomˇernˇeširoká škála více ˇciménˇedobˇre zvládnutých a funkˇcníchnástroj ˚u.Pˇriprocesu anotace se získané informace ukládají typicky ve formátu Resource Description Framework (RDF). Po anotaci je tˇrebaRDF data nˇekamuložit. Nejefektivnˇejšímzp ˚usobemje použít spe- cializovaná úložištˇe.Taktéž tˇechje dostupných ˇradav ˇceles produktem Sesame, který byl

1. Wikipedia, the free encyclopedia: 2. Sémantické znaˇckovánítextu:

3 2. MOTIVACEPROSÉMANTICKÝWEB vybrán[4] jako nejvhodnˇejšía nejrozšiˇritelnˇejšípro dlouhodobé užití pod produktivní zá- tˇeží.Tento sémantický repozitáˇrukládá anotovaná data a poskytuje svým klient ˚umsluž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 ˚užebýt inte- grována do r ˚uznˇezamˇeˇrenýchnástroj ˚ukaždodenního užití. V mobilním telefonu m ˚užetu- ristovi zobrazit seznam levných hotel ˚uv okolí, vedoucímu týmu ukáže webová aplikace postup v plnˇeníplán ˚ua podobnˇe.Není to nic, co by nezvládly i specializované aplikace. Ovšem pˇrijednotném stylu ukládání a jednoznaˇcnémuformátu tvrzení v RDF datech je možné kombinovat pˇrivytváˇrenídotazu najednou i nˇekolikasémantických úložišt’ a vyu- žít jejich soubˇežnousílu3. Pˇeknýmpˇríklademje možnost naplánovat napˇríkladautomaticky sch ˚uzkuvíce partner ˚upodle jejich volného ˇcasu(jedno úložištˇem ˚užeuchovávat osobní data o úˇcastnícíchsch ˚uzky, jiné má každý z nich s jeho veˇrejnˇepˇrístupnýmkalendáˇrem),vyhle- dat a naplánovat levnou dovolenou pro rodinu s dˇetmipomocí pár kliknutí atd. Na principu pˇreposílánídotaz ˚u"pouˇcenˇejším"funguje také napˇríkladslužba DNS. V prvních letech webu vládly popularitˇekatalogy a ˇrazenípodle kategorií. V dnešní éˇretakzvaného webu 2.0 se ˇcastˇejisetkáváme s mraky štítk ˚ua fulltextovým vyhledáváním. V rámci webu sémantického se dá ˇcekatinteligentní navrhování souvisejících a zajímavých informací podle kontextu a dosavadního chování, d ˚urazna individualitu a odlišné zájmy a potˇrebyuživatel ˚u.

3. Sesame 3 by mˇelpodporovat takzvané federace: kombinace více úložišt’ do jednoho virtuálního, obsahují- cího tvrzení ze všech ˇclenských.To by mˇelopodle tv ˚urc ˚upˇrinéstmožnost spolupráce více nezávislých datových soubor ˚u.

4 Kapitola 3 Technologie sémantického webu

Už v úvodu se nˇekolikrátobjevilo 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ýznam1 odpovídá John Lyons ve své knize Semantics[3]. V oblasti informatiky se s ním však pracuje pˇredevšímv rámci významu slov a slovních spojení, jejich vzájemných vztah ˚ua vztah ˚uk jejich kontextu. K pˇridánívýznamu dat ˚umje tˇrebamít pˇripravencelý ekosystém nástroj ˚ua technologií, které toto umožní. Celý proces definice, sbˇeru a uložení sémanticky obohacených dat uzavírá jejich integrace do soft- waru, který jich m ˚uževyužít. Následující kapitolu tedy vˇenujistruˇcnémupopisu používaných základních pojm ˚u,tech- nologií, postup ˚ua aplikaˇcníhosoftware používaného v souˇcasnostik práci se sémantickými daty.

3.1 Sémantika dat

Nejznámˇejšídefinici sémantiky provedl pravdˇepodobnˇenˇemeckýfilosof Rudolf Carnap. V jeho knize Introduction to Semantics je uvedena jako souˇcásttakzvané semiotické2 triády (pragmatika-sémantika-syntax). Ta je v pˇrekladuJaroslava Peregrina z Filosofického ústavu Akademie vˇed CRˇ je vymezena následovnˇe:[5]: Je-li pˇrizkoumání [jazyka] explicitnˇeodkazováno k mluvˇcímu,nebo, obecnˇeji,k uži- vateli jazyka, ˇradímejej 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 ˚ua analyzujeme-li jenom vztahy mezi výrazy, jsme v (logické) syntaxi. Informatický význam vˇetšinoupoužíváme ve smyslu pˇridánístrojovˇerozpoznatelné in- formace ke slovu tak, aby kódovala jeho význam ve skuteˇcnémsvˇetˇe.To se provádí mapo- váním slov na pojmy z takzvaných ontologií reflektujících uspoˇrádánívˇecív realitˇe. K porozumˇenísémantice dat a jejímu rozvoji a využití si m ˚užemepoložit nˇekolikzá- kladních otázek: • Jak formálnˇepojmout význam dat? • Jak tvoˇritsémantická tvrzení?

1. The meaning of "meaning" 2. Semiotika je nauka o znakových systémech

5 3.2. ONTOLOGIE

• Co použít pro jejich zápis?

• Kde je perzistentnˇeuložit?

• Jak m ˚užemevýsledky použít?

Jelikož v posledních deseti letech prošla tato oblast bouˇrlivýmrozvojem, na vˇetšinutˇechto otázek už známe pomˇernˇeuspokojivou odpovˇed’. Cílem ted’ z ˚ustávápˇredevšímpˇrinést výhody sémantiky k bˇežnémupoužívání a umožnit spolupráci sémantických systém ˚u.Aˇc- koliv tušíme, jak by mˇelafungující soustava sémanticky obohacených systém ˚ufungovat, v praxi se dnes jedná ˇcastopouze o software základní funkˇcnostia sporné kvality. Vyšší úroveˇnjejích služeb m ˚užepˇrivéstsémantiku také k obchodnímu využití – a teprve vidina výdˇelkuzajistí sémantice její další rozvoj i mimo akademickou sféru.

3.2 Ontologie

Také toto je slovo p ˚uvodnˇevycházející z filozofie. Ve svém p ˚uvodnímvýznamu oznaˇcuje disciplínu zabývající se jsoucnem a bytím. V informatice a výpoˇcetnítechnice má pˇrene- sený význam. Ontologie je datová struktura, pomocí které m ˚užemedeklarativnˇepopsat (do jisté úrovnˇe)znalosti z nˇejakézájmové domény lidské ˇcinnostinebo reálného svˇeta.Tím formálnˇezachytíme intuitivnˇevnímané vlastnosti a vztahy ve skuteˇcnémsvˇetˇe. Americký vˇedecv oblasti umˇeléinteligence a zpracování znalostí Tom Gruber defino- val ontologii (používejme už jenom informatický význam slov ontologie a sémantika) jako explicitní vyjádˇreníkonceptualizace3. Každá definice ontologie obsahuje tˇrídy. Mezi nimi je možné vytváˇret vztahy odpovída- jící vztah ˚umv doménˇe,pro kterou ontologii vytváˇríme.Tˇrídyobohacujeme o atributy (také tzv. sloty, vlastnosti). Celkovˇem ˚užemeshrnout, že ontologie se m ˚užeskládat ze ˇctyˇrzáklad- ních stavebních ˇcástí– tˇríd,jedinc ˚u (tedy instancí tˇríd), atribut ˚u a vztah ˚u. Nˇekdyse m ˚užeme setkat i s událostmi, omezeními, axiomy, pravidly... Pro ukázku jsem vybral komplexní, ale snadno pochopitelnou ontologii zabývající se hud- bou – Music Ontology4. Na obrázku 3.1 z editoru ontologií Protégé5 je vidno, jak v Music Ontology vypadá struktura tˇríd.Jejich hierarchie obsahuje hudební pojmy s jejich vztahy (podtˇrída,nadtˇrídaatd.) a vlastnostmi (napˇr.tˇrída AudioFile má vlastnost encoding za- psanou jako literál.) Objekty v ontologii souhrnnˇeoznaˇcujemejako zdroje (angl. resource). Zdroje jedno- znaˇcnˇezapisujeme a odkazujeme se na nˇeve tvaru URI. Napˇríkladhudební ontologie po- psaná výše obsahuje tˇrídu Festival, zapsanou následovnˇe:

3. P ˚uvodní definici ontologie pozdˇeji její autor ještˇe zpˇresnil: 4. Music Ontology: 5. Protégé:

6 3.2. ONTOLOGIE

Obrázek 3.1: Tˇrídyhudební ontologie

URI zdroj se zapisuje v klasickém HTTP formátu, avšak neznamená to, že musí být pod uve- deným odkazem fyzicky dostupný. Bývá zvykem v textu uzavírat tyto adresy do špiˇcatých závorek. Tato konvence je napˇríkladv úložišti Sesame 2 povinná. Jelikož je tento styl zápisu ponˇekudzdlouhavý a nepˇrehledný,lze použít i zkrácený zápis, kdy jmennému prostoru (do kterého patˇrívšechny objekty dané ontologie) pˇriˇradímezkratku. mo http://purl.org/ontology/mo/

Potom pˇredchozípˇríkladzapíšeme jako: mo:Festival

V tomto typu zápisu oddˇelujemezkratku jmenného prostoru od ˇcástioznaˇcujícíontologický zdroj dvojteˇckou.V zápisu pˇres http:// oddˇelujemecestu od jména zdroje znakem / nebo #. Nˇekteréontologické jmenné prostory a jejich zkratky m ˚užemeoznaˇcitza standardizo- vané. rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# doap http://usefulinc.com/ns/doap# foaf http://xmlns.com/foaf/0.1/ dc http://purl.org/dc/elements/1.1/

Obrázek 3.2: Ukázka nˇekolikawell-known jmenných prostor ˚u.

K zápisu ontologií používáme specializované jazyky, mezi nejˇcastˇejipoužívané patˇrí RDF Schema nebo (OWL). Dále existují jazyky OIL, DAML+OIL,

7 3.3. RESOURCE DESCRIPTION FRAMEWORK (RDF)

KIF a mnoho dalších. Pˇrehlednˇekolikazákladních jazyk ˚upro ontologie i s popisem jejich omezení a schopností nabízí [6] a také [7]. Jednotlivé jazyky se mohou lišit napˇríkladty- pickým zp ˚usobemzápisu syntaxe (nejˇcastˇejiXML, jindy výpisem pravidel formální grama- tiky), množstvím nástroj ˚uk jejich zpracování, svou vyjadˇrovacísilou atd. Vyjadˇrovacísíla urˇcuje,jak složité podmínky nebo výrazy umožˇnujeontologie definovat. Nižší úrovnˇeposkytují vˇetšinoupouze základní hierarchii tˇrída atribut ˚us jednoduchými omezeními. Naopak nejvyšší úrovnˇedovedou napˇríkladomezovat kardinalitu podtˇríd,je- jich pr ˚unik(napˇr.že tˇrídy Muž a Žena jsou disjunktní), definovat vlastnosti domain (které tˇrídˇedaná vlastnost pˇrísluší)a range (instance které tˇrídyjsou její hodnoty) apod. Každá vyšší úroveˇnobsahuje všechny pˇredchozínižší úrovnˇe,na nˇenabaluje nové možnosti. Vyšší vyjadˇrovacísíla jazyka s sebou ovšem pˇrinášítaké nevýhody. Je nutné udˇelatjazyk syntak- ticky i výpoˇcetnˇesložitˇejšía tím ménˇepˇrehledný.Napˇríkladnejvyšší úroveˇnjazyka OWL – OWL Full už nezajišt’uje spoˇcitatelnostvšech závˇer˚uv koneˇcnémˇcase.Proto nˇekolikja- zyk ˚uposkytuje více úrovní subjazyk ˚u,každý s jinou mírou vyjadˇrovacísíly. Kupˇríkladu Web Ontology Language poskytuje následující úrovnˇe: • OWL Lite

• OWL DL

• OWL Full Ze stejných d ˚uvod˚utaké napˇr.jazyk OIL definuje tyto úrovnˇejeho subjazyk ˚u: • Core OIL

• Standard OIL

• Instance OIL

• Heavy OIL Tvorba ontologie (ontology engineering) není jednoduchá ˇcinnost.Pro jejich design exis- tují speciální nástroje, mezi matadory patˇrívšestranný editor ontologií Protégé. Pˇeknýˇclá- 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ˇeléinteligenci, uchování knihovních meta- dat (dat o datech), výzkumu gen ˚ua dalších odvˇetvíchmoderních informaˇcníchtechnologií.

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ˇcítámei sémantiku. Jeho vývoj a standardizaci zaštit’uje konsor- cium W3C a úzce souvisí s XML, v jehož syntaxi jsou nejˇcastˇejiRDF tvrzení zapisována. Hlavním d ˚uvodemvzniku RDF se stala potˇrebauchovávat v jednoznaˇcnémstylu tvrzení o skuteˇcnostech.Právˇejednoznaˇcnostdovoluje strojovou zpracovatelnost takových infor- mací.

8 3.3. RESOURCE DESCRIPTION FRAMEWORK (RDF)

Pomocí RDF tvrzení dále tvoˇrímecelý sémantický svˇetobjekt ˚u,jejich vlastností a vztah ˚u. Ontologie nám udávají možnosti, hranice a omezení v tomto svˇetˇe.Napˇríkladpersonální ontologie Friend of a Friend6 (FOAF) definuje, že tˇrída Person má mimo jiné vlastnosti name a knows. RDF tvrzením tak m ˚užemezaznamenat napˇríklad,že osoba s univerzitním ˇcíslem osoby 173016 má jméno Jakub Talaš a zná se ještˇes jinou osobou. Samotné tvrzení (RDF statement, RDF triple) má velice jednoduchou a pˇrímoˇcarou struk- turu; skládá se ze tˇrísouˇcástí: subjektu, predikátu, objektu. Pˇredchozítvrzení bychom po- psali RDF výrazy (použijme nyní pro tvrzení vysokoúrovˇnovouabstraktní syntax) využíva- jícími ontologii FOAF takto: foaf:jtalas foaf:id "173016" foaf:jtalas foaf:name "Jakub Talaš" foaf:jtalas foaf:knows foaf:nekdojiny

Pˇrímoze specifikace ontologie FOAF (na obrázku 3.3) vidíme, jak je vlastnost znát nˇe- koho popsána a definována. Následující pˇríkladnám ˇríká,že vlastnost znát nˇekoho apliku- jeme na osobu (rdfs:domain) a hodnota této vlastnosti je také osoba (rdfs:range). Celý pˇríkladje na rozdíl od výše uvedených tvrzení zapsán už v konkrétní syntaxi RDF/XML. Povšimnˇetesi, jak se v ontologii transparentnˇeprolínají zdroje patˇrícído více jmenných pro- stor ˚u(rdf:Property, rdfs:domain, owl:Class. . . ).

Obrázek 3.3: Útržek z definice ontologie FOAF.

Systém ontologických výraz ˚upopisujících svˇeta další tvrzení tvoˇrícífakta o tomto svˇetˇe nám vytváˇrejícelek sémantických informací, které m ˚užemedá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/, RDF/, RDF/NTriples, apod. Systém RDF tvrzení tvoˇríorientovaný ohodnocený graf (viz obrázek 3.47).

6. Friend of a Friend: 7. Zdroj obrázku:

9 3.4. ÚLOŽIŠTEˇ SÉMANTICKÝCH DAT

Obrázek 3.4: Vizualizace RDF jako grafu.

3.4 Úložištˇesémantických dat

V prvopoˇcátkuvývoje technologií sémantického webu bylo potˇrebanejprve vyˇrešit,jak vý- znam dat vyjádˇritformálnˇe.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 ˚use pojí problémy jak je uložit a jak s nimi efektivnˇepracovat. Aktuální podkapitola se bude vˇenovattrvalému uložení sesbíraných sémantických dat a jejich zpracování – tedy pˇredevšímodvozování nových informací a jejich poskytování klient ˚um. RDF data m ˚užemeprakticky ukládat dvˇemazp ˚usoby:bud’ pˇrímov rámci jimi oboha- cených dat, nebo separátnˇe.V projektu mé diplomové práce byl pro jeho flexibilitu zvolen právˇedruhý zp ˚usob,byt’ se obˇcassetkáváme i s metodou pˇríméhoukládání (napˇr.v Se- mantic MediaWiki). Proto provedu charakteristiku externích sémantických úložišt’, vˇenovat se budu pˇredevšímproduktu Sesame 2, který tvoˇrídatové centrum mé sémantické wiki. Pˇridnešním rostoucím poˇctusé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ˇepˇrílišneliší od požadavk ˚u na klasickou relaˇcnídatabázi. Potˇrebujeme ˇcastouložit velké množství dat, potˇrebujeme se k nim rychle dostat a potˇrebujemeje úˇcinnˇefiltrovat. Však jsou nˇekdytaké relaˇcnída- tabázové systémy používány jako "backend" pro ukládání RDF výraz ˚u(v tˇechtopˇrípadech se sémantické dotazy pˇrekládajína databázové[9]). Sémanticky obohacená data mají však svá specifika – pˇredevším,na rozdíl od obyˇcejnýchdat, umožˇnujíodvozování. Pˇredpoklá- 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ˇechtodvou tvrzení logicky vyplývá, že Sokrates je smrtelný. To je pˇresnˇeten typ od- vození, který bychom chtˇeli, aby nám úložištˇebylo schopno najít. Sémantická úložištˇetedy

10 3.4. ÚLOŽIŠTEˇ SÉMANTICKÝCH DAT musí nabízet nˇejakýzp ˚usobodvozování (inference). Implementace odvozování se dá roz- dˇelitna dva typy: dopˇrednéˇretˇezení (forward chaining) a zpˇetnéˇretˇezení (backward chai- ning). Dopˇrednéˇretˇezeníznamená, že se všechna možná další tvrzení odvodí a uloží už pˇri vkládání dat do úložištˇe;zpˇetnéznamená, že se odvozují dynamicky až pˇrikonkrétním do- tazu. Výhody a nevýhody tˇechtodvou zp ˚usob˚ujsou zˇrejmé– mají vliv na fyzickou velikost databáze, rychlost vrácení výsledku dotazu, rychlost pˇrivkládání nových RDF dat. Dalším rozdílem je, že zatímco schéma databázových dat je pevnˇedané, schéma sémantických dat závisí na ontologiích. Nové ontologie a jim podˇrízenádata je možné za bˇehudo úložištˇe pˇridávat.Tím se mˇeníschéma RDF databáze. Mezi úložištˇepoužívaná nejˇcastˇejipatˇrí: • Sesame • SwiftOWLIM • BigOWLIM • Jena/Joseki • Mulgara • CubicWeb • Virtuoso • Redland • Soprano Pro sémantická úložištˇese používají i tyto termíny: reasoner, ontology server, semantic store, metastore, RDF database8. K úˇceluhledá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ˇrílohaC.

3.4.1 SPARQL Dotazovací jazyk, jehož název je rekurzivní akronym pro SPARQL Protocol and RDF Query Language, je standardizovaný konsorciem W3C9 a stal se jím oficiálnˇedoporuˇcenýpro po- užití v rámci sémantického webu. Je komplexní a propracovaný, dovoluje široké možnosti tvorby dotaz ˚u(i když v praxi se ukázalo, že nˇekteré možnosti ještˇechybí). Pˇrenosovýpro- tokol tohoto jazyka je vyjádˇrenv XML a pˇrenášenprotokolem HTTP.

8. Pˇrevzatoz: 9. Specifikace jazyka:

11 3.4. ÚLOŽIŠTEˇ 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ˇejšíhoSPARQL dotazu.

Samotný dotaz jazyka SPARQL m ˚uževypadat podobnˇe,jak je uvedeno na pˇríkladu 3.5. Prefixy v prvních ˇrádcíchoznaˇcujízkratky pro jmenné prostory, které potom m ˚užemepou- žívat v samotném dotazu. Dotaz je podobný napˇríkladjazyku SQL, výrazy zaˇcínajícíotazní- kem jsou promˇenné,ostatní popisují URI RDF zdroje. Klauzule WHERE filtruje výsledky dle zadaných parametr ˚u.Výsledek tohoto dotazu vrátí dva sloupce, obsahem prvního sloupce bude vždy název projektu a obsahem druhého ˇclovˇek,který na nˇempracuje. Tedy dotaz vrátí seznam pracovník ˚una všech projektech.

3.4.2 Sesame

Sesame je open source rámec (framework) pro ukládání, odvozování a dotazování RDF dat. Hlavním vývojáˇremje nizozemská spoleˇcnostAduna10 ve spolupráci s nadací NLnet Foun- dation11. Na vývoji se také, jak je ve svˇetˇeotevˇrenéhokódu zvykem, podílejí jednotlivci nepatˇrícípod žádnou z tˇechtoorganizací. V diplomové práci Pavla Cížka[ˇ 4] v roce 2007 byl Sesame vˇetve1 vybrán jako nejvhodnˇejšísémantické úložištˇe.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ˇrišlazmˇenacelé architektury. Celý rámec se nyní skládá z nˇekolikasou- ˇcástí:

• Sesame – sémantické úložištˇe

• SeRQL – dotazovací jazyk

• Elmo – poskytuje API pro nˇekolikzákladních ontologií

• Alibaba – knihovna pro práci s RDF daty

• Rio – RDF input/output (parsery a zapisovaˇce)

10. Aduna Software: 11. NLnet Foundation:

12 3.5. WIKI SYSTÉMY

Nás zajímá pˇredevšímsémantické úložištˇe.To bylo rozdˇelenona dvˇewebové aplikace: jedna je administraˇcní(openrdf-workbench), druhá (openrdf-sesame) slouží pˇrímémupˇrí- stupu k uloženým dat ˚um.Pˇrístupk openrdf-sesame je možný Representational State Transfer (REST) protokolem, tedy pomocí standardních metod HTTP. Pro populární pro- gramovací jazyky Java, C# a Python existují i knihovny poskytující vysokoúrovˇnovéAPI. Úložištˇeje možné dotazovat standardním jazykem SPARQL, ale alternativnˇei vlastním ja- zykem SeRQL. Ten se obˇcashodí pro funkˇcnost,kterou SPARQL zatím neposkytuje (napˇrí- klad zjištˇenívšech nadtˇrídvybrané tˇrídyaj.). Samotný zp ˚usobfyzického uložení dat je velice flexibilní – jako základ je možné použít relaˇcnídatabázi, soubor, operaˇcnípamˇet’ apod. Každé RDF tvrzení v úložišti je ve verzi Sesame 2 také souˇcástítakzvaného kontextu. Kontext je URI pˇriˇrazenéke tvrzení, jde ˇríci,že pomocí kontextu pojmenováváme graf spolu souvisejících tvrzení (napˇr.tvrzení od urˇcitého uživatele nebo soubor tvrzení vztažených ke stejnému projektu). Pˇresvšechny klady má ovšem Sesame k "dospˇelému"software pˇrecejenom dlouhou cestu. Aˇckolivje dobˇrenavržen a je stabilní, trpí nˇekolikazásadními chybami. Nepodporuje žádný zp ˚usobautentizace, uzamykání transakcí, nelze dohledat historii zmˇenani ˇcasové znaˇckypˇridánítvrzení ani jejich autora (podpora verzování byla pˇridánaprojektem [4], tý- kala se však verze Sesame 1.x). Zvláštˇenedostatky v oblasti AAA12 ho prozatím diskvalifi- kují z možnosti být široce používán na dnešním Internetu13.

3.5 Wiki systémy

Ponˇekudnezvykle znˇejícíslovo wiki pochází z havajštiny. Oznaˇcujevýraz rychle nebo rychlý. Historie webových wiki stránek v dnešní podobˇe14 zaˇcínáv polovinˇe90. let minulého sto- letí. Americký programátor Ward Cunningham tehdy zaˇcalvytváˇretwebové stránky o soft- warových návrhových vzorech, kterými se intenzivnˇezabýval. Naprogramoval také sv ˚uj nápad, aby uživatelé mohli sami obsah webu upravovat. Celý projekt pojmenoval WikiWi- kiWeb. Dnes zažívají wiki velký rozmach. Používají se pro sdílení informací v rámci sociálních skupin (r ˚uznévysokoškolské, vzdˇelávacía vnitrofiremní wiki), spolupráci na projektech (napˇr.i jako souˇcástaplikace Trac a podobných), proslulá je internetová wiki encyklopedie Wikipedia. Hlavní charakteristikou wiki je možnost editace stránek otevˇrenánávštˇevník˚um. Dokonce ani není potˇrebažádná znalost jazyka HTML. Používá se mnohem jednodušší wiki syntaxe (r ˚uznýchtyp ˚u).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 prove- dené zmˇenyukládají.

12. AAA – authentication, authorization, accounting 13. Metodu ˇrízenípˇrístupuk obecným RDF úložištím pˇredkládánapˇr.[9] 14. Systém ENQUIRE od Tima Berners-Lee pˇripomínal dnešní wiki, ale byl pˇríliškomplikovaný a jeho vývoj byl zastaven.

13 3.6. TRAC == Nadpis == ’’text kurzívou’’ ’’’tucnýˇ text’’’ [[OdkazJinam|Odkaz na jinou stránku a jeho popis]] [[File:Obrazek.jpg]]

Obrázek 3.6: Wiki syntaxe používaná MediaWiki

Vˇetšinasouˇcasnýchwiki systém ˚uneobsahuje žádnou pˇridanouhodnotu použitím sé- mantiky. K nˇekterýmwiki se ovšem dá tato podpora pˇridatpomocí plugin ˚u.Jiné, vˇetšinou experimentální projekty, jsou psány už pˇrímojako sémantické wiki. Wiki systémy se sé- mantikou se budu zabývat ještˇev další kapitole. Mezi nejpoužívanˇejšízástupce ze skupiny klasických wiki patˇrí: • MediaWiki

• Dokuwiki

• TWiki

• TikiWiki

• socialtext.com

• JSPWiki Jejich seznam i s odkazy najdete v pˇrílozeB.

3.6 Trac

V projektu sémantické wiki se nyní dostáváme k popisu další zásadní ˇcásti.Systému Trac pro správu vývoje a prezentaci software. Jeho souˇcástíje právˇewiki, kterou m ˚ujdiplomový projekt obohacuje sémantickým rozšíˇrením Trac Semantic Extension (Semex). Trac15 je systém umožˇnujícíefektivnˇea pohodlnˇesledovat vývoj produktu, zejména soft- warového. Funguje jako webová aplikace napsaná v programovacím jazyce Python. Je to open source produkt, vývoj však vede spoleˇcnostEdgewall Software. Souˇcasnáverze je oznaˇcenajako 0.12 a drží si vedoucí pozici mezi podobnými systémy. Pˇrekonávái nˇekteré komerˇcníprodukty. Mimo jiné Trac nabízí následující vlastnosti: • Synchronizace se Subversion (a dalším verzovacím softwarem)

• Integrovaná wiki

• Možnost rozšíˇrenípomocí plugin ˚u

15. Oficiální web:

14 3.6. TRAC

• Sledování chyb a žádostí (bugtracking)

• Multiplatformnost

• Vytváˇrenístránek pomocí šablonovacího systému Genshi

Architekturu systému Trac budu detailnˇejipopisovat v sekci vˇenujícíse návrhu sémantic- kého pluginu.

3.6.1 Deep Thought Na Fakultˇeinformatiky Masarykovy univerzity se Trac používá pro vývoj a prezentaci nˇe- kterých semestrálních nebo závˇereˇcnýchprojekt ˚u.Tato instalace Tracu vychází z vývojové verze smˇeˇrovanék Trac 0.11 (0.11 dev), je však do hloubky upravená. Nazývá se Deep Thought[13] a obsahuje nˇekolikúprav a funkˇcností,které samotný Trac nenabízí: pˇrede- vším podporu pro více projekt ˚ua jejich automatickou správu (vytváˇrení,naˇcítání).Té se do- sáhlo úpravami ve schématu databáze i v kódu. Také lokalizace byla pˇridánavlastní cestou a byl zmˇenˇenvzhled aplikace. Do Deep Thought bylo zakomponováno také nˇekolikdalších, dˇrívesamostatných, nástroj ˚u(mimo jiné plugin pro zobrazování snímk ˚uobrazovek). Jeho srovnání s jinými podobnými produkty spravujícími více projekt ˚unajednou popi- suje [14]. PrávˇeDeep Thought prezentuje fakultou vyvinutý software a pro nˇejbude cílena praktická ˇcásttéto diplomové práce. Vznikl jako souˇcástrozsáhlého projektu E-learning v kontextu sémantického webu16 (ELSW). Cílem tohoto projektu bylo vyvinout rámec spolupracujících služeb a program ˚u zpracovávajících dokumenty vhodné pro e-learning. Deep Thought byl mínˇenjako portál integrující jednotlivé nástroje a výsledky. Z obsažených dokument ˚use poté extrahují infor- mace, 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), je- hož je tento výzkum sémantických wiki souˇcástí.Další informace a jeho strukturu popisuji v jemu pˇríslušné sekci 5.1.

16. Detail projektu ELSW:

15 Kapitola 4 Sémantická data v souˇcasnýchnástrojích

Zkoumáme sémantiku z r ˚uznýchpohled ˚u.Od sbˇeru nezpracovaných dat, pˇresjejich ˇcištˇení, anotaci, skladování až k použití. V této kapitole se budu vˇenovatprávˇevyužití sémanticky obohacených dat na souˇcasnémwebu. Zamˇeˇrímse na aplikace, které se snaží sémantiku pˇrenéstaž na "poslední míli", tedy k obyˇcejnémuuživateli webu. Nejvˇetšíˇcástkapitoly vˇe- nuji právˇesémantickým wiki systém ˚umna souˇcasnéscénˇe,které mi sloužily k inspiraci pˇritvorbˇemého projektu. Dále pˇredstavímnˇekolikdalších zajímavých projekt ˚uvyužívají- cích výhody sémantiky k vylepšení funkˇcnostisvých služeb. Na konci uvedu krátké shrnutí stavu sémantických technologií na souˇcasnémwebu. Nastíním také smˇer, kudy se podobné produkty ubírají.

4.1 Sémantické wiki

Sémantická wiki rozšiˇrujeprincipy obyˇcejnýchwiki, které jsem popsal v minulé kapitole. Zdrojový text stránek je rozšíˇreno strojovˇeˇcitelnéinformace. Tˇemibývají bud’ samotná definice sémantické tˇrídynebo vlastnosti, anebo odkaz na mateˇrskýobjekt do úložištˇeRDF dat. Snahou takových rozšíˇreníbývá v koneˇcnémd ˚usledkuobohatit uživatelský zážitek o zobrazení návazností, pˇresnˇejšívyhledávání, sdílení informací atd. Následující seznam uvádí nˇekolikzajímavých sémantických wiki, které jsou stále vyví- jeny a dosáhly funkˇcníhostádia. Nˇekolikdalších sémantických projekt ˚uje totiž zanedba- ných a neudržovaných. Castoˇ jde o akademické projekty a nedostanou se do použitelného stavu. Seznam wiki systém ˚uje ˇcásteˇcnˇepˇrebránz [10], je aktualizován, upraven a doplnˇen. Na odborném webu Semanticweb.org je pˇrehlednýseznam1 dalších sémantických wiki i s popisy jejich licencí, použitých technologií a stavu vývoje.

AceWiki Pˇrinášínezvyklý koncept syntaxe v pˇrirozeném jazyce (v angliˇctinˇe)omezeném na nˇekolik desítek základních gramatických vazeb a slov ("every", "or", "not". . . ). Umí pracovat s ozna- movacími vˇetami(definice fakt ˚u),rozkazovacími vˇetami(pˇríkazypro wiki), i otázkami (do- tazy na ontologická data). Tento jazyk se nazývá Attempto Controlled English2. Definice fakt ˚uvypadá napˇríkladtakto: Every country is an area. Tyto vˇetyjsou odvozovacím strojem

1. Sémantické wiki systémy: 2. Attempto Controlled English:

16 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ˇevníkpotom m ˚užezadat do wiki otázku (What is capital of the Czech Republic?). Obsah wiki je vnitˇrnˇepˇrevádˇendo OWL formátu, kde se odvodí výsledek dotazu a navrací se zpˇet.

Kiwi

KiWi je zkratka z Knowledge In Wiki. Jak název napovídá, jde pˇredevšímo wiki pro sdí- lení a management znalostí. Není úzce zamˇeˇrenana jednu oblast, jde o obecnˇepoužitelnou wiki. Na jejím vývoji se podílí nˇekolikevropských univerzit, mimo jiné i VUT Brno. Velká základna vývojáˇr˚ujde poznat, jedná se o velmi kvalitní a propracovanou sémantickou wiki s pˇeknýma vkusným rozhraním. KiWi používá vlastní RDF úložištˇe;v obsahu wiki stránek se dají sémanticky anoto- vat pojmy a tím je navázat na tvrzení z tohoto úložištˇe.Stejnˇejako v projektu Semantic Extension je i v KiWi pˇrichystanápodpora pro zobrazování osob, událostí, míst, projekt ˚u a dalších ˇcastopoužívaných pojm ˚u.Stránku je možné zobrazit bud’ v prezentaˇcnímmódu nebo v inspekˇcnímmódu – ten ukazuje pˇrímoRDF data. Pˇrestože nedávno vyšla po dlouhé dobˇeverze 1.0, ještˇejsem pˇritestování ˇcastonarážel na neošetˇrenéchyby a podivné chování. Pˇrestojde o velmi kvalitní a hlavnˇeinspirativní práci.

17 4.1. SÉMANTICKÉ WIKI

KnowWE KnowWE je postavena na JSPWiki (založené na jazyce Java), prakticky tvoˇríjejí sémantické rozšíˇrení.Tato open source wiki je v nˇekolikaaspektech podobná mé Semantic Extension. Dovoluje anotovat pojmy na wiki stránkách a ke ˇclánk˚um,v závislosti na jejich typu a atri- butech, dovede doporuˇcovatpodobné. Jde to pˇeknˇevidˇetna testovací wiki o sportu. U kaž- dého odvˇetvíobsahuje výpis vlastností (Swimming – season independent, in water, low ini- tial costs, low running costs) a podle nˇejm ˚užedoporuˇcitpodobný sport. Má jednoduché, ale funkˇcnísémantické hledání (dovede tvoˇritfiltrování ve stylu "vyber sporty kde Flexibility = spontanious"). Nepoužívá k ukládání sémantiky žádné externí úložištˇe,pojmy jsou ukládány pˇrímo v rámci znaˇckovánív textu. Vnitˇrnˇek reprezentaci sémantiky užívá formáty OWL a d3web3.

OntoWiki OntoWiki rozhodnˇepatˇrído skupiny nejpokroˇcilejších.Je to obecná a vyspˇeláontologická (sémantická) wiki. Také velmi uživatelsky pˇrívˇetivá.Na rozdíl od vˇetšinyjiných séman- tických wiki se ontologický obsah nevkládá ruˇcnˇedo syntaxe, ale využívá sémantických formuláˇr˚u.Je open source a je jedním z projekt ˚uskupiny Agile Knowledge Engineering and Semantic Web (AKSW) University v Lipsku. Ti mají podíl na celé ˇradˇedalšího sémantického software (napˇr. SoftWiki, LinkedGeoData, DBPedia, viz další sekce textu). Jde o platformu pro spolupráci, sdílení znalostí a myšlenek, zamˇeˇrujese na e-learning a vizualizaci znalostí. Sémantiku se snaží co nejvíce skrýt – výsledky dotaz ˚ua dokonce i samotné wiki stránky jsou potom ˇcastoprezentovány (v závislosti na typu objektu) spíše formou vizitek, událostí v kalendáˇri,map nebo tabulek, než ˇcistýmtextem. K autoringu obsahu používá vlastní sys- tém RDFAuthor pracující s formátem RDFa (Resource Description Framework–in–attributes). To je specifikace formátu pˇridávajícíhoontologické údaje založené na RDF a ontologiích do XHTML soubor ˚u4.

Semantic MediaWiki Semantic MediaWiki – rozšíˇreníznámé MediaWiki o možnost pˇridávatstránkám vlastnosti. Každá wiki stránka se m ˚užestá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án- kám, tedy zároveˇnontologickým jedinc ˚um.Napˇr.pokud se stránka týká filmu, je možné v textu kde je zmínˇenjeho scénárista tuto skuteˇcnostzaznamenat sémanticky pˇrímove zdro- jovém kódu stránky a poté využít pro hledání apod. V posledních verzích dovede poloau- tomaticky tvoˇrittabulky, umí export událostí do formátu iCalendar, existuje rozšíˇrení,které pro ni pˇridámožnost využití sémantických formuláˇr˚u.

3. D3web: 4. Úvod do RDFa: 18 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: Cástˇ zdroje stránky United States of America z ukázkové instalace.

Semantic MediaWiki je mimoˇrádnˇed ˚uležítátaké z té pˇríˇciny, že na MediaWiki bˇežíWi- kipedia. Do detail ˚use fungováním tohoto projektu zabývá [15].

Obrázek 4.3: Úprava stránky v Semantic MediaWiki.

Wikidsmart Wikidsmart je jednoúˇcelovásémantická wiki od spoleˇcnosti zAgile5. Její hlavní devizou je propojení s project management systémem Jira6 (to je systém podobný Tracu, ovšem ko- merˇcní),což pˇrinášípraktickou užiteˇcnost. Ve wiki (postavená na Confluence Enterprise Wiki) se data zadávají pomocí sémantic- kých formuláˇr˚u.Jelikož se jedná o vývoj software, objekty mohou být typu Person, Do- cument, Issue, Milestone, Project a podobnˇe.Úpravy wiki dovedou vytvoˇritv Jira novou chybu, požadavek, dokument nápovˇedya jiné artefakty softwarového vývoje. Obsahuje také chytré sémantické hledání. Wikidsmart sice staví na vlastnostech Jira, ale jde pomocí souˇcásti Connector propojit i s jinými systémy.

5. Stránky zAgile: 6. Systém Jira:

19 4.2. DALŠÍ PROJEKTY SE SÉMANTIKOU

SoftWiki

Softwiki je platforma pro podporu vývoje software agilními metodami. Má za sebou his- torii od roku 2006, byla vyvíjena s podporou nˇemeckévlády. V jejím rámci byla vytvoˇrena ontologie SWORE pro agilní správu požadavk ˚u(Agile Requirements Engineering). Dovo- luje vytváˇretpožadavky na software (ve stylu Poštovní klient by mˇelpodporovat možnost zmˇenyvzhledu pomocí palety témat.), komentovat je a hledat mezi nimi napˇríkladpomocí klíˇcovýchslov. Wiki je pˇeknás moderním GUI (technologie Ajax, kalendáˇrapod.), bohužel trochu ne- pˇrehlednáa chybí navigace, která by ˇclovˇekupomohla se orientovat. Také je zatím dostupná pouze v nˇemˇcinˇe.Za podobným produktem Wikidsmart ještˇeznaˇcnˇezaostává.

4.2 Další projekty se sémantikou

Poslední dobou se sémantika koneˇcnˇepˇrehoupla pˇrespomyslnou bariéru extraktor ˚u,ano- tátor ˚u,vizualizátor ˚ua podobných nástroj ˚udo svˇetauživatelsky pˇrívˇetivýchaplikací. V této sekci pˇredstavímnˇekolikzajímavých, pˇredevšímwebových, aplikací a služeb, které onto- logické pojmy využívají. Nejedná se o wiki, ale s nimi mají mnoho spoleˇcného.Jako sé- mantickou oznaˇcmeaplikaci, 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ˇcnostnebo pˇrívˇetivostpoužívání.

LinkedData

Spíše než o konkrétní službˇezde m ˚užememluvit o systému a doporuˇcenýchmetodách (angl. best practices) provázání dat. Stejnˇejako provazujeme HTML dokumenty pomocí od- kaz ˚u,m ˚užemeprovazovat data pomocí jejich URI, HTTP protokolu a formátu RDF/XML. Základem se neliší od již popsaných princip ˚u:RDF dokument obsahuje odkaz na další RDF dokument atd. Tím se tvoˇrísystém propojených pˇripravenýchdat ve strukturovaném formátu, který je dále využitelný. D ˚urazje kladen na použití standardizovaných ontologií (FOAF, DOAP apod.). Na projekt je nabaleno nˇekolikdalších produkt ˚u– RDF editor, RDF validátor atp.

DBPedia

Využívá data vyextrahovaná z projektu otevˇrenéencyklopedie Wikipedia. Její RDF databáze se už sestává z milion ˚uobjekt ˚u,nad kterými je možné dˇelati velice komplikované dotazy pomocí SPARQL. Nabízí i online pˇrístupovýbod , kde je možné systém odzkoušet. Napˇríkladnásledující pˇríkladzadaného dotazu vrátí tabulku obsahující buˇnkus obsahem Prague:

20 4.2. DALŠÍ PROJEKTY SE SÉMANTIKOU

PREFIX dbprop: PREFIX db: SELECT ?hlavnimesto WHERE { db:Czech_Republic dbprop:capital ?hlavnimesto . }

DBPedia používá standardizované ontologie a ještˇepˇridávásvoji vlastní, velice rozsáh- lou (v souˇcasnédobˇepopisuje stovky tˇrída více než tisíc vlastností). Tato data jsou dolována z informaˇcníchbox ˚uu jednotlivých ˇclánk˚una Wikipedii.

LinkedGeoData

Velice zajímavý projekt kombinující a spojující sémantická data z DBPedie s mapami z pro- jektu Open Street Map7. Má vyvinutou vlastní ontologii obsahující hodnˇemapových údaj ˚u (ulice, obchod, zábavní centrum. . . ). V prohlížeˇcimap se uživateli automaticky nabízejí ob- jekty umístˇenéna aktuálnˇeprohlíženém výˇrezumapy setˇrídˇenédo kategorií. Nad daty vnitˇrnˇevyhledává jazykem SPARQL, poskytuje i pˇrístupovýbod pro online prohlížení bez nutnosti instalace.

Evri

Evri je inovativní "mashed-up" aplikace. Agreguje informace z r ˚uznýchwebových služeb a zamˇeˇrujese na jejich aktualitu. Dovoluje tedy hledat nejnovˇejšíinformace, ˇclánkya ko- mentáˇreo vybraném subjektu (to m ˚užebýt osoba, produkt, událost. . . ). Dovoluje také stáh- nout rozšíˇrenído webového prohlížeˇce,to potom prochází aktuálnˇeprohlíženou stránku a oznaˇcujeslova, o kterých Evri dovede zobrazit kontextové informace. Výsledky hledání buduje podle popisu na jejich webu mimo jiné na základˇezpracování pˇrirozeného jazyka a statistické analýzy, nikoliv jenom klíˇcovýchslov. Evri zatím bohužel z ˚ustáváv betaverzi a neposkytuje více informací o technologiích, které ji tvoˇrí.

True Knowledge

Další služba s nálepkou Beta. True Knowledge dovede odpovídat na otázky položené pˇri- rozeným jazykem. Má vybudovanou pomˇernˇeobsáhlou databázi pojm ˚ua jejich vlastností, mezi kterými dovede vyhledávat a spojovat informace. Taktéž nepoužívá pouze klíˇcová slova. Zabudovala sémantický engine, který používá jednu jedinou vlastní ontologii. Pro "silná témata", kterými jsou tˇrebageografie, lidé, matematika apod. funguje vyhle- dávání pomˇernˇedobˇre,ovšem s obecnˇejšímiotázkami má ˇcastoproblémy. Od podobných

7. OpenStreetMap je svobodná editovatelná mapa celého svˇeta.:

21 4.3. SHRNUTÍ

Obrázek 4.4: Evri v akci. projekt ˚u(DBPedia, Freebase) se r ˚uznípˇredevšímmožností zpracovat pˇrirozený jazyk a není závislá na schopnosti uživatele vytvoˇritSPARQL dotaz.

Nepomuk Social Semantic Desktop Projekt Nepomuk zasahuje k uživateli ještˇeblíže, než webové aplikace. Jedná se totiž o pro- jekt sémantického desktopu. Používá RDF k uchovávání metadat, se kterými se uživatel setkává pˇribˇežnépráci s poˇcítaˇcem– data a ˇcasypráce se soubory, jejich hodnocení, štítky, obsah a tak podobnˇe.K tomu se pˇridávajíi ménˇeobvyklé akce – zachování p ˚uvodníURL staženého souboru, odkaz na e-mail, se kterým pˇrišlauložená pˇrílohaatd. Nepomuk používá nˇekolikontologií – pro soubory, pro kontakty, pro EXIF data foto- grafií. . . a ještˇenˇekolikobecnˇejšíchontologií. Data jsou ukládána v integrovaném úložišti nˇekolikatyp ˚u(Redland, Virtuoso, Raptor). K indexování dat na pevném disku používá kni- hovnu Strigi. Nutno podotknout, že pˇripraktických testech Nepomuk ukázal nad míru vy- sokou zátˇežsystému. V nˇekterýchmomentech úložištˇeVirtuoso vytˇežovalocelé jedno jádro procesoru.

4.3 Shrnutí

Souˇcasnývývoj na poli aplikací doplnˇenýcho sémantiku by se dal jednoduše charakteri- zovat jako odklon. Odklon od tradiˇcníhopojetí sémantického webu definovaného pˇredde- seti lety. V p ˚uvodnívizi byl sémantický web budován stylem zespodu nahoru8 (bottom-up

8. Zdroj tohoto pojmu:

22 4.3. SHRNUTÍ model) – nejprve definovat ontologie, poté vytvoˇritsémantická data a použít je. Stále více a více se však uplatˇnujeodklon od formalismu ke smˇeru shora dol ˚u(tzv. top-down model) – na existující data se naroubují sémantická rozšíˇrení.To s sebou pˇrineslomnoho velice dob- rých projekt ˚us nezvyklým pˇrístupemke zpracování dat. Mnohé z nich opravdu pˇrinášejí zlepšení ergonomie pˇrivyhledávání a pˇrijímáníinformací. Tento styl následuje také Fakulta informatiky Masarykovy univerzity, viz dokumenty [10] a [11], kde potvrzuje pˇríklonk to- muto postupu. V této formˇenemusí být ontologie nebo napˇr.atributy jedinc ˚uzdaleka formálnˇekom- pletní, ovšem pˇreklenujímezeru mezi produkty vyhovující sémantickému webu a produkty, které bˇežníuživatelé opravdu používají. Spíše než na sémantickou úplnost se proto klade d ˚urazna koncovou použitelnost. Sémantika se tím také zaˇcínározvíjet zaˇcínámimo aka- demickou sféru (kde donedávna probíhal výzkum pˇredevšímnad sémantikou v klasické formˇezespodu nahoru). Do vývoje prostˇredk˚usémantického webu zaˇcínajíplynout peníze nejen z univerzitních a státních grant ˚u,ale také z takzvaného rizikového kapitálu (venture capital). Napˇríklad projekt True knowledge byl ohodnocen nejmenovanými spoleˇcnostmizabývajícími se touto formou investování na 40 milion ˚uamerických dolar ˚u9. Se vstupem kapitálu a komerˇcní sféry se zrychluje vývoj v oblasti sémantických technologií a pˇribýváprojekt ˚u,které jsou dotaženy do použitelného stavu. Nem ˚užututo snahu ovšem upˇrítani nˇekterým akademic- kým projekt ˚um;i univerzitní aplikace jsou dotahovány do konce a životaschopné, pokud za nimi stojí dostatek vývojáˇr˚ua samozˇrejmˇei finanˇcníchprostˇredk˚u.Pˇríkladembudiž sku- pina AKSW a jejich výsledky. Bˇehemnásledujících let bude zajímavé sledovat, zda budou sémantická rozšíˇrenípouze doplˇnkemjinak samostatnˇefungujících nástroj ˚u,nebo bude nalezen schopný obchodní mo- del, který pom ˚užesémantické technologie dále rozšíˇrit.Pole p ˚usobnostije r ˚uznorodé a ši- roké, ovšem vˇetšíplatnosti dle mého názoru (alespoˇnzatím) zastávají ontologické metody v jednoúˇcelovýchproduktech. At’ už se jedná o management projektu (Wikidsmart) nebo geografickou sémantickou aplikaci (LinkedGeoData), ˇrešíse i sémantická wiki pro dodávku IT služeb [16]. Jejich pˇridanáhodnota je zjevná na první pohled a umožˇnujeihned ukázat uživateli nové metody získávání informací. A v pˇrípadˇe,že jde o uživatelsky pˇrívˇetivou aplikaci, nauˇcíje se sémantikou transparentnˇepracovat a vnímat ji.

4.3.1 Požadavky na sémantické wiki Z pr ˚ubˇehusledování souˇcasnéhostavu tˇechtoaplikací vyplynulo, že pˇrístupyk pojmu sé- mantická wiki se mohou diametrálnˇelišit. K dispozici jsou wiki jednak všeobecného typu, stejnˇetak však existují wiki jednostrannˇezamˇeˇrené.Setkáme se také s doplˇnkovýmiapli- kacemi, které slouží k extrakci dat z klasických wiki. To samozˇrejmˇesouvisí s potˇrebou anotovat množství už existujících dat a pˇripravitje pro použití v rámci sémantických tech- nologií.

9. Zdroj:

23 4.3. SHRNUTÍ

Z prošlých wiki jsem sbíral i inspiraci na sv ˚ujdiplomový projekt. Objevilo se mezi nimi mnoho zajímavých koncept ˚ua princip ˚u,na kterých se dá sémantika postavit. Jako trio nej- d ˚uležitˇejšíchvlastností, které by úspˇešnásémantická wiki mˇelasplˇnovat,bych vybral násle- dující:

• Uživatelská pˇrívˇetivost. Zasazení sémantiky do zbytku wiki systému by mˇelobýt pˇrirozené a nenucenˇerozvíjet existující možnosti, které wiki pˇrináší.V opaˇcnémpˇrí- padˇenebudou uživatelé sémantické funkce používat. I samotné wiki se rozšíˇrilytaké díky jednoduché upravovatelnosti stránek.

• Pˇridanáhodnota. Sémantika by dle mého názoru nemˇelabýt samoúˇcelná.Výbornˇe ji lze využít napˇr.k vytvoˇreníautomaticky generovaných dynamických wiki stránek, které ve klasických statických wiki vytvoˇritnejdou. Také propojení více systém ˚u(dvˇe wiki podobného zamˇeˇrenímohou sdílet jedno úložištˇenˇekterádata z nˇejapod.) po- mocí sémantiky je plus.

• Výkon. Operace se sémantickým úložištˇem(nehledˇena jeho interní nebo externí po- dobu) mohou být dlouhotrvající. Zvláštˇejedná-li se o dotazování velkého objemu dat a nebo bˇeží-lijednotlivé komponenty na r ˚uznýchstrojích tˇrebai v odlišných geo- grafických lokacích. Proto je tˇrebapoužívat výkon vyžadující sémanticky anotované pojmy na jedné wiki stránce rozumnˇe.

O samotném vývoji mého sémantického rozšíˇrenípro wiki programu Trac pojednávají ná- sledující kapitoly.

24 Kapitola 5 Analýza Tracu a Deep Thought

Souˇcástídiplomové práce není pouze zhodnocení souˇcasnéhostavu sémantických wiki sys- tém ˚u,ale také praktická ˇcást.Její výsledek Trac Semantic Extension spoˇcíváv doplnˇení projektu Trac, respektive jeho derivátu Deep Thought, o podporu zpracování sémantiky na platformˇeSesame 2. V této kapitole pˇredstavímarchitekturu a detailní strukturu celého komplexu Trac, také jejich vliv na moje sémantické rozšíˇrení.Pr ˚ubˇehuvývoje, architektuˇre, princip ˚uma užití Semantic Extension se budu vˇenovatv kapitole následující. Na Fakultˇeinformatiky se vyvíjí mnoho software, pˇredevšímotevˇreného.Hodnˇesoft- warových výstup ˚uposkytuje zvlášt’ pˇredmˇet Moderní znaˇckovacíjazyky, dále semestrální a závˇereˇcnépráce na jednotlivých katedrách atp. Mnohé z tˇechtoprací jsou velice kvalitní a použitelné. Bohužel ˇcastopo obhájení zapadnou a nejsou dále udržovány anebo aspoˇn prezentovány širšímu okruhu potenciálních uživatel ˚u.Jelikož má na fakultˇedlouhou tradici e-learning (respektive blended learning – prolínání klasických výukových metod s elektro- nickými), vznikl nápad prezentace vyvinutého software na fakultní wiki. Bylo posuzováno nˇekolikmožností, nakonec byl vybrán systém pro vedení vývoje a jeho prezentaci Trac. Ten však trpˇelnˇekolikanedostatky. Mimo chybˇejícípodpory pro lokalizaci to byla pˇredevšímnemožnost jednoduše v rámci jedné instalace udržovat a prezentovat více projekt ˚u.Proto byl bˇehemvýzkumného projektu ELSW upraven a výsledek byl pojmeno- ván Deep Thought. Ten ted’ bˇežína stroji kore.fi.muni.cz1 a pˇresnˇejje v souˇcasnosti prezentováno nˇekolikprogram ˚uz oblasti e-learningu a sémantického webu (vesmˇesjde o závˇereˇcnépráce student ˚ubakaláˇrskéhoa navazujícího studia).

5.1 Sémantický e-learning

V rámci výzkumu nových forem vzdˇelávánípostavených na myšlence sémantického webu a souvisejících technologiích bylo navrhnuto souˇcasnýDeep Thought rozšíˇrito možnost práce se sémantikou. Tato operace byla zapojena do vˇetšíhoprojektu Sémantický e-learning2 (SELE). D ˚uležitýmcílem tohoto výzkumu je dokázat, že i existující rozsáhlé aplikace lze roz- šíˇrito podporu sémantiky tak, že její integrace nebude pro koncového uživatele pˇrekážkou. Naopak, bude vyžadovat pouze minimální pˇredchozíznalosti pro pˇridávánía úpravu RDF dat.

1. Deep Thought: 2. Detail projektu SELE:

25 5.2. ZÁKLADNÍ STRUKTURA SYTÉMU TRAC

Vzniklé rozšíˇrenípro Trac a Deep Thought umožní vkládat dynamiku do wiki stránek ve spolupráci s úložištˇemSesame 2. Tím vnese užiteˇcnéfunkce do jeho integrované wiki. Nové vlastnosti lze následnˇepoužít k lepšímu dojmu z této wiki, k lepšímu vyhledávání, automatickým seznam ˚um,report ˚uma podobnˇe.Pˇrineselepší uživatelský i administraˇcní komfort pˇripráci s prezentovanými projekty ve wiki Deep Thought a pˇriblížínávštˇevník˚um webu možnosti a výhody sémantiky. Služby projektu SELE tvoˇrírámec nˇekolikaspolupracujících služeb. Následující obrá- zek 5.1 ukazuje schéma tohoto rámce, pˇrevzatéhoz letáku k projektu. Doplˇnují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ˇezpracovaná projektová dokumentace online. Nˇekterépˇrípravnéa ru- tinní ˇcinnostisouvisející s instalací mého pluginu popisuji i v pˇrílozeA k diplomové práci. Rozepíšu zde pˇredevšímsouˇcásti,kterými jsem se pˇrianalýze, návrhu a programování za- býval a které jsem používal. Instance Tracu je tvoˇrena takzvaným prostˇredím (angl. environment)3. To je adresáˇr v souborovém systému, který je pˇristartu Trac démona (služby) pˇredánjako parametr a ve kterém jsou uložena data potˇrebnápro správu jednoho projektu. Struktura podadresáˇr˚u prostˇredívypadá následovnˇe(vybral jsem pouze adresáˇresouvisející s vývojem), viz také obrázek 5.2:

3. Bližší popis:

26 5.2. ZÁKLADNÍ STRUKTURA SYTÉMU TRAC

• templates – zde jsou ukládány šablony pro uživatelem pˇridanéwebové stránky, které mají být souˇcástíprostˇredí.Pluginy pro nˇemohou však používat i vlastní adre- sáˇre.

• conf – konfigurace každého prostˇredíje uložena v souboru trac.ini v tomto po- dadresáˇri.V pˇrípadˇesložitˇejšíchprostˇredí(napˇr.Deep Thought) je možné mít díky plugin ˚umvíce takových konfiguraˇcníchsoubor ˚ua pˇrebíratjednotlivé 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ˇcenék doplnˇeníwebové prezentace. Napˇríkladm ˚ujprojekt 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áˇrpro ukládání záznamu.

Obrázek 5.2: Prostˇredíprojektu v aplikaci Trac – adresáˇre.

Ve vˇetšinˇepˇrípad˚unení tˇrebarozeznávat mezi Deep Thought a Tracem, proto budu popi- sovat strukturu po instalaci Tracu a vytvoˇreníprostˇredíjednoho projektu urˇcenéhoke kon- trole vývoje a prezentaci. Jak moc se tedy Deep Thought a Trac liší?

27 5.3. TRAC API

5.2.1 Rozdíly mezi Trac a Deep Thought Deep Thought vychází ze systému Trac a i když byl mohutnˇeupraven, programátorské API pro pluginy z ˚ustalo(pˇresmasivní zmˇenyv jiných oblastech – doplnˇenílokalizace, úpravy databáze, vzhledu) prakticky nezmˇenˇeno.To mi umožnilo projekt programovat jak pro fa- kultní použití v rámci Deep Thought, tak pro oficiální verzi Tracu. Jednak proto, aby bylo možné toto sémantické rozšíˇrenívyužít i v jiných prostˇredích,jednak z d ˚uvoduomezení 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ˇcasnástabilní verze je už 0.12. Zmínˇenéverze dˇelícca dva a p ˚ulroku vývoje. Navíc byl odštˇepenz tehdy aktuální revize; žádného d ˚uležitˇejšíhomilníku (tedy napˇríkladbetaverze apod.). Tím spíše je komplikované budovat Deep Thought dál a v ˚ubec ho udržovat v chodu. Jak se Trac vyvíjí a stále víc odlišuje, je tˇežšía tˇežšído Deep Thought zakomponovat zmˇenyz jeho mateˇrskéaplikace. Proto v pˇrípadˇe,že bude v budoucnu tˇreba pˇrenéstDeep Thought na vyšší verzi Tracu, bude jednoduché m ˚ujplugin nasadit beze zmˇen i v nové verzi. V dalších sekcích se zmíním postupnˇeo nˇekolikakonkrétních rozdílech mezi Trac 0.12 a Deep Thought, které mˇev pr ˚ubˇehuvý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 ˚uv jedné instanci. Toho bylo dosaženo pomocí využití konceptu A Comprehensive Multi-Project Solution4. Doporuˇcujerozdˇelitdatabázové schéma na nˇekolikkontext ˚u:každý projekt má sv ˚uj,navíc existuje ještˇekontext master pro metaprojekt Master reprezentující spoleˇcnésouˇcástinesouvisející s žádným z jednotlivých projekt ˚u.Konkrétní aktivní projekt lze pro programátora získat pomocí Python API. Fakultní prací je také možnost automatické tvorby nových projekt ˚uv prostˇredíDeep Thought.

5.3 Trac API

Trac, respektive Deep Thought, je napsán v programovacím jazyce Python, aktuálnˇepod- poruje ˇradyPython 2.5 a 2.6. Jde o moderní interpretovaný jazyk, který díky své jednodu- ché filozofii i syntaxi dovoluje rychlé psaní aplikací. Pro potˇrebyprogramátor ˚uposkytuje Trac rozsáhlé API, které nabízí mnoho možností ke tvorbˇeplugin ˚u.Na stránce Tracu i ko- munitním webu Trac Hacks5 je k dipozici celá ˇradaplugin ˚u,které základní Trac rozšíˇrují o funkˇcnostz mnoha oblastí. Nˇekteréz nich se staly také souˇcástmiDeep Thought. Celý systém je z hlediska architektury tvoˇrensystémem jednotlivých komponent (Com- ponent Architecture). Komunikují spolu pˇrestakzvané extension points, rozšiˇrujícíbody. Tyto body oznaˇcujímísta otevˇrenápro komunikaci s jinými komponentami. Zmínˇenáarchi- tektura dovoluje do celého systému transparentnˇepˇridat další komponenty s jejich funkcio- nalitou. Pluginy jsou nuceny dodržovat daná pravidla a pomocí vlastních rozšiˇrujícíchbod ˚u

4. Více projekt ˚u v Tracu: 5. Trac Hacks:

28 5.3. TRAC API mohou komunikovat i jednotlivˇemezi sebou. Kupˇríkladupˇrímojádrem Tracu nabízený rozšiˇrujícíbod trac.timeline.ITimelineEventProvider dovoluje pˇripojenémuplu- ginu doplˇnovatnové akce nebo upravovat stávající v ˇcasovéose projektu. Kompletní pˇre- hled všech nabízených rozšiˇrujícíchbod ˚uje opˇetv dokumentaci k Tracu6.

Obrázek 5.3: Komponentová architektura Trac

Mimo tohoto typu pluginu, který m ˚užemeoznaˇcitza klasický, existuje ještˇejeden typ. Nazýváme ho makro a je spojen s integrovanou wiki. Makro pˇrinášído wiki stránek dyna- miku vkládáním HTML kódu až jako výsledku zpracování makra. Oznaˇcujího dvˇevnoˇrené hranaté závorky ve zdrojovém textu stránky. Napˇríkladmakro [[RecentChanges]] vlo- žené do stránky vypíše poslední zmˇenyna wiki. Z programátorského hlediska se jedná o malé programy napsané v Pythonu, které jsou uloženy v podadresáˇri plugins. Jsou uvnitˇrzdrojového kódu odlišeny od klasických plugin ˚u,které zde také sídlí. I makra jsou souˇcástíkomponentové architektury, tedy mohou také komunikovat s ostatními pluginy. Makra mohou pˇrebírati argumenty pˇredanév kulatých závorkách. Další možností, jak ovlivˇnovatzpracování zdrojového textu stránek ve wiki jsou Wiki Processors. Dají se oznaˇcitza speciální typ maker. Uzavíráme je do trojitých složených zá- vorek a jméno procesoru se oznaˇcuje #!. Používají se, pokud je potˇrebavložit kus stránky v ˇcistémHTML, v barevném zvýraznˇenízdrojového textu nˇejakéhoprogramovacího jazyka a podobnˇe.Také wiki nabízí svoje služby pˇres standardní API Tracu. Je možné pomocí ní napˇríkladhlídat zmˇenyna 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ˇrujícíchbod ˚u:

29 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ˇemuještˇeznaˇckyšablonovacího systému. Tyto znaˇckydovolují pˇrivykreslová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 ˚upˇrímopro Python a v posledních verzích je nerozluˇcitelnˇezakom- ponován do infrastruktury Tracu. Dovede proto napˇríkladjednoduše pˇrenášetdo webových stránek obsah promˇennýchz Tracu i jeho plugin ˚u.Mimo atomických promˇennýchse hodí i pro zpracování polí. Genshi jsem úspˇešnˇepoužil pˇritvorbˇesvého sémantického rozšíˇrení pro zobrazování stránek, které nepatˇrípod wiki, ale jsou pˇrímogenerovány pluginem (jde tedy pˇredevšímo administraˇcníˇcást).

Obrázek 5.5: Výpis seznamu lidí do formuláˇrovéhoprvku pomocí Genshi

Dalším obohacením webových stránek v rámci Tracu je populární javascriptová knihovna jQuery7. Ta nabízí širokou škálu funkcí k vylepšení uživatelského zážitku pˇriprohlížení. Stejnˇetak programátor ˚umdovoluje jednoduše, ba témˇeˇrbez znalosti Javascriptu, napsat rychle a úspornˇemnoho užiteˇcnýchfunkcí. V pˇrípadˇejQuery se ukázal jeden z rozpor ˚u mezi stabilní vˇetvíTrac a starším derivátem Deep Thought. Deep Thought obsahoval starší a ne stoprocentnˇekompatibilní verzi jQuery. Proto jsem byl nucen ji na kore.fi.muni. cz, kde Deep Thought bˇeží,povýšit na aktuální verzi 1.3. Naštˇestíse tato zmˇenaneprojevila negativnˇena chodu ostatních souˇcástísystému.

5.5 Analýza návazností pluginu na Trac

Zmínˇenéschopnosti Tracu ohlednˇeposkytování API pro pluginy a makra ve wiki umož- ˇnujínaštˇestíširoké možnosti tvorby rozšíˇrení(slovem rozšíˇrení zde myslím úpravu Tracu, bez ohledu na to, jedná-li se o klasický plugin, makro nebo jejich kombinaci) bez nutnosti zasahovat pˇrímodo zdrojového kódu aplikace Trac. Klasický plugin se pro moje rozšíˇrení výbornˇehodil pro zajištˇeníslužeb jádra – zpracování a rozdˇelováníHTTP požadavk ˚u,serví- rování stránek a šablon, pˇripojeník úložišti Sesame, ˇrízeníkomunikace mezi moduly. Co se týká anotací textu pˇrímona wiki stránkách, bylo hned nˇekolikmožností, jak se s nimi vypo- ˇrádat:

7. jQuery:

30 5.5. ANALÝZA NÁVAZNOSTÍ PLUGINU NA TRAC

• použít wiki makra a zpracovávat je mimo hlavní plugin

• odchytávat pomocí API wiki zmˇenyna stránkách (rozšiˇrujícíbod trac.wiki.. IWikiChangeListener) a urˇcovatanotace z jádra pluginu

• wiki procesory; ty jsou však k potˇrebnémuvyužití nevhodné

Nakonec jsem jako nejvhodnˇejšíˇrešenívybral použití maker.

31 Kapitola 6 Vývoj a využití Semantic Extension

V pˇredchozíkapitole jsem se zaˇcalzabývat praktickou ˇcástípráce. Pˇredstaviljsem ekosys- tém, do kterého jsem programoval sv ˚ujdiplomový projekt – webové aplikace pro správu vývoje a prezentaci softwarových projekt ˚uTrac a Deep Thought. Šestou kapitolu vˇenuji detailnímu popisu celého sémantického rozšíˇrení.Uvedu d ˚uvodypro výbˇerkonkrétních softwarových komponent které jsem použil, pˇredstavímarchitekturu projektu celkovˇe,pˇri- blížím i její jednotlivé komponenty. Nakonec zmíním aspekty praktického nasazení a fun- gování projektu a závˇery, které z toho m ˚užemevyvodit. Jelikož je souˇcástívýstupu také podrobná dokumentace API pro programátory, krátce se zmíním i o ní.

6.1 Výbˇerpoužitého software

Jedna z vˇecí,kterou ctím pˇrivýbˇeru softwarových komponent, je vyhnout se antivzoru zno- vuvynalézání kola. Bˇehemtohoto procesu jsem dbal na co nejvˇetší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šíˇrení,byla jasná – pro- tože je Trac postaven na Pythonu, je nutné psát rozšíˇrenítaké v tomto programovacím ja- zyce. Daná podmínka determinuje další navazující skuteˇcnosti,napˇríkladnutnost vybírat knihovny a doplˇnky, které pro nˇejexistují. NaštˇestíprávˇePython má k dispozici širokou nabídku svobodných rozšiˇrujícíchknihoven, se kterými jsem mohl pˇrinávrhu poˇcítata pˇri vývoji je využít. Dalším krokem, kterým jsem se zabýval, bylo najít zp ˚usob,jakým vnitˇrnˇev pluginu re- prezentovat RDF trojice. Zvláštˇepro zpracování vˇetšíchRDF graf ˚uje vhodné používat de- dikované struktury. Samotné uložení trojice je triviálnˇemožné napˇríkladdo pouhého pole, ovšem specializované typy poskytují škálu pˇreddefinovanýchoperací. Od exportu do r ˚uz- ných serializací RDF (serializace je vyjádˇrenídefinované posloupnostmi nul a jedniˇcek– tedy v podstatˇeuložení do konkrétního souboru nˇejakéhoz typ ˚uRDF vyjádˇrení)po správu jmenných prostor ˚uuvnitˇrRDF grafu. Využívám standardní knihovny RDFlib1 pro Python ve verzi 2.4 ke skládání graf ˚usouvisejících RDF tvrzení. Vytvoˇrenégrafy potom slouží pˇre- devším k pˇredávánísémantických informací mezi jednotlivými moduly, ze kterých se plu- gin fyzicky skládá.

1. RDFlib:

32 6.2. POUŽÍVANÉ ONTOLOGIE

RDFlib však bohužel neobsahuje žádný zp ˚usob,jak by mohla komunikovat pˇrímose ser- verem Sesame (webová aplikace openrdf-sesame poskytuje HTTP rozhraní na bázi pro- tokolu 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ˇreosvˇedˇcila. Její název je RDFAlchemy2. Použil jsem její dva moduly sesame2 a sparql. Aˇckolivjejí schopnosti nejsou kv ˚uli krátkému vývoji bohaté, vytvoˇrení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ˇeprocházet. Krátkou ukázku pˇreposlánídotazu k sémantickému úlo- žišti pˇredkládánásledující pˇrí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ˇridávatjazykem SPARQL (v dobˇevývoje Se- same 2.3 nepodporoval metodu HTTP PUT pro pˇridáváníRDF dat). Proto pˇridávánínových sémantických dat do úložištˇeˇrešímnásledovnˇe:RDF data jsou pˇrevedenado XML formátu a standardní souˇcástPythonu, knihovna urllib, otevˇreHTTP spojení s úložištˇema za- šle data ve formátu, kterému Sesame rozumí. V dokumentaci tento zp ˚usobzmínˇennení, ovšem jedná se o jednoduché XML, které jsem získal odchytáváním paket ˚upˇrispojení mezi openrdf-workbench a openrdf-sesame. Samostatnou otázkou je práce s ontologiemi a jejich výbˇer. Ta je souˇcástíširší analýzy jejich schopností, a proto je pˇredstavímv samostatné sekci.

6.2 Používané ontologie

Peˇclivývýbˇerontologií je velmi d ˚uležitý.Ovlivˇnujínapˇríkladmožnou návaznost na další projekty. V závorce za názvem ontologie uvádím také prefix jmenného prostoru, který v Se- mantic Extension používám. Úplnˇekompletní pˇrehledpoužitých ontologií i s odkazy na je- jich specifikace je k dispozici také v pˇrehleduv PˇrílozeD. Friend Of A Friend (foaf): FOAF je ontologie zamˇeˇrenána popis lidí a jejich vztah ˚u. Dovoluje uchovávat mnoho základních i pokroˇcilýchatribut ˚u,které mohou pˇríslušetoso- bám. Ze základních udává pochopitelnˇejméno, pˇríjmení,e-mailovou adresu. . . , z pokroˇci- lých napˇríkladumožní zadat fotku, webovou stránku práce, školy, aktuální projekty atd. Velký význam pˇrisuzujii možnosti uchovávat relaci "znát nˇekoho"mezi lidmi. Díky ní se mohou tvoˇritgrafy navzájem se znajících lidí a vytváˇrettak malé sociální sítˇe.

2. RDFAlchemy:

33 6.2. POUŽÍVANÉ ONTOLOGIE

Description Of A Project (doap): Ontologií pro popis projektu nebo jeho vývoje jsem na- lezl víc. DOAP se mi zdál vhodný jednak kv ˚ulijeho rozšíˇrenostia také návaznosti na ostatní standardizované produkty (FOAF, Dublin Core apod.). Navíc je zamˇeˇrentaké na open source vývoj – a pˇredpokládáse, že software vyvíjený na Fakultˇeinformatiky v rámci jmenovaných pˇredmˇet˚ua projekt ˚ubude také otevˇrený.DOAP a FOAF jsou dvˇenejd ˚uležitˇejšía nejˇcastˇeji používané ontologie, které v Semantic Extension figurují. Dublin Core (dc a další): Dublin Core Metadata Initiative je standard pro popis meta- dat. Hodí se výbornˇepro popis dokument ˚u.Jím definované atributy popisují název, autora, URL dokumentu atd. V projektu Semex je mínˇenhlavnˇek popisu použité literatury u jed- notlivých vytváˇrenýchprojekt ˚u.M ˚užeovšem doplˇnovatnapˇríkladtaké informace k wiki stránkám. WikiOnt (wiki): Semantic Extension obsahuje také správu wiki stránek. Rozšíˇriljsem i ji o podporu pro sémantiku pˇresúložištˇeSesame. V sémantickém úložišti jsou k projekt ˚um, lidem, událostem i dalším objekt ˚umuloženy také objekty wiki stránek, které se jim vˇenují. Tyto vztahy jsou zaneseny právˇepoužitím ontologie WikiOnt. Ta obsahuje tˇrídypro ˇclánek, kategorii, obrázek, odkaz i text wiki stránky. A napˇríkladautora wiki stránky odkazuje pˇres Dublin Core – wiki:http://purl.org/dc/elements/1.1/creator. Lze proto jedno- duše zjišt’ovat napˇríklad,které objekty jsou odkazovány na jakých wiki stránkách. Detail ˚um ke správˇewiki stránek se budu vˇenovati v dalším textu. The Event Ontology (event): Pro události jsem nalezl malou ale šikovnou a ontologii Event Ontology. Je vhodná k vytváˇreníudálostí r ˚uznéhotypu; v pˇrípadˇee-learningu napˇrí- klad r ˚uznýchsemestrálních milník ˚u,konferencí a sch ˚uzek,obhajob projekt ˚ua podobnˇe.Vy- užívá i dalších zde uvedených ontologií pro zaznamenání nˇekterýchatribut ˚u– ˇcasua místa sch ˚uzkynebo události, jejích úˇcastník˚u,tématu i výstupu. WGS84 Geo Positioning (geo): Tato ontologie byla pˇridánapˇredevšímproto, aby do- vedla zaznamenat místa pro objekty typu Event (viz pˇredchozíontologie). K objektu nˇeja- kého zemˇepisnéhomísta dovede pˇridatatributy oznaˇcujícíjeho pˇresnoupolohu. Pˇredevším zemˇepisnoudélku a šíˇrku.Další atribut zaznamená i nadmoˇrskouvýšku. An OWL Ontology of Time (date): Velice komplexní (a komplikovaná) ontologie za- bývající se ˇcasem.Umožˇnujeuchovávat datum, ˇcas,a to i ve formˇeinterval ˚u.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 de- finicemi, ovšem o ontologii v pravém slova smyslu se nejedná. Potˇrebovaljsem zaznamenat nˇekteréskuteˇcnosti,které nebyly ostatními použitými ontologiemi definovány a nepodaˇrilo se mi najít jiné vhodné. Proto se uživatel pluginu setká se zdrojem pˇríslušícímtéto ontologii pouze ve dvou pˇrípadech:

• semex:bib

• semex:uritype

Oba tyto zdroje se používají v RDF trojici na místˇepredikátu. semex:bib je používám pro oznaˇcenískuteˇcnosti,že v trojici tvoˇríobjekt položku použité literatury pro uvedený

34 6.3. POUŽITÍ A FUNKCE PROGRAMU subjekt. semex:uritype se v projektu používá ve spojitosti s oznaˇcovánímdokument ˚u. K tomuto kroku bylo potˇrebnésáhnout proto, že neexistuje žádná tˇrída dokument v použi- tých ontologiích. NapˇríkladDublin Core dovede oznaˇcovatautora a další vlastnosti doku- ment ˚u,ovšem tyto atributy obsahují i wiki stránky. Proto je používán tento predikát, zatím výhradnˇeve spojení s objektem Document, k identifikaci objekt ˚utypu 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 ˚u– projekt používající literaturu.

6.3 Použití a funkce programu

Semantic Extension jako rozšíˇreníDeep Thought v podmínkách Fakulty informatiky je cí- lena pˇredevšímna tˇritypy uživatel ˚u.Jeden jsou náhodní návštˇevnícivˇenujícíse výhradnˇe prohlížení prezentací vystaveného software. Na druhé stranˇestojí studenti z fakulty, kteˇrí se zapojují do vývoje na wiki zmínˇenýchprojekt ˚u,a jejich vedoucí. Typické pˇrípadyužití tˇechtoskupin ukazuje následující diagram 6.3.

Obrázek 6.3: Diagram zobrazující pˇrípadyužití.

Semex nabízí nˇekolikužiteˇcných funkcí – ve wiki je to kontextové menu se sémantickými informacemi, kalendáˇr,automatické aktuální seznamy, možnost pˇridávat,mazat nebo mˇe-

35 6.4. VNITRNÍSTRUKTURAPLUGINUˇ nit tvrzení v úložišti pomocí nˇekolikakliknutí. Administraˇcnísekce poskytuje Sémantické vyhledávání (využívané napˇríkladi v projektu DBPedia). Po zadání SPARQL dotazu vrácí pˇrehlednoutabulku výsledk ˚u.Podobnou funkci obsahuje i pˇrímo openrdf-workbench. Stejným zp ˚usobemfungují také Reporty. Od pˇredchozípopisované aplikace se liší tím, že dotyˇcnéSPARQL dotazy jsou již uloženy v konfiguraci. Jedním kliknutím myši je tedy možno spouštˇetˇcastopoužívané dotazy. Napˇríkladse dá vytvoˇritreport rychle zobrazu- jící, které projekty prošly obhajobou atd. Pˇrikaždém spuštˇenítohoto reportu vrátí aktuální sémantické údaje. Bˇehemvývoje jsem dbal na ˇcistotunávrhu a cílil jsem na jednoduchost a pˇrímoˇcarost ovládání. Tím spíše, že projekt se snaží sémantiku pˇrinésti obyˇcejnýmuživatel ˚um.Držel jsem se také zásad tvorby pˇrístupnéhowebu a ovˇeˇrenýmpostup ˚umpˇrivytváˇreníuživatel- ského prostˇredí. Rozšíˇreníneobsahuje pˇrímoupodporu pro vedení kurzu mimo vytváˇrenía editaci ob- jekt ˚upodporovaných typ ˚u,avšak nabízí jednoduše upravitelnou platformu pro rozšiˇrování. K zapojení Semantic Extension do výuky pom ˚užetaké import csv souboru s definicemi pro- jekt ˚ua jejich ˇrešitel˚udo systému. Ten je vytvoˇrenadministraˇcníaplikací pro vedoucí kurzu v Informaˇcnímsystému Masarykovy univerzity.

6.4 Vnitˇrnístruktura pluginu

Semantic Extension se sestává ze tˇrízákladních softwarových komponent. Ty jsou pˇrespo- skytované API navázány na architekturu systému Trac, respektive Deep Thought. Nejvˇetší ˇcástaplikaˇcnílogiky je uchována v hlavním pluginu SemanticExtensionPlugin. Dále je souˇcástírozšíˇrenímakro Semex pro zobrazování sémantických informací ve wiki strán- kách. Další makro SemexCommon je pomocné a zabezpeˇcujesprávné a efektivní zobrazo- vání sémantických dat na wiki. Vizuální popis struktury subsystému a komunikace mezi jednotlivými souˇcástmije vidˇetna následujícím schématu 6.4. Za externí volnˇevázanou komponentu rozšíˇreníbychom mohli považovat i úložištˇeSe- same 2, které je jeho neoddˇelitelnousouˇcástí.

6.4.1 Hlavní komponenta SemanticExtensionPlugin

Primárním úkolem této souˇcástije zaregistrovat se do systému plugin ˚uTracu (tím se do- sáhne mimo jiné zobrazení odkazu na úvodní stránku rozšíˇrenív hlavní nabídce) a zpra- covávat HTTP požadavky, které jsou na Semantic Extension bˇehemprovozu kladeny. Poté vrací odkazy na požadované webové šablony spoleˇcnˇes dalšími získanými daty (výsledky dotaz ˚uz komunikace se serverem Sesame 2 apod.). Tyto informace pˇredávájádru Tracu, který pˇresš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ˇrestuto komponentu ˇrídísprávci a pˇrihlášeníuživatelé také administraci rozšíˇrení: hlavní stránka (dashboard) obsahuje odkazy na sémantické formuláˇrepro vytváˇreníobjekt ˚u základních typ ˚u.Tyto objekty m ˚užedotyˇcnýtaké procházet podle jejich kategorie, upravo-

36 6.4. VNITRNÍSTRUKTURAPLUGINUˇ

Obrázek 6.4: Diagram zobrazující komponenty, které tvoˇríSemantic Extension a jednotlivá rozhraní mezi nimi.

vat je nebo mazat. Pro vyuˇcujícíkurz ˚uje pˇripravenafunkce importu semestrálních projekt ˚u asociovaných s lidmi, kteˇríse na nich podílejí. Rídíˇ i správu výše popsaných funkcí Sémantické vyhledávání a Reporty, procházení jmenných prostor ˚uontologií a nastavení aktivního úložištˇe.Dále toto administraˇcníroz- hraní zaˇrizujeještˇesprá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 ˚ulineexistenci API pro wiki v dˇrívˇejšíchver- zích (ani v Deep Thought). Dovede zobrazit seznam stránek a smazat je i s RDF daty, která jsou k nim pˇriˇrazenav sémantickém úložišti. Spravuje wiki stránky, jejichž jméno zaˇcíná prefixem Semex: (pˇrivytváˇreníobjekt ˚upomocí sémantických formuláˇr˚uje možné vybrat, zda se má dotyˇcnémuobjektu vytvoˇriti vlastní wiki stránka s tímto prefixem). Celkový rozsah této komponenty je pˇribližnˇedva a p ˚ultisíce ˇrádk˚uzdrojového kódu jazyka Python. Její souˇcástíje nˇekoliksoubor ˚use zdrojovými kódy. Napojení na Trac a zpra- covávání požadavk ˚uje obsaženo v hlavním souboru semex.py, propojení se serverem Se- same v sesame.py, vnitˇrnízpracování RDF graf ˚ua jejich pˇrípravapro odeslání do úložištˇe v souboru rdftools.py. Další moduly obsahují funkce používané pˇripˇridávánía editaci jednotlivých typ ˚uobjekt ˚u(lidé, projekty, dokumenty apod.). V kódu jsou také zaˇclenˇenyˇrádkyzaznamenávající chování a pr ˚ubˇehpluginu. Používá se standardní záznamové (logovací) rozhraní Tracu, výstup je tedy pˇresmˇerován dle jeho pˇríslušnéhonastavení. Obsah textových ˇretˇezc˚uje pˇripravenk lokalizaci, která ovšem fun- guje pouze od verze Trac 0.12 a výš. Webové stránky pˇripravenépro použití v Semantic Extension jsou uloženy ve formˇeHTML šablon pro Genshi.

37 6.4. VNITRNÍSTRUKTURAPLUGINUˇ

Obrázek 6.5: Hlavní stránka rozšíˇrenízakomponovaná do Deep Thought.

6.4.2 Makro SemexCommon Pomocné makro SemexCommon je nejjednodušší komponentou. Potˇrebajeho zaˇclenˇenívy- plynula z d ˚uvodupoužívání vlastních soubor ˚us kaskádovými styly k formátování dopl- ˇnujícíchprvk ˚una stránce. Dále také obstarává definici funkcí jQuery pro otevírání kontex- tového menu u sémanticky anotovaných pojm ˚u(používá je makro Semex). Tyto informace jsou potˇrebana každé wiki stránce pouze jednou. Proto je pˇripoužití maker Semex zapo- tˇrebíjednou na stránku vložit také jedno makro SemexCommon. Syntaxe tohoto makra je triviální: [[SemexCommon()]]

6.4.3 Makro Semex Stará se o zobrazování sémanticky anotovaných pojm ˚una stránkách ve wiki a výmˇenu informací s hlavní komponentou SemanticExtensionPlugin. Pro svoji práci vyžaduje makro [[SemexCommon()]] vložené na stejnou stránku. Spoleˇcné pro všechny typy vý-

38 6.4. VNITRNÍSTRUKTURAPLUGINUˇ stup ˚utohoto makra je šedé zabarvení na pozadí vygenerovaného textu. Tím se vizuálnˇe odlišuje od statického obsahu wiki stránky. Vložené makro m ˚uženabývat nˇekolikatyp ˚u:

• query – do definice tohoto makra se zadává SPARQL dotaz. Výsledek tohoto do- tazu se poté zobrazí na wiki stránce jako seznam sémantických objekt ˚u.Celá syntaxe tohoto typu vypadá následovnˇe: [[Semex(query, dotaz bez prefix˚u,návratový typ, html vloženo

predˇ makro, predˇ položku, za položku, za makro)]]

Je možné tak pohodlnˇena stránce zobrazit seznam napˇr.všech wiki stránek, všech lidí, projekt ˚u.. . vyhovujících omezením zadaným ve SPARQL dotazu. Pro pokroˇci- lejší formátování je možné pˇridati HTML kód urˇcenýposledními ˇctyˇrmi (nepovin- nými) argumenty. Napˇríkladpro seznam všech projekt ˚uoddˇelenýchnovým ˇrádkem se použije: [[Semex(query, SELECT ?vystup ?objekt WHERE {?objekt rdf:type

doap:Project; doap:name ?vystup},project,,,
,)]]

• allabout – toto makro z úložištˇezjistí takˇrkavšechny dostupné informace o zada- ném objektu. Výstup se zformátuje jako celá složitá wiki stránka, aˇckolivve zdrojo- vém textu bude jenom zápis tohoto krátkého makra. Vypíše tvrzení, ve kterých tento objekt vystupuje, jeho vlastnosti, k nˇemuvztažené objekty a objekty s ním podobné. Vypsané makro m ˚uževypadat napˇríkladtakto: [[Semex(allabout, event:informacni_schuzka)]]

• calendar – zobrazí jednoduchý kalendáˇrs nadcházejícími událostmi.

• info – výstup správného použití tohoto makra je vyskakovací menu na oznaˇceném pojmu. Toto kontextové menu dovoluje podle svého druhu zobrazit r ˚uznédoplˇnu- jící informace (odkaz na wiki stránku objektu, tvrzení v úložišti, kterých se objekt úˇcastní.. . ). Napˇríkladjde-li o pojem události, zobrazí mimo jiné seznam jejích úˇcast- ník ˚ua místo a datum konání. U objektu oznaˇcujícíhoˇclovˇekazase jeho e-mailovou adresu. Každý pojem je také oznaˇcenikonkou dle jeho typu, jedná-li se o projekt, ˇclovˇeka,událost. . . Syntaxe zápisu makra vypadá následovnˇe: [[Semex(druh, Zobrazený text na stránce ,identifikator_objektu)]]

Druh je jeden z následujících:

– person – project – event

39 6.5. NASAZENÍ A DALŠÍ ROZVOJ

– doc – geo – info – pro obecný pojem

Protože m ˚užebýt tˇežkési zapamatovat pˇresnou syntaxi maker, vytvoˇriljsem také pomocí knihovny jQuery plovoucí okno, které je uživateli automaticky zobrazeno pˇrieditaci wiki. Obsahuje pr ˚uvodcepomáhajícího pˇrivytváˇreníjednotlivých maker. Pomocí jiného dialogového okna je možné pˇrímoz wiki stránek upravovat tvrzení v úlo- žišti, není tedy nutno se pˇrepínatdo administraˇcnísekce. Pro tuto ˇcinnostje však potˇrebné pˇrihlášení. D ˚uležitáje skuteˇcnost,že každé makro tohoto typu pˇridanéna wiki stránku komunikuje pˇrigenerování stránky synchronnˇes úložištˇem.Z toho vyplývá, že ˇcímvíce maker stránka obsahuje, tím pomaleji se bude v prohlížeˇcinaˇcítat.Konkrétnˇev Deep Thought však ome- zuje uživatele až pˇriˇrádovˇedesítkách výstup ˚umakra na jedné stránce. VizuálnˇepˇredstavujeSemantic Extension pˇrílohaE, která obsahuje nˇekoliksnímk ˚uob- razovek.

6.5 Nasazení a další rozvoj

První pˇríkladyvyužití pluginu se už objevily, protože byl v pr ˚ubˇehuvývoje nasazen na webo- vou aplikaci Deep Thought bˇežícína URL http://kore.fi.muni.cz:5080/deep. Spo- lupracoval jsem pˇritompˇredevšímse Silvií Petrovou3, která pro svou bakaláˇrskoupráci vˇenujícíse projektu Fresnel (vizualizace ontologických pojm ˚u)používala ontologie v mém úložišti a já testoval Semex na jí vložených datech. Spoleˇcnˇejsme synchronizovali a disku- tovali ˇcastopoužívané vlastnosti objekt ˚uz FOAF a DOAP, které jsme do našich projekt ˚u zahrnuli. To umožnilo kompatibilitu mezi tˇemitonástroji a jejich další možnou spolupráci. V projektu Sémantický e-learning byla dále pˇripravovánaSOAP rozhraní pro komuni- kaci mezi jednotlivými souˇcástmirámce ve stylu servisnˇeorientované architektury (SOA). Zmínˇenározhraní však ještˇenejsou definována. Poté bude možné rozšíˇritSemantic Ex- tension (konkrétnˇemodul sesame.py) o napojení na tuto strukturu, a tak jej zapojit i do této architektury. Jak jsem však naznaˇcovalv pˇredchozíchkapitolách, velkou pˇrekážkoujsou rozdíly mezi Deep Thought a Tracem, které se budou dále prohlubovat. I m ˚ujplugin už nˇekteréz nich postihly. Napˇríkladspráva wiki stránek je dostupná pouze pro Trac nové verze. Také loka- lizace byla v projektu Deep Thought importována zvlášt’ z testovací vedlejší vˇetve,protože ji hlavní vˇetevvývoje v roce 2007 nemˇelapˇripravenou.Byla oficiálnˇepˇridánaaž do Tracu 0.12, který vyšel pˇrednedávnem. Semantic Extension je však vnitˇrnˇepro lokalizaci pˇripra- ven, používá pro ni stejnˇejako Deep Thought a souˇcasnýTrac standardní nástroj Babel4

3. Osobní univerzitní stránka: 4. Edgewall Babel:

40 6.5. NASAZENÍ A DALŠÍ ROZVOJ generující textové lokalizaˇcní po a následnˇebinární mo soubory. Prozatím je dostupná loka- lizace anglická a ˇceská. Po pˇríchoduSesame verze 3 bude navíc možné vyhledávat RDF data transparentnˇe 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 ˚upracujících se sémantikou dat r ˚uznorodých domén. Rozvoji pluginu nebrání ani jeho licence. Trac je vydáván pod mírnˇemodifikovanou open source licencí BSD, Semantic Extension je licencován pod GNU GPL 3. Veškeré zdro- jové kódy jsou pˇrístupnétaké na hostingu pro otevˇrenéprojekty SourceForge – . Ke zdrojovým kód ˚umaplikace je automaticky vygenerována HTML nápovˇedapomocí Epydoc uchovaná v podadresáˇri doc archívu práce.

41 Kapitola 7 Závˇer

Pˇredtˇremilety jsem ve své bakaláˇrsképráci byl zklamán z tristního stavu software pracu- jícího se sémantikou. Po analýze provedené pˇripˇrípravˇetéto práce jsem mnohem optimis- tiˇctˇejší.Na první pohled je znatelné, že se vývoj v této oblasti nezastavil. Ba právˇenaopak se objevují produkty pˇrinášejícíopravdovou užiteˇcnost. Výzkum provádˇenýv rámci analýzy souˇcasnéhostavu sémantických wiki ukazuje, že smˇerpreferování uživatelské pˇrívˇetivostia praktické pˇrínosnostinad dodržováním všech formálních koncept ˚use vyplácí a stále více prosazuje. Snad také proto není náhoda, že mezi nejlepší projekty sémantických wiki patˇrítaké ty, které se místo obecného zamˇeˇrenívˇenují jedné doménˇea dovedou její potenciál naplno využít. Jedná se o princip podobný filozofii operaˇcníhosystému Unix tvrdící, že program by mˇeldˇelatjednu vˇeca mˇelby ji dˇelatdobˇre. Podpora vývoje software je jedna z ˇcinností,kde se dá sémantika úspˇešnˇezakompono- vat. Právˇezde se dá dokázat, že vize sémantického webu je sice ještˇehodnˇevzdálená, ale její principy nejsou hodny zavržení. Praktická ˇcástpráce ukázala, kde m ˚užesémantika pro- jevit své výhody a kde m ˚užepomoci pˇrivýuce nebo prohlížení webu. Technologie které jsem bˇehemvývoje používal ještˇenejsou zralé na ostré nasazení na Internetu, ale pro lo- kální použití, napˇríkladprávˇepro e-learning v rámci fakulty nebo univerzity, zaˇcínajíbýt dostaˇcující. Pˇrínostéto práce spoˇcíváv nˇekolikaaspektech. Jde jednak o další otestování základních technologií nutných pro sémantický web z hlediska jejich použitelnosti pˇriostrém nasazení (zejména úložištˇeSesame 2). Dále jsem provedl výbˇervhodných ontologií pro používání ve vzdˇelávacíchprocesech, pˇredevšímDOAP a FOAF. Projekt také ukázal, že podporu sé- mantiky lze pˇridati do existujících produkt ˚ua pˇriblížittak sémantický web koncovým uži- vatel ˚um. O zájmu o zmiˇnovanýnový pˇrístup(top-down model) k sémantickým technologiím svˇedˇcíi prezentace celého projektu Sémantický e-learning i této diplomové práce samo- statnˇena odborných konferencích DiVAI (Distance Learning in Applied Informatics)[10] na Slovensku a World Summit on the Knowledge Society[11] v Reckuˇ v roce 2010. Každo- pádnˇese pˇredsémantickými technologiemi otevírá široká, ale také dlouhá cesta.

42 Literatura

[1] Pitner, T.: E-learning na Masarykovˇeuniverzitˇe In Zpravodaj ÚVT MU. ISSN 1212- 0901, 2002, roˇc.XIII, ˇc.2, s. 10-14., [cit. 2010-12-07]. Dostupný z WWW: . 1 [2] Berners-Lee, T.: The future of the Web In LCS 35 Anniversary, 1999, [cit. 2010-11- 24]. Dostupný z WWW: . 2 [3] Lyons, J.: Semantics, Cambridge : Cambridge University Press, ISBN 0521291658, 371 s., 1993, [cit. 2010-10-07]. Dostupný z WWW: . 3 [4] Cížek,ˇ P.: Úložištˇeznalostí, Masarykova univerzita, 2007, . 2, 3.4.2 [5] Peregrin, J.: Co je sémantika? In P. Sousedík (ed.): Jazyk – logika – vˇeda,Filosofia, Praha, 2005, s. 51-62, [cit. 2010-09-25]. Dostupný z WWW: . 3.1 [6] Gómez-Pérez, A. a Corcho, O.: Ontology Languages for the Semantic Web In IEEE Inteligent Systems (17), s. 54-60, 2002, [cit. 2010-10-17]. Dostupný z WWW: . 3.2 [7] Antoniou, G. a Franconi, E. a van Harmelen, F.: Introduction to Semantic Web Onto- logy Languages In Eisinger, N. and Maluszynski, J. (Ed.), Reasoning Web, First Inter- national Summer School 2005, Malta. Springer., [cit. 2010-10-07]. Dostupný z WWW: . 3.2 [8] Noy, N. a McGuinness, D.: Ontology Development 101: a Guide to Creating Your First Ontology, Technical Report SMI-2001-0880, Stanford Medical Informatics, 2001., [cit. 2010-11-01]. Dostupný z WWW: . 3.2 [9] Dietzold, S. a Auer, S.: Access Control on RDF Triple Store from a Seman- tik Wiki Perspective In Scripting for the Semantic Web Workshop at 3rd Eu- ropean Semantic Web Conference (ESWC), 2006, [cit. 2010-10-11]. Dostupný z WWW: . 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 infor- matics, conference proceedings, 1. vyd. Nitra : Constantine the Philosopher University in Nitra, 2010, od s. 67-72, 6 s. ISBN 978-80-8094-691-3 . 4.1, 4.3, 7

43 [11] Talaš, J. a Gregar, T. a Pitner, T.: Semantically Enriched Tools for the Knowledge Soci- ety: Case of Project Management and Presentation. In Knowledge Management, Infor- mation Systems, E-Learning, and Sustainability Research, Third World Summit on the Knowledge Society, WSKS 2010, Corfu, Greece, September 22-24, 2010. Proceedings, Part I, 2010. 4.3, 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. 379-384, 6 s, 2009. 5.1

[13] Gregar, T. a Pospíšilová, R. a Pitner, T.: DEEP THOUGHT Web based System for Mana- ging and Presentation of Research and Student Projects. In CSEDU 2009 – Proceedings of the first International Conference on Computer Supported Education. Lisboa, Por- tugal, INSTICC – Institute for Systems and Technologies of Information, Control and Comunication, 2009. od s. 443-447, 5 s. ISBN 978-989-8111-82-1. 3.6.1

[14] Friedmanský, M.: Systémy pro správu více projekt ˚u, Masarykova univerzita, 2007, . 3.6.1

[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. 585–594, 9s. ACM, 2006., [cit. 2010-20-11]. Dostupný z WWW: . 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. 2010-23-11] Do- stupný z WWW: . 4.3

44 PˇrílohaA Postup nasazení Semantic Extension

Postup by se dal rozdˇelitdo nˇekolikazákladních ˇcástí:

• Instalace a konfigurace úložištˇeSesame 2

• Instalace aplikace Trac

• Vytvoˇreníprostˇredíprojektu v Trac

• Pˇridánísémantického rozšíˇrenía konfigurace Tracu

Trac, respektive Deep Thought, je multiplatformní aplikace schopná bˇežetna Windows i Linuxu (jako dvou nejˇcastˇejipoužívaných serverových systémech). Nicménˇe,protože já jsem bˇehemvývoje používal linuxovou distribuci openSUSE 11.3, budu postup vysvˇetlovat právˇena tomto operaˇcnímsystému. V ostatních linuxových distribucích by se nemˇelpostup zásadnˇelišit, je snad nutné vzít do úvahy jen jiného správce balíˇck˚unebo si v pˇrípadˇepo- tˇrebyTrac (popˇr.jiné souˇcásti)zkompilovat ze zdrojových kód ˚u.Ani postup pro Windows se nebude pˇrílišlišit, staˇcíse držet konvencí tohoto operaˇcníhosystému. Sesame 2 je psán v jazyku Java a bˇeží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ˇcínainstalovat balíˇcky tomcat a tomcat-manager. Výchozí používaný port je 8080, po pˇripojenína stroj se spuštˇenýmTomcatem nalezneme na uvítací stránce i odkaz na Tomcat Manager. Pro pˇrístupk nˇemuje tˇrebav konfiguraci (v adresáˇri / etc/tomcat6) zadat do roli správce Tomcatu:

K zasazení aplikace Sesame staˇcísoubory s webovými archívy stažené z oficiálních stránek projektu zkopírovat do adresáˇre /srv/tomcat6/webapps, budou zpracovány automa- ticky po restartu démona Tomcat. Pˇrístupnébudou dvˇeslužby: http://localhost:8080/openrdf-workbench http://localhost:8080/openrdf-sesame

45 A.2. INSTALACE TRAC 0.12 A JEHO SPUŠTEN͡

Setkal jsem se také s problémem, že bylo tˇrebavytvoˇritmanuálnˇeadresáˇr /usr/share/ tomcat6/.aduna/openrdf-sesame/logs s právem zápisu pro ukládání log ˚uSesame aplikace (jinak bude proces hlásit Internal Server Error).

A.2 Instalace Trac 0.12 a jeho spuštˇení

Trac 0.12 potˇrebujeve Vašem systému nˇekolik prerekvizit. Mnoho ˇcasuušetˇríutilita easy_ install (nejspíše bude souˇcástíbalíˇcku python-setuptools) – staˇcíjí dát jako para- metr požadovaný balíˇcekpro Python a jeho nejnovˇejšíverze bude stažena a instalována. Pˇres easy_install je tˇrebadoinstalovat simplejson, rdflib a rdfalchemy. Nyní opust’me easy_install a klasickým zp ˚usobemnainstalujete vývojové nástroje pro Py- thon 2.6 (python-devel) a vazby mezi Pythonem a Subversion (python-subversion). Poté je možné Trac používat. Vytvoˇreníprostˇredípro projekt se provede pˇríkazem: trac-admin /cesta/k/adresari/ initenv

Propojení mezi Tracem a Subversion je téma pˇresahujícítuto práci a není pro funkˇcnost pluginu potˇreba.Je popsáno v dokumentaci k Trac 0.12. 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 ˚u.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ˇejzapojit rozšíˇreníSemantic Extension. Bˇehemvývoje Trac umožˇnujeprogramátor ˚umzobrazovat zmˇenyve zdrojových kódech okamžitˇe.Ovšem pro ostré nasazení je pohodlnˇejšízdrojové kódy pluginu trans- formovat do souboru egg (je principem i strukturou podobný balíˇck˚um jar jazyka Java). Postup popisuje dokumentace. Pˇredzapojením pluginu má dotyˇcný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ˇri- jdou do podadresáˇre plugins

• htdocs.zip – soubory pro zobrazení webovým serverem. Obsah je tˇrebaextrahovat do podadresáˇre htdocs v hlavním adresáˇriprojektu.

46 A.3. ZASAZENÍ SEMEX DO INFRASTRUKTURY

• trac.ini.txt – soubor obsahující obsah položky footer v sekci [project], tam je potˇrebanastavit v souboru conf/trac.ini pro zobrazení plovoucího dialogo- vého okna s pr ˚uvodcemtvorby sémantických maker pˇrieditaci wiki stránek. Pozor, v této hodnotˇeje tˇrebanahradit výraz deep/master (který používá Deep Thought) cestou k aktuálnˇepoužívanému prostˇredíTracu.

Také bude tˇrebaupravit nˇekoliksekcí v trac.ini (v pˇrípadˇeDeep Thought se jedná o více konfiguraˇcníchsoubor ˚u,mezi kterými se hodnoty dˇedí).Jde o nastavení úložištˇepro plugin, o aktivaci pluginu v rámci Trac subsystému, používané prostˇredía (volitelnˇe)o pˇridání sekce pro reporty. [semexconfig] repository=http://server:5880/openrdf-sesame/repositories/repo

[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ˇen(Deep Thought bˇežípod serverem Apache 2 prostˇrednictvím mod_python), bude plugin naˇcten a bude možné jej zaˇcítpoužívat. Poslední vˇecí,kterou je tˇrebazajistit pˇrimigraci 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ˇredpokládejmeže instance Trac 0.12 využívá prostˇredí dp, Deep Thought potom prostˇredí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ˇenazajistí spuštˇeníSemantic Extension v jakémkoliv existujícím pro- jektu starších verzí Trac nebo Deep Thought.

47 PˇrílohaB Wiki systémy se sémantikou a bez ní

Mezi nejpoužívanˇejšíklasické wiki patˇrí:

• MediaWiki

• Dokuwiki

• TWiki

• TikiWiki

• socialtext.com

• JSPWiki

A nˇekterésémantické wiki:

• Semantic MediaWiki

• Ace Wiki

• KiWi

• KnowWE

• OntoWiki

• Wikidsmart

• SoftWiki

48 PˇrílohaC Sémantická úložištˇe

Seznam nˇekterýchpopulárních RDF úložišt’:

• Sesame

• Jena

• Mulgara

• Redland

• Soprano

• CubicWeb

49 PˇrílohaD Ontologie použité v Semex

Nejd ˚uležitˇejšívyužité ontologie a jejich specifikace:

• Friend Of A Friend (foaf): http://xmlns.com/foaf/0.1/

• Description Of A Project (doap): http://usefulinc.com/ns/doap#

• Dublin Core (dc . . . ): http://purl.org/dc/elements/1.1/

• WikiOnt (wiki): http://sw.deri.org/2005/04/wikipedia/wikiont.owl#

• The Event Ontology (event): http://purl.org/NET/c4dm/event.owl#

• WGS84 Geo Positioning (geo): http://www.w3.org/2003/01/geo/wgs84_pos#

• An OWL Ontology of Time (date): http://www.w3.org/2006/time#

50 PˇrílohaE Snímky obrazovek

Tato pˇrílohav krátkosti vizuálnˇepˇredstavínˇekolikfunkcí Semantic Extension:

Obrázek E.1: Uživatel m ˚užepˇridávatdata do úložištˇepˇrímoz wiki. V pozadí také makrem automaticky vygenerovaná wiki stránka na základˇesémantických informací.

51 E.SNÍMKYOBRAZOVEK

Obrázek E.2: Ukázka editace objektu v administraˇcnísekci.

Obrázek E.3: Zdrojový text wiki stránky doplˇnovanéo sémantická data.

52 E.SNÍMKYOBRAZOVEK

Obrázek E.4: K vytváˇrenísyntaxe maker lze s úspˇechempoužít uživatelsky pˇrívˇetivéhopr ˚u- vodce.

Obrázek E.5: Zapojení pluginu Semex do instalace Deep Thought. Wiki stránka také ukazuje jednu z vlastností – automaticky tvoˇrenéseznamy r ˚uznýchtyp ˚uobjekt ˚u.

53 PˇrílohaF Struktura archívu práce

Výsledky této práce jsou prezentovány také v archívu Informaˇcníhosystému MU. Jeho ob- sah je následující:

• Tato práce ve formátech PDF a Docbook, obrázky v samostatných souborech.

/thesis

• Zdrojové kódy vytvoˇrenéaplikace.

/src

• PˇripravenéprostˇredíTracu s nachystaným pluginem.

/example_env

• Soubory potˇrebnépro pˇrípravudalších lokalizací.

/locale

• Dokumentace k Semantic Extension.

/doc

• Distribuce Semantic Extension pro Deep Thought.

/dist

54