Railway "superroutes"

(Three in a row here, I’ll keep quiet in this thread after this until someone replies).

There ARE such things in “logical rail networks” (across Europe, across North America…) as truly continent-wide spanning rail aggregations. In USA we do this by putting multiple route=railway relations into a super-relation, such as Relation: ‪Northern Transcon‬ (‪7403813‬) | OpenStreetMap, but these are relatively rare.

There are NOT such things in “logical rail networks” as truly continent-wide spanning rail aggregations which include proposed and under-construction segments as part of a “planning corridor,” as these do not really denote anything found in reality, but rather are more like data beasts for political planning purposes. We do not map those, and the original examples in this thread topic were found to be such things, so they were rightly deleted from our map database.

If the Rhine-Alpine Corridor CAN be shown to be a reality-based “railway corridor (aggregation),” such as the USA has (rarely) in instances such as Northern Transcon or Mid-America Corridor, I’d like to see these replicated all over Earth in OSM in the same way as we do so in the USA: as super-relations of “middle level” route=railway relations. These must be active rail transportation corridors, not for planning, not with construction zones, not with proposed segments, but ACTUAL rail infrastructure and ACTUALLY “logically aggregated.” (By a rail company or national railway entity).

I … have lost track (pun fully intended).

What is the difference between route=track and route=railway?

In short, unless you are in Germany, you may ignore (creating new) route=tracks relations. Our wiki states that route=tracks relations are “used for VzG line numbers (four digit, unambiguous identification of a railway line), while route=railway is used to refer to timetabled route numbers (three digit, Kursbuchstrecke referring to a route of passenger services).”

Otherwise (if not in Germany), just use route=railway relations for track infrastructure “grouping,” and route=train relations to describe passenger trains. In the (relatively rare) cases where route=railway relations really, truly “group into something bigger” (sometimes called “corridors,”) use a super relation of route=railway relations.

The history is confusing. The above is as simple as I can make it, and yes, our wiki can “do better.”


I have “fine tuned” our wiki accordingly. I hope it clarifies. More clarification is welcome (and encouraged in the wiki). If you are in a region / country where it is “different from this,” well, please step right up and share. The wiki has Germany and the USA and we both listen and discuss.

I deleted these 3 relations. See Changeset: 135167390 | OpenStreetMap

1 Like

I understand what you mean. But it seems to me as if the kursbuchstrecke is what should be a route=train.

It seems to me that we have three things, that should be used for two things. and that route=railway is used both for train routes and for railways (a specific stretch of tracks, under an unambiguous name or number), at least in the German context.

I understand the US context of having “superroutes”, where a long route consists of multiple subdivisions.

but then route=railway can’t account for the 13580 US superroutes and German individual railways together (which together I’d estimate at about 1000-ish?)

No, not being an expert in Germany’s railroad stuff, KBS = Kursbuchstrecke is nothing you can buy a ticket for. For me its seems to be a set of tracks which can be ‘opened’ for use by a railroad signal tower, or parts of a KBS can be ‘opened’ between two stations.

To characterize what OSM correctly does with rail in a high-level way:

In (and around?) Germany, three relation types are used to “group” rail: route=tracks, route=railway and route=train. The first two taggings semantically mean something specific to how Germany “groups” rail (and that’s OK), the third tagging is exclusively for a passenger train route.

In the USA (and other parts of the world), two relation types are used to “group” rail: route=railway and route=train (exclusively for a passenger train route, same as all over the world in OSM). Different than Germany, a route=railway can be a grouping for freight or passenger rail. “Which is which” isn’t known at this level and it doesn’t matter. However, while rare, each individual way in OSM can be tagged railway:traffic_mode=freight to specify that it carries freight-only traffic.

Additionally, in the USA (and other parts of the world), very large (thousands of km long) aggregations of rail which are logically known to be “heavily trafficked routes,” for example, are known as “corridors” such as “Mid-America Corridor” or “Northern Transcon(tinental).” These are denoted in OSM by grouping several contiguous route=railway relations together into a super-relation, also tagged route=railway. So you could say “three are also used” (correctly, if you include a super-relation of the second type as the third) and you’d be correct, but these are “a different three than those used in Germany” (as much of the world eschews route=tracks relations: these mean something quite specific, but only in Germany, apparently). See United States/Railroads - OpenStreetMap Wiki for a table-oriented explanation of this.

Now, what OSM does NOT correctly do with rail in any way whatsoever (as I have characterized and been quoted about above) is to create “logical rail networks” as truly continent-wide spanning rail aggregations which include proposed and under-construction segments as part of a “planning corridor,” as these do not really denote anything found in reality, but rather are more like data beasts for political planning purposes. We simply do not map those.

I’m not sure if @IIVQ’s “but then route=railway can’t account for 13580 US superroutes and German individual railways together (which is estimated at 1000-ish)” got answered by @ToniE’s reply.

Is everybody clear here? I’d prefer more discussion until we are, even if it seems tedious. We might need to tune up our wikis (USA rail and German rail wiki differentiate these, maybe they need to do a better job).

At first, thank you (everyone, but especially @stevea) to try and explain it. I am not attacking anyone here, just playing a bit of the devil’s advocate for clarity’s sake.

I don’t want to talk about passenger train routes, that’s route=train and is clear to me and used unambiguously.

The weird thing here is that the route=tracks and route=railway is used basically interchangeably for different countries. Which is fine for nerds looking at one country, but not for automated data consumers who want to work globally.
That’s why I’m hammering on the question “What is the difference between route=tracks and route=railway”. Not the country-specific implementation. I think there is none.


  • USA: route=railway is also used to group route=railways-relations into railway corridors (which I can understand, in their case - as it’s a generally well-known long-distance route with one single path from A to B where A and B are far away)
  • DE: After reading on kursbuckstrecke on Wikipedia a bit it’s basically “timetable table” which to me sounds something that shouldn’t be on openstreetmap as it relates to the operational grouping of lines which is something we said we wouldn’t do here. It also seems prone to change (e.g. in the Netherlands, the Amersfoort-Groningen stretch was in tables 33 and 80 in 1983 (you’d have to look up both tables), then 12 in 1999 and 51 in 2009. But intercity trains on that stretch would also be in table 11 in 1999 and 50 in 2009). If the German railways decide to change their timetable books then all railways tracks have to be changed in openstreetmap. Maybe this is something that’s very special to Germany, but I’d think that the grouping of railways as either an “infrastructure number” (as used by the track operator) or the Wikipedia article (which will usually but not always correspond) would be the good basis for the relation.
    Also, it seems to me as if there would be trains both local and long-distance that run on multiple kursbuch-tables and sections of track that fall under multiple kursbuch-tables (outside of the trivial short sections between a big station and the splitting point of different railways).
    What is the need to put KBS in OSM?
1 Like

It has actually been pointed out (by an author of the Carto renderer, so he is QUITE familiar with how OSM, its data structures and especially good rendering is “built”) that “groupings” of rail — at ANY “level” — is distinctly not required. He points out “who is to say what the ‘correct’ way to group these is?” Only people who think they know something about it, apparently.

If you think about it, that’s correct. A route=railway relation is both “a convenient grouping” (for YOU, for people who think about rail grouping like YOU do, perhaps also in your country / region who “deal with” rail agglomerations) AND it is also completely arbitrary. Made up. Not necessarily what you think it is. An hallucination of aggregation.

At first, I was sort of angry with him for positing such a ridiculous notion, especially as I consider how often I use the convenience of a route=railway relation (as a group, as a nice “handle” to hundreds or even thousands of individual railway=rail ways). But then, I thought “actually, he is correct.” And going even further, this is true for many “groupings” that OSM does with relations.

So, a good deal of this discussion is arbitrary, and there really isn’t any “correct” answer. The previous summary by @IIVQ is good, and I hope it helps people. So are all the wiki that describe route=railway relations and how things are “a certain method of doing things” in a particular country…that’s all helpful. But in the end, these “groupings” are only a consensual hallucination by all of us together, and don’t matter in the long run of “mapping,” but only how we think things “should be” somewhat “grouped together.”