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)
Nahoru