Тема управления картографическими данными в более общем смысле , придумал прежде , чем здесь. Тема версионирования также упоминалась там, но на самом деле не рассматривалась.
Традиционный сбор и обслуживание геопространственных данных требует лишь внутреннего контроля версий, поскольку база данных обновляется только внутри организации. Это не относится к краудсорсинговым базам геоданных, таким как OpenStreetMap. Там каждый может прийти и добавить, изменить или удалить объекты. В OpenStreetMap это решается в зачаточном виде: каждый объект имеет целочисленный номер версии, и только объект с самой высокой версией представлен в действующей базе данных. База данных использует оптимистическую блокировку, поэтому пользователи должны разрешать все конфликты, возникающие при загрузке вкладов вручную.
Все это работает достаточно хорошо, пока человеческий вклад через редакторов ( JOSM , Potlatch ) является единственным способом участия - но это не так. Все чаще осуществляется импорт открытых данных государственного сектора. Это создает более сложные проблемы с версиями. Рассмотрим следующий сценарий:
- Строительный объект импортируется из открытого набора данных государственного сектора
- Здание получает некоторые модификации от людей (атрибуты, геометрия или оба)
- Новая версия данных государственного сектора становится доступной и импортируется.
В настоящее время на шаге 3. человеческие вклады будут потеряны, если каждое здание, получившее модификации сообщества, не будет вручную объединено с новым импортом.
Как OpenStreetMap может справиться с этой ситуацией? Нужно ли нам смотреть на распределенный контроль версий при разработке программного обеспечения? Как можно адаптировать методы DVC для обслуживания распределенных пространственных данных?