ТОМ: Модель речевого акта
Для генерации и анализа текстов в ТОМ используется достаточно сложная модель речевого акта.
Содержание
Речевой акт
(далее просто речь, фраза, команда, предложение и т.п.)
Любой текст, который вводится в ТОМ или выводится ТОМом рассматривается как речевой акт.
Речевой акт имеет четко обозначенные временные границы и определённые речевые роли.
Речевые роли четко обозначены самим языком и однозначно выделяются в речи.
В пределах одного речевого акта речевые роли неизменны.
Значениями речевых ролей являются объекты, соответствующие персонажам, протагонисту, нарратору и, возможно, самому игроку.
Всего выделяется 3 речевые роли:
- некто говорящий;
- некто, к кому обращается говорящий;
- некто, упомянутый в речи и производящий некоторое активное действие.
Первые 2е роли влияют на личные местоимения (1 и 2 лицо). 3я роль влияет на возвратные местоимения.
Контекст речевого акта
(он же и контекст метода)
При выполнения кода на платформе ТОМ в любое время можно обратиться к специальным контекстным значениям:
Речевые роли:
- talker - персонаж, от которого в данный момент исходит речь (1 лицо);
- addressee - персонаж, которому адресована речь (2 лицо);
- actor - персонаж, в данный момент активно выполняющий действие;
Прочие контекстные значения:
- this - объект, содержащий метод, который выполняется в данный момент;
- act - действие, которое отрабатывается в данный момент;
- told - персонаж, произнёсший предыдущую речь;
- аddressed - персонаж, которому была адресована предыдущая речь;
Парсер самостоятельно настраивает контекст в зависимости от выполняемого действия.
Автор игры также может при необходимости изменять значения контекста.
При вызове метода создается новый контекст, и все значения (за исключением this) копируются из контекста вызывающего метода.
Влияние на морфологические свойства объектов
Для объектов, входящих в предложение, проводится расчет морфологических ключей, зависящий от значений речевого контекста.
Так, например, если в предложении встречен объект == talker, то для него будет установлен ключ первого лица (1л) и в тексте этот объект отобразится как "я".
Для расчета контекстно-зависимых морфологических ключей объекты имеют специальный метод: CalcKey().
При анализе введенной команды этот же метод вызывается парсером для отсева объектов, не подходящих по контексту.
Переменные и свойства объектов
Для формирования речевого контекста парсером также используются:
- глобальная переменная global.narrator
- свойства объектов addressee (у каждого объекта может быть свой адресат).
- предопределенные шаблонные переменные:
- Actor - значение этой переменной используется как actor.
- Talker - значение этой переменной используется как talker
- Addressee - значение этой переменной используется как addressee
Фазы парсинга и их речевые контексты
- фаза - распознание строки. Контекст настраивается на анализ текста. Для правильного распознания необходимо понимать кто это говорит и кому говорит.
- фаза - проверки и генерация ошибок. Контекст настраивается на формирование ошибки как ответа на фразу.
- фаза - выполнение действия. Контекст настраивается как повествование о выполнении действия.
Конкретные настройки контекста зависят от категории распознаваемого текста. Об этом более подробно далее.
action
Речевой акт этой категории является указанием о выполнении некоторого действия.
Фаза 1 для строки введенной игроком
talker=null
addressee=pers
actor=pers
Фаза 1 для оператора X < "command"
где X - объект персонажа, а "command" - команда, переданная персонажу.
talker = told
addressee = X
actor = X