Incomplete bicycle tags on paths in Belgium

Hi all,

I’m Lennard Derudder, an avid OpenStreetMap contributor and geomaticus at RouteYou.

Here at RouteYou we use OpenStreetMap for a lot of things, including for all our routings. Therefore it’s in our best interest that this data is as correct as possible and we often make modifications based on input from our users. Some years ago we decided to make ways with the highway=path tag inaccesible for our bicycle routings if they’re not specifically tagged with bicycle=yes (unless there’s a bicycle relation going over the path or if a verified bicycle route passes over it on our platform). This is a conservative approach that works well in regions where this information is consistently added, but there are also a lot of regions where you are indeed allowed to use a path with your bicycle while there’s no bicycle=yes tag. Some examples are:

  • These small acces roads to a cycle path going through a suburb of Bruges → OSM. Mapillary data suggests that bicycles are indeed allowed to use them → mapillary. Since no bicycle=yes tag is added, our bicycle routings go the long way round.
    image

  • Wallonia has a lot of ways that are tagged as highway=path, but don’t have a bicycle=yes or no tag when applicable. However since there are specific rules in place in Wallonia which say that paths (sentiers) are only for walking unless stated otherwise and tracks (chemins) can be used by bicycles, there’s already been a lot of work done by the OSM community to apply the correct highway tag. However, there still remain paths where no bicycle tag is present, but that are accesible for bike. An example is this path (OSM, StreetView) which clearly is accesible by bike as you can see on this picture by the fact that a bicycle relation passes over it. This path should therefore be tagged as bicycle=yes.

To fix these issues, we’ve made three maproulette challenges in Vlaanderen, Wallonië and Brussel (our main user base is located in Belgium) so we could easily spot problems and subsequently try to fix them. However, since we are a small team of 3 of which no one can work fulltime on these challenges, we would like to reach out to the OSM community to help us in fixing this incomplete information. If you are interested in this project, you can find the current MapRoulette challenges here.

If you have any questions about this or if you would like to discuss other solutions to this problem, feel free to start a conversation in the comments. If you would like to see a MapRoulette challenge added for your region outside of Belgium, don’t hesitate to ask so I can add it for you.

Happy mapping!
Lennard

Looking at the definition of path, I would assume you’d have less mistakes if you assume bicycle=yes unless there’s some reason to exclude it. Have you tried that approach, and if so, why did it fail?
The wiki does recommend to add these access tags, so your challenge looks like a good - though huge - idea. One thing to consider is that there’s still some discussion about what makes a path, and if C3 + exception for cyclists makes it bicycle=designated

2 Likes

Hi Joost, the problem with assuming that all paths are accessible for bicycles is that you inevitably make paths that are in reality inaccessible, accessible. Before we made the aforementioned decision, we got a lot of negative feedback from users that were sent over a certain path that turned out to be only for walking. When someone tells this to us, we do the necessary edits in OSM, but most of the users don’t make an effort to write an email about the problem.

A good example is the Hellegatbos near Kemmel in West-Vlaanderen. All of these paths had no bicycle tag, but were almost all of them forbidden for bicycles. If we would have made the assumption that all paths were accessible, our routings would have used all of these paths for mountain biking (I already added bicycle=no here a few months back though). Other good examples are / were Claeys Bouuaert domein in Gent, Kasteelsite Heusden-Gent and surrounding areas, Galgebossen between Poperinge and Ieper, … All of these cases were already partly or mostly fixed by us, but only because we knew that this was incomplete by already having gone there. There are undoubtedly a huge amount of other places where this is the case due to which you can not assume that a path is accessible for more than just walking.

Another problem is that highway=path is a very generic value for when you don’t really know what else it could be and it is used that way in a lot of places worldwide. In those cases, the necessary tags almost always aren’t added and we therefore can not assume it to be accessible for everything

2 Likes

OSM tags for routing/Access restrictions for Belgium and surrounding countries + World-Wide has for highway=path:

Screenshot_20230922_211739

A bad idea I think.

You can tag these paths as highway=path + bicyle=no + mofa=no + moped=no + horse=no but I think these should be just tagged as highway=footway.

1 Like

That’s not a very useful critique after @Lennardderudder explained their rationale…

Fwiw, I think their decision makes sense, if they want to be prioritise avoiding illegal/unfit routes.

I did read @Lennardderudder and understand the problem but the solution should in my opinion not be to that paths with bicycle=no + mofa=no + moped=no + horse=no but just to retag those as highway=footway.

1 Like

Maybe creating a Maproullette challenge for going over all the paths in Belgium to see (using street imagery) if they’re cyclable. it’d be a lot of work and there’s no way there’s curently street footage for all those locations. But it could be a good long term challange

We already created MapRoulette challenges for Flanders, Brussels and Wallonia and I linked them in the post, but we didn’t add street imagery directly in the challenges. Is this possible to do in MapRoulette or do you just mean to use StreetView / Mapillary simultaneously with MapRoulette to check the paths?

Sorry, hadn’t fully read the post it seems.

This diary might help explain how Mapillary works inside of Maproullete: mvexel's Diary | MapRoulette 3.3.3 is out! | OpenStreetMap

Coming up late on this.
I fully understand your problem and I agree there is no easy solution.
But I’m wondering if we are not missing the point here :slight_smile:

  • If we want to eliminate the paths explicitely forbidden for bicycles, I think it is best to add bicycle=no that bicycle=yes to all paths which are not. I expect much less work
  • If we want to ensure the quality of the paths, I’d make a challenge to ask exactly that. Much more work, but highly relevant.

In the meantime, do you consider path + relevant surface=* when available as a criteria for your routing? That could be a good start and help narrow the search on paths explicitely forbidden to bicycles.

I am tagging according to the general Belgian rule: everything that is not forbidden is allowed. If there is a traffic sign prohibiting access for bicycles it should be tagged as bicycle=no. If there isn’t, then access for bicycles is assumed. I am also concerned that if trails suitable only for mountain bikes are tagged as bicycles=yes that other route planners select these trails for regular bikes too. Since a while now I’ve been giving more attention to road quality with adding the tag “smoothness” to make clear what to expect from a road.

2 Likes

Hi Lennard,

Coming back to this, I’d like to add the following considerations, because there is a risk of confusion between cyclability and access to bicycles :

  • bicycle=yes on a path has no added value except for RouteYou because it is default. Even for you, it would only have a value if all paths were tagged yes or no, and for all countries where you operate.

  • bicycle=no definitely has a value, provided that it is applied only when explicitely forbidden (i.e. not systematically in Wallonia)
    → To improve data on access, I’d suggest to focus on the zones where we can expect the most access restrictions : (semi-)urban environments, parks and nature reserves. Maybe you can find a way to filter out these zones in your calculation tool.

  • surface=* is the most common criteria to evaluate the cyclability of a path for different types of bikes (runbike, citybike, gravel, MTB), and I suppose it would help you a lot if it was completed.
    Alternatives like smoothness can be found here: Bicycle - OpenStreetMap Wiki.
    → To improve this, it might be useful to adapt your Maproulette challenge accordingly and look for competion of the surface=* tag.

And of course, there is a big grey zone we have to accept : a lot of paths explicitely forbidden where you’d bother noone if you pass anyway, others without signage but are forbidden and where you get remarks by every passerby, some who are authorised but you still could encounter some angry neighbours. I guess every mountainbiker knows that :wink:

It’s not just routeyou, other route planning developers struggle with highway=path as well. The wiki also seems to recommend adding explicit tags.

But I do agree that just adding bicycle=yes on paths that are technically legal to cycle on is risky business, especially without some guidance so as to which tags to add to avoid routers taking them.

You are correct that it’s the default and doens’t add value at first sight. But OSM data is sometimes a ‘dirty mess’. Specifically here with highway=path. The fact that a path does not have bicycle=no could be interpreted as in implicit bicycle=yes (in theory)… or the mapper doesn’t know if it’s yes or no and didn’t add anything. That’s why I think it’s useful to add bicycle=yes.

On a side note, I have changed opinions about this. When I started out, I also thought the default on the wiki page is sufficient, but lately I became more pragmatic.

I must say I find the Maproullete challenge intresting and very useful, and I’m thankful that you put time in creating it. After doing some challenges, I have the following remarks:

Did you filter out the paths that have a bicycle route going over them? If yes, I found this one (Way: 773732321 | OpenStreetMap) that might have slipped past your filters (it has route=mtb relation going over it).

A second thing: 66.900 task is a bit daunting :). Perhaps you could bring the number down by filtering on paths unlikely causing routing confusion: Short, dead end paths. For example this one: Way: 563123564 | OpenStreetMap

What does “Not an issue” mean in this case? The path is missing bicycle=yes or is missing bicycle=no. So how can it be “not an issue”?

Hi S8evq

Did you filter out the paths that have a bicycle route going over them? If yes, I found this one (Way: 773732321 | OpenStreetMap) that might have slipped past your filters (it has route=mtb relation going over it).
A second thing: 66.900 task is a bit daunting :). Perhaps you could bring the number down by filtering on paths unlikely causing routing confusion: Short, dead end paths. For example this one: Way: 563123564 | OpenStreetMap

I didn’t filter out all the ways that had a bicycle relation going over them and neither did I filter deadends. The overpass query I used was pretty basic and in hindsight, I should’ve added a few more restrictions like the ones you pointed out.

What does “Not an issue” mean in this case? The path is missing bicycle=yes or is missing bicycle=no. So how can it be “not an issue”?

Not an issue here means that whether you add bicycle=yes or bicycle=no on a path, it doesn’t make a difference because you would never route over it anyway due to it being a dead end. Some decisions were made mainly with my RouteYou glasses on and not my OpenStreetMap glasses, but I try to keep that to a minimum. However, these paths would’ve been filtered out if I used your suggested filters, so in that case they would also have been seen as “not an issue”, but they would not have been tagged as such in Maproulette.

You are correct that it’s the default and doens’t add value at first sight. But OSM data is sometimes a ‘dirty mess’. Specifically here with highway=path. The fact that a path does not have bicycle=no could be interpreted as in implicit bicycle=yes (in theory)… or the mapper doesn’t know if it’s yes or no and didn’t add anything. That’s why I think it’s useful to add bicycle=yes.

Some other things I have been doing since making this post and that would make the tagging of paths with bicycle=yes better, is also adding surface and smoothness tags when I could figure them out using streetlevel imagery. In this way, it also removes some of the vagueness of the bicycle=yes tag, since that can also mean a lot of things (eg: racebikes and mountainbikes are both bicycles, but you wouldn’t send them over the same paths).

Perhaps another, rather small remark: the default changeset comment could be a bit more descriptive. Currently you providing only the link. This forces other mappers to click it in order to see what the changeset is about. (but this is just a minor issue). I would add one sentence of text in addition.

And yet another idea. Perhaps filter out the paths with “informal=yes”? As these informal paths usually have no traffic signs to map. Filter out paths inside amenity=school.

extra addition: filter out the paths with informas=yes + path=desire