[OSM-talk] Missing structure

Lester Caine lester at lsces.co.uk
Sun Jan 13 09:40:09 GMT 2008


After my missive in the postal addresses thread I had yet another scout around 
  on what is already available and how it is not being managed well.

All mapping is currently based on physical nodes, but I think that perhaps we 
need an abstract element that we can hang things on.
( After thought - all I really mean here is that the physical coordinates of 
these tags is not significant - it does not really matter if the place 'United 
Kingdom' is within the boundaries of the UK or on a list at the north pole ;) )

http://wiki.openstreetmap.org/index.php/OSM_tags_for_routing has some notes on 
places, and 'places' rather than 'boundaries' is probably the right place to 
start the tree of hierarchy since it already has all the right components.
We can then ADD boundaries to provide the detail of the actual area covered by 
a 'place'. The node for a place could obviously be within the relevant area - 
actually it does not matter - what DOES matter is that 'is_in' is correctly 
structured and ONLY refers to OTHER unique entries in the places list!

http://wiki.openstreetmap.org/index.php/Placename_hierachies misses the whole 
point and is the cause of some of the current differences.

Taking an example

     * place=village
     * name=Ryde
     * is_in=England, Isle of Wight, Hampshire

SHOULD be is_in=Isle of Wight

With
     * place=county
     * name=Isle of Wight
     * is_in=Hampshire

     * place=county
     * name=Hampshire
     * is_in=England

     * place=country
     * name=England
     * is_in=United Kingdom

In other words every element of is_in must have a matching record in 'place'
but currently 'name' may not be a unique reference as in 'San Francisco' but 
we need a unique identifier for THIS system to have a chance of working?

There is justification for more than one is_in tags attached to an element, 
such as in the UK we may have 'parish' and 'ward' and a street would be in 
both places, or a street may need to be split into two where one part is in a 
different 'parish' or 'ward'. The same applies to places that straddle two 
states or counties.

The problem I am currently seeing is HOW to handle that lower level structural 
detail. We need place records for every element that is to be used to build a 
hierarchy and those may or may not have boundary elements linked to them and 
at least for the UK there is a complete list of those places available even if 
there is no location/boundary information 'openly' available. The lists are 
all open source from the Office of National Statistics.

The problem comes when trying to identify a street where there may be several 
elements that make up that street, but there is not a single 'This is xx 
street' tag. On one hand it is not important, as long as all the elements use 
the same spelling for the street, but when you bring street numbering and 
postcode into the equation, the structural elements become important in that 
the street may be split into several post codes, with different blocks of 
numbers in each section. It may be tidier to have a place=street which can 
then be used as the 'is_in' for all of the elements that are located on that 
street and this would then have physical elements 'attached' to it. A drastic 
example of a street would then be the 'M1' which would span several counties 
pass through several towns, and have a very complex element structure. But it 
is already well managed since in theory we can look for ref=M1 and find the 
whole route, all we are missing is a list of all available 'ref' entries other 
than running a 'SELECT DISTINCT' query, while a place element may just provide 
a tidy hook? Back to the street problem, in the case of England and Wales, the 
ref= entry could be the NSG (National Street Gazetteer) street number (for 
which there is one for the M1 ;) ) but we need somewhere to hang the data and 
I don't think yet another element like 
http://wiki.openstreetmap.org/index.php/Relations/Proposed/Collected_Ways is 
the right way. A more generic solution providing additional 'places' which can 
then be cross-referenced by 'is_in' seems elegantly practical?

Definition of place element - a uniquely identified piece of information
Definition of is_in - a link to one or more place elements

-- 
Lester Caine - G8HFL
-----------------------------
Contact - http://home.lsces.co.uk/lsces/wiki/?page=contact
L.S.Caine Electronic Services - http://home.lsces.co.uk
MEDW - http://home.lsces.co.uk/ModelEngineersDigitalWorkshop/
Firebird - http://www.firebirdsql.org/index.php




More information about the talk mailing list