Читаем Prolog полностью

Будем называть такую цепочку трассой. Трассу можно себе представлять как цепочку правил, соединяющую в И / ИЛИ-дереве вопросов текущую цель с целью самого верхнего уровня так, как это показано на рис. 14.8. Таким образом, для формирования ответа на вопрос "почему" нужно двигаться в пространстве поиска от текущей цели вверх вплоть до самой верхней цели. Для того, чтобы суметь это сделать, нам придется в процессе рассуждений сохранять трассу в явном виде.


14. 4. 3.    Формирование ответа на вопрос "как"

Получив ответ на свой вопрос, пользователь возможно захочет увидеть, как система пришла к такому заключению. Один из подходящих способов ответить на вопрос "как" - это представить доказательство, т. е. те правила и подцели, которые использовались для достижения полученного заключения. Это доказательство в случае нашего языка записи правил имеет вид решающего И / ИЛИ-дерева. Поэтому наша машина логического вывода будет не просто отвечать на вопрос, соответствующий цели самого верхнего уровня - этого нам недостаточно, а будет выдавать в качестве ответа решающее И / ИЛИ-дерево, составленное из имен правил и подцелей. Затем это дерево можно будет отобразить на выходе системы в качестве объяснения типа "как". Объяснению можно придать удобную для восприятия форму, если каждое поддерево печатать с надлежащим отступом, например:

        питер это хищник


            было выведено по прав3 из


                питер это млекопитающее


                    было выведено по прав1 из


                        питер имеет шерсть


                            было сказано


                и


                питер ест мясо


                    было сказано


Назад | Содержание | Вперёд

Назад | Содержание | Вперёд

14. 5.    Реализация

Теперь мы приступим к реализации нашей оболочки, следуя тем идеям, которые обсуждались в предыдущем разделе. На рис. 14.9 показаны основные объекты, которыми манипулирует оболочка. Цель - это вопрос, подлежащий рассмотрению; Трасса - это цепочка, составленная из "целей-предков" и правил, находящихся между вершиной Цель и вопросом самого верхнего уровня; Ответ - решающее дерево типа И / ИЛИ для вершины Цель.

Рис. 14. 9.  Отношение рассмотреть( Цель,  Трасса,  Ответ).


Ответ - это И / ИЛИ решающее дерево для целевого утверждения Цель.

Основными процедурами оболочки будут:

        рассмотреть( Цель, Трасса, Ответ)

Эта процедура находит ответ Ответ на вопрос Цель. Процедура

        ответпольз( Цель, Трасса, Ответ)

порождает решения для тех вопросов Цель, которые можно задавать пользователю. Она спрашивает пользователя об истинности утверждения Цель, а также отвечает на вопросы "почему". Процедура

        выдать( Ответ)

выводит результат и отвечает на вопросы "как". Все эти процедуры приводятся в действие процедурой-драйвером эксперт.


14. 5. 1.    Процедура     рассмотреть

Центральной процедурой оболочки является процедура

        рассмотреть( Цель, Трасса, Ответ)

которая будет находить ответ Ответ на заданный вопрос Цель, используя принципы, намеченные в общих чертах в разд. 14.4.1: найти Цель среди фактов базы знаний, или применить правило из базы знаний, или спросить пользователя, или же обработать Цель как И / ИЛИ-комбинацию подцелей.

Аргументы имеют следующий смысл и следующую структуру:

Цель              вопрос, подлежащий рассмотрению, представленный


                       как И / ИЛИ-комбинация простых утверждений, например

                       X имеет перья или X летает или


                       X откладывает яйца

Трасса        цепочка, составленная из целей-предков и правил,


                    расположенных между Цель и исходной целью самого верхнего уровня. Представляется как список, состоящий из элементов вида

                       Цель  по  Прав

что означает:  Цель рассматривалась с использованием правила  Прав. Например, пусть исходной целью будет "питер это тигр", а текущей целью - "питер ест мясо". В соответствии с базой знаний рис. 14.5 имеем трассу

                      [( питер это хищник) по прав3,


                        ( питер это тигр) по прав5 ]

Смысл ее можно выразить так:

Я могу использовать "питер ест мясо" для того, чтобы проверить по прав3, что "питер это хищник".

Далее, я могу использовать "питер это хищник" для того, чтобы проверить по прав5, что "питер это тигр".

Ответ        решающее И / ИЛИ-дерево для вопроса  Цель. Общая форма


                   представления для объекта Ответ:

                       Заключение было Найдено

где Найдено - это обоснование для результата Заключение. Следующие три примера иллюстрируют различные варианты ответов:

(1)        ( соед( радиатор, предохр1) это правда) было


                                                        'найдено как факт'


(2)        (питер ест мясо) это ложь было сказано


Перейти на страницу:

Похожие книги

Слово о полку Игореве
Слово о полку Игореве

Исследование выдающегося историка Древней Руси А. А. Зимина содержит оригинальную, отличную от общепризнанной, концепцию происхождения и времени создания «Слова о полку Игореве». В книге содержится ценный материал о соотношении текста «Слова» с русскими летописями, историческими повестями XV–XVI вв., неординарные решения ряда проблем «слововедения», а также обстоятельный обзор оценок «Слова» в русской и зарубежной науке XIX–XX вв.Не ознакомившись в полной мере с аргументацией А. А. Зимина, несомненно самого основательного из числа «скептиков», мы не можем продолжать изучение «Слова», в частности проблем его атрибуции и времени создания.Книга рассчитана не только на специалистов по древнерусской литературе, но и на всех, интересующихся спорными проблемами возникновения «Слова».

Александр Александрович Зимин

Литературоведение / Научная литература / Древнерусская литература / Прочая старинная литература / Прочая научная литература / Древние книги