On 6/12/06, <b class="gmail_sendername">Immanuel Scholz</b> <<a href="mailto:immanuel.scholz@gmx.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">immanuel.scholz@gmx.de</a>> wrote:<div><span class="gmail_quote">
</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>> I think the users (us) are finding that the lack of any structure is<br>> becoming a bit of a problem. See previous discussions about UK centric<br>> schemes, highway=autobahn, etc.  I think this initiative is not about some
<br>> complex programming changes but more about the users doing some<br>> self-organising using the tools they have already got.  I really like the<br>> lack of any *enforced* structure, but I also see that there are benefits
<br>> to several users sharing a common scheme - that is all that is happening.<br>><br><br><br>> > But: Some of your ideas were thought before ;-).<br>> Where?<br><br>The usual channels. Mailing list, wiki, IRC.. I mean - coders already
<br>thought about possible needs of organizing the keys a bit.<br><br><br>>> To have a "registry", where some metainformation about the data is stored<br>>> was part of the key/value design from beginning. The idea was that
<br>>> keywords can have keywords and so clients are able to read out these<br>>> keywords and interprete them by themself.<br>><br>> Can you give an example? I don't understand what you mean by "keywords can
<br>> have keywords".<br><br>Currently, only Nodes, Segments, Ways (and Areas) are "first class<br>objects", which mean, you can attach key/values only to this.<br><br>It was an original idea to give the user the possibility to attach
<br>key/values to Keys. (Ok, the REALLY original idea was only to have<br>'keywords' and to be able to attach keywords to keywords. But it comes up<br>to the same).<br><br>Having this, a user can attach for example the key/value
<br>"possible_values=major,minor,highway" to "class". An other example is to<br>attach "class_icon=<a href="http://foo.bar/baz.jpg" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://foo.bar/baz.jpg</a>" to the key "church"</blockquote>
<div><br>This is already being done, here: <a href="http://wiki.openstreetmap.org/index.php/Osm-map-features.xml" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://wiki.openstreetmap.org/index.php/Osm-map-features.xml
</a><br><br>Here's an example of how a church is associate with the icon that is used to represent it: 
<br></div><div><pre>  <rule k="amenity" v="place_of_worship"><br>    <symbol xlink:href="#church" width='5' height='10' x-offset='-5' y-offset='-10'/><br>  </rule></pre>   ...
<br><pre>  <svg:symbol id="church"<br>     viewBox="0 0 5 10"<br>     fill='#000000'><br>      <svg:path d="M 0 10 L 0 5 L 5 5 L 5 10 z M 0 2 L 5 2 L 5 3 L 0 3 z M 2 0 L 2 5 L 3 5 L 3 0 z" />
<br><br>  </svg:symbol></pre>Could JOSM parse the <rule> tags in this file and use it to give the user a set of possible values for the keys in the Map Features scheme?<br></div><br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

A client can then read out this values and decide to pre-fill a combobox<br>which selects from a "class" with the values "major", "minor" and<br>"highway". Futher, the client could display the URL for every node which
<br>has the class=church.<br><br><br>To summarize, the "key/values for keys" is just a simple way of using<br>existing API's to implement a *distribution* of ontology. It is not better<br>in actually defining that ontology than any other scheme you can quickly
<br>come up with ;-).<br><br><br><br><br>Some things to keep in mind:<br><br>- You will never have *no* misinterpretation. I strongly suggest than you<br>do not make applications that depend on "no wrong data" to work except:
<br>- If you really make an application that has to enforce some scheme (e.g.<br>routing applications), then you should always add a proxy which filter out<br>and preprocess your data (as gpsdrive does).</blockquote><div>

<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Ciao, Imi<br><br><br>_______________________________________________<br>talk mailing list
<br><a href="mailto:talk@openstreetmap.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">talk@openstreetmap.org</a><br><a href="http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk</a><br></blockquote>
</div><br><br>