ршення процесу міркувань. Поставимо собі метою домогтися того, щоб система взаємодіяла з користувачем так, як у наступному прикладі діалогу (відповіді користувача даються напівжирним шрифтом, репліки пролог-системи - курсивом):
ласка, запитуйте:
питер це тигр.
Це правда: питер має шерсть?
так.
Це правда: питер їсть м'ясо?
немає.
Це правда: питер має гострі зуби?
так.
Це правда: питер має кігті?
чому.
Щоб перевірити по прав3, що питер це хижак,
Щоб перевірити по прав5, що питер це тигр
Це був ваш питання
Це правда: питер має кігті?
так.
Це правда: питер має очі, спрямовані вперед?
так.
Це правда: питер має рудувато-коричневий колір?
так.
Це правда: питер має чорні смуги?
так.
(питер це тигр) це правда
Хочете дізнатися, як?
так.
питер це тигр
було виведено за прав5 з
питер це хижак,
було виведено за прав3 з
питер це ссавець
було виведено за прав 1 з
питер має шерсть
було сказано
і
питер має гострі зуби
було сказано
і
питер має кігті
було сказано
і
питер має очі, спрямовані вперед
було сказано
і
питер має рудувато-коричневий колір
було сказано
і
питер має чорні смуги
було сказано
Як видно з діалогу, система задає користувачеві питання, що стосуються "примітивною" інформації, наприклад:
Це правда: питер їсть м'ясо?
Цю інформацію не можна відшукати в базі знань або вивести з іншої інформації. На подібні питання користувач може відповідати двома способами:
(1) повідомивши системі в якості відповіді на питання необхідну інформацію або
(2) запитавши систему, чому ця інформація необхідна.
Остання з двох можливостей корисна, оскільки вона дозволяє користувачеві зазирнути всередину системи і побачити її поточні наміри. Користувач запитає "чому" в тому випадку, коли питання системи здасться йому не стосується до справи або коли відповідь на питання системи зажадає від нього додаткових зусиль. З пояснень системи користувач зрозуміє, чи варто інформація, яку запитує система, тих додаткових зусиль, які необхідно докласти для її придбання. Припустимо, наприклад, що система запитує: "Це тварина їсть м'ясо?" Користувач, який не знає відповіді на це питання, оскільки він ніколи не бачив, як це тварина їло небудь, може вирішити, що не варто чекати, поки він застане тварина за їжею і переконається, що воно дійсно їсть м'ясо.
Для того, щоб заглянути всередину системи і до якоїсь міри уявити собі що протікає в ній процес міркувань, можна скористатися прологовскімі засобами трасування. Але ці кошти в більшості випадків виявляться недостатньо гнучкими для наших цілей. Тому, замість того, щоб скористатися власним механізмом інтерпретації Прологу, який не зможе впоратися з потрібним нам способом взаємодії з користувачем, ми створимо свій засіб інтерпретації у вигляді спеціальної надбудови над пролог-системою. Цей новий інтерпретатор буде включати в себе засоби для взаємодії з користувачем. p align="justify"> Процес міркувань
Наш інтерпретатор буде приймати питання і шукати на нього відповідь. Мова правил допускає, щоб в умовній частині правила була І/АБО-комбінація умов. Питання на вході інтерпретатора може бути такою ж комбінацією підпитань. Тому процес пошуку відповідей на ці питання буде аналогічний процесу пошуку в І/АБО-графах, який ми обговорювали в гол. 13. p align="justify"> Відповідь на поставлене запитання можна знайти декількома способами відповідно до таких принципів:
Для того, щоб знайти відповідь Відп на запитання В, використовуйте одну з наступних можливостей:
В· якщо В знайдений в базі знань у вигляді факту, то Відп - це "У це правда"
В·...