Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:krr:lab_dl [2013/05/31 20:35] ikaf [1.3 Podstawowy język DL] |
pl:dydaktyka:krr:lab_dl [2019/06/27 15:50] (aktualna) |
* 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: |
| |
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> |
| |
__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) |
| |
* 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ęzyk: AL | * Najprostszy język to AL (ang. //Attributive Language//) |
| |
=== Składnia AL === | === Składnia AL === |
* <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) ==== |
* 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 ^ |
| |
Odpowiedzi: [[lab_dl_answers]] | Odpowiedzi: [[lab_dl_answers]] |
| |
| |
==== * Rozszerzenia języków DL ==== | ==== * Rozszerzenia języków DL ==== |
**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]] |
| |
| |
| |
| |
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 : C 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(Joe, Fido)\\ | |
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. |
- 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. |
| |
| |
| |
__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 D are disjoint ⇔ <latex> C \sqcap D</latex> is subsumed by ⊥ | * C i D 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 ==== |
* 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 ==== |
- 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]] |
* [[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, np. edytorami ontologii (pełnią one wówczas rolę pomocniczą, np. do 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]] |
| |
| |