Проблема фрагментации данных
Современный пользователь хранит цифровую жизнь в десятках изолированных сервисов: Google Takeout, iCloud, Facebook, Strava, Instagram. Каждый из них предлагает свой формат экспорта, а данные часто теряются при смене платформ или блокировке аккаунтов. Timelinize решает эту проблему, создавая единую временную шкалу (timeline) на локальном компьютере. Проект позиционируется не просто как галерея, а как инструмент для сохранения семейной истории и личного цифрового наследия.
Техническая архитектура и импорт
В основе Timelinize лежит локальная база данных SQLite. При импорте система не требует распаковки архивов (.tar, .zip) — она распознает исходную структуру папок и файлов. Все данные индексируются и хранятся на диске в открытом виде, без использования проприетарных форматов. Это позволяет пользователю получить доступ к файлам через обычную файловую систему, если приложение недоступно.
Ключевая особенность — entity-awareness (осознанность сущностей). Система автоматически связывает данные об одном и том же человеке, животном или организации из разных источников. Если автоматическое сопоставление невозможно, пользователь может вручную объединить сущности. Чаты агрегируются: переписка с контактом из SMS и Facebook отображается в едином потоке с поддержкой реакций.
Визуализация и аналитика
Интерфейс предлагает несколько режимов просмотра, которые эволюционируют в текущей версии:
- Классическая временная шкала: группировка всех типов данных (фото, текст, геолокация) по временным сегментам для реконструкции дня.
- 3D-карта: визуализация перемещений с цветовой кодировкой времени. Серые маркеры показывают места, где были получены сообщения, даже если у самих сообщений нет GPS-координат (на основе контекста, например, «в церкви»).
- Пузырьковая диаграмма (Bubble Chart): аналитический вид, показывающий, какие типы данных преобладают в разное время суток и года.
Для разработчиков и продвинутых пользователей
Timelinize написан на Go и предоставляет симметричный HTTP API и CLI. Любая конечная точка API автоматически доступна через командную строку. Для разработки поддерживается среда Dev Containers в VS Code. Важно отметить: проект находится в стадии активной разработки (WIP), схема базы данных меняется, поэтому при обновлении версий может потребоваться пересоздание таймлайна с нуля. Рекомендуется всегда сохранять исходные данные.
| Функция | Описание | Техническая реализация |
|---|---|---|
| Импорт данных | Поддержка Google Takeout, iCloud, соцсетей, GPS-радио, контактов | Автоматическое распознавание форматов без предварительной распаковки |
| Хранение | Локальное, офлайн | SQLite + файловая система (открытые форматы) |
| Связывание сущностей | Объединение данных о людях/организациях из разных источников | Автоматический ML-поиск + ручной мерж через UI |
| API/CLI | Управление через командную строку | Go, симметричные HTTP-эндпоинты |
Зачем это нужно?
Автор проекта подчеркивает этическую и практическую сторону: данные, хранящиеся в облаках корпораций, эфемерны. Timelinize позволяет создать «живую историю семьи», где можно отслеживать влияние глобальных событий, погоды и личных переживаний на жизнь предков и современников. Это инструмент для тех, кто хочет иметь полный, независимый и структурированный доступ к своей цифровой биографии.
Источник: Github ↗
