Как было описано в главе 15, правила вывода, подобные приведенным в листингах 16.1 и 16.2, можно перезаписать в виде правил Prolog и в качестве командного интерпретатора экспертной системы непосредственно использовать собственный интерпретатор Prolog. Но в результате этого организация работы программы будет не
Глава 16. Командный интерпретатор экспертной системы
совсем удовлетворительной с точки зрения пользователя экспертной системы по двум приведенным ниже причинам.
1. Пользователю не предоставляется удобного способа запрашивать объяснения, например, чтобы узнать, как получен данный ответ.
2. В систему необходимо вводить полную совокупность данных (в виде фактов Prolog), прежде чем появится возможность задавать какие-либо вопросы. Значительная часть этих данных может не потребоваться в процессе формирования командным интерпретатором логического вывода, касающегося рассматриваемой ситуации. Это означает, что пользователю придется выполнять ненужную работу, вводя не относящуюся к делу информацию. Мало того, пользователь вполне может забыть предоставить всю нужную информацию и в этом случае система будет вырабатывать неправильные ответы.
Для устранения этих недостатков необходимо предусмотреть лучший способ взаимодействия пользователя и системы в течение процесса формирования рассуждений и после его завершения. Поэтому при разработке данной системы необходимо обеспечить, чтобы эта система была способной взаимодействовать с пользователем, как показано в следующем примере диалога (ответы пользователя обозначены полужирным шрифтом).
Question, please: peter isa tiger. Is it true: peter has hair? yes.
Is it true: peter eats meat? no.
Is it true: peter has pointed teeth? У«-
Is it true; peter has claws?
why. 4 Пользователь просит объяснить, для чего нужна эта информация То investigate, by rule3, peter isa carnivore To investigate, by rule3, peter isa tiger This was your question Is it true: peter has claws? yes.
Is it true: peter has forward pointing eyes? yee.
Is it true: peter has tawny colour? yes.
Is it true: peter has black stripes? yes.
(peter isa tiger) is true Would you like to see how? yes. peter isa tiger
was derived by tuleS from peter isa carnivore
was derived by rule3 from peter isa mm m al
was derived by rulel from peter has hair was told and peter has pointed teeth
was told and peter has claws
was told and peter has forward pointing eyes
was told and
Часть II. Применение языка Prolog в области искусственного интеллекта
peter has tawny colour was told
f |
and peter has black stripes was told
Этот диалог показывает, что система задает пользователю вопросы, касающиеся
"простейших" сведений, например, следующим образом::
Is it true: peter eats meat? % Правда ли, что Питер питается мясом?
Эти вопросы касаются информации, которую нельзя найти в базе знаний или вывести из другой информации. Пользователь может отвечать на такие запросы следующими способами.
1. Передать в качестве ответа на запрос необходимую информацию.
2. Спросить систему, для чего потребовалась эта информация (вводя вопрос
"Why?").
Последний вариант вопроса дает возможность пользователю понять, в чем состоят текущие намерения системы. Пользователь спрашивает, для чего нужна затребованная информация, если запрос системы кажется не относящимся к делу или для ответа на него требуется дополнительная работа со стороны пользователя. Из объяснения системы пользователь может понять, стоит ли та информация, которую запрашивает система, дополнительных усилий для ее получения. Например, предположим, что система спрашивает: "Это животное питается мясом?" В таком случае пользователь, еще не зная ответа и не имея сведений о том, чем питается интересующее его животное, может решить, что нет смысла продолжать наблюдение лишь для того, чтобы узнать, действительно ли это животное питается мясом.
Для получения определенного представления о процессе формирования рассуждений в системе могут использоваться средства трассировки Prolog. Но, как правило, оказывается, что такое средство трассировки является недостаточно гибким для решения задачи, стоящей перед командным интерпретатором. Поэтому было решено создать специальное средство интерпретации на основе системы Prolog вместо применения собственного механизма интерпретации Prolog, который оказался неудовлетворительным с точки зрения данного типа взаимодействия с пользователем. Этот новый интерпретатор будет включать другие средства взаимодействия с пользователем.