Среди систем рассматриваемого типа обычно выделяются вопросно-ответные системы, диалоговые системы решения задач и системы обработки связных текстов.
Изначально вопросно-ответные системы стали разрабатываться как реакция на плохое качество кодировки запросов при поиске информации в информационно-поисковых системах. Поскольку проблемная область таких систем была сильно ограничена, это несколько упрощало алгоритмы перевода запросов в представление на формальном языке и обратную процедуру преобразования формального представления в высказывания на ЕЯ. Из отечественных разработок к программам такого типа относится система ПОЭТ, созданная коллективом исследователей под руководством Э. В. Попова. Она обрабатывает запросы на русском языке (с небольшими ограничениями) и синтезирует ответ. Блок-схема программы предполагает прохождение всех этапов анализа — морфологический, синтаксический и семантический анализ – и соответствующих этапов синтеза. Запросы преобразуются во внутреннее представление системы, которое сопоставляется с данными по проблемной области, после чего синтезируется ответ. Система ПОЭТ может отвечать на вопросы о перевозках грузов — количестве, времени, затратах и пр. В подобных вопросно-ответных системах ЭВМ играет пассивную роль, интерпретируя каждую реплику пользователя как информационный запрос. Пользователь не может задавать вопросы о свойствах системы, о ее структуре. Имеются ограничения и на форму запроса — он должен выражаться только одним речевым актом.
Одна из наиболее сложных проблем разработки вопросно-ответных систем — способы организации данных. В некоторых системах для обработки и хранения данных используются «списочные» языки типа LISP. Они позволяют существенно упростить логику поиска и приблизить алгоритмы обработки запроса к алгоритмам обработки базы данных.
Фактически языки списков представляют собой готовую структуру для хранения информации. Например, в программе BASEBALL, предназначенной для ответа на вопросы об играх в американской бейсбольной лиге, формат структуры данных имеет следующий вид:
ГОД
МЕСЯЦ
МЕСТО
(номер игры, день (команда, счет) (команда, счет)) (номер игры, день (команда, счет) (команда, счет))
(номер игры, день (команда, счет) (команда, счет))
Работа программы BASEBALL основывается на двух важнейших понятиях — «путь данных» и «список спецификаций». Путь данных — это последовательность ветвей или терминальных узлов в дереве хранения информации, которую надо пройти, чтобы получить информацию о конкретной игре. Например, путь «ГОД = 1959, МЕСЯЦ = АПРЕЛЬ, МЕСТО = БОСТОН, ИГРА = 55» определяет некоторую конкретную игру со всей предусмотренной информацией. Список спецификаций этого пути порождается лингвистическим процессором при обработке пользовательского запроса и представляет собой набор признаков или условий, которыми должен обладать путь данных, чтобы быть ответом на поставленный вопрос. Например, списком спецификаций запроса Где играла в июле команда «Редокс» ? будет следующее выражение:
МЕСТО =?
КОМАНДА = РЕДОКС
МЕСЯЦ = ИЮЛЬ
После формирования списка спецификаций программа порождает все пути данных, которые согласуются с этим списком.
Диалоговые системы решения задач в отличие от систем предшествующего типа играют в коммуникации активную роль, поскольку их задача заключается в том, чтобы получить решение проблемы на основе тех знаний, которые представлены в ней самой, и той информации, которую она может получить от пользователя. Система содержит структуры знаний, в которых фиксируются типичные последовательности действий для решения задач в данной проблемной области, а также сведения о необходимых ресурсах. Когда пользователь задает вопрос или ставит определенную задачу, активизируется соответствующий сценарий. Если какие-то компоненты сценария пропущены или отсутствуют какие-то ресурсы, система выступает инициатором коммуникации. Так, система SNUKA решает задачи планирования военных операций, ср. пример диалогового решения задачи этой системой:
П