L'argomento della gestione dei dati geospaziali in un senso più generale è emerso prima qui. Anche qui l'argomento del controllo delle versioni è stato menzionato, ma non è stato affrontato.
La raccolta e la manutenzione dei dati geospaziali tradizionali devono solo gestire le versioni internamente, poiché il database viene aggiornato solo dall'interno dell'organizzazione. Questo non è il caso di geodatabase di crowdsourcing come OpenStreetMap. Lì, chiunque può venire e aggiungere, modificare o eliminare oggetti. In OpenStreetMap questo viene gestito in modo rudimentale: ogni oggetto ha un numero di versione intero e solo l'oggetto con la versione più alta viene esposto nel database live. Il database utilizza il blocco ottimistico, quindi gli utenti devono risolvere tutti i conflitti che si verificano durante il caricamento manuale dei contributi.
Tutto funziona abbastanza bene fintanto che i contributi umani attraverso gli editor ( JOSM , Potlatch ) sono l'unica modalità di contributo, ma non lo sono. Sempre più spesso vengono condotte importazioni di dati aperti del settore pubblico. Ciò crea problemi di versioning più complessi. Considera il seguente scenario:
- Un oggetto edificio viene importato da un set di dati del settore pubblico aperto
- L'edificio riceve alcune modifiche dai contributori umani (attributi, geometria o entrambi)
- Una nuova versione dei dati del settore pubblico diventa disponibile e viene importata.
Attualmente, nel passaggio 3. i contributi umani andrebbero persi, a meno che ogni edificio che ha ricevuto modifiche comunitarie sia unito manualmente alla nuova importazione.
Come può OpenStreetMap gestire questa situazione? Dobbiamo esaminare il controllo della versione distribuita nello sviluppo del software? Come possono essere adattati i metodi di DVC per gestire la manutenzione distribuita dei dati spaziali?