KAPITOLA 7.: REPREZENTACE SÉMANTIKY TŘÍD (2) - VYTVÁŘÍME DEFINOVANÉ TŘÍDY

Teoreticky jsme si vysvětlili tvorbu Papouška všejedlíka, teď je na čase, to ukázat prakticky. Vytvoříme třídu s názvem IndiscriminateParrot jako podtřídu třídy ParrotPsittaciform. Stanovíme další dvě podmínky: živí se rostlinnou stravou a živí se i živočišnou stravou. Využijeme existenciální omezení v dvou podmínkách, protože papoušek všejedlík je takový papoušek, který se živí zároveň rostlinnou i živočišnou stravou, přičemž oba druhy stravy jsou navzájem disjunktní. Podmínky jsou, tak jak jsme byli dosud zvyklí, v sekci Necessary. Aby byla třída definovaná, tak stačí podmínku po podmínce přetáhnout myší ze sekce Necessary do sekce Necessary and Sufficient. Výsledek je na obrázku Definovaná třída v Protégé.


Definovaná třída v Protégé

Obrázek: Definovaná třída v Protégé

Hlasitý papoušek

Další definovaná třída, kterou vytvoříme, bude hlasitý papoušek (LoudParrot). Je to takový papoušek, který má střední nebo vysoký stupeň hlasitosti (stupně hlasitosti jsou navzájem disjunktní). Tuto třídu definujeme trojím způsobem.

Způsob 1.: hlasitý papoušek je takový papoušek, který se projevuje středně hlasitě nebo s vysokým stupněm hlasitosti, přitom může mít i více vztahů hasLoudness než jeden, kolik, to nespecifikujeme, viz. obrázek první (klasické použití existenciálního omezení vlastnosti).
Způsob 2.: hlasitý papoušek je takový papoušek, který se projevuje středně hlasitě nebo s vysokým stupněm hlasitosti, ale vždy jedním tímto způsobem (jen hlasitě nebo jen s vysokým stupněm hlasitosti), tj. specifikujeme počet vztahů hasLoudness k třídám uvedených v oboru hodnot (použijeme kardinalitní omezezní vlastnosti).
Způsob 3.: stejné požadavky jako u druhého způsobu, jen reprezenováno bez kardinalitního omezení vlastnosti, ale s funkcionální vlastností.


Definovaná třída v Protégé - Hlasitý papoušek

Obrázek: Definovaná třída v Protégé - Hlasitý papoušek

Poznámky k druhému způsobu:

Kardinalitou (v našem případě hasLoudness exactly 1) dodáváme existenciálnímu omezení tu "pravou kardinalitu". Dodáváme mu, kolik že těch vztahů může jedinec z třídy LoudParrot mít. V našem případě to kardinální omezení je horním omezením vlastnosti hasLoudness. Existenciální omezení říká, že všichni jedinci mají nějaký vztah a kardinalitou dodáváme kolik těch vztahů může být.

Poznámky k třetímu způsobu:

Funkcionální vlastnost je taková vlastnost, která vytváří relaci mezi jedinci z třídy specifikovaném v definičním oboru max. k jednomu jedinci z oboru hodnot. Jestliže spojíme existenciální omezení vlastnosti s funkcionalitou vlastnosti, tak to znamená, že existenciálním omezením říkáme, že určitě existuje nějaký (tj. min. jeden) vztah mezi třídami => určitá forma kardinality v existenciálním omezení existuje, ale přímo to kardinální omezení není. Funkcionalitou vlastnosti říkáme, že ten vztah může být max. jeden. Kombinace existenciálního omezení a funkcionality vlastnosti znamená kombinaci lokálního a globálního omezení vlastnosti.

Třída Papoušek pro začátečníky

Vytvoříme třídu ParrotForBeginners jako podtřídu třídy ParrotPsittaciform. Papoušek pro začátečníky je takový papoušek, který má nízký stupeň náročnosti (hasSeverity Modesty). Papoušek, který má být určený pro začátečníky musí splňovat tyto dvě podmínky: je papouškem a má nízký stupeň náročnosti. Můžeme pak o jakémkoliv tvorovi, který je papouškem a má nízký stupeň náročnosti říci, že je papouškem určeným pro začátečníky? Určitě ano. Z toho tedy vyplývá, že obě dvě podmínky budou v sekci Necessary and Sufficient a naše třída ParrotForBeginners bude třídou definovanou, viz. obrázek Další definované třídy.

Třída Papoušek býložravec

Vytvoříme třídu ParrotHerbivore jako podtřídu třídy ParrotPsittaciform. Papoušek býložravec je papoušek, který se živí rostlinnou stravou (hasFood PlantFood). Papoušek, který má být členem této třídy musí splňovat tyto dvě podmínky. Jakýkoliv tvor, který je papouškem a zároveň se živí jen rostlinnou stravou, tak je papouškem býložravcem => lze vytvořit definici třídy ParrotHerbivore, viz. obrázek níže.

Třída Papoušek bavič

Vytvoříme třídu ParrotEntertainer jako podtřídu třídy ParrotPsittaciform. Papoušek bavič je takovým papouškem, který má dobrý až výborný stupeň imitace (hasInclinationToImitation MiddleDegreeOfImitation, ExcellentImitation), přitom má jen jeden z těchto typů, ne oba. Pokud jedinec spadá do této třídy, tak musí splňovat tyto podmínky. Jakýkoliv jedinec, který je splňuje, tak je zábavným papouškem a lze tedy vytvořit definici třídy ParrotEntertainer, viz. obrázek níže.

Dlouhověký papoušek

Vytvoříme třídu LongLivedParrot jako podtřídu třídy ParrotPsittaciform. Je to takový papoušek, který se dožívá vysokého věku - dlouhověkosti (hasLongevity Aeon). Papoušek, který je prvkem třídy LongLivedParrot, musí být papouškem a dožívat se vysokého věku. Pokud papoušek splňuje tyto podmínky, pak je členem třídy LongLivedParrot => lze vytvořit definici třídy LongLivedParrot, viz. obrázek níže.


Další definované třídy

Obrázek: Další definované třídy

Poznámka

Výše uvedené definované, ale i popsané třídy, nejsou vytvořeny úplně bez chybiček. U některých z nich nám chybí axiom uzávěru vlastnosti, se kterým se seznámíme dál v této kapitole .

Stáhnout soubor

parrots05_classes.zip (popsané a definované třídy)