KAPITOLA 4.: PŘEDSTAVENÍ JAZYKA OWL - KOMPONENTY JAZYKA OWL

Mezi hlavní komponenty OWL ontologie patří:

  1. Třída;
  2. Jedinec;
  3. Vlastnost.

TŘÍDA (class)

Chápání pojmu Třída v OWL není odlišná od objektově orientovaného principu. Jedná se o soubor jedinců se stejnými vlastnostmi. Jsou organizovány do hierarchie - taxonomie tj. nadtříd a podtříd (superclasses a subclasses). Vytvořením hierarchie tříd dodáváme naší ontologii strukturu. V OWL existují třídy předdefinované nebo námi vytvořené. Jednou z předdefinovaných je owl:Thing . Jedná se o tzv. systémovou nejobecnější třídu, do které spadají všechny ostatní. Je to jakýsi společný předek všech tříd, které vytvoříme. V prostředí Protégé nese název Thing. Další předdefinovanou třídou je owl:Nothing ... opak owl:Thing.

Příkladem třídy může být: Pes, Stát, Vědní obor, Osoba, Koření, apod.

Pro to, abychom dokázali graficky zpodobnit jednotlivé komponenty OWL ontologie, budeme u každé z nich používat specifický symbol. V případě tříd - kolečko.

OWL nenařizuje způsob pojmenovávání tříd, ale nějakou si zavedeme. Doporučuji všechny třídy pojmenovávat stejným způsobem - v našem případě bude každá třída začínat velkým písmenem a v příp. modelování v Protégé budou třídy bez diakritiky, nejlépe v anglickém jazyce. Proč to? Diakritika může způsobovat problémy při vizualizaci ontologie pomocí pluginu OWLViz, který budeme rovněž používat.

JEDINEC (individum, člen, objekt, entita)

Jedinec reprezentuje určitý objekt domény, který náleží určité třídě. Jedná se o konkrétní výskyt - instanci třídy. Jedinec přitom může patřit jedné nebo více třídám. Je rozdíl mezi jedincem a instancí. Jedinec je instancí nějaké třídy.

Příkladem jedince může být: Jan Ámos Komenský, Portugalsko, Phobos, Karel, ...

Pro grafické znázornění jedinců budeme používat kosočtvereček.

OWL nenařizuje způsob pojmenovávání jedinců. Zavedeme stejnou konvenci jako u tříd.

Ve spojení s jedinci hovoříme o UNA (Unique Name Assumption), které jazyk OWL nepodporuje. V OWL musíme explicitně uvést, že určití jedinci jsou navzájem různí nebo stejní, tj., když budeme chtít v naší ontologii zavést jednoho jedince se jménem Albert a Bertík, tak musí být v OWL definováno, že Albert a Bertík je jeden a týž jedinec. Pro tento účel používáme konstrukce: owl:sameAs a owl:differentFrom.

Na obrázku Jednoduchá taxonomie vidíme výčet několika tříd uspořádaných do hierarchie spolu s převodem této hierarchie do grafické podoby tříd. Jsou zde zachyceni i jedinci. Možná se Vám bude zdát, že probírání těchto detailů je zbytečné, ale chci spíš ukázat, jak si máte představit nějakou taxonomii.


Jednoduchá taxonomie

Obrázek: Jednoduchá taxonomie

VLASTNOST

Vlastnost vytváří vztah - (binární) relaci mezi jedinci. Zkrátka spojuje dva objekty k sobě. Obrázek Vlastnost v OWL rozšiřuje obrázek výše o třídu Person a vlastnost hasDog a hasParrot.


Vlastnost v OWL

Obrázek: Vlastnost v OWL

Dělení vlastností [1]:

Objektová vlastnost vytváří spojení mezi objekty tříd.
Datotypová vlastnost spojuje jedince s hodnotou, která je určitého datového typu.
Anotační vlastnost přidává další informace k třídám, jedincům, celé ontologii ve formě metadat (např. pomocí konstrukcí jako:
  • rdfs:label: více názvů k elementu ontologie, třeba v jiném jazyce;
  • rdfs:comment: komentář k elementu ontologie;
  • rdfs: seeAlso: URI podoba, související zdroje ke stavebnímu bloku;
  • ...
  • )
Ontologická vlastnost vytváří vztahy mezi ontologiemi [1].

Na obrázku níže jsou uvedeny příklady některých výše uvedených vlastností.


Dělení vlastností

Obrázek: Dělení vlastností

Obrázek Prvky ontologického modelu shrnuje, jaké elementy lze použít pro konstrukci ontologie.


Prvky ontologického modelu

Obrázek: Prvky ontologického modelu

Praktické otázky

Koncept vs. třída

Někde se můžete dočíst, že v souvislosti s modelováním znalostí se hovoří o konceptech. Koncept je obecnějším pojmem, třída je konkrétní reprezentací konceptu. Z různých literárních zdrojů mám ale dojem, že jsou oba pojmy ztotožňovány.

Konceptualizace vs. ontologie

Slovo konceptualizace znamená výběr určitých konceptů, jejich vlastností a vztahů mezi nimi v závislosti na modelované doméně. Ontologie je praktickou realizací konceptualizace. Konceptualizace je spíš proces nebo jinak nějaký znalostní celek. Ontologie je výsledek znalostního modelování, viz. obrázek níže.


Konceptualizace

Obrázek: Konceptualizace

Třída vs. jedinec

Až se dostaneme k modelování jedinců, Vaší klasickou otázkou jistě bude, co má být třída a co UŽ MŮŽE BÝT JEDINEC, jinak řečeno: jak si stanovit hranici, za níž už hovoříme o jedincích a třídách? Mám další třídu modelovat jako podtřídu nebo jako jedince třídy? Odpovědi na tyto otázky nejsou jednoznačené. Třídy jsou určitými abstrakcemi, které se ne tak často mění, jsou víceméně stabilní. Jedinci mají dynamický charakter - v čase se spíš mění a jsou něčím konkrétnějším než třídy. Jak uvádí zdroj [1], záleží také na tom, v jakém systému má být ontologie použita. Nabízí se následující rada:

  • jestliže bude budoucí aplikace využívající ontologii hlavně pracovat s daty, zaměřme se spíš na modelování jedinců
  • jestliže budeme spíš chtít zachytit sémantiku dat, zaměřme se na modelování tříd než jedinců

Oddělené modelování tříd a jedinců

Od tříd se často odděleně modelují jedinci. V jednom souboru je ontologie (zapsaná v určité syntaxi) a v druhém souboru jsou instance těchto tříd - jedinci. Proč tomu tak je? Třídy definuje uživatel sám, jsou spíš statickými strukturami. Jedinci jsou odrazem reality a jsou součástí našeho světa. Jsou v čase se měnící. Třída se dá připodobnit k databázové tabulce, která se v porovnání s jejími záznamy příliš často nemění. Jedinci, kteří mohou být připodobňováni k záznamům v tabulce se mění častěji. To oddělení souborů je především kvůli aplikacím, které pak budou ontologický znalostní model využívat. Daleko snaději si můžeme zajistit přehled nad prováděnými změnami - v ontologii (s třídami) a v souboru s jedinci. Dosáhneme tak i lepšího managementu verzí obou souborů, viz. obrázek níže.

Soubor s ontologií a jedinci

Obrázek: Oddělení jedinců od ontologie

ZDROJE A DALŠÍ DOTATEČNÉ MATERIÁLY

[1] Lacy, L. W. OWL: Representing Information Using the Web Ontology Language. ISBN 141203448-5
[2] A Practical Guide To Building OWL Ontologies Using The Protégé-OWL Plugin and CO-ODE Tools Edition 1.0