What you propose is an algorithm that does a sort of “guess”. For
doing some sort of guess, we don’t need to introduce a new relation.
That could be done also without a relation.
Introducing a new relation should lead to better data and more
well-structured information. There should be a certain gain in
information. This will work only if the relation proposal is really
clear. If not, probably it will happen the same things as with the
“site” relation (=there are “site” relations in the database, but
little software support for this).

I think that Никита has touched a very important question: Is there
inheritence? Means: Are tags on the relation also considered tags of
the members? And how to deal with conflicts? This is not as trivial as
it sounds. I’ll take some of your examples:

– “name=Schwedenhöhlen” + “natural=cave_entrance” on the relation.
“name=Schwedenhöhle 1…” + “natural=cave_entrance” on the nodes. Open
questions: What does the relation represent? A collection of cave
entrances? Or the caves themself? If it represents the caves themself,
the tag natural=cave_entrance does not seem to be too appropriate. If
it represents a collection of cave entrances, a rendering of the
general name might be useful. But it might be useful to render it
bigger than the individual names.

– “name=Schwedenhöhlen” on the relation. “name=Schwedenhöhle 1…” +
“natural=cave_entrance” on the nodes. You would have to go to the
nodes, interpretate them and use the same rendering style also for the
relation. Probably also not as trivial as it sounds. What, if not all
nodes does not have the same tag (example: a natural=cliff within this
group). Is this considered as error? Does this prevent the rendering?
Your proposal was was count: More natural=cave_entrance occurences
than natural=cliff occurences would make the relation render as a
natural=cave_entrance. For me, this does not look like an improvement
of the current data quality, but rather like a degradation of the data
quality. At least, I would suggest to treat such cases as “invalid”
relations which should be ignored by data consumers.

–  “name=Schönefelder Seen” + “natural=water” on the relation. No tags
at the member areas. Is the “name” tag propageted to the members? If
soo, we have the same problem like before: The name “Schönefelder
Seen” is not appropriate for them. If the “name” tag is _not_
propageted to the members, we have another problem: “natural=water”
has to be propageted to the members nevertheless; so we have some tags
that are propageted (natural=water) and others that are not propagated
(name=Schönefelder Seen), and we need rules how to determine which
tags are propageted and which tags are not propagated.

–  “name=Schönefelder Seen”  on the relation. “natural=water” at the
member areas. Members propagate their tags to the relation. So a
renderer can determine the color for rendering the name of teh
relation. Sounds easy for the “Schönefelder Seen”. But this solution
would create conflicts when applied to the caves, because the cave
relation members have also individual names, and these names would
conflict with the relation name.

All this is too complex for a catch-them-all algorithm. To get a good
rendering, you will probably need special algorithms for each type of
feature.

I understand that you want to have a simple and generic solution. But
I doubt that this will create any benefit in the real practice. And I
fear – if it is as generic as you propse – it will end up like the
“site” relation.

Your original idea was to give to give a common name to various
objects. So, logically, the relation could be limited for usage
together with the tag “name”: Something like type=common_name for
relations, together with name=* on the relation. The members have an
empty role. The members may not have any of the name*=* tags. All
members are requiered to have the same tags; otherwise the relation is
considered invalid. But even this is problematic: Imagine that you
have boat=yes at one of the “Schönefelder Seen” lakes and boat=no at
another of the “Schönefelder Seen” lakes. Imagine further a renderer
that renders the labels of lakes in different colours, depending if
the can be used by boats or not.

I think we need a special tagging for each of these features. But
type=cluster could help anyway. Introduce type=cluster for relations.
But use it only together with special tags like natural=group_of_lakes
– these special tags needs to be introduced also. type=cluster could
also be used together with the existing place=archipelago. So you
would have to make an own tagging decription for each feature (group
of lakes, group of cliffs …) and this leads to a clear documentation
and clear rules.

_______________________________________________
Tagging mailing list
Tagging@openstreetmap.org
https://lists.openstreetmap.org/listinfo/tagging

Reply via email to