Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Colin Smale

Hi Eckhart,

On 15/06/2012 01:08, Eckhart Wörner wrote:

Hi Colin,

Am Freitag, 15. Juni 2012, 00:24:18 schrieb Colin Smale:

"If I were king" I would be looking for a system that:
* makes common cases easy

Extended conditions: ☑


* makes complex cases possible

Extended conditions: ☑


* makes each rule as standalone as possible (one sign -> one rule)

Extended conditions: ☑


* does not rely on the user's fluency in English grammar (knowledge of a
set of specific words, e.g. tags and functions, is fine)

Extended conditions: ☑


* uses grammatical constructions which are familiar to most people, or
easily learnt

Extended conditions: ☑


* has a grammar allowing for a user-extensible function repertoire

Extended conditions: ☑


* allowing user-defined functions to be stored in an external file
(accessible at entry and run time)

I'm not sure I get that one, but it sounds to me like you're trying to mix 
specification and implementation, which is just a bad idea.
You might be right about this. Of course it would be best to only use 
the specification at entry time. What I had in mind was the ability to 
share functions with the world without having them replicated millions 
of times through the database, which is what will happen if you put a 
"function" in a tag so you can reuse its value. Using an external file 
(i.e. not in the database - analogous to how mapnik/mkgmap style sheets 
are handled) will also not impose any standards on anybody so as not to 
anger a significant majority of OSM users. Editors can pick the files up 
dynamically and use what they choose to use. Maintaining a strict 
division between specification and implementation would require some 
kind of packaging. Languages like perl and python allow pre-compiled 
packages, but they also allow you to share scripts and execute them 
directly.



* fits comfortably with the key-value-pair paradigm of OSM

Extended conditions: ☑


* can produce a result in a variety of data types including at least
boolean, number, string

Please provide a use case.
The bulk of the discussion up to now has been about "access" type tags, 
producing a boolean value: can I or can't I use this road under the 
given conditions. Why limit it to boolean? Why not address the use case 
of "what is the maximum speed for vehicle X under these conditions" 
(returning a number) or "what are the opening hours of this amenity on a 
given date" (returning a string which can be parsed as a date, or 
returning an object containing some more date objects if you want to go 
further)?



* can use the value of other tags as variables

That's just a desaster waiting to happen.

Why do you think that would be such a disaster?



* can use other variables supplied at run time (e.g. weather, time,
vehicle type)

Extended conditions: ☑


* supports the usual comparision and numeric operations

Which "usual" comparison operations? '12 knots' < '35 mph' ?
The comparison operator here is "<" which is definitely "usual". Thanks 
for adding "unit conversions" to the list!



* supports string concatenation operation

name = (lang == 'de' ? 'Bahnhof von ' : 'Gare de ') + 'Lyon'
Please provide a use case.
Well, this specific example is already adequately covered in current 
tagging practise (name:fr=Gare de Lyon). It's more for completeness - if 
it wasn't there, I am sure someone will miss it. I wouldn't like us to 
paint ourselves into a corner by only supporting boolean operations.


I wonder if this discussion could also be useful to the "lanes" 
discussion in some way? Use cases for routers like "how many lanes does 
this road have", "am I allowed in lane 2" etc etc also need to be 
"dynamic" and show a lot of similarity to the basic road-level access 
business.




Eckhart

___
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] reservoir_type=tailings

2012-06-14 Thread Brad Neuhauser
I've only heard tailings used to refer to the waste from mining.

Regarding wastewater treatment, I'm assuming other reservoir_types
discussed were things like sedimentation and aeration?

Brad

On Thu, Jun 14, 2012 at 7:39 AM, Martin Koppenhoefer  wrote:

> Today we had a discussion on talk-de how to map the different pools
> and reservoirs in a wastewater treatment plant. One of the tags that
> came up was reservoir_type=tailings, referenced from this page:
> http://wiki.openstreetmap.org/wiki/Tag:landuse%3Dreservoir
>
> It is not completely clear, if this tag really was intended for
> specific baisins inside a wasterwater treatment plant, or if this is a
> feature in conjunction with mining (
> http://wiki.openstreetmap.org/wiki/Proposed_features/Mining ). Maybe
> we should be more specific here in the wording? IMHO we should try to
> find a definition to put into the wiki which is in line with current
> use of this tag in OSM.
>
> I also noticed that NHD uses the word tailings pond for the SHP keys
> 43604 and 43605:
> http://wiki.openstreetmap.org/wiki/National_Hydrography_Dataset
> for Reservoir (Disposal-Tailings Pond Earthen) and Reservoir
> (Disposal-Tailings Pond Unspecified)
>
> Cheers,
> Martin
>
> ___
> 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] Reviving the conditions debate

2012-06-14 Thread Eckhart Wörner
Hi Colin,

Am Freitag, 15. Juni 2012, 00:24:18 schrieb Colin Smale:
> "If I were king" I would be looking for a system that:
> * makes common cases easy

Extended conditions: ☑

> * makes complex cases possible

Extended conditions: ☑

> * makes each rule as standalone as possible (one sign -> one rule)

Extended conditions: ☑

> * does not rely on the user's fluency in English grammar (knowledge of a 
> set of specific words, e.g. tags and functions, is fine)

Extended conditions: ☑

> * uses grammatical constructions which are familiar to most people, or 
> easily learnt

Extended conditions: ☑

> * has a grammar allowing for a user-extensible function repertoire

Extended conditions: ☑

> * allowing user-defined functions to be stored in an external file 
> (accessible at entry and run time)

I'm not sure I get that one, but it sounds to me like you're trying to mix 
specification and implementation, which is just a bad idea.

> * fits comfortably with the key-value-pair paradigm of OSM

Extended conditions: ☑

> * can produce a result in a variety of data types including at least 
> boolean, number, string

Please provide a use case.

> * can use the value of other tags as variables

That's just a desaster waiting to happen.

> * can use other variables supplied at run time (e.g. weather, time, 
> vehicle type)

Extended conditions: ☑

> * supports the usual comparision and numeric operations

Which "usual" comparison operations? '12 knots' < '35 mph' ?

> * supports string concatenation operation

name = (lang == 'de' ? 'Bahnhof von ' : 'Gare de ') + 'Lyon'
Please provide a use case.

Eckhart

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Eckhart Wörner
Hi martinq,

Am Donnerstag, 14. Juni 2012, 22:19:06 schrieb martinq:
> and many other variants. It is almost impossible to tag it wrong.

I'm sorry, but every time I've heard a statement similar to "you cannot get it 
wrong" it just boiled down to "the computer cannot tell you that it's wrong". 
This is the price you pay for mimicking human language, and I'm not sure I'm 
willing to pay that price.

> However, the author struggled with the same basic problem, e.g. there is 
> a (non-intuitive) difference between using ',' and ';' now.
> 
> Also, except for a basic time restrictions it is impossible to tag and 
> also difficult to read these expressions. Clearly powerful, but too 
> compressed for casual mappers. Can you read this?
> 
> Dec 25-Su-28 days - Mar Su[-1]: 22:00-23:00

I cannot read it for a simple reason: the specification does not tell the 
meaning of ":" inside that expression. The ":" is defined by an implementation, 
which just shows the problem of not standardizing properly.
However, I believe we should not make time domains part of this discussion at 
all.

> open:cond = yes if time is 10:00-18:00

Your example suggests that you have a problem with defining what the "if" 
actually means:
Does "open:cond=yes if time is 10:00-18:00" tell
a) open from 10:00-18:00, not open from 18:00-10:00 or
b) open from 10:00-18:00?

> 2) Value vs. key
> I think value side conditions would be more intuitive, because the value 
> depends on the condition.

I think key side conditions would be more intuitive, because the validity of 
the key depends on the condition. ;-)

> Also, it easier to filter the things in the database, especially if 
> left/right & forward/backward is also mixed into the conditions (or 
> should we simple go the next step and see them as condition too?).

The Extended Conditions proposal already treats forward/backward as conditions.

> Normal form is nice to parse - but do you think everybody can map it?
> Non-normal form is not so nice for machines - thus I cannot promise that 
> I achieve to parse it - and the discussion is theoretical until I can 
> prove it (with reference implementation).

Except that this kind of normal form is the way signs are written normally 
(that's why it's called normal form ;-) ), see 
http://wiki.openstreetmap.org/wiki/File:Length_and_time_restriction_2.jpg for 
an example:
access:motor_vehicle:(10:00-18:00)=no (first sign)
access:motor_vehicle:(10:00-18:00):(length<5)=yes (second sign)

(How would you tag this?)

I'm sure that 95 per cent of the time you won't get more than one tag per sign.

> I also see no reason why an application may not be able to treat this as 
> equivalent:
> hgv = yes(shortcut for:)
> access:hgv = yes   (which is a valid expression also in the proposed 
> extension)
> access:cond = yes [hgv]

The Extended Conditions proposal treats the first two as equivalent.
But why do you want to mix two ways of tagging (second + third)? Just for fun?

Eckhart

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Colin Smale
Martin, if it walks like a duck and quacks like a duck, then it had 
better be a duck... What I mean with this, is if the grammar is so 
English-like such that people are tempted to use constructions which are 
not (or not quite) supported by the grammar, or if the way it works is 
contrary to how the English language would interpret it, then "errors 
will occur". Plus, of course, that the majority of users will not have 
English as their first language, and we have to make this accessible to 
the man-in-the-street and not allow it to become so obfuscated that only 
PhD's need apply.


Bottom line: I question whether making it kind of pseudo-English-like is 
the right goal to aim at. A simple grammar which is (mis)understood 
equally over the whole world might be better. Your post below is full of 
examples supporting my point. The grammar should be derived from what 
you are trying to model, just as a (descriptive) grammar for English is 
reverse-engineered from the way the language is used. If you start with 
the premise that the answer must be expressed in ANTLR and shouldn't 
include brackets, that's putting the cart before the horse. Please feel 
free to carry on with your experimentation to see if you can make a 
grammar on this basis, but remember that humans have to read and write 
this stuff (which does not detract from my earlier assertion that 
machine-readability is a slightly higher priority than 
human-readability) and they often need clear boundaries to make the most 
of their creativity. If you put a child in the middle of an "infinitely 
large" field with no boundaries obvious to the child, they won't move 
far from where you put them. If you put the same child in a large fenced 
enclosure, they will explore every inch. Give a child a paintbrush in 
front of a huge blank wall and you will get a small picture. Mark out a 
"frame" on the wall and say "paint in this" and it will all get used. 
Give a mapper no limits on tagging, and many things will not get tagged 
(because of inner doubts about how to do it). Give the same mapper a 
menu of 100 tags which can be used, and he will use many more of them.


> Human language is sadly not very precise: "except taxis AND bicycles" 
does not mean, you must be in a vehicle that is both (it means if not 
taxis AND if not bicycles),


The human language here is extremely precise to any fluent 
English-speaker. It means what it says. It's the IT-based interpretation 
of the word AND which leads to the grammar misinterpreting the 
intention. Think of the expression:


a * b + c * d

To the "untrained eye" this may appear ambiguous or be interpreted 
differently to how a compiler will interpret it. Nonetheless it's valid 
code and no compiler will complain. However style-wise there is a school 
of thought that such constructions are unsafe because a "bug" caused by 
precedence problems is difficult to find by a quick inspection. My 
mandating the use of parentheses to make the programmer's intentions 
clear to a code-reviewer helps to detect bugs early, and has the 
desirable side-effect of making the programmer think just a little bit 
harder about how it's going to work out. Prevention is better than cure: 
anything making it less likely that "coding errors" make it into the 
database is most definitely a Good Thing To Have. Grammars which allow 
"just about everything" are a pain because they frustrate this error 
checking and delay error detection considerably, often relying on a user 
to report an anomaly, triggering all kinds of incident management and 
problem management processes and costing thousands of times more to fix 
than if the input validation had stopped the error occurring in the 
first place.


"If I were king" I would be looking for a system that:
* makes common cases easy
* makes complex cases possible
* makes each rule as standalone as possible (one sign -> one rule)
* does not rely on the user's fluency in English grammar (knowledge of a 
set of specific words, e.g. tags and functions, is fine)
* uses grammatical constructions which are familiar to most people, or 
easily learnt

* has a grammar allowing for a user-extensible function repertoire
* allowing user-defined functions to be stored in an external file 
(accessible at entry and run time)

* fits comfortably with the key-value-pair paradigm of OSM
* can produce a result in a variety of data types including at least 
boolean, number, string

* can use the value of other tags as variables
* can use other variables supplied at run time (e.g. weather, time, 
vehicle type)

* supports the usual comparision and numeric operations
* supports string concatenation operation

Colin

On 14/06/2012 22:19, martinq wrote:

Hi,

sadly this discussion was restarted before I could establish a 
reference implementation for a less technical way of tagging 
conditional values (for those who are interested: it is a ANTLR 
grammar, hopefully with built-in evaluation code). The reference 
imp

Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread martinq

Hi,

sadly this discussion was restarted before I could establish a reference 
implementation for a less technical way of tagging conditional values 
(for those who are interested: it is a ANTLR grammar, hopefully with 
built-in evaluation code). The reference implementation is for me a key 
for acceptance, because the less technical to tag, to more difficult to 
parse. And we all agree that it should be possible to parse it - but not 
necessarily easy.


Objective of my proposal: As less rules as possible - as close as 
possible to the sign-posted information.


The proposal page does not contain a lot of information, because I adapt 
the "grammar" based on what is feasible. Sadly cannot spend a lot of 
time in continuing with the reference my implementation at the moment.



I will comment based on what I have already figured out:

> - "Or" operators. "Maxspeed is 80 if it's wet or Sunday" can be
> rephrased as "Maxspeed is 80 if it's wet. Maxspeed is 80 if it's
> Sunday." IOW, these can be modelled by using two tags instead of one.

This is in fact the biggest challenge in the current state of my parser 
(in combination with fuzzy & context related precedence). Human language 
is sadly not very precise:
"except taxis AND bicycles" does not mean, you must be in a vehicle that 
is both (it means if not taxis AND if not bicycles), "except HGV AND 
weight>7.5t" is by most humans interpreted differently (if not (HGV AND 
weight>7.5t). There are lot of other examples for amgiguities, eg. 
"except Fr, 10:00-18:00" does not mean complete Friday and the other 
days, etc.


However, in this case the preliminary parser has no problem to 
understand following different expressions:


maxspeed:cond = 80 if wet or Sunday

Easy tagging, isn't it?

But the grammar is flexible. Instead of 'if' I also support 'when' and 
'[' ']' (I am not sure about the brackets yet - they are clearly not as 
intuitive as 'if' or 'when').

maxspeed:cond = 80 [wet]
maxspeed:cond2 = 80 [Su]

Also understood by the parser:
maxspeed:cond = 80 when weekday is Sunday and condition is wet
or
maxspeed:cond = 80 weekday=Su or condition=wet
or
maxspeed:cond = 80 [wet]; 80 on Sundays

and many other variants. It is almost impossible to tag it wrong.


> - Brackets for expressions. If we limit ourselves to just "and"
> operators, evaluation order doesn't matter.


This is something I really want to avoid. Brackets for precedence 
purposes are a purely technical artefact and I not seen them on the 
signs with the information we want to tag...


However, the *precedence* is the major problem in the current parser.
Thus I don't think I can write a parser without any rule helping the 
parser and restricting the mappers. But brackets will just be introduced 
if I have no other option.



>> Pseudo-Javascript: (!is_motor_vehicle(vehicle_type)) ||
>> ((vehicle_type='hgv')&&  (time<'10:00' || time>'20:00')&&
>> intention='loading')

== side note ==
A assume, this is access related.
Side-note: The current access tags are IMO just abbreviations, nowadays 
we would write instead of


hgv=yes --> access:hgv=yes.

With the conditional value proposal it could be tagged as

access=yes if hgv

maxweight=x is an example for (vehicle) access = no if weight>x, even 
though it can also be a non-conditional property of an object (e.g. a 
bridge may have a intrinsic maximum acceptable weight, but we don't have 
to go into details now).

== side note end ==


I interpreted your code as your example as

access=yes
access:cond1 = no if motorized
  or "no if motor vehicle" or "no if vehicle is motorized"
access:cond2 = delivery if hgv from 10:00-20:00
  or "delivery if vehicle is a hgv and time is 10:00-20:00
  or many variants more...

If the evuation part of my parser works (yet I still working on the 
grammar), I may also be able to create a kind of "normalized" JavaScript 
expression out of the "fuzzy" human tags [but I don't have implemented a 
normalized attributed tree yet].



> - defining a syntax for time intervals (opening_hours)

By using on/off, this is already the first tag which moved the condition 
into the value. By using off/on, it reads like


off if ...
on if ...

However, the author struggled with the same basic problem, e.g. there is 
a (non-intuitive) difference between using ',' and ';' now.


Also, except for a basic time restrictions it is impossible to tag and 
also difficult to read these expressions. Clearly powerful, but too 
compressed for casual mappers. Can you read this?


Dec 25-Su-28 days - Mar Su[-1]: 22:00-23:00

In this case I would stick to human readable expressions like "last 
Sunday in March" and put the load to evaluate it onto the 
parser/application.



> - defining a subset hierarchy of vehicle categories (such as
> "motor_vehicle" including "hgv" as a subset)

Applications must know which vehicle you drive to evaluate certain 
conditional values (mainly access, speed limits and also parking 
conditions). Unlike the current acc

[Tagging] access agricultural, WAS Re: Reviving the conditions debate

2012-06-14 Thread Martin Koppenhoefer
2012/6/14 Philip Barnes :
> The other usage of the term agricultural is the type of vehicle.
>
> In the UK agricultural vehicles are prohibited on motorways due to their
> slow speeds. But a farmer could use his Land Rover on a motorway as it is a
> car being used for agriculture.


Yes, unfortunately instead of discussing the issue there was repeated
wiki fiddling on this issue. I tried to dig into this and am
presenting the results here:
agricultural was introduced 25 Dec. 2007, but without further definition:
http://wiki.openstreetmap.org/w/index.php?title=Key%3Aaccess&action=historysubmit&diff=66244&oldid=14009

on 4 Feb. 2009 there was a definition added: *
{{Tag|access|agricultural}} ''Only for agricultural traffic.''
http://wiki.openstreetmap.org/w/index.php?title=Key:access&diff=next&oldid=218932

(this might have been intended as a use condition, because otherwise
it would have been "agricultural vehicle", but actually the wiki was
still not very clear, because in the following time it listed use
classes (hazmat, emergency, hov) together with vehicle classes
(motor_vehicle, hgv). This is also reflected by the diagram that was
added on 23 Feb. 2009:
http://wiki.openstreetmap.org/w/index.php?title=Key:access&diff=prev&oldid=231676
and amended on 11 March 2009:
http://wiki.openstreetmap.org/w/images/e/e9/Access_modes.png

on 20 Aug 2009 there was a contradiction introduced, agricultural was
still defined as agricultural traffic but the same time lower in the
page there was added this (still there was no distinction between use
cases (hazmat, emergency) and vehicle types): agricultural=*
(agricultural motor vehicles, e.g. tractors, that have additional
restrictions, e.g. a 25km/h speed limit). The diagram was replaced.

5 days later this was relativated by separating "by use" and vehicle
classes, keeping the class definition for agricultural in parenthesis
though:
http://wiki.openstreetmap.org/w/index.php?title=Key:access&diff=prev&oldid=327300

This situation was kept until 5 Jan 2012, when "agricultural" was
moved from "by use" to "double tracked vehicles".
http://wiki.openstreetmap.org/w/index.php?title=Key%3Aaccess&action=historysubmit&diff=720329&oldid=720323
Which is where we are now. The beginning of the page still states that
agricultural is a tag for agricultural traffic.

How can we resolve this? It seems obvious that we need either 2 tags
for agricultural (according to the legislation, either a vehicle class
or a use case is intended), or we accept that the same tag has
different meanings in different legislations/countries. Personally I
am in favour of an additional tag. We could also have 2 new tags:
"agricultural_use" and "agricultural_vehicle" to make it unambiguous,
and to deprecate the unclear agricultural.

What do you think?

cheers,
Martin

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Philip Barnes
The other usage of the term agricultural is the type of vehicle.
In the UK agricultural vehicles are prohibited on motorways due to their slow 
speeds. But a farmer could use his Land Rover on a motorway as it is a car 
being used for agriculture.
Phil

--

Sent from my Nokia N9



On 14/06/2012 14:22 Martin Koppenhoefer wrote:

2012/6/14 Colin Smale :
> each jurisdiction. I don't expect there to be total agreement about
> "agricultural" either. There are signs for "no agricultural vehicles", which
> in my experience refer to the type of vehicle and not what it is being used
> for at that moment. But this again may vary per jurisdiction. If a farmer
> uses his combine harvester to go to the shop for some sugar, is that
> "agricultural"?



in Germany the usual occurence of agricultural is positive:
motor_vehicle=no, agricultural=yes (additional sign mostly on tracks
to allow agricultural traffic, usually including forestal traffic).
This is referring to the intention of the traffic. If a farmer uses a
bike or a motorbike to go to his field, it would be agricultural,
while your example of the combine harvester going to buy cigarettes
would not qualify (of course this is theoretical, because he could
always pretend he was working when he takes his combine harvester to a
bbq party on the field).


cheers,
Martin

___

Tagging mailing list

colin.sm...@xs4all.nl
http://lists.openstreetmap.org/listinfo/tagging



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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Martin Koppenhoefer
2012/6/14 Colin Smale :
> each jurisdiction. I don't expect there to be total agreement about
> "agricultural" either. There are signs for "no agricultural vehicles", which
> in my experience refer to the type of vehicle and not what it is being used
> for at that moment. But this again may vary per jurisdiction. If a farmer
> uses his combine harvester to go to the shop for some sugar, is that
> "agricultural"?


in Germany the usual occurence of agricultural is positive:
motor_vehicle=no, agricultural=yes (additional sign mostly on tracks
to allow agricultural traffic, usually including forestal traffic).
This is referring to the intention of the traffic. If a farmer uses a
bike or a motorbike to go to his field, it would be agricultural,
while your example of the combine harvester going to buy cigarettes
would not qualify (of course this is theoretical, because he could
always pretend he was working when he takes his combine harvester to a
bbq party on the field).

cheers,
Martin

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


[Tagging] reservoir_type=tailings

2012-06-14 Thread Martin Koppenhoefer
Today we had a discussion on talk-de how to map the different pools
and reservoirs in a wastewater treatment plant. One of the tags that
came up was reservoir_type=tailings, referenced from this page:
http://wiki.openstreetmap.org/wiki/Tag:landuse%3Dreservoir

It is not completely clear, if this tag really was intended for
specific baisins inside a wasterwater treatment plant, or if this is a
feature in conjunction with mining (
http://wiki.openstreetmap.org/wiki/Proposed_features/Mining ). Maybe
we should be more specific here in the wording? IMHO we should try to
find a definition to put into the wiki which is in line with current
use of this tag in OSM.

I also noticed that NHD uses the word tailings pond for the SHP keys
43604 and 43605:
http://wiki.openstreetmap.org/wiki/National_Hydrography_Dataset
for Reservoir (Disposal-Tailings Pond Earthen) and Reservoir
(Disposal-Tailings Pond Unspecified)

Cheers,
Martin

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Tobias Knerr
On 14.06.2012 13:30, Colin Smale wrote:
>> motor_vehicle:forward:(Mo-Fr 16:00-18:00) = agricultural
> At first glance this looks like a motor vehicle going "forward" between
> those times is considered "agricultural". It doesn't feel very
> intuitive, based on the established key=value paradigm.

Putting a group of users into the value is not my own invention, that's
established tagging. Mappers are using things like
motor_vehicle=agricultural or access=destination right now.

Look at the distribution of values of motor_vehicle, for example:
http://taginfo.openstreetmap.org:8001/keys/motor_vehicle#overview

I agree that it is not a particularly nice solution, and you could of
course split this into separate tags with "yes" and "no" as the values.
But I don't think it's useful to exclusively focus on the one thing that
is not new at all when discussing an example.

> motor_vehicle=yes
> motor_vehicle:forward:(Mo-Fr 16:00-18:00)=no
> motor_vehicle:backward:(Mo-Fr 06:00-09:00)=no
> hgv=yes
> agricultural=yes

Unfortunately, this doesn't work with the conflict resolution approach
currently defined by "Extended Conditions". These state that the "most
specific" rule counts (in terms of boolean logic, the one that implies
the others). In this case, there's sometimes no "most specific" rule.
When you compare

motor_vehicle:backward:(Mo-Fr 06:00-09:00)=no
hgv=yes

then for an hgv at 08:00, the time is more specific on the first rule,
but the vehicle class is more specific on the second. This means that
the most restrictive value is relevant, which is "no".

Tobias

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Colin Smale

On 14/06/2012 13:00, Tobias Knerr wrote:

On 14.06.2012 08:38, Colin Smale wrote:

My concern with this is that it may become unwieldy and cumbersome with
anything beyond fairly trivial cases such as your maxspeed example.

For me, the goal is to make the common cases *easy*, and the rare
complex cases *possible*.
Difficult to argue with that! The second part makes a flexible grammar 
essential, as you cannot predict what these rare complex cases might 
look like.
It's far easier to build a visual editor if you only need to support a 
limited subset of boolean logic. For example, the "filter" editor in 
my mail client (Thunderbird) is limited to a subset of boolean logic 
as well, for the same reason.
Sure, it's limited to match all/match any and a fixed list of operators. 
But Thunderbird is not trying to represent something in the physical 
world here, only to help the user.



Here's a test case. No motor vehicles mon-fri between 1600-1800 except
agricultural vehicles and good vehicles *in this direction*. Going the
other way the sign is similar but the times are between 0600 and 0900.

What would this look like using only AND operators?
motor_vehicle:forward:(Mo-Fr 16:00-18:00) = agricultural
At first glance this looks like a motor vehicle going "forward" between 
those times is considered "agricultural". It doesn't feel very 
intuitive, based on the established key=value paradigm.


I thought of the following, based on the premise that the class 
"motor_vehicle" can be partially overridden by a subclass such as hgv or 
agricultural:

motor_vehicle=yes
motor_vehicle:forward:(Mo-Fr 16:00-18:00)=no
motor_vehicle:backward:(Mo-Fr 06:00-09:00)=no
hgv=yes
agricultural=yes

Colin


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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Ilari Kajaste
Hi fellow mappers!

Disclaimer: I'm a relative newbie to OSM, so feel free to take my
opinions as such. (I'm not a newbie to usability,
data structure definitions or programming though.)

On Wed, 13 Jun 2012, Colin Smale wrote:
> Whatever syntax is used, the *primary* requirement is that it is "usable" by 
> programs - editors, renderers,
> routers etc. followed by a secondary requirement that it be understood by 
> humans. If the human aspect was
> primary, then using a free-text field would be enough as humans are capable 
> of incredible inference - something
> which "normal" computers still find challenging.

I don't understand your logic here. If the human aspect was the *only*
requirement, *then* a free-text field would
be enough. Nothing to do with it being a primary requirement, since
nobody was saying the tags shouldn't *also* be
computer readable - that's why they're kept in a structured format
instead of free text.


I consider human understandability to be primary. That means, human
understandability without any assisting
programs (other than maybe direct key/value semantic reference lists
for some conformity).

I consider computer readability to be secondary. It being "secondary"
does *not* make it *unimportant*. It is still
a requirement, just like the human understandability.

Why? Mostly becuse OSM seems to be built in that way. Moving away from
that looks to me to be a *major* deviation.
It's of course still possible it is the right way to go, but it's not
how OSM is right now. And it seems to work
for OSM.-


What I like about the "Extended conditions" proposal of simply having
and-conditions separated by a colon (":") is
that it doesn't try to be anything complex that requires you to read
any documentation to understand it. You can
learn it completely by example, fast. It also matches with the current
way of specifying special conditions
(subtags) (note that subtags are used for other purposes as well). It
really seems to be the OSM way of doing
things.

The only problem is that it does push data into the keys, but I don't
see a good way out of that - bloating the
value seems like a bad suggestion as well, and having the


As to the conditions vs. subtags differentiation - I don't see there
being that big of a difference between them. I
do understand the difference, though, but becuse it's often not a
clear and intuitive issue, separating conditions
from subtags probably shoudn't be done. Introducing a new rather
non-intuitive character ("?") to mark a difference
that isn't in many common context very clear will, in my opinion,
cause too much confusion compared to the
benefits.


> Editors can be extended with an expression builder and for advanced users 
> they can be taught to check the syntax
> before comitting a change.

But would this actually happen? Would we get good, understandable
expression builders in editors, and would anyone
use them? I do doubt it.

Having complex laguage that relies on editor support (for most users)
doesn't seem like a realistic approach, from
what I've seen. But I admit I may be wrong here, since I'm not all
that familiar with OSM development history.

> Next point is that we really shouldn't be spending all our time discussing 
> which delimiter to use and other
> similar aspects of the physical representation of the data.

That's only if we abandon human intuitive understandability. The
physical representation does matter if we want
humans to type in these conditions. That's why it's being discussed.


But if we *do* go into the direction that some tags (these conditions,
then probably lanes too) are written as
computer-intuitive programmer-understandable instead of
humanmapper-intuitive computer-understandable then I would
suggest these tags or values could always be prefixed with something
(eg. "special:", "code:", "computer:",
"extended:"). That way editors could know to only display them via a
special editor, instead of plaintext (unless
requested by user).

I really would hate to see xml, json or anysuch jumping at a mapper's
eyes in some tag/value list - that might have
a deterring effect on editing.

--
    - Ilari Kajaste -

E-Mail: ilari.kaja...@iki.fi
WWW: http://iki.fi/ilari.kajaste

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Colin Smale

On 14/06/2012 12:53, Flaimo wrote:
this notation has the same flaw as the current access scheme. it mixes 
transportation modes and user roles. "motor_vehicle" is a 
transportation mode. "agricultural" is a user role. not everywhere on 
this planet "agricultural" automatically means "motor_vehicle". that 
is what the 1.5 proposal tries to solve.


I would say that according to current usage motor_vehicle is a class of 
vehicles. The tagging is intended to represent restrictions enacted by 
laws and indicated by signs. A large proportion of the countries in the 
world adhere more-or-less to the UN (ECE?) standards for road signs, 
which is why the sign for "no motor vehicles" is so ubiquitous. There 
are minor variations in the exact definition of "motor vehicle" for 
these purposes (does it include mopeds? mowing machines?) but within a 
"traffic law jurisdiction" its definition will be consistent. There have 
been many debates on whether or not to document OSM "defaults" or 
"assumptions" for each jurisdiction. I don't expect there to be total 
agreement about "agricultural" either. There are signs for "no 
agricultural vehicles", which in my experience refer to the type of 
vehicle and not what it is being used for at that moment. But this again 
may vary per jurisdiction. If a farmer uses his combine harvester to go 
to the shop for some sugar, is that "agricultural"?


Colin



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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Peter Wendorff

Hi.
I'm a little bit afraid about the discussion here and would like to 
point out that a key IMHO should be different than a value.
I like the idea of "namespaces" for keys, to be able to group tags that 
belong together, but I think, even namespaced stuff should belong "keylike".


A key access:weight is okay IMHO and can contain weight-related access 
restrictions.

access:length, access:time and so on - okay.

but the specific weight a restriction belongs to should be part of the 
value, not the key.


It's true: mappers are free to introduce new keys where these are 
necessary or wanted; but i oppose to encourage the definition of 
placeholder-keys for arbitrary key-strings following a pattern. Let's 
code these to the value.


if the KEY structure for access keys get's that complicated alone, the 
problem isn't any more users who don't know how to code the value, but 
how to code the key itself.
Let's keep keys well defined and as simple as possible (while staying 
well defined of course) to keep at least the task of "ignoring 
non-understandable tags" easy.


regards
Peter

Am 13.06.2012 14:35, schrieb Eckhart Wörner:

Hi everybody,

I want to revive the discussion on how to tag restrictions that depend on 
certain conditions. My idea is to finalize the proposal described in 
http://wiki.openstreetmap.org/wiki/Proposed_features/Extended_conditions_for_access_tags
 and finally accept it.

The reasons for picking this proposal:
* The proposal mostly describes syntax that is already used for tagging, e.g. a 
maxspeed in a certain direction is almost always tagged as maxspeed:forward, 
maxspeed:backward
* The proposal is intuitive and simple to use: the key of a tag is the base tag 
+ a set of conditions that all have to be true for the key to apply (i.e. 
logical AND).
* The proposal is complete: every logical formula of conditions can be 
expressed in it (technically, it's pretty similar to disjunctive normal form).
* The proposal is consise: it follows the pattern most dominant with road 
restrictions, namely overriding general restrictions with special restrictions. 
It normally uses no more than one tag per sign.
* The proposal is extensible: the set of conditions is not fixed and can be 
extended to new conditions. It is possible to set a sane default for new 
conditions that are experimental.
* The proposal is easily implementable: I implemented it in a prototype already.

The only real negative aspect that has been mentioned until now:
* the proposal puts a lot of information into keys and theoretically allows for an 
unlimited set of keys. (The reality however shows that those keys tend to be the same, 
e.g. taginfo shows no less than 335 elements with key "maxspeed:(22:00-06:00)").

Competing proposals:
* http://wiki.openstreetmap.org/wiki/Proposed_features/access_restrictions_1.5 - in my opinion a 
horrible and incomprehensible syntax with arbitrary distinctions, taginfo revealed almost no uses 
(for example, "maxspeed:hgv:wet" in the Extended Conditions proposal above is 
"access:lgv?wet.speed" in the Access Restrictions 1.5 proposal)

Opinions?

Eckhart

___
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] Reviving the conditions debate

2012-06-14 Thread Tobias Knerr
On 14.06.2012 08:38, Colin Smale wrote:
> My concern with this is that it may become unwieldy and cumbersome with
> anything beyond fairly trivial cases such as your maxspeed example.

For me, the goal is to make the common cases *easy*, and the rare
complex cases *possible*.

> For the human audience who can't grasp it yet there are millions of
> books and websites. The way it is presented in map editors will be
> extremely critical in any case.

It's far easier to build a visual editor if you only need to support a
limited subset of boolean logic. For example, the "filter" editor in my
mail client (Thunderbird) is limited to a subset of boolean logic as
well, for the same reason.

> Here's a test case. No motor vehicles mon-fri between 1600-1800 except
> agricultural vehicles and good vehicles *in this direction*. Going the
> other way the sign is similar but the times are between 0600 and 0900.
>
> What would this look like using only AND operators?

motor_vehicle:forward:(Mo-Fr 16:00-18:00) = agricultural
goods:forward:(Mo-Fr 16:00-18:00) = yes

motor_vehicle:backward:(Mo-Fr 16:00-18:00) = agricultural
goods:backward:(Mo-Fr 06:00-09:00) = yes

Again using "Extended conditions for access tags".

Tobias

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Martin Vonwald
2012/6/14 Flaimo :
>>> Maybe someone can help me defining the following access restriction
>>> using the 1.5 proposal:
>>> http://wiki.openstreetmap.org/wiki/File:Length_and_time_restriction_2.jpg
> alternate version:
>
> access:motorized.time=Mo-Su 00:00-10:00,18:00-24:00
> access!shortvehicle.length=5
> access:motorized?shortvehicle.time=24/7

Thanks.

My first impression of the 1.5 proposal is that one needs quite often
self defined rules, which results in quite a lot of tags.

>> I assume here, that agricultural and goods are more specific than
>> motor_vehicle. Any chance of simplifying this?
> this notation has the same flaw as the current access scheme. it mixes
> transportation modes and user roles. "motor_vehicle" is a
> transportation mode. "agricultural" is a user role. not everywhere on
> this planet "agricultural" automatically means "motor_vehicle". that
> is what the 1.5 proposal tries to solve.

Very true. The question is: should we mix a solution for conditional
tags with a cleanup of the current access scheme? Or should we try to
do it step by step?

Martin

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Flaimo
> Message: 2
> Date: Thu, 14 Jun 2012 10:31:17 +0200
> From: Martin Vonwald 
> To: "Tag discussion, strategy and related tools"
>        
> Subject: Re: [Tagging] Reviving the conditions debate
> Message-ID:
>        
> Content-Type: text/plain; charset=ISO-8859-1
>
> I think I found a solution using a self-defined rule:
>  access:motor_vehicle!rule.time=10:00-18:00
>  access:motor_vehicle!rule.width=5+
>  access:motor_vehicle?rule=no
>
> Can this be simplified somehow (using the 1.5 proposal)?
>
> 2012/6/14 Martin Vonwald :
>> Hi!
>>
>> Maybe someone can help me defining the following access restriction
>> using the 1.5 proposal:
>> http://wiki.openstreetmap.org/wiki/File:Length_and_time_restriction_2.jpg


alternate version:

access:motorized.time=Mo-Su 00:00-10:00,18:00-24:00
access!shortvehicle.length=5
access:motorized?shortvehicle.time=24/7



> Message: 4
> Date: Thu, 14 Jun 2012 10:53:33 +0200
> From: Martin Vonwald 
> To: "Tag discussion, strategy and related tools"
>        
> Subject: Re: [Tagging] Reviving the conditions debate
> Message-ID:
>        
> Content-Type: text/plain; charset=windows-1252
>
> I tried to express this with the other proposal. I got this:
> motor_vehicle:(Mo-Fr 16:00-18:00):forward=no
> agricultural:(Mo-Fr 16:00-18:00):forward=yes
> goods:(Mo-Fr 16:00-18:00):forward=yes
>
> motor_vehicle:(Mo-Fr 06:00-09:00):forward=no
> agricultural:(Mo-Fr 06:00-09:00):forward=no
> goods:(Mo-Fr 06:00-09:00):forward=no
>
> I assume here, that agricultural and goods are more specific than
> motor_vehicle. Any chance of simplifying this?

this notation has the same flaw as the current access scheme. it mixes
transportation modes and user roles. "motor_vehicle" is a
transportation mode. "agricultural" is a user role. not everywhere on
this planet "agricultural" automatically means "motor_vehicle". that
is what the 1.5 proposal tries to solve.

flaimo

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Colin Smale

On 14/06/2012 11:19, Pieren wrote:

On Thu, Jun 14, 2012 at 8:38 AM, Colin Smale  wrote:

Back to my idea to move all 'variables' to the value :
Let say we create a new access keyword : "condition" (or
"access_condition", "cond", "expr" or "whatever_you_like") suffixed by
a number, eg. condition1, condition2, etc (unlimited but easy to
parse; separator unnecessary).
Then conditions are combined using a plain text language, not using
||, &&, ~, $ or any symbols only known by software programmers
(important for readability by wide audience) eg. " and ", " or ", "
not ", " in " like SQL.
I fully agree that the complexity should be principally in the value, 
not the key.


Sounds good. I think parentheses (or some equivelent) will still be 
necessary however for grouping, so you can say "A or (B and C) or D" as 
"A or B and C or D" would not do the right thing (using conventional 
precedence rules). As I understand it you are proposing that the 
operands be variables (syntactically speaking). It's only a small jump 
from there to allow literals, and add a couple of operators like 
equals/not equal/greater than etc. Like that the definition of the 
conditions as separate tags could be redundant in many cases, but it 
would allow for reuse of common subexpressions.


I am sure that users will be able to get their head around something 
like this - I hope so, because they will have to. The users will have to 
learn a new trick anyway, whether it be this expression syntax or the 
"access 1.5" proposal or its competitors. Which approach will give least 
problems? Can they be understood unambiguously by humans and computers? 
Or are we going to get lots of "bad data" due to people 
misunderstanding/misinterpreting the rules? The set of operators is 
limited (basically just comparison operations plus and/or/not), and the 
editors can support the users by presenting the logic represented by the 
expression in some kind of more natural language if required.




Examples:

Here's a test case. No motor vehicles mon-fri between 1600-1800 except
agricultural vehicles and good vehicles *in this direction*. Going the other
way the sign is similar but the times are between 0600 and 0900.

access=yes   (this implies "agricultural=yes" and "goods=yes")
condition1=Mo-Fr 16:00-18:00
condition2=Mo-Fr 06:00-09:00
motor_vehicle:forward=not condition1
motor_vehicle:backward=not condition2
I think there should be an explicit way of identifying condition1 and 
condition2 as "time constraints". There will also be conditions based on 
other dimensions such as weight, length, etc.

no motor vehicles except for loading/unloading by hgvs between 8pm
and 10am

access=yes
motor_vehicle=no
condition1=loading // improving current 'destination'
condition2=10:00-20:00
hgv=condition1 and not condition2

Short, readable and easy, no ?
Definitely readable. Could be shorter. Easiness is a rather subjective 
measure. How do these alternatives score?
motor_vehicle:expr=(vehicle_type=="hgv") && 
((time>"20:00")||(time<"10:00")) && (intention=="loading")
motor_vehicle:expr=(vehicle_type="hgv") and ((time>"20:00") or 
(time<"10:00")) and (intention="loading")


One small point though: "loading" is not the same as "destination", 
although this may vary by jurisdiction. You can't park in a parking bay 
marked for "loading" just because you want to visit someone nearby.

Pieren

___
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] Reviving the conditions debate

2012-06-14 Thread Pieren
On Thu, Jun 14, 2012 at 11:44 AM, Martin Vonwald  wrote:
> Yes, short and readable (IMO), but how would you express a conditional 
> maxspeed?

You mean:
> access:lgv.speed=120
> access:lgv?wet.speed=80

condition1=wet
maxspeed:lgv=120 or 80 in condition1

If we consider that a special parser is required as soon as one of the
keywords "condition", " or ", " and ", " in ", " not " is present in
the value, we could even reduce the amount of tags:

maxspeed:lgv=120 or 80 in wet

Or about one of the previous examples:
> Here's a test case. No motor vehicles mon-fri between 1600-1800 except
> agricultural vehicles and good vehicles *in this direction*. Going the other
> way the sign is similar but the times are between 0600 and 0900.

access=yes
motor_vehicle:forward=not (Mo-Fr 16:00-18:00)
motor_vehicle:backward=not (Mo-Fr 06:00-09:00)

Pieren

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Martin Vonwald
I created a (still very small) table showing some examples for both
proposals: http://wiki.openstreetmap.org/wiki/User:Imagic/Werkstatt2

If you have any signposts or can provide a currently missing solution
please feel free to update this page or send me the link to the
signpost/a description and I'll add it.

Martin

2012/6/13 Eckhart Wörner :
> Hi everybody,
>
> I want to revive the discussion on how to tag restrictions that depend on 
> certain conditions. My idea is to finalize the proposal described in 
> http://wiki.openstreetmap.org/wiki/Proposed_features/Extended_conditions_for_access_tags
>  and finally accept it.
>
> The reasons for picking this proposal:
> * The proposal mostly describes syntax that is already used for tagging, e.g. 
> a maxspeed in a certain direction is almost always tagged as 
> maxspeed:forward, maxspeed:backward
> * The proposal is intuitive and simple to use: the key of a tag is the base 
> tag + a set of conditions that all have to be true for the key to apply (i.e. 
> logical AND).
> * The proposal is complete: every logical formula of conditions can be 
> expressed in it (technically, it's pretty similar to disjunctive normal form).
> * The proposal is consise: it follows the pattern most dominant with road 
> restrictions, namely overriding general restrictions with special 
> restrictions. It normally uses no more than one tag per sign.
> * The proposal is extensible: the set of conditions is not fixed and can be 
> extended to new conditions. It is possible to set a sane default for new 
> conditions that are experimental.
> * The proposal is easily implementable: I implemented it in a prototype 
> already.
>
> The only real negative aspect that has been mentioned until now:
> * the proposal puts a lot of information into keys and theoretically allows 
> for an unlimited set of keys. (The reality however shows that those keys tend 
> to be the same, e.g. taginfo shows no less than 335 elements with key 
> "maxspeed:(22:00-06:00)").
>
> Competing proposals:
> * 
> http://wiki.openstreetmap.org/wiki/Proposed_features/access_restrictions_1.5 
> - in my opinion a horrible and incomprehensible syntax with arbitrary 
> distinctions, taginfo revealed almost no uses (for example, 
> "maxspeed:hgv:wet" in the Extended Conditions proposal above is 
> "access:lgv?wet.speed" in the Access Restrictions 1.5 proposal)
>
> Opinions?
>
> Eckhart
>
> ___
> 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] Reviving the conditions debate

2012-06-14 Thread Martin Vonwald
Yes, short and readable (IMO), but how would you express a conditional maxspeed?

I suggested something similar some time ago, but people didnt seem to
be very happy with it. It was something like:
condition:=
:conditional()=

The obvious drawback is, that you always need at least two tags.

Martin

2012/6/14 Pieren :
> On Thu, Jun 14, 2012 at 8:38 AM, Colin Smale  wrote:
>
> Back to my idea to move all 'variables' to the value :
> Let say we create a new access keyword : "condition" (or
> "access_condition", "cond", "expr" or "whatever_you_like") suffixed by
> a number, eg. condition1, condition2, etc (unlimited but easy to
> parse; separator unnecessary).
> Then conditions are combined using a plain text language, not using
> ||, &&, ~, $ or any symbols only known by software programmers
> (important for readability by wide audience) eg. " and ", " or ", "
> not ", " in " like SQL.
>
> Examples:
>> Here's a test case. No motor vehicles mon-fri between 1600-1800 except
>> agricultural vehicles and good vehicles *in this direction*. Going the other
>> way the sign is similar but the times are between 0600 and 0900.
>
> access=yes   (this implies "agricultural=yes" and "goods=yes")
> condition1=Mo-Fr 16:00-18:00
> condition2=Mo-Fr 06:00-09:00
> motor_vehicle:forward=not condition1
> motor_vehicle:backward=not condition2
>
>> no motor vehicles except for loading/unloading by hgvs between 8pm
>> and 10am
>
> access=yes
> motor_vehicle=no
> condition1=loading         // improving current 'destination'
> condition2=10:00-20:00
> hgv=condition1 and not condition2
>
> Short, readable and easy, no ?
>
> Pieren
>
> ___
> 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] Reviving the conditions debate

2012-06-14 Thread Pieren
On Thu, Jun 14, 2012 at 8:38 AM, Colin Smale  wrote:

Back to my idea to move all 'variables' to the value :
Let say we create a new access keyword : "condition" (or
"access_condition", "cond", "expr" or "whatever_you_like") suffixed by
a number, eg. condition1, condition2, etc (unlimited but easy to
parse; separator unnecessary).
Then conditions are combined using a plain text language, not using
||, &&, ~, $ or any symbols only known by software programmers
(important for readability by wide audience) eg. " and ", " or ", "
not ", " in " like SQL.

Examples:
> Here's a test case. No motor vehicles mon-fri between 1600-1800 except
> agricultural vehicles and good vehicles *in this direction*. Going the other
> way the sign is similar but the times are between 0600 and 0900.

access=yes   (this implies "agricultural=yes" and "goods=yes")
condition1=Mo-Fr 16:00-18:00
condition2=Mo-Fr 06:00-09:00
motor_vehicle:forward=not condition1
motor_vehicle:backward=not condition2

> no motor vehicles except for loading/unloading by hgvs between 8pm
> and 10am

access=yes
motor_vehicle=no
condition1=loading // improving current 'destination'
condition2=10:00-20:00
hgv=condition1 and not condition2

Short, readable and easy, no ?

Pieren

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Martin Vonwald
I tried to express this with the other proposal. I got this:
motor_vehicle:(Mo-Fr 16:00-18:00):forward=no
agricultural:(Mo-Fr 16:00-18:00):forward=yes
goods:(Mo-Fr 16:00-18:00):forward=yes

motor_vehicle:(Mo-Fr 06:00-09:00):forward=no
agricultural:(Mo-Fr 06:00-09:00):forward=no
goods:(Mo-Fr 06:00-09:00):forward=no

I assume here, that agricultural and goods are more specific than
motor_vehicle. Any chance of simplifying this?

Martin


2012/6/14 Flaimo :
> With the access 1.5 and default opening_hours syntax it would look like this:
>
> define the rules for "forward" and "backward":
>
> • access!forwardrule.time=Mo-Fr 16:00-18:00
> • access!forwardrule.direction=forward
> • access!backwardrule.time=Mo-Fr 06:00-09:00
> • access!backwardrule.direction=backward
>
> apply them to motorized vehicles:
>
> • access:motorized?forwardrule=no
> • access:motorized?backwardrule=no
>
> define a more specific mode+role combination which outweights the
> rules applied to "motorized"
>
> • access:motorized&&agricultural=yes
> • access:motorized&&delivery=yes
>
> flaimo
>
>> Message: 8
>> Date: Thu, 14 Jun 2012 08:38:52 +0200
>> From: Colin Smale 
>> To: tagging@openstreetmap.org
>> Subject: Re: [Tagging] Reviving the conditions debate
>> Message-ID: <4fd986fc.5070...@xs4all.nl>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>> Here's a test case. No motor vehicles mon-fri between 1600-1800 except
>> agricultural vehicles and good vehicles *in this direction*. Going the
>> other way the sign is similar but the times are between 0600 and 0900.
>> This is a short stretch of narrow road and the restrictions are intended
>> to stop commuters using it as a rat-run, while at the same time allowing
>> work to carry on as usual on the farms and businesses along that road.
>>
>>     http://goo.gl/maps/ymvt
>
> ___
> 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] Reviving the conditions debate

2012-06-14 Thread Flaimo
With the access 1.5 and default opening_hours syntax it would look like this:

define the rules for "forward" and "backward":

• access!forwardrule.time=Mo-Fr 16:00-18:00
• access!forwardrule.direction=forward
• access!backwardrule.time=Mo-Fr 06:00-09:00
• access!backwardrule.direction=backward

apply them to motorized vehicles:

• access:motorized?forwardrule=no
• access:motorized?backwardrule=no

define a more specific mode+role combination which outweights the
rules applied to "motorized"

• access:motorized&&agricultural=yes
• access:motorized&&delivery=yes

flaimo

> Message: 8
> Date: Thu, 14 Jun 2012 08:38:52 +0200
> From: Colin Smale 
> To: tagging@openstreetmap.org
> Subject: Re: [Tagging] Reviving the conditions debate
> Message-ID: <4fd986fc.5070...@xs4all.nl>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Here's a test case. No motor vehicles mon-fri between 1600-1800 except
> agricultural vehicles and good vehicles *in this direction*. Going the
> other way the sign is similar but the times are between 0600 and 0900.
> This is a short stretch of narrow road and the restrictions are intended
> to stop commuters using it as a rat-run, while at the same time allowing
> work to carry on as usual on the farms and businesses along that road.
>
>     http://goo.gl/maps/ymvt

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Martin Vonwald
I think I found a solution using a self-defined rule:
  access:motor_vehicle!rule.time=10:00-18:00
  access:motor_vehicle!rule.width=5+
  access:motor_vehicle?rule=no

Can this be simplified somehow (using the 1.5 proposal)?

2012/6/14 Martin Vonwald :
> Hi!
>
> Maybe someone can help me defining the following access restriction
> using the 1.5 proposal:
> http://wiki.openstreetmap.org/wiki/File:Length_and_time_restriction_2.jpg
>
> Right now I'm pretty lost. :-(
>
> Martin

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


Re: [Tagging] Reviving the conditions debate

2012-06-14 Thread Martin Vonwald
Hi!

Maybe someone can help me defining the following access restriction
using the 1.5 proposal:
http://wiki.openstreetmap.org/wiki/File:Length_and_time_restriction_2.jpg

Right now I'm pretty lost. :-(

Martin

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