Ontologie

S pojmem ontologie se můžeme setkat jak ve filosofii, tak v oblasti sémantického webu. Z filosofie byl pouze přebrán, což se filosofickým kruhům moc nelíbilo. V originále znamená ontologie nauku o bytí, chcete-li jsoucnu. Ve vztahu k sémantickému webu jsou ontologie chápány jako definice pojmů a vztahů mezi nimi. [semMuni3].

Slouží k popisu tzv. domény (oblasti) lidského zájmu/světa. Takováto oblast pak obsahuje jednotlivé třídy, které jsou propojeny relacemi. Objekty v této doméně a jejich propojení ontologie popisuje pomocí 4 prvků: jedince, třídy, atributu a vazby. Někdy se uvádí také pátý prvek - událost.

Obrázek 3.5. Ukázka postupného definování červa (Zdroj: [ApartRDFA])

Ukázka postupného definování červa (Zdroj: )

Uvedeme si zde tři známé definice pojmu ontologie, z nichž budeme dále vycházet. A sice jednu od T. Grubera, který je považován za „duchovního otce“ ontologií: „ontologie je explicitní specifikace konceptualizace“. Dále její modifikaci od W. Borsta: „ontologie je formální specifikace sdílené konceptualizace“. A do třetice definice od B. Swartouta: "hierarchicky strukturovaná množina termínů popisujících určitou věcnou oblast".

Co jsme se tedy z definic dozvěděli? Ve dvou definicích se objevuje slovo konceptualizace, které zastupuje systém pojmů modelující určitou část světa. Dále nám T. Gruber říká, že ontologie musí být specifikována explicitně, tj. nikoliv jen „skryta“ v hlavě svého autora. W. Borst doplňuje definici o pojem formalizace, což nám říká, že ontologie je reprezentování jazykem s přesně definovanou syntaxí (event. i sémantikou). V neposlední řadě taky definice tvrdí, že ontologie by měla být sdílená. To znamená, že by neměla být individuální záležitostí, ale výsledkem shody určité skupiny lidí [OntologieSvatek].

Cílem ontologie je definovat společné, jednotné chápání určité třídy pojmů. Ontologie by ve výsledku měla podporovat porozumění mezi lidmi (vědečtí pracovníci), komunikaci mezi počítačovými systémy či usnadnění návrhu znalostně-orientovaných aplikací. Ontologií dokážeme znázornit komplexnost vztahů mezi znalostmi. Na rozdíl od taxonomie, která využívá jednoduchou hierarchii, představuje ontologie síť hierarchií, v níž informace jsou nebo mohou být vzájemně propojeny logickými vztahy. Tyto vztahy jsou založeny na vlastnostech, které musejí být informacím specificky přiřazeny. Prvky, které spolu takto souvisejí, jsou pak vytvořeny sémanticky. Ontologie se skládají z velkého počtu složek, např. pojem (koncepce), instance a relace [SemWebAutomatizace].

Obrázek 3.6. Ukázka ontologie na oboru umění (Zdroj: [ChipSemWeb])

Ukázka ontologie na oboru umění (Zdroj: )

Aby počítače takovýmto slovníkům a gramatice rozuměly, musí být i ontologie zapsána ve strojově čitelném jazyce. Mezi takové formální jazyky ontologií patří Cyc, Ontolingua, OCML, OKBC, XOL a další. Nás budou zajímat hlavně jazyky, které jsou úzce spjaty s webovými technologiemi a jsou na poli Internetu kratší dobu. Vyhneme se proto "historickým" jazykům SHOE a Ontobroker a zaměříme se na ty opravdu důležité jazyky pro reprezentaci webových ontologií. Těmi jsou: RDF Schema, OIL, DAML+OIL a OWL [OntologieSvatek].

RDF Schema

RDF Schema (RDFS) je jednoduchý ontologický jazyk, který je založen na XML syntaxi a používá koncepci RDF. Byl to vůbec první sémantický jazyk orientovaný na RDF (vznikl v r. 1999). Za jeho výzkumem stojí přímo skupina W3C. Můžeme jím specifikovat vlastnosti přidružené jednotlivým objektům, jejich možné hodnoty, popsat vztahy mezi objekty (jejich hierarchii), systém tříd, atd. RDFS splňuje základní požadavky pro vkládání sémantiky do obsahu webových stránek. Definuje jakýsi slovník, který je použitý v datovém modelu RDF. Ve srovnání s ostatními ontologickými jazyky však zaostává v možnostech přesnější specifikace příslušnosti ke třídám (lokální omezení), postrádá datové typy, atd.

K popisu vztahů můžeme v RDFS použít následující zápisy:

  • rdfs:Class – třída

  • rdfs:subClassOf – podtřída třídy

  • rdf:Property – vlastnost

  • rdf:subProperty – podvlastnost

  • rdfs:range – omezení oboru hodnot

  • rdfs:domain – omezení domény, definičního oboru

  • a další.

Příklad 3.6. Příklad zápisu vztahu mezi objekty

Útočník je podskupinou (subClassOf) Člen fotbalového týmu.


Následujícím kódem popíšeme třídu Osoba, která bude podtřídou třídy Zivocich. Bude mít vlastnost maPritele, která bude moct být přiřazena pouze instanci třídy Osoba. Tato vlastnost bude zároveň potomkem vlastnosti zna a rozsah jejich hodnot bude omezen instancí třídy Osoba.

Příklad 3.7. Ukázka kódu RDFS. (Zdroj: [novaGenerace])

<rdfs:Class rdf:about="Osoba" rdfs:label="Osoba">
    <rdfs:subClassOf rdf:resource="Zivocich" />
</rdfs:Class>

<rdfs:Property rdf:about="maPritele">
    <rdfs:subPropertyOf rdf:resource="zna"/>
    <rdfs:domain rdf:resource="Osoba"/>
    <rdfs:range rdf:resource="Osoba"/>
</rdfs:Property>

OWL

Jazyk OWL (Web Ontology Language) měl před svým vznikem významné předchůdce. Jedním byl ontologický jazyk OIL, který navrhla evropská výzkumná skupina, a druhým byl jazyk z americké produkce DAML-ONT. Jako sjednocení této snahy vznikl jazyk DAML+OIL, který sloužil jako výchozí bod pro přípravu ontologického jazyka OWL. Ten poté nahradil svým způsobem omezený jazyk RDFS. OWL by měl být základním jazykem sémantického webu. Jde o jazyk pro popis tříd a relací, který oproti RDFS dokáže vytvořit komplexní vztahy i mezi třídami a vlastnostmi. Třídy zde mohou být deklarovány jako oddělené či stejné, můžeme je uzavírat a určit tak, které prvky patří k určité třídě. Nabízí také další možnosti: kombinování, oddělování nebo skládání. Můžeme určit počet vlastností pomocí výrazů jako: „alespoň jeden", „všechno", „alespoň X" či „maximálně Y". Dále už jen výčet, co OWL nabízí: jazykové konstrukce, umožňuje definovat lokální omezení, matematické charakteristiky vlastností, disjunktnost či ekvivalenci tříd, anonymní třídy, a další [OntologieSvatek] [SeWebSvatek] [ChipSemWeb].

Příklad 3.8. Ukázka OWL kódu . (Zdroj: [SeWebSvatek])

<owl:Class rdf:ID="2+1">
    <rdfs:subClassOfrdf:resource="Byt" /> 
    <rdfs:subClassOf> 
        <owl:Restriction> 
            <owl:onProperty rdf:resource="ma_soucast"/> 
            <owl:someValuesFrom rdf:resource="Kuchyň”/> 
        </owl:Restriction> 
    </rdfs:subClassOf> 
</owl:Class>

Takovýto zápis nám říká: Třída“2+1”je podtřídou třídy“Byt”, a každá její instance musí být spojena relací “ma_soucast” s alespoň 1 instancí třídy “Kuchyň”. Ze zápisu kódu vidíme, že OWL používá stejnou syntaxi jako RDF, tedy RDF/XML. Vzniklo však také několik alternativ, které jsou lépe čitelné.

Kompatibilita

Jelikož jazyk OWL rozšiřuje původní RDFS, tak by měl být zpětně kompatibilní. OWL využívá vyjadřovací prostředky jazyku RDF a RDFS a rozšiřuje je vlastními výrazy. Při vývoji jazyka OWL bylo nutné, aby se našel kompromis mezi efektivním odvozováním a vyjadřovací silou. Jazyky, které jsou bohatší a mají tudíž větší vyjadřovací možnosti, jsou zároveň složitější a méně efektivnější ve výpočetní podpoře pro odvozování. RDFS obsahuje výrazy s velmi vysokou vyjadřovací silou, které by při rozšíření o možnosti jazyka OWL přinášely nepřijatelné výpočetní vlastnosti při odvozování [GSN].

Druhy OWL

Jazyk OWL má celkem 3 varianty a ty se liší právě podle vyjadřovací síly. Zajistila se tak potřeba, aby jazyk OWL vyhovoval všem požadavkům. Varianta OWL Full nabízí nejvyšší vyjadřovací sílu a verze následující jsou již jen jeho podmnožinou.

  • OWL Full - plná verze jazyka OWL. 100% kompatibilní s RDF. Vysoká složitost jazyka vede nemožnosti úplné výpočetní podpory pro odvozování a vysoké složitosti zpracování jazyka.

  • OWL DL - není plně kompatibilní s RDF. Jde o kompromis mezi výpočetní výkonností a vyjadřovací silou.

  • OWL Lite - nejjednodušší verze jazyka OWL. Díky tomu je snazší a efektivnější ve zpracovávání.