Reprezentacja wiedzy dr hab. inż. Krzysztof Patan, prof. PWSZ Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa w Głogowie k.patan@issi.uz.zgora.pl
Reprezentacja wiedzy Symboliczna reprezentacja proceduralna duża efektywność reprezentowania procesów reprezentacja deklaratywna duża efektywność reprezentowania faktów Niesymboliczna sieci neuronowe sieci neuro-rozmyte algorytmy ewolucyjne
Metody organizowania bazy wiedzy metody bazujące na bezpośrednim zastosowaniu logiki metody oparte o sieci Bayesa metody wykorzystujące zapis stwierdzeń metody wykorzystujące systemy regułowe metody wykorzystujące sieci semantyczne metody oparte o drzewa decyzyjne metody oparte na ramach metody oparte o logikę rozmytą metody wykorzystujące modele obliczeniowe
Rachunek zdań Elementy rachunku zdań zmienne zdaniowe (atomy): p, q, r,... reprezentujące zdania oznajmujące funktory (spójniki zdaniowe) negacja koniunkcja alternatywa implikacja równoważność nawiasy Klasyczny rachunek zdań aksjomaty reguły tautologie
Algebra Boola Struktura algebraiczna ({0, 1}, +,,, 0, 1) Aksjomaty przemienność (a + b) = (b + a) oraz (a b) = (b a) rozdzielność a (b + c) = a b + a c elementy neutralne a + 0 = a oraz a 1 = a istnienie elementu komplementarnego a + a = 1 oraz a a = 0
x y x + y x y 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 Podstawowe działania x x 0 1 1 0
Sieci Bayesa Sieć bayesowska służy do przedstawiania zależności pomiędzy zdarzeniami bazując na rachunku prawdopodobieństwa. Przykładem może być reprezentowanie zależności pomiędzy symptomami, a chorobą Sieć jest modelowana za pomocą skierowanego grafu acyklicznego (wierzchołki zdarzenia, łuki związki przyczynowe pomiędzy zdarzeniami. Podstawowe założenie 1 niezależność danego zdarzenia od wszystkich innych, które nie są jego potomkami
Podstawą działania sieci jest twierdzenie Bayesa P (B A) = P (A B)P (B) P (A) gdzie P (B A) prawdopodobieństwo wystąpienia zdarzenia B pod warunkiem wystąpienia zdarzenia A Wzór Bayesa określa, że prawdziwe jest zdarzenie B o ile miało miejsce zdarzenie A Prawdopodobieństwo P (B A) jest wynikiem zestawienia ze sobą dwóch czynników: 1 ilorazu prawdopodobieństw P (A B) i P (A) jak ważne pod względem informacyjnym jest zdarzenie A w odniesieniu do zdarzenia B 2 prawdopodobieństwo zdarzenia P (B) wyliczonego wcześniej (znane a-priori), przed zaistnieniem zdarzenia A Ogólnie P (A, B) = P (A B)P (B) Jeśli zdarzenia są niezależne P (A, B) = P (A)P (B)
Podstawą działania sieci jest twierdzenie Bayesa P (B A) = P (A B)P (B) P (A) gdzie P (B A) prawdopodobieństwo wystąpienia zdarzenia B pod warunkiem wystąpienia zdarzenia A Wzór Bayesa określa, że prawdziwe jest zdarzenie B o ile miało miejsce zdarzenie A Prawdopodobieństwo P (B A) jest wynikiem zestawienia ze sobą dwóch czynników: 1 ilorazu prawdopodobieństw P (A B) i P (A) jak ważne pod względem informacyjnym jest zdarzenie A w odniesieniu do zdarzenia B 2 prawdopodobieństwo zdarzenia P (B) wyliczonego wcześniej (znane a-priori), przed zaistnieniem zdarzenia A Ogólnie P (A, B) = P (A B)P (B) Jeśli zdarzenia są niezależne P (A, B) = P (A)P (B)
Podstawą działania sieci jest twierdzenie Bayesa P (B A) = P (A B)P (B) P (A) gdzie P (B A) prawdopodobieństwo wystąpienia zdarzenia B pod warunkiem wystąpienia zdarzenia A Wzór Bayesa określa, że prawdziwe jest zdarzenie B o ile miało miejsce zdarzenie A Prawdopodobieństwo P (B A) jest wynikiem zestawienia ze sobą dwóch czynników: 1 ilorazu prawdopodobieństw P (A B) i P (A) jak ważne pod względem informacyjnym jest zdarzenie A w odniesieniu do zdarzenia B 2 prawdopodobieństwo zdarzenia P (B) wyliczonego wcześniej (znane a-priori), przed zaistnieniem zdarzenia A Ogólnie P (A, B) = P (A B)P (B) Jeśli zdarzenia są niezależne P (A, B) = P (A)P (B)
Podstawą działania sieci jest twierdzenie Bayesa P (B A) = P (A B)P (B) P (A) gdzie P (B A) prawdopodobieństwo wystąpienia zdarzenia B pod warunkiem wystąpienia zdarzenia A Wzór Bayesa określa, że prawdziwe jest zdarzenie B o ile miało miejsce zdarzenie A Prawdopodobieństwo P (B A) jest wynikiem zestawienia ze sobą dwóch czynników: 1 ilorazu prawdopodobieństw P (A B) i P (A) jak ważne pod względem informacyjnym jest zdarzenie A w odniesieniu do zdarzenia B 2 prawdopodobieństwo zdarzenia P (B) wyliczonego wcześniej (znane a-priori), przed zaistnieniem zdarzenia A Ogólnie P (A, B) = P (A B)P (B) Jeśli zdarzenia są niezależne P (A, B) = P (A)P (B)
Podstawą działania sieci jest twierdzenie Bayesa P (B A) = P (A B)P (B) P (A) gdzie P (B A) prawdopodobieństwo wystąpienia zdarzenia B pod warunkiem wystąpienia zdarzenia A Wzór Bayesa określa, że prawdziwe jest zdarzenie B o ile miało miejsce zdarzenie A Prawdopodobieństwo P (B A) jest wynikiem zestawienia ze sobą dwóch czynników: 1 ilorazu prawdopodobieństw P (A B) i P (A) jak ważne pod względem informacyjnym jest zdarzenie A w odniesieniu do zdarzenia B 2 prawdopodobieństwo zdarzenia P (B) wyliczonego wcześniej (znane a-priori), przed zaistnieniem zdarzenia A Ogólnie P (A, B) = P (A B)P (B) Jeśli zdarzenia są niezależne P (A, B) = P (A)P (B)
Prawdopodobieństwo całkowite n P (A) = P (B i )P (A B i ) i=1 gdzie P (A) prawdopodobieństwo zajścia zdarzenia A, P (A B i ) prawdopodobieństwo wystąpienia zdarzenia A pod warunkiem zajścia zdarzenia B i
Przykład Jestem w pracy, dzwoni do mnie sąsiad John mówiąc, że alarm w moim domu został włączony. Sąsiadka Mary nie dzwoni. Czasami alarm wywoływany jest przez niewielkie trzęsienie ziemi. Czy jest włamanie do mojego domu? Zmienne: włamanie, trzęsienie ziemi, alarm, dzwoni Mary, dzwoni John Sieć może odzwierciedlić wiedzę na temat: włamywacz może uruchomić alarm trzęsienie ziemi może uruchomić alarm alarm może skłonić Mary do zatelefonowania alarm może skłonić Johna do zatelefonowania
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 2 3 4
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 P (J M) = P (J)? 2 3 4
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 P (J M) = P (J)? nie 2 3 4
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 P (J M) = P (J)? nie 2 P (A J, M) = P (A J)? P (A J, M) = P (A) 3 4
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 P (J M) = P (J)? nie 2 P (A J, M) = P (A J)? nie P (A J, M) = P (A) nie 3 4
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 P (J M) = P (J)? nie 2 P (A J, M) = P (A J)? nie P (A J, M) = P (A) nie 3 P (B A, J, M) = P (B A)? P (B A, J, M) = P (B)? 4
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 P (J M) = P (J)? nie 2 P (A J, M) = P (A J)? nie P (A J, M) = P (A) nie 3 P (B A, J, M) = P (B A)? tak P (B A, J, M) = P (B)? nie 4
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 P (J M) = P (J)? nie 2 P (A J, M) = P (A J)? nie P (A J, M) = P (A) nie 3 P (B A, J, M) = P (B A)? tak P (B A, J, M) = P (B)? nie 4 P (E B, A, J, M) = P (E A)? P (E B,A, J, M) = P (E A, B)?
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 P (J M) = P (J)? nie 2 P (A J, M) = P (A J)? nie P (A J, M) = P (A) nie 3 P (B A, J, M) = P (B A)? tak P (B A, J, M) = P (B)? nie 4 P (E B, A, J, M) = P (E A)? nie P (E B,A, J, M) = P (E A, B)? tak
Załóżmy następujący porządek zdarzeń: M, J, A, B, E 1 P (J M) = P (J)? nie 2 P (A J, M) = P (A J)? nie P (A J, M) = P (A) nie 3 P (B A, J, M) = P (B A)? tak P (B A, J, M) = P (B)? nie 4 P (E B, A, J, M) = P (E A)? nie P (E B,A, J, M) = P (E A, B)? tak
Przykład Modelowanie problemów związanych z uruchomieniem silnika samochodowego Aby silnik zapalił akumulator musi być naładowany, a w baku musi znajdować się paliwo Ilość paliwa można ocenić na podstawie odczytu wskaźnika Wskaźnik działa tylko wtedy, gdy naładowany jest akumulator Akumulator można sprawdzić włączając radio Wszystkie te zależności są probabilistyczne w swojej naturze nawet jeśli dysponujemy dostateczną ilością energii elektrycznej i paliwa, silnik może nie zapalić z innych, nieokreślonych w modelu przyczyn, a odczyt wskaźnika ilości paliwa może być błędny radio może być zepsute i nie działać mimo, że jest podłączone do źródła prądu
prawdopodobieństwo warunkowego dla węzła wskaźnik paliwa pusty bak pełny pusty akumulator naładowany rozładowany naładowany rozładowany naładowany 0.95 0.01 0.02 0.01 rozładowany 0.05 0.99 0.98 0.99 prawdopodobieństwo warunkowe dla węzła radio działa akumulator naładowany rozładowany działa 0.95 0 nie działa 0.05 1
Prawdopodobieństwo warunkowe jeśli zbiornik paliwa jest pusty, a akumulator naładowany, to prawdopodobieństwo tego, że odczyt wskaźnika ilości paliwa będzie normalny, wynosi 0.95 istnieje jednak 5% szansy na to, że wskaźnik będzie działał nieprawidłowo nawet jeśli akumulator jest wyczerpany, istnieje prawdopodobieństwo normalnego wskazania ilości paliwa równe 0.01 jeśli akumulator jest wyczerpany, to radio z pewnością nie będzie działać istnieje pewne prawdopodobieństwo (0.05), że nie uda się włączyć radia, nawet jeśli akumulator jest naładowany
Wnioskowanie jeśli silnik nie zapala, a licznik wskazuje małą ilość paliwa, to późniejsze prawdopodobieństwo (a posteriori) pustego baku i wyczerpanego akumulatora wynosi w obu przypadkach około 1 3 gdy przyjmiemy dodatkowe założenie, że radio samochodowe działa, to sieć dojdzie do wniosku, że akumulator nie może być nienaładowany i określi, że silnika nie można uruchomić prawie na pewno z powodu pustego zbiornika paliwa sieć uznała wysoki odczyt wskaźnika za błędny prawdopodobieństwo pełnego zbiornika paliwa przy wszystkich założeniach wynosi 0.01 jeśli bak jest faktycznie pełny, przyczyną niemożności uruchomienia silnika nie jest ani brak paliwa, ani rozładowany akumulator
Reguły Regułowa baza wiedzy (A, a) (B, b) (C, c) IF A ma wartość a AND B ma wartość b THEN C przyjmuje wartość c (P, p) (Q, q) (R, r) Regułowe systemy decyzyjne 1 uczenie generowanie zbioru reguł 2 wybór reguł reguły pasujące do wzorca 3 klasyfikacja podjęcie ddecyzji { (P, p) (R, r) (Q, q) (R, r) }
Reguły Regułowa baza wiedzy (A, a) (B, b) (C, c) IF A ma wartość a AND B ma wartość b THEN C przyjmuje wartość c (P, p) (Q, q) (R, r) Regułowe systemy decyzyjne 1 uczenie generowanie zbioru reguł 2 wybór reguł reguły pasujące do wzorca 3 klasyfikacja podjęcie ddecyzji { (P, p) (R, r) (Q, q) (R, r) }
Klauzula Horna Klauzula Horna to klauzula, w której co najwyżej jeden element jest niezanegowany Klauzula jest równoważna p q t u (p q t) u Klauzule Horna są używane w programowaniu logicznym (na przykład w Prologu) Wykorzystywane są również do reprezentowania wiedzy w systemach ekspertowych
Reguły produkcyjne Newell i Simon (1972), modelowanie sposobu działania percepcji i aparatu poznawczego człowieka System produkcyjny system oparty na regułach produkcji, czyli parach (warunek działanie) Reguły produkcji mają postać: IF warunek1 AND warunek2... THEN akcja Lewa część reguły produkcji określa warunki jej stosowalności, zaś prawa jej działanie Przykład Jeśli przystąpisz do egzaminu i udzielisz poprawnych odpowiedzi to zdasz egzamin
Warunki wykonania akcji są jawne Reguły nie odwołują się do siebie (tak jak procedury), minimalizując oddziaływanie pomiędzy sobą Reguły produkcyjne da się zastosować w stosunkowo dużych systemach Działa dobrze do czasu aż liczba reguł nie robi się zbyt duża Można je też traktować jako mechanizm kontrolujący sprzężenie pomiędzy wiedzą deklaratywną i proceduralną Systemy produkcyjne składają się z 3 części: 1 bazy reguł produkcji 2 specjalnej struktury danych, nazywanej kontekstem dane na których działa system (lista faktów, złożona struktura danych) 3 interpretera, kontrolującego aktywność systemu strategia, którą regułę należy zastosować
Przykład System produkcyjny identyfikujący produkty spożywcze. Jest taśma, a na niej różne produkty Kontekst = listy, na której są wprowadzone automatycznie do programu własności produktów Funkcja logiczna JEST jest na liście danych kontekstowych Funkcja logiczna DOPISZ = operacja dopisywania do listy Reguły P 1. IF JEST zielone THEN DOPISZ produkt rolny P 2. IF JEST mały pojemnik THEN DOPISZ delikatesowe P 3. IF JEST mrożonka OR JEST produkt rolny THEN DOPISZ nietrwałe P 4. IF JEST ciężkie AND JEST tanie AND NOT nietrwałe THEN DOPISZ arbuz P 5. IF JEST nietrwałe AND JEST ciężkie THEN DOPISZ indyk P 6. IF JEST ciężkie AND JEST produkt rolny THEN DOPISZ arbuz
Interpreter I 1. Znajdź wszystkie reguły których lewa strona jest spełniona I 2. Jeśli daje się zastosować więcej niż jedna reguła usuń te, które prowadzą do powtarzających się symboli I 3. Wykonaj po kolei dające się zastosować reguły. Jeśli nie można zastosować żadnej reguły przerwij działanie I 4. Usuń listę dających się zastosować reguł i przejdź do I 1 Reguły produkcji wywoływane są cyklicznie W każdym cyklu ustala się możliwe do zastosowania reguły (faza dopasowania reguł do warunków) Jeśli do tych samych założeń stosuje się więcej reguł wybierana jest jedna z nich (faza rozstrzygnięcia sprzeczności) Ostatni etap to wykonanie działania (faza działania)
Zaczynając np. od listy L = (zielone, ciężkie) możemy zastosować tylko regułę P 1 otrzymując L = (produkt rolny, zielone, ciężkie) W następnym kroku możemy zastosować P 1 i P 6. P 1 daje powtarzające się symbole, więc stosujemy P 6, otrzymując L = (arbuz, produkt rolny, zielone, ciężkie) System zatrzymuje się, gdyż wszystkie stosowalne w kolejnym cyklu reguły prowadzą do takich samych symboli, które już są na liście
Systemy produkcyjne podsumowanie Zalety systemów produkcyjnych Modularność wiedzy: niezależne reguły Jednolitość sposobu reprezentacji Naturalność zapisu w wielu zastosowaniach Wady Trudno zapisać sekwencyjny algorytm postępowania, gdyż reguły nie odwołują się bezpośrednio do siebie Przykłady zastosowań: systemy eksperckie
Reguły decyzyjne Reguła decyzyjna ma postać implikacji r : φ ψ φ warunek/przesłanka koniukcja testów na atrybutach ψ konkluzja/wniosek klasa decyzyjna Praktycznie konkluzja często zawiera polecenia, akcje lub decyzje Przykład Jeśli przystąpisz do egzaminu i dostaniesz pytania to zacznij udzielać odpowiedzi
r 1 : (a 1 = bdb) dec = zysk r 2 : (a 1 = dobra) (a 3 = nie) dec = strata r 3 : (a 1 = dobra) (a 2 = super) (a 4 = nie) dec = strata
Drzewa decyzyjne Jest to struktura drzewiasta, w której węzły wewnętrzne zawierają testy na wartościach atrybutów Z każdego węzła wewnętrznego wychodzi tyle gałęzi, ile jest możliwych wyników testu w tym węźle Liście zawierają decyzje o klasyfikacji obiektów Drzewo decyzyjne koduje program zawierajacy same instrukcje warunkowe
Przykład Rozważmy klasyfikację robotów
Budujemy drzewo
... i klasyfikujemy
Ramy Idea 1 chęć wyjaśnienia efektywności rozumowania naturalnego w odniesieniu do problemów świata rzeczywistego 2 zbudowanie bazy danych zawierającej dużą ilość wiedzy deklaratywnej, niezbędnej w tego typu rozumowaniu Ramy (Minsky) Struktura danych służącą do reprezentowania stereotypowych sytuacji, takich jak bycie w jakimś pokoju lub wyjście na przyjęcie urodzinowe dziecka. Z każdą ramą związanych jest kilka rodzajów informacji. Niektóre z nich mówią, jak użyć daną ramę. Inne informują o tym, jakiego zdarzenia należy oczekiwać. Jeszcze inne informują co robić, jeśli te oczekiwania nie są spełnione Wiedza miała być kodowana w sposób: dostatecznie strukturalny, by osiągnąć pewien stopień zgodności w bazie danych elastyczny, by system mógł odzyskiwać własną informację w sytuacjach nieprzewidzianych
Przykład Założenie: znajdujemy się w domu i naszym zadaniem jest otwarcie drzwi do nieznanego pokoju Oczekiwania: przed wykonaniem tej czynności mamy na ogół pewne wyobrażenie tego, co będzie można dostrzec po otwarciu drzwi Percepcja: jeśli po otwarciu drzwi zobaczylibyśmy brzeg morza lub inny krajobraz, początkowo pojawiłyby się trudności z jego rozpoznaniem i zaskoczenie. Pojawiłoby się zdezorientowanie, ponieważ nie moglibyśmy prawidłowo zinterpretować tego, co widzimy Interpretacja została uaktywniona rama pokój, jako funkcja otwarcia drzwi i rama ta odgrywa ważną rolę w interpretacji napływającej informacji oczekiwania z tym związane dotyczą między innymi kształtu pokoju jeśli zobaczylibyśmy w pokoju łóżko uaktywniona zostałaby rama sypialnia nastąpiłby dostęp do najbardziej uszczegółowionej, dostępnej ramy rozpoznawanie sterowane przez ramy
Struktura ramy Rama pewna struktura danych bardzo wysokiego poziomu do opisu obiektów Rama składa się z nazwy oraz pewnej liczby tzw. klatek, z których każda ma swoją nazwę i opisuje konkretną właściwość obiektu W ramie nie mogą wystąpić dwie klatki o tej samej nazwie Każda klatka może zawierać zbiór tzw. faset, opisujących wartości lub dołączone procedury W klatce nie może być dwóch faset o takiej samej nazwie
Kategorie ram W najprostszym przypadku rama może zawierać nazwę obiektu i zbiór par < atrybut, wartość >. Rama przypomina wtedy budową rekordy znane z konwencjonalnych języków programowania W ogólniejszym przypadku ramy mogą reprezentować bardziej złożoną wiedzę bowiem umożliwiają na deklaratywną i proceduralną reprezentację wiedzy W większości języków opartych na ramach, dzieli się je na dwie kategorie: 1 klasy (ang. class) opis jednego lub więcej podobnych obiektów; klasa może być podklasą innej klasy 2 egzemplarze (ang. instances) ramy nie będące klasami dla innych ram i tworzone są na podstawie wzorca będącego klasą
Przykład (Class Security (Slots are ((OneOf low average high) Risk) (Symbol IssuedBy ) (Symbol Country) (OneOf yes no Taxable) (OneOf yes no Marketable))) (Subclass TreasuryBond (View Security with (IssuedBy:=US Treasury)) (View Governments with (Basis:=interest) (FaceValue:=100)) (Slots are (Real Bid) (Real Coupon))) (Subclass Governments (View Security with (Risk:=low) (Country:=US) (Taxable:=yes) (Marketable:=yes)) (Slots are ((OneOf interest discount) Basis) (Real Yield) (Integer Face Value) (Date Maturity))) (Instance 2012 - November 22 (View Governments with (Yield:=7.72) (Maturity:=22 Nov 2012)) (View TreasuryBond with (Bid:=141) (Coupon:=12)))
Sieci semantyczne Sieć semantyczna jest specyficzną i bardzo silną metodą reprezentacji danych, opierającą się na opisie obiektów poprzez definiowanie relacji między różnymi pojęciami Sieć sematyczna to pewnego rodzaju logika przedstawiająca relacje pomiędzy obiektami w postaci rysunku Model nie ma ściśle zdefiniowanej syntaktyki i nie nadaje się do automatycznego generowania wiedzy Graf przedstawiający sieć semantyczną jest pomocny przy formułowaniu stwierdzeń i reguł Do zdefiniowania sieci wprowadza się: 1 zbiór obiektów O = {o i } 2 zbiór cech C = {c j } 3 zbiór wartości cech V = {v k } Elementami zbioru obiektów mogą być symbole oznaczające konkrety lub abstrakcje, np. samochód symbol abstrakcji, Fiat 126p konkret
Relacje O O relacja między obiektami; może być postaci: 1 ISA relacja typu część całość (nadrzędność) 2 ISPART relacja podrzędności, czyli (coś) jest częścią (czegoś) O C relacja postaci posiada cechę V C relacja postaci jest wartością cechy V V relacja uporządkowania elementów zbioru wartości cech, np. relacja typu: (coś) poprzedza (coś), lub (coś) następuje po (czymś) O V relacja typu posiada wartość cechy, czyli przypisania obiektom wartości cechy
Definicja sieci semantycznej Sieć semantyczna określona jest przez trójkę gdzie S =< P, T, R > P = O C V zbiór pojęć (wierzchołków grafu, węzły) T zbiór typów relacji, np. ndk (należy do klasy), je (jest elementem), pc (posiada cechę), jwc (jest wartością cechy), pwc (posiada wartość cechy) R O T O zbiór wszystkich relacji występujących w danej sieci semantycznej (krawędzie, gałęzie grafu)
Przykład Sieć semantyczna opisująca materiały budowlane
Przykład Justyna, Beata i Cecylia to przyjaciółki, z których każda studiuje informatykę albo historię sztuki. Każda z nich wyjeżdża na wakacje do Włoch lub do Hiszpanii, z tym, że Cecylia zawsze jeździ sama. Justyna, studentka informatyki zawsze spędza wakacje z jedną z przyjaciółek. W tym roku nie pojedzie do Hiszpanii, co oznacza, że wybierze się na wakacje z jedną ze studentek historii sztuki Narysuj odpowiednią sieć semantyczną przedstawiającą powyższe zależności Określ zbiór obiektów, cech, wartości cech i relacji Odpowiedz na pytania: Kto co studiuje? Dokąd każda z dziewcząt pojedzie na wakacje?
P = O C V, przy czym O = {Przyjaciółki, Justyna, Beata, Cecylia} C = {studia, wakacje, towarzystwo na wakacje} V = {informatyka, historia sztuki, Włochy, Hiszpania, tak, nie} T zbiór typów relacji, ndk (należy do klasy), je (jest elementem), pc (posiada cechę), jwc (jest wartością cechy), pwc (posiada wartość cechy) R O T O zbiór wszystkich relacji ndk(justyna, Przyjaciółki), ndk(beata, Przyjaciółki), ndk(cecylia, Przyjaciółki), pc(przyjaciółki, studia), pc(przyjaciółki, wakacje), pc(przyjaciółki, towarzystwo na wakacje) jwc(informatyka, studia), jwc(historia sztuki, studia), jwc(włochy, wakacje), jwc(hiszpania, wakacje), jwc(tak, towarzystwo na wakacje), jwc(nie, towarzystwo na wakacje) pwc(justyna, informatyka), pwc(justyna, Włochy), pwc(cecylia, nie), pwc(justyna, tak)
Kto co studiuje? Justyna studiuje informatykę. Skoro Cecylia zawsze jeździ sama, a wiadomo, że Justyna pojedzie w towarzystwie Beaty lub Cecylii, a ta, z którą pojedzie studiuje historię sztuki (jest powiedziane: justyna wybierze się z jedną ze studentek historii sztuki... ) co oznacza, że obie: Beata i Cecylia są studentkami historii sztuki Dokąd każda z dziewcząt pojedzie na wakacje? Justyna nie pojedzie do Hiszpanii, więc pojedzie do Włoch z Beatą, a Cecylia sama do hiszpanii