Let’s take a parking lot where you have to pay a parking fee between 8:00 and 18:00 (“during the day”). At other times (“at night”), you can park for free. How would we tag this?
fee:conditional = yes @ (08:00-18:00)fee = yes+fee:conditional = no @ (18:00-08:00)- Something else
For comparison, let’s take this second case, which is typical in my city: parking fees Monday through Friday from 9:00 to 20:00 and Saturdays from 9:00 to 18:00; free at other times. How would we map this?
fee:conditional = yes @ (Mo-Fr 09:00-20:00; Sa 09:00-18:00)fee = yes+fee:conditional = no @ (Mo-Fr 00:00-09:00,20:00-24:00; Sa 00:00-09:00,18:00-24:00; Su)- Something else
When mapping conditional time restrictions, I often come across an issue that I/we encountered a few years ago when revising the street parking schema, where we proposed and documented the variant fee=yes + fee:conditional=no @ (inverted_time). This “inverted” time specification was intended to allow data users who do not interpret conditional restrictions to nevertheless conclude that “parking fees apply here” based solely on fee=yes.
However, this leads to complicated time specifications when the time periods have to be reversed or leads to “artificial” and unintuitive tagging constructs – just to make tagging convenient for data users that don’t care about conditional restrictions.
In an older thread, for example, variants such as fee = yes + fee:conditional = no @ 24/7; yes @ (08:00-18:00) were discussed. But it was also noted that such “tricks” bend the conditional restriction scheme too far just to satisfy inadequate data evaluators. On top of that, the statement fee=yes is not correct in itself if it does not even apply half the time.
Besides fee, this issue also applies to other values, of course. For example, the wiki page on maxstay mentions this situation using the example maxstay:conditional = 1 hour @ (08:00-18:00) vs. maxstay = 1 hour + maxstay:conditional = no @ (18:00-08:00), "depending on whatever it is better for simple data consumers to show sometimes wrong “no maxstay” or sometimes wrong “1 hour maxstay”.
The typical case in my city (and certainly many others) is, by the way, a fee from Monday to Friday during period X, on Saturday during period Y, and otherwise it is free. There are dozens of different parking zones with many different times. If there are also times in between when – e.g., due to a loading zone – no fees are charged for a few hours during the day, the “artificial” variants quickly cause confusion.
Meanwhile, I tend to only use the “simple” fee:conditional = yes @ (...) variant. Evaluators that cannot handle this are simply (still) incomplete. What do you think?
