OpenStreetMap logo OpenStreetMap

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.

Map with all the places of worship that could not be classified 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 used place_of_worship:type)
  • building (and building:part) which gives an idea of the function of the building
  • historic, 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_shrine or wayside_cross (or if you are so inclined, use https://wiki.openstreetmap.org/wiki/Key:place_of_worship for this. I wouldn’t offer this as the main suggestion as it is used a 100 times less then the historic synonyms).
  • for small things you can actually enter, add https://wiki.openstreetmap.org/wiki/Tag:building=chapel (if polygon) or https://wiki.openstreetmap.org/wiki/Tag:place_of_worship=chapel. There’s no need to add wayside_ 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=church or https://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, mosque etc.. 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 to place_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'
          )
         )
Email icon Bluesky Icon Facebook Icon LinkedIn Icon Mastodon Icon Telegram Icon X Icon

Discussion

Comment from Eebie on 20 October 2025 at 16:49

  • Meanwhile I made that the 8 Sikh temples in Belgium are in OSM as building=temple (plus place of worship). They aren’t small.
  • Not all chapels are small. The difference between a chapel and church is that churches were consecrated as parish churches. Chapels were not. In a monastery, such a chapel can be quite large. But there are others too. For risk management purposes, I can understand that there is a difference between a small chapel that can accommodate 10 people and a large chapel that can accommodate 70 or more.
  • Currently, I see a whole movement in the municipalities to deconsecrate churches that attract too few people and are too expensive to maintain. I estimate that 70% have been repurposed as community centers or something else, or they are being demolished. I try to follow this around me and delete place_of_worship, but that is not easy.
  • In Wallonia, there are also quite a lot temples of Antionism. They are not so small. They are mapped as temples, churches, chapels, or yes.

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

  • Check if there are clocks and bells
  • How many entrances and entrance types, material, or mechanism (f.ex. glass doors)

To assess the significance of the place

  • Interpret surrounding micro-mapping as a sign of importance (footways, recycle bins, benches, etc.)
  • Assess for proximity / density with other places of worship
  • Assess the vulnerability / exposure by the proximity from high-speed roads or administrative borders (based on NCC scenario and intelligence)
  • Assess the importance of the place for its proximity from large infrastructure (parking, shopping malls, etc.)

For the data quality

  • Evaluate whether a MapComplete theme could provide with a more comprehensive experience than MapRoulette
  • Develop Panoramax image recognition to recognize places from street level imagery (although coverage is very limited over here so far and I don’t know if it can easily be trained to recognize such places)
  • Cross-check with open data sources:
    • For places with Wikidata, Wikipedia, or Wiki Commons resource tags, analyze the quantity of data attributes, page length, number of alternate languages, etc
    • Analyze the Wikidata info (type and number of attributes, number and length of Wikipedia pages and translations)
    • For places with a website tag, analyze the website with an LLM to understand if the site is just a historical description or a formal website with opening hours, ceremonies information, etc
    • Process Wikimedia commons pictures through image recognition
    • Cross-check with governmental open databases based on name, geolocation or heritage reference number

On the long-run

  • Update the Wiki to guide mappers into better factually tag places

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.

Log in to leave a comment