Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:krr:lab_dl [2013/05/31 20:34]
ikaf [3.5 Wsparcie narzędziowe]
pl:dydaktyka:krr:lab_dl [2019/06/27 15:50] (aktualna)
Linia 13: Linia 13:
   * Elementami reprezentacji są **pojęcia** (klasy), **role** (relacje) i **instancje** (obiekty ((Nazwy w nawiasach używane są zwykle w ontologiach zapisanych w języku OWL, opartym na formalizmie DL))).   * Elementami reprezentacji są **pojęcia** (klasy), **role** (relacje) i **instancje** (obiekty ((Nazwy w nawiasach używane są zwykle w ontologiach zapisanych w języku OWL, opartym na formalizmie DL))).
   * Logiki opisowe są koncepcyjnie powiązane z //sieciami semantycznymi//​ (ang. //semantic networks//) i //ramami// (ang. //​frames//​),​ jednak w przeciwieństwie do nich, przez swoje powiązanie z logiką pierwszego rzędu, posiadaję formalnie zdefiniowaną semantykę i zapewniają możliwość automatycznego wnioskowania.   * Logiki opisowe są koncepcyjnie powiązane z //sieciami semantycznymi//​ (ang. //semantic networks//) i //ramami// (ang. //​frames//​),​ jednak w przeciwieństwie do nich, przez swoje powiązanie z logiką pierwszego rzędu, posiadaję formalnie zdefiniowaną semantykę i zapewniają możliwość automatycznego wnioskowania.
 +  * Intuicyjnie można powiedzieć,​ że logiki opisowe łączą paradygmat obiektowy (ramy, sieci semantyczne) z logiką (rachunek predykatów,​ logika 1. rzędu).
  
 __**Przykład 1**__: graf obrazujący zbiór obiektów powiązanych relacjami i należących do pewnych klas: __**Przykład 1**__: graf obrazujący zbiór obiektów powiązanych relacjami i należących do pewnych klas:
Linia 18: Linia 19:
  
 Wybrane fragmenty ww. grafu zapisane w logice opisowej: Wybrane fragmenty ww. grafu zapisane w logice opisowej:
-    * <​latex>​ person(Fred) ​</​latex>,​ <​latex> ​ cat(Tibbs)</​latex>,​ <​latex>  ​has\_pet(Fred, Tibbs)</​latex>​+    * <​latex> ​Fred : person </​latex>,​ <​latex>  ​Tibbs: ​cat</​latex>,​ <​latex> ​ (Fred, Tibbs) ​: has\_pet</​latex>​
     * <​latex> ​ man \equiv person \sqcap adult \sqcap male</​latex>,​ <​latex> ​ cat\_liker \equiv person \sqcap \exists likes.cat</​latex> ​     * <​latex> ​ man \equiv person \sqcap adult \sqcap male</​latex>,​ <​latex> ​ cat\_liker \equiv person \sqcap \exists likes.cat</​latex> ​
-    * <​latex> ​likes(cat\_liker,​ cat)</​latex>,​ <​latex> ​eats\_only(sheep, grass)</​latex>​+    * <​latex>​(cat\_liker,​ cat) : likes </​latex>,​ <​latex>​ (sheep, grass) ​: eats\_only</​latex>​
     * <​latex>​ cat \sqsubseteq animal</​latex>,​ <​latex> ​ sheep \sqsubseteq animal \sqcap \forall eats.grass</​latex>​     * <​latex>​ cat \sqsubseteq animal</​latex>,​ <​latex> ​ sheep \sqsubseteq animal \sqcap \forall eats.grass</​latex>​
  
Linia 30: Linia 31:
 __Instancje (obiekty):​__ __Instancje (obiekty):​__
   - przynależność obiektu do klasy (ang. //concept assertions//​),​ np:   - przynależność obiektu do klasy (ang. //concept assertions//​),​ np:
-    * <​latex> ​person(Fred</​latex>​ - Fred jest osobą  +    * <​latex>​Fred ​: person ​</​latex>​ - Fred jest osobą  
-    * <​latex> ​ cat(Tibbs)</​latex>​ Tibbs jest kotem+    * <​latex>​Tibbs ​: cat</​latex> ​Tibbs jest kotem
   - relacja między dwoma obiektami   - relacja między dwoma obiektami
-    * <​latex> ​ ​has\_pet(Fred, Tibbs)</​latex>​ - Fred ma zwierzę, którym jest Tibbs+    * <​latex>​ (Fred, Tibbs) ​: has\_pet</​latex>​ - Fred ma zwierzę, którym jest Tibbs
  
 __Pojęcia__ __Pojęcia__
   - definicje pojęć (warunki konieczne i wystarczające),​ np.   - definicje pojęć (warunki konieczne i wystarczające),​ np.
     * <​latex> ​ man \equiv person \sqcap adult \sqcap male</​latex>​ - Mężczyzna to dorosła osoba rodzaju męskiego ​     * <​latex> ​ man \equiv person \sqcap adult \sqcap male</​latex>​ - Mężczyzna to dorosła osoba rodzaju męskiego ​
-    * <​latex> ​ cat\_liker \equiv person \sqcap \exists likes.cat</​latex>​ - Miłośnik kotów to osoba takaże istnieje kot, którego ta osoba lubi+    * <​latex> ​ cat\_liker \equiv person \sqcap \exists likes.cat</​latex>​ - Miłośnik kotów to osoba, ​która ​lubi (jakiegoś) kota
   -  relacje między pojęciami (klasami)   -  relacje między pojęciami (klasami)
-    * <​latex> ​likes(cat\_liker,​ cat)</​latex>​ - (każdy) miłośnik kotów lubi (jakiegoś) kota +    * <​latex>​ (cat\_liker,​ cat) : likes</​latex>​ - (każdy) miłośnik kotów lubi (jakiegoś) kota 
-    * <​latex> ​eats\_only(sheep, grass)</​latex>​ - (każda) owca je tylko trawę+    * <​latex>​ (sheep, grass) ​: eats\_only</​latex>​ - (każda) owca je tylko trawę
   - aksjomaty   - aksjomaty
-    * <​latex>​ cat \sqsubseteq animal</​latex>​ kot jest zwierzęciem (hierarchia pojęć)+    * <​latex>​ cat \sqsubseteq animal</​latex> ​(każdy) ​kot jest zwierzęciem (hierarchia pojęć)
     * <​latex> ​ sheep \sqsubseteq animal \sqcap \forall eats.grass</​latex>​ owce to zwierzęta, które jedzą tylko trawę (warunek konieczny, ale nie wystarczający)     * <​latex> ​ sheep \sqsubseteq animal \sqcap \forall eats.grass</​latex>​ owce to zwierzęta, które jedzą tylko trawę (warunek konieczny, ale nie wystarczający)
  
Linia 59: Linia 60:
   * Podstawowe elementy języka to: //atomicze pojęcia// i //atomiczne role//.   * Podstawowe elementy języka to: //atomicze pojęcia// i //atomiczne role//.
   * Złożone opisy tworzy się indukcyjnie za pomocą //​konstruktorów//​.   * Złożone opisy tworzy się indukcyjnie za pomocą //​konstruktorów//​.
-  * Poszczególne ​logiki opisowe ​różnią się między sobą **zbiorem dopuszczalnych konstruktorów** +  * Poszczególne ​języki DL różnią się między sobą **zbiorem dopuszczalnych konstruktorów** 
-  * Najprostszy językAL+  * Najprostszy język ​to AL (ang. //​Attributive Language//)
  
 === Składnia AL === === Składnia AL ===
Linia 103: Linia 104:
     * osoba bezdzietna <​latex> ​ Person \sqcap \forall hasChild. \bot </​latex>​     * osoba bezdzietna <​latex> ​ Person \sqcap \forall hasChild. \bot </​latex>​
  
-__**Ćwiczenie 2 **__: 
-FIXME 
 ==== - Rodzina języków DL ==== ==== - Rodzina języków DL ====
 Poszczególne języki DL rozróżniamy poprzez konstruktory,​ które dopuszczają. Poszczególne języki DL rozróżniamy poprzez konstruktory,​ które dopuszczają.
Linia 120: Linia 119:
   * <​latex> ​ \mathcal{ALN} </​latex>​   * <​latex> ​ \mathcal{ALN} </​latex>​
   * <​latex> ​ \mathcal{ALC} </​latex>​ -> odpowiada podzbiorowi logiki pierwszego rzędu ograniczonemu do formuł z dwoma zmiennymi   * <​latex> ​ \mathcal{ALC} </​latex>​ -> odpowiada podzbiorowi logiki pierwszego rzędu ograniczonemu do formuł z dwoma zmiennymi
 +
 +__**Ćwiczenie 2**__
 +
 +Rozważmy interpretację:​ I = (∆, ·I ), gdzie
 +  * <​latex>​\Delta I = \{John,​Suzan,​Max,​Helen,​Natalie,​Nick\}</​latex>,​
 +  * <​latex>​Human^I = \{John,​Suzan,​Helen,​Natalie,​Nick\}</​latex>, ​
 +  * <​latex>​Male^I = \{John, Max, Nick\}</​latex>,​
 +  * <​latex>​Dog^I = \{Max\}</​latex>,​
 +  * <​latex>​Doctor^I = \{John, Helen\}</​latex>, ​
 +  * <​latex>​areFriends^I = \{(Suzan,​Helen),​(Helen,​Suzan),​(Natalie,​Helen),​(Helen,​Natalie),</​latex>​ <​latex>​ (Suzan, Natalie), (Natalie, Suzan), (Natalie, Nick), (Nick, Natalie) \} </​latex>,​
 +  * <​latex>​areMarried^I = \{(Suzan, John), (John, Suzan)\}</​latex>,​
 +  * <​latex>​hasPet^I = \{(Suzan, Max), (John, Max)\}</​latex>​.
 +
 +  - Przedstaw powyższą interpretację w postaci grafu.
 +  - Zapisz następujące opisy w logice deskrypcyjnej:​
 +    - Ci którzy są w związku małżeńskim z doktorem i posiadający psa jako zwierzę domowe.
 +    - Ci którzy nie są w związku małżeńskim,​ a wszyscy ich przyjaciele są albo kobietami albo mężczyznami w związkach małżeńskich.
 +    - Wyznacz rozszerzenie powyższych pojęć w interpretacji I (sprawdź czy/kto w podanej interpretacji zalicza się do tych grup).
 +  - Zapisz następujące pojęcia w postaci aksjomatów (postaci <​latex>​A \sqsubseteq B</​latex>​) języka <​latex>​ALC</​latex>:​
 +    - Ci, którzy nie mają męskich przyjaciół,​ nie mają zwierząt domowych.
 +    - Wszyscy mężczyźni są albo w związku małżeńskim albo mają nie-męskiego przyjaciela.
 +    - Czy te aksjomaty są prawdziwe w danej interpretacji?​
 +
 +Odpowiedzi: [[lab_dl_answers#​reprezentacja_-_zadanie]]
  
 ==== - Powiązanie z innymi rachunkami (logicznymi) ==== ==== - Powiązanie z innymi rachunkami (logicznymi) ====
Linia 126: Linia 149:
     * relacje (atomiczne) ⇔ predykaty binarne     * relacje (atomiczne) ⇔ predykaty binarne
     * pojęcia ⇔ formuły z jedną wolną zmienną     * pojęcia ⇔ formuły z jedną wolną zmienną
-  * Formuły logiki opisowej można intuicyjnie interpretować poprzez analogię do algabry ​zbiorów+  * Formuły logiki opisowej można intuicyjnie interpretować poprzez analogię do algebry ​zbiorów
  
 ^ Przykład użycia ^ Składnia DL ^ Składnia FOL ^ Algebra zbiorów ^ ^ Przykład użycia ^ Składnia DL ^ Składnia FOL ^ Algebra zbiorów ^
Linia 159: Linia 182:
  
 Odpowiedzi: [[lab_dl_answers]] Odpowiedzi: [[lab_dl_answers]]
 +
  
 ==== * Rozszerzenia języków DL ==== ==== * Rozszerzenia języków DL ====
Linia 186: Linia 210:
 **BONUS**: **BONUS**:
   * Złożoność obliczeniowa wnioskowania w poszczególnych językach DL zależy od ich siły ekspresji: zobacz [[http://​www.cs.man.ac.uk/​~ezolin/​dl/​|przewodnik po językach DL]]   * Złożoność obliczeniowa wnioskowania w poszczególnych językach DL zależy od ich siły ekspresji: zobacz [[http://​www.cs.man.ac.uk/​~ezolin/​dl/​|przewodnik po językach DL]]
- 
- 
  
  
Linia 200: Linia 222:
 Składnia: Składnia:
   * TBox to skończony zbiór aksjomatów terminologicznych postaci:   * TBox to skończony zbiór aksjomatów terminologicznych postaci:
-    * <​latex> ​ C \sqsubseteq D (R \sqsubseteq S</​latex>​  +    * <​latex> ​ C \sqsubseteq D </​latex>​  
-    * lub <​latex>​ C \equiv D (R \equiv S</​latex>​ +    * <​latex>  ​R \sqsubseteq S </​latex>​  
-  * Definicje to równości, które po leweje ​stronie mają pojęcie atomiczne+    * <​latex>​ C \equiv D </​latex>​ 
 +    * <​latex> ​R \equiv S </​latex>​ 
 +  * Definicje to równości, które po lewej stronie mają pojęcie atomiczne
  
 Semantyka: Semantyka:
   * funkcja interpretacji <​latex>​ \mathcal{I} </​latex>​ mapuje każde pojecie na podzbiór dziedziny   * funkcja interpretacji <​latex>​ \mathcal{I} </​latex>​ mapuje każde pojecie na podzbiór dziedziny
-  * interpretacja //​spełnia//​ aksjomat <​latex> ​ C \sqsubseteq D (R \sqsubseteq S) </​latex>​ jeżeli: <​latex> ​ C^{\mathcal{I}} \subseteq D^{\mathcal{I}} </​latex> ​lub <​latex> ​ R^{\mathcal{I}} \subseteq ​S^{\mathcal{I}} ​</​latex>​ +  * interpretacja //​spełnia//​ aksjomat <​latex> ​ C \sqsubseteq D </​latex>​ jeżeli: <​latex> ​ C^{\mathcal{I}} \subseteq D^{\mathcal{I}} </​latex>​; analogicznie w przypadku relacji ​<​latex>​ R \sqsubseteq ​S </​latex>​ 
-  * interpretacja //I// spełnia definicję <​latex>​ C \equiv D (R \equiv S) </​latex>​ jeżeli: <​latex> ​ C^{\mathcal{I}} = D^{\mathcal{I}} </​latex> ​lub <​latex> ​ R^{\mathcal{I}} = S^{\mathcal{I}} ​</​latex> ​+  * interpretacja //I// spełnia definicję <​latex>​ C \equiv D </​latex>​ jeżeli: <​latex> ​ C^{\mathcal{I}} = D^{\mathcal{I}} </​latex>​; analogicznie w przypadku relacji ​<​latex>​ R \equiv S </​latex>​
   * interpretacja //spełnia terminologię (TBox)// jeżeli spełnia wszystkie jej aksjomaty. Mówimy wtedy, że I //jest modelem// T.   * interpretacja //spełnia terminologię (TBox)// jeżeli spełnia wszystkie jej aksjomaty. Mówimy wtedy, że I //jest modelem// T.
  
-__**Ćwiczenie ​3**__: +__**Ćwiczenie ​4**__: 
-Zapisz ​poniższe TBox'​y ​w postaci ​zdań oraz zobrazuj je za pomocą grafów: +Używając pojęć: "​Przedmiot",​ "​Wykładowca",​ "​Mgr"​ i "​Inż"​ oraz ról "​prowadzi"​ i "​maTytuł"​ przedstaw ​poniższą wiedzą ​w postaci ​TBoxa: 
-^ Lp^ Aksjomaty ^ +  - Każdy kto prowadzi przedmiot musi mieć albo stopień magistra albo być wykładową. 
-| TBox 1 | <​latex>​ \\ +  - Każdy wykładowca ma tytuł inżyniera
-Animal \sqsubseteq \exists eats\top\\ +  ​- Każdy wykładowca prowadzi jakiś przedmiot
-\mathit{Giraffe} ​ \sqsubseteq ​ Animal\\ +  ​- Każdy posiadający tytuł magistra ma też tytuł inżyniera
-Giraffe ​ \sqsubseteq ​ \forall eats.Leaf\\ ​ + 
-</​latex>​| +Odpowiedzi: [[lab_dl_answers#​tbox]]
-| TBox 2 | <​latex>​ +
-Vegetarian \equiv (\forall eats.(\neg (\exists partOf.Animal))) \sqcap (\forall eats.(\neg Animal)) \sqcap Animal\\ +
-Cow \sqsubseteq Vegetarian\\ +
-MadCow \equiv \exists eats.(\exists partOf.Sheep \sqcap Brain) \sqcap Cow \\ +
-</​latex>​ | +
-| TBox 3 | <​latex>​ +
-Elderly \sqsubseteq ​ Adult\\ +
-OldLady \equiv Elderly \sqcap Female \sqcap Person \\ +
-</​latex>​ | +
-| TBox 4 | <​latex>​ +
-OldLady \sqsubseteq ​ \exists hasPet.Animal \sqcap \forall hasPet.Cat \\  +
-DogOwner \equiv Person \sqcap \exists hasPet.Dog \\ +
-AnimalLover \equiv Person \sqcap \geq 3 hasPet \\ +
-</​latex>​ |+
  
  
 ==== - Opis świata (ABox) ==== ==== - Opis świata (ABox) ====
-Składnia: ABox zawiera wiedzę o instancjac ​(obiektach występujących w opisywanym świecie), w tym: +Składnia: ABox zawiera wiedzę o instancjach ​(obiektach występujących w opisywanym świecie), w tym: 
-  * tzw. //concept assertions//​ np. C(a) +  * stwierdzenia o przynależności do klasy tzw. //concept assertions//​ np. a : C 
-  * tzw. //role assertions//​ np. R(b,c)+  * stwierdzenia o relacjach między obiektami ​tzw. //role assertions//​ np. (b,c) : R
  
 Semantyka: Semantyka:
   * funkcja interpretacji mapuje każdą nazwę na element dziedziny.   * funkcja interpretacji mapuje każdą nazwę na element dziedziny.
   * interpretacja //​spełnia//​ (względem terminologii T):   * interpretacja //​spełnia//​ (względem terminologii T):
-    * C(a) iff <​latex>​ a^{\mathcal{I}} \in C^{\mathcal{I}}</​latex>​ +    * a : wtw gdy <​latex>​ a^{\mathcal{I}} \in C^{\mathcal{I}}</​latex>​ 
-    * R(b,c) iff <​latex> ​b^{\mathcal{I}},​ c^{\mathcal{I}} ​\in R^{\mathcal{I}}</​latex>​ +    * (b,c) : R wtw gdy <​latex> ​(b^{\mathcal{I}},​ c^{\mathcal{I}}\in R^{\mathcal{I}}</​latex>​ 
-    * ABox iff spełnia wszystkie jego stwierdzenia. Mówimy wtedy, że I //jest modelem// A.+    * ABox wtw gdy spełnia wszystkie jego stwierdzenia. Mówimy wtedy, że I //jest modelem// A.
  
  
-__**Ćwiczenie ​4**__+__**Ćwiczenie ​5**__
 Dany jest następujący opis świata (ABox): Dany jest następujący opis świata (ABox):
 +  * (john,​susan):​ friend
 +  * (john,​andrea):​ friend
 +  * (susan,​andrea):​ loves
 +  * (andrea,​bill):​ loves
 +  * susan: Female
 +  * bill: ¬Female
  
-<​latex> ​ +  - Wypisz relacje, klasy i obiekty. 
-\\Cat(Tibbs)\\ +  - Przedstaw ww. ABox w postaci grafu. 
-Dog(Fido)\\ +  - Zapisz następujące stwierdzenie:​ "John ma przyjaciółkę ​(przyjaciela rodzaju żeńskiego), które jest zakochana w mężczyźnie ​(osobie niebędącej rodzaju żeńskiego)" w postaci ''​john : X''​gdzie ''​X''​ jest odpowiednim opisem.
-Cow(Flossie)\\ +
-\\ +
-Person(Fred)\\ +
-Person(Joe)\\ +
-\leq 1 hasPet(Joe)\\ +
-Female(Minnie)\\ +
-Male(Mick)\\ +
-\\ +
-hasPet(JoeFido)\\ +
-hasPet(Fred,Tibbs)\\ +
-isPetOf(Rex,Mick)\\ +
-\\ +
-reads(Mick, DailyMirror)\\ +
-drives(Mick,​ Q123ABC)\\ +
-\\ +
-Van(Q123ABC)\\ +
-WhiteThing(Q123ABC)\\ +
-</​latex>​ +
- +
-FIXME+
  
 +Odpowiedzi: [[lab_dl_answers#​abox]]
 ===== - Wnioskowanie w logikach deskrypcyjnych ===== ===== - Wnioskowanie w logikach deskrypcyjnych =====
   * Logiki opisowe, dzięki formalnemu ugruntowaniu w logice, umożliwiają automatyczne wnioskowanie.   * Logiki opisowe, dzięki formalnemu ugruntowaniu w logice, umożliwiają automatyczne wnioskowanie.
Linia 296: Linia 293:
   - Rozłączność (ang. //​disjointness//​)   - Rozłączność (ang. //​disjointness//​)
     * Dwa pojęcia C i D są //​rozłączne//​ wzg. T. jeżeli <​latex>​ C^{\mathcal{I}} \cap D^{\mathcal{I}} = \emptyset</​latex>​ dla każdego modelu I terminologii T.     * Dwa pojęcia C i D są //​rozłączne//​ wzg. T. jeżeli <​latex>​ C^{\mathcal{I}} \cap D^{\mathcal{I}} = \emptyset</​latex>​ dla każdego modelu I terminologii T.
 +
 +__**Ćwiczenie 6**__
 +  - Wiedząc, że:
 +    * <​latex>​Vegetarian \equiv (\forall eats.(\neg (\exists partOf.Animal))) \sqcap (\forall eats.(\neg Animal)) \sqcap Animal</​latex>​
 +    * <​latex>​Cow \sqsubseteq Vegetarian</​latex>​
 +    * <​latex>​MadCow \equiv \exists eats.(\exists partOf.Sheep \sqcap Brain) \sqcap Cow </​latex>​ \\ Odpowiedz na pytanie:
 +    - Jakiemu pojęciu jest równoważne pojęcie ''​MadCow''?​
 +  - Wykorzystując bazę wiedzy z sekcji [[#​terminologia_tbox]] odpowiedz na pytanie: ​
 +    - Czy zdanie"​ "​Każdy kto prowadzi przedmiot musi mieć tytuł inżyniera"​ jest logiczną konsekwencją tej bazy wiedzy? Odpowiedź uzasadnij.
  
  
Linia 307: Linia 313:
  
 __Uwaga:__ __Uwaga:__
-  * all TBox tasks can be reduced to subsumption or satisfiability +  * wszystkie zadania ​TBox mogą być zredukowane do zadania subsumcji lub spełnialności 
-    * C and are disjoint ​⇔ <​latex>​ C \sqcap D</​latex> ​is subsumed by ⊥ +    * C są rozłączne ​⇔ <​latex>​ C \sqcap D</​latex> ​zawiera się w ⊥ 
-    * e.g. C is subsumed by D ⇔ <​latex>​ C \sqcap \neg D </​latex> ​is unsatisfiable ​(**this is used in //​tableau-based algorithms//​**) +    * np. C zawiera się D ⇔ <​latex>​ C \sqcap \neg D </​latex> ​nie jest spełnialne ​(na tej obserwacji opierają się algorytmy tableau) 
-  * all inferences can be reduced to //consistency checking// of an ABox+  ​wszystkie zadania wnioskowania mogą być sprowadzone do sprawdzenia spójności bazy wiedzy. 
 + 
 +__**Ćwiczenie 7**__: 
 +  ​- Wiedząc, że: 
 +    ​<​latex>​ OldLady \equiv Elderly \sqcap Female \sqcap Person</latex> 
 +    * <​latex>​ OldLady \sqsubseteq ​ \exists hasPet.Animal </latex><​latex>​ \sqcap </latex><​latex>​ \forall hasPet. Cat </latex> 
 +    * <​latex>​ hasPet(Minnie,​Tom)</​latex>,<​latex> ​ Elderly(Minnie)</​latex>,<​latex> ​ Female(Minnie)</​latex>​ \\ Odpowiedz na pytania: 
 +    - Czy każda starsza pani musi mieć kota? Dlaczego? 
 +    - Do jakiej klasy należy obiekt Minnie? 
 +    - Do jakiej klasy należy obiekt Tom? 
 +  - Rozważ opis świata z sekcji [[#abox]] i odpowiedz na pytanie: 
 +    * Czy John należy do klasy: ∃friend.(Female ⊓ ∃loves.¬Female)?​ 
 +    * Podpowiedź:​ 
 +      * Zwizualizuj w postaci grafu ten ABox, zaobserwuj, do jakich klas należą poszczególne obiekty. 
 +      * Rozważ dwa przypadki: ''​andrea : Female''​ i ''​andrea : ¬Female''​ 
 + 
 + 
 +Odpowiedzi: [[lab_dl_answers#​wnioskowanie]]
  
 ==== - Założenie o otwartości świata ==== ==== - Założenie o otwartości świata ====
Linia 320: Linia 343:
   * Semantyka otwartego świata wymaga nietrywialnych mechanizmów wnioskowania,​ a realizaja zapytań jest bardziej skomplikowana.   * Semantyka otwartego świata wymaga nietrywialnych mechanizmów wnioskowania,​ a realizaja zapytań jest bardziej skomplikowana.
  
 +**BONUS**:
 +  * [[http://​www.cs.man.ac.uk/​~horrocks/​ISWC2003/​Tutorial/​examples.pdf|Więcej przykładów wnioskowania...]] ​
  
 ==== - Algorytmy wnioskowania ==== ==== - Algorytmy wnioskowania ====
Linia 336: Linia 361:
   - Stop, kiedy nie można zastosować więcej reguł lub wystąpiła sprzeczność   - Stop, kiedy nie można zastosować więcej reguł lub wystąpiła sprzeczność
  
-__**Ćwiczenie**__ +__**Ćwiczenie ​8**__ (dla chętnych):
-  - Wiedząc, że: +
-    * <​latex>​ OldLady \equiv Elderly \sqcap Female \sqcap Person</​latex>​ +
-    * <​latex>​ OldLady \sqsubseteq ​ \exists hasPet.Animal </​latex><​latex>​ \sqcap </​latex><​latex>​ \forall hasPet. Cat </​latex>​ +
-    * <​latex>​ hasPet(Minnie,Tom)</​latex>,<​latex> ​ Elderly(Minnie)</​latex>,<​latex> ​ Female(Minnie)</​latex>​ \\ Odpowiedz na pytania: +
-    - Czy każda starsza pani musi mieć kota? Dlaczego? +
-    - Do jakiej klasy należy obiekt Minnie? +
-    - Do jakiej klasy należy obiekt Tom? +
-  - Wiedząc, że: +
-    * <​latex>​Vegetarian \equiv (\forall eats.(\neg (\exists partOf.Animal))) \sqcap (\forall eats.(\neg Animal)) \sqcap Animal</​latex>​ +
-    * <​latex>​Cow \sqsubseteq Vegetarian</​latex>​ +
-    * <​latex>​MadCow \equiv \exists eats.(\exists partOf.Sheep \sqcap Brain) \sqcap Cow </​latex>​ \\ Odpowiedz na pytanie: +
-    - Jakiemu pojęciu jest równoważne pojęcie ''​MadCow''?​+
  
-Odpowiedzi: [[lab_dl_answers#​wnioskowanie]]+Sprawdź czy poniższe pojęcia są spełnialne:​ 
 +  - A ⊓ ∃R.C ⊓ ∀R.D  
 +  - ∃R.C ⊓ ∀R.¬(C ⊓ D)  
 +  - A⊓∃R.C⊓∀R.D⊓∀R.¬(C⊓D)  
 +  - ∃R.(A ⊓ ∃R.C) ⊓ ∀R.¬C  
 +  - ∃R.(A ⊓ ∃R.C) ⊓ ∀R.∀R.¬C  
 +  - ¬C ⊓ ∃R.C ⊓ ∀R.(¬C ⊔ ∃R.C)  
 +  - A ⊓ ∀R.A ⊓ ∀R.¬∃P.A ⊓ ∃R.∃P.A 
 +Przykładowe rozwiązania z użyciem algorytmu tableau: [[http://​www.dcs.bbk.ac.uk/​~michael/​sw/​slides/​Sew11-8-tut.pdf|tutaj]].
  
-**BONUS**: 
-  * [[http://​www.cs.man.ac.uk/​~horrocks/​ISWC2003/​Tutorial/​examples.pdf|Więcej przykładów wnioskowania...]] ​ 
  
 ==== - Wsparcie narzędziowe ==== ==== - Wsparcie narzędziowe ====
-Silniki ​wnioskujące dla DL +Istnieje wiele implementacji silników ​wnioskujących dla logik deskrypcyjnych. 
-  ​* ​[[http://​www.cs.man.ac.uk/​~sattler/​reasoners.html|lista Prof. U. Sattler]]+Niektóre z nich są zoptymalizowane pod kątem konkretnych języków ​DL (np. takich na których opierają się warianty języka ontologii OWL ). 
 + 
 +Lista dostępnych silników wnioskujących dostępna jest na stronie: ​[[http://​www.cs.man.ac.uk/​~sattler/​reasoners.html|Prof. U. Sattler]]. 
 +Popularne narzędzia to m.in: 
 +  * [[http://​clarkparsia.com/​pellet/​download|Pellet]]
   * [[http://​www.cs.man.ac.uk/​~horrocks/​FaCT/​|FaCT]]   * [[http://​www.cs.man.ac.uk/​~horrocks/​FaCT/​|FaCT]]
   * [[http://​www.sts.tu-harburg.de/​%7Er.f.moeller/​racer/​|Racer]]   * [[http://​www.sts.tu-harburg.de/​%7Er.f.moeller/​racer/​|Racer]]
Linia 365: Linia 388:
   * [[http://​db-tom.cs.uwaterloo.ca/​AssertionRetrieval/​pages/​kbgen.jsp|CARE]] - online   * [[http://​db-tom.cs.uwaterloo.ca/​AssertionRetrieval/​pages/​kbgen.jsp|CARE]] - online
  
-==== Zadania ==== +Najczęściej silniki wnioskujące zintegrowane są z innymi narzędziami,​ npedytorami ontologii (pełnią one wówczas rolę pomocniczą,​ npdo sprawdzania spójności ontologii itp.).
-http://​db-tom.cs.uwaterloo.ca/​AssertionRetrieval/​ +
-===== - Dla zainteresowanych =====+
  
-==== Literatura, materiały ====+__**Ćwiczenie 9**__: 
 +  - Pobierz silnik wnioskujący [[http://​clarkparsia.com/​pellet/​download|Pellet]]. 
 +    - :!: Na borgu powinien być w ''/​usr/​local/​pellet''​. 
 +  - Uruchom go wpisując w konsoli ''​pellet.sh help''​ i zapoznaj się z dostępnymi opcjami. (''/​usr/​local/​pellet/​pellet.sh''​) 
 +  - Uruchom ''​pellet.sh consistency <​ontology>''​ gdzie ''<​ontology>''​ jest bazą wiedzy ''​people+pets.owl''​ umieszczoną w katalogu ''​examples/​data''​. 
 +  - Jakie są rezultaty?​ 
 +  - Uruchom ''​pellet.sh classify <​ontology>''​ dla powyższej ontologii ''​peopl+pets.owl''​ 
 +  - Jakie są rezultaty?
  
-  - Description Logic Handbook: {{http://​www.inf.unibz.it/​~franconi/​dl/​course/​dlhb/​dlhb-01.pdf|Rozdział 1: "​Introduction to Description Logics"​}} 
-  - Portal o logikach opisowych: ​ 
  
 +===== Materiały =====
 +==== Wykłady, prezentacje ====
 +  * [[http://​www.inf.unibz.it/​~franconi/​dl/​course/​|DL Course]] by Enrico Franconi
 +    * **[[http://​www.inf.unibz.it/​~franconi/​dl/​course/​slides/​prop-DL/​propositional-dl.pdf|Propositional Description Logics]]** :!:
 +    * [[http://​www.inf.unibz.it/​~franconi/​dl/​course/​slides/​kbs/​kbs.pdf|Knowledge Bases in Description Logics]]
 +    * [[http://​www.inf.unibz.it/​~franconi/​dl/​course/​slides/​logic/​fol/​fol-2.pdf|DL reasoning, FOL etc.]]
  
-Wikipedia+  * [[http://​www.cse.iitd.ac.in/​~kkb/​DL-1.pdf|DL Tutorial]] 
-  * [[http://en.wikipedia.org/wiki/Description_logic|Description ​Logic]]+ 
 +  * [[http://www.cs.man.ac.uk/~horrocks/Slides/​IJCAR-tutorial/​Print/​p1-introduction.pdf|Description ​Logics—Basics,​ Applications,​ and More]] 
 + 
 +  * [[http://​www.cs.put.poznan.pl/​jjozefowska/​wyklady/​ai/​Ontologie.pdf|Ontologie,​ Logiki deskrypcyjne]] 
 +  * [[http://​www.cs.man.ac.uk/​~horrocks/​Slides/​index.html|Horrock'​s Presentations]] 
 +  * [[http://​www.inf.unibz.it/​~franconi/​dl/​course/​slides/​db/​db.pdf|DL and DB]] 
 + 
 +  * [[http://​www.obitko.com/​tutorials/​ontologies-semantic-web/​description-logics.html|DL]] by Obitko 
 +    * [[http://​www.obitko.com/​tutorials/​ontologies-semantic-web/​syntax-and-semantics.html|Syntax & Semantics]] 
 +    * [[http://​www.obitko.com/​tutorials/​ontologies-semantic-web/​translation-to-fopl.html|Translation to FOPL]] 
 +    * [[http://​www.obitko.com/​tutorials/​ontologies-semantic-web/​reasoning.html|Reasoning]] 
 + 
 +  * [[http://​www.inf.unibz.it/​~franconi/​dl/​course/​dlhb/​dlhb-01.pdf|Introduction to DL]] (handbook) 
 + 
 +==== Kursy ==== 
 +  * [[http://​www.inf.unibz.it/​~franconi/​dl/​course/​|DL Course]] by Enrico Franconi 
 +  * [[http://​www.cs.man.ac.uk/​~horrocks/​Teaching/​cs646/​|by I.Horrocks]] 
 +    * Lectures: 
 +      * {{http://​www.cs.man.ac.uk/​%7Ehorrocks/​Teaching/​cs646/​Slides/​pt2-dlintro.pdf|Intro to DL}} 
 +      * {{http://​www.cs.man.ac.uk/​%7Ehorrocks/​Teaching/​cs646/​Slides/​pt3-dlreasoning.pdf|DL reasoning}} 
 +    * Labs: 
 +      * DL reasoning: [[http://​www.cs.man.ac.uk/​~horrocks/​Teaching/​cs646/​Labs/​dlreasoning/​|HTML]],​ {{http://​www.cs.man.ac.uk/​~horrocks/​Teaching/​cs646/​Labs/​dlreasoning.pdf|PDF}} 
 +      * [[http://​www.cs.man.ac.uk/​%7Ehorrocks/​Teaching/​cs646/​Exams/​dlreasoning2/​|Exam]] - zadania z DL 
 +  * [[http://​www.cs.man.ac.uk/​~rector/​modules/​CS646/​|Rector]] 
 +    * Lectures: [[http://​www.cs.man.ac.uk/​~rector/​modules/​CS646/​Lecture-Handouts/​|Handouts]] 
 +    * Lab: [[http://​www.cs.man.ac.uk/​~rector/​modules/​CS646/​Lab-Handouts/​|Handouts]] 
 +  * [[http://​www.dcs.bbk.ac.uk/​~michael/​sw/​sw.html|SemWeb course in London]], 2012 
 + 
 +==== Narzędzia ==== 
 +  * [[http://​www.cs.man.ac.uk/​~horrocks/​FaCT/​|FaCT]] 
 +  * [[http://​www.sts.tu-harburg.de/​%7Er.f.moeller/​racer/​|Racer]] 
 +    * [[http://​www.sts.tu-harburg.de/​%7Er.f.moeller/​racer/​Racer-1-9-2-beta-Release-Notes/​release-notes-1-9-2se3.html#​x4-70003.2|RacerPorter]] GUI 
 +  * [[http://​blipkit.wordpress.com/​2010/​11/​27/​posh-the-prolog-owl-shell/​|POSH:​ the prolog OWL shell]] 
 +  * [[http://​code.google.com/​p/​dlmodel/​|DL model]] 
 +  * [[http://​db-tom.cs.uwaterloo.ca/​AssertionRetrieval/​pages/​kbgen.jsp|CARE]] - online 
 +  * [[http://​www.cs.man.ac.uk/​~sattler/​reasoners.html|More reasoners]]
  
  
pl/dydaktyka/krr/lab_dl.1370025264.txt.gz · ostatnio zmienione: 2019/06/27 15:52 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0