В век программирования всего и вся, когда даже трехмерные изображения и ландшафты задаются программно, давно назрел вопрос, а почему еще нет публичных программируемых средств для литературного творчества?

Ну а если такие инструменты уже есть либо рано или поздно появятся, то спрашивается, какой там будет первая «программа», по типу «Здравствуй, Мир!» в «обычных» языках программирования?

Действительно, специфика литературного творчества требует, как минимум, выполнения трех условий:

1. Литературный текст должен соответствовать неким канонам или, шаблонам, проще говоря.
2. Этот текст должен быть достаточно оригинальным.
3. Он должен, как минимум, нравиться автору, в какой-то мере отражать его «Я».

Вот и рассмотрим с этих позиций первую литературную «программу», которая должна выполняться в некой среде разработчика.

Собственно любой фиксированный текст, вроде: «Здравствуйте, мистер Твистер, бывший Министер!» для этой цели совершенно не годится, поскольку абсолютно не соответствует пункту 2. Следовательно, выводить нужно не явный текст, а реализовывать некий его шаблон. Например:

[Слова приветствия] [Титул] [Должность или Имя или их Эквивалент]

Это уже немного веселее. Соответственно, программа должна иметь доступ к элементам множеств обозначенных в квадратных скобках. Допустим, мы имеем десяток слов приветствия, пару десятков ходовых титулов и такое же количество должностей. Полагаем также, что как минимум одно слово приветствия всегда должно быть.

В итоге мы имеем комбинаторное множество всевозможных вариантов сочетаний заданных слов. Тем большее, чем больше элементный состав этих множеств. Понятно, что это множество ограниченно, хотя в данном случае, никто особо придираться не будет, что и у автора X и у автора Y присутствует одна и та же фраза, скажем: «Здорово, мужик!».

Лучше обстоят дела с именем либо его эквивалентом. Здесь вариантов на порядки больше. Все, что требуется для литературной «программы», это указать фильтры, ограничения и способ выборки элементов заданных множеств, например, случайный. В простейшем случае можно просто сгенерировать фразу: «[Приветственное слово], [Имя]!», где имя, допустим, имеет достаточно оригинальную реализацию шаблона СГСГС, здесь С – согласная буква, а Г – гласная. Полученное слово можно прогонять через Google, на предмет низкой частоты встречаемости. Вот программная генерация подобных слов: «Зушор», «Гелюж», «Чоцер», «Фосюр», «Цитыж», «Ранюр» и др. Практически все благозвучные имена такого типа встречаются в Google значительно чаще. Запускаем случайный генератор, получаем:

– Привет, Зушор!
– Здорово, Гелюж!
– Салют, Ранюр!
– Хелоу, Цитыж!
– Хай, Фосюр!
– Приветствую, Ропец!

Естественно, что для большей благозвучности нужно использовать чаще употребляемые слова и как следствие – понижаем оригинальность.

Уверен, что следующий вопрос будет, а как насчет программной генерации литературных сюжетов?

Когда встают вопросы типа: «Каким должен быть сюжет?» и мы не можем по предмету X сказать ничего путного, то следует идти следующим путем:

1. Разбиваем X на его противоположности либо логические составляющие. Абстрактно, X = Y + Z, где Y может быть, например, причиной или событием, а Z следствием, процессом либо результатом.

2. Для ограничения множеств Y и Z, вводим их фильтрующие модификаторы. Абстрактно, X = aY + bZ, где a, например, «особый», а b, скажем, «необычный».

В итоге выходим на нашу формулу (X = aY + bZ) основного шаблона литературного сюжета:

Особое событие порождает необычный результат

либо

Особое событие порождает необычный процесс с непредсказуемым результатом

В последнем случае имеет место формула X = aY + bZ + cW. Хотя, может быть вместо знака «+» более логичен знак следования «–>», т.е.:

X = aY –> bZ –> cW

Вот уже вместо неопределенного понятия «X» («сюжет» для нашего литературного произведения) мы имеем шесть понятий: «a» («особое»), «Y» («событие»), «b» («необычный»), «Z» («процесс»), «c» («непредсказуемый»), «W» («результат»). А это уже несколько меньшая неопределенность, но, понятно, что, это только первый уровень устранения неопределенности, которых должно быть, как минимум, несколько.

Особых событий может быть два и более в произведении, так что, одно стимулирует (катализирует) появление второго и т.д. Другими словами, эти формулы могут быть рекурсивными, например:

Особое событие 1 порождает необычный процесс 1
Процесс 1: Особое событие 2 порождает необычный процесс 2


и т.д., до последнего вложения

Процесс N: Особое событие N+1 порождает необычный процесс N+1 с непредсказуемым результатом

В принципе, с точки зрения литературы, описание обычных и необычных событий не имеет принципиальной разницы. И те и другие должны быть описаны «красиво» и занимательно. В данном случае, «необычность», это уже эффект восприятия читателем получаемой информации. Для тех, кто читает много, необычность может вполне стать обыденностью. Поэтому, для начинающего автора, пишущего небольшими порциями (на уровне отдельных эпизодов), нет особой разницы, что именно описывать? Главным для него будет вопрос, как именно это описывать? Например, как описать первое знакомство героя с героиней? Понятно, что должны быть указаны обстоятельства, намерения, ситуативная обстановка, процесс общения, действия героев и их диалоги. Сделать это можно многими разными способами. Но как конкретно, это может вызвать затруднения у неопытных авторов.

С другой стороны, многие и многие тысячи молодых людей, так или иначе, знакомятся. Иногда анекдотично, комично и бестолково. Иногда, вполне естественным образом. А иногда и очень даже красиво, хоть на соответствующую премию выдвигай. Поэтому резонно задаться вопросом, а есть ли шаблоны описания первых контактов молодых (и не только) людей? Наверняка должны быть или могут быть, почему бы и нет? Просто шаблон и его реализация это как бы небо и земля. Реализация подразумевает конкретную «фактуру» для некоторой заданной структуры шаблона. Хотя кто мешает менять и саму структуру шаблона? Всем известна «технология» любви, но сама эта тема является вечной. И таких «вечных» тем множество.

Общий шаблон сюжета у нас уже есть, теперь самое время перейти к формулировкам шаблонов событий, поскольку любой сюжет это последовательность событий (в чем-то напоминающей трассировку выполнения программы в своей блок-схеме алгоритма).

В принципе один из вариантов такого шаблона уже известен из истории. Кто-то когда-то из полководцев заявил: «Пришел, увидел, победил». Если перефразировать это утверждение, в более подходящий для нас вид, то получим формулу:

Пришел (вошел) – Оценил обстановку – Действовал по обстоятельствам

Результатом чего может быть «победа» либо просто удовольствие / неудовольствие от процесса своих действий.

Этот шаблон уже вполне годится для описания, скажем процесса знакомства нашего героя с героиней. Например, он вошел в комнату общежития, где намечалась студенческая вечеринка, оценил обстановку, увидел подходящую для себя кандидатуру и начал попытку знакомства и развития отношений на фоне всего остального. Хотя естественно детализация процесса должна быть продолжена, вплоть до конечного литературного текста. Именно технологией подобного рекурсивного описания событий и предстоит нам еще заняться. Как всегда варианты подобных описаний нужно искать в реальных литературных произведениях.