[OSM-talk] access tagging concepts (was: Re: opencyclemap and car directions)
Ben Laenen
benlaenen at gmail.com
Fri Dec 4 17:28:16 GMT 2009
Tobias Knerr wrote:
> Ben Laenen wrote:
> > So that's completely incorrect, bicycle:oneway=no already appeared on
> > http://wiki.openstreetmap.org/index.php/Proposed_features/Access_restrict
> >ions a long time before the extended conditions for access tags proposal
> > was created (although, indeed, not a definite proposal for such a syntax
> > -- it still could all change -- but in the mean time it was seeing some
> > usage while testing it out). But that's far from an "isolated situation
> > for oneway only".
>
> Nevertheless, it "hasn't been part of a solution that can be used to
> express all of these cases yet". It has been part of a brainstorming
> process - but that's not a solution. Maybe it can lead to a solution.
That's basically what I said as well. But it needs work and input from other
people to come up with a solution. I'm not able to solve the whole issue
myself -- I lack the time for that and my ideas would be influenced too much
by local situations.
> > Yeah, so that proposal of mine hasn't seen much change recently.
> > Basically because I have the impression almost no-one else but me seems
> > interested in creating formal definitions of access tags, and because
> > proposals like yours would come up without really looking at what was
> > written on that page.
>
> I'm not sure what exactly you would consider a formal definition.
> Description of the structure using some kind of grammar? Evaluation
> rules? Something I didn't even think of?
A formal definition is something like a state machine that takes as input the
way and its tags, relations, tags on its node etc, and something describing
the way of transport (vehicle type, actual weight, maximum allowed weight
etc.), and has as output whether that road can be used. Some kind of algorithm
if you want.
For now, these rules are basically just defined by a few sentences in the wiki
in plain English, and it's not hard to find cases that become ambiguous.
Some examples:
oneway=yes
bicycle=yes
-> are bicycles allowed in both directions or not?
day_off=saturday
bicycle=yes
-> cyclists allowed on Saturday? oh, and pedestrians?
if you said cyclists allowed, then what about this:
day_off=saturday
motor_vehicle=no
motorcycle=yes
-> motorcycles allowed on saturday? Or is it just an exception on
motor_vehicle=no the rest of the week?
> Certainly, all of these would be entirely possible for "Extended
> conditions" tags and their evaluation, though.
Not saying it's not possible, they surely can be defined properly in some way.
But they aren't yet. And as a result it may be that trying to implement it may
result in some strange effects conflicting with common sense.
> I'm always open for better solutions. I also believe that a syntax being
> used isn't an argument for not replacing it if something better comes
> along. I wouldn't expect you to necessarily take "Extended condition"
> syntax into account when creating your own concepts, and I don't think
> it's a practical necessity, either, as none of these cases is very
> widespread yet.
It does matter when the two ideas would result in the same tag meaning two
different things.
> Also, what would you have expected me to do in that situation back then?
> Yes, there was this page that hadn't been very active even then and
> didn't offer much except some "brainstorming". Yes, maybe someone would
> come up with a solution based on it, but there was no indication that it
> would develop into anything.
>
> So I what I did was this: I spent hours thinking about other solutions,
> discussing syntax, writing software prototypes for different syntax
> variants and so on. No, I'm not convinced that my proposal is the ideal
> solution. I'm now convinced that it is a *working* solution, though,
> which integrates most of the existing tags and allows them to be defined
> consistently. Still, if you can come up with something better, please do.
Well, there's the problem in that last sentence: I can't do that myself, as
I've said above as well.
What I could have done indeed was immediately creating a proposal like yours.
It's just that I preferred not to until I was sure how to put it into a more
general framework for handling access tags.
By the way, I'm certainly not mad or anything that you decided to take the
shortcut by not thinking about the bigger picture. Indeed, what else was there
to do if you wanted to tag these things. So I also had my own few tags to map
these things. Those tags weren't meant to be final in any way (in fact, I'm
actually more a fan of something like "oneway=yes;[bicycle]no", instead of
"oneway=yes + bicycle:oneway=no"). So I didn't put them into a nice proposal
yet. But your proposal makes it look like it would make it a final syntax, and
that that is the only proper way to tag. Something I wanted to avoid until the
big picture was more or less worked out.
My main concern for example about your (extended) proposal is the usage for
the colon for everything, and adding values in the key. The colon is already
used for so many things (namespace, specification, condition...), and values
in keys is asking for trouble.
Greetings
Ben
More information about the talk
mailing list