400 likes | 612 Views
Prot égé (1). Vytvorenie novej ontológie. Vytvorte ontológiu pizza a uložte celý projekt do priečinka Dajte komentár ku vašej ontológií v časti Annotation a následným výberom comment . Prekliknite sa do tabu Classes kde sa nachádza trieda T hing. Vytvorenie tried.
E N D
Vytvorenienovejontológie • Vytvorte ontológiu pizza a uložte celý projekt do priečinka • Dajte komentár ku vašej ontológií v časti Annotation a následným výberom comment. • Prekliknite sa do tabu Classes kde sa nachádza trieda Thing
Vytvorenie tried • V tabeClasses kliknite na Thing a kliknite na addsubclass, nachádzajúci sa vyššie. • Pridáte novú triedu: nazvite ju Pizza. • Rovnako vytvorte podtriedy PizzaTopping a PizzaBase. • Alternatíva: kliknete na Pizza a následne na addsiblingclass • Nastavte že triedy Pizza, PizzaBase a PizzaTopping sú navzájom disjunktné.
Vytváranie hierarchie tried (1) • Kliknite na triedu, ktorej chcete vytvoriť podtriedy (PizzaBase). • Následne v menu vyberte ToolsCreate class hierarchy. Ak máte vybranú inú triedu ako potrebujete, zvoľte správnu. Následne vpíšte do okna triedy podľa nasledujúceho obrázka.Triedymajú byť disjunktné. • To isté urobte pre PizzaTopping(použite surfix).
Vytváranie vlastností objektu • TabObjectproperties • Rovnako ako pri triedach subProperty resp. Siblingproperty • Vytvorte Objektové vlastnosti podľa nasledujúcej štruktúry:
Inverzné vlastnosti • Nastavte aby hasIngredient bola inverzná vlastnosť pre isIngredientOf, hasBase bola inverzná k isBaseOf rovnako aj pre dvojicu isToppingOf a hasTopping.
Charakteristiky vlastností objektov (1) • Funkcionálne vlastnosti – pre jedinca môže byť len jeden jedinec vyhovujúci vlastnosti.
Charakteristiky vlastností objektov (2) • Inverzné funkcionálne vlastnosti – Ak je vlastnosť funkcionálna, tak aj jej inverzná vlastnosť je funkcionálna
Charakteristiky vlastností objektov (3) • Tranzitívne vlastnosti - Ak a je pomocou vlastnosti naviazane na b a b je pomocou vlastnosti naviazane na c, tak potom aj a je naviazane na c.
Charakteristiky vlastností objektov (4) • Symetrické vlastnosti - Ak a je pomocou vlastnosti naviazane na b potom aj b je pomocou rovnakej vlastnosti rovnako naviazane na a
Charakteristiky vlastností objektov (5) • Antisymetrické vlastnosti
Charakteristiky vlastností objektov (6) • Reflexívne vlastnosti – vlastnosť je reflexívna, keď jedinec pomocou nej ukazuje aj na samého seba.
Charakteristiky vlastností objektov (7) • Nereflexívne vlastnosti
Domény a rozsahy (1) • Domain: pri ktorých triedach sa môže používať táto vlastnosť • Range: určuje, že inštancie ktorých tried môžu byť dosadené ako hodnota vlastností
Domény a rozsahy (2) • Pizza je doména pre vlastnosť hasTopping • hasTopping ma rangePizzaTopping • Spravte to aj pre inverznú vlastnosť • Podobný postup pre hasBase
Typyobmedzenia • Some (nejaké) • Only (iba) • Min(minimálny počet) • Exactly (presný počet) • Max (maximálny počet)
Obmedzenietypu some • Nastavte, že každá pizza má nejakú základňu. • Kliknite na triedu pizza v hierarchii tried. • Kliknite + priSubClassOf. • Kliknitena tab object restriction creator • Vyberte restriction property hasBase a restriction filler PizzaBase. • Restriction type je some • Je možné použiť aj Classrestriction editor a rovno písať pravydlo.
Vytvorenie niekoľkých druhov pízz (1) • Vytvorte podtriedu triedy pizza nazvanú NamedPizza. • Následne vytvorte podtriedu NamedPizza nazvanú MargheritaPizza. • Vytvorte obmedzenie, kde MargheritaPizza obsahuje aspoň jednu(some) MozzarelaTopping a aspoň jednu (some) TomatoTopping.
Vytvorenieniekoľkých druhov pízz (2) • VytvortepizzuAmericanaPizza, ktorá je podobná ako MargheritaPizza, iba obsahuje naviacPepperoniTopping • Použite EditDuplicateselectedclass • Podobne vytvorte AmericanHotPizza obsahujúcu všetko ako AmericanaPizza a naviacJalapenoPepperTopping. • Nakoniec vytvorte SohoPizza, ktorá je podobná ako Margherita, len obsahuje naviacParmezanTopping • Všetky vytvorené pizze nech sú disjunktné
Inkonzistencia • Vytvoríme si inkonzistentnú triedu nasledujúcim spôsobom: • Vytvoríme podtriedu triedy CheeseTopping a nazveme ju ProbeInconsistentTopping. • Do subClassOf pridajte aj VegetableTopping. • Spustite reasoner.
Primitívne triedy • Doposiaľ všetky vytvorené triedy mali len nutné podmienky na ich popis. • Nutné podmienky sa dajú čítať: Ak je niečo členom danej triedy, je nutné aby spĺňalo tieto podmienky. • Nemôžme povedať, že ak niečo spĺňa podmienky, tak to musí patriť do danej triedy. • Triedy využívajúce len nutné podmienky sa nazývajú primitívnymi triedami.
Ilustrácia primitívnej triedy • Vytvorte podtriedu triedy pizza a nazvite ju CheesyPizza. • Vytvorte obmedzenie pre CheesyPizza, že táto pizza má nejakú CheesTopping. • Spustite reasoner. • CheesyPizza nemá žiadne podtriedy, aj keď by mala mať pizze, ktoré obsahujú cheeseTopping.
Definovaná trieda • Vyberte CheesyPizza a dajte v menu EditConvert to definedclass. • Následne spusttereasoner. • CheesyPizza už obsahuje podtriedy. • Trieda obsahujúca aspoň jednu nutnú a dostatočnú podmienku sa nazýva definovaná trieda (je ajinakoznačená).
Obmedzenie typu only • Vytvorte triduVegeterianPizza, ktorá je podtriedou triedy Pizza. • VegetarianPizza má iba vegetarianské oblohy, t.j. CheeseTopping alebo VegetableTopping. (použite only). • Zmentetriedunadefinovanú a spustite reasoner. • Ani jedna pizza nebude vegetariánska, aj keď Margherita a Soho by mali byť.
Problém s pizzami • MargheritaPizza má definované, že môže MozzarelaTopping alebo TomatoTopping. Tak prečo nie je vegetariánska???? • Dôvod: nikde nie je povedané, že nemôžu byť použité aj iné oblohy
Uzatváracie axiómy (2) • Spravteuzatváraciu axiómu pre všetky podtriedy triedy NamedPizza • Spusttereasoner
Hodnotové partície • Vytvorte triedu ValuePartition ako podtriedu Thing • Vytvorte triedu SpicinesValuePartition ako podtriedu ValuePartition • Vytvorte triedy Hot, Medium a Mild ako podtriedy SpicinesValuePartition. • Triedy majú byť disjunktné
Pokrývacia axióma Vyberte triedu SpicinesValuePartition a kliknite na Equivalent To a nápíšte Hot or MildorMedium.
Pridanie pikantnosti k oblohe • Vytvorte vlastnosť hasSpicines • Ku každej oblohe pridajte úroveň štipľavosti. (Hot, Medium, Mild).
Vytvoreniekorenistej pizze • Vytvorte triedu SpicyPizza ako podtriedu triedy Pizza. • Napíšte pravidlo, že ak je korenistosť pizze Hot, tak patrí pod SpicyPizza. (Pizza musí obsahovať PizzaTopping). • Použite reasoner
Kardinalita • VytvortetrieduInterestingPizza, ktorá je podtriedou triedy Pizza. • Tato pizza musí obsahovať minimálne 3 oblohy • Použite reasoner • Vytvorte triedu FourCheesePizza, ktorá je podtriedou triedy Pizza. • Táto pizza musí obsahovať štyri syrové oblohy.
Tvorba jedincov • Prekliknite sa do tabu Individuals • Vytvorte inštanciu triedy MargheritaPizza • Nazvite ju exampleMarherita • Nastavte hodnotu types na MargheritaPizza • Rovnakým spôsobom vytvorte inštanciu triedy FourCheesePizza nazvanú QuatroFormaggio.
Datatypové vlastnosti (1) • Prekliknite sa do tabu dataproperties • Vytvorte datatypovú vlastnosť hasCalorificContentValue • Nastavte aby každá pizza mala nejakú kalorickú hodnotu(some, integer). • Nastavte,že exampleMargherita má kalorickú hodnotu 263. • QuatroFormaggio má kalorickú hodnotu 723
Datatypové vlastnosti (2) • Vytvortepodtriedytriedy pizza nazvané HighCaloriePizza a LowCaloriePizza • Nízko kalorická pizza má kalorickú hodnotu menšiu ako 400 • Vysoko kalorická pizza má kalorickú hodnotu menšiu alebo rovnú hodnote 400 • (someinteger[<=400] • Spustereasoner a pozriteči spravne priradilo jedincov.
Záver • Obmedzenie typu value • Naštudovať dotazovací jazyk Sparql