1 Projekt do předmětu VPD Sémantický web 2009 / 2010 Ing. Jaroslav Dytrych, Fakulta informačních technologií Vysoké učení technické v Brně2 Obsah 1 Úv...
V t´eto pr´ aci se budu zab´ yvat s´emantick´ ym webem. P˚ uvodn´ı idea je zat´ım pouze ve vzd´alen´e budoucnosti a aktu´ aln´ı definice s´emantick´eho webu se od n´ı liˇs´ı. Pr´ aci tedy zaˇcnu od poˇc´ateˇcn´ı ideje v 2. kapitole, ve 3. kapitole potom uvedu souˇcasnou definici a n´ aslednˇe se ve 4. kapitole budu zab´ yvat t´ım, kde je v s´emantick´em webu s´emantika, podle kter´e je tento web pojmenov´ an. Pro s´emantick´ y web jsou velmi d˚ uleˇzit´e ontologie, coˇz jsou rozs´ahl´e sd´ılen´e datab´aze znalost´ı. Ontologiemi se budu zab´ yvat ve 5. kapitole. ˇ Sestou kapitolu jsem vˇenoval popisu nejd˚ uleˇzitˇejˇs´ıch a nejzn´amˇejˇs´ıch technologi´ı souˇcasn´eho s´emantick´eho webu. Pop´ıˇsi v n´ı z´ akladn´ı technologii s´emantick´eho webu, kterou je RDF, dotazovac´ı jazyk nad stromy se s´emantick´ ymi informacemi, jazyky pro popis ontologi´ı a dalˇs´ı technologie potˇrebn´e pro tvorbu s´emantick´eho webu. V sedm´e kapitole uvedu postup vytvoˇren´ı jednoduch´e ontologie v OWL v editoru Prot´eg´e, pˇri kter´em souˇcasnˇe vysvˇetl´ım vybran´e konstrukce dan´eho jazyka.
2
Idea s´ emantick´ eho webu
Tim Berners-Lee, Jim Hendler a Ora Lassila ve sv´em ˇcl´anku pro Scientific American prezentovali ideu s´emantick´eho webu, ve kter´e by softwarov´ı agenti na webu automaticky zpracov´avali dostupn´e informace a prov´adˇeli za lidi bˇeˇzn´e u ´kony, jako pl´ anov´ an´ı n´ avˇstˇevy u l´ekaˇre s ohledem na pl´anovan´e sch˚ uzky, hodnocen´ı l´ekaˇre, voln´e term´ıny, dopravn´ı situaci v okol´ı apod. Pˇreklad modelov´e situace z dan´eho ˇcl´anku lze nal´ezt v [17]. Pro dosaˇzen´ı dan´ ych c´ıl˚ u by bylo nutn´e, aby mˇel obsah webu dobˇre definovanou s´emantiku, coˇz umoˇzn´ı poˇc´ıtaˇc˚ um vyhodnotit v´ yznam informac´ı a vztahy mezi nimi. Softwarov´ y agent by potom s vyuˇzit´ım informac´ı na webu mohl porozumˇet“ poˇzadavku uˇzivatele a naj´ıt vhodn´e ˇreˇsen´ı dan´eho probl´emu. Z´akladem je tedy rozˇs´ıˇren´ı souˇcasn´eho webu ” o s´emantick´e informace. Probl´emem je, ˇze s´emantick´ y web se zat´ım vyskytuje pˇredevˇs´ım v akademick´em a v´ yzkumn´em prostˇred´ı. Dokud vˇetˇsina web˚ u neobsahuje s´emantick´e informace, pr´ace se s´emantikou nen´ı v ˇsirˇs´ım mˇeˇr´ıtku moˇzn´a (agent by mˇel m´ alo informac´ı pro plnˇen´ı sloˇzitˇejˇs´ıch u ´kol˚ u). Pro mnoho firem se potom zd´a investice do s´emantizace webu neperspektivn´ı. Jedn´ a se o situaci, ze kter´e je jedin´ ym v´ ychodiskem to, ˇze nˇekter´e z vˇetˇs´ıch firem nab´ıdnou produkty s vyuˇzit´ım s´emantick´eho webu, jejichˇz u ´spˇech pˇrinut´ı konkurenci k tomu, aby posunula v´ yvoj s´emantick´eho webu d´ ale. Tato situace vˇsak zat´ım nenastala a idea z v´ yˇse zm´ınˇen´eho ˇcl´anku je zat´ım pouhou viz´ı do vzd´alen´e budoucnosti.
3
Definice s´ emantick´ eho webu
Existuje mnoho r˚ uzn´ ych definic s´emantick´eho webu, kter´e odr´aˇzej´ı sp´ıˇse aktu´aln´ı stav v´ yvoje, neˇz p˚ uvodn´ı vizi. Uvedu zde struˇcnou a v´ ystiˇznou definici z [16]: S´emantick´ y web je rozˇs´ıˇren´ı souˇcasn´eho webu, ve kter´em je informac´ım d´ an ” dobˇre definovan´ y v´ yznam, kter´ y umoˇzn ˇuje l´epe spolupracovat lidem a poˇc´ıtaˇc˚ um.“ S´emantick´ y web by mˇel umoˇznit napˇr. vyhled´av´an´ı nejenom podle obsahu, ale tak´e podle popisu. Mˇel by umoˇznit vyhled´ av´ an´ı ˇcl´ ank˚ u od urˇcit´eho autora (rozpoznat je od ˇcl´ank˚ u s citacemi autora) apod. Z´akladem pro umoˇznˇen´ı t´eto funkcionality je moˇznost anotov´ an´ı informac´ı ve str´ank´ach. Pokud napˇr. anotujeme jm´eno autora ˇcl´anku pˇr´ısluˇsnou anotac´ı, m˚ uˇze b´ yt toto jednoznaˇcnˇe identifikov´ ano, nebude moˇzn´a z´amˇena s citac´ı a bude moˇzn´e vyhled´avat ˇcl´ anky od urˇcit´eho autora. Anotace lze povaˇzovat za urˇcit´a metadata, kter´a musej´ı b´ yt dobˇre a jednotnˇe definov´ana. Budeme-li m´ıt definovan´e i vztahy mezi metadaty, bude moˇzn´e z informac´ı odvozovat dalˇs´ı informace na z´akladˇe metadat a vztah˚ u mezi nimi. Pokud vˇsak vztahy nebudou urˇcit´ ym zp˚ usobem omezen´e, odvozov´an´ı m˚ uˇze b´ yt pˇr´ıliˇs n´aroˇcn´e, nebo m˚ uˇze vlivem velk´e komplexity a sn´ıˇzen´ı pˇrehlednosti doj´ıt k zaveden´ı nepravdiv´e (chybn´e) informace a z t´e lze potom dle matematick´e logiky odvodit cokoliv, coˇz zp˚ usob´ı zahlcen´ı datab´aze s odvozen´ ymi informacemi nesmysly. Velmi d˚ uleˇzit´ a je tedy definice metadat, kterou se budu zab´ yvat d´ale v t´eto pr´aci.
4
S´ emantika v s´ emantick´ em webu
S´emantiku lze rozdˇelit na [24]: 1. implicitn´ı, 2. explicitn´ı a neform´ aln´ı 3. explicitn´ı a form´ aln´ı pro zpracov´ an´ı ˇclovˇekem
3
4. explicitn´ı a form´ aln´ı pro zpracov´ an´ı strojem Implicitn´ı s´emantika je pouze v mysl´ıch lid´ı. V´ yznam r˚ uzn´ ych term´ın˚ u je vˇseobecnˇe zn´am´ y a pro vˇsechny shodn´ y (napˇr.: adresa). Nev´ yhodou je, ˇze r˚ uzn´e term´ıny mohou b´ yt interpretov´any r˚ uznˇe dle prostˇred´ı, kultury, n´ arodn´ıch zvyklost´ı apod. Napˇr. datum 1.2.2010“ m˚ uˇze b´ yt ˇspatnˇe interpretov´ano, protoˇze nˇekdo jej interpretuje jako 1. u ´nora ” a nˇekdo jako 2. ledna. Implicitn´ı s´emantika je vˇsudypˇr´ıtomn´a a pro nezamˇeniteln´e term´ıny m˚ uˇze b´ yt vyuˇzita k hardk´ odov´ an´ı v´ yznamu nˇekter´ ych v´ yraz˚ u do aplikac´ı. Explicitn´ı neform´ aln´ı s´emantika je neform´ aln´ı textov´ y popis v pˇrirozen´em jazyce, kter´ y je uveden ve slovn´ıc´ıch a v dalˇs´ıch textov´ ych popisech (napˇr. v pozn´ amce pod ˇcarou, textov´e anotaci apod.). Protoˇze komplexita popisu v pˇrirozen´em jazyce je pˇr´ıliˇs velk´ a, i kdyˇz m´ a stroj k dispozici pˇridan´ y textov´ y popis dan´eho term´ınu a ne pouze jeho kontext, st´ ale m´ a velmi v´ yraznˇe omezen´e moˇznosti popis analyzovat a v´ yznam z nˇej urˇcit. Explicitn´ı neform´ aln´ı s´emantika je tedy urˇcena pˇredevˇs´ım pro zpracov´an´ı ˇclovˇekem. Pokud je s´emantika explicitn´ı a form´ aln´ı, st´ ale m˚ uˇze b´ yt vhodn´a pouze pro zpracov´an´ı ˇclovˇekem. Popis ve form´ aln´ım jazyce totiˇz nemus´ı b´ yt postaˇcuj´ıc´ı k anal´ yze v´ yznamu term´ınu. Pˇr´ıkladem m˚ uˇze b´ yt s´emantika hardk´ odovan´ a do aplikace urˇcen´e ke specifick´emu u ´ˇcelu. V dan´e aplikaci je sice v´ yznam term´ınu jasn´ y a dobˇre popsan´ y vˇcetnˇe vztah˚ u, ale pokud bychom data pˇrenesli do jin´e aplikace, nebude je moˇzn´e analyzovat. Explicitn´ı form´ aln´ı s´emantika pro zpracov´ an´ı strojem je urˇcen´a k pˇr´ım´emu automatick´emu zpracov´an´ı a odvozov´ an´ı. V´ yznam vˇec´ı je definov´ an form´ aln´ım zp˚ usobem pomoc´ı vztah˚ u mezi term´ıny. Napˇr. lze ˇr´ıci, ˇze dan´ y term´ın je podtˇr´ıdou tˇr´ıdy zv´ıˇre, coˇz je podtˇr´ıda ˇzivoˇcicha, ˇzivoˇcich m´a urˇcit´e vlastnosti apod. Pokud pˇri definici vych´az´ıme z term´ın˚ u, kter´e jsou definovan´e v nˇejak´e centr´ aln´ı ˇci vˇseobecnˇe pˇr´ıstupn´e datab´azi, pokud budou data pˇrenesena do jin´e aplikace, tato aplikace m˚ uˇze odvodit jejich v´ yznam bez znalosti prostˇred´ı, ze kter´eho data poch´azej´ı. V prostˇred´ı s´emantick´eho webu se vyskytuj´ı vˇsechny uveden´e druhy s´emantiky. Nejd˚ uleˇzitˇejˇs´ı je vˇsak explicitn´ı form´ aln´ı s´emantika pro zpracov´ an´ı strojem, kterou je s´emantick´ y web specifick´ y a kter´a tvoˇr´ı z´akladn´ı ˇc´ast s´emantick´eho webu.
5
Ontologie
Integrace dat vyˇzaduje jednotnou definici term´ın˚ u (napˇr. autor, vydavatel, ...), kategori´ı (napˇr. lid´e, zv´ıˇrata, ...) a vztah˚ u (napˇr. autor je ˇclovˇek). Nejjednoduˇsˇs´ım ˇreˇsen´ım je vytvoˇrit slovn´ıky, kter´e pˇresnˇe definuj´ı s´emantiku r˚ uzn´ ych term´ın˚ u. Tyto vˇsak ˇcasto nejsou postaˇcuj´ıc´ı, protoˇze neobsahuj´ı dostateˇcn´e definice vztah˚ u. Potˇrebujeme tedy silnˇejˇs´ı n´astroj, kter´ ym jsou ontologie. Ontologie definuje koncepty a vztahy vyuˇzit´e k popisu a reprezentaci urˇcit´e oblasti vˇedˇen´ı [11]. Ontologie poskytuj´ı: • identifikace objekt˚ u, • konstrukci tˇr´ıd objekt˚ u, • komplexn´ı klasifikaˇcn´ı sch´emata, • vyj´ adˇren´ı shody a rozd´ılnosti tˇr´ıd, • charakterizace vlastnost´ı, • ... Jedn´ a se obvykle o rozs´ ahl´e datab´ aze obsahuj´ıc´ı velk´e mnoˇzstv´ı objekt˚ u, tˇr´ıd, vlastnost´ı a vztah˚ u mezi nimi. Lze je pˇripodobnit ke slovn´ık˚ um rozˇs´ıˇren´ ym o vztahy mezi term´ıny a dalˇs´ı informace. Obdobnˇe jako slovn´ıky, i ontologie existuj´ı obecn´e nebo se zamˇeˇren´ım na urˇcitou oblast vˇedˇen´ı. Propojen´ım r˚ uzn´ ych ontologi´ı lze vytv´aˇret vˇetˇs´ı celky, kter´e umoˇzn´ı definovat term´ıny z r˚ uzn´ ych oblast´ı. Propojov´an´ı a znovupouˇzit´ı ontologi´ı je velmi d˚ uleˇzit´e i proto, ˇze tvorba ontologie je extr´emnˇe n´ aroˇcn´ a a vyˇzaduje velmi dobr´e znalosti z dan´e oblasti vˇedˇen´ı. Jedna menˇs´ı skupina lid´ı tedy nikdy nem˚ uˇze vytvoˇrit ontologii popisuj´ıc´ı vˇsechno vˇedˇen´ı. Pokud bychom propojili vˇsechny ontologie a doplnili weby o s´emantick´e informace definovan´e pomoc´ı propojen´ ych datab´ az´ı ontologi´ı, dos´ ahneme situace, ve kter´e lze naplnit v´ yˇse uvedenou ideu s´emantick´eho webu. Pˇr´ıklady existuj´ıc´ıch ontologi´ı (v´ıce pˇr´ıklad˚ u lze nal´ezt v [26]): • DBpedia - data z Wikipedie pˇreveden´ a do RDF, • FOAF (The Friend of a Friend) - lidi, identifikace, kontakty, • Dublin Core - publikace, muzejn´ı expon´ aty apod., • LOD (Linking Open Data) - propojen´ a s´ıt’ ontologi´ı. 4
6
Technologie
Z´ akladem s´emantick´eho webu jsou technologie umoˇzn ˇuj´ıc´ı doplnˇen´ı s´emantiky do souˇcasn´eho webu. Existuje v´ıce r˚ uzn´ ych technologi´ı, kter´e se liˇs´ı ve zp˚ usobu, jak´ ym s´emantiku do webu doplˇ nuj´ı, ve vyjadˇrovac´ıch schopnostech a ve sloˇzitosti zpracov´ an´ı, kter´ a m˚ uˇze r˚ ust aˇz za hranice moˇznost´ı souˇcasn´e v´ ypoˇcetn´ı techniky. Dalˇs´ı technologie potom slouˇz´ı k odvozov´ an´ı informac´ı, tvorbˇe agent˚ u (viz v´ yˇse) a k dalˇs´ım u ´ˇcel˚ um. Tyto technologie vˇsak dle v´ yˇse uveden´e souˇcasn´e definice s´emantick´eho webu slouˇz´ı sp´ıˇse k jeho vyuˇzit´ı, neˇz k jeho tvorbˇe, a v t´eto pr´ aci se jimi nebudu zab´ yvat. V´ıce informac´ı o agentech lze nal´ezt v [10]. Celkov´ y pohled na vrstvenou architekturu s´emantick´eho webu poskytuje diagram, kter´ y poprv´e prezentoval Tim Berners-Lee a kter´ y nyn´ı existuje v mnoha variant´ach (viz napˇr. [16], [3] a [26]). Tento diagram je vyobrazen na obr´ azku 1.
Obr´ azek 1: Diagram vrstven´e architektury s´emantick´eho webu
Vrstva pro d˚ uvˇeryhodnost (Trust) je horn´ı vrstvou s´emantick´eho webu (v´ yˇse uˇz je pouze aplikace, kter´ a jej vyuˇz´ıv´ a). V´ yvoj t´eto vrstvy doposud nepokroˇcil od formulov´an´ı jej´ı vize, kterou je moˇznost dotazov´an´ı na d˚ uvˇeryhodnost informac´ı na webu a zajiˇstˇen´ı pravdivosti informac´ı. Vrstva logiky slouˇz´ı k automatick´emu odvozov´an´ı informac´ı ze s´emantick´ ych dat a ontologi´ı. Softwarov´ y agent m˚ uˇze s jej´ım vyuˇzit´ım urˇcovat, zda dan´ y zdroj splˇ nuje jeho potˇreby apod. V t´eto vrstvˇe jsou nyn´ı r˚ uzn´e konkr´etn´ı implementace odvozov´ an´ı, kter´e nejsou obecnou technologi´ı s´emantick´eho webu a nebudu je zde tedy popisovat. Vrstva dokazov´ an´ı slouˇz´ı k urˇcov´ an´ı, zda jsou odvozen´e v´ yrazy pravdiv´e. K tomuto u ´ˇcelu se vyuˇz´ıvaj´ı pravidla z predik´ atov´e logiky prvn´ıho ˇr´ adu a dokazovac´ı jazyky [21]. Pro z´apis d˚ ukaz˚ u lze vyuˇz´ıt i speci´aln´ı ontologie a syntaxi Notation3. Digit´ aln´ı podpisy a ˇsifrov´ an´ı jsou potˇrebn´e pro zajiˇstˇen´ı d˚ uvˇernosti a autentizace (pokud budou agenti pracovat s citliv´ ymi osobn´ımi daty uˇzivatel˚ u). Autentizace je d˚ uleˇzit´a tak´e pro zjiˇstˇen´ı d˚ uvˇeryhodnosti informac´ı (tvrzen´ı od uˇzivatele, kter´emu d˚ uvˇeˇruji, bude d˚ uvˇeryhodnˇejˇs´ı). N´ asleduje podrobnˇejˇs´ı popis technologi´ı zb´ yvaj´ıc´ıch vrstev. 5
6.1
Unicode a URI
Unicode je standard pro k´ odov´ an´ı znak˚ u vˇsech existuj´ıc´ıch abeced. Tento standard umoˇzn ˇuje uloˇzen´ı text˚ u v r˚ uzn´ ych jazyc´ıch a abeced´ ach v jednotn´em form´ atu, coˇz v´ yraznˇe usnadˇ nuje pˇrenositelnost dat. V´ıce o tomto standardu lze nal´ezt v [1]. URI (Uniform Resource Identifier) je jednoznaˇcn´ y ˇretˇezcov´ y identifik´ator prostˇredku na webu. Jeho syntaxe je aktu´ alnˇe dan´ a RFC 3986 [6].
6.2
XML
XML (Extensible Markup Language) je obecn´ y flexibiln´ı znaˇckovac´ı jazyk, kter´ y umoˇzn ˇuje vytv´aˇren´ı znaˇckovac´ıch jazyk˚ u pro r˚ uzn´e u ´ˇcely a typy dat. Umoˇzn ˇuje popsat strukturu dokument˚ u, pˇriˇcemˇz se nezab´ yv´a jejich vzhledem (vizu´ aln´ı prezentac´ı). Byl vyvinut konsorciem W3C jako n´astupce dˇr´ıve vyuˇz´ıvan´eho SGML (Standard Generalized Markup Language), pˇriˇcemˇz odstranil vˇsechny jeho hlavn´ı nev´ yhody (napˇr. nedeterministiˇcnost zp˚ usobenou moˇznost´ı vynech´ av´ an´ı znaˇcek). XML nem´ a pevn´ y slovn´ık znaˇcek, ale je zde moˇznost definovat znaˇcky a strukturu dokument˚ u pro jednotliv´e aplikace. V XML 1.0 se k tomuto u ´ˇcelu vyuˇz´ıvalo DTD (Document Dype Definition), kter´e se nyn´ı nahrazuje XML sch´ematem. Hlavn´ı v´ yhodou XML sch´ema oproti DTD je, ˇze metadata jsou pops´ana v syntaxi XML a ne jin´ ym jazykem. V s´emantick´em webu se XML vyuˇz´ıv´ a pˇredevˇs´ım pro serializaci s´emantick´ ych informac´ı (viz d´ale). Jeho hlavn´ımi v´ yhodami jsou uniformnost, velk´ a rozˇs´ıˇrenost, snadn´e zpracov´an´ı (mnoho dostupn´ ych knihoven) a moˇznost definovat r˚ uzn´e typy dokument˚ u. Vzhledem ke striktnˇejˇs´ı struktuˇre, neˇz v SGML, je jeho aplikace XHTML (Extensible Hypertext Markup Language) urˇcen´ a pro tvorbu webov´ ych str´anek l´epe strojovˇe zpracovateln´a, neˇz HTML (Hypertext Markup Language) a umoˇzn ˇuje tak pˇr´ıpadn´e pˇrehlednˇejˇs´ı a deterministiˇctˇejˇs´ı pˇriˇrazen´ı s´emantiky jednotliv´ ym prvk˚ um v dokumentu.
6.3
RDF
V´ yvoj s´emantick´eho webu zaˇcal v roce 1998, kdy byla zaloˇzena pracovn´ı skupina Web Metadata Working Group. Jej´ım c´ılem bylo vytvoˇrit framework umoˇzn ˇuj´ıc´ı sd´ılen´ı dat a jejich znovupouˇzit´ı r˚ uzn´ ymi aplikacemi. Prvn´ım v´ ysledkem jej´ıho v´ yzkumu bylo vytvoˇren´ı RDF (Resource Description Framework), kter´ y se stal z´akladn´ı technologi´ı s´emantick´eho webu. Hlavn´ı sady doporuˇcen´ı pro RDF n´ aslednˇe vydaly 2 pracovn´ı skupiny W3C: • RDF Core Working Group, • Web Ontology Working Group. RDF je datov´ y model ve formˇe orientovan´eho grafu, kter´ y se skl´ad´a z RDF trojic (s,p,o), kde [11]: s je podmˇet (subject), p je pˇr´ısudek (predicate) ˇci vlastnost (property), o je pˇredmˇet (object). Vˇsechny prvky trojice mohou b´ yt zdroje identifikovan´e URI. Prvky, kter´e nejsou zdroje ale pouze datov´e hodnoty, jsou liter´ aly. Vezmeme-li tedy v pˇrirozen´em jazyce vˇetu Praha je mˇesto“, lze ji vyj´adˇrit napˇr. RDF trojic´ı, kde ” URI XHTML elementu obsahuj´ıc´ıho slovo Praha bude pˇredmˇet, predik´at (napˇr. rdf:type) bude vyjadˇrovat je typu“ ” a pˇredmˇet bude URI definice mˇesta v nˇejak´e datab´azi ontologi´ı (viz d´ale). T´ımto zp˚ usobem lze popsat cokoliv. RDF lze rozdˇelit do 3 ˇc´ ast´ı: • model, • specifikace syntaxe, • specifikace sch´ematu. RDF model ud´ av´ a zp˚ usob modelov´ an´ı svˇeta pomoc´ı orientovan´eho grafu. Jedn´a se tedy o obecn´ y princip. Specifikace syntaxe popisuje syntaxi z´ apisu RDF trojic. Existuje cel´a ˇrada r˚ uzn´ ych syntax´ı, z nichˇz nejzn´ amˇejˇs´ı jsou RDF/XML, RDFa a Turtle (viz d´ ale). Specifikace sch´ematu definuje vyuˇziteln´e term´ıny, vztahy a omezen´ı. Jsou zde tedy mimo jin´e definov´any z´ akladn´ı pˇr´ısudky, kter´e lze vyuˇz´ıt (napˇr. rdf:type, coˇz je speci´aln´ı URI zkr´acen´a s vyuˇzit´ım jmenn´ ych prostor˚ u). 6
6.3.1
Syntaxe RDF
V t´eto pr´ aci uvedu pouze z´ akladn´ı principy vybran´ ych nejzn´amˇejˇs´ıch syntax´ı, detailnˇejˇs´ı informace o syntaxi RDF lze nal´ezt v [23] a [25]. RDF graf lze pˇrehlednˇe vyj´ adˇrit v grafick´e podobˇe. Pˇr´ıklad je na obr´azku 2.
Obr´azek 2: Pˇr´ıklad RDF grafu
Nejjednoduˇsˇs´ı z vybran´ ych syntax´ı je Turtle, coˇz je pˇrehledn´ y textov´ y form´at, vhodn´ y pro ˇcten´ı ˇclovˇekem. Detailn´ı popis syntaxe Turtle lze nal´ezt v [5]. N´ asleduje jednoduch´ y pˇr´ıklad reprezentace dvou RDF trojic z obr´azku 2, kde e je jmenn´ y prostor pro zkr´ acen´ı z´ apisu. e:author "Jan Nov´ ak"@cs ; e:publisher . Turtle je zjednoduˇsen´ım Notation3, kterou vyvinul Tim Berners-Lee. Alternativn´ım zjednoduˇsen´ım t´eto syntaxe je tak´e N-Triples [21]. V´ıce o Notation3 lze nal´ezt v [4]. Nejˇcastˇeji vyuˇz´ıvanou syntax´ı je RDF/XML. Jedn´a se o serializaci RDF do form´atu XML umoˇzn ˇuj´ıc´ıho jednoduch´e uloˇzen´ı a zpracov´ an´ı. N´ asleduje jednoduch´ y pˇr´ıklad, pro srovn´an´ı opˇet z obr´azku 2. <e:author xml:lang="cs">Jan Nov´ ak <e:publisher rdf:resource="http://www.example.cz/"/> Existuj´ı tak´e syntaxe rozˇsiˇruj´ıc´ı syntaxi souˇcasn´eho (X)HTML, kter´e umoˇzn ˇuj´ı pˇrid´an´ı s´emantick´ ych informac´ı pˇr´ımo do souˇcasn´ ych webov´ ych str´ anek. Nejzn´amˇejˇs´ı z tˇechto syntax´ı je RDFa (RDF in Attributes), kter´ a znaˇck´ am XHTML pˇrid´ av´ a atributy pro reprezentaci grafu RDF. N´asleduje pˇr´ıklad:
Knihu s n´ azvem Pˇ r´ ıklad napsal <span property="e:author" lang="cs">Jan Nov´ ak a vydalo nakladatelstv´ ı <span rel="e:publisher" resource="http://www.example.cz/">Example.
U syntaxe je d˚ uleˇzit´e zm´ınit tak´e intern´ı (pr´azdn´e) uzly (blank nodes) RDF grafu. Tyto lze vyj´adˇrit ve vech v´ yˇse uveden´ ych syntax´ıch. Pokud m´ ame napˇr. vˇetu Vydavatel je nˇeco, co m´a n´azev a adresu“, vyj´adˇren´ı slova nˇeco“ je ” ” problematick´e. Nen´ı to zdroj, kter´ y by mˇel adresu ani liter´al (nejedn´a se o vˇec s n´azvem nˇeco“). Tento probl´em lze ” ˇreˇsit vytvoˇren´ım URI pro dan´ y term´ın, coˇz vˇsak vyˇzaduje generov´an´ı jednoznaˇcn´e URI, kter´a je potˇreba jenom pro nav´ az´ an´ı uzl˚ u v RDF a nem´ a ˇz´ adn´ y vˇetˇs´ı v´ yznam. Jako alternativn´ı ˇreˇsen´ı lze tedy vyuˇz´ıt pr´azdn´ y uzel v RDF grafu, kter´ y bude m´ıt pouze lok´ aln´ı v´ yznam pro nav´ az´an´ı pˇr´ısluˇsn´ ych uzl˚ u. N´asleduje pˇr´ıklad v syntaxi RDF/XML: 7
<e:author xml:lang="cs">Jan Nov´ ak <e:publisher> <e:pub_name>Example <e:address>Brno Pr´ azdn´e uzly mohou b´ yt problematick´e pˇri spojov´an´ı graf˚ u, kdy dva pr´azdn´e uzly (pˇr´ıpadnˇe i se stejn´ ym intern´ım identifik´ atorem) jsou r˚ uzn´e. 6.3.2
RDF Sch´ ema
RDF sch´ema (RDFS) definuje vyuˇziteln´e term´ıny, vztahy a omezen´ı. Ofici´aln´ı n´azev je jazyk pro popis RDF slovn´ıku (RDF Vocabulary Description Language), ale z historick´ ych d˚ uvod˚ u se st´ale v´ıce vyuˇz´ıv´a n´azev RDF sch´ema [11]. RDFS definuje: • zdroje, • tˇr´ıdy, • vztahy, • vlastnosti. Tˇr´ıdy jsou tak´e zdroje, ale jsou tak´e kolekcemi moˇzn´ ych zdroj˚ u [11]. RDFS definuje v´ yznam tˇechto term´ın˚ u a speci´ aln´ı URI pro jejich oznaˇcen´ı (obvykle zkracujeme pomoc´ı jmenn´ ych prostor˚ u, napˇr. rdfs:Class). Vztahy jsou definov´ any mezi zdroji a jsou to: • typov´ an´ı (typing), • vytv´ aˇren´ı podtˇr´ıd (subclassing). Typov´ an´ı vyjadˇruje, ˇze individu´ al (zdroj) n´aleˇz´ı do nˇejak´e tˇr´ıdy. Nejedn´a se o obdobu datov´ ych typ˚ u, protoˇze individu´ al m˚ uˇze n´ aleˇzet do v´ıce tˇr´ıd, ale o vyj´adˇren´ı, ˇze individu´al patˇr´ı do dan´e skupiny. Vytv´aˇren´ı podtˇr´ıd slouˇz´ı k vyj´ adˇren´ı vztahu, kdy vˇsichni individu´ alov´e jedn´e tˇr´ıdy n´aleˇz´ı i do druh´e tˇr´ıdy, ale ne naopak. Pˇri z´ısk´ av´ an´ı RDF trojic z grafu lze pomoc´ı tranzitivity vztah˚ u odvozovat i trojice, kter´e nejsou explicitnˇe uvedeny. Vlastnosti jsou speci´ aln´ı tˇr´ıdy (rdf:Property) identifikovan´e URI, s jejichˇz vyuˇzit´ım lze definovat typ podmˇetu a pˇredmˇetu. Lze specifikovat jejich dom´enu (typ a rozsah hodnot) a protoˇze jsou souˇcasnˇe i zdroji, lze definovat i vlastnosti vlastnost´ı. N´ asleduje pˇr´ıklad vlastnosti v syntaxi Turtle pˇrevzat´ y z [11]: :title rdf:type rdfs:domain rdfs:range
rdf:Property; :Fikce; rdfs:Literal.
Liter´ aly mohou m´ıt datov´ y typ dle sch´ematu XML (napˇr. boolean, integer, float apod.) a lze definovat jejich jazyk (cs, en, de, ...), napˇr. (Turtle): :book :pages :year
"150"^^xsd:integer; "2010"^^xsd:gYear@cs.
Specifikace RDFS obsahuje tak´e ˇradu pˇreddefinovan´ ych tˇr´ıd a vlastnost´ı, jejichˇz detailnˇejˇs´ı popis vˇcetnˇe pˇr´ıklad˚ u lze nal´ezt v [11]: • kolekce (collections) (seznamy), • kontejnery (containers), • reifikace (zvˇecnˇen´ı - vytvoˇr´ı pˇredmˇet z nˇeˇceho, co j´ım nen´ı), • koment´ aˇr (comment), • ... 8
6.4
SPARQL
SPARQL (Simple Protocol And RDF Query Language) [15] je dotazovac´ı jazyk pro dotazov´an´ı nad RDF grafem. Dotaz se skl´ ad´ a z n´ asleduj´ıc´ıch ˇc´ ast´ı: • PREFIX - volba jmenn´eho prostoru, • SELECT nebo CONSTRUCT - definice zobrazovac´ıho form´atu, • WHERE - formulace dotazu, • SORT BY - tˇr´ıdˇen´ı v´ ysledk˚ u, • OFFSET - omezen´ı do dan´eho ˇc´ısla pˇredmˇetu. Dotaz tedy m˚ uˇze vypadat n´ asledovnˇe: SELECT ?p ?o WHERE {subject ?p ?o} Jednoduch´ y pˇr´ıklad pˇrevzat´ y z [11]: SELECT ?isbn ?price ?currency # note: not ?x! WHERE { ?isbn a:price ?x. ?x rdf:value ?price. ?x p:currency ?currency. FILTER(?currency == Kˇ c } V´ıce o SPARQL lze nal´ezt v [22].
6.5
OWL
OWL (Ontology Web Language) je jazyk pro popis ontologi´ı. OWL je vystavˇen na RDFS, ale poskytuje mnohem vˇetˇs´ı vyjadˇrovac´ı schopnosti. Umoˇzn ˇuje vyj´ adˇrit: • ekvivalenci a odliˇsnost individu´ al˚ u, • ekvivalenci a odliˇsnost tˇr´ıd, • ekvivalenci a odliˇsnost vlastnost´ı, • charakter a chov´ an´ı vlastnost´ı (symetrie, tranzitivita, inverze, ...), • identitu (kl´ıˇce), • konstrukci tˇr´ıd pr˚ unikem, spojen´ım, doplˇ nkem, ... • dˇediˇcnost, • datov´e typy, • omezen´ı vlastnost´ı, • omezen´ı kardinality, • ... Vyjadˇrovac´ı schopnosti OWL jsou tak velk´e, ˇze odvozov´an´ı je pˇr´ıliˇs sloˇzit´e. S vyuˇzit´ım souˇcasn´e v´ ypoˇcetn´ı techniky nen´ı moˇzn´e implementovat odvozov´ an´ı nad komplexn´ımi ontologiemi v OWL. Z tohoto d˚ uvodu byly vytvoˇreny profily, kter´e obsahuj´ı pouze vybran´e vlastnosti OWL a zav´adˇej´ı r˚ uzn´a omezen´ı: • OWL Full • OWL DL • OWL EL • OWL QL • OWL RL 9
OWL Full obsahuje vˇsechny konstrukce OWL bez omezen´ı. M˚ uˇze tak obsahovat mimo jin´e i nekonzistence (napˇr. A obsahuje vˇse z B a z´ aroveˇ n B je doplˇ nkem A), kter´e jsou pˇri zpracov´an´ı velk´ ym probl´emem. Dalˇs´ım probl´emem je uzavˇren´ı svˇeta (kontradikce [29]), kdy nevhodnˇe omez´ıme kardinalitu na 1 (firma m´a 1 ˇreditele a pokud je nˇekdo ˇreditelem, uˇz j´ım nikdy nem˚ uˇze b´ yt nikdo jin´ y). Odvozov´an´ı v OWL Full je nerozhodnuteln´ ym probl´emem a proto se vyuˇz´ıv´ a pˇredevˇs´ım pˇri teoretick´em v´ yzkumu prov´adˇen´em ˇclovˇekem a v aplikac´ıch, kter´e potˇrebuj´ı vybran´e konstrukce, kter´e jsou pouze v OWL Full (aplikace potom implementuje r˚ uzn´a omezen´ı a nepracuje tedy s celou definic´ı dan´eho jazyka). OWL DL (OWL Description Logic) definuje urˇcit´a omezen´ı: • term´ıny RDFS a OWL jsou rezervovan´e a nelze nad nimi konstruovat v´ yrazy, • vlastnosti uˇzivatelsk´eho objektu mohou b´ yt pouze individu´alov´e, • nen´ı k dispozici charakterizace datov´ ych typ˚ u, • vyuˇzit´ı stejn´eho symbolu pro individu´ ala a tˇr´ıdu neznaˇc´ı identitu, • stejn´ a vlastnost nem˚ uˇze b´ yt vyuˇzita souˇcasnˇe jako objekt i datov´ y typ, • ... Velkou v´ yhodou OWL DL vˇsak je, ˇze jsou pro nˇej k dispozici odvozovac´ı algoritmy. Jedn´a se o speci´ aln´ı typ strukturovan´e logiky prvn´ıho ˇr´ adu a lze pro nˇej vyuˇz´ıvat pˇr´ısluˇsn´e kompaktn´ı matematick´e notace. I pˇres dan´ a omezen´ı lze vybudovat velk´e ontologie z mnoha oblast´ı vˇedˇen´ı (medic´ına, energetika, finanˇcnictv´ı apod.). Jedn´a se tedy o jeden z nejvyuˇz´ıvanˇejˇs´ıch profil˚ u OWL. OWL EL je profil urˇcen´ y pro zpracov´ an´ı v polynomi´aln´ım ˇcase, kter´ y nevyˇzaduje zpracov´an´ı komplexn´ıch v´ yraz˚ u. Oproti DL zav´ ad´ı dalˇs´ı omezen´ı: • nelze omezit kardinality, • m´enˇe omezen´ı vlastnost´ı, • nejsou k dispozici nˇekter´e vlastnosti (inverzn´ı, reflexivn´ı, symetrick´e, ...), • nen´ı moˇzn´e vyj´ adˇrit rozd´ılnost tˇr´ıd, • ... OWL QL (OWL Query Language) je urˇcen´ y pro vyuˇzit´ı s relaˇcn´ımi datab´azemi a umoˇzn ˇuje snadn´e dotazov´ an´ı s dotazy vyuˇz´ıvaj´ıc´ımi spojov´ an´ı tabulek. Je vyuˇziteln´ y pro jednoduch´e ontologie s velk´ ym mnoˇzstv´ım dat. Oproti DL zav´ ad´ı n´ asleduj´ıc´ı omezen´ı: • nelze omezit kardinality, • m´enˇe omezen´ı vlastnost´ı, • nejsou k dispozici nˇekter´e vlastnosti (inverzn´ı, reflexivn´ı, symetrick´e, ...), • nen´ı moˇzn´e vyj´ adˇrit rozd´ılnost tˇr´ıd, • nen´ı k dispozici tranzitivita a ˇretˇezen´ı vlastnost´ı, • ... OWL RL (OWL Rule Language) umoˇzn ˇuje polynomi´aln´ı rozhodov´an´ı a zpracov´an´ı pomoc´ı pravidel (rule engine). Zav´ ad´ı n´ asleduj´ıc´ı omezen´ı: • m´enˇe omezen´ı kardinality (obvykle pouze 0/1), • m´enˇe omezen´ı vlastnost´ı, • omezen´ı v´ yraz˚ u nad tˇr´ıdami (sjednocen´ı, pr˚ unik, ...), • nen´ı k dispozici omezen´ı datov´ ych typ˚ u, • ... 10
St´ ale vˇsak z˚ ust´ av´ a cel´ a ˇrada vlastnost´ı: • identita tˇr´ıd, individu´ al˚ u a vlastnost´ı, • podtˇr´ıdy, podvlastnosti, • dom´eny, rozsahy, • omezen´e sjednocen´ı a pr˚ unik tˇr´ıd, • charakterizace a ˇretˇezen´ı vlastnost´ı, • kl´ıˇce, • ... Protoˇze OWL RL vyuˇz´ıv´ a pˇredevˇs´ım principy RDFS a lze jej zpracovat pomoc´ı jednoduch´ ych pravidel, implementace je jednoduch´ a a m´ alo v´ ypoˇcetnˇe n´ aroˇcn´ a. Je tedy moˇzn´e zpracov´avat i velk´a mnoˇzstv´ı dat. 6.5.1
Syntaxe OWL
Nejvyuˇz´ıvanˇejˇs´ı syntax´ı OWL je RDF/XML, coˇz je souˇcasnˇe ofici´aln´ı syntaxe pro v´ ymˇenu informac´ı. Tato vˇsak m˚ uˇze b´ yt velmi upov´ıdan´ a (verbose). Existuj´ı proto i alternativn´ı syntaxe, jako napˇr. OWL/XML, funkcion´aln´ı nebo Manchester. N´ asleduje zjednoduˇsen´ y pˇr´ıklad syntaxe Manchester pˇrevzat´ y z [16]: Individual: my:Kˇ c Individual: my:$ Class: my:Currency EquivalentTo {my:Kˇ c my:$} Class: my:Listed_Price that p:currency only my:Currency Pro srovn´ an´ı uvedu stejn´ y pˇr´ıklad v Turtle: my:Kˇ c rdf:type owl:Thing. my:$ rdf:type owl:Thing. my:Currency rdf:type owl:Class; owl:oneOf (my:Kˇ c my:$). my:Listed_Price rdf:type owl:Class; rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty p:currency; owl:allValuesFrom my:Currency ]. V´ıce informac´ı o OWL lze nal´ezt v [18].
6.6
RIF
RIF (Rule Interchange Format) je form´ at pro popis pravidel. Nˇekter´e skuteˇcnosti lze pomoc´ı OWL popsat jenom velmi sloˇzitˇe, zat´ımco pomoc´ı pravidel staˇc´ı nˇekolik m´alo pravidel. Pravidla tedy mohou b´ yt vyuˇzita jako alternativa k OWL. Pravidla maj´ı dlouhou historii v jazyce Prolog, ˇcehoˇz lze s v´ yhodou vyuˇz´ıt pˇri tvorbˇe ontologi´ı. RIF Core je j´ adro jazyka RIF. Obsahuje definice z´akladn´ıch direktiv (napˇr. pro pr´aci s URI), sekvence implikac´ı apod. Jsou zde zabudovan´e datov´e typy, predik´aty, notace lok´aln´ıch jmen (obdoba pr´azdn´ ych uzl˚ u), bezpeˇcnostn´ı omezen´ı proti zacyklen´ı (forward chaining) apod. Pravidla nejsou omezena na vyjadˇrov´an´ı RDF trojic a vztah v nich m˚ uˇze zahrnovat i v´ıce neˇz 2 entity. RDF strom lze vyj´ adˇrit i v RIF. Trojice (s,p,o) se vyj´adˇr´ı jako s[p->o], s rdf:type a“ se vyj´adˇr´ı pravidlem A # B ” apod. V´ıce informac´ı lze nal´ezt v [8].
11
6.7
DAML + OIL
DAML (DARPA Agent Markup Language) je jazyk pro ontologie a odvozov´an´ı vyvinut´ y agenturou DARPA. Je zaloˇzen na RDF a rozˇsiˇruje RDFS. Umoˇzn ˇuje vyj´ adˇrit: • inverze, • jednoznaˇcn´e a unik´ atn´ı vlastnost´ı, • seznamy, • omezen´ı, • p´ arovan´e seznamy rozd´ıl˚ u, • datov´e typy, • ... Jednoznaˇcn´ a vlastnost ˇr´ık´ a, ˇze pokud pˇredmˇety vlastnost´ı jsou stejn´e, podmˇety jsou ekvivalentn´ı, napˇr. [21]: foaf:mbox rdf:type daml:UnambiguousProperty . :x foaf:mbox . :y foaf:mbox . implikuje: :x daml:equivalentTo :y . Pˇri odvozov´ an´ı je v DAML d˚ uleˇzit´e vyj´ adˇren´ı ekvivalence. Pˇr´ıklad: :Auto cs:v´ ykon "200kW" . M´ ame-li v´yˇse uvedenou tˇr´ıdu Auto s ˇcesk´ym popisem parametr˚ u, mezi kter´ymi je i uveden´y v´ykon, m˚ uˇzeme pomoc´ı DAML ˇcesk´ym v´yraz˚ um pˇriˇradit ekvivalentn´ı anglick´e: cs:v´ ykon daml:equivalentTo en:power . Agent potom m˚ uˇze odvodit anglick´e parametry: :Auto en:power "200kW" . Kdybychom pˇreklad realizovali pomoc´ı obyˇcejn´eho slovn´ıku, nemusel by zvolit spr´avn´ y v´ yraz a pˇreklad by mohl b´ yt i nesmysln´ y. Vyuˇzit´ı DAML (a obecnˇe s´emantick´ ych informac´ı) zajist´ı, ˇze budou vyuˇzity spr´avn´e v´ yznamovˇe ekvivalentn´ı v´ yrazy. V´ıce informac´ı o DAML lze nal´ezt v [20]. Ontologie OIL (Ontology Inference Layer) se skl´ad´a z: • definice slot˚ u (slot-def), • definice tˇr´ıd (class-def). Definice slotu popisuje bin´ arn´ı relaci mezi dvˇema entitami. Definice tˇr´ıd asociuje n´azev tˇr´ıdy s jej´ım popisem a skl´ ad´ a se z n´ asleduj´ıc´ıch ˇc´ ast´ı: • typ definice (definition type): – defined – tˇr´ıda je kompletnˇe specifikov´ana, – primitive – jsou uvedeny pouze omezuj´ıc´ı podm´ınky, kter´e nedostaˇcuj´ı k pln´emu definov´an´ı tˇr´ıdy (urˇcen´ı ˇclenstv´ı). • omezen´ı slotu (slot constraint) – omezuje moˇzn´e hodnoty, kter´e m˚ uˇze m´ıt slot, kdyˇz se aplikuje na instanci tˇr´ıdy (skl´ ad´ a se z n´ azvu, typu hodnoty a hodnoty), • podtˇr´ıda (subclass-of) – relace definovan´e tˇr´ıdy s jedn´ım nebo v´ıce v´ yrazy nad tˇr´ıdami (n´azev tˇr´ıdy, omezen´ı slotu nebo jejich booleovsk´ a kombinace). 12
N´ asleduje zjednoduˇsen´ y pˇr´ıklad z [9] (definice slot˚ u jsou z prostorov´ ych d˚ uvod˚ u vynech´any): class-def animal % zv´ ıˇ rata jsou tˇ r´ ıda class-def plant % rostliny jsou tˇ r´ ıda subclass-of NOT animal % rostliny jsou disjunktn´ ı od zv´ ıˇ rat class-def tree subclass-of plant % stromy jsou podtˇ r´ ıda rostlin class-def branch slot-constraint is-part-of % vˇ etve jsou souˇ c´ ast´ ı strom˚ u has-value tree class-def defined carnivore subclass-of animal % masoˇ zravci jsou zv´ ıˇ rata slot-constraint eats % kter´ a j´ ı pouze jin´ a zv´ ıˇ rata value-type animal class-def defined herbivore % b´ yloˇ zravci jsou zv´ ıˇ rata subclass-of animal slot-constraint eats % kter´ a j´ ı pouze rostliny nebo ˇ c´ asti rostlin value-type plant OR (slot-constraint is-part-of has-value plant) DAML+OIL vznikl jako spojen´ı jazyk˚ u DAML-ONT, kter´ y je souˇc´ast´ı DAML, a OIL [13]. Je navrˇzen k popisu struktury dom´eny a vyuˇz´ıv´ a objektovˇe orientovan´ y pˇr´ıstup. DAML+OIL je ekvivalentem deskriptivn´ı logiky. Ontologie sest´ av´ a ze sady axiom˚ u, kter´e jsou pˇredpoklady. Tˇr´ıdy mohou b´ yt reprezentov´any nejenom URI, ale tak´e v´ yrazy, pro jejichˇz konstrukci je k dispozici cel´ a ˇrada konstruktor˚ u. Vyjadˇrovac´ı s´ıla jazyka je d´ana podporovan´ ymi konstruktory a druhy axiom˚ u. Konstruktory tˇr´ıd DAML+OIL jsou: • intersectionOf, • unionOf, • complementOf, • oneOf – definice v´ yˇctem ˇclen˚ u, • toClass – pro omezen´ı slotu, • hasClass – pro omezen´ı slotu, • hasValue – kombinace oneOf a hasClass, • minCardinalityQ, • maxCardinalityQ, • cardinalityQ. Axiomy DAML+OIL jsou: • subClassOf, • sameClassAs, • subPropertyOf, • samePropertyAs, • disjointWith, • sameIndividualAs, • differentIndividualFrom, • inverseOf, • transitiveProperty, 13
• uniqueProperty, • unambiguousProperty. Protoˇze subClassOf a sameClassAs mohou b´ yt aplikov´any na libovoln´ y v´ yraz, vyjadˇrovac´ı schopnosti DAML+OIL jsou vˇetˇs´ı, neˇz u jin´ ych obbdobn´ ych jazyk˚ u, kter´e na lev´e stranˇe takov´ ych axiom˚ u povoluj´ı pouze atomick´e n´ azvy (omezen´ı cykl˚ u). V´ıce informac´ı o DAML+OIL lze nal´ezt v [13].
6.8
Mikroform´ aty
Nechceme-li do webu doplˇ novat s´emantiku pˇr´ımo pomoc´ı RDFa, m˚ uˇzeme vyuˇz´ıt mikroform´at a pˇr´ımo konvertovat obsah webu do RDF. Tato technologie nebyla vyvinuta pˇr´ımo pro s´emantick´ y web, ale vyv´ıj´ı ji samostatn´a komunita. Hlavn´ım principem je znovupouˇzit´ı (X)HTML element˚ u a atribut˚ u pro doplnˇen´ı metainformac´ı (typicky napˇr. atributy title a class). Pokud se napˇr´ıklad dohodne, ˇze class se vyuˇzije pro n´azvy, title pro hodnoty apod, je moˇzn´e s´emantick´e informace uloˇzit pˇr´ımo do (X)HTML bez pˇrid´ av´an´ı dalˇs´ıch atribut˚ u ˇci element˚ u. K transformaci do RDF lze potom vyuˇz´ıt transformaci XSLT [27]. Nev´ yhodou je, ˇze transformace na RDF je specifick´a pro kaˇzd´ y mikroform´at (dle konvence, kam se u nˇej uloˇz´ı jak´e informace). Znovupouˇzit´ı atribut˚ u pˇrin´ aˇs´ı tak´e dalˇs´ı nev´ yhody spojen´e s t´ım, ˇze vyuˇz´ıv´ame atributy p˚ uvodnˇe urˇcen´e k jin´emu u ´ˇcelu (title se zobraz´ı pˇri najet´ı myˇs´ı na objekt, class je spojen se styly apod.).
6.9
GRDDL
GRDDL (Gleaning Resource Descriptions from Dialects of Languages) poskytuje jednotn´ y model pro transformaci XHTML do RDF. N´ azev je moˇzn´e pˇreloˇzit do ˇceˇstiny jako sb´ır´an´ı zdrojov´ ych popis˚ u z dialekt˚ u jazyk˚ u“. Je to ” obdoba mikroform´ at˚ u, ale umoˇzn ˇuje transformaci libovoln´ ych XML dat do RDF pˇrid´an´ım nˇekolika element˚ u a atribut˚ u umoˇzn ˇuj´ıc´ıch nalezen´ı spr´ avn´e transformace: ... ... ... V´ıce o GRDDL lze nal´ezt v [7].
6.10
SKOS
SKOS (Simple Knowledge Organization System) slouˇz´ı k reprezentaci a sd´ılen´ı klasifikac´ı, slovn´ık˚ u, tezaur˚ u apod. Definuje tˇr´ıdy a vlastnosti pro pˇrid´ an´ı tˇechto struktur do RDF stromu, kter´e lze rozdˇelit do n´asleduj´ıc´ıch skupin [11]: • z´ akladn´ı popis (Concept, ConceptScheme, ...), • popisky (prefLabel, altLabel, ...), • dokumentace (definition, historyNote, ...), • s´emantick´e relace (broader, narrower, related, ...), • kolekce (Collection, OrderedCollection, ...), • mapov´ an´ı koncept˚ u (broadMatch, narrowMatch, ...). N´ asleduje zkr´ acen´ y pˇr´ıklad ze [11]: a skos:Concept; skos:prefLabel "Historical Fiction"@en; skos:broader ; ... SKOS poskytuje meziˇcl´ anek mezi tiˇstˇen´ ymi slovn´ıky a s´emantick´ ym webem. V´ıce informac´ı lze nal´ezt v [14]. 14
6.11
POWDER
POWDER (Protocol for Web Description Resources) umoˇzn ˇuje definovat popisn´e zdroje. Sady zdroj˚ u jsou definov´ any omezen´ımi URI (napˇr. shoda zaˇc´ atku). K tomuto u ´ˇcelu je v nˇem obsaˇzeno rozˇs´ıˇren´ı RDF o shodu a neshodu s regul´ arn´ım v´ yrazem. Kaˇzd´ y zdroj mus´ı m´ıt uveden´e tak´e atributy (attribution), aby byl pˇripraven´ y pro vyuˇzit´ı vestavˇen´e autentizace. N´ asleduje jednoduch´ y pˇr´ıklad s jedn´ım popisn´ ym zdrojem (znaˇcka ) pˇrevzat´ y z [2]: <powder xmlns="http://www.w3.org/2007/05/powder#" xmlns:ex="http://example.org/vocab#"> 2007-12-14T00:00:00example.com <descriptorset> <ex:color>red <ex:shape>square Cokoliv na example.com je ˇ cerven´ e a ˇ ctverat´ e POWDER se obvykle vyuˇz´ıv´ a pro licencov´an´ı, oznaˇcen´ı pˇr´ıstupnosti ˇci jin´e znaˇcen´ı obsahu. V´ıce informac´ı lze nal´ezt v [2].
7
Pˇ r´ıklad vytvoˇ ren´ı jednoduch´ e ontologie
V t´eto kapitole uvedu pˇr´ıklad vytvoˇren´ı jednoduch´e ontologie naˇs´ı fakulty. Jednoduchosti pˇr´ıkladu vyuˇziji k pˇrehledn´emu vysvˇetlen´ı postupu tvorby ontologie a z´ akladn´ıch konstrukc´ı v OWL. Ontologii budu vytv´aˇret v editoru Prot´eg´e [19], jehoˇz funkcionalitu pr˚ ubˇeˇznˇe pop´ıˇsu.
7.1
Urˇ cen´ı z´ akladn´ıch tˇ r´ıd
Prvn´ım krokem pˇri tvorbˇe ontologie je urˇcen´ı z´ akladn´ıch tˇr´ıd (Classes) objekt˚ u dom´eny. Protoˇze pˇri objektovˇe orientovan´em pˇr´ıstupu jsou vˇse tˇr´ıdy a kaˇzd´ a tˇr´ıda je potomkem jin´e tˇr´ıdy, mus´ı existovat tˇr´ıda na vrcholu hierarchie. Touto tˇr´ıdou je tˇr´ıda Thing, ze kter´e dˇed´ı z´ akladn´ı tˇr´ıdy. Na naˇs´ı fakultˇe lze vyjmenovat napˇr. n´asleduj´ıc´ı z´akladn´ı tˇr´ıdy: • Fakulta (abychom do ontologie mohli zahrnout i samotnou fakultu), • Sloˇzka fakulty, • Osoba, • Studijn´ı program, • Dokument. Sloˇzky fakulty m˚ uˇzeme d´ ale rozdˇelit na podtˇr´ıdy: • Veden´ı, • Organizaˇcn´ı jednotka, • Org´ an.
15
Obr´ azek 3: V´ ysledn´a hierarchie tˇr´ıd
D´ ale m˚ uˇzeme rozˇclenit i veden´ı, osoby m˚ uˇzeme rozdˇelit na studenty a zamˇestnance apod. Vztah mezi tˇr´ıdou a nadtˇr´ıdou ve v´ ysledn´em RDF grafu je je“ (is-a). V´ ysledn´a hierarchie tˇr´ıd je na obr´azku 3. ” OWL je zaloˇzen na pˇredpokladu otevˇren´eho svˇeta (Open World Assumption), coˇz znamen´a, ˇze pokud nˇeco nen´ı explicitnˇe omezeno ˇci vylouˇceno, je to moˇzn´e. Pokud tedy napˇr. neuvedeme, ˇze organizaˇcn´ı jednotka nen´ı to stejn´e jako org´ an, pˇripouˇst´ıme, ˇze se tyto sloˇzky fakulty mohou shodovat, coˇz nen´ı pravda. Rozd´ılnost se vyjadˇruje pomoc´ı seznam˚ u rozd´ıln´ ych tˇr´ıd (Disjoint classes). V editoru Prot´eg´e se tento seznam zad´av´a u nˇekter´e z rozd´ıln´ ych tˇr´ıd, ale vygeneruje se z nˇej obecn´ y axiom, takˇze tento seznam ovlivn´ı i dalˇs´ı uveden´e tˇr´ıdy. Pokud napˇr. chceme vyj´ adˇrit, ˇze poradn´ı sbor nem˚ uˇze b´ yt souˇcasnˇe jinou sloˇzkou veden´ı (nen´ı to osoba, ale skupina lid´ı), uvedeme u nˇej tˇri seznamy, pˇriˇcemˇz v kaˇzd´em bude jedna ze zb´ yvaj´ıc´ıch sloˇzek veden´ı. Rozd´ılnost tˇr´ıd specifikujeme i u dalˇs´ıch tˇr´ıd, ale ne u zamˇestnance a studenta, protoˇze student doktorsk´eho studia patˇr´ı do obou tˇechto tˇr´ıd souˇcasnˇe. Pokud chceme uv´est, ˇze tˇr´ıda m´ a dvˇe nadtˇr´ıdy (napˇr. dˇekan je podtˇr´ıda veden´ı a souˇcasnˇe zamˇestnanec), uvedeme je do seznamu nadtˇr´ıd u dan´e tˇr´ıdy a to bud’ jako souˇc´ast v´ yrazu nad tˇr´ıdami (Class expression) v r´amci jiˇz existuj´ıc´ı poloˇzky, nebo do samostatn´e poloˇzky. V´ yraz nad tˇr´ıdami v seznamu nadtˇr´ıd tvoˇr´ı pr´azdn´ y uzel v RDF grafu, tedy tˇr´ıdu, kter´a je specifikovan´ a pouze sv´ ymi nadtˇr´ıdami a vlastnostmi, ale nem´ a ˇz´ adn´e oznaˇcen´ı. Ve v´ yrazu nad tˇr´ıdami m˚ uˇzeme vyuˇz´ıt logick´e oper´ atory a vyj´ adˇrit, ˇze tˇr´ıda je podtˇr´ıdou obou nadtˇr´ıd souˇcasnˇe (Veden´ı and Zamˇestnanec), nebo pouze jedn´e z nich (Veden´ı or Zamˇestnanec). M˚ uˇzeme tak´e vyuˇz´ıt vlastnost´ı (viz d´ale) a tˇr´ıdu specifikovat pomoc´ı vztah˚ u s jin´ ymi tˇr´ıdami.
7.2
Definice vlastnost´ı
Nyn´ı pˇrejdeme k definici objektov´ ych vlastnost´ı (Object properties), tedy vztah˚ u mezi dvˇema tˇr´ıdami ˇci individu´ aly. Kromˇe tˇechto existuj´ı jeˇstˇe datov´e vlastnosti, kter´ ymi se budeme zab´ yvat pozdˇeji. Obdobnˇe jako m´ame hierarchii tˇr´ıd, m´ ame i hierarchii objektov´ ych vlastnost´ı. Na vrcholu t´eto hierarchie je vlastnost topObjectProperty. Nejprve tedy urˇc´ıme z´ akladn´ı vlastnosti, kter´e budou jej´ımi podvlastnostmi (specifiˇctˇejˇs´ımi vlastnostmi). Pro v´ yˇse uveden´e tˇr´ıdy to jsou: • je souˇc´ ast´ı, • je ˇclenem, • je vedouc´ım, • studuje, • spolupracuje, • v´ı o (nˇeˇcem). 16
K nˇekter´ ym vlastnostem m˚ uˇzeme definovat tak´e inverzn´ı vlastnosti, tedy napˇr.: • m´ a souˇc´ ast, • m´ a ˇclena, • m´ a vedouc´ıho. Inverzn´ı vlastnosti definujeme tak, ˇze je nejprve definujeme jako bˇeˇzn´e vlastnosti, a potom je uvedeme do seznam˚ u inverzn´ıch vlastnost´ı u dan´ ych vlastnost´ı. Definujeme tedy napˇr. vlastnost m´a ˇclena“ a potom u vlastnosti je ˇclenem“ ” ” pˇrid´ ame poloˇzku do seznamu inverzn´ıch vlastnost´ı. Editor Prot´eg´e n´am automaticky dopln´ı odpov´ıdaj´ıc´ı informaci ke druh´e z dan´ ych vlastnosti. Vlastnost je vedouc´ı“ je tranzitivn´ı, tedy pokud ˇrekneme, ˇze vedouc´ım pana X je pan Y a vedouc´ım Y je Z, pak ” plat´ı, ˇze vedouc´ım X je nepˇr´ımo i Z. Vlastnost tedy v Prot´eg´e oznaˇc´ıme pˇr´ısluˇsn´ ym zaˇskrt´avac´ım pol´ıˇckem. Jako specifiˇctˇejˇs´ı podtˇr´ıdy vlastnosti je vedouc´ım“ m˚ uˇzeme pˇridat: ” • je dˇekanem, • je ˇskolitelem. K uveden´ ym vlastnostem definujeme i inverzn´ı vlastnosti jako podtˇr´ıdy m´a vedouc´ıho“. N´aslednˇe m˚ uˇzeme ˇr´ıci, ” ˇze fakulta m˚ uˇze m´ıt v dan´e chv´ıli pouze jednoho dˇekana a m´a dˇekana“ je tedy funkcion´aln´ı vlastnost. Pro funkcion´ aln´ı ” vlastnost plat´ı, ˇze v dan´em vztahu (mezi tˇr´ıdami) mohou b´ yt pouze dva individu´alov´e (viz d´ale), tedy napˇr. zendulka a FIT. Vlastnost je dˇekanem“ potom bude nejenom inverzn´ı, ale i inverzn´ı funkcion´aln´ı, protoˇze nem˚ uˇze b´ yt dˇekanem ” dvou fakult souˇcasnˇe. Vlastnosti mohou b´ yt tak´e symetrick´e (napˇr. pokud veden´ı spolupracuje s org´any fakulty, tento vztah plat´ı i ve druh´em smˇeru) a reflexivn´ı, coˇz je vlastnost, kterou m´a individu´al i s´am se sebou (napˇr. v´ı o“, kdy zamˇestnanec v´ı o z´ apisu ” z kolegia dˇekana i s´ am o sobˇe). Asymetrick´ a vlastnost neplat´ı ve druh´em smˇeru (pokud je zamˇestnanec dˇekanem fakulty, nem˚ uˇze b´ yt fakulta dˇekanem zamˇestnance) a ireflexivn´ı vlastnost individu´al nem˚ uˇze m´ıt s´am se sebou (zamˇestnanec nem˚ uˇze b´ yt dˇekanem s´ am sebe, ale pouze fakulty). Pokud potˇrebujeme vyj´ adˇrit, ˇze vztah m˚ uˇze b´ yt pouze mezi individu´aly urˇcit´eho typu, m˚ uˇzeme vyuˇz´ıt dom´eny (domains) a rozsahy (ranges). Kaˇzd´ a vlastnost spojuje individu´ala z urˇcit´e dom´eny s individu´alem z urˇcit´eho rozsahu. Napˇr. vlastnost je dˇekanem“ tedy bude m´ıt jako dom´enu tˇr´ıdu Zamˇestnanec a jako rozsah tˇr´ıdu Fakulta. ” V´ ysledn´ a hierarchie vlastnost´ı je na obr´ azku 4.
Obr´ azek 4: V´ ysledn´a hierarchie vlastnost´ı
7.3
Vztahy mezi tˇ r´ıdami
Kdyˇz m´ ame definovan´e vlastnosti, m˚ uˇzeme je vyuˇz´ıt k definov´an´ı vztah˚ u mezi tˇr´ıdami i k definov´an´ı samotn´ ych tˇr´ıd. Nejprve je vˇsak nutn´e vysvˇetlit pojem kardinalita. Kaˇzd´ y vztah m˚ uˇze m´ıt urˇcitou kardinalitu, coˇz je informace, kter´ a ud´ av´ a, kolik individu´ al˚ u do dan´eho vztahu vstupuje. Moˇzn´e hodnoty jsou:
17
• existuje (some) - napˇr. pokud existuje organizaˇcn´ı jednotka, kter´e je zamˇestnanec vedouc´ım, jedn´a se o vedouc´ıho u ´stavu (jeVedoucim some OrgJednotka), • pro kaˇzd´ y (only) - napˇr. kaˇzd´ y ˇclen org´ anu fakulty je osoba (maClena only Osoba), • minim´ alnˇe (min) - napˇr. zamˇestnanec v´ı minim´alnˇe o 1 z´apisu z KD, • exaktnˇe (exactly) - napˇr. student studuje pr´avˇe jeden studijn´ı program, • maxim´ alnˇe (max) - napˇr. student m´ a maxim´alnˇe 1 ˇskolitele. Nyn´ı m˚ uˇzeme vyj´ adˇrit, ˇze vedouc´ı u ´stavu je vedouc´ım nˇejak´e organizaˇcn´ı jednotky. Tuto informaci vloˇz´ıme jako nadtˇr´ıdu tˇr´ıdy VedouciUstavu, kterou vytvoˇr´ıme jako omezen´ı objektu (object restriction), coˇz je v podstatˇe v´ yraz nad tˇr´ıdami, kter´ y tvoˇr´ı pr´ azdn´ y uzel v RDF grafu. T´ımto jsme vyj´adˇrili nutnou podm´ınku pro to, abychom mohli ˇr´ıci, ˇze individu´ al je vedouc´ım u ´stavu. Tato podm´ınka vˇsak nen´ı postaˇcuj´ıc´ı, protoˇze je rovnˇeˇz nutn´e, aby vedouc´ı u ´stavu byl zamˇestnanec. I kdyˇz uvedeme obˇe nadtˇr´ıdy, st´ale vˇsak nen´ı jist´e, zda se jedn´a o postaˇcuj´ıc´ı podm´ınky (pˇredpoklad otevˇren´eho svˇeta, viz v´ yˇse). Je tedy nutn´e explicitnˇe vyj´adˇrit, ˇze podm´ınky jsou postaˇcuj´ıc´ı. Toto lze prov´est tak, ˇze vytvoˇr´ıme v´ yraz nad tˇr´ıdami, kter´ y um´ıst´ıme do seznamu ekvivalentn´ıch tˇr´ıd u tˇr´ıdy VedouciUstavu, nebo lze vyuˇz´ıt funkce editoru Prot´eg´e a konvertovat tˇr´ıdu na definovanou (Defined), coˇz nen´ı nic jin´eho, neˇz pˇreveden´ı seznamu nadtˇr´ıd (podm´ınek) do v´ yrazu v ekvivalentn´ıch tˇr´ıd´ach. V´ ysledek konverze je vyobrazen na obr´azku 5.
Obr´ azek 5: Konverze primitivn´ı tˇr´ıdy na definovanou Definovan´ a (defined) tˇr´ıda je takov´ a, u kter´e lze na z´akladˇe uveden´ ych informac´ı urˇcit, kteˇr´ı individu´ alov´e jsou jej´ımi ˇcleny. Opakem je tˇr´ıda primitivn´ı (primitive), u kter´e jsou uvedeny pouze nutn´e podm´ınky, nikoliv vˇsak postaˇcuj´ıc´ı. Mezi obˇema variantami lze tˇr´ıdu v Prot´eg´e automaticky konvertovat, je vˇsak nutn´e d´at pozor na ztr´atu informac´ı. Napˇr. pokud uvedeme minim´ aln´ı nutn´e podm´ınky pro vedouc´ıho u ´stavu a n´aslednˇe tˇr´ıdu konvertujeme na definovanou, neznamen´ a to, ˇze nem˚ uˇzeme definovat dalˇs´ı vlastnosti, napˇr. to, ˇze vedouc´ı u ´stavu je podtˇr´ıdou veden´ı. Pokud potom provedeme zpˇetnou konverzi, mezi nutn´ ymi podm´ınkami st´ale m´ame, ˇze vedouc´ı u ´stavu je podtˇr´ıdou veden´ı. Dalˇs´ı konverze potom z t´eto podm´ınky udˇel´ a souˇc´ ast nutn´ ych a postaˇcuj´ıc´ıch podm´ınek. Pˇred posledn´ımi dvˇema konverzemi tedy bylo moˇzn´e odvodit, ˇze kaˇzd´ y zamˇestnanec, kter´ y je vedouc´ım organizaˇcn´ı jednotky, je vedouc´ım u ´stavu. Po konverz´ıch se vˇsak tato informace ztratila, protoˇze zamˇestnanec by jeˇstˇe musel b´ yt podtˇr´ıdou veden´ı, coˇz je sice nutn´ a podm´ınka, ale nikde nen´ı explicitnˇe uvedena a nyn´ı jiˇz vedouc´ı u ´stavu nelze automaticky odvodit. Z uveden´eho pˇr´ıkladu je rovnˇeˇz vidˇet, ˇze pro odvozov´ an´ı informac´ı je v´ yhodn´e, aby nutn´e a postaˇcuj´ıc´ı podm´ınky byly souˇcasnˇe minim´ aln´ı. Dalˇs´ı d˚ uleˇzitou konstrukc´ı je tzv. axiom pokryt´ı (covering axiom). M´ame-li napˇr. veden´ı, kter´e m´a podtˇr´ıdy reprezentuj´ıc´ı jeho jednotliv´e sloˇzky, nev´ıme, zda neexistuje jeˇstˇe dalˇs´ı sloˇzka veden´ı, kter´a nen´ı uvedena. Pokud chceme vyj´ adˇrit, ˇze vˇsechny sloˇzky jsou uvedeny a veden´ı nic jin´eho neobsahuje, vyuˇzijeme axiom pokryt´ı, coˇz je nadtˇr´ıda tvoˇren´ a v´ yrazem, ve kter´em jsou jednotliv´e podtˇr´ıdy s logick´ ymi spojkami nebo“ (tedy individu´al patˇr´ı do podtˇr´ıdy ” A nebo B nebo ...). Zaj´ımav´e na t´eto konstrukci je, ˇze nadtˇr´ıdou je tˇr´ıda tvoˇren´a podtˇr´ıdami (cyklus v RDF grafu). Dalˇs´ım axiomem je axiom uzavˇren´ı (closing), kter´ y umoˇzn ˇuje vyj´adˇrit, ˇze ve vztahu nem˚ uˇze b´ yt ˇz´adn´ y jin´ y individu´ al, neˇz individu´ alov´e z uveden´e tˇr´ıdy (napˇr. ˇclenem org´anu fakulty m˚ uˇze b´ yt pouze osoba). Pˇri vyuˇz´ıv´ an´ı tohoto 18
axiomu je nutn´ a obezˇretnost, abychom nezavedli pˇr´ıliˇs velk´e omezen´ı, kter´e by mohlo zp˚ usobit probl´emy (mohl by b´ yt ˇclenem nˇekdo, kdo nen´ı osoba, tˇreba robot?). Na obr´ azku 6 je vyobrazen graf tˇr´ıd v´ ysledn´e ontologie a vztah˚ u mezi nimi a na obr´azku 7 je legenda k tomuto grafu.
Obr´ azek 6: Graf v´ ysledn´e ontologie ze z´asuvn´eho modulu OntoGraf
Obr´ azek 7: Legenda ke grafu v´ ysledn´e ontologie z obr´azku 6
7.4
Datov´ e vlastnosti
Datov´e vlastnosti (data properties) spojuj´ı tˇr´ıdu ˇci individu´ala s nˇejak´ ym liter´alem (hodnotou datov´eho typu ze sch´ematu XML). M˚ uˇzeme pomoc´ı nich vyj´ adˇrit datov´e omezen´ı tˇr´ıdy (pokud je individu´al ˇclenem tˇr´ıdy, m´ a vlastnost tohoto typu) a to, ˇze individu´ al m´ a konkr´etn´ı hodnotu dan´e vlastnosti. Datov´e vlastnosti se definuj´ı samostatnˇe a maj´ı vlastn´ı hierarchii, na jej´ımˇz vrcholu je topDataTypeProperty. Obdobnˇe jako u objektov´ ych vlastnost´ı u nich m˚ uˇzeme definovat rozd´ılnost, dom´eny a rozsahy. Rozsahy se zde definuj´ı jako datov´e typy ze sch´ematu XML nebo jako v´ yraz nad tˇemito typy. V uveden´em pˇr´ıkladu jsem definoval pouze nˇekolik vlastnost´ı pro pˇrehlednou uk´azku. Pokud bychom mˇeli definovat napˇr. vˇsechny vlastnosti osob, kter´e se na fakultˇe vyuˇz´ıvaj´ı, pˇrekroˇcilo by to rozsah t´eto pr´ace. Na obr´azku 8 je uvedena vytvoˇren´ a hierarchie datov´ ych vlastnost´ı.
Nyn´ı m˚ uˇzeme vyj´ adˇrit napˇr. to, ˇze kaˇzd´ a osoba mus´ı m´ıt datum narozen´ı. Toto provedeme tak, ˇze osobˇe pˇrid´ ame nadtˇr´ıdu s datov´ ym omezen´ım (Data type restriction) s vlastnost´ı datumNarozeni a exaktn´ı kardinalitou 1.
7.5
Individu´ alov´ e
Individu´ alov´e jsou konkr´etn´ımi instancemi tˇr´ıd (napˇr. ve tˇr´ıdˇe Fakulta bude individu´al FIT). Individu´aly oznaˇcujeme jejich URI, kter´e konˇc´ı n´ azvem (oznaˇcen´ım) individu´ala, kter´ y dle konvence zaˇc´ın´a mal´ ym p´ısmenem. Do naˇseho pˇr´ıkladu pˇrid´ ame individu´ aly pro studijn´ı programy, poradn´ı sbory, org´any, organizaˇcn´ı jednotky a dˇekana. Studijn´ım program˚ um potom m˚ uˇzeme pˇriˇradit datovou vlastnost s celkov´ ym poˇctem kredit˚ u. Protoˇze jsme zadali, ˇze poˇcet kredit˚ u je z rozsahu int, mus´ıme pˇri zad´av´an´ı hodnoty zadat i datov´ y typ (jinak by vznikla nekonzistence). N´ aslednˇe pˇrid´ ame individu´ aly pro vedouc´ı u ´stav˚ u. Vedouc´ımu UPSY explicitnˇe pˇrid´ame nadtˇr´ıdu VedouciUstavu, vedouc´ım ostatn´ıch u ´stav˚ u pouze pˇrid´ ame vlastnost (object property assertion) jeVedoucim, kterou je pˇriˇrad´ıme k jednotliv´ ym individu´ al˚ um organizaˇcn´ıch jednotek. U vedouc´ıho UIFS tuto vlastnost vynech´ame a m´ısto n´ı vyuˇzijeme inverzn´ı vlastnost maVedouciho pro u ´stav. Pokud nyn´ı v Prot´eg´e spust´ıme klasifikaci, dojde k odvozen´ı vztah˚ u a informac´ı, kter´e nejsou explicitnˇe uvedeny. Ve tˇr´ıdˇe VedouciUstavu tedy budou vˇsichni vedouc´ı u ´stav˚ u, i kdyˇz jsme tuto informaci explicitnˇe neuvedli. Informace, kter´e jsme explicitnˇe zadali, se naz´ yvaj´ı pˇredpokl´adan´e (asserted) a informace, kter´e byly automaticky odvozeny, se naz´ yvaj´ı odvozen´e (inferred). Prot´eg´e tyto informace rozliˇsuje uveden´ım do samostatn´eho seznamu nebo barvou. Pˇr´ıklad v´ ysledku odvozov´ an´ı ve tˇr´ıdˇe VedouciUstavu je na obr´azku 9.
Obr´ azek 9: Pˇredpokl´ adan´e a odvozen´e informace o tˇr´ıdˇe VedouciUstavu
20
Z odvozov´ an´ı je vidˇet strojov´e zpracov´ an´ı informac´ı, kter´e je jedn´ım ze z´akladn´ıch princip˚ u s´emantick´eho webu. Pokud bychom vytvoˇrili webovou str´ anku a doplnili ji o s´emantick´e informace, do tˇechto informac´ı m˚ uˇzeme zahrnout, ˇze dan´ a informace je napˇr. o vedouc´ım u ´stavu. Strojovˇe lze potom odvodit, ˇze tato informace je informac´ı o nˇejak´em zamˇestnanci. Pokud uvedeme i u ´stav, lze odvodit konkr´etn´ıho zamˇestnance (individu´ala). Naopak pokud uvedeme, ˇze nˇejakou informaci napsal dan´ y zamˇestnanec, lze odvodit, ˇze se jedn´a o informaci od vedouc´ıho u ´stavu. Pokud bychom mˇeli mnohem podrobnˇeji zpracovanou ontologii, bylo by moˇzn´e odvozovat velk´e mnoˇzstv´ı informac´ı. Napojen´ım takov´e ontologie na velkou s´ıt’ propojen´ ych ontologi´ı bychom z´ıskali dalˇs´ı moˇznosti odvozov´ an´ı a je moˇzn´e, ˇze bychom mohli vytvoˇrit i agenta, kter´ y by byl schopen plnit jednoduch´e u ´koly jako napˇr. nal´ezt literaturu k pˇredmˇet˚ um, kter´e uˇc´ı pan dˇekan, coˇz ˇz´ adn´ y bˇeˇzn´ y vyhled´avaˇc pˇr´ımo nedok´aˇze. Jednalo by se vˇsak o pr´aci pro cel´ y t´ ym lid´ı, kter´ a by mnohon´ asobnˇe pˇres´ ahla rozsah t´eto pr´ace. V´ıce informac´ı o tvorbˇe ontologi´ı v editoru Prot´eg´e lze nal´ezt v [28] a [12].
8
Z´ avˇ er
S´emantick´ y web je rozˇs´ıˇren´ım klasick´eho webu, kter´e je st´ale ve v´ yvoji. Jeho souˇcasn´a definice se prozat´ım liˇs´ı od p˚ uvodn´ı vize, ve kter´e softwarov´ı agenti na webu dˇelaj´ı za ˇclovˇeka bˇeˇzn´e u ´kony spojen´e s vyhled´av´an´ım a zpracov´ an´ım informac´ı. S´emantick´ y web je nyn´ı webem, ve kter´em jsou obsaˇzeny s´emantick´e informace pro zpracov´an´ı stroji. Nˇekter´e technologie vyuˇz´ıvan´e pro tvorbu s´emantick´eho webu dosud nebyly standardizov´any, nˇekter´e jsou v intenzivn´ım v´ yvoji a nˇekter´e jsou st´ ale pouze ve formˇe viz´ı do budoucnosti. V souˇcasn´e dobˇe se proto vyuˇz´ıv´a pˇredevˇs´ım v akademick´e a v´ yzkumn´e oblasti. Z´ akladn´ı technologi´ı s´emantick´eho webu je RDF, coˇz je grafov´a struktura pro reprezentaci vztah˚ u mezi tˇr´ıdami objekt˚ u re´ aln´eho svˇeta i jednotliv´ ymi individu´ aly. Existuj´ı r˚ uzn´e syntaxe a rozˇs´ıˇren´ı tohoto jazyka, kter´a zvyˇsuj´ı jeho vyjadˇrovac´ı schopnosti. Aby bylo moˇzn´e definovat r˚ uzn´e tˇr´ıdy objekt˚ u pomoc´ı vztah˚ u s jin´ ymi tˇr´ıdami, je potˇreba m´ıt slovn´ıky pojm˚ u (tˇr´ıd) s pˇresn´ ymi definicemi jejich v´ yznam˚ u a se vztahy mezi jednotliv´ ymi pojmy. K tomuto u ´ˇcelu slouˇz´ı ontologie, kter´e jsou velmi d˚ uleˇzitou souˇc´ ast´ı s´emantick´eho webu. Aby mohl b´ yt s´emantick´ y web bˇeˇznˇe vyuˇz´ıv´an, je tˇreba, aby byly do souˇcasn´eho webu doplnˇeny s´emantick´e informace. Aˇz budou standardizov´ any vˇsechny potˇrebn´e technologie, velk´e firmy zaˇcnou vyuˇz´ıvat jejich moˇznost´ı a dopln´ı s´emantick´e informace do sv´ ych web˚ u, konkurenˇcn´ı boj posune v´ yvoj s´emantick´eho webu vpˇred. Po doplnˇen´ı s´emantick´ ych informac´ı se dostaneme do st´ adia, ve kter´em bude moˇzn´e zah´ajit v´ yvoj agent˚ u naplˇ nuj´ıc´ıch p˚ uvodn´ı vizi s´emantick´eho webu tak, jak ji vymyslel Tim Berners-Lee.
Literatura [1] Alvestrand, H.; aj.: About the Unicode Standard. In The Unicode Consortium, The Unicode Consortium, 2009, [Online; navˇst´ıveno 14.4.2010]. URL http://www.unicode.org/standard/standard.html [2] Archer, P.; Smith, K.; Perego, A.: Protocol for Web Description Resources (POWDER): Description Resources. In W3C Recommendation, W3C, 2009, [Online; navˇst´ıveno 14.4.2010]. URL http://www.w3.org/TR/powder-dr/ [3] Bartoˇs, P.: GlobalSemantic.Net. 2008, [Online; navˇst´ıveno 14. 4. 2010]. URL http://sites.google.com/a/globalsemantic.net/gsn/Home [4] Berners-Lee, T.: Notation 3. In An readable language for data on the Web., W3C, 2006, [Online; navˇst´ıveno 14.4.2010]. URL http://www.w3.org/DesignIssues/Notation3 [5] Berners-Lee, T.; Beckett, D.: Turtle - Terse RDF Triple Language. In W3C Team Submission, W3C, 2008, [Online; navˇst´ıveno 14.4.2010]. URL http://www.w3.org/TeamSubmission/turtle/ [6] Berners-Lee, T.; aj.: Uniform Resource Identifier (URI): Generic Syntax. In IETF Tools, IETF, 2005, [Online; navˇst´ıveno 14.4.2010]. URL http://tools.ietf.org/html/rfc3986
21
[7] Connolly, D.: Gleaning Resource Descriptions from Dialects of Languages (GRDDL). In W3C Recommendation, W3C, 2007, [Online; navˇst´ıveno 14.4.2010]. URL http://www.w3.org/TR/grddl/ [8] Dean, M.; aj.: RIF. In RIF Working Group, W3C, 2010, [Online; navˇst´ıveno 14.4.2010]. URL http://www.w3.org/2005/rules/wiki/RIF_Working_Group [9] Decker, S.; Melnik, S.; van Harmelen, F.; aj.: THE SEMANTIC WEB: The Roles of XML and RDF. In Knowledge Networking, VU University Amsterdam, 2000, [Online; navˇst´ıveno 14.4.2010]. URL http://www.few.vu.nl/~frankh/postscript/IEEE-IC00.pdf [10] Hendler, J.: Agents and the Semantic Web. In IEEE Intelligent Systems Journal, University of Maryland, Bˇrezen 2001, [Online; navˇst´ıveno 14. 4. 2010]. URL http://www.cs.umd.edu/~hendler/AgentWeb.html [11] Herman, I.: Tutorial on the Semantic Web. W3C, Duben 2010, [Online; navˇst´ıveno 14. 4. 2010]. URL http://www.w3.org/People/Ivan/CorePresentations/SWTutorial/Slides.pdf [12] Horridge, M.; Moulton, G.; Stevens, R.; aj.: A Practical Guide To Building OWL Ontologies Using Prot´eg´e 4 and CO-ODE Tools. The University Of Manchester, prvn´ı vyd´an´ı, Bˇrezen 2010, [Online; navˇst´ıveno 18. 5. 2010]. URL http://owl.cs.manchester.ac.uk/tutorials/protegeowltutorial/resources/ ProtegeOWLTutorialP4_v1_2.pdf [13] Horrocks, I.: DAML+OIL: a Description Logic for the Semantic Web. In Department of Computer Science, University of Manchester, 2002, [Online; navˇst´ıveno 14.4.2010]. URL http://sites.computer.org/debull/A02mar/hmain-a.ps [14] Isaac, A.; aj.: SKOS Simple Knowledge Organization System - Home Page. In W3C Semantic Web Activity, W3C, 2009, [Online; navˇst´ıveno 14.4.2010]. URL http://www.w3.org/2004/02/skos/ [15] Martin, S.: S´emantick´ y web: Google se uˇc´ı kombinovat. In Chip.cz online, Burda Praha, spol. s.r.o., 2009, [Online; navˇst´ıveno 14.4.2010]. URL http://old.chip.cz/cs/clanky/semanticky-web-google-se-uci-kombinovat.html [16] Matthews, B.: Semantic Web Technologies. In CCLRC Rutherford Appleton Laboratory, JISC, 2005, [Online; navˇst´ıveno 14.4.2010]. URL http://www.jisc.ac.uk/uploaded_documents/jisctsw_05_02bpdf.pdf [17] Matul´ık, P.; Pitner, T.: S´emantick´ y web a jeho technologie. 2004, [Online; navˇst´ıveno 14. 4. 2010]. URL http://www.ics.muni.cz/zpravodaj/clanky_tisk/296.pdf [18] McGuinness, D.; van Harmelen, F.: OWL Web Ontology Language. In W3C Recommendation, W3C, 2004, [Online; navˇst´ıveno 14.4.2010]. URL http://www.w3.org/TR/owl-features/ [19] Musen, M.; aj.: The Prot´eg´e Ontology Editor and Knowledge Acquisition System. 2010, [Online; navˇst´ıveno 18. 5. 2010]. URL http://protege.stanford.edu/ [20] Pagels, M.; aj.: The DARPA Agent Markup Language Homepage. 2006, [Online; navˇst´ıveno 14. 4. 2010]. URL http://www.daml.org/ [21] Palmer, S.: The Semantic Web: An Introduction. 2009, [Online; navˇst´ıveno 14. 4. 2010]. URL http://infomesh.net/2001/swintro/ [22] Prud’hommeaux, E.; Seaborne, A.: SPARQL Query Language for RDF. In W3C Recommendation, W3C, 2008, [Online; navˇst´ıveno 14.4.2010]. URL http://www.w3.org/TR/rdf-sparql-query/ [23] Semantic Web. 2009, [Online; navˇst´ıveno 14. 4. 2010]. URL http://semanticweb.org/
22
[24] Uschold, M.: Where are the Semantics in the Semantic Web? In AI Magazine, The Boeing Company, 2000, [Online; navˇst´ıveno 14.4.2010]. URL http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.8164\&rep=rep1\&type=pdf [25] Semantic Web. W3C, 2010, [Online; navˇst´ıveno 14. 4. 2010]. URL http://www.w3.org/standards/semanticweb/ [26] Semantic Web. In Wikipedia – The Free Encyclopedia, nadace WIKIMEDIA, 2010, [Online; navˇst´ıveno 14.4.2010]. URL http://en.wikipedia.org/wiki/Semantic_Web [27] XSLT. In Wikipedie – Otevˇren´ a encyklopedie, nadace WIKIMEDIA, 2010, [Online; navˇst´ıveno 14.4.2010]. URL http://cs.wikipedia.org/wiki/XSLT ˇ [28] Cerba, O.: Ontologie. 2010, [Online; navˇst´ıveno 18. 5. 2010]. URL http://www.slideshare.net/Buthyl/ontologie ˇ ˇ [29] Cernoˇ s, O.: S´emantick´ y web – principy, prostˇredky, aplikace. FEL CVUT, 2009, [Online; navˇst´ıveno 14. 4. 2010]. URL http://uisk.ff.cuni.cz/dwn/1003/10522cs_CZ_semanticky%20web.pdf