How to tag the 'local railways'?

I got a little bit of a discussion with @flha127 about how to tag the NMVB rails in Belgium. (NMVB = Nationale Maatschappij van Buurtspoorwegen = National Company of Local Railways) (wikipedia article)
Wiki translates the ‘Buurtspoorwegen’ to ‘light rail’, but that’s a bad translation imo. ‘Local Railways’ is much better.

Here’s a link to the original (short) discussion

I feel the whole system should be tagged as a single type of transport, not flipping back and forth between two modes.

But I also lack the mapping experience to actually say what is wrong or right. Hence I come here to ask for more opinions. Hopefully the mapper is active here, so he can join the discussion. :slight_smile:

1 Like

In general, if there’s any problem, you can fallback to =rail to be generic. It doesn’t mean mainline only. But here, it can have the opposite solution by making them all =light_rail , which can still have some street-running mixed traffic shared lane sections.
What are interurbans using now? This distinction can be blur for the speed of some, and upgrading to heavy rail in capacity and grade-separation in history.
Fundamentally, railway=rail could be adopted as the only track feature in a rethink and break from OSM, with rail= =mainline . =tramway , =heavy & =light (could be categories for others) , =subway etc. Then the feature doesn’t need to be changed (or worse redrawn by someone) when it changes use in history. The distinction of eg =narrow_guage could be poorly defined in history, and it’s poorly named anyway.
Or at least there should be an equivalent to building= + building:use= if railway= is considered as what it is built as. The possibility of using tram=yes etc doesn’t mean a main type can’t be defined.

In this case most lines got scrapped. There are two lines still in operation, still as tram services.

I don’t think the railway tag needs to be re-invented for this case. I just think that you shouldn’t flip between light_rail and tram depending on whether the section is street running or not.

People over at Discord agreed with this. Saying you should put it all as tram or light_rail, and then have a separate tag for streetrunning:yes. (tram systems on OSM also don’t tag sections with their own ROW as light_rail)

With the asterisk that the tram tag is the better suiting tag here. These were reffered to back in the day as trams, and the term light_rail didn’t exist until much later.

Why should it be dependent on the etymology? Then the Metropolitan Railway won’t be =subway until the 1890s, around Glasgow’s opening? subway | Etymology of subway by etymonline (of course on the other hand, the subsurface lines are very much related to mainline, even with steam locos and freight; should it be =rail until the steam and freight stops???)
Technically, changing between railway= type is not always a problem. Changing between =tram / =light_rail vs =subway , =tram / =light_rail vs =rail , and =subway vs =rail is possible. The difference is as said, both =tram and =light_rail can be street-running, and are very similar, so it should be decided by something else. Trams are mostly in urbanized area and have short stop spacing, among other characteristics. Interurbans are not.
You need to define “street-running” clearly. embedded_rails= is not supposed to be to be used when the tracks don’t run on shared lanes, although something might be created for showing they are grooved rails, can be driven in emergencies, or are directly alongside roads (cf is_sidepath= ).
From Wiki, NMVB can carry freight. That’s a less tram-like factor, but not =light_rail either. However it is possible for different modes to run on different track types, eg route=tram on railway=rail .
Which is also why I mentioned =rail for completeness, and the theoretical possibility of expanding its use. Rail use change in history, and as you said the terminology as well. It may be difficult to determine what railway= it should be. Then it could be better to let the “vehicles” speak for them, whether tram=yes / light_rail=yes , route=tram / route=light_rail , or route=railway and route=track . type=route has the added advantage of rel for changing attributes along history without needing to redraw lines.

okay. Let’s do one thing at a time. I don’t care if you tag it tram or light_rail. What I’m trying to achieve here is confirmation by more experienced mappers that it should be tagged as one, not both depending on whether this 100m section is streetrunning or not.

Whether the rail= should change or not is a worthy discussion, sure; But definitely out of scope for this topic. I just need a ‘yes it should be one or the other’ and then we can start converting this system and cleaning the ‘mess’ (imo) up.

If you want to thinker and change the way rails are handled, cool. But now I need a fast answer before more of this mess is made. If in the (near) future the community decides we should change the way rail= is handled we can convert it again (along with the rest of the world).

In OSM, railway=light_rail and route=light_rail have prompted quite a bit of controversy over the years, due to the lack of a clear-cut distinction between light rail and other forms of railways. In North America, most systems would be considered light rail or subway without any controversy or ambiguity, but some hybrid systems are much more difficult to categorize, such as BART and Muni Metro in San Francisco.

Most of BART is tagged railway=subway, even overhead segments, but some incompatible lines are tagged differently. An AGT line is tagged railway=monorail for lack of a better tag, and a DMU line is railway=light_rail. At no point does a railway=monorail or railway=light_rail way connect to a railway=subway way. A combination of the DMU line and a subway line is marketed as a single route, connected only by a transfer station that you can only physically access via one of the two lines. For this situation, a route master relation joins two separate route relations with different route=* values.

To be clear, those different systems don’t and can’t physically connect with each other. Muni is kept as =light_rail , despite being tram-like on street in history and by modern standards. SEPTA has =tram , while other tunnel= uses are mostly false inside building= of depots.
I don’t have good examples of interurbans of Japan. Most seem badly changing between different railway= , including =rail for some reason.

If it helps, light rail can also have street-running segments, as can heavy rail for that matter. But dedicated off-road trackage is less common for trams (aka streetcars).

If a largely off-road light rail or subway line has some relatively minor street-running segments, I don’t think tram is needed. Conversely, if a largely street-running tram line diverges from the roadway to round a curve or cut through a building, there’s no need to classify part of the line differently, since there are other tags for all that.

After all, terms like heavy rail, light rail, and tram actually refer to vehicles, but the vehicle doesn’t transform into a different kind of vehicle just because the tracks enter a different environment. That’s my personal opinion, though admittedly I’m not an expert rail mapper.

What would we agree to be the correct tagging scheme here?

OSM wiki says if the track is streetrunning you should tag the ‘highway’-element with embedded_rails=tram (in case of a tram obviously) The idea is to make roadrunning vehicles aware of the tramtracks in the road.

If the tram has separate rails for 2 directions you add embedded_rails:lanes=2

But I am unsure if this is capable of aligning properly with 2 tracks going from streetrunning to their own ROW?

In practice (at least in Belgium) I find trams just have their own lines drawn. Whether the tram goes from streetrunning to their own ROW changes nothing to the tags. (unsure how this is handled in other countries)
(edit: looking at Amsterdam, they draw separate lines for the tram tracks, and also tag the highway to make it aware)

So either we copy the latter, or we add a tag:
rail:streetrunning=yes ?

For the rails there is the tag embedded=yes. This tagging scheme exists because the rails are separately drawn, so data users can make a connection between the two elements, not to avoid drawing them seperately.

There are some differences, eg. they usually have different flange dimensions what would cause derails if you would try to operate a tram on a mainline or vice versa. There are systems that are made to be compatible, but it isn’t the norm.
In fact lots of definitions of those three, especially for light rail focus on the ROW character, like the amount of grade separation, not the vehicles.

To come back to the original question I agree that constantly switching between light rail and tram is wrong, since the switching between street running and separate ROW is eactly what one definition of light rail is.
In general I would choose the tag on the network character, not one segment of track.


For the moment, I can agree with the idea of tagging everything =“tram”.

However, I agree with Kovoschiz, we should rethink the tagging system for (light) railways.

Charleroi is light rail, the Kusttram is in between tram and light rail.

These were referred to back in the day as Tramway vicinal (fr) or boerentram (nl), there were urban tram routes (example below), this was not the majority by far.

Route 65, Jumet, unknown author, source : Tramways dans la province de Hainaut

Most of the lines were interurban which ran mainly on roadside tracks or private rights-of-way.
The closest thing to these lines (still existing) are the narrow gauge lines in Switzerland like the Frauenfeld-Wil-Bahn or the Wynental- und Suhrentalbahn and they are tagged as rail=narrow_gauge and again I agree with Kovoschiz about this tag.

The case of subways is different, they are totally grade separated which may justify maintaining the rail=subway tag but as for light_rail, narrow_gauge and tram lines I would prefer,

  • either a single category “light_rail” or “light_railway” and use either a street_running=yes tag or something more precise like railway:body=mixed*; special* ; independent*
  • or maintain the different narrow_gauge/light_rail/tram tags and add the railway:body tag.

*See BOStrab § 16 (4) for the railway body types. § 16 BOStrab - Einzelnorm

The important thing is for mixed networks (light_rail, interurban…) to be able to differentiate between the different types of railway:body.

The discussion of changing the way the current tagging system works is beyond my experience. I’ll let you guys discuss that. :smiley: (not to mention that I have a bit of an odd personal light_rail definition :smirk: )

Great that we can come to some agreement. If you want help to re-tag certain stretches, hit me up.