Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Loop AddTracktype <-> AddRoadSurface #5133

Closed
qugebert opened this issue Jul 9, 2023 · 17 comments
Closed

Loop AddTracktype <-> AddRoadSurface #5133

qugebert opened this issue Jul 9, 2023 · 17 comments
Labels

Comments

@qugebert
Copy link
Contributor

qugebert commented Jul 9, 2023

Lately I've noticed a continuous loop between the quest types "AddRoadSurface" and "AddTracktype".

It seems to occur whenever a trail is specified as "highway"="track" and "surface"=compact and "tracktype"="grade1"

output

You can see at the increasing count (top left), that it's a loop

How to Reproduce

Here are two examples:
https://www.openstreetmap.org/way/4397949/history
https://www.openstreetmap.org/way/561295124/history

You can see the loop in the history of the stated ways, or if you go to one of these ways in streetcomplete, you will see, that the questions are still asked.
I guess it's the combination "highway" = "track", "surface"="compacted", "tracktype"="grade1" which causes this bug.

If you look at the history of these ways, it seems like the Task "Specify road surfaces" deletes the tag "tracktype", this triggers the Task "Specify tracktypes" but i have no idea why the task "Specify road surfaces" is triggered again

Expected Behavior

Once both questions have been answered, they should not be asked again

Versions affected

  • StreetComplete 53.2
  • StreetComplete 52.1
@qugebert qugebert added the bug label Jul 9, 2023
@westnordost
Copy link
Member

westnordost commented Jul 9, 2023

Naja, das kommt daher dass du jeweils widersprüchliche Werte auswählst. Eine Straße mit verdichtetem Untergrund ist nicht befestigt. "Befestigt" bedeutet soetwas wie Asphalt, Beton, Steinpflaster usw.

Bei dem Oberflächen-Quest kommt direkt auch ein Dialog der dir das erklärt.

@qugebert
Copy link
Contributor Author

qugebert commented Jul 9, 2023

(english translation below :) )

Danke für die schnelle Reaktion :)

Ich sehe da keinen Widerspruch in sich.
Im Wiki https://wiki.openstreetmap.org/wiki/DE:Tag:surface%3Dcompacted heisst es beispielsweise auch für compacted:
"Eine befestigte und verdichtete Deckschicht für Straßen und Wege"

Tatsächlich sehe ich aber eben auch im Wiki, dass Grade1 nur [Asphalt, Beton oder Pflastersteine] beinhaltet.
Die allerwenigsten User schauen aber zunächst ins Wiki (habe ich ja auch nicht), um die genauen Kriterien nachzusehen und für viele ist ein verdichteter Weg eben direkt auch "befestigt".
Selbst Behörden scheinen "befestigt" nicht als "Asphalt, Beton oder Pflastersteine" zu definieren. Wir haben hier im angrenzenden Forst (ehem. Truppenübungsplatz) überall Schilder "Betretungsverbot ausserhalb der befestigten Wege" und die Wege, welcher in der dazugehörigen Allgemeinverfügung als erlaubt aufgelistet sind, sind alle nur verdichtet.

Kurzum, dann ist die Bezeichnung "Befestigt" zumindest nicht so gewählt, dass es zu keinen Misverständnissen führen kann (QuestGuidelines: "the user interface must leave no space for misunderstandings") und auch das Foto ist nicht allzu eindeutig.

Vorschlag: Wir packen in den TrackType-Quest einen ähnlichen Warnhinweis, der darauf hinweist, dass "Befestigt" nur dann zu wählen ist, wenn eine der drei genannten Oberflächen zutrifft. Ich kann mich gerne auch selbst daran versuchen, den Hinweis da hinein zu bekommen, wenn du keine Einwände hast.


Thank you for the fast reaction :)

I don't see any contradiction in that.
In the wiki https://wiki.openstreetmap.org/wiki/DE:Tag:surface%3Dcompacted, for example, it also says for compacted:
"Eine befestigte und verdichtete Deckschicht für Straßen und Wege"

In fact, I now see in the wiki that Grade1 only contains [asphalt, concrete or paving stones].
Very few users first look in the wiki (I haven't either) to look up the exact criteria and for many a condensed path is also directly "fixed".
Even authorities do not seem to define "paved" as "asphalt, concrete or paving stones". Here in the adjoining forest (former military training area) we have signs everywhere saying "no entry outside the fortified paths" and the paths that are listed as permitted in the associated general decree are all only compacted.

In short, then the term "fortified" is at least not chosen in such a way that it cannot lead to misunderstandings (QuestGuidelines: "the user interface must leave no space for misunderstandings") and the photo is not too clear either.

Suggestion: We put a similar warning in the TrackType Quest, indicating that "fortified" should only be selected if one of the three surfaces mentioned applies. I'm more than happy to try and get the clue in there myself, if you don't object.

@westnordost
Copy link
Member

Zum Vorschlag, ich denke nicht dass ein weiterer Warnhinweis Sinn macht. Der wird bloß auch weggeklickt. Dialoge werden in der Regel weggeklickt, so ist es halt.

Aber du hast Recht: wenn keine klare Definition besteht darüber welche Oberflächen unter "befestigt" fallen oder diese nicht mit der Definition von paved / unpaved übereinstimmt, dann ist dieses Wort möglicherweise nicht als Übersetzung geeignet.

Befestigt / unbefestigt ist (derzeit) die Übersetzung vom englischen paved / unpaved.

Ich denke, die Übersetzung sollte einfach geändert werden. Mögliche Kandidaten:

  • gepflastert / ungepflastert - wortgetreue Übersetzung, auch genutzt auf DE:Tag:surface=paved. Aber aus meiner Sicht passt das eigentlich nicht, meinem Wortverständnis nach ist eine asphaltierte Straße nicht "gepflastert". Oder?

  • versiegelt / unversiegelt - möglicherweise passender, "unversiegelt" hört sich aber komisch an.

@westnordost
Copy link
Member

@westnordost
Copy link
Member

westnordost commented Jul 14, 2023

Okay, zwei drittel finden dass befestigt / unbefestigt die beste Übersetzung ist, obwohl auch im Forum ein paar Leute dabei sind, die meinen, sie hätten (bisher) Straßen mit wasserverdichteten Oberflächen zu befestigten Straßen gezählt.

Die anderen Optionen, versiegelt und gepflastert können auch anders verstanden werden, zum einen würden viele eine asphaltierte Straße nicht als gepflastert ansehen, zum anderen würden einige wiederum (mit Steinen) gepflasterte Oberflächen nicht als (komplett) versiegelt ansehen.

Insofern ist und bleibt "befestigt" die beste Übersetzung. Ich hatte kurz darüber nachgedacht, dass man den Text in "befestigt / versiegelt" ändern könnte, aber das könnte wiederum so ausgelegt werden, dass die Option auszuwählen ist wenn etwas entweder befestigt oder versiegelt ist. Dies würde also das Missverständnis hier nicht verbessern.

Daher werde ich nichts an der aktuellen Übersetzung ändern.

@torhovland
Copy link

@westnordost I am not sure if this is exactly the same issue, but I noticed a similar loop today. There was a track that didn't have any other tags apart from highway=track. StreetComplete first asked me to specify the surface, then the tracktype, then the surface again, and I think, then the tracktype again (at which point I decided to hide the quest). See the following history:

image

@matkoniecz
Copy link
Member

Can you attach photo of tractype=grade2 surface=dirt track? As far as I can see these answers are contradictory.

@torhovland
Copy link

@torhovland
Copy link

But you asked about grade 2. Well, if you imagine the grade 3 photo, but with hard dirt instead of grass in the middle of the track.

@westnordost
Copy link
Member

Sounds like grade 3 then.

@torhovland
Copy link

Wait, so dirt by definition is always a soft material? There is no such thing as "compacted dirt"?

That's fine, then, but I still think this loop is unfortunate and could probably have been avoided.

@westnordost
Copy link
Member

Anyway, @matkoniecz , didn't look up what you committed recently, but couldn't StreetComplete just keep out of the whole discussion by only detecting conflict between grade1 and paved surface?

@torhovland
Copy link

@matkoniecz I can see that you are treating ground specially (allowing it with tracktype=grade2) after the discussion in #4863. But I think that if you do that, you should similarly allow earth, dirt, soil, salt, and ice, because they can all be considered solid surfaces.

In other words, since this doesn't include ground, it shouldn't include all of the other ones here either:

val SOFT_SURFACES = setOf(
    "earth", "dirt", "soil", "grass", "sand", "mud", "ice", "salt", "snow", "woodchips"
)

@matkoniecz
Copy link
Member

matkoniecz commented Oct 13, 2023

Wait, so dirt by definition is always a soft material? There is no such thing as "compacted dirt"?

See description of tracktype=grade2 in StreetComplete and in https://wiki.openstreetmap.org/wiki/Key:tracktype#Values

surface=dirt should never match it

@matkoniecz
Copy link
Member

but couldn't StreetComplete just keep out of the whole discussion by only detecting conflict between grade1 and paved surface?

that would leave us with some wrong surface and tracktype

I guess that it could be made more smarter and show some extra info when encountering mismatch?

@westnordost
Copy link
Member

Ugh, not more complexity here please. You see where it leads.

@mnalis
Copy link
Member

mnalis commented Oct 17, 2023

Ugh, not more complexity here please. You see where it leads.

I think complexity stems from mismatched tags, not StreetComplete handling (which is detected problems and avoiding corrupt data -- any such safety checks will by definition case more user confusion but less incorrect data then no checks at all, of course)

But I agree with @matkoniecz suggestion of trying to make better UX than "quest loop" in such case of tag conflict to be a good idea. Possible alternatives to "quest loop":

  • when mismatch is detected, upon removing old conflicting tag, display a popup saying why it was removed. While that might add tiny bit of code complexity, it should avoid much of "huh?" user moments that current "quest loop" does, so would be better choice IMHO.
  • alternatively, when mismatch is detected, simply refuse to accept the answer to add a new tag, instead displaying a message explaining to the user that they should leave a note with picture instead due to conflicting data.
  • or, at least document the UX quirk in FAQ so at least some users will hopefully find it there

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants