Skip to contents

The goal of osmtaggingr is to provide reproducible datasets containing information about OpenStreetMap’s tagging proposals. It does so by querying and webscrapping OSM’s wiki via helper functions.

The package contains the following datasets, as well as associated metadata and functions to recreate them:

  1. proposals: A data frame with 2115 rows and 30 columns, containing all Approved, Rejected and Proposed tagging proposals from the OSM Wiki, as well as their associated metadata (run ?proposals to see its metadata).
  2. proposals_votes: A data frame with 8487 rows and 4 columns, containing all the votes cast for every tagging proposal in proposals, generated by get_proposals_votes() (run ?proposals_votes to see its metadata).

Acknowledgements

This is an output of the research project “Can digital goods be neutral? Evaluating OpenStreetMap’s equity through participatory data visualisation” led by Carlos Cámara-Menoyo and Timothy Monteath and funded by the ESRC Digital Good Network through their Digital Good Research Fund 2024-25.

Citing

You are free to use and reuse this tool under the licence conditions.
If you use this package in your work, please cite it as below:

Cámara-Menoyo C, Monteath T (2026). OSMtaggingR: Reproducible Datasets about OpenStreetMap’s tagging. R package version 0.0.0.9000, https://github.com/WarwickCIM/OSMtaggingR.

@Manual{,
  title = {OSMtaggingR: Reproducible Datasets about OpenStreetMap's tagging},
  author = {{C{\'a}mara-Menoyo}, Carlos},,
  year = {2026},
  note = {R package version 0.0.0.9000},
  url = {https://github.com/WarwickCIM/OSMtaggingR},
  collaborator = {Monteath, Timothy}
}

Installation

You can install the development version of osmtaggingr from GitHub with:

# install.packages("devtools")
devtools::install_github("warwickcim/osmtaggingr")

Example

This is a basic example which shows you how to solve a common problem:

library(osmtaggingr)

# Load the built in datasets.
data(proposals)
data(proposals_votes)

# Converting to tibble for better representation.
proposals <- tibble::as_tibble(proposals)

# Explore the dataset.
head(proposals)
#> # A tibble: 6 × 30
#>   status   title                  sortkeyprefix timestamp           pagelanguage
#>   <chr>    <chr>                  <chr>         <dttm>              <fct>       
#> 1 Rejected Proposal:Electricity   "\"electrici… 2022-03-15 02:38:02 en          
#> 2 Rejected Proposal:Motorcycle f… "\"tag motor… 2022-03-14 20:31:57 en          
#> 3 Rejected Proposal:Tramtrack on… "\"Tramtrack… 2022-03-15 03:40:16 en          
#> 4 Rejected Proposal:Amenity=loun… "Amenity=lou… 2024-10-30 16:40:54 en          
#> 5 Rejected Proposal:Aquatics cen… "Aquatics ce… 2022-03-14 15:18:12 en          
#> 6 Rejected Proposal:Artwork type… "artwork typ… 2022-03-15 22:24:41 en          
#> # ℹ 25 more variables: touched <dttm>, length <int>, fullurl <chr>,
#> #   editurl <chr>, pageid <int>, page_creator <fct>,
#> #   date_of_page_creation <dttm>, latest_editor <fct>,
#> #   date_of_latest_edit <dttm>, total_number_of_edits <dbl>,
#> #   total_number_of_distinct_authors <dbl>, proposal_status <fct>,
#> #   proposed_by <fct>, tagging <chr>, applies_to_node <lgl>,
#> #   applies_to_way <lgl>, applies_to_area <lgl>, applies_to_relation <lgl>, …

colnames(proposals)
#>  [1] "status"                           "title"                           
#>  [3] "sortkeyprefix"                    "timestamp"                       
#>  [5] "pagelanguage"                     "touched"                         
#>  [7] "length"                           "fullurl"                         
#>  [9] "editurl"                          "pageid"                          
#> [11] "page_creator"                     "date_of_page_creation"           
#> [13] "latest_editor"                    "date_of_latest_edit"             
#> [15] "total_number_of_edits"            "total_number_of_distinct_authors"
#> [17] "proposal_status"                  "proposed_by"                     
#> [19] "tagging"                          "applies_to_node"                 
#> [21] "applies_to_way"                   "applies_to_area"                 
#> [23] "applies_to_relation"              "definition"                      
#> [25] "statistics"                       "rendered_as"                     
#> [27] "draft_started"                    "rfc_start"                       
#> [29] "vote_start"                       "vote_end"

# Check the dataset's metadata
?proposals