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