[Tagging] Permanent IDs RFC (was part_of:wikidata)
Erkin Alp Güney
erkinalp9035 at gmail.com
Thu Nov 30 20:03:59 UTC 2017
30-11-2017 22:56 tarihinde Yuri Astrakhan yazdı:
> If you edit a road, a new one would be created and would point to its
> invalidated ancestor. Recursively chasing previous ID pointers, you
> would eventually have an object without an ancestor. ID of that object
> would also be permanent ID of the successor objects. This will also
> solve road split problems as multiple objects can point to the same
> Erikn, if I understood you correctly, you are proposing the data
> structure to generate and track IDs. I think there are several issues:
> * determining feature ID requires O(N) - linear search through history.
If you just want the latest version, one lookup. If you want ancestors
and descendants, linear pointer chase.
> * given an ID, if you want to examine what it points to, you have to
> assemble the whole tree of descendants to determine all of the leafs,
> and test if they still exist or were deleted. Which also means that
> instead of a human-currated single relation for the multi-segment
> road, and a single list of tags, you are now looking at a set of
> objects, each with its own list of tags.
ID-only lean tree may be stored at the server side. You will then only
download the objects you actually want.
> * Download must contain an entire OSM change history to work with the
> IDs offline
See git's shallow cloning. As OSM IDs are linear counter rather than
hashes, it is even easier to work: You can prune objects by ID thresholding.
More information about the Tagging