====== Semestrálka 1 ====== ==== 2.1 Analýza existující ontologie ==== - Odhalte modelovací chybu, která způsobila, že Sister není podtřídou Woman. Tuto chybu napravte (! nemodifikujte definici třídy Sister, ta je v pořádku !). - Vysvětlete, proč je GrandFather klasifikován jako podtřída Father ? - Odůvodněte, proč je třída FatherWithoutChildren nesplnitelná. Proved'te a podrobně popište běh tableau algoritmu prokazující tuto nesplnitelnost. - Definice třídy Parent obsahuje redundanci { nalezněte ji a popište ji. - Vysvětlete, jak to, že ontologie je konzistentní, přestože obsahuje nesplnitelnou třídu FatherWithoutChildren. - Vysvětlete, jak to, že ontologie je konzistentní, přestože obsahuje tvrzení Parent(JIRI) a Parent ≡ hasChild .T, ovšem neobsahuje žádně tvrzení tvaru hasChild(JIRI; I), pro nějaký individuál I. - Vysvětlete, proč MIRKO nepatří do třídy ParentOfSingleChild ? ==== 2.2 Syntéza vlastní ontologie ==== Úkoly v této části implementujte do nové OWL ontologie, která importuje ontologii ze zadání úlohy. Výsledkem musí být konzistentní ontologie. - Zatím máme k dispozici pouze role hasChild a hasSibling. K oběma rolím nadefinujte role inverzní. - Definujte a axiomatizujte role hasDescendant a hasAncestor, které budou odvozovat libovolně vzdálené potomky, resp. libovolně vzdálené předky. Tedy bude možně např. odvodit hasAncestor(MIRKO; JIRI). - Definujte koncept „všech rodičů, které mají alespoň 3 syny, ale nejvýše 5 dětí celkem". - Dokončete návrh této ontologie pro genealogický informační systěm - přidejte a dostatečně přesně axiomatizujte alespoň 10 dalších konceptů a 5 dalších rolí (některé datové, některě objektové). Zejměna se věnujte: * manželství - vztahy býti manželem/manželkou, apod. * složitějším rodinným vztahúm - vztah býti strýcem, apod. * genealogickým datům - data, místa narození, apod. - Naplňte ontologii daty alespoň 3 generací pro dvě osoby a ověřte na nich správnost axiomatizace rozšíření navrženěho v předchozím bodě. Můžete si vybrat fiktivní data, nebo např. popsat nějaký známý historický rod. ==== 2.3 Dotazování do ontologie ==== Dotazy vytvářeně v těto části (i) napište do textověho souboru v jazyce SPARQL, (ii)otestujte je na vyvíjeně ontologii pomocí dotazovacího engine v inferečním stroji Pellet, (iii) vypište jejich výsledky, (iv) a analyzujte, zda jsou výsledky očekávaně. - Sestavte konjunktivní dotaz, který nalezne všechny dvojice osob, kterě jsou ve vztahu švagr/švagrová, a každý má alespo_n jednoho bratra. - Sestavte konjunktivní dotaz, kterým naleznete všechny dvojice dětí, kterě nejsou sourozenci avšak sdílejí obě dvojice prarodičú. Dotaz otestujte na navrženě ontologii. Odúvodněte, kde použít nerozlišenou proměnnou, a kde proměnnou rozlišenou. - Formulujte dotaz který ověří, že z ontologie plyne existence alespo_n 2 osob, z nichž jedna je pravnukem druhě (pozor { žádná z těchto osob nemusí být reprezentována individuálem !). - Ukažte, jakým zpúsobem lze dotaz vytvořený v předchozím v bodě zformulovat a vyhodnotit bez pomocí standardního tableau algoritmu pro ověřování konzistence (tedy nemáme-li k dispozici inferenční stroj na konjunktivní dotazy) ~~DISCUSSION~~