Page 14 - 4800
P. 14

де символ „;” (крапка з комою) еквівалентний логічній операції „АБО” і в даному описі
            використаний  для  того,  щоб  показати,  що  домен  object  може  мати  одну  з  можливих
            структур, описаних для нього в області domains.

                   1.6 Процедури як елемент представлення знань

                   Зміст  пропозицій  Пролог-програм  може  бути  зрозумілий  або  з  позицій
            декларативного  підходу,  або  з  позицій  процедурного  підходу.  Декларативний  зміст
            підкреслює статичне існування відношень. Порядок проходження підцілей у правилі не
            впливає на декларативний зміст цього правила.
                   При процедурному трактуванні програми підкреслюється послідовність кроків,
            що  виконуються  при  обробці  запиту.  У  цьому  випадку,  набуває  значення  порядок
            проходження підцілей у правилі.
                   Множини пропозицій, що мають те саме ім’я предиката з однаковою кількістю
            аргументів,  називають  процедурою.  Коли  обробляється  запит  до  процедури,  то  він
            аналізує  фрази,  що  утворять  процедуру,  в  тому  порядку,  в  якому  вони  в  ній
            представлені.  Вважають,  що  між  правилами  процедури  неявно  присутній  сполучник
            „або”.
                   Раніше було сформовано два підходи до представлення наших знань про поняття
            колега. З однієї сторони колегами є товариші по службі, тобто будь-яка пара осіб, що
            працюють разом, з іншого боку – будь-яка пара осіб, що об’єднана об’єктом спільної
            діяльності.  Тепер  ми  підійшли  до  того,  щоб  два  наші  уявлення  про  поняття  колега
            об’єднати в одне.
                   Уявіть собі, що одне з формулювань якого-небудь поняття (у нашому випадку це
            колега) ми одержали від одного експерта, що має свої знання цієї проблеми, а друге –
            від експерта, що має інші знання цієї ж проблеми. Поєднуючи в Пролог-програмі два
            визначення однієї і  тієї  ж проблеми, ми одержимо систему, що знає  більше кожного
            окремого експерта.
                   Поняття  колеги,  що  задовольняє  обом  точкам  зору,  може  бути  описано
            відношенням виду:
                   Повний_колега(Особа_1, Особа_2, Предмет_спільної_діяльності),
            яке на Пролозі можна описати, наприклад, предикатом  all_colleague, структура якого
            буде цілком аналогічна структурі предикату  unite, а визначити його можна  у  вигляді
            процедури, що містить три декларації предикату all_colleague.
            predicates
                   all_colleague(name, name, object)
            clauses
                   all_colleague(X, Y, Z):- colleague(X, Y), Z=labour.
                   all_colleague(X, Y, Z):- unite(X, Y, Z).
                   all_colleague(X, Y. Z):- unite(Y, X, Z).
                   З декларативної точки зору цей опис процедури повний_колега можна прочитати
            так.
                   Для будь-яких двох осіб X і Y і будь-якої загальної діяльності Z X і Y є колегами
            за спільною діяльністю Z
                   ЯКЩО
                   X і Y є товаришами по службі
                   І
                   загальна їхня діяльність Z – це праця
                   АБО X поєднує з Y спільна діяльність Z
                   АБО Y поєднує з X спільна діяльність Z
                   Останнє правило усуває асиметрію відношення unite стосовно осіб, об’єднаних
            спільною діяльністю. Дійсно, якщо Козлов є колегою Петренка по роботі, то, мабуть,
            що і Петренко є колегою Козлова по роботі.

                   1.7 Цілісність і несуперечність баз даних і знань

                   В  Козлова  тільки  один  колега  –  Петренко,  зв’язаний  з  ним  спільною  працею.
            Разом  з  тим  у  Петренка  крім  Козлова  є  ще  два  колеги,  що  зв'язані  з  ним  спільною
            працею.  Але  з  цих  двох  посилань  і  наших  представлень  про  поняття  колеги  стає





                                                         14
   9   10   11   12   13   14   15   16   17   18   19