[Tagging] Conditional restrictions accepted – turn restrictions ahead?

2012-10-16 Thread Rob Nickerson
Hi Eckhart,

Your right, voting has come to an end for the Conditional Restrictions
proposal, which was approved. A statement was not made on this list as Ole
and I are working on how best to write the feature page so that some of the
concerns raised (about complexity / difficulty to understand) are reduced
as much as possible.

Like Martin, I'm not hugely convinced about the need for complicated turn
restrictions (most of the restrictions will be on the road and the detail
on the turn sign will simply be advanced warning for the driver). Having
said that, you have provided a few examples so I have looked into it:

  1. Currently we tag a no left turn restriction using restriction =
no_left_turn.
  2. If we want this to apply only to HGVs then the key is changed so that
it become restriction:hgv =no_left_turn.

To draw the comparison with Conditional Restrictions the above tags cover
of restriction type, transportation mode and the tag value. There is no
need to specify direction as this is already captured in the relation
(from, via, to). Therefore the only part left to add is the condition. At
the moment there are 2 ways to do this

  3. Using except = * (where * is a vehicle type). e.g. except = bicycle
  4. Using day on, day off, hour on, hour off

In summary we already have both applies type tags (1, 2 and 4) and
except type tags (3, and the inverse of 4!). My gut instinct is that
adding an applies = * tag would further complicate the issue.

In conclusion I would be in favour of adding the conditions directly to the
restriction or except tag (depending on how the road sign is written). Yes
this breaks backward compatibility but there are a lot less turn
restrictions in OSM than the other restrictions and if the conditions are
not met then the restrictions does not apply so it shouldn't really be
tagged anyway!

== Some Examples ==

 * Example 1: no u-turn restriction for HGVs longer than 6 metres:
 * restriction:hgv = no_u_turn @ (length  6)

 * Example 2: no right turn Monday to Friday 8am to 4 pm:
 * restriction = no_right_turn @ (Mo-Fi 08:00-16:00)

 * Example 3: no left turn except PSV's on Monday to Friday 8am to 4 pm:
 * restriction = no_left_turn
 * except = psv @ (Mo-Fi 08:00-16:00)

This then depreciates the need for day on, etc... tags which I'm not a fan
of - I think it is better to tag what is on the sign e.g. (Mo-Fr
08:00-19:00).

Happy to hear your thoughts.

Rob

p.s. I think it would be nice to see a few more real world examples if
anyone has any photographs (or can remember the conditions).
p.p.s It would be nice to know how many routing software apps are using
these turn restriction relations.
___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted – turn restrictions ahead?

2012-10-16 Thread Colin Smale

On 16/10/2012 17:45, Rob Nickerson wrote:

Hi Eckhart,

Your right, voting has come to an end for the Conditional Restrictions 
proposal, which was approved. A statement was not made on this list as 
Ole and I are working on how best to write the feature page so that 
some of the concerns raised (about complexity / difficulty to 
understand) are reduced as much as possible.


Like Martin, I'm not hugely convinced about the need for complicated 
turn restrictions (most of the restrictions will be on the road and 
the detail on the turn sign will simply be advanced warning for the 
driver). Having said that, you have provided a few examples so I have 
looked into it:


  1. Currently we tag a no left turn restriction using restriction = 
no_left_turn.
  2. If we want this to apply only to HGVs then the key is changed so 
that it become restriction:hgv =no_left_turn.


To draw the comparison with Conditional Restrictions the above tags 
cover of restriction type, transportation mode and the tag value. 
There is no need to specify direction as this is already captured in 
the relation (from, via, to).
I am not sure you can say this. It should work where the junction angles 
are close to 90 degrees, but for a shallow Y junction things might 
need a hint as to whether it is a curve to the right with a junction to 
the left, or a curve to the left with a junction to the right. The type 
of restriction should reflect the road signs. At a T-junction, a 
mandatory left turn could be considered different to a no right turn, 
even if they are effectively the same thing. This cannot be derived from 
the geometry alone.


Colin

___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted - turn restrictions ahead?

2012-10-16 Thread Rob Nickerson
 To draw the comparison with Conditional Restrictions the above tags
 cover of restriction type, transportation mode and the tag value.
 There is no need to specify direction as this is already captured in
 the relation (from, via, to).
I am not sure you can say this. It should work where the junction angles
are close to 90 degrees, but for a shallow Y junction things might
need a hint as to whether it is a curve to the right with a junction to
the left, or a curve to the left with a junction to the right...

Colin

- - -

Hi Colin,

Sorry, we're talking about 2 different things. I was making the comparison
with Conditional Restrictions which includes direction (forward or
backward). These values are not needed. Can I suggest that if you with to
discuss such values as no_slight_right_turn (or whatever), then you start a
new thread. It may also be worth looking back through the original proposal
for turn restrictions to see if any comments were made then.

Cheers,
Rob
___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted – turn restrictions ahead?

2012-10-16 Thread Ole Nielsen
I don't think we need to make it complicated. The Conditional 
Restrictions syntax is a bit overkill here. The restriction type is 
already known (type=restriction), so is the value 
(restriction=no_left_turn). What is left is just the condition (plus 
eventually a transport mode).


I already mentioned the following proposal on the talk page 
http://wiki.openstreetmap.org/wiki/Talk:Relation:restriction#Conditional_restrictions 
:


* condition=condition
* condition:transportation_mode=condition
(condition uses the condition values from Conditional Restrictions)

The need for the transportation mode variant will like be small as 
restriction:transportation mode=* should already cover this.


In my opinion there are no reasons to make it more complicated than 
that. It is backward compatible and easy to understand by mappers.


It would deprecate hour_on, hour_off etc. I believe it may be better 
to keep except but I would like to see real-world examples of 
conditional exceptions before adapting a Conditional Restrictions like 
syntax for that key (is your example 3 real?).


Ole / polderrunner

On 16/10/2012 17:45, Rob Nickerson wrote:

Hi Eckhart,

Your right, voting has come to an end for the Conditional Restrictions
proposal, which was approved. A statement was not made on this list as
Ole and I are working on how best to write the feature page so that some
of the concerns raised (about complexity / difficulty to understand) are
reduced as much as possible.

Like Martin, I'm not hugely convinced about the need for complicated
turn restrictions (most of the restrictions will be on the road and the
detail on the turn sign will simply be advanced warning for the driver).
Having said that, you have provided a few examples so I have looked into it:

   1. Currently we tag a no left turn restriction using restriction =
no_left_turn.
   2. If we want this to apply only to HGVs then the key is changed so
that it become restriction:hgv =no_left_turn.

To draw the comparison with Conditional Restrictions the above tags
cover of restriction type, transportation mode and the tag value.
There is no need to specify direction as this is already captured in
the relation (from, via, to). Therefore the only part left to add is the
condition. At the moment there are 2 ways to do this

   3. Using except = * (where * is a vehicle type). e.g. except = bicycle
   4. Using day on, day off, hour on, hour off

In summary we already have both applies type tags (1, 2 and 4) and
except type tags (3, and the inverse of 4!). My gut instinct is that
adding an applies = * tag would further complicate the issue.

In conclusion I would be in favour of adding the conditions directly to
the restriction or except tag (depending on how the road sign is
written). Yes this breaks backward compatibility but there are a lot
less turn restrictions in OSM than the other restrictions and if the
conditions are not met then the restrictions does not apply so it
shouldn't really be tagged anyway!

== Some Examples ==

  * Example 1: no u-turn restriction for HGVs longer than 6 metres:
  * restriction:hgv = no_u_turn @ (length  6)

  * Example 2: no right turn Monday to Friday 8am to 4 pm:
  * restriction = no_right_turn @ (Mo-Fi 08:00-16:00)

  * Example 3: no left turn except PSV's on Monday to Friday 8am to 4 pm:
  * restriction = no_left_turn
  * except = psv @ (Mo-Fi 08:00-16:00)

This then depreciates the need for day on, etc... tags which I'm not a
fan of - I think it is better to tag what is on the sign e.g. (Mo-Fr
08:00-19:00).

Happy to hear your thoughts.

Rob

p.s. I think it would be nice to see a few more real world examples if
anyone has any photographs (or can remember the conditions).
p.p.s It would be nice to know how many routing software apps are using
these turn restriction relations.



___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging



___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted - turn restrictions ahead?

2012-10-16 Thread Rob Nickerson
I'm still not convinced that you need to introduce a new tag (be that
applies or condition).

1. Although it is difficult to calculate how many turn restrictions have
some form of condition, the numbers can't be that many in comparison to
normal restrictions that apply at all times. Adding the condition data to
the restriction=* tag therefore will not break the majority of
restrictions (they stay unchanged). Similarly adding the information in a
new tag will not break the majority of restrictions.
2. For those restrictions that do have conditional details, if:
  a) you add the details in restriction =  you break the current tagging
and routing software will not know how to interpret it. The routing then
does not include the turn restriction (i.e. no restriction when you want
one), or if
  b) you add the condition to a new tag then the routing software does not
see it (i.e. you have a restriction when you don't want one).
Both cases need the routing software to be updated...
3. ...and that is exactly what a Request For Change (RFC) is for. It is as
the name suggests a communication with your users : Hey guys, we want to
change this to make it better. What do you think? Great, can you update
your systems so that you are ready for the new tags

As you see all proposed ideas will need the end users to change something.
And, in fact, as we currently don't have a way of including conditions, we
may already have incorrect turn restriction in OSM.

_Conclusion_: Whatever we do should keep the tagging as simple and easy to
understand as possible. As we already have some applies type information
in restriction:hgv = no-u_turn, my gut instinct is to include all the
applies type info in this tag. Hence the example *restriction:hgv =
no_u_turn @ (length  6)*.

Regards,
Rob

p.s. Any change to day on, day off, hour on, hour off, will also break the
existing scheme (but is in my opinion worthwhile).
p.p.s. All my previous examples are fictional. More real world photos fully
appreciated.
___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted - turn restrictions ahead?

2012-10-16 Thread Eckhart Wörner
Hi Rob,

Am Dienstag, 16. Oktober 2012, 21:42:56 schrieb Rob Nickerson:
 1. Although it is difficult to calculate how many turn restrictions have
 some form of condition, the numbers can't be that many in comparison to
 normal restrictions that apply at all times. Adding the condition data to
 the restriction=* tag therefore will not break the majority of
 restrictions (they stay unchanged). Similarly adding the information in a
 new tag will not break the majority of restrictions.

Agreed.

 2. For those restrictions that do have conditional details, if:
   a) you add the details in restriction =  you break the current tagging
 and routing software will not know how to interpret it. The routing then
 does not include the turn restriction (i.e. no restriction when you want
 one), or if
   b) you add the condition to a new tag then the routing software does not
 see it (i.e. you have a restriction when you don't want one).
 Both cases need the routing software to be updated...

There is one difference for routers which do not know about conditions: (a) 
lets them calculate illegal routes, while (b) lets them calculate non-optimal 
routes.
Since there are a lot of routers which still fail at certain restrictions, I 
guess we have to take those routers into account. I therefore definitely prefer 
(b).

 As you see all proposed ideas will need the end users to change something.
 And, in fact, as we currently don't have a way of including conditions, we
 may already have incorrect turn restriction in OSM.

We definitely have them. Here are some from a quick search:
http://www.openstreetmap.org/browse/relation/338059
http://www.openstreetmap.org/browse/relation/1735851
(for more, just search through note/fixme tags)

 _Conclusion_: Whatever we do should keep the tagging as simple and easy to
 understand as possible. As we already have some applies type information
 in restriction:hgv = no-u_turn, my gut instinct is to include all the
 applies type info in this tag. Hence the example *restriction:hgv =
 no_u_turn @ (length  6)*.

This would be (a) from above.

Eckhart

___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted - turn restrictions ahead?

2012-10-16 Thread Eckhart Wörner
Hi Rob,

(Putting tagging ML back in To since this might be of interest to other people 
as well, I hope you don't mind.)

 On topic: In your suggesttion you proposed applies = *. What would you do
 with the following:
 
 * day_on, etc...
 * restriction:hgv, etc
 * except
 
 Would you suggest deprecating them? Thus a restriction that applies to only
 hgv's becomes:
 
 restriction = no_u_turn
 applies = no (to switch it off for all transportation modes)
 applies:hgv = yes (to switch it back on for HGVs)

yeah, that's the idea. The implied default would be something like 
applies=yes, applies:foot=no so that by default, turn restrictions apply to 
everyone but pedestrians.

The big advantage of using applies is that from a language POV it is 
immediately clear what is meant, and that the syntax will be *exactly* the same 
as in Conditional Restrictions.

day_on, … should definitely get deprecated, those tags are an unholy mess: 
people mess up off and on; people interpret them them as both from day A time 
B to day C time D and from time B to time D each day between day A and day C.
except can probably stay, it can easily be translated (except=bus translates to 
applies:bus = no)
restriction:hgv should get deprecated / reverted, someone recently sneaked this 
into the wiki page without any discussion.

Eckhart

___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted - turn restrictions ahead?

2012-10-16 Thread Rob Nickerson
On 16 October 2012 23:38, Eckhart Wörner ewoer...@kde.org wrote:

 Hi Rob,

 (Putting tagging ML back in To since this might be of interest to other
 people as well, I hope you don't mind.)

  On topic: In your suggestion you proposed applies = *. What would you
 do
  with the following:
 
  * day_on, etc...
  * restriction:hgv, etc
  * except
 
  Would you suggest deprecating them? Thus a restriction that applies to
 only
  hgv's becomes:
 
  restriction = no_u_turn
  applies = no (to switch it off for all transportation modes)
  applies:hgv = yes (to switch it back on for HGVs)

 yeah, that's the idea. The implied default would be something like
 applies=yes, applies:foot=no so that by default, turn restrictions apply
 to everyone but pedestrians.

 The big advantage of using applies is that from a language POV it is
 immediately clear what is meant, and that the syntax will be *exactly* the
 same as in Conditional Restrictions.

 day_on, … should definitely get deprecated, those tags are an unholy mess:
 people mess up off and on; people interpret them them as both from day A
 time B to day C time D and from time B to time D each day between day A
 and day C.
 except can probably stay, it can easily be translated (except=bus
 translates to applies:bus = no)
 restriction:hgv should get deprecated / reverted, someone recently sneaked
 this into the wiki page without any discussion.

 Eckhart


Hi,

No problem with you moving this back online (I wanted to check that I
wasn't putting words in your mouth first).

Thanks for the clarification. I spotted you had reverted some recent
changes (thanks) but wasn't aware that restriction:hgv was also a recent
addition. I think deprecating these would be step in the right direction
and removes many of the concerns I had with using a new tag (namely you end
up with applies type data within both restriction:hgv =  and
applies=/condition=/whatever the new tag is called).

I suggest we write up a wiki page proposing the changes. That way we can
better track the discussion :-)

Rob

p.s The talk page for Turn Restrictions is stupidly long. Will take a while
to work through it to see if there are any helpful tips in there!
___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted - turn restrictions ahead?

2012-10-16 Thread Tobias Knerr
On 17.10.2012 00:38, Eckhart Wörner wrote:

 restriction = no_u_turn
 applies = no (to switch it off for all transportation modes)
 applies:hgv = yes (to switch it back on for HGVs)
 
 yeah, that's the idea. The implied default would be something like 
 applies=yes, applies:foot=no so that by default, turn restrictions apply to 
 everyone but pedestrians.

It's not a bad solution. With the implied 'yes', I expect you would
repeatedly see errors like this, though:

restriction = no_...
applies:conditional = yes @ 08:00-18:00

This trap would not exist with restriction:hgv=*,
restriction:conditional=* and so on, because there you would not rely on
an implicit default.

Tobias

___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted - turn restrictions ahead?

2012-10-16 Thread Eckhart Wörner
Hi Tobias,

Am Mittwoch, 17. Oktober 2012, 01:31:00 schrieb Tobias Knerr:
 This trap would not exist with restriction:hgv=*,
 restriction:conditional=* and so on, because there you would not rely on
 an implicit default.

I agree, this might be a trap, however, this can be easily caught by editors 
like JOSM (value of applies:conditional will be ignored since there are only 
'yes' values).
Also, I am not fully understanding what the value of restriction:conditional 
would be in your type of tagging. Maybe some complete example with all tags 
present?

Eckhart

___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted - turn restrictions ahead?

2012-10-16 Thread Tobias Knerr
On 17.10.2012 01:43, Eckhart Wörner wrote:
 Am Mittwoch, 17. Oktober 2012, 01:31:00 schrieb Tobias Knerr:
 This trap would not exist with restriction:hgv=*,
 restriction:conditional=* and so on, because there you would not rely on
 an implicit default.
 
 I agree, this might be a trap, however, this can be easily caught by editors 
 like JOSM (value of applies:conditional will be ignored since there are only 
 'yes' values).
 Also, I am not fully understanding what the value of restriction:conditional 
 would be in your type of tagging. Maybe some complete example with all tags 
 present?

You are right about the possibility to catch this in editors, of course.
As for examples, I hope the following two will help:

Example 1:

type = restriction
restriction:conditional = no_right_turn @ 08:00-18:00

Example 2:

restriction = only_straight_on
restriction:psv = none

Basically, use Conditional restrictions syntax on the restriction key
in the same manner as it would be applied to, say, maxspeed or access.

A drawback of this approach is the need to invent a value for no
restriction - I've called it none for the example above.

Tobias

___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted - turn restrictions ahead?

2012-10-16 Thread Eckhart Wörner
Hi Tobias,

Am Mittwoch, 17. Oktober 2012, 01:56:05 schrieb Tobias Knerr:
 As for examples, I hope the following two will help:
 
 Example 1:
 
 type = restriction
 restriction:conditional = no_right_turn @ 08:00-18:00

That sounds like the following might be correct as well (k!):

type = restriction
restriction:conditional = no_right_turn @ (08:00-18:00); only_right_turn @ 
(18:00-08:00)

 restriction = only_straight_on
 restriction:psv = none
 
 Basically, use Conditional restrictions syntax on the restriction key
 in the same manner as it would be applied to, say, maxspeed or access.
 
 A drawback of this approach is the need to invent a value for no
 restriction - I've called it none for the example above.

Okay, then the following does actually make sense:

type=restriction
restriction=none (probably default)
restriction:psv=no_right_turn

Eckhart

___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


[Tagging] Conditional restrictions accepted – turn restrictions ahead?

2012-10-15 Thread Eckhart Wörner
Hi everybody,

apparently Conditional Restrictions has become an approved feature, even though 
nobody mentioned it here. While I still believe that this is a sub-optimal 
solution (and still nobody has passed the test I created earlier in the 
discussion, even though a lot of people tried), I have now abandoned the 
Extended Conditions proposal.

I guess the next step is to adopt conditional restrictions for turn 
restrictions, to achieve some consistency.
One possibility would be applies as basekey, and then conditional restriction 
tagging like
applies:bus=no
applies:hgv:conditional = no @ (length12)

(the implied default being applies=no, applies:vehicle=yes)

Any volunteers? :-)

Eckhart

___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging


Re: [Tagging] Conditional restrictions accepted – turn restrictions ahead?

2012-10-15 Thread Eckhart Wörner
Hi Martin,

Am Dienstag, 16. Oktober 2012, 02:18:30 schrieb Martin Koppenhoefer:
  apparently Conditional Restrictions has become an approved feature, even 
  though nobody mentioned it here. While I still believe that this is a 
  sub-optimal solution (and still nobody has passed the test I created 
  earlier in the discussion, even though a lot of people tried), I have now 
  abandoned the Extended Conditions proposal.
 
  I guess the next step is to adopt conditional restrictions for turn 
  restrictions, to achieve some consistency.
 
 
 are you sure that we need this? In real life I only met these in cases
 where they would have already been implicit in OSM (i.e. in addition
 to the signs limiting access to a road there was a turn_restriction
 sign to advert the driver in advance but this wasn't restricting more
 than what the road access permissions already did).

Just for the start:
• there are some no left turn restrictions in Munich that only apply during 
rush hour (i.e. specified intervals on a sign) to improve traffic flow, with 
day_on… not being sufficient
• there are some no u-turn restrictions in Augsburg that only apply to 
vehicles longer than 6 metres
• there has been a no right turn restriction near Neusäß that only applied 
during night time and holidays (got removed a few years ago) to calm down a 
residential road

None of these are representable implicitly or with what we have right now, and 
those are just a few random examples off the top of my head; I have seen a lot 
more of them.

Eckhart

___
Tagging mailing list
Tagging@openstreetmap.org
http://lists.openstreetmap.org/listinfo/tagging