KAPITOLA 7.: REPREZENTACE SÉMANTIKY TŘÍD (2) - AXIOM UZÁVĚRU VLASTNOSTI (CLOSURE AXIOM)

Připomenutí existenciálního omezení

Ještě jednou si připomeňme význam existenciálního omezení vlastnosti. Existenciální omezení vlastnosti je jedním z nejpoužívanějších omezení, které má ten význam, že všichni jedinci určité třídy X mají nějaký vztah (min. jeden) k vybraným třídám specifikovaných oborem hodnot. Při použití existenciálního omezení vlastnosti je třeba mít na paměti, že jedinci z dané třídy X mohou mít vztah i k jiným jedincům z jiných tříd blíže nespecifikovaných - proto lze říct, že existenciální omezení je hodně volné. Připomeneme si například popsanou třídu CockatooCacatua, viz. nezbytné podmínky na obrázku níže.


Popsaná třída - Kakadu

Obrázek: Popsaná třída - Kakadu

Axiom uzávěru vlastnosti vysvětlíme na vlastnosti hasSize (má velikost). Požadovali jsme zachytit, že Kakadu je velkým typem papouška - tj. dosahuje velikosti nad 30 cm. Už to bylo naznačeno na některých minulých příkladech. Současná podmínka s velikostí tvrdí, že každý papoušek Kakadu je veliký (HighSize), ale přitom jsme nevyloučili, že nějaký Kakadu může mít vztah (hasSize) směřující i k jiné třídě než HighSize, třeba SmallSize. Neznám papouška Kakadu, který by byl menží než 30 centimetrů a tedy pro naše účely bychom potřebovali říci, že každý papoušek Kakadu je velký a to je vše - žádná další velikost (malá, střední) nepřipadá v úvahu. Existuje několik způsobů, jak toto zajistit. Jedním z nich je právě Axiom uzávěru vlastnosti.

Axiom uzávěru vlastnosti teoreticky

Axiom uzávěru vlastnosti nám přesně vymezuje obor hodnot pro určitou vlastnost, resp. jaké třídy budou moci být na pravé straně vztahu (v našem případě vlastnosti hasSize). Je tvořen sjednocením všech uvedených existenciálních omezení v podobě univerzálního omezení a říká: "Vlastnost bude působit jen na tyto třídy (na pravé straně vztahu) a na žádné jiné." Neodborně řečeno: jako bychom sešktili (omezili, uzavřeli) použití vlastnosti - zabránili jí, aby se spojila s jedincem z jiné třídy než té, která je v existenčním (existenčních) omezení (omezeních) uvedena, viz. obrázek Popis třídy bez axiomu uzávěru vlastnosti a s axiomem uzávěru vlastnosti.


Popis třídy bez axiomu uzávěru a s axiomem uzávěru vlastnosti

Obrázek: Popis třídy bez axiomu uzávěru a s axiomem uzávěru vlastnosti

Axiom uzávěru vlastnosti prakticky

Tvorba axiomu v prostředí Protégé není složitá. Vybereme příslušné existenciální omezení (když je jich víc, vybereme jakékoliv, které má být součástí axiomu), stiskneme pravé tlačítko myši, objeví se nám menu, ze kterého vybereme volbu Add closure axiom. Výsledkem je vytvoření univerzálního omezení vytvořené z existenciálních, viz. obrázek níže.


Axiom uzávěru vlastnosti v Protégé

Obrázek: Axiom uzávěru vlastnosti v Protégé

? OTÁZKY A ODPOVĚDI ?

Můžeme zařídit jiným způsobem, aby Kakadu měl jen velkou velikost a žádnou jinou, aniž bychom museli použít axiom uzávěru vlastnosti?
Teď na chvíli zapomeneme na axiom uzávěru vlastnosti. Představme si, že máme jen naše existenciální omezení: CockatooCacatua hasSize some HighSize. Pokud vlastnost hasSize uvedeme jako funkcionální, tak zajistíme, že papoušek Kakadu bude mít opravdu jen velkou velikost a žádnou jinou, navíc ten vztah hasSize bude mít kardinalitu rovnu jedné. Funkcionální vlastnost je taková vlastnost, která vytváří vztah mezi jedincem z definičního oboru max. k jednomu jedinci z oboru hodnot. Protože však používáme existenciální omezení vlastnosti - uvádí nám, že každý jedinec z třídy X má nějaký vztah (min. 1, o dalších se nehovoří) s jedincem z třídy vyhovující oboru hodnot, tak funkcionalita navíc, nám "seškrcuje" vlastnost také - max. jeden vztah s jedincem s oboru hodnot. Ta funkcionalita je vlastně horním omezením vlastnosti (dá se říci, že je určitou formou kardinalitního omezení vlastnosti).
Pokud se Vám funkcionální vlastnost spolu s existenciálním omezením nelíbí, je tu ještě jiná možnost, použít existenciální omezení přímo spolu s kardinalitním omezení vlastnosti. Kardinalitní omezení vlastnosti bude mít podobu: hasSize exactly 1. Tím stanovíme maximální horní omezení pro vlastnost hasSize, resp., že jedinec z třídy CockatooCacatua bude mít právě jeden vztah k jedinci z třídy HighSize.

Musím vždy uzavírat popis třídy?
Nikde není nařízeno, že když vytvoříte jakoukoliv třídu, vždycky musíte její popis nebo definici uzavřít. Axiom uzávěru vlastnosti volte v případě, že jste si jisti, že už žádná další třída nebude se svými jedinci participovat na dané vlastnosti (myslím tím tu třídu/třídy specifikované oborem hodnot). Pokud axiom uzávěru vlastnosti nezvolíte, Vaše ontologie bude velmi otevřená novým zítřkům :-), resp. nebude příliš jednoznačná. Dále, pokud nezvolíte axiom uzávěru vlastnosti, při klasifikaci ontologie (viz. kapitola 9) můžete zjišťovat, že to, co jste očekávali, že bude odvozeno, odvozeno není.