Lester Caine schrieb:
> Claus Färber wrote:
>> I've written a proposal for postal addresses:
>> http://wiki.openstreetmap.org/index.php/Relations/Proposed/Postal_Addresses
...
> This is going to be another area where international differences are going to 
> hinder agreement, simply because of the local 'restrictions' on how a 
> 'postal' 
> address can be constructed.

This is why is used civicLoc from RFC 4119, which intends to cover all 
international addresses.

Of course, you can't create an address only from the address elements. 
You will also need an address template, for example:

United Kingdom:
   $LMK
   $HNO$HNS $PRD $A6 $POD $STS
   $^A3
   $^PC

Germany:
   $A4
   $PRD $A6$POD$STS $HNO$HNS
   $PC $A3

This could even be added as a special tag to the hierarchy level vor 
which it applies, e.g. '''address:template'''.

> But the main problem I am seeing with this proposal is the complete lack of 
> integration into the maps?

There's the '''border''' memeber, which can give the outline on the map. 
Furthermore, you can add any map element as a member to an address relation.

What is not possible is to tag a way or node as '''is_in''' another way, 
node, or relation. However, this is a restriction of the OSM data model: 
Only relations can contain other relations. Therefore, it is not 
possible to add the members to the way forming the area, for example.

You need to use a relation to do link ways together, which is what this 
proposal does.

If it becomes possible to add members (i.e. ref elements in XML) to a 
way, then, yes, the tags should be on the way that marks the border.

> The proposal seems to be adding a complete new layer of tags, when what is 
> needed is a means of identifying the hierarchy of the existing data.

The proposal does that. Actually, we may need multiple hierarchies, 
which overlap in some areas.

For example, one hierarchy follows '''type'''='''address''', another one 
could follow '''type'''='''administrative''' and a third one could 
follow '''type'''='''geographic'''.

Postal Address (includes elements that don't appear in the address 
template):
- United Kingdom (country)
- England (a1)
- London (a2; a3)
- City of Westminster (a4)
- St. James's (a5)
- Downing Street (a6)
- SW1A 2AA (pc)
- Downing Street (a6, the part in SW1A 2AA)
- 10 (hno)

Administrative:
- United Kingdom (country)
- England (sub-country)
- London (region; county)
- City of Westminster (city)
- St. James's (ward)
- Downing Street (street)
- 10 (property/site)

Geographic (physical):
- Earth (planet)
- Eurasia (supercontinent)
- Europe (continent)
- British Isles (archipelago)
- Great Britain (isle)
- River Thames (waterway)

The idea is that elements are shared where they are congruent. There 
would be a single relation for "England", for example, tagged as:

   type=address;administrative
   name=England
   address:type=a1
   administrative:type=constituent_country
   border=>[way #12345]

> I have a major interest in this currently as I am DEEP in the middle of 
> enhancements to my own commercial software to add and manage NLPG data. The 
> National Land and Property Gazetteer provides a unique property reference 
> number for every building and parcel of land in England and Wales. At some 
> point it will also have data for the boundaries of every property as well. At 
> present it has a location coordinate which I currently have mapping onto OSM 
> with a fair degree of accuracy - except that the area I have access to data 
> for is still rather incomplete on OSM.
> 
> The layer above the uprn (unique property reference number) is the usrn - 
> unique street reference number, and every property reference has to access a 
> valid street reference. ( As an aside - while these are country specific, 
> some 
>   means of adding such a well defined reference would be appropriate? )

Yes, you can just add additional tags, e.g. ref:uk:uprn or ref:uk:usrn.

Other possible examples are ref:iso3166_1, ref:iso3166_2, ref:unlocode, 
ref:eu:nuts-1, ...

I haven't included them yet to keep the proposal simple. (Furthermore, 
they belong to an administrative hierarchy, not the postal one.)

> The POINT I am getting at here is HIERARCHY - and while I am a little 
> blinkered in my approach - simply because the current data that I am working 
> with *IS* well structured. I've realised what is wrong with *IS_IN* and it's 
> the fact that it's not being used to create hierarchic links! Every node 
> 'is_in' the map, but now we need to add the sub layers! I was thinking that 
> we 
> needed to sort out 'boundaries' so we can brake up the current mass of data, 
> but what we are missing is simply STRUCTURE.

Yes, that's exactly

> 
> We need the boundaries, but rather than trying to rely on reading coordinates 
> to establish if a node is inside or outside a boundary, we need the 'is_in' 
> relation.

That's too much work for mappers. It's an enormous task to add 
everything to a "is_in" relation.

However, it is also not necessary because it can be inferred from the 
location, if the hierarchy is correct. BTW, there are multiple 
hierarchies that can apply; for example, a node can be in London, 
England, UK (address/administrative) and in Great Britain, British 
Isles, European continent (physiogeographic).

> We ignore the nodes and look at the bigger picture. We create some 
> high level 'boundaries' - the boundary:continent,

or as a relation:

   relation #1
   type=geo
   name=Europe
   geo:type=continent
   border=>[way #12345]

> and then and countries within them. Every country will at some point have a
 > oundary and it is probably the boundary tag that gives us the missing
 > hierarchy since we need a set of country boundaries.

> Every boundary:country will have an is_in to the 
> boundary:continent.

   relation #2
   type=address
   address:type=country
   border=>[way #12346]
   is_in=>[relation #1]

But wait; there's the physiogeographic sub-division, too:

   relation #3
   type=geo
   geo:type=archipelago
   border=>[way #12347]
   is_in=>[relation #1]

 > It may be that we have to provide 'split' boundaries for some places
> where parts are within different higher level boundaries, but place would
 > have a single boundary reference, and place/east and place/west would
 > then have different 'is_in' relations.

An example of such a case is already shown in 
http://wiki.openstreetmap.org/index.php/Relations/Proposed/Postal_Addresses#crossing_boundaries

I like the idea that they share a "single boundary reference", i.e. in 
my proposal, they would point to the same way in their '''border''' member.

> It is probable that we would have multiple 'is_in' relations at some levels, 
 > but normally you would only be referring to one level above.

Yes, these can be differentiated by the '''type''' tag: One hierarchy 
follows type='''address''' and the other one follows type='''geo''', for 
example.

Claus


_______________________________________________
talk mailing list
talk@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk

Reply via email to