<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; ">What are you going to do when the route is part of more than one state highway or bike route? You can't do a db query for ref:highway:ca:0, ref:highway:ca:1, ref:highway:ca:n without doing expensive string comparisons, and you can't explode a delimited list of refs without breaking the one key = one value relation.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; ">No relations = no way to normalize one-to-many. At least without a lot of extra work on the part of the parser and API tools.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; ">Yes it can be done, but then we'll end up with the kind of horrific data layout your average shapefile has.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; ">- Daniel</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div><div>On Feb 4, 2011, at 8:53 PM, Craig Hinners wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><span style="font-family:Verdana; color:#000000; font-size:10pt;"><div style="color: rgb(0, 0, 0); font-family: verdana, geneva; font-size: 10pt; ">The only thing that relations add (in terms of tagging) is an order of magnitude of complexity.</div><div style="color: rgb(0, 0, 0); font-family: verdana, geneva; font-size: 10pt; "><br></div><div style="color: rgb(0, 0, 0); font-family: verdana, geneva; font-size: 10pt; ">There is no technical reason why direct application of tags to ways can't work. However, this requires the use of highly-specific tag <i>keys</i>, such as a unique key for interstate highways, a unique key for U.S. highways, a unique key for [insert your state here] highways, a unique key for [insert your state here] bikeways, etc.</div><div style="color: rgb(0, 0, 0); font-family: verdana, geneva; font-size: 10pt; "><br></div><div><font class="Apple-style-span" face="verdana, geneva" size="2">For whatever reason, though, the </font><i style="color: rgb(0, 0, 0); font-family: verdana, geneva; font-size: 10pt; ">de-facto</i><font class="Apple-style-span" face="verdana, geneva" size="2"> practice became cramming everything under the sun into the <i>values</i> of tags having non-unique keys, such as <i>ref</i>, to the point where said tags mean everything while at the same time mean nothing</font><font class="Apple-style-span" face="verdana, geneva" size="2">.</font></div><div><font class="Apple-style-span" face="verdana, geneva" size="2"><br></font></div><div><font class="Apple-style-span" face="verdana, geneva" size="2">The concept of key/value pairs is common in computing, where the <i>key</i> describes a unique concept in the dataset: interstate, U.S. hwy., etc. However, now that </font><i style="font-family: verdana, geneva; font-size: small; ">ref</i><font class="Apple-style-span" face="verdana, geneva" size="2"> has taken on thousands of different meanings depending on context, it can hardly be considered a "key" any more, to where it has zero utility outside of rendering (i.e., displaying its value in a "shield"). Which is quite ironic, if you think about it, given how we're constantly berated to "not tag for the renderer".</font></div><div><font class="Apple-style-span" face="verdana, geneva" size="2"><br></font></div><div><span class="Apple-style-span" style="font-family: verdana, geneva; font-size: small; " mce_fixed="1">Hence the reason why everything breaks down when, god forbid, there is a way that belongs to two classes of networks (say, interstate and U.S. hwy.), because you now have to somehow convey multiple concepts in a single tag (<i>ref</i>). Which is why the operative workaround is to resort to another layer of abstraction (and complexity) in the form of highly-specific relations, when everything could have been taken care of in the first place with directly-applied tags having conceptually-unique keys.</span></div> </span></div>

_______________________________________________<br>Talk-us mailing list<br><a href="mailto:Talk-us@openstreetmap.org">Talk-us@openstreetmap.org</a><br>http://lists.openstreetmap.org/listinfo/talk-us<br></blockquote></div><br></body></html>