[OSM-talk] Connecting tags using array syntax

Frederik Ramm frederik at remote.org
Wed Apr 1 00:21:00 BST 2009


Hi,

Candid Dauth wrote:
> 1. Different things in one node or area have different opening hours. For example, there are multiple shops with different opening hours on different floors of a building. Or an ATM in the entrance hall of a bank, the ATM being opened at different hours than the bank itself. Or a recycling container where you are allowed to put in paper and glass, but glass only at certain hours to avoid being too loud. At the moment, you have to create two different nodes next to each other, which does not always represent the real situation.

These should probably be fleshed out by giving them individual 
geometries, since they are not by nature "in one node", only because 
their geometry has not been mapped more precisely.

Your other examples are discussed to death every other month so I'm 
quite surprised you did not find anything on them. People often suggest 
things like "maxspeed:hgv" to make a limit apply only to one class of 
vehicles.

Since you might be capable of understanding German, the talk-de list has 
discussions about these in regular intervals. You might want to check out

http://lists.openstreetmap.org/pipermail/talk-de/2008-August/020217.html

and related discussions in the same month, or

http://lists.openstreetmap.org/pipermail/talk-de/2009-February/037417.html

Also, about the "pavement on both sides with different surfaces" issue, 
check out 
http://wiki.openstreetmap.org/wiki/WikiProject_Germany/Workshops/Linienb%C3%BCndel 
which doesn't come to a conclusion but maybe at least tells the story of 
how many people have thought about this and how unsatisfactory the 
results still are ;-)

> 1. Use “tag arrays”. Tags with the same index are connected to each other, for example an ATM with different opening hours than the bank:
> * amenity[0]=bank
> * opening_hours[0]=Mo-Fr 09:00-16:00
> * amenity[1]=atm
> * opening_hours[1]=Mo-Su 06:00-22:00
> * name=Deutsche Bank

Generally, we try to use tags that can be understood by a human with 
relative ease. Everybody uses editors to make changes but still, we like 
our tags to be "human readable". Your concept really stretches the 
envelope of "human readability". Of course it is trivial for a computer 
program to evaluate something like this:

> * maxspeed[0]=120
> * hour_on[0]=6
> * hour_off[0]=20
> * maxspeed[1]=100
> * hour_on[1]=22
> * hour_off[1]=6
> * maxspeed[2]=60
> * hour_on[2]=22
> * hour_off[2]=6
> * for[2]=hgv

and display it in some suitable fashion, but before too long you would 
really *need* the program to make sense of these things at all.

It is possible that we'll one day have to drop the idea of 
human-readable tagging but I think we're not quite there yet.

Bye
Frederik

-- 
Frederik Ramm  ##  eMail frederik at remote.org  ##  N49°00'09" E008°23'33"




More information about the talk mailing list