-
-
Notifications
You must be signed in to change notification settings - Fork 359
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
Remove name from vacant shop when it's no longer vacant. #3045
Conversation
Vacant shops sometimes have the `name` key still set to help make it identifiable when the house number can't be determined in person. (As shops often don't care about removing signage when they close for good) When answering this quest on such an element, the name key is often retained and the data is left bad. I'll provide an example: A bar near me closed down ("The Black Cat") but left their signage up. I left the name tag on the element when I set "shop=vacant" as it's in a dense part of town where it'll be hard to know what element StreetComplete might be asking for otherwise. A new establishment opened in its place but StreetComplete never asked me for the name as the old bars name wasn't removed from the "shop=vacant" element. Whether or not shop=vacant or disused:shop=* elements should have names, 30% of them do, so it's worth covering the edge case :)
I agree that the old names (if left standing) are still useful orientation points, even if the shop/amenity is vacant. So probably the most useful would be to leave the name when shop is marked vacant (as you did), but when user in SC answers that the shop is no longer vacant; then remove the name tags. (and the user can enter new name in subsequent quest, after the shop is no longer marked as vacant/disused) |
Yeah, that's what this does :) Wasn't sure if my explanation was clear enough |
Also apart from the use case you described, removing Also, did you abandon your earlier PRs? |
At least opening hours tag, if not removed already |
They've kind of been put aside indefinitely until I finish some paid work. I do plan to finish those PRs soon, just can't say when. Unless you want to give me a deadline to panic me into doing them 😅 |
No, just asking because if they were abandoned, I could mark that somehow that it is up for the taking, i.e. could be finished by someone else who is willing to. |
Oh, absolutely, if someone wants to finish them, they can :) |
I've just added a few more keys to be removed which would depend on the previous establishment |
|
Hmm... maybe turn that around... what should not be removed. IIRC this is how it is done when the user selects "this shop is vacant now" |
|
Address data should defiantly not be removed, there is a lot of effort going into getting open addresses in the UK. However I'm pretty sure there is an ancient OSM rule along the lines of "If you don't understand a tag, leave it.", so I'd still argue for an explicit list of removable tags, and leave everything else. |
Perhaps move the |
there is this constant: StreetComplete/app/src/main/java/de/westnordost/streetcomplete/data/quest/QuestController.kt Lines 245 to 257 in dbfe44e
This could be reused (=moved to some file like |
Are you planning to finish this PR? |
Yes, today actually 😊 |
I'm not sure we should be removing tags were unsure of |
Whilst I'm on the mindset of "if you don't know what a tag is, don't touch it", I added some important tags to the don't delete constant you mentioned above. |
@westnordost Since I can't access current element tags from |
I'd say this PR is ready for a review :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@westnordost Since I can't access current element tags from
CheckShopType.applyAnswerTo()
I can't build a sting map of changes to remove all except the tags we want to keep. Gonna have to stick to only removing what we intend to remove.
But you can. changes.getPreviousEntries()
returns all the tags currently tagged on the element.
You can also take a random shop, disable automatic uploads and apply edit to it - and see logs whether SC takes correct actions. |
app/src/main/java/de/westnordost/streetcomplete/data/quest/OsmTaggings.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/de/westnordost/streetcomplete/quests/shop_type/CheckShopType.kt
Outdated
Show resolved
Hide resolved
…pe/CheckShopType.kt Co-authored-by: Tobias Zwick <[email protected]>
LGTM |
app/src/main/java/de/westnordost/streetcomplete/data/meta/OsmTaggings.kt
Show resolved
Hide resolved
As was already brought up by others, I believe a blanket-removal of all tags aside from a few that are on a list is a bad idea. Such a list will always be incomplete and also doesn't consider local practices. The reverse approach of only removing tags that are known to be associated with a shop and are likely to change would be a much better idea and is unlikely to clobber valid data like a blanket removal would. Also, what happens if a new tag or tagging scheme is invented? Will this list constantly be updated? Who decides which tag is worthy to be added to this list or not? What about users with old versions of StreetComplete? What if StreetComplete development stops some day? I also support moving the name to |
I agree with you @Woazboat |
Great points @Woazboat. To me it also seems MUCH better to only remove the explicitly named tags, instead of removing everything except explicitely named tags. For example, I guess one might wade through several thousand of more popular entries at taginfo to check what more should be left alone. Problem is that is not only error prone (and hard to decide sometimes), but also that new tags pop up in use all the time (some documented, some not). To conclude, what is boils down to is: when (not if) the error does happen and SC makes a wrong choice, I'd much rather we err on the side of "we sometimes leave some potentially stale information we didn't think of" than "we sometimes destroy useful and valid information". I still think it is valid reasoning, even when it is more work - intentionally destroying potentially useful information makes me cringe, even if the amount destroyed would likely be relatively/quite small. Or alternatively we can make a hybrid (but that sounds like more work for less gain):
|
This is a bad idea, only very rarely old_name should be kept and deleting it is not some bad edit. And in many cases it would be harmful/pointless. In manual editing I basically never keep it. |
@matkoniecz what about the rest of my suggestion, which was the main point? Do you have an opinion yet if you would rather prefer potential data loss, or potentially obsolete data? As for the I personally do find
Sure, sometimes (if the previous node was short lived, rarely used, of no special interest even to locals, and no mentions of it remain), value of |
There is also |
OSM is not for historic data, and presence of So I am quite allergic to mapping historic no longer existing objects or suggesting that it would be OK (with exceptions for temporary notes protecting against invalid armchair edits)
Not relevant at all for handling vacant shops (also, unlike shops such old names are typically in actual use)
That is extremely, ridiculously rare. At least in my region, with some features it would happen but of several hundred shops I deleted/retagged none qualified.
No strong opinion, both require maintaining long lists of tags and both have negative consequences. Also: it is one more negative consequence of mixing shops and buildings as one object. |
I chose a negative list rather than a positive list because the former would be, I believe, unmaintainably long. |
So is there anything left to do or is it ready to merge? @matkoniecz , you requested changes? |
Generally, it shouldn't be a blocker to merge a PR only even more improvements can be made. This could be a separate PR, right? |
Looked at the PR again and I will consider to add the suggested after the merge |
…o-not-delete list (#3045)
See my commit, I added some more things that should not be deleted. |
Looks good! Thank you! |
Unfortunately, I noticed an issue which likely makes it necessary to revert this PR: What if a surveyor already tagged the new shop, but did not remove the Of course it can be considered an error that the Of the two possibilities,
the latter sounds more destructive. |
Surely the fix is it change the query for what qualifies to something like (disused:shop=* and (!shop or shop=vacant))? |
https://www.openstreetmap.org/node/3672068811 is bad anyway. Those disused tags should be removed |
Vacant shops sometimes have the
name
key still set to help make it identifiable when the house number can't be determined in person. (As shops often don't care about removing signage when they close for good)When answering this quest on such an element, the name key is often retained and the data is left bad.
I'll provide an example:
A bar near me closed down ("The Black Cat") but left their signage up. I left the name tag on the element when I set "shop=vacant" as it's in a dense part of town where it'll be hard to know what element StreetComplete might be asking for otherwise. A new establishment opened in its place but StreetComplete never asked me for the name as the old bars name wasn't removed from the "shop=vacant" element.
Whether or not shop=vacant or disused:shop=* elements should have names, 30% of them do, so it's worth covering the edge case :)