How do I request that a field be added to the raw database?

As far as I can tell, there’s no globally-unique identifier assigned to each logical entity in the database.

Yet it’s often desirable to have a way to associate a logical entity with its representations in different kinds of databases.

For example, one might wish to characterise the changing condition of a roadway as it passes through several jurisdictions, even if the condition weren’t to be represented visually. So the roadway from beginning to end might have the identifier 12345 with the segment in the first jurisdiction perhaps being 12345A, in the second 12345B etc. Similarly with, say, a canal or a railway roadbed: what sections have to be dredged, the sleepers replaced, or ownership reclaimed, etc. Similar questions arise with housing stock: is a particular building sound, does it have architectural merit, etc., with urban building lots: is it built-upon, is the soil polluted, etc.

Unless there is a unique, persistent identifier and I simply haven’t been able to find it, I’d like to propose that one be added to the global database such that it appears in the .osm/.pbf files and can be captured without fear that it will change, be deleted, etc.

How would I do that?

Thanks in advance for help.

If you wanted to start a debate about this, the best place would be the dev@ mailing list.

But take it from me: it won’t happen. The editable nature of OSM makes it practically impossible.

If you want to tie external databases to changing OSM data, the best way to do it is to match on lat/long and a fuzzy object type. For example, “the most major road at 52.81575,-1.64761 for a distance of 2 miles in either direction” (phrased in whatever machine-readable format you want).

Thanks for confirming what I’d begun to suspect.

And there’s me, thinking it would be easy to add map functionality. Whit a daftie.

I don’t know whether there’d be sufficient stability in the method you suggest, since the lat/long might be changed to make it more accurate at the price of losing its association unless changes are fully journaled. With my luck, I’ll think of a fine solution that will ‘only’ involve my re-writing all the utilities.


That’s a good point, though - OSM changes are indeed “journaled” (i.e. full edit history), so it’d be possible. It’d be a hugely interesting project, though not an easy one!

Yes, they are, but not in a manner that lets you track an entity. When a restaurant moves, you might see a node being moved. Or a node being created and another one being deleted. Or tags being removed from a way or relation and added to another way or relation. A node being created and tags being removed from a way or relation.

And it’s not even guaranteed that all that happens within the same edit.

Most maps, like telephone directories, are outdated even before they’re released. Yet they’re still quite useful because most of the information remains accurate. At least for the project I’m working on, the map feature can be treated as a telephone directory: it will be useful even if not entirely complete or accurate, so it need not be updated in anything like real-time.

So I’m wondering whether it would work to create 2 additional databases, one (which could be a flatfile) with information about each logical entity, and the other graph-oriented to capture between-entity relationships, and then seed it by extracting data from a snapshot dump of the planet file. It seems to me -I can’t offhand think of any exceptions- that every logical entity can be uniquely identified by a combination of name, function, and location, which might have some fuzziness.