KAPITOLA 7.: REPREZENTACE SÉMANTIKY TŘÍD (2) - AXIOM POKRYTÍ TŘÍDY A NÁVRHOVÝ VZOR ROZKLAD HODNOT
(COVERING AXIOM AND DESIGN PATTERN VALUE PARTITION)
Co je návrhový vzor?
Sousloví návrhový vzor určitě znáte z jiných oblastí, než z ontologického inženýrství, např. z programování. Návrhový vzor nám slouží ke zjemnění popisu či definic tříd. Přitom se nejedná přímo o součást OWL nebo jakéhokoliv jiného ontologického jazyka. Přitom návrhový vzor v ontologickém inženýrství je analogií návrhového vzoru v objektově orientovaném programování. Slouží nám k modelování problémů, které se často opakují. Návrhový vzor tak můžeme použít do budoucna několikrát aneb "Proč vymýšlet postup pro něco složitého, když řešení již existuje." Návrhové vzory vidíme kolem sebe, například gotický styl je návrhovým vzorem, viz. obrázek převzatý ze zdroje Barokní gotika. Obsahuje výčet prvků, které má styl obsahovat, abychom dokázali věrně zkonstruovat jeho podobu.
Smysl návrhového vzoru v ontologii
Aniž byste si to přímo uvědomovali, návrhové vzory jsme už do naší ontologie zakomponovali. Návrhový vzor je totiž obyčejnou hierarchií tříd. V té hierarchii jsou třídy (podtřídy), které používáme přímo v popisech nebo v definicích tříd. Z naší ontologie papoušků jsou návrhovými vzory:
- InclinationToImitation;
- Longevity;
- Loudness;
- Occurrence;
- Severity;
- Food a
- Size
Vyberme si třeba třídu Ara a zjemníme její popis tím, že uvedeme, jaký stupeň hlasitosti má. Pro to, abychom mohli přiřadit třídě Ara charakteristiku, že Ara je schopný imitovat zvuky i slova (tj. má střední stupeň imitace), pak musíme nejdříve tu třídu s různými stupni imitace vytvořit. Už jsme s ní v minulých kapitolách pracovali a pojmenovali ji jako InclinationToImitation. Toto je totiž třída, která se nám bude rozpadat na příslušné stupně imitace papouška, viz. obrázek níže.
Použití návrhového vzoru v popisu nebo definici třídy je jednoduché. Spočívá v tvorbě podmínek pro třídy, jak jsme byli zvyklí, viz. třeba třída ParrotAmazonan - obrázek níže.
Axiom pokrytí třídy
Nezbytnou součástí návrhového vzoru rozklad hodnot je tzv. Axiom pokrytí třídy (Covering Axiom). Opět si vezmeme třídu InclinationToImitation s jejími stupni imitace. Ten rozklad třídy InclinationToImitation na tři stupně je takový příliš volný. Jestliže si jsme jisti, že žádné další stupně imitace už nebudeme chtít používat - reprezentovat v ontologii pro popisy či definice tříd, pak jejich "výčet uzavřeme", resp. uzavřeme rozklad třídy InclinationToImitation jen na ty tři stupně imitace a dost. Axiom pokrytí třídy je tvořen sjednocením tříd, které jsou podtřídami třídy, která je pokryta, v našem případě stupni imitace.
Axiom pokrytí třídy je tvořen částmi:
- třídou, která má být pokryta (InclinationToImitation)
- třídami, které třídu InclinationToImitation budou pokrývat (LowDegreeOfImitation, MiddleDegreeOfImitation, ExcellentImitation)
Axiom pokrytí třídy prakticky
V prostředí Protégé lze tento axiom vytvořit jednoduše. Vybereme třídu, která má být pokryta, tj. InclinationToImitation a zvolíme volbu Create new expression, viz. obrázek níže.
Poznámka
Ve verzi prostředí Protégé 3.3.1 pro vytvoření axiomu pokrytí třídy existovala ikonka se symbolem sjednocení - nemuseli jsme axiom vytvářet ručně. Ve verzi Protégé 3.4 Beta jsem tuto ikonku nenašla.
? OTÁZKY A ODPOVĚDI ?
Co by se stalo, kdybychom axiom pokrytí třídy nedefinovali?
Axiom pokrytí třídy definujme v případě, když jsme si jistí, že žádné další podtřídy třídy
pokrývané už nebudeme brát v úvahu. Představme si, že máme třídu Pohlaví, která se rozpadá na
pohlaví mužské a ženské. Axiom pokrytí třídy neuvedeme, co to může znamenat?
Obrázek níže otázku zodpovídá.
Jaký je rozdíl mezi axiomem uzávěru vlastnosti a axiomem pokrytí třídy?
Mezi nimi je samozřejmě rozdíl. Neměly by se zaměňovat způsobem, že existuje: axiom pokrytí vlastnosti nebo
axiom uzávěru třídy. Obrázek Axiomy - srovnání vysvětluje rozdíl mezi axiomy.