Исторические границы: источники и лицензия

Карта «Машина времени» построена на чужих открытых данных. Здесь сказано, на чьих именно, что мы в них изменили, на каких условиях отдаём результат и как его скачать и пересобрать. Это не формальность: 53 из 67 срезов распространяются под GNU GPL v3, и лицензия обязывает нас всё перечисленное назвать.

Что это за данные

67 датированных срезов политических границ мира — от 123 000 до н. э. до 2010 года. Один срез — один файл JSON: список территорий с названием, метрополией, признаком точности границы и геометрией. Общий вес срезов — 39,5 МБ (со словарём названий и каталогом набор весит чуть больше — точные размеры в описи). Карта на сайте грузит ровно один срез — тот, который вы выбрали на таймлайне.

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

Откуда взяты

ИсточникСрезовЛицензия источника
historical-basemaps — A. Ourednik и участники53GNU GPL v3
OpenHistoricalMap — участники проекта14CC0 1.0 (общественное достояние)

Срезы historical-basemaps взяты из коммита 62d8f1a0 от 26 января 2026 года — версия зафиксирована, чтобы набор можно было собрать заново и получить то же самое. Данные OpenHistoricalMap выгружены через Overpass API 10 июля 2026 года.

Что мы изменили

Изменения внесены 10 июля 2026 года проектом РеалСтат (real-stats.ru):

Чего мы не делали: не правили саму геометрию границ, не меняли названия и точность в исходных данных, не перепроецировали — на входе и на выходе WGS84 (EPSG:4326). В картографическую проекцию карту переводит браузер при отрисовке.

На каких условиях мы отдаём результат

Наши производные срезы, построенные на historical-basemaps (53 файла), распространяются на тех же условиях, что и источник, — GNU General Public License версии 3 (обозначение SPDX: GPL-3.0-only). Полный текст лицензии лежит здесь же, на нашем домене: /licenses/gpl-3.0.txt — это редакция с gnu.org.

Именно версии 3, без обычной оговорки «или любой более поздней»: в источнике такой оговорки нет, значит и права выбирать более позднюю версию нам не передавали. Брать себе больше прав, чем дали, мы не будем — даже когда это выглядит безобидно.

Срезы, построенные на OpenHistoricalMap (14 файлов), остаются в общественном достоянии — CC0 1.0. Файл ru.json со словарём русских названий мы также отдаём под GNU GPL v3: его ключи — названия держав из обоих наборов, и осторожность здесь дешевле спора. Скрипты сборки — наша собственная работа, они под GPL-3.0-or-later.

Уведомление о лицензии, источнике, дате и характере изменений записано внутрь каждого файла — в поля license, source, modified, warranty. Тот, кто пришёл прямой ссылкой на файл и этой страницы не видел, всё равно получит их вместе с копией.

Мы не добавляем к этим данным никаких собственных ограничений: ни запрета на скачивание, ни требования согласовывать использование, ни платы. Это не щедрость, а условие лицензии.

Скачать

Как собрать набор заново

Скрипты сборки открыты и лежат рядом с текстом лицензии:

Для точного повторения нужен shapely — упрощением занимается GEOS, и другая реализация даст другой результат. Сверка проходила на shapely 2.1.2 / GEOS 3.13.1 / Python 3.13.7; без shapely скрипт работает, но предупреждает, что выход будет другим.

  1. curl -sSLO https://www.real-stats.ru/licenses/hb_pack.py
  2. python3 hb_pack.py fetch — исходники (71 МБ): из репозитория-источника, а если он недоступен — из нашей копии
  3. python3 hb_pack.py build — те же срезы
  4. python3 hb_pack.py verify — сверка с опубликованными

Сверка от 6 сентября 2026 года: все 53 среза historical-basemaps собираются этим скриптом побайтово так же, как лежат на сайте. Оговорка честности: конвейер, которым набор собирали в июле 2026 года, в репозиторий не попал, и hb_pack.py восстановлен по фактическим данным. Восстановление подтверждено именно побайтовой сверкой, а не на глаз.

Полноточные исходники лежат копией у насhistorical-basemaps-62d8f1a0-geojson.tar.gz (26,0 МБ, контрольная сумма): то самое дерево geojson/ из зафиксированного коммита. Команда fetch сначала идёт в репозиторий-источник, а если его не окажется — берёт нашу копию. Так сделано намеренно: держать исходники доступными лицензия обязывает нас, и перекладывать эту обязанность на чужой сервер было бы нечестно.

Без гарантий

Данные предоставляются «как есть», без каких-либо гарантий, в том числе без гарантий пригодности для конкретной цели и отсутствия ошибок (GNU GPL v3, §15–16). Исторические границы — реконструкция, а не документ: они приблизительны, а по ряду эпох и регионов спорны между историками.

Все 67 срезов

ГодФайлТерриторийРазмерЛицензия
123 000 до н. э.bc123000.json157277 КБGPL-3.0-only
10 000 до н. э.bc10000.json135303 КБGPL-3.0-only
8 000 до н. э.bc8000.json134302 КБGPL-3.0-only
5 000 до н. э.bc5000.json2791111 КБGPL-3.0-only
4 000 до н. э.bc4000.json136304 КБGPL-3.0-only
3 000 до н. э.bc3000.json138305 КБGPL-3.0-only
2 000 до н. э.bc2000.json145327 КБGPL-3.0-only
1 500 до н. э.bc1500.json162335 КБGPL-3.0-only
1 000 до н. э.bc1000.json162335 КБGPL-3.0-only
700 до н. э.bc700.json173337 КБGPL-3.0-only
500 до н. э.bc500.json189350 КБGPL-3.0-only
400 до н. э.bc400.json189344 КБGPL-3.0-only
323 до н. э.bc323.json147340 КБGPL-3.0-only
300 до н. э.bc300.json153348 КБGPL-3.0-only
200 до н. э.bc200.json179358 КБGPL-3.0-only
100 до н. э.bc100.json219365 КБGPL-3.0-only
1 до н. э.bc1.json385437 КБGPL-3.0-only
100100.json382436 КБGPL-3.0-only
200200.json328433 КБGPL-3.0-only
300300.json401435 КБGPL-3.0-only
400400.json341420 КБGPL-3.0-only
500500.json202369 КБGPL-3.0-only
600600.json198393 КБGPL-3.0-only
700700.json252369 КБGPL-3.0-only
800800.json223371 КБGPL-3.0-only
900900.json241403 КБGPL-3.0-only
10001000.json257422 КБGPL-3.0-only
11001100.json234402 КБGPL-3.0-only
12001200.json278397 КБGPL-3.0-only
12791279.json242391 КБGPL-3.0-only
13001300.json232388 КБGPL-3.0-only
14001400.json227400 КБGPL-3.0-only
14921492.json19031512 КБGPL-3.0-only
15001500.json283434 КБGPL-3.0-only
15301530.json489520 КБGPL-3.0-only
16001600.json860683 КБGPL-3.0-only
16501650.json776683 КБGPL-3.0-only
17001700.json781671 КБGPL-3.0-only
17151715.json757700 КБGPL-3.0-only
17401740.json1861023 КБCC0-1.0
17831783.json641692 КБGPL-3.0-only
18001800.json627680 КБGPL-3.0-only
18151815.json436617 КБGPL-3.0-only
18201820.json207881 КБCC0-1.0
18301830.json2091173 КБCC0-1.0
18481848.json2211158 КБCC0-1.0
18611861.json209868 КБCC0-1.0
18661866.json207864 КБCC0-1.0
18711871.json1681081 КБCC0-1.0
18781878.json1701093 КБCC0-1.0
18801880.json236502 КБGPL-3.0-only
18901890.json187888 КБCC0-1.0
19001900.json270493 КБGPL-3.0-only
19081908.json185969 КБCC0-1.0
19141914.json177496 КБGPL-3.0-only
19201920.json205546 КБGPL-3.0-only
19251925.json203998 КБCC0-1.0
19301930.json191502 КБGPL-3.0-only
19381938.json253541 КБGPL-3.0-only
19451945.json227519 КБGPL-3.0-only
19491949.json193995 КБCC0-1.0
19601960.json197504 КБGPL-3.0-only
19751975.json1871010 КБCC0-1.0
19891989.json193900 КБCC0-1.0
19941994.json240590 КБGPL-3.0-only
20002000.json240590 КБGPL-3.0-only
20102010.json240589 КБGPL-3.0-only

Страница собирается из самих файлов: и таблица, и лицензии в ней читаются из срезов при сборке сайта — разойтись с тем, что лежит на сервере, она не может.