classifying places of worship for risk management
Posted by joost schouppe on 20 October 2025 in English. Last updated on 21 October 2025.When processing places of worship for the National Crisis Center (Belgium), I run into the problem that it’s quite hard to filter just “significant” places of worship from OSM. We’re interested in places where it’s likely that regular services take place, or that get regular crowds (e.g. weddings & funerals). But it’s hard to remove all the little wayside crosses or chapels that are just not relevant because their tagging is too limited.
uMap with all the places of worship that could not be classified
To do so, we start from all places with https://wiki.openstreetmap.org/wiki/Tag:amenity=place_of_worship. For our search area (Belgium + areas we have projects in + a buffer), that give us about 45.000 locations.
My initial strategy was to then exclude “obviously small places”. There’s three tags we can use for that:
place_of_worship(and the deprecated but still usedplace_of_worship:type)building(andbuilding:part) which gives an idea of the function of the buildinghistoric, which is often used to indicate wayside crosses, shrines and chapels
The most useful tag here is building, with which almost 70% of all cases can be classified as large (church, cathedral, temple, mosque) or small (chapel, wayside_chapel) etc. place_of_worship and historic just add a few percent together.
The fact that there are service_times filled in helps us classify another 7% as large. This tag does contain a lot of free text, including several cases which amount to “none” in some way.
I also make the assumption that a place without a name nor religion tag is likely not significant.
Guesstimates for the rest
I reluctantly made the assumption that this part of the world likely doesn’t have much Islamic places that are quite small, for another 1% assigned to a class. This of course makes the logic only applicable in parts of the world without a long Islamic tradition.
And while name is for the name only, apparently it is quite useful to look at the name. Searching for kapel/chapelle and moschee/moskee/mosqu/kerk/church/kirche/église in the name, allows to classify 11% of the data.
That still leaves us with 14% of cases where we have no idea whatsoever about the type of place of worship. I guess I could include the size of the building too. But we’re only relatively certain for about a good 70% of the cases, and another 14% isn’t much more than a guess. So I’d rather we improved the quality of the tagging instead.
| large | small | likely large | likely small | no idea | total | % of total | |
|---|---|---|---|---|---|---|---|
| place_of_worship | 43 | 405 | 0 | 0 | 0 | 448 | 1% |
| place_of_worship:type | 0 | 84 | 0 | 0 | 0 | 84 | 0% |
| building | 20277 | 7913 | 0 | 0 | 0 | 28.190 | 63% |
| building_part | 50 | 37 | 0 | 0 | 0 | 87 | 0% |
| historic | 4 | 966 | 2 | 12 | 1 | 985 | 2% |
| service_times | 3098 | 0 | 0 | 0 | 0 | 3.098 | 7% |
| name | 0 | 0 | 3088 | 1886 | 0 | 4.974 | 11% |
| lack of name and relgion | 0 | 0 | 0 | 293 | 0 | 293 | 1% |
| muslim | 0 | 0 | 570 | 0 | 0 | 570 | 1% |
| none | 0 | 0 | 0 | 0 | 6361 | 6.361 | 14% |
| total | 23.472 | 9.405 | 3.660 | 2.191 | 6.362 | 45.090 | 100% |
| % of total | 52% | 21% | 8% | 5% | 14% | 100% |
How to improve?
Now for Belgium, I’d like to fix this with one of our MapRoulette challenges. We’re talking about 1014 uncertain places and 754 completely unknown places in Belgium. When it comes to instructions though, I’m not 100% convinced on what to recommend.
These are some things I thought about:
- for the smallest places, add
https://wiki.openstreetmap.org/wiki/Tag:historic=wayside_shrineorwayside_cross(or if you are so inclined, usehttps://wiki.openstreetmap.org/wiki/Key:place_of_worshipfor this. I wouldn’t offer this as the main suggestion as it is used a 100 times less then thehistoricsynonyms). - for small things you can actually enter, add
https://wiki.openstreetmap.org/wiki/Tag:building=chapel(if polygon) orhttps://wiki.openstreetmap.org/wiki/Tag:place_of_worship=chapel. There’s no need to addwayside_in front of it - for less common small places (holy well, Lourdes grotto, calvary), there are some good suggestions on the place_of_worship wiki page
- for larger places, try adding the building tag (e.g.
https://wiki.openstreetmap.org/wiki/Tag:building=churchorhttps://wiki.openstreetmap.org/wiki/Tag:building=mosque). If the place is mapped as a point, try to map it on the building instead (but don’t force it if that doesn’t make sense). Only do this if the building was originally built for this function. - If possible, add
service_times. These can be hard to find. - If the building type does not help, and if there are no services (or you don’t find them or just want to save some time, add
https://wiki.openstreetmap.org/wiki/Tag:place_of_worship=church,mosqueetc.. This goes against the current place_of_worship wiki), but it helps with edge cases. And I’m not entirely convinced that if there are no regular service_times, that should lead to exclusion. - When you come upon
place_of_worship:type, consider converting it toplace_of_worship - Review if it is a place of worship at all. It could be a community_centre instead, or have been closed by now
It was also suggested to simply remove the place_of_worship tag from the places that don’t really have a significant worshiping function, as the very description of a place of worship is A place where religious services are conducted. But I think that’s a losing battle; and it opens the door for subjectivity on the decision where it is or is not “active enough” to merit the tag.
My strategy would be to start with the Belgian places where I have no clue, and then move on to the cases where we do have an idea but aren’t certain. I can easily make an export for any area in Europe if you want to run your own challenge.
Did that make sense at all?
So why did I write this? For one, as a way to just analyze this problem a bit more. But of course also to open the discussion. Which approaches did I miss? Are my guidelines acceptable? What would you add?
Note that when making MapRoulette instructions, it’s hard to get folks to actually read them. The shorter the instructions, the more likely people actually read them. It should also be encouraged to mark tasks as “can’t complete” when folks aren’t certain, or at least mark the edit for review and leave a comment.
If you live in our search area, have a look at the uMap and maybe fix a few places around you. Simply click on a POI to get a link to the object. Looking forward to your feedback!
Logic overview
If you want to have a closer look at the logical steps, check below. The choice_based_on computes the reason we classify something, the likely_size saves the result. This is just some ad hoc code to help with the analysis and a possible MapRoulette task. The records are classified step by step and only rows that have not been classified yet go through the next rule. So changing the order of rules would change the “blame” percentages, though not the end results.
osm_all <- osm_all %>%
https://wiki.openstreetmap.org/wiki/Tag:mutate(choice_based_on=case_when(
place_of_worship %in% c('wayside_chapel', 'wayside_shrine', 'lourdes_grotto', 'cross', 'shrine', 'altar', 'calvary' ,'holy_well', 'tree_chapel', 'chapel', 'tree') ~ 'place_of_worship',
place_of_worship %in% c('church', 'monastery', 'mosque', 'temple') ~ 'place_of_worship',
place_of_worship_type %in% c('wayside_chapel', 'wayside_shrine', 'lourdes_grotto', 'cross', 'shrine', 'altar', 'calvary' ,'holy_well', 'tree_chapel', 'chapel', 'tree') ~ 'place_of_worship:type',
building %in% c('wayside_chapel', 'wayside_cross', 'wayside_shrine', 'chapel', 'grotto', 'cross', 'shrine', 'bell_tower', 'cabin', 'cave', 'cemetery_chapel', 'hospital', 'ossuary') ~ 'building',
building_part %in% c('wayside_chapel', 'wayside_cross', 'wayside_shrine', 'chapel', 'grotto', 'cross', 'shrine', 'bell_tower', 'cabin', 'cave', 'cemetery_chapel', 'hospital', 'ossuary') ~ 'building_part',
!is.na(services) | !is.na(service_times) ~ 'service_times',
is.na(name) & is.na(religion) ~ 'lack of name and relgion',
historic %in% c('wayside_shrine', 'wayside_cross', 'wayside_chapel', 'chapel', 'ruins') ~'historic',
building %in% c('church', 'basilica', 'cathedral', 'chruch_of_christ', 'cloister', 'convent', 'funeral_hall', 'kingdom_hall', 'monastery', 'mosque', 'nunnery', 'synagogue', 'temple') ~ 'building',
building_part %in% c('church', 'basilica', 'cathedral', 'chruch_of_christ', 'cloister', 'convent', 'funeral_hall', 'kingdom_hall', 'monastery', 'mosque', 'nunnery', 'synagogue', 'temple') ~ 'building_part',
grepl('kapel|chapelle', name, https://wiki.openstreetmap.org/wiki/Tag:ignore.case=TRUE)==TRUE ~ 'name',
grepl('moschee|moskee|mosqu|kerk|church|kirche|eglise|église', name, https://wiki.openstreetmap.org/wiki/Tag:ignore.case=TRUE)==TRUE ~ 'name',
https://wiki.openstreetmap.org/wiki/Tag:religion=='muslim' ~ 'muslim',
TRUE ~'none'
),
https://wiki.openstreetmap.org/wiki/Tag:likely_size=case_when(
place_of_worship %in% c('wayside_chapel', 'wayside_shrine', 'lourdes_grotto', 'cross', 'shrine', 'altar', 'calvary' ,'holy_well', 'tree_chapel', 'chapel', 'tree') ~'small',
place_of_worship %in% c('church', 'monastery', 'mosque', 'temple') ~ 'large',
place_of_worship_type %in% c('wayside_chapel', 'wayside_shrine', 'lourdes_grotto', 'cross', 'shrine', 'altar', 'calvary' ,'holy_well', 'tree_chapel', 'chapel', 'tree') ~'small',
building %in% c('wayside_chapel', 'wayside_cross', 'wayside_shrine', 'chapel', 'grotto', 'cross', 'shrine', 'bell_tower', 'cabin', 'cave', 'cemetery_chapel', 'hospital', 'ossuary') ~ 'small',
building_part %in% c('wayside_chapel', 'wayside_cross', 'wayside_shrine', 'chapel', 'grotto', 'cross', 'shrine', 'bell_tower', 'cabin', 'cave', 'cemetery_chapel', 'hospital', 'ossuary') ~ 'small',
!is.na(services) | !is.na(service_times) ~ 'large',
is.na(name) & is.na(religion) ~ 'likely small',
historic %in% c('wayside_shrine', 'wayside_cross', 'wayside_chapel') ~ 'small',
building %in% c('church', 'basilica', 'cathedral', 'chruch_of_christ', 'cloister', 'convent', 'funeral_hall', 'kingdom_hall', 'monastery', 'mosque', 'nunnery', 'synagogue', 'temple') ~ 'large',
building_part %in% c('church', 'basilica', 'cathedral', 'chruch_of_christ', 'cloister', 'convent', 'funeral_hall', 'kingdom_hall', 'monastery', 'mosque', 'nunnery', 'synagogue', 'temple') ~ 'large',
grepl('kapel|chapelle', name, https://wiki.openstreetmap.org/wiki/Tag:ignore.case=TRUE)==TRUE ~ 'likely small',
grepl('moschee|moskee|mosqu|kerk|church|kirche|eglise|église', name, https://wiki.openstreetmap.org/wiki/Tag:ignore.case=TRUE)==TRUE ~ 'likely large',
https://wiki.openstreetmap.org/wiki/Tag:religion=='muslim' ~ 'likely large',
TRUE ~'no idea'
)
)
Discussion
Comment from Eebie on 20 October 2025 at 16:49
Comment from joost schouppe on 21 October 2025 at 12:24
Good point, I’ve noticed a few places myself that were absolutely not a place of worship. Your example - if it still existed - should have been a community_centre instead.
Comment from Jez Nicholson on 22 October 2025 at 07:01
Thank you for reminding me how literal OSM contributors can be! I had not even considered that a tree might be marked as a place of worship. Or maybe there are regular congregations at the site?!
Comment from OSMDoudou on 22 October 2025 at 21:48
Interesting challenge! Here is a couple of ideas, some of which are bit wild, maybe.
To identify and characterise the place from its tags
To assess the significance of the place
For the data quality
On the long-run
Hope this helps.
Comment from philippec on 23 October 2025 at 06:58
It is a good thing that I cleaned up the chapels some years ago.
It was a careless mess, as usual. Now there is a very easy method to attach a mapillary picture to the object, it needs just one click.
Comment from Tolhuis on 23 October 2025 at 15:00
In the meantime, could perhaps most of these ‘catholic’s’ be converted to ‘roman_catholic’? There are only a few smaller branches that are Catholic, but not Roman Catholic. In principle, all Belgian chapels and village churches are Roman Catholic. (Just be careful with churches that now house a different community, for example.) https://overpass-turbo.eu/s/2edH
Comment from Koen_VdE on 29 October 2025 at 10:00
I think you can make the MapRoulette instructions easier by splitting up the tasks linked to a point and tasks linked to a polygon. This way we can clean up the very small wayside shrines and crosses etc. If this MapRoulette is easy we can get the help of less advanced users. If you can launch this MapRoulette I will do my best to get casual (govermental) users in my region to help.