On 13.06.2012 17:18, Martin Vonwald wrote: > >> :forward, :backward, ... > > I don't think of them as conditions, but more a selection of a part of > a way. Just like :lanes is to me not a condition.
I think we've discussed this several times already, and as you know I do not think this "part of a way" interpretation of forward/backward is appropriate. You could easily place signs with different restrictions for each direction on a one-lane road. >> I also doubt whether the distinction between a "subkey" and a >> "condition" would always be obvious to mappers. As promptly illustrated by the fact that we can't even agree that forward/backwards are "conditions". > Is "lanes" a condition? I don't think so. I don't think so either. The point I was trying to make was a different one, as I'm trying to explain below. >> For example, if there is only one lane that changes maxspeed when wet, >> one might want to write that as follows: >> >> maxspeed:lanes = 80|80|80 >> maxspeed:lanes?wet = ||50 > > I would instead use maxspeed=80 for the first tag. Simpler. Compatible. Yes. Simpler, compatible and all that, but irrelevant for the example. >> Yes, you could evaluate this without any knowledge about the semantics >> of the base key. But doing so would result in "the value of >> 'maxspeed:lanes' is '||50' when the road is wet". That's not actually >> what we want - we do want the keep the '80' for the first two lanes. > > Actually it is what we want. Because: > 1) Either the application knows, what ":lanes" means. Then "the value > of 'maxspeed:lanes' is '||50' when the road is wet" means that the > first two lanes don't change the maxspeed value if the road is wet, > but the third changes it to 50. [...] > To me it seems perfectly consistent. This means I didn't explain well enough. Let's update the example to make this more clear: maxspeed=80 maxspeed:lanes = 60|80|80 maxspeed:lanes?wet = ||50 First step: Evaluate the conditions without regard for the semantics of the rest of the keys. "wet" is true, so this tagging changes to maxspeed=80 maxspeed:lanes = ||50 for the purpose of further evaluation. Remember: We did not take the semantics of "maxspeed:lanes" into account here, instead we relied on the ? separator to treat the front part of the keys in a generic way. This means that the maxspeed for the first lane will be 80 - there is no lane-specific value, so the road's general maxspeed is used. But it should of course be 60. Tobias _______________________________________________ Tagging mailing list Tagging@openstreetmap.org http://lists.openstreetmap.org/listinfo/tagging