Sztuczna Inteligencja -- miniprojekt:
budowa ontologii

  1. [przygotowanie] Zapoznaj się z teorią dotyczącą reprezentacji wiedzy za pomocą ontologii OWL:

  2. [10 punktów] Pizza tutorial:

    (a) Zapoznaj się z narzędziem Protégé (wersja 5) do pracy z ontologiami OWL (http://protege.stanford.edu/). Uzyskaj dostęp do działającego systemu: albo zainstaluj go na własnym komputerze. (Jest również dostępny system Webprotege, ale rozpoczynanie poważniejszej pracy z tym systemem jest ryzykowne.)

    (b) Zapoznaj się z przewodnikiem/samouczkiem zwanym OWL Pizza Tutorial (wersja 1.3):
    http://mowl-power.cs.man.ac.uk/protegeowltutorial/resources/ProtegeOWLTutorialP4_v1_3.pdf i w szczególności przerób wszystkie ćwiczenia (Exercise 1 do Exercise 60).

    (c) Zwróć uwagę na poniższe zagadnienia/hasła:

    (d) W raporcie z wykonania zadania podaj numery ćwiczeń z Pizza tutorial, do których miałeś/aś wątpliwości, bądź nie udało Ci się ich poprawnie wykonać.

    (e) Przećwicz odpytywanie ontologii za pomocą wyrażeń logiki opisowej (w zakładce DL Query). To są wyrażenia, za pomocą których tworzyłeś/aś warunki ograniczające klasy w panelu Description. W Protégé (tak samo w TopBraid Composer) wpisywane są one w tzw. notacji Manchester (Manchester syntax), która opisana jest m.in. w PDF-ie z wykładu. Wykonaj poniższe ćwiczenia:

    1. Utwórz i przetestuj wyrażenia DL definiujące klasę, dla których można uzyskać jakiś zwięzły (krótki) niepusty wynik dla kategorii: bezpośrednie nadklasy, klasy równoważne, bezpośrednie podklasy, i instancje. W raporcie z wykonania zadania podaj cztery opracowane wyrażenia, oraz uzyskane wyniki.
    2. Do stworzonej ontologii pizzy dodaj warunek, by każda pizza posiada dokładnie jedną bazę (PizzaBase). Zresynchronizuj reasoner, żeby sprawdzić, czy nie wykryje on błędów w ontologii. Podaj utworzone wyrażenie logiczne.
      Wyjaśnij dlaczego jest dopuszczalne (i poprawne), że stworzone w ramach ćwiczeń instancje pizzy nie mają bazy.
    3. Stwórz klasę MildPizza jako zdefiniowaną podklasę klasy Pizza z warunkiem stanowiącym, że posiada wyłącznie dodatki łagodne. Postaraj się stworzyć definicję odporną, to znaczy sformułowaną ogólnie (a nie np. przez wyliczenie dozwolonych dodatków). Sprawdź, że reasoner zaakceptował definicję i sklasyfikował przynajmniej PizzaMargherita jako łagodną. Podaj utworzone wyrażenie definiujące.

    (f) Do stworzonej ontologii pizzy dodaj rozmiar dla pizzy: Large, Medium, Small. Czy lepiej do tego użyć właściwości obiektowych (object property) czy prostych typów danych (data property)? Wprowadź odpowiednie definicje do ontologii, sprawdź poprawność reasonerem. Opisz w raporcie jakie jednostki (entities) stworzyłeś/aś, i podaj charakteryzujące je wyrażenia DL.

    (g) Wyszukaj opis pizzy Super Supreme z Pizza Hut (włącznie z danymi o kaloryczności). Zdefiniuj ją jako pizzę nazwaną (NamedPizza), uzupełniając ontologię o wszystkie niezbędne elementy. W jaki sposób możemy spowodować automatyczne określanie kaloryczności pizzy w zależności od jej rozmiaru? Opisz zastosowane rozwiązane w raporcie i wklej odpowiednie wyrażenia określające stworzone przez Ciebie byty. Stwórz obiekt (indywiduum) klasy Super Supreme o rozmiarze Large, oraz drugi obiekt o rozmiarze Small.

    (h) Przećwicz odpytywanie ontologii za pomocą SPARQL (w zakładce SPARQL Query). Stwórz zapytania o:

    1. indywidua klasy Pizza
    2. indywidua klasy PizzaMargherita
    3. indywidua klasy PizzaSuperSupreme
    4. indywidua dowolnej pizzy, z wartościami kaloryczności, o ile posiadają

    Zweryfikuj uzyskane wyniki. Wklej do raportu kompletne zapytania (wraz z niezbędnymi deklaracjami prefiksów), oraz uzyskanych odpowiedzi, w postaci tabelki. Wyjaśnij stworzone zapytania oraz otrzymane wyniki.

    Następnie znajdź w internecie jakiś ``SPARQL end point”, czyli serwis umożliwiający zadawanie zapytań SPARQL do określonej ontologii. Wystaw swoją ontologię zapisaną w pliku odpowiedniego formatu na dostępnej Ci stronie internetowej, i powtórz powyższe zapytania SPARQL. Porównaj uzyskane odpowiedzi z uzyskanymi lokalnie i opisz wynik w raporcie.

    Uwaga: Protégé jest dojrzałym programem open source istniejącym od lat 1980-tych i posiadającym chyba największą bazę użytkowników na świecie. Ponieważ jednak jest systemem stale rozwijanym, i pojawiają się nowe standardy, narzędzia, wtyczki, itp., zdarzają się błędy. Dobrą praktyką jest okresowe zapisywanie opracowanej ontologii na pliku, i kontynuacja pracy po restarcie Protégé i załadowaniu ontologii z pliku. Oraz ograniczone zaufanie do operacji Undo.

    Istnieje wiele alternatywnych narzędzi do modelowania ontologicznego. Na przykład, szczególnie polecany jest komercyjny system Top Braid Composer (istnieje wersja free nadająca się do małych projektów). Zapytania SPARQL można alternatywnie wykonać za pomocą narzędzia ARQ, które może sprawdzać graf w podanym pliku lokalnym, ściągnąć plik z podanej lokalizacji w Internecie, lub przekazać zapytanie do internetowego ``SPARQL end point.”