Mechanical Edits/Mateusz Konieczny - bot account/retag paving stones:30

From OpenStreetMap Wiki
Jump to navigation Jump to search

Page content created as advised on Automated_Edits_code_of_conduct#Document_and_discuss_your_plans.

Who

I, Mateusz Konieczny using my bot account

contact

message via OSM I will respond also to PMs to the bot account. In both cases I will be notified about incoming PMs via email and notifications in OSM editors.

What

Retag surface=paving_stones:30 across entire world

Why

surface=paving_stones:30 is a bad idea - detail such as colour or exact size of paving stones or their shape or exact type of concrete/stone should not go into surface=*

what worse this tag is cryptic and unclear

note: most uses was already removed (bot edits that did this are linked at surface=paving_stones:30 tag page)

Yes, aliases of other tags (and for nearly all uses it is a duplicate of surface=paving_stones) are not a large problem, having some tag aliases it is not even top 10 problem for new data consumers or top 100 problem for openstreetmap community. But it is one of easier ones to reduce its scale.

Numbers

Depends on how many new matches appear - depends on editing activity in OSM.

How

state before a mechanical edit:

state after a mechanical edit:

Bot source code

Bot is using https://github.com/matkoniecz/osm_bot_abstraction_layer library, this code is GNU GPLv3 licensed

below will be copy of source code, code should be findable in https://codeberg.org/matkoniecz/OpenStreetMap_cleanup_scripts/src/branch/master/recurrent_bot_edits

from osm_bot_abstraction_layer.generic_bot_retagging import run_simple_retagging_task
import osm_bot_abstraction_layer.human_verification_mode


def edit_element(tags):
    if tags.get("surface") == "paving_stones:30":
        if tags.get("paving_stones:shape") not in [None, "square"]:
            return tags
        if tags.get("paving_stones:length") not in [None, "0.3 m", "0.3"]:
            return tags
        tags["surface"] = "paving_stones"
        tags["paving_stones:shape"] = "square"
        tags["paving_stones:length"] = "0.3"
        return tags
    return tags


def main():
    query = """
[out:xml][timeout:1800];
area[name="Polska"]->.a;
(
"""
    query += "  nwr[surface='paving_stones:30'](area.a);\n"
    query += """);
out body;
>;
out skel qt;
"""
    run_simple_retagging_task( # (area.a)
        max_count_of_elements_in_one_changeset=500,
        objects_to_consider_query=query,
        cache_folder_filepath='/media/mateusz/OSM_cache/osm_bot_cache',
        is_in_manual_mode=False,
        changeset_comment='migrate surface=paving_stones:30',
        discussion_url="https://community.openstreetmap.org/t/surface-paving-stones-30-przetagowanie-propozycja-automatycznej-edycji/128337/",
        osm_wiki_documentation_page="https://wiki.openstreetmap.org/wiki/Mechanical_Edits/Mateusz_Konieczny_-_bot_account/retag_paving_stones:30_in_Poland",
        edit_element_function=edit_element,
    )

    query = """
[out:xml][timeout:1800];
(
"""
    query += "  nwr[surface='paving_stones:30'];\n"
    query += """);
out body;
>;
out skel qt;
"""
    run_simple_retagging_task( # (area.a)
        max_count_of_elements_in_one_changeset=500,
        objects_to_consider_query=query,
        cache_folder_filepath='/media/mateusz/OSM_cache/osm_bot_cache',
        is_in_manual_mode=False,
        changeset_comment='migrate surface=paving_stones:30',
        discussion_url="https://lists.openstreetmap.org/pipermail/talk/2025-May/088685.html https://community.openstreetmap.org/t/proposed-automated-edit-retag-surface-paving-stones-30/130068",
        osm_wiki_documentation_page="https://wiki.openstreetmap.org/wiki/Mechanical_Edits/Mateusz_Konieczny_-_bot_account/retag_paving_stones:30",
        edit_element_function=edit_element,
    )

main()

Discussion

https://lists.openstreetmap.org/pipermail/talk/2025-May/088685.html

https://community.openstreetmap.org/t/proposed-automated-edit-retag-surface-paving-stones-30/130068

Repetition

This is reoccurring edit and may be made as soon as new matching elements appear. At this moment triggering new edit requires human intervention so exact schedule is not predictable and bot may stop running at any moment.

This can change in a future. If bot is abandoned and does not run, feel free to ping me. If I am unable to run it any more feel free to use my code. Note that it may require going through bot approval process again and that code is on specific license.

https://codeberg.org/matkoniecz/OpenStreetMap_cleanup_scripts/src/branch/master/recurrent_bot_edits may have more up to date code version that what is listed on this page

Opt-out

Please write at forum topic where it was discussed.

Note that in case of opt-out exactly the same edit will be made manually.

See also