FTS на русском и английском: синтаксис без скобок
Основная поверхность FTS строится отступами. Фигурные скобки, двоеточия и стрелки для авторского формата не нужны.
Русская запись
категория «Исполнение заказа»
объект Заказ
номер является строкой
«готов к отгрузке» является состоянием «Готов к отгрузке»
морфизм «Готовый заказ можно отгрузить»
если «Готов к отгрузке»
то «Отгрузить заказ разрешено»
Слово структура равноправно слову объект:
структура «Строка счёта»
номер является строкой
сумма является деньгами
комментарий иногда является строкой
English surface
category "Order execution"
object Order
number is string
ready is state "Ready to ship"
morphism "Ready order can ship"
if "Ready to ship"
then "Shipping allowed"
Это не перевод через LLM и не отдельный интерпретатор. Зарезервированные фразы нормализуются перед тем же парсером, а встроенные типы приходят к одной модели.
Имена и кавычки
Имя из одного слова можно писать без кавычек: Заказ, amount, номер.
Пробел делает кавычки обязательными:
категория «Обслуживание клиентов»
объект "Строка счёта"
Обычные кавычки и русские ёлочки равноправны. Unicode-имена нормализуются в NFC, поэтому визуально одинаковые буквы с разным внутренним представлением не создают два разных поля.
CamelCase не требуется. В предметном тексте предпочтительнее
«готов к отгрузке», чем ReadyForShipment, если это читают русскоязычные
аналитики и разработчики.
Значения
Русская запись принимает да, нет, ничто; обе поверхности принимают
true, false, null, числа и строки. Имена полей при этом не переводятся:
английский и русский документы могут описывать разные ubiquitous languages,
хотя используют один runtime.
Упражнение
Перепишите один и тот же калькулятор на двух поверхностях. Сравните результат
fts compile: категории и предметные имена будут вашими, а встроенные типы,
операторы и структура документа совпадут.