10 ROZDZIAŁ 1. PODSTAWY
• uzyskiwaniu odpowiedzi TAK/NIE na pytanie o prawdziwość pewnego zdania®. Z uwagi na to, że rachunek kwantyfikatorów nie jest rozsztrzygalny odpowiedź negatywna oznacza, że
- podane zdanie jest rozstrzygalne i nieprawdziwe lub
- zdanie jest nierozstrzygalne;
• uzyskiwaniu odpowiedzi na pytanie o ekstensję funkcji zdaniowej1 2 3 przy czym zwracana jest odp. „NIE” jeśli ekstensja funkcji jest pusta.
Pytanie 1.2. Jak należy rozumieć pojęcie obiektu występujące w Prologu? Tak samo jak w OOP? Pojęcie „obiekt” w językach zorientowanych obiektowo oznacza jednoznacznie identyfikowalną (np. poprzez adres) strukturę zawierającą pewne parametry jako dane i zbiór operacji/procedur/funkcji określonych na tych parametrach. Wartości parametrów określają stan obiektu, który może zmieniać się w trakcie pracy programu.
W Prologu natomiast definicja obiektu jest definicją operacyjnej: podaje się zbiór predykatów spełnianych przez definiowane obiekty.
Uwaga: Obiekty mogą pozostawać we wzajemnych zależnościach wyrażanaych za pomocą implikacji, której poprzednikiem i następnikiem są określone formuły zdaniowe. Możemy zatem definiować jedne obiekty poprzez inne w ten sposób, że z prawdziwości pewnych predykatów określonych na znanych już obiektach i na tym definiowanym wynika prawdziwość jakiegoś predykatu określonego (między innymi) na obiekcie definiowanym.
Pytanie 1.3. Co nazywamy relacją, faktem, regułą?
Relacja: związek między obiektami wyrażony za pomocą predykatu przez nie spełnianego. Inaczej, można powiedzieć, że predykat określony na pewnym zbiorze zmiennych jest konkretną, nazwaną relacją między obiektami będącymi wartościami zmiennych z jego dziedziny. Np.: predykat p(A,B,C,D) prawdziwy dla „wektorów” (a,b,c,d); (e,fg,h) i nieprawdziwy dla (a,fc,h) wyznacza zarówno relację między obiektami (a,b,c,d); (e,fg,h) ale także między (a,fg,h)4 .
Fakt: zdanie otrzymane przez wstawienie do określonego w programie predykatu wartości zmiennych (a zatem obiektów), dla których jest ono prawdziwe. Podana tu definicja faktu odnosi go całkowicie do formlizmu stosowanego w Prologu, w istocie fakt ma odzwierciedlać pewien elementarny fragment rzeczywistości modelowanej w programie.
Reguła: zdanie prawdziwe wiążące implikacją obiekty i relacje wchodzące w jego skład.
Zdanie powinno być konsystentne (konsystentny - wewnętrznie spójny lub zgodny z czymś) w formie zapsiu z bazą a jego dziedzina musi się zawierać w zbiorze stałych występujących w bazie.
Ekstensja funkcji zdaniowej - zakres funkcji zdaniowej wyznaczony przez zbiór przedmiotów, których nazwy wstawione w miejsce zmiennych wolnych zmieniają tę funkcje w zdanie prawdziwe.
“Definicja operacyjna to taka definicja, w której znaczenie definiowanej nazwy określane jest drogą podania czynności (operacji) niezbędnych do określenia znaczenia tej nazwy.
Ważna jest także przynależności stałych do dziedziny predykatu, gdyż jak to zostało wspomniane, odpowiedź negatywna na postawione pytanie zostanie udzielona przez Prolog także wtedy, gdy dla reprezentowanej przez wstawione do relacji stałe rzeczywistości utworzone zdanie jest nie tyle nieprawdziwe co pozbawione sensu.