Новый способ изображения генеалогии: модель «брачного узла» и демонстрационное древо
Зачем нужен новый движок для генеалогии?
Настоящие семьи — это не простые деревья. В них есть многоженство, развод, вдовство и повторные браки, браки между двоюродными родственниками, связывающие одного человека с несколькими ветвями, и матери, чьи имена источники порой так и не сохранили. Традиционные средства отрисовки исходят из принципа «один супруг — одна линия» и потому скрывают часть правды, дублируют людей или нарушают форму. Мы заново, с нуля, переосмыслили способ построения деревьев, чтобы представлять семью такой, какая она есть на самом деле, а не такой, какой её диктует упрощённый шаблон.
Демонстрационное древо «Āl ʿAbd Allāh» на платформе — это безопасная витрина для данного движка: вымышленные люди, специально созданные, чтобы показать сложные случаи (многоженство, развод, вдовство, продолжение родословной женщины в её собственной семье), не затрагивая частную жизнь ни одной реальной семьи.
Модель «брачного узла»
Основная идея в том, что сам брак является узлом на диаграмме: небольшим кругом, соединяющим супругов, от которого идут линии к их детям. Это отличается от традиционной «гребёнки» супругов, которая выстраивает жён рядом с мужчиной и размещает всех детей под ним, не показывая, кто чья мать. Благодаря брачному узлу становится ясно, кто с кем состоял в браке, какие дети относятся к каждому браку и каково состояние каждого отношения.
Состояние каждого отношения кодируется визуально: сплошная линия с синим кругом обозначает действующий брак, полый круг — развод, серый круг с пунктирным кольцом — союз, завершившийся смертью, а янтарный цвет — историческое отношение milk yamīn. Зритель считывает структуру по одним лишь фигурам, а в углу постоянно отображается «легенда отношений».
Как обрабатываются сложные случаи
- Многоженство и повторные браки: у каждого брака есть свой собственный узел, круг и дети; предыдущие браки жены отображаются как независимый вложенный блок на любую глубину вложенности.
- Брак между родственниками и сходящиеся родословные: когда человек связан более чем с одной ветвью, он изображается ПОЛНОСТЬЮ ровно один раз (в своём каноническом месте) и в других местах появляется как компактная ссылка, указывающая на общего предка, где сходятся обе линии, без дублирования и без потерь.
- Свёртывание и развёртывание: боковые ветви сворачиваются за элемент «+N», чтобы вид оставался чистым, и раскрываются по требованию; счётчик показывает число видимых людей от общего числа в древе.
- Матери без имён: если источник не сохранил имя матери, мы не выдумываем его и не рисуем поддельную карточку, а прямо указываем, что имя не зафиксировано (исследовательские деревья), или показываем понятное место, чтобы её добавить (семейные деревья).
Один движок для каждого древа
Один и тот же метод управляет каждым деревом на платформе: вашим собственным семейным древом, демонстрационным древом и исследовательской генеалогией Пророка ﵌. Здесь нет кода, привязанного к отдельному дереву. Это значит, что любое улучшение дизайна или исправление поведения достигает каждого дерева и каждого пользователя сразу, а согласованность гарантирована самой конструкцией, а не ручным трудом.
С инженерной точки зрения данные проходят по одному строгому конвейеру: плоские данные (одна строка на человека; структура строится по связям отца/матери) подаются в чистое математическое преобразование, которое создаёт сцену, а она, в свою очередь, подаётся в модуль отрисовки, вовсе не содержащий логики данных. Каждая координата вычисляется; в изображении нет ни одной вручную расставленной позиции.
Контроль качества перед публикацией
Поскольку каждое развёртывание затрагивает каждое дерево, мы используем автоматические защитные механизмы: набор правил целостности, проверяемых перед любым импортом (запрет брака с прямым предком, запрет однополого союза, отсутствие циклов в родословной, отсутствие ребёнка без обоих родителей, ссылочная целостность). Если данные нарушают хотя бы одно из этих правил, публикация отклоняется. Кроме того, десятки тестов соответствия проверяют, что изображение не смещается ни на один пиксель между версиями.
Именно эта дисциплина позволяет нам быстро вносить изменения без страха: мы постоянно улучшаем дизайн, полагаясь на защитные механизмы, которые не дадут ни одной ошибке добраться до вашего дерева.
Опыт использования
- Мгновенный поиск любого человека (по имени, с указанием отца и поколения), а затем переход к нему и его выделение на месте без потери контекста.
- Отдельная страница для каждого человека: имя, почётное звание, даты, племя, биография, дети, супруги и родители.
- Арабский справа налево и английский слева направо с мгновенным переключением языка.
- Фотографии членов семьи, куньи, автоматически формируемые в семейных деревьях, и вёрстка, хорошо работающая на мобильных устройствах.
Новый дизайн — это не косметическое обновление, а переосмысление того, как семья представляется в цифровом виде: с сохранением верности фактам, единообразия во всех деревьях и права владельцев на свои данные.
