Манускрипт Войнича как алгоритмический язык для создания лекарств
Автор: Александр СычевМанускрипт Войнича до сих пор официально не расшифрован. Ни один искусственный интеллект, криптограф или лингвист пока не представил перевод, который признало бы мировое научное сообщество.
Что известно о рукописи достоверно:
- Написана между 1404 и 1438 годами (доказано радиоуглеродным анализом пергамента)
- Содержит от 20 до 30 уникальных знаков, не похожих ни на одну известную письменность
- Рукопись разбита на разделы (ботанический, астрономический, биологический, фармацевтический) Она заполнена рисунками несуществующих растений, зодиакальных созвездий и обнаженных женщин в странных бассейнах
- Язык манускрипта (войничез) обладает четкой структурой. В нем работают лингвистические законы (например, закон Ципфа, описывающий закономерности естественных языков), что исключает версию о случайном наборе букв
- Текст написан минимум пятью писцами (доказано палеографом Лизой Фагин Дэвис)
- Степень изношенности говорит о том, что рукопись использовалась как недорогой настольный справочник
Скорее всего на этом языке общалось некое закрытое сообщество (орден?), объединенное единой целью и локальным узкоспециализированным жаргоном. Однако, его пока не удается сопоставить ни с одним существующим языком, поскольку в нем присутствуют аномалии.
Возможно, буквы манускрипта - это не просто замена А на Б, а специфическая терминология или аббревиатуры.
Например, в медицине XV века часто использовались сложные рецепты (типа териака - универсального противоядия). Если писцы ордена договорились записывать фразу "Возьми две унции корня одуванчика, отвари в дождевой воде и перелей в сосуд" как один фиксированный слог или слово, то частотный анализ обычного языка тут бессилен. Текст превращается в цепочку формул, синтаксис которой понятен только посвященным.
Таким образом, весь текст манускрипта может оказаться всего лишь набором инструкций, которые очень напоминают современные языки программирования. С этой точки зрения все аномалии легко объясняются:
Аномалия повторяющихся слов и паттернов - циклическое действие (например, помешивание или нагревание)
Почти все слова имеют длину от 5 до 7 символов, очень мало предлогов из 1–2 букв - это очень похоже на низкоуровневые языки типа ассемблера, где команды выражают собой короткие атомарные операции одинаковой длины
Буквы делятся на "начала", "середины" и "окончания".Буква из начала никогда не появится в конце - это типичный синтаксис для языков, где нужно отделить одну операцию от другой специальным символом типа точки с запятой, или задать начало/окончание операции (например, if...else..fi, do while...od и т.д.)
Интересно также, что, поскольку над рукописью работали разные люди, почерк и привычки писцов немного отличались, что мы увидим далее по их разному Code Style.
Начнем с разбора астрономической части


Если взять транслитерацию подписей к звездам в системе EVA (где символы рукописи заменены на латинские буквы для анализа на ПК), мы увидим жесткую структуру. Почти все слова-звезды выглядят так:
shedy, choky, shoaly, chedy, oror
Разложим эти слова на компоненты:
1. Действие
Слова почти всегда начинаются со "скамеечек" - символов ch- или sh-.
Логика: операция может объявлять тип математического или астрологического действия, которое нужно совершить над объектом. Например, префикс ch- - может означать, например, "вычислить положение", а sh- - "влияние/аспект".
2. Объект
В середине слов у звезд чаще всего стоят гласные -e-, -o- или их сочетания -oa-.
Логика: имя самого объекта или его координата. Замечено, что на одном круге у большинства звезд в середине стоит строго -o-, а на соседнем круге - строго -e-. То есть, корень слова привязан к конкретному сектору неба или группе звезд. Круг -o- - это одна область данных, круг -e- - другая.
3. Параметр (аргумент или завершающий токен)
Почти 80% слов-звезд заканчиваются на символ -y (в рукописи выглядит как латинская g или петля) или -l.
Логика: это может означать либо завершение строки (как в C++, Java), либо символ указывает, какой модификатор применить к вычислению. Например: "в градусах", "в днях" или "в период асцендента".
Таким образом, даже без знания перевода, мы видим алгоритм перебора параметров:
Строка 1 (chedy): Выполнить действие ch (например, "измерить угловое расстояние") для объекта из группы e с модификатором dy (например, "относительно горизонта")
Строка 2 (chody): Выполнить то же самое действие ch, но переключить внимание на объект из группы o (следующая звезда), оставив тот же модификатор dy
Строка 3 (shedy): Сменить действие на sh ("оценить влияние") для объекта обратно из группы e с тем же модификатором dy
Таким образом, перед нами не атлас звездного неба с поэтическими названиями, а астрономический калькулятор. Текст описывает алгоритм вычисления времени: когда именно (при каком положении звезд) нужно собирать те самые травы, чтобы они не превратились в яд или максимально усилили полезные свойства.
Фармацевтический раздел (рецепты)


С точки зрения палеографии, астрономический раздел был полностью написан одним человеком (Писец 3). Текущий же раздел писали преимущественно Писец 2 и Писец 5, и архитектура раздела сильно отличается:
Здесь текст разбит на короткие абзацы, а слева от каждого абзаца нарисован маркер: цветок, корень или маленькая звездочка. Это классический средневековый список рецептов (компендиум), но написанный как структурированный скрипт.
Если посмотреть на текст любого абзаца в этом разделе, он имеет жесткую трехуровневую структуру, которая повторяется из страницы в страницу:
1. Первая строка: название препарата
Каждый абзац начинается с уникального, часто длинного слова, которое больше нигде в абзаце не повторяется.
Логика: это имя функции или id рецепта. Скорее всего, это зашифрованное название болезни (например, "лихорадка") или целевого продукта ("мазь против воспалений").
Писцы использовали здесь редкие символы - так называемые "виселицы" с петлями ctg, cmg, - которые выступают в роли заглавных букв. Это явный маркер начала нового блока данных.
2. Тело абзаца: пошаговые инструкции (алгоритм смешивания)
Внутри абзаца начинается то самое аномальное дублирование слов. Здесь постоянно встречаются конструкции типа oror oror или ched c_med ced
Логика: это могут быть количественные параметры или технологические циклы.
Когда аптекарь пишет реальный рецепт, он использует повторяющиеся операции: "добавь часть А, добавь часть Б, вари, вари, процеди, остуди". Если oror это действие, то oror oror - повторение действия. Если же oror это оператор "доза/мера", то oror oror - двойная доза.
Буквы в середине слов (например, -e- или -o-) здесь могут кодировать состояние агрегации: сухое вещество, жидкое, или порошок.
3. Конец строки/абзаца (звездочки-маркеры)
Возле некоторых строк рецептов нарисованы крошечные звездочки.
Логика: это похоже на внешние ссылки на астрономический раздел.
Звездочка на полях рецепта указывает аптекарю: "Выполнение этого шага зависит от внешних условий". То есть, этот ингредиент нужно вводить в состав только тогда, когда "активна" соответствующая звезда из астрономического калькулятора. Это прямая связь между базами данных "Травы" - "Время" - "Рецепт".
Один из возможных вариантов разбора шаблона cholky
Сочетание 1: ch или sh - управляющий оператор
- Значение: задает базовый тип процесса
- Логика: если в рецепте
chозначает "взять/насыпать", тоshменяет операцию на "нагреть/сварить". Замена всего одной первой буквы полностью меняет физическое действие над веществом, хотя остальная часть слова остается прежней
Сочетание 2: o или e - указатель на базу данных (ингредиент)
- Значение: выбор компонента
- Логика: это сочетание переключает источник данных. Например,
oссылается на ингредиенты растительного происхождения (из Ботанического раздела), аe- на минеральные или жидкие компоненты. Слово cholky работает с травой, а chelky - с водой или маслом для этой травы
Сочетание 3: l или r - физическое состояние (агрегация)
- Значение: текстура или пропорция
- Логика: показывает, в каком виде находится объект. Символ
lможет кодировать "порошок/измельченный", аr- "свежий/цельный"
Сочетание 4: k или t - вес или объем
- Значение: число
- Логика: в манускрипте символы
kиt(выглядящие как высокие "виселицы") часто стоят перед финальной буквой. Возможно,k- условная "одна доля",t- "две доли". Или, например, "одна" и "несколько".
Сочетание 5: y - флаг завершения команды
- Значение: конец блока
- Логика: аппаратный символ. Он подтверждает, что все параметры для данного шага успешно инициализированы, и можно переходить к следующему слову
Человек, знающий этот код, читал бы слово cholky так:
"Взять (ch) растительный ингредиент (o) в сухом виде (l) в объеме одной доли (k), шаг завершен (y)"
Промежуточный вывод по Code Style:
Так как текст писали два разных человека, видна разница в подходе писцов к написанию алгоритма:
Писец 2 (консервативный код): его рецепты очень короткие, емкие, с жестким синтаксисом. Слова имеют почти одинаковую длину. Он редко ошибается и пишет очень аккуратно. Его код похож на упорядоченную таблицу данных
Писец 5 (избыточный код): его абзацы длиннее, он часто использует сложные цепочки повторений. Лингвисты замечают, что его "язык" (диалект Войнич-B) имеет более высокую энтропию. С точки зрения программирования, он либо расписывал алгоритм более детально (с комментариями), либо использовал другую, более сложную систему шифрования тех же самых инструкций
Биологический раздел


Этот раздел - самый странный в книге. На нем изображены десятки обнаженных женщин (нимф), которые находятся внутри сложных гидравлических систем: бассейнов, соединенных трубами, клапанами, форсунками и странными насосами.
С точки зрения алгоритмов и реверс-инжиниринга, это блок-схема потоков "данных" (Data Flow Diagram):
1. Нимфы
В Средневековье не было понятий "давление", "объем жидкости" или "направление потока". Иллюстраторы ордена могли использовать тела женщин как визуальные маркеры:
Поза нимфы показывает направление движения процесса. Если женщина держится за трубу или плывет в определенную сторону - это вектор движения потока
Степень погружения (по колено, по пояс, по грудь) может указывать на уровень давления или концентрации жидкости в данном узле системы
Предметы в руках (кольца, кресты, сосуды) - вероятно, флаги условий (например, "здесь происходит фильтрация" или "здесь раствор обогащается").
2. Трубы и бассейны как функциональные узлы (схема дистилляции)
Текст на этих страницах расположен не как в обычной книге. Он жестко привязан к элементам гидравлики.
Строка текста над трубой - это условие перехода (маршрутизация). Она описывает, при каких параметрах жидкость перетекает из верхнего бассейна в нижний.
Текст внутри самого бассейна - это замкнутый подпроцесс. Например, процесс отстаивания, брожения или термической обработки (на некоторых рисунках бассейны подогреваются снизу).
Таким образом, Биологический раздел - это технологическая карта сложной химической лаборатории. Члены сообщества кодировали процессы многоступенчатой очистки эфирных масел или очищения сырья для лекарств, замаскировав оборудование под "бассейны с девами", чтобы инквизиция не обвинила их в чернокнижии.
Ботанический раздел



Самый большой в рукописи. Это база данных исходного сырья, на которую ссылаются все остальные разделы (рецепты и гидравлика). Это не описание цветка в привычном нам виде, а карточка объекта в объектно-ориентированном программировании (ООП), со всеми его свойствами и методами работы с ним.
Архитектура страницы: цветок как объект
Каждое растение нарисовано с корнем, стеблем, листьями и соцветием. Текст не обтекает рисунок хаотично, а разбит на жесткие функциональные блоки. В терминах программирования структура страницы выглядит так:
Class Растение {
свойства_корня (текст у корня);
свойства_листьев (текст у листьев);
свойства_цветка (текст у цветка);
методы_применения (основной блок текста);
}
1. Корень - инициализация объекта
Текст, расположенный непосредственно вокруг корня, содержит самую высокую концентрацию уникальных слов с редкими префиксами (d-, p-, g-).
Логика: корень в средневековье считался основой выживания растения, содержал всю его силу. Именно поэтому корни прорисованы с такой невероятной, даже избыточной детализацией. Стебли и листья часто выглядят схематично, но корни прорисованы в виде зубов, когтей, переплетенных змей или сложных узлов.
Вероятно, текст у корня задает базовые параметры: к какому семейству относится растение, где оно растет (болото, горы) и насколько силен его яд/эффект. Место, где растение укоренилось, напрямую определяло его свойства:
Корень, выросший в болоте или сырости, считался лекарством от "болезней сырости" (ревматизмом, простудой). По логике аптекарей, если корень сам не сгнил в воде, значит, он накопил внутреннюю силу противостоять влаге и передаст её человеку.
Корень, пробивший твердую скалу, обладал "силой разрушения камня" и использовался для выведения камней из почек и мочевого пузыря.
2. Листья и стебель - параметры среды
Строки текста, идущие вдоль стебля, короткие и однотипные.
Логика: это вполне могут быть условия сбора и хранения. Вдоль стебля часто повторяются шаблоны -o- и -e-. Как мы выяснили в рецептах и астрономии, это маркеры состояния/положения. Здесь они, вероятно, кодируют, в какой фазе роста нужно срезать листья (молодые, сухие, до цветения или после).
3. Цветок - целевой результат
Текст у самого соцветия часто заканчивается теми самыми "звездными" окончаниями, которые мы видели в астрономии (например -y).
Логика: возможно, это ссылка на таймер (астрономический раздел). Цветок показывает пиковый момент готовности растения. Текст у соцветия буквально говорит: "Этот объект активируется (зацветает) под управлением созвездия X".
Почему изображены несуществующие растения
Ботаники веками бьются над манускриптом, потому что большинство растений там - это "монстры Франкенштейна": корень от одного вида, листья от второго, а цветок от третьего.
Если мы снимем очки биолога и наденем очки программиста, эта аномалия мгновенно объясняется: это не реальные части растения, а конструктор их свойств.
Если в рецепте написано: "Взять одну долю сухого растительного вещества cholky", то аптекарь открывает ботанический раздел и ищет страницу, где в блоке "Корень" или "Листья" задекларирован этот же паттерн cholky (или его базовая форма chot). Это работает как поиск по тегу в базе данных
Когда художник рисует корень в виде зубчатого капкана, скрученной змеи или ряда круглых контейнеров, он фиксирует не ботаническую реальность, а эти самые сигнатуры и гуморальные свойства.
Гуморальный подход означает, что всё здоровье человека, его характер и даже болезни зависят исключительно от баланса четырех главных жидкостей (соков) в организме. Эта система называлась гуморальной теорией (или теорией четырех гуморов), и её придумали еще древнегреческие врачи Гиппократ и Гален, а средневековые монахи и аптекари довели до абсолюта. По этой классификации:
- Кровь (стихия воздух) - горячая и влажная
- Флегма/слизь (вода) - холодная и влажная
- Желтая желчь (огонь) - горячая и сухая
- Черная желчь (земля) - холодня и сухая
Рисунок змеевидного корня говорил аптекарю: "Этот объект обладает горячей силой, извлекающей яд", а сопровождающий его текст задавал точную дозировку этой силы.
Исключения:
Объекты типа "только корень": у таких растений, как мандрагора, цикорий или солодка, стебель и листья практически не имели медицинской ценности. Весь текст смещается к корню (для листьев отдельного описания не требуется)
Объекты типа "только трава": для некоторых растений (например, ромашка, чистотел или полынь) важна была только наземная часть (листья/цветы), а корень выбрасывался. В этом случае текст у корня отсутствует за ненадобностью
Наследование данных из "базового класса"
Если несколько растений относились к одному известному семейству (например, зонтичные или крестоцветные), писцам не нужно было заново прописывать базовые свойства корня или стебля для каждого из них.
Текст на таких страницах описывает только уникальные модификаторы конкретного подвида (например, цвет лепестков или особый способ варки), а базовые параметры "наследовались" по умолчанию из общей логики. Поэтому текст группировался в один блок, а не размазывался по деталям рисунка.
Ограничение площади пергамента
Если писец видел, что художник оставил слишком мало места между стеблем и краем страницы, он не мог физически втиснуть туда текст. Ему приходилось переносить его в верхнюю или нижнюю часть листа, где оставалось чистое пространство.
Выводы
1. Манускрипт - это единый работающий механизм: Ботаника (база данных) - Астрономия (таймер) - Рецепты (скрипт выполнения) - Биология (обработка)
2. Одно и то же "слово" меняет свое значение в зависимости от того, на какой странице оно находится:
- В астрономии оно считает градусы и время
- В ботанике и рецептах - взвешивает граммы и порции
- В биологии - управляет заслонками труб и скоростью потока жидкостей
Это гениальная разработка средневекового ордена. Они создали универсальный язык для всей своей производственной базы!
Здесь дан, конечно, не полноценный перевод манускрипта, но, возможно, статья натолкнет будущих исследователей на новые идеи.
Например, если выяснить, каким реальным растениям соответствуют рисунки, возможно, удастся сопоставить их свойства с теми, что описаны в рукописи....