Page 27 - 4800
P. 27

Якщо  побудуємо  запит  системі  goal:  not(dog(„Шарік”)),  вона,  можливо,
                  відповість  “так”.  Але  цю  відповідь  не  можна  розуміти  як  повідомлення  про  те,  що
                  “Шарік не собака”, а потрібно трактувати так, що системі не вистачає інформації для
                  доведення  твердження  “Шарік  –  собака”.  Такий  підхід  бере  свій  початок  від
                  припущення  про  замкнутість  світу.  Відповідно  до  цього  постулату  світ  замкнутий  у
                  тому розумінні, що все існуюче в ньому або указане в програмі, або може бути з неї
                  виведене.  І  в  іншому  випадку,  коли  чогось  немає  в  програмі  (не  може  бути  з  такої
                  виведено), тоді воно хибне, і відповідно буде істинним його заперечення.
                         Ми ж традиційно не вважаємо світ замкнутим: якщо в програмі явно не сказано,
                  що dog(„Шарік”), то це ще не означає, що ми хочемо сказати: “Шарік не собака”.
                         Розглянемо напраклад наступну програму
                         /* Програма 2.6 */
                  predicates
                         r(symbol)
                         g(symbol)
                         p(symbol)
                  clauses
                         r(a).
                         g(b).
                         p(X):-not(r(X)).
                         На запит g(X), p(X) cистема дасть відповість Х=b, а на  p(X), g(X) система дасть
                  відповідь  no  (ні).  Уся  різниця  в  тому,  що  в  першому  випадку  змінна  Х  до  моменту
                  обчислення Р(X) була вже зв’язана, а в другому цього ще не трапилось.

                         2.13 Зміст звіту з лабораторної роботи

                         1. Вказати номер, тему й мету лабораторної роботи.
                         2.  Навести  результати  дослідження  програми  2.3  при  наявності  і  відсутності
                  предиката fail у програмі.
                         2.  Додати  процедури  подібні  до  процедури  do_answer()  в  індивідуальному
                  завданні (додаток Б).
                         3. Вдосконалити розроблену раніше програму з використанням меню для вибору
                  різних  варіантів  запитів.  Організувати  повний  інтерфейс  програми  (повторне
                  виконання запитів, вихід з програми по ключовому слові і т.п.).










































                                                              27
   22   23   24   25   26   27   28   29   30   31   32