}w!"#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Analýza a návrh ICT pro popis a representaci znalostí DIPLOMOVÁ PRÁCE Martin Fajmon Brno, jaro 2008
Prohlášení Prohlašuji, že tato diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Vedoucí práce: prof. RNDr. Jiří Hřebíček, CSc. ii
Poděkování Mé poděkování patří vedoucímu práce prof. RNDr. Jiřímu Hřebíčkovi, CSc. za jeho cenné připomínky v průběhu práce a za trpělivost, se kterou práci četl. iii
Shrnutí První teoretická část diplomové práce se zabývá interoperabilitou a problémy získání potřebné informace z dat pro potřeby sémantické interoperability. Dále se práce v první části zabývá strukturou a formální reprezentací ontologií, které jsou jedním z nástrojů pro sémantickou interoperabilitu. Cílem druhé praktické části je navrhnout a implementovat webový systém pro správu a distribuci ontologií ve formátu OWL. Cílem třetí části je vybrat vhodnou doménu z legislativy životního prostředí a popsat doménovou znalost pomocí ontologie, která bude distribuována a zpracována pomocí webového systému z druhé části práce. iv
Klíčová slova Sémantická interoperabilita, IDABC, XML, Ontologie, OWL, Ontologický portál, Informační systémy, Enviromentální informace, Legislativa v
Obsah 1 Úvod............................................. 1 1.1 Interoperabilita.................................... 2 1.2 IDABC a Evropský interoperabilní rámec..................... 3 1.3 Členění interoperability v egovermentu...................... 6 2 Sémantická interoperabilita................................ 8 2.1 Metadata........................................ 9 2.2 XML.......................................... 11 2.3 Mapování metadat.................................. 12 2.4 Techniky mapování metadat............................. 13 2.5 Sémantický web.................................... 14 2.6 XML, RDF a ontologie jako základ sémantického webu............. 15 3 Ontologie.......................................... 18 3.1 Struktura ontologií.................................. 19 3.2 Jazyky a nástroje pro manipulaci s ontologiemi.................. 20 3.2.1 Ontolingua.................................. 21 3.2.2 OCML..................................... 21 3.2.3 SHOE..................................... 23 3.2.4 Ontobroker.................................. 24 3.2.5 RDF Schema.................................. 25 3.2.6 DAML+OIL.................................. 26 3.3 OWL současný jazyk webových ontologií.................... 28 3.4 Všestranné ontologické editory a reasonery.................... 36 3.4.1 Protégé..................................... 36 3.4.2 SWOOP.................................... 37 3.4.3 Reasonery................................... 39 3.5 Praktické využití ontologií.............................. 40 4 Webový portál pro správu a distribuci ontologií.................... 41 4.1 Proč používat a vyvíjet Open Source řešení?.................... 41 4.2 Doménové ontologie................................. 42 4.3 Top-level ontologie.................................. 44 4.4 Webový portál jako úložiště ontologií....................... 44 5 Identifikace požadavků a návrh webového portálu.................. 47 5.1 Technologie a architektura.............................. 47 5.1.1 Presentační vrstva.............................. 48 5.1.2 Aplikační vrstva............................... 48 5.1.3 Databázová vrstva.............................. 49 5.2 Specifikace a návrh.................................. 49 6 Implementace........................................ 57 6.1 Základní popis systému............................... 57 6.2 Uživatelé........................................ 57 vi
6.3 Registrace uživatelů................................. 58 6.4 Jednotlivé sekce portálu............................... 59 6.4.1 Sekce Uživatelský účet.......................... 59 6.4.2 Sekce Autoři ontologií........................... 60 6.4.3 Sekce Ontologie.............................. 60 6.4.4 Editace ontologií............................... 61 6.5 Uživatelské rozhraní................................. 62 6.6 Instalace portálu na webový hosting........................ 62 7 Ontologie s problematikou odpadového hospodářství................ 65 7.1 Enviromentální informace a souvislost s ontologiemi.............. 65 7.2 Informační zdroje o odpadovém hospodářství.................. 66 7.3 Postup při tvorbě ontologie o odpadovém hospodářství............. 67 7.3.1 Skupiny odpadů............................... 68 7.3.2 Katalog odpadů................................ 68 7.3.3 Nebezpečný odpad.............................. 68 7.3.4 Nebezpečné vlastnosti odpadu....................... 69 7.3.5 Nakládání s odpady............................. 70 7.3.6 Doplnění ontologie.............................. 71 7.3.7 Souhrn..................................... 71 8 Závěr............................................. 72 Literatura............................................. 73 A Obsah přiloženého CD.................................. 74 vii
Kapitola 1 Úvod V dnešní době se využívají různorodé informační a komunikační technologie (ICT). Prostředky ICT využívá stále více firem, úřadů i jedinců. Vzniká velké množství nových technologií, platforem, webových portálů, informačních systémů, programů a jiných druhů ICT. Nárůst nových ICT musí pružně reagovat na potřeby uživatelů, kteří mají stále větší nároky a využívají ICT stále na nové činnosti, které do té doby provozovali bez podpory ICT. Na tyto uživatelské nároky musí stejně tak reagovat i stávající ICT, a proto se i již vytvořené a hotové ICT stále upravují. Otázkou zůstává, kdy se zastaví tento rozvoj a nárůst? Myslím, že na tuto otázku si zatím můžeme odpovědět tak, že zastavení nebo jen ustálení tohoto rozvoje je zatím v nedohlednu. Dalším trendem je ústup od velkých monolitických řešení, která umí vše, co uživatel potřebuje, k jednotlivým menším částem (modulům, službám), které si pak data mezi sebou vyměňují. Důvodů je několik, jmenujme ty nejdůležitější: Modul se naprogramuje rychleji než monolitický celek, takže se pak mohou prosadit nové vývojářské firmy, které zatím nemají kapacity pro vytvoření celku. Modul má menší složitost než celek, takže v něm vývojáři nenadělají tolik chyb, jako kdyby byla stejná část kódu součástí celku. Modul je zapouzdřený a jeho funkce se využívají prostřednictvím nějaké komunikační brány. Pokud se objeví nějaká chyba, opraví se jen vnitřek modulu, ale komunikační brána zůstane stejná, i když se modul vnitřně třeba kompletně změní. Opravy tak probíhají levněji, jednodušeji a rychleji než v případě celku. Pokud uživatel zjistí, že potřebuje do svého informačního systému (IS) nové funkce, je jednodušší přidat jen nový modul než přeprogramovávat celý stávající IS. Modul může pro ostatní software nabízet své služby prostřednictvím sítě internet. Mohou ho pak využívat různé jiné IS po celém světě. A pokud vývojářská firma aktualizuje daný modul, nemusí ho distribuovat ke všem zákazníkům, ale aktualizuje ho jen u sebe na serveru. Jednotlivé ICT řešení a moduly si pak musí data mezi sebou nějakým způsobem vyměňovat, aby mohly být využity jako komplexní řešení uživatelských nároků. A data si nestačí jenom vyměňovat, ale musí těmto datům navzájem rozumět. Musí se tedy hledat řešení výměny dat, která budou pružně reagovat jak na nová ICT řešení, tak i na změnu stávajících. 1
1.1. INTEROPERABILITA 1.1 Interoperabilita Pojem interoperabilita je velice širokým pojmem, a proto se používá v nejrůznějších souvislostech. Interoperabilita pochází z anglického originálu interoperability. Nebudeme se pokoušet tento termín překládat, jen ho počeštíme. O překlad se však již pokusili jiní - zalistujete-li anglicko-českým výkladovým slovníkem výpočetní techniky, najdete tam na straně 109, že interoperability znamená v češtině stykovou provozuschopnost, případně stykovou funkceschopnost [1]. Myslím, že tyto překlady jsou velice nešt astné, a proto zůstaneme u počeštěné interoperability. Představte si, že si koupíte nový elektrický spotřebič, zapojíte ho do elektrické sítě a zapnete. To, že spotřebič funguje, je projevem interoperability mezi spotřebičem a vaší elektrickou sítí. V tomto případě je interoperabilita zajištěna normovanou elektrickou zástrčkou a také tím, že je v elektrické síti předem dohodnuté napětí. V různých souvislostech je třeba definovat interoperabilitu jinak, přesto lze najít společný jmenovatel. Obecná definice interoperability by mohla znít jako schopnost vzájemně si rozumět, vzájemně spolupracovat, dosáhnout vzájemné součinnosti. V oblasti ICT se pojem interoperability používá v souvislosti s možností vzájemné výměny dat mezi různými systémy. Za interoperabilitu lze považovat třeba to, že si můžeme soubor vytvořený na operačním systému Linux prohlédnout na počítači s Microsoft Windows. Vidíme zde, že má interoperabilita více úrovní. Je potřeba nějakým způsobem dva počítače propojit fyzicky, zajistit schopnost obou operačních systémů vzájemně si předávat data a nakonec součinnost aplikačních programů, která je řešena nějakým standardizovaným formátem souboru. Interoperabilita na vyšších úrovních tedy musí využívat interoperability na úrovních nižších. Aby bylo dosaženo interoperability na různých úrovních, musí se přesně dodržovat stanovené standardy. Pro oblast, o kterou se tato diplomová práce zajímá, lze tedy interoperabilitu definovat jako schopnost systémů založených na ICT a business procesů, které tyto systémy podporují, vyměňovat si navzájem data a umožnit sdílení informací a znalostí [12]. Interoperabilní rámec (Interoperability Framework) je množina standardů a směrnic, která popisuje způsob na kterém by se měli účastníci komunikace shodnout, aby mohli komunikovat bez problémů. Jelikož jsme si již výše řekli, že tehcnologie v ICT se velice rychle mění, je z toho jasné, že se bude v čase měnit i interoperabilní rámec (s příchodem nových technologií vzniknou nová doporučení). V tomto případě je vždy doporučeno volit takové technologie, které nejsou na pokraji svých možností. Tzn. doporučuje se využití nových technologií a otevřených standardů. Interoperabilita je velice významná nejen pro soukromé firmy pro komunikaci mezi sebou nebo v rozsáhlých organizacích pro komunikaci mezi jejich rozličnými systémy, ale také pro státní správu a její úřady. A nezáleží, zda jde o úřady stejné úrovně či mezi úřady naprosto odlišného typu, velikosti i úrovně. Dokonce nehraje roli, zda se jedná o úřady v rámci konkrétního regionu či země. S postupující globalizací požadavek interoperability směřuje i ke spolupráci v rámci sousedních států či napříč kontinentem. Nutnost interoperability si nyní stále silněji uvědomují i ve všech členských státech Evropské unie (EU). 2
1.2 IDABC a Evropský interoperabilní rámec 1.2. IDABC A EVROPSKÝ INTEROPERABILNÍ RÁMEC IDABC [15] znamená Interoperabilní dodávání Pan-evropských služeb egovernmentu správním orgánům, podnikům a občanům. IDABC je komunitární program řízený Generálním ředitelstvím pro podnikání a průmysl Evropské komise. IDABC využívá možností, které skýtají informační a komunikační technologie pro podporu dodávání veřejných služeb občanům i podnikům v Evropě přes hranice, ke zlepšení účinnosti a spolupráce mezi evropskými veřejnými správami a přispívá k tomu, aby se Evropa stala atraktivním místem pro život, práci a investování. K dosažení svých cílů IDABC vydává doporučení, vyvíjí řešení a poskytuje služby, které umožňují národním a evropským veřejným správám komunikovat elektronicky a nabízet moderní veřejné služby podnikům a občanům. Program také poskytuje financování projektů splňujících požadavky evropské politiky zlepšovat spolupráci mezi veřejnými správami v Evropě. Obrázek 1.1: Interoperabilita v EU. Evropská komise přijala rozhodnutí, které přijímá základní principy interoperability. Ev- 3
1.2. IDABC A EVROPSKÝ INTEROPERABILNÍ RÁMEC ropský interoperabilní rámec je tedy množina doporučení a směrnic EU pro elektronizaci veřejné správy (egovernment) a jejich služeb tak, aby veřejná správa, podniky a občané mohli komunikovat přes hranice na pan-evropské úrovni v celé EU. Základní principy jsou tyto [11]: 1. Přístupnost (Accesibility) egovernment musí vytvářet rovnocennou příležitost pro všechny vrstvy potencionálních uživatelů na základě otevřených a všeobecně přijatých prostředků, které jsou veřejně přístupné a dostupné bez jakékoliv diskriminace. Existují ekonomické a sociální rozdíly mezi regiony a občany, proto by měly být služby egovermentu dostupné různými způsoby (web, televize, mobil, mobilní kiosky... ). Jako samozřejmost se bere přístupnost pro postižené občany a vícejazyčný přístup. 2. Mnohojazyčnost (Multilingualism) zejména na území EU je mnoho národních jazyků, které jsou využívány v egovermentu. Dá se říci, že jazyk je hlavním faktorem při efektivním poskytování pan-evropských egovernment služeb, zejména pak při prezentaci informací. Princip architektury informací by měl být tedy jazykově neutrální (pokud je to možné), například XML-schema, aby se usnadnil překládací mechanismus. V případě, že není toto možné držet, je potřeba zajistit překládací mechanismus. 3. Bezpečnost (Security) členské státy a jejich úřady a instituce musí posoudit vlastní bezpečnostní politiku a tuto politiku musí postavit do souladu s obecnou bezpečnostní politikou na pan-evropské úrovni. Pro pan-evropskou úroveň platí bezpečnostní zásady podle směrnice 2001/264/EC. Bezpečnostní funkce by měly dosahovat maximální úrovně transparentnosti při vynaložení minimálního úsilí, ale přitom stále zachovat dohodnutou úroveň bezpečnosti. 4. Soukromí a ochrana osobních dat (Privacy and personál data protection) služby v pan-evropském egovernmentu potřebují zajistit jednotnou úroveň ochrany osobních dat, včetně možnosti pro jednotlivce se rozhodnout poskytnout svá data jinak, než bylo původně určeno. Při návrhu by měl být kladen důraz na dodržování a zajištění plné podpory existující evropské a národní legislativy související s ochranou dat. 5. Podřízenost (Subsidiarity) doporučení poskytovaná evropským interoperabilním rámcem jsou odpovědná za pan-evropskou úroveň služeb. Podle principů podřízenosti směrnice nezasahují do interní práce správ členských států a EU institucí. Rozhodnutí o nasazení odpovídajících technologických implementací je v rukou konkrétní instituce, a každá z nich by měla podniknout maximum pro dosažení co nejvyššího stupně interoperability. 6. Užití otevřených standardů (use of open standartds) Pro dosažení interoperability v souvislosti s pan-evropskými egovernment službami by se směrnice měly zaměřit na otevřené standardy. Tyto standardy by měly dodržovat tyto principy: 4
1.2. IDABC A EVROPSKÝ INTEROPERABILNÍ RÁMEC Standard je přijat a bude udržován nějakou nevýdělečnou organizací. Standard byl publikován a dokument s jeho specifikací je dostupný zdarma nebo za nominální poplatek. Každému musí být povoleno jeho jakékoliv kopírování, distribuce a užívání zdarma nebo za nominální poplatek. Duševní vlastnictví, které mohou být součástí otevřeného standardu nesmí být poskytovány za úplatu. Licenční poplatek musí být zdarma. 7. Prospěch z software s otevřeným kódem (Benefits of Open Source software) software s otevřeným kódem (Open Source software) pomáhá vytvářet a definovat otevřené standardy a veřejně dostupné specifikace. Otevřený software má veřejně dostupné zdrojové kódy a to otvírá veřejnou demokratickou debatu o jeho funkcích, specifikaci a bezpečnosti, takže se otevřený software stává více robustní a interoperabilní. 8. Užití mutltilateral řešení (use of multilateral solutions) multilateral řešení je systém, kde každý člen komunikuje s ostatními přes jedno centrum. Toto centrum podporuje dohodnuté způsoby komunikace a dohodnuté standardy a specifikace. Oproti tomu systém využívající bilateral řešení dovoluje každému komunikujícímu prvku v systému se spojit přímo se všemi ostatními prvky. Takže tato komunikace může probíhat na rozdílných standardech nebo bez standardů. Dodržovaní těchto principů by mělo vést k tomu, aby mohly instituce efektivně komunikovat s okolím. Bude možno jednodušeji z dat zprostředkovat informaci, a tím bude možno zajistit svobodný přístup k co nejvíce informacím. Dalším přínosem bude, že se co nejvíce subjektů bude moci zapojit do procesu rozhodování. Všechna doporučení říkají pouze popis, co se musí splnit, ale nenařizují užití konkrétní technologie. Tento výběr je ponechán na samotných institucích. Existují tři základní typy komunikací, které evropská interoperabilita musí řešit při výměně dat mezi členskými státy [11]: 1. Komunikace osoby nebo podniku z jednoho členského státu s administrativou jiného státu nebo s evropskými institucemi. 2. Výměna dat mezi administrativami různých států pokud impuls k této výměně vzešel z požadavků občanů nebo podniků na jejich vlastní instituce. 3. Výměna dat mezi členskými státy a institucemi EU. Třeba pokud evropské instituce vyžadují od jednotlivých států statistická data ke zpracování. 5
1.3. ČLENĚNÍ INTEROPERABILITY V EGOVERMENTU Obrázek 1.2: Komunikace v evropské interoperabilitě. 1.3 Členění interoperability v egovermentu Interoperabilitu v egovermentu lze obecně rozdělit do třech základních skupin [11]: 1. Organizační interoperabilita zaměřuje se na definování obchodních cílů, modelování obchodních procesů, informování o spolupráci správ, které si přejí vyměňovat informace a mohou mít rozdílné vnitřní struktury a procesy. Navíc organizační interoperabilita pomáhá doručování (a řešení) požadavků uživatelské komunity tím, že jsou služby dosažitelné, snadno identifikovatelné, přístupné a orientované na uživatele. Byly dohodnuty standardní veřejné služby pro národní úroveň interoperability. 2. Sémantická interoperabilita tento pohled interoperability zaručuje, že existuje přesný způsob výměny informací a je srozumitelný pro jakoukoliv aplikaci, která nebyla původně navržena pro tento účel. Sémantická interoperabilita umožňuje systémům kombinování doručených informací s jinými informačními zdroji a jejich zpracování smysluplným způsobem. Proto je sémantická interoperabilita předpokladem pro vícejazyčné zpracování služeb pro uživatele. 3. Technická interoperabilita řeší technické problémy spojené s propojením počítačových systémů a služeb. Obsahuje věci jako otevřený interface, vzájemné propojení služeb, integrace dat, middleware, prezentaci a výměnu dat, přístupnost a bezpečnost služeb. Zde je potřeba zohlednit všechny technické odlišnosti systémů 6
1.3. ČLENĚNÍ INTEROPERABILITY V EGOVERMENTU Nastavení pan-evropských služeb egovermentu vyžaduje uvažování o interoperabilitě jak z hlediska organizačního, sémantického i technického. 7
Kapitola 2 Sémantická interoperabilita Pro egoverment je nejdůležitější řešit sémantickou interoperabilitu. Představme si situaci, že si chceme mezi dvěma rozdílnými systémy vyměnit data. Nebudeme ted řešit technickou interoperabilitu, kde je potřeba zajistit, aby se data dostala nějakým způsobem z jednoho systému do druhého, a aby mohl druhý systém data v pořádku neporušená přečíst. Musíme ale vyřešit, aby pro druhý systém byla data užitečná, a aby to nebyla jenom změt nul a jedniček. Pro druhý systém se z dat musí stát plnohodnotná informace. Asi nejjednodušší řešení, které každého napadne je, že se oba systémy dohodnou na stejné struktuře datového souboru, který si vyměňují. Pokud budeme chtít vyměňovat základní údaje například o knize v textovém souboru, tak se dohodneme, že textový soubor bude mít vždy zakončení nových řádků Dos/Windows (\r\n), bude v kódování UTF-8 a každý řádek bude obsahovat jeden záznam o knize ve formátu: autor, název knihy, nakladatel, rok vydání, ISBN Konkrétní řádek souboru by pak vypadal třeba takto: Božena Němcová, Babička, Prostor, 2006, 80-7260-155-5 Ano, toto je asi nejjednodušší a nejrychlejší řešení jak dosáhnout interoperability. Tímto jsme vlastně nadefinovali klasický CSV soubor (Comma-separated values, hodnoty oddělené čárkami), což je je jednoduchý souborový formát určený pro výměnu tabulkových dat. I když je v dnešní době stále CSV formát využíván mnoha systémy pro výměnu dat a u starých systémů, které neumí pracovat s novějšími standardy to ani jinak nejde, tak má toto zastaralé řešení hodně nedostatků. Pokud chceme například přehodit pořadí sloupců, nějaký sloupec přidat nebo ubrat, tak vždy o této změně musíme dát vědět systému, který naše datové soubory čte. Nemluvím o tom, jak je velice složité spravovat a upravovat takové systémy. Problémy s přidáním nového datového sloupce nebo s přehozením pořadí sloupců se dají řešit například dohodou, že na prvním řádku budou popisy sloupců dat. Tím vlastně přidáme do souboru metadata, pomocí kterých si vyjádříme sémantiku jednotlivých datových prvků. 8
2.1. METADATA 2.1 Metadata Metadata jsou strukturovaná data, která nesou informace o původních primárních datech [10]. Příkladem mohou být například Exif (Exchangeable image file format) informace, které vkládá digitální fotoaparát při pořizování fotografie k původním obrazovým datům. V těchto metadatech jsou uloženy informace o vzniku fotografie datum a čas pořízení, použitá ohnisková vzdálenost, použití blesku, typ a výrobce fotoaparátu apod. Tyto data tedy popisují situaci, při které byla fotografie pořízena. Metadata mohou mít tyto funkce: Zjišt ovací zjištění, zda dokument existuje. Výběrová užití dat k výběru dokumentu odpovídajícího požadavkům uživatele (např. nalezení dokumentu v jazyce, jemuž uživatel rozumí; zjištění údaje, podle kterého lze dokument vyhledat tzv. přístupový bod). Lokační užití dat k nalezení (zjištění umístění) dokumentu. Identifikační užití nalezených dat k identifikování entity (např. odlišení dvou titulů se stejným autorem). Popisná, dokumentační popis zdroje nebo jeho části (formálních a obsahových znaků) reprezentační (názvy elementů, kódování elementů). Hodnotící (sémantika elementů, klasifikace elementů) přispívá k rozhodnutí, zda se jedná o relevantní objekt. Strukturální data o formální struktuře zdroje za účelem jeho správného uložení a zobrazování. Administrativní užití dat k manipulaci s dokumentem. Archivační zajišt uje identitu a kontext zdroje (podmínka pro dlouhodobé zpřístupnění). Užití dat k získání entity nebo přístupu k ní (např. sestavení objednávky). Řízení zpřístupňování určitých informací (např. podle profilů nebo práv). Sjednocující jednotný formát metadat umožňuje řízení a správu různorodých kolekcí (interoperabilita a integrace různých informačních systémů a zdrojů pracujících s různými formáty a aplikačními protokoly). Pokud se vrátíme k našem příkladu s výměnou informací o knihách. Přidali jsme metadata na první řádek souboru a vyřešili tím změny pořadí sloupců nebo přidání a odebírání nových sloupců. A co když se změní kódování znakové sady souboru, potřebujeme v jednom 9
2.1. METADATA souboru přenášet různorodé struktury nebo evidovat nějaké relace mezi daty? Zvolme tedy jinou podobu metadat. Dohodněme se, že každý záznam uzavřeme do textové značky (tagu) <kniha> a každou datovou položku do vlastního tagu <autor>, <nazevknihy>, <nakladatel>, <rokvydani>, <ISBN>. Každý tag bude párový, takže bude mít počáteční i konečný tag. Výsledný záznam v souboru pak bude vypadat takto: <kniha> <autor>božena Němcová</autor> <nazevknihy>babička<nazevknihy> <nakladatel>prostor</nakladatel> <rokvydani>2006</rokvydani> <ISBN>80-7260-155-5</ISBN> </kniha> Vidíme, že zde není žádný problém s řazením datových položek uvnitř tagu <kniha> (pokud zpracovávající aplikace ví, že autora najde v tagu <autor>, je už jedno kolikátý je autor v pořadí). Stejně tak je bez problémů přidání nebo ubrání nové datové položky, zde už je jen na zpracovávající aplikaci, jestli přidanou položku zná nebo dokáže zpracovat ostatní položky bez ubrané položky. Pokud chceme zpracovávat různorodé struktury není to také problém. Přidejme si třeba definici kódování, která je úplně různá od jiných datových položek: <kodovani="utf-8" /> <kniha> <autor>božena Němcová</autor> <nazevknihy>babička<nazevknihy> <nakladatel>prostor</nakladatel> <rokvydani>2006</rokvydani> <ISBN>80-7260-155-5</ISBN> </kniha> Nyní jsme vyřešili i to, že předem nemusí být dohodnuto jaké kódování soubor používá, jelikož si to zpracovávající aplikace jednoduše zjistí ze souboru samotného. Relace mezi daty také nejsou problém. Evidujme zvlášt autory a knihy, tím uspoříme místo a budeme mít datech větší přehled: <kodovani="utf-8" /> <autor> <id>34</id> <jmeno>božena Němcová</jmeno> </autor> <kniha> <autorid>34</autorid> <nazevknihy>babička<nazevknihy> <nakladatel>prostor</nakladatel> <rokvydani>2006</rokvydani> 10
2.2. XML <ISBN>80-7260-155-5</ISBN> </kniha> Samozřejmě vše máme v rámci jednoho souboru. Takové kombinování metadat s původními daty je velice výhodné. Tuto strukturu používá formát XML, který se v dnešní době postupně stává otevřeným standardem pro sémantickou inteoperabilitu. 2.2 XML XML (Extensible Markup Language) je podmnožinou SGML (Standard Generalized Markup Language). Je to zjednodušená verze SGML, která obsahuje to nejdůležitější a naopak vypouští vše nepotřebné. XML formát je nástupce HTML (HyperText Markup Language), zdědil některé vlastnosti z HTML, ale podstatně je vylepšuje. Můžeme si tedy definovat vlastní tagy a pak pomocí nich vytvářet dokumenty a zpřístupňovat je ostatním pomocí webu a jiných technologií. Finální verze XML 1.0 byla uvolněna konsorciem W3C (World Wide Web Consortium) [13] v roce 1998. Aktuální verze XML je verze 1.1 vydaná v roce 2004. Diskutuje se o verzi 2.0, která ale zatím ještě vydána nebyla. XML dokumenty lze definovat také pomocí gramatik DTD. Jaké jsou rozdíly XML oproti HTML? V HTML se dokumenty značkují způsobem, který zabraňuje zpracování dat pomocí efektivnějších prohledávacích metod. Tagy mají čistě prezentační význam, takže při zpracování HTML dokumentu se můžeme ptát maximálně na pozici hledaného řetězce. Text je označen například jako nadpis, tučné písmo nebo tabulka. Oproti tomu v XML si můžeme nadefinováním vlastních tagů jednotlivé části textu označit i logicky. Může nám potom vzniknout například kniha rozdělená na kapitoly a ke každé kapitole přiřadíme jiného autora. Potom už se můžeme jednoduše ptát na dotaz, kterým zjistíme, kdo kterou kapitolu napsal a ne pouze na polohu. Tímto nám vznikají logické dotazy nad XML dokumentem, které se pro interoperabilitu velice hodí. Samozřejmě není problém vytvořit XML dokument v jiném kódování. Nejvíce se asi používá standardní UTF-8. Použité kódování se musí uvést v deklaraci XML dokumentu: <?xml version="1.0" encoding="utf-8"?> Tím, že je XML jednoduché, je možno rychle vytvářet a upravovat a zpracovávat XML dokumenty automaticky. Stačí jen mít software, který dokáže zpracovat tento standard. Pak jen stačí znát význam jednotlivých tagů a data z XML jednoduše zpracujeme. Původní formát HTML určený pro internet nahradil na XML postavený formát XHTML (extensible hypertext markup language). Dalšími známými formáty pro ukládání dat v XML jsou Doc- Book, ODF (Open Document Format), na kterém staví známé OpenOffice. Nově přibyl Open XML formát od Microsoftu, na kterém staví nová verze Microsoft Office. Je tedy vidět, že XML se začíná prosazovat skoro všude, kde je třeba ukládat a přenášet textová data. Náš ukázkový výsledný soubor postavený na XML by tedy mohl vypadat třeba takto: <?xml version="1.0" encoding="utf-8"?> <autor id="34"> 11
2.3. MAPOVÁNÍ METADAT <jmeno>božena Němcová</jmeno> </autor> <kniha autorid="34"> <nazevknihy>babička<nazevknihy> <nakladatel>prostor</nakladatel> <rokvydani>2006</rokvydani> <ISBN>80-7260-155-5</ISBN> </kniha> Tím, že použijeme jednotný formát pro výměnu informací dosáhneme syntaktické interoperability, kterou lze chápat jako vyjádření struktury metadat umožňující syntakticky kombinovat datové prvky z různých schémat, slovníků a jiných nástrojů. Syntaktické interoperability se dosáhne vyznačením dat podobným způsobem, takže je možné sdílet data v různých systémech. Pokud nad takovýmto formátem dohodneme stejnou strukturu metadat (DocBook, ODF, Open XML), tak navíc dosáhneme interoperability strukturální, která vyjadřuje strukturu metadat. Strukturální interoperability se tedy dosáhne pomocí datového modelu pro specifikaci sémantických schémat, takže se mohou aplikovat společně. 2.3 Mapování metadat Mapování metadat můžeme chápat jako schéma nebo tabulku, která představuje sémantické mapování polí nebo datových prvků v jednom datovém standardu k polím nebo datovým prvkům ve druhém datovém standardu, který má podobnou funkci nebo význam. Mapuje vztahy a ekvivalence mezi dvěma nebo více metadatovými formáty. Použijme náš původní zjednodušený soubor s knihou: <kniha> <autor>božena Němcová</autor> <nazevknihy>babička<nazevknihy> <nakladatel>prostor</nakladatel> <rokvydani>2006</rokvydani> <ISBN>80-7260-155-5</ISBN> </kniha> Tento soubor vyexportujeme z jednoho systému a chceme ho naimportovat do druhého systému. V druhém systému se bohužel nepoužívá <autor>, ale <spisovatel>, stejně tak se místo <nazevknihy> používá <titul>. Pole mají jiný název i když mají stejný význam. Namapujeme si pole dle tabulky 2.1. Pokud tedy importujícímu systému dodáme toto mapování, tak tento systém si původní soubor přemapuje na novou strukturu: <kniha> <spisovatel>božena Němcová</spisovatel> <titul>babička<titul> 12
2.4. TECHNIKY MAPOVÁNÍ METADAT Původní název pole: <autor> <nazevknihy> Nový název pole: <spisovatel> <titul> Tabulka 2.1: Tabulka mapování metadat. <nakladatel>prostor</nakladatel> <rokvydani>2006</rokvydani> <ISBN>80-7260-155-5</ISBN> </kniha> Takto upravený soubor již importující systém dokáže zpracovat. Samozřejmě musí jít takto mapovat například i víc polí z původního souboru do jednoho pole v novém souboru nebo nějaká pole třeba úplně vynechat. Jedině tak se dosáhne větší variability a tím i interoperability. Pro transformaci XML souborů máme předem připraveny nástroj XSLT (extensible Stylesheet Language), který se používá pro transformaci XML souborů na HTML pro prohlížení v prohlížeči. Lze ale pomocí tohoto nástroje jednoduše převést strukturu jednoho XML souboru na jinou strukturu. XSLT je velice mocný jazyk, podporuje například i větvení, podmíněné příkazy aj. Mapování a křížové převody dat umožňují vyhledávacím strojům současné prohledávání v heterogenních databázích zadáním jediného dotazu, jako kdyby byly jedinou databází (sémantická interoperabilita) a efektivně převádět data z jednoho metadatového standardu do jiného. Zopakujme tedy to nejdůležitější, že sémantické interoperability lze dosáhnout mapováním metadat a lze ji chápat jako obsahové vyjádření struktury metadat, které dovoluje sémanticky kombinovat datové prvky z různých schémat, slovníků a jiných nástrojů a umožňuje tak vyhledávat informace napříč heterogenními distribuovanými databázemi, zejména v prostředí internetu zadáním jediného dotazu. Pomocí sémantické interoperability jsou řešeny např. případy, kdy jednotlivé zdroje používají různé termíny pro popis téhož pojmu (např. autor, tvůrce a skladatel) nebo naopak používají stejné termíny pro různé pojmy. Sémantické interoperability lze dosáhnout užíváním standardů popisu obsahu zdrojů (např. AACR nebo Dublin Core). 2.4 Techniky mapování metadat Jelikož mapování není vždy tak jednoduché, jak jsem si předvedli, tak se na mapování metadat dají použít nejrůznější techniky SIA (Semantic Interoperability Assets). Např. [16]: Nomenklatura je systém pojmenování a zařazování (klasifikace) určitých objektů jakožto prvků dané kategorie. Nejčastěji se nomenklaturou rozumí ve vědě neměnná soustava termínů. Nomenklatrua neobsahuje slovesa, adjektiva, názvy dějů, ale jen názvy substantivní povahy. 13
2.5. SÉMANTICKÝ WEB Tezaurus je slovník, který uživateli nabízí seznam synonym, někdy i antonym. Je to slovník, který umožňuje uživatelům nabízet shodný nebo podobný seznam slov, což zajišt uje shodné vyjádření problematiky překladu určitého tématu popsaného jazykem autora do jazyka systému. Vyjadřuje pojmy, které jsou v přirozeném jazyce těžko postižitelné a pomocí složených termínů a dalších nástrojů překonává problémy s jazykem umělým. S jeho pomocí můžeme hledat nějaké informace, aniž bychom věděli, co je preferovaný termín. Umožňuje nám ulehčit práci při nepřeberném množství informací jako propojovací jazyk v informačních systémech. Vícejazyčný slovník je slovník, který je využíván pro vyhledávání slova nebo fráze ve více národních jazycích. Jeden jazyk je zvolen jako základní. Jelikož má nejvíce termínů angličtina, tak se většinou stává základním jazykem. Vyhledávané slovo je přeloženo do základního jazyka, jsou vyhledány ekvivalenty v ostatních jazycích a pak se prohledají dokumenty v různých jazycích. Často pak ještě následuje překlad vyhledaných dokumentů do národního jazyka hledajícího. Důležité je mít dobře zpracováné národní slovníky oboru, pro který se multijazyčný slovník vytváří. Ontologie je popis určité problematiky. Je to formální a deklarativní reprezentace, která obsahuje definici pojmů (glosář) a definici vztahů mezi jednotlivými pojmy (tezaurus). Ontologie je slovníkem, který slouží k uchovávání a předávání znalosti týkající se určité problematiky. Ontologií se budeme zabývat podrobně v následující kapitole. Mapovací tabulka je tabulka, ve které je uloženo jak namapovat datový prvek z jednoho standardu na datový prvek z druhého standardu. Vlastně je to zhruba něco takového, co jsme použili zjednodušeně v našem příkladu při mapování našeho příkladu s knížkou. Mapovací pravidla jsou pravidla, která vyjadřují vztahy mezi prvky mapovaných schémat. Popisy webových služeb se využívají k tomu, abychom věděli, jaké funkce nám webová služba nabízí a tudíž s ní pak mohli následně pracovat. Lze pak tedy využívat různé webové služby v různých systémech. Systém si z popisu zjistí informace o webové službě a pak s ní může náležitě pracovat. 2.5 Sémantický web Když se podíváme na současný web, tak má jedno velké omezení. Dokumenty zobrazované na dnešním webu jsou strukturovány tak, že jsou dobře čitelné pro člověka. S čitelností současných webových dokumentů mají ale problémy počítače. To co je dobře čitelné pro člověka, nemusí být dobře čitelné pro počítače. Právě toto by měl sémantický web změnit. 14
2.6. XML, RDF A ONTOLOGIE JAKO ZÁKLAD SÉMANTICKÉHO WEBU V sémantickém webu jde tedy o to, aby byl význam informace definován tak, aby ho pochopil i počítač. Na webu lze najít velké množství informací. Pokud hledáme nějakou informaci, je velice pravděpodobné, že tato informace někde na webu existuje. Velké množství dat je velice náročné na prohledávání, a proto již ale není zaručeno, že hledanou informaci skutečně najdeme, i když existuje. Při prohledávání webu se musíme spoléhat na služby některého vyhledávače, který je ale velice náročný na údržbu. Obsahuje databázi pro fulltextové prohledávání, která se musí často aktualizovat. Najít v takovém případě přesně tu informaci, kterou potřebujeme je velice složité. Pokud vyhledávač najde odpovědi na náš dotaz, tak se často stane, že najde tisícovky dokumentů a je potom veliký problém vybrat dokument, kde je přesně to, co hledáme. Lze tedy konstatovat, že vyhledat relevantní informaci na dnešním webu se stává stále složitější. Sémantický web si klade za cíl opatřit webové dokumenty novými tagy. Současné HTML tagy jsou totiž nedostatečné pro to, aby dokázaly dokument formátovat do strojově čitelné podoby. Pomocí HTML tagů počítač dokument jen dokáže přetransformovat do podoby čitelné pro člověka. Internetový prohlížeč tak pozná třeba, že část textu v dokumentu je kurzívou, ale už nezná význam této části dokumentu. Zde se jen potvrzuje to, že co má čitelný význam pro člověka nemá čitelný význam pro počítač. Prohlížíme-li si stránky o Rakousku, je pro člověka zcela čitelná věta hlavní město Rakouska Vídeň. Pokud je třeba Vídeň obklopena tagem <strong>, tak počítač neví nic víc než jen to, že má toto slovo zobrazit tučně a snad si z toho odvodí jen to, že je to o něco důležitější informace než okolní text. Ale to, že je Vídeň hlavní město Rakouska už počítač nijak nerozliší. Tagy sémantického webu, ale zapisují informace takovou formou, že je počítač schopen porozumět i významu. Tak lze v sémantickém webu zachytit vztahy mezi množinami dat. V sémantickém webu je důležitá existence inteligentních vyhledávacích agentů. Tito agenti jsou softwarové nástroje, které dokáží efektivně procházet Internet a vybírat z něj pouze relevantní informace. Toto pak zajistí, že takový agent je schopen odpovědět na velice složitý dotaz uživatele ve velice krátkém čase. Agenti vedle toho, že porozumí významu dat, mezi kterými prohledávají, dokáži i najít souvislosti mezi již známými skutečnostmi. Přihlédneme-li k množství dat, která Internet obsahuje, tak získáme opravdu veliký potenciál. 2.6 XML, RDF a ontologie jako základ sémantického webu Základním prvkem sémantického webu je XML, o kterém jsem se mohli již dočíst výše. Jelikož je XML navrženo tak, že je možnost se zaměřit na strukturu a význam dat, lze pomocí něho vytvářet složitější datové struktury a definovat vztahy mezi těmito strukturami. Vezměme příklad s hlavním městem Rakouska. Označkujeme-li tento příklad patřičnými značkami XML, tak sice ještě počítač nebude vědět, co znamenají výrazy hlavní město Rakouska a Vídeň, ale již ví, že Vídeň je hodnotou proměnné hlavní město Rakouska. Jak si uživatel dané XML tagy nadefinuje je již jenom na něm. Tím vyhledávací agent může porozumět struktuře dokumentu, ale nerozumí jeho obsahu. Pro tyto účely bylo vytvořeno 15
2.6. XML, RDF A ONTOLOGIE JAKO ZÁKLAD SÉMANTICKÉHO WEBU RDF. RDF (Resource Description Framework) [13] je obecný rámec pro popis jakéhokoli elektronického zdroje, resp. webové stránky a jejího obsahu, tedy pro vyjádření sémantiky a pro podporu sémantického webu. Popisná metadata mohou zahrnovat údaje o autorovi, datu vytvoření nebo aktualizace, organizaci stránek (sitemap), klíčová slova, předmětové kategorie aj. Jazyk RDF poskytuje robustní flexibilní architekturu pro zpracování metadat na internetu; umožňuje komukoli definovat a používat metadatové schéma, které slouží nejlépe jeho potřebám a současně umožňuje interoperabilní výměnu metadat. RDF je aplikací formátu XML a je vyvíjen konsorciem W3C [13]. RDF je vlastně kombinace slovníku a tezauru pro tagy XML. Význam je kódován do jednoduchých tvrzení, kterým dokáží porozumět softwaroví agenti. Je to systém trojic, kde každá trojice obsahuje subjekt, predikát a objekt tvrzení. Opět v našem příkladu je tedy: Hlavní město (predikát) Rakouska (objekt) Vídeň (subjekt). Takto lze tvořit opravdu složité struktury dat, které dokáží popsat skutečnost jako přirozená řeč. Subjektem nebo objektem nemusí být pouze jednoduchý výraz, ale celé dokumenty nebo jejich části. Tím, že je RDF v jazyce XML je přenositelné mezi různými platformami a systémy. RDF nepředjímá konkrétní reprezentaci ta může být např. grafová nebo vyjadřovat tvrzení prostě jako posloupnost tří výrazů na tomtéž řádku. Jednotlivé prvky tvrzení RDF jsou řazeny za sebe do elementů a atributů XML. Ukažme příklad zápisu tvrzení Tvůrcem (= predikát) zdroje http://www.w3.org/home/lassila (= subjekt) je Ora Lassila (= objekt) : <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:description about="http://www.w3.org/home/lassila"> <s:creator>ora Lassila</s:Creator> </rdf:description> </rdf:rdf> Element rdf:rdf obsahuje atributy definující jmenné prostory :rdf pro konstrukty samotného RDF, a dc pro standard Dublin Core 1, z něhož je převzata vlastnost být tvůrcem. Vlastní tvrzení je pak obsaženo v elementu Description, jehož atribut about odkazuje na subjekt. Sémantický web staví na RDF. Realizace sémantického webu předpokládá implementaci standardů pro sémantickou (RDF), strukturální (XML) a syntaktickou (URI) složku architektury webových dokumentů. Výsledkem aplikace uvedených standardů bude konzistentní logická struktura dat, která bude implicitně vyjadřovat význam zaznamenaných informací. Sémantický web definuje význam pomocí ontologií a odvozuje nové informace zejména pomocí odvozovacích pravidel. Ontologie popisuje vztahy mezi výrazy XML a položkami RDF. Ontologie pro web obsahují taxonomii a množinu odvozovacích pravidel. Pomocí taxonomie definujeme třídy objektů a vztahy mezi nimi. Pomocí odvozovacích pravidel počítač z již známých faktů odvodí nové skutečnosti. 1. <http://dublincore.org/> 16
2.6. XML, RDF A ONTOLOGIE JAKO ZÁKLAD SÉMANTICKÉHO WEBU XML tedy zprostředkovává syntaktickou vrstvu sémantického webu, zatímco ontologie tvoří vrstvu sémantickou. Sémantický web by měl podstatně usnadnit vyhledávání. Dalo by se zjednodušeně říci, že sémantický web je v principu relační databázi publikovanou na webu. Nikoli však pouze v podobě v ní uložených dat, ale s příslušným kontextem, se strojově čitelnou informací o významu dat. 17
Kapitola 3 Ontologie Ve filosofii se ontologie chápe jako nauka (či soubor nauk) o bytí, popřípadě jako univerzální soustava znalostí popisující objekty, jevy a zákonitosti světa. Když se na počátku 90. let minulého století začal objevovat termín ontologie i v informatice, vyvolalo to jistou nevoli ve filosofických kruzích, které se obávaly změny významu již zavedeného pojmu. Navzdory tomu se použití termínu rozšiřovalo i v informatice. Rozvoj sítě Internet si vyžádalo začlenění ontologií přímo do webu. To vedlo ke standardizaci tohoto pojmu i v informatice. V informatice je ontologie specifikována jako "explicitní specifikace konceptualizace". Konceptualizace (tj. systém pojmů modelující určitou část světa) musí být specifikována explicitně, tj. nikoliv jen "skryta" v hlavě svého autora. Účelem ontologií je podpora porozumění mezi lidmi, podpora komunikace mezi počítačovými systémy a podpora návrhu znalostně orientovaných systémů. Základní využití ontologií jsou tato [14]: Podpora porozumění mezi lidmi (např. mezi experty a znalostními inženýry). Podpora komunikace (interoperability) mezi počítačovými systémy. Usnadnění návrhu znalostně-orientovaných aplikací. Ontologie lze členit do tří základních typů[14]: Terminologické jsou založeny na bázi pokročilejších tezaurů. Používané jsou v knihovnictví a oborech zaměřených převážně na textové informace. Jejich charakteristickým rysem je ústřední role termínů, které již nejsou dále (formálně) definovány. Používané relace mají z velké části taxonomický charakter (vymezení vztahu obecnějšího a speciálnějšího termínu), vedle toho bývá vyjádřena synonymie, meronymie (vztah termínů označujících celek a jeho část) a další relace obecného charakteru. Nejznámější terminologická ontologie je nepochybně WordNet 1 a z něj odvozený Sensus 2 nebo vícejazyčný EuroWordNet 3. Informační rozvíjejí databázová konceptuální schémata. Zajišt ují abstrakci a vyšší kontrolu integrity. Hrají roli nadstavby nad primárními (relačně-databázovými) zdroji, 1. <http://www.cogsci.princeton.edu/~wn/> 2. <http://www.isi.edu/natural-language/projects/ontologies.html> 3. <http://www.illc.uva.nl/eurowordnet/> 18
3.1. STRUKTURA ONTOLOGIÍ pro které zabezpečují jednak konceptuální abstrakci potřebnou pro pojmové dotazování, jednak vyšší úroveň kontroly integrity než běžné nástroje. Znalostní reprezentují znalosti v rámci umělé inteligence. Ontologie jsou zde chápány důsledně jako logické teorie a jejich vazba na reálné objekty (instance) je oproti informačním ontologiím relativně volná. Třídy (koncepty) a relace jsou systematicky definovány prostřednictvím formálního jazyka. Pokud se podíváme na členění ontologií dle předmětu formalizace, můžeme zmínit tyto hlavní typy [14]: Doménové ontologie jsou nejfrekventovanějším typem. Jejich předmětem je vždy určitá specifická věcná oblast vymezená široce (např. problematika medicíny) nebo úzce (problematika konkrétní choroby). Generické ontologie zachycují obecné zákonitosti, které platí napříč věcnými oblastmi, např. problematiky času, vzájemné pozice objektů (topologie), skladby objektů z částí apod. Někdy se ještě výslovně vyčleňují tzv. ontologie vyšší úrovně, které usilují o zachycení nejobecnějších pojmů a vztahů jako základu taxonomické struktury každé další ontologie. Úlohové ontologie jsou generické modely znalostních úloh a metod jejich řešení. Na rozdíl od ostatních ontologií, které zachycují znalosti o světě, se zaměřují na procesy odvozování. Mohou řešit například úlohy plánování. Aplikační ontologie je konglomerát modelů převzatých a adaptovaných pro konkrétní aplikaci. Obsahuje doménovou i úlohovou část (a tím automaticky i generickou část). 3.1 Struktura ontologií Základní struktura ontologií je ve všech projektech podobná, ale často se liší terminologie [14]. Nejvíce se liší tradiční jazyky jako Ontolingua a nové odlehčené webové jazyky. Proto budu uvádět synonymní termíny v závorce. Základem ontologií jsou třídy (koncepty, kategorie), které označují množiny konkrétních objektů. Třídy pro které jsou specifikovány podmínky nutnosti i postačitelnosti (příslušnosti individua) se označují jako definované. Ostatní třídy se označují jako primitivní. Na množině tříd pak bývá definována taxonomie (hierarchie). všechny hlavní ontologické jazyky podporují vícenásobnou dědičnost, která se často využívá. Individuum odpovídá konkrétnímu objektu reálného světa. Termín instance je někdy chápán jako ekvivalentní, asociuje ale příslušnost k určité třídě. Ale individuum může být do ontologie vloženo i bez vazby na třídu. Zda je objekt třídou nebo instancí často nezávisí na objektivním stavu světa, ale na úhlu pohledu, kterým se na daný objekt díváme. 19
3.2. JAZYKY A NÁSTROJE PRO MANIPULACI S ONTOLOGIEMI Důležitou složkou ontologií jdou vztahy neboli relace n-tic objektů. V tradičních jazycích mohou být relace specifikovány pomocí logických podmínek. V odlehčených webových jazycích se jim přiřazují jen předdefinovaná omezení globálně nebo lokálně. Odlehčené jazyky se omezují na binární relace a používají pro ně pojem slot (vlastnost). Zvláštními typy relací jsou funkce. Jde o relace, u kterých je hodnota n-tého argumentu jednoznačně určena předchozím argumentem n-1. Funkční slot se označuje také jako atribut a je definován pro všechny instance třídy. Je třeba ještě doplnit, že i relace mohou mít nad sebou definovanou hierarchii. Příkladem může být třeba dvojice má otce a má předka. Relace nemusí být jen popis vztahu mezi n-ticí objektů. Argumenty relací mohou být i primitivní hodnoty, které žádnému objektu neodpovídají. Obor hodnot v takovém případě bývá omezen některým základním datovým typem (integer, float, string...), číselným či alfanumerickým intervalem nebo výčtem. Do ontologií lze zařazovat i další logické formule, které mohou označovat např. ekvivalenci tříd či relací, disjunktnost tříd, rozklad třídy na podtřídy apod. Označujeme je jako axiomy (pravidla). Ontologie ještě mohou obsahovat souhrnné údaje, které se umist ují do hlavičky. Lze takto například pomocí odkazů importovat jiné ontologie nebo ontologie doplnit metadaty o autorovi, verzi, času vytvoření, způsobu vytvoření apod. Ontologickým závazkem nazýváme rozhodnutí daného subjektu využít pro vyjádření pojmů prvky a strukturu dané ontologie. Uživatel tedy při volbě ontologie akceptuje ontologické závazky v ní zahrnuté. V průběhu vývoje ontologických aplikací byly identifikovány dva významné problémy, komplikující tvorbu a využívání ontologií. První z nich je problém rozsahu. Počet pojmů, které by se mohly chápat jako relevantní zvolené doméně, je nezvládnutelné množství. Při tvorbě ontologie je proto nutné systematicky provádět selekci a zařazovat zejména ty pojmy, které mají jasnou vazbu na pojmy z jádra ontologie. Dalším přirozeným opatřením je rozdělení ontologie do více nezávislých modulů. Druhým je problém interakce. Optimální tvar ontologie je závislý na způsobu, jakým se bude používat. Někdy se také mluví o nutnosti kompromisu mezi použitelností a znovupoužitelností ontologie. Čím je ontologie nezávislejší na konkrétní aplikaci, tím méně efektivním se stává její přímé využívání. Z tohoto si lze odvodit, že je velice těžké (ne-li nemožné) vytvořit obecnou ontologii na dané doméně, kterou by mohly využívat různorodé aplikace. Pokud ontologii vytvoříme, tak existují softwarové nástroje zvané reasonery (usuzovače), dávají ontologiím veliký význam, jelikož dokáží pracovat se vztahy v nich uvedených. Reasonery totiž dokáží odvodit vztahy v ontologii obsažené, ale výslovně neuvedené. 3.2 Jazyky a nástroje pro manipulaci s ontologiemi Za nepříliš dlouhou dobu, během které se ontologie zkoumají, bylo vyvinuto několik desítek formálních jazyků pro reprezentaci ontologie [14]. Některé se používají méně, některé více. Nyní se podíváme velice stručně na ty nejvýznamnější. Momentálně asi nejvíce důležitému jazyku OWL (Ontology Web Language) pak věnujeme celou podkapitolu. 20
3.2.1 Ontolingua 3.2. JAZYKY A NÁSTROJE PRO MANIPULACI S ONTOLOGIEMI Jazyk Ontolingua 4 byl vyvinut na začátku 90. let. T. Gruberem a jeho spolupracovníky ze stanfordské Knowledge System Laboratory 5. Cílem tohoto jazyka je nabídnout dostatečně mocný a zároveň přehledný nástroj, který by umožňoval sdílet ontologie v rámci odborných komunit používajících vzájemně nekompatibilní znalostní systémy. Ontolingua je nadstavbou jazyka KIF (Knowledge Interchange Format) 6, který využívá syntaxe LISP. Základními konstrukty jazyka Ontolingua jsou definice tříd, relací a funkcí, přičemž vymezující podmínky pro příslušnost instancí jsou vyjádřeny právě v KIF. Příklad syntaxe jazyka Ontolingua: (Define-Class Sale-Offer (?X) "A For-Sale situation with a Specified-Potential-Customer" :Iff-Def (And (For-Sale?X) (Exists (?Le) (Specified-Potential-Customer?X?Le)))) Tento příklad zobrazuje definici "Nabídky prodeje". Celá třída je vymezena jedinou dostačující podmínkou Iff-def, jež obsahuje konjunkci dvou výrazů. Ontolingua byla od začátku koncipována jako mezi-jazyk primárně určený k výměně ontologických informací mezi systémy, které interně používají vlastní reprezentaci. Z toho vyplývají i omezené možnosti odvozování přímo v tomto jazyce. Jednoduchý on-line editor jazyka Ontolingua je dostupný na stránkách webových služeb KSL (Stanford KSL Network Services) 7, kde si ho lze po přihlášení jako anonymní uživatel vyzkoušet. 3.2.2 OCML Omezené možnosti jazyka Ontolingua vedly E. Mottu z Open University ve Velké Británii k návrhu jazyka OCML (Operational Conceptual Modelling Language) 8.OCML výrazněji podporuje přímý vývoj programových aplikací, aniž by bylo nutno model překládat do jiného jazyka. Vývoj tohoto jazyka je těsně propojen s tvorbou jeho interpretu implementovaného v prostředí CommonLISP. Základem interpretu jsou algoritmy pro Prologovské dokazování a dědění v hierarchii tříd; třídy a jejich atributy jsou ovšem důsledně chápány jako unární resp. binární relace, takže primární (vnitřní) reprezentací jsou Hornovy klauzule. Příklad syntaxe jazyka OCML: (def-relation date-difference (?date-1?date-2?diff?diff1)) 4. <http://www.ksl.stanford.edu/software/ontolingua/> 5. <http://www-ksl.stanford.edu/> 6. <http://logic.stanford.edu/kif/kif.html> 7. <http://www-ksl-svc.stanford.edu> 8. <http://kmi.open.ac.uk/projects/ocml/> 21