Методология
Как Caucasus Street Atlas собирает, классифицирует и обогащает каждую улицу.
1. Источник геометрии и исходных названий
Геометрия, оригинальное (местный алфавит) название и OSM-ID берутся из OpenStreetMap через Overpass API.
Каждый город сначала загружается снимком, затем поддерживается дельта-синхронизацией: переименованные, новые и удалённые объекты попадают в очередь osm_sync_pending и в админскую модерацию.
2. Переводы (en / ru / ka / hy / az)
Сначала используются языковые теги OSM (name:en, name:ru …).
Остаток обрабатывают два прогона ИИ (Gemini Flash через Lovable AI gateway): первый транслитерирует имена, второй переводит топонимы и общие термины. Все значения ИИ пишутся в ту же колонку, что и ручные правки, поэтому корректура всегда перекрывает ИИ.
3. Категоризация (персона / событие / топоним / прочее)
Многоуровневый классификатор: (a) regex по оригинальному имени отлавливает явные топонимы; (b) эвристика по фамилиям: армянские -ян, грузинские -швили/-дзе, азербайджанские -ов/-задə/-оглу, русские -ов/-ев/-ин и т. д.; (c) односложные знаковые имена (Руставели, Маштоц) — по справочнику; (d) спорные случаи проверяются SPARQL-запросом в Wikidata; если Q-id имеет instance-of=human — сохраняются пол, даты, профессии.
Всё, что не классифицировано, остаётся в категории other и видно модераторам как «низкая уверенность».
4. Эпохи
Эпоха (средневековье, Российская империя, ДДР, советский период, независимая Грузия) выводится из named_year и дат жизни персоны через infer_era_from_person(). Триггер БД проставляет значение автоматически, ручная правка имеет приоритет.
5. Обогащение по персонам
Для каждой персоны подтягиваются Wikidata Q-id, годы и места рождения/смерти, пол, этничность, религия, гражданство, профессии и краткая ИИ-биография (2–4 предложения) на всех языках интерфейса.
Уверенность фиксируется по каждому полю. Низко-уверенные значения (например, этничность по фамилии) видны модераторам и правятся через публичную форму.
6. Изображения
Портреты — из Wikipedia (REST API thumbnail); для событий и топонимов — из Commons / городской статьи. Картинки кадрируются с фокусом на лицо/объект. Прямой хотлинкинг исключён.
7. Краудсорсинг
Любой может отправить правку через кнопку «Предложить правку» в карточке улицы. Правка попадает в street_suggestions и требует одобрения модератора; одобренные значения сначала пишутся в street_versions, потом в основную запись — каждая правка обратима.
8. Ограничения
Часть кросс-скриптовых переводов не закрыта (HY ≈ 58 %, EN ≈ 67 % на момент публикации). ИИ-биографии покрывают ~14 % персон и догоняются. Если видите ошибку — используйте «Предложить правку».