Прагматическая интерпретация
Выше было показано, как агент может воспринять строку слов и воспользоваться грамматикой для вывода множества возможных семантических интерпретаций. А в этом разделе будет рассматриваться проблема создания полной интерпретации путем добавления контекстно-зависимой информации о текущей ситуации к каждой потенциальной интерпретации.
Наиболее явная потребность в прагматической информации возникает при распознавании смысла указательных словосочетаний, представляющих собой словосочетания, которые относятся непосредственно к текущей ситуации. Например, в предложении "I am in Boston today" (Я сегодня нахожусь в Бостоне) интерпретации указательных словосочетаний "I" и "today" зависят от того, кто и когда произнес это предложение. Мы представляем указательные словосочетания с помощью "констант" (таких как Speaker), а фактически они являются флюентными словосочетаниями, т.е. зависят от ситуации. Получатель, который воспринимает речевой акт, должен также воспринять информацию о том, кем является отправитель, и использовать эту информацию для определения смысла указательных словосочетаний. Например, получатель может обладать такими знаниями, что Т{ (Speaker=AgentB) , Now).
Такая команда, как "go to [2,2]", неявно указывает на получателя. До сих пор в рассматриваемой нами грамматике для S были определены только повествовательные предложения. Но эту грамматику можно легко дополнить, чтобы она охватывала также команды.
Команда может быть сформирована из словосочетания VP, в котором в качестве подлежащего неявно указан получатель. Необходимо отличать команды от утверждений, поэтому изменим правила для S, чтобы включить обозначение типа речевого акта в состав квазилогической формы следующим образом:
S( Statement (Speaker, rel(obj))) -> NP{obj) VP(rel) S[Command(Speaker, rel(Hearer))) —> VP(rel)
Поэтому квазилогическая форма для команды "Go to [2,2]" принимает следующий вид13:
Commandite е е Go{Hearer, [2,2]))
Применение грамматик DCG для производства языковых конструкций
До сих пор в этой главе изложение было в основном сосредоточено на синтаксическом анализе языка, а не на его производстве. Но тема производства языковых конструкций является не менее интересной. Для выбора правильного фрагмента речи, позволяющего выразить некоторое высказывание, приходится использовать во многом такие же средства, как и при синтаксическом анализе фрагмента речи.
12 Чтобы реализовать полного общающегося агента, требуется также грамматика вопросительных предложений. Но описание вопросительных предложений выходит за рамки настоящей книги, поскольку они налагают дистанционные зависимости между составляющими. Например, в предложении "Whom did the agent tell you to give the gold to?" (Кому, согласно сказанному агентом, вы должны отдать золото?) последнее слово "to" должно рассматриваться в ходе синтаксического анализа как словосочетание РР с отсутствующим словосочетанием NP; вместо отсутствующего словосочетания NP подставлено первое слово предложения, "who". Для обеспечения того, чтобы отсутствующие словосочетания NP согласовывались с такими подстановочными словами, применяется сложная система грамматических расширений.
13 Обратите внимание на то, что квазилогическая форма для команды не включает указание на время события (например, такое как During [Now, е)). Это связано с тем, что "до" — фактически форма инфинитива глагола, а не его вариант в настоящем времени. Глагол "до" не позволяет уловить эту разницу, но следует отметить, что правильной формой команды "Ведите себя хорошо!" является "Be good\" (и в ней используется инфинитив глагола "be"), а не "Are good!". Для обеспечения применения правильных времен глаголов можно дополнить выражения для словосочетаний VP параметром с обозначением времени и записывать VP {г el, ип tensed) в правой части правила команды, где ил tensed обозначает инфинитив.
Напомним, что DCG — это система логического программирования, определяющая ограничения, которыми связаны между собой некоторая строка и вариант синтаксического анализа этой строки. Как известно, определение в формате логического программирования предиката Append может использоваться и для выяснения того, что в выражении Append ([1,2], [3],х) задано значение х= [ 1, 2 , 3 ], и для составления списков значений х и у, после подстановки которых выражение Append (х, у, [ 1, 2 , 3 ] ) становится истинным. Аналогичным образом можно записать определение предложения S, которое может применяться двумя способами — для синтаксического анализа, с целью поиска ответа на запрос S(sem, [John, Loves, Mary] ) и получения sem=Loves {John, Mary), и для производства синтаксической конструкции путем выдачи запроса S{ Loves {John, Mary) , words) и получения words- [John, Loves, Mary]. Можно также проверить грамматику, введя запрос S{sem, words) и получив ответ в виде потока пар [sem, words], которые производятся с помощью этой грамматики.
Такой подход является вполне применимым в отношении простых грамматик, описанных в этой главе, но может стать более затруднительным при распространении его масштабов на более крупные грамматики. При этом важную роль играет то, какая стратегия поиска используется в машине логического вывода; в частности, применение стратегии поиска в глубину может привести к возникновению бесконечных циклов. Аналогичные предосторожности необходимо принимать, определяя точные детали семантической формы. Может оказаться, что в данной конкретной грамматике не предусмотрен способ выражения логической формы X л У для некоторого значения X и у, но есть возможность выразить У л х; такая ситуация свидетельствует о том, что требуется некоторый способ создания канонического представления семантических форм или нужно дополнить процедуру унификации так, чтобы можно было унифицировать выражение X л Ус выражением у л X.
Если в центре внимания находится задача производства синтаксических конструкций, то, как правило, используются более сложные модели производства, которые отличаются от грамматик синтаксического анализа и обеспечивают больший контроль над тем, как именно выражаются компоненты семантики. Одним из подходов, который упрощает задачу переноса центра сосредоточения усилий на наиболее важные части семантической формы, является применение системной грамматики.