Интерфейс с пользователем

В предыдущих главах были продемонстрированы различные подходы к созданию интерфейсов с пользователем: специальный язык запросов к базе данных (см. разд. 5.5); программа, которая самостоятельно пополняет свои знания, запрашивая у пользователя неизвестные ей сведения (см. разд. 3.6 и 4.3); таблично-управляемый интерфейс с базой данных (см. разд. 6.7); графическое представление информации, содержащейся в базе данных (см. разд. 6.8). Один из подходов к созданию экранно-ориентированного интерфейса, управляемого при помощи таблицы, рассматривается в приложении II,

Важной особенностью интерфейсов с пользователем многих систем экспертных консультаций является их способность объяснить, как были найдены ответы. Это свойство необходимо для того, чтобы пользователи программы прониклись к ней доверием. Если такое объяснение не будет обеспечиваться, то у пользователей не будет оснований считать ответы экспертной системы достоверными. Ответ можно пояснить путем отображения цепочки выводов, выполненных программой при поиске ответа.

В двух программах, представленных далее в этой главе, запоминается цепочка выводов, выполняемых при обработке запроса. Эту цепочку можно вывести на дисплей по требованию пользователя. На примере первой программы, "вып" (сокращение от слова "выполнить''), демонстрируется простейший способ запоминания цепочки выводов запроса. Следующая программа, "вид" (сокращение от словосочетания "видимый Пролог"), является расширением программы "вып", при котором обеспечивается печать сообщений, поясняющих процесс выполнения запроса. Обе названные программы могут оказаться полезными при отладке других программ, так как они дают программисту возможность непосредственно увидеть, как в точности программа вырабатывает выдаваемые ею результаты. Вы сможете прийти к заключению, что программа "вил" является более полезным отладочным инструментом, чем стандартные отладочные средства некоторых версий Пролога

Стратегия решения задач

В интерпретаторе Пролога применяется стратегия решения задач с обратным ходом решения: он начинает свою работу с цели и продвигается назад до тех пор, пока не встретит факты. (Понятие обратного хода решения было введено в разд, 0.6 и рассмотрено в гл. 3 и 5.) В некоторых других системах решения задач (например, в системе, реализующей язык OPS-5) принята стратегия с прямым ходом решения. В разд. 5.2 было показано, как на Прологе можно реализовать стратегию с прямым ходом решения (см. процедуру восходящего грамматического разбора "восх_объект"). Некоторые задачи могут быть решены более изящно при помощи стратегии с прямым ходом решения (к примеру, решение уравнений или грамматический разбор языков, содержащих леворекурсивные конструкции, скажем, японского языка).

Альтернативная стратегия решения задач

Подробное объяснение стратегии решения задач, принятой в интерпретаторе языка Пролог, было дано в разд. 3.1. Процедура "вып", рассматриваемая в следующем разделе, в точности моделирует эту стратегию решения задач. Поэтому можно трактовать процедуру "вып" как реализацию Пролога, написанную на самом Прологе. Точно такой же метод, какой употребляется для реализации процедуры "вып", можно применить и для реализации процедуры, в которой используется альтернативная стратегия решения задач для выполнения Пролог - запроса. Такая программа, названная "иоц" (сокращение от словосочетания "интерпретатор, который обнаруживает циклы"), представлена в предпоследнем разделе данной главы. Процедура "ион" может успешно обрабатывать ряд таких

запросов, при выполнении которых обычный интерпретатор Пролога потерпит неудачу или войдет в бесконечный цикл. К примеру, процедура "иоц" будет нормально работать с лево рекурсивными процедурами.

Соседние файлы в папке Гл.6,7,Прилож.,Допол