Let's talk about highway classification in OSM

But the problem is on how the meaning of “expressway” can be vastly different, compared to freeways and motorways. The SABRE Brits have already called “It does not have a single definition, and so its use can be confusing.” from start.

  • Devon: Grade-separated divided road except towards the western terminal through the Tamar Bridge (Roundabout) toll plaza (with what resembles a =rest_area , and transit-only =service road), and Saltash Tunnel (intersection).
  • Runcorn: Only have a pair of roundabouts on the terminals on the =primary Bridgewater Expressway on the north side
  • Knowsley: All-purpose extension of M57 as A5300
  • Aston: A38(M)

The surveyed question 5 was “had you heard of the term” only. What’s next explained their understanding.
3. “A route designed to allow the movement of bulk traffic through an area without interruption”

  • “There also appears to be a view amongst some SRN users that the Expressways concept draws similarities to certain
    American roads, such as ‘freeways’. The similarities would appear to stem from the Expressway features of minimal
    stopping along the route (no traffic lights) and, again, the speed that users will be able to travel at using the Expressway.”
  1. “It is like a freeway in the US, so a motorway that has no stops at traffic lights or roundabouts /
    intersections but free passage for as long as a vehicle is on it”
  2. “Like a motorway, but American or from another country”
    The next highlight is about tolling. I’m guessing it’s unrelated, but that M6 is by Midland Expressways.

Q10. MaxDiff ranking of essential features https://s3.eu-west-2.amazonaws.com/assets.highwaysengland.co.uk/Knowledge+Compendium/2016-17/Expressways+customer+insight+and+engagement.pdf#page=38

  1. “Exclusion of slow moving vehicles (e.g. tractors), pedestrians and cyclists, who will be provided with
    alternatives such as pedestrian/cycle routes, bridges or underpasses”: 9.88
  2. “No right turns which force a driver to cross the opposite carriageway (exits will always be via a junction on the
    left hand side)”: 8.94

Q12. The most response was 34% “There roads are like motorways, but should be called Expressways”, while 31% “like A-roads” are still to be differentiated from them. There’s 10% “fundamentally just like motorways and should not be called anything different”. https://s3.eu-west-2.amazonaws.com/assets.highwaysengland.co.uk/Knowledge+Compendium/2016-17/Expressways+customer+insight+and+engagement.pdf#page=46

None of this is terribly different than the situation in the U.S. Essentially, “expressway” started out as one of several interchangeable words in the names of highways (alongside “highway”, “freeway”, “parkway”, and “thruway”). Then the traffic engineering profession needed to distinguish freeways from something not quite up to that standard, so they went with “expressway”. In the West, that word wound up in more expressway names, more consistently, and eventually the public there quietly adopted it as a generic word for highways of the same kind. The East built expressways too, but a common naming scheme didn’t arise there.

What makes “expressway” so challenging is that it’s both a widespread technical term and a more regional colloquial term that is defined by intuition either way. If you ask the average motorist on the East Coast to define an expressway, they’ll probably get it wrong. If you tell them there are two kinds of highways – freeways and expressways – and ask them to define the two terms, they’ll probably come up with something reasonable.

These quotes highlight the potential for public confusion if Highways England were to roll out Expressways as more than an internal classification. The same would happen in parts of the U.S. My point stands that the tag fills a lexical gap and serves a technical need. It’s a terrible word but better than the rest.

1 Like

And in the North West I strongly suspect it’s because the A55 along the North Wales coast (the prime holiday route for thousands of Mancunians and Liverpudlians) is often known as the North Wales Expressway.

It’s occasionally been used to mean “motorway but we’re not going to call it a motorway because otherwise we’ll encourage a whole new generation of Swampys” - e.g. the now cancelled Oxford–Cambridge Expressway.

1 Like

What I disagree with is using a word that refers the higher-standard one in much of the world, to fill 2 gaps (limited-access widely-spaced at-grade intersections, and controlled-access grade-separated divided road) by lumping them together as one. This creates other problems, while it may solve some. It doesn’t seem to be a large net gain.
If a single tag characterization is needed, I would choose access_control=

We tried that in Poland and we just could not agree on what makes a road access_controll=full and what makes a road access_control=partial. Renderers probably don’t care about a singular access-controlled interchange. A lot better of a solution is expressway=yes which we agreed to define it as: access-controlled, 2+2 or limited access, and maxspeed above 50 (default urban speed limit). It really does work and I’m hoping something like that could work in other countries though maybe with their own criteria like with highway=trunk but all I’m asking for is not to have it imply bicycle=no and foot=no, that should instead be tagged with motorroad=yes. Of course I also strongly recommend tagging each of the parameters while expressway=yes is a separate information for renderers so it can still be similar to the usage of highway=trunk in Germany.

Freeways and motorways can also be vastly different, can’t they? At least that’s my experience when travelling.

“Freeway” is just the West Coast American English / traffic engineering jargon synonym for what British English calls “motorway” and various Asian countries call “expressway”. Any dialect or jargon that uses “freeway” uses “expressway” to mean the next best thing. As far as I know, no dialect formally uses both “motorway” and “expressway” to mean the same thing.

expressway=yes is a fuzzy generalization, reflecting the fact that expressway design is highly unstandardized both within the U.S. and apparently among countries, to the extent that it’s even intentional at all. expressway=yes doesn’t preclude tagging more specific properties like access_control=*, dual_carriageway=*, maxspeed=*, motorroad=yes, and so on. But these tags unfortunately do not add up to expressway=yes, which is already proving useful in rendering and has obvious utility for routing (based on how some routers have been misinterpreting highway=trunk).

I recognize that this sense of “expressway” is counterintuitive to Asian English speakers, just as it can be to East Coast Americans who aren’t well-versed in engineering jargon. As a thought experiment, if you had to come up with a different, equally flexible term, what would it be?

:waving_hand: East coast motorist here (not sure if I’m average in this context).

From a local perspective I would say “it’s a label sometimes used in highway names that doesn’t mean anything specific”, and I’d point to the Southeast Expressway and the East Shore Expressway as local examples of highways that are called “expressway”.

Here, “highway” is the normal term we would use as interchangeable with “freeway” and “expressway” as a very distant third. We would say something like, “do you want to take the back roads to get there, or take the highway?”

It doesn’t really matter that different places use these terms in different ways, what matters is what expressway=yes means in OSM. It would be clearly wrong if we only applied expressway=yes to roads that happen to have “Expressway” in the name tag. As that tag gets used increasingly, it’s good to clearly separate how that specific word is used in the real world from how the tag is used in the map.

This is no different from the fact that we use highway=sidewalk even in places where it’s called a “pavement”. The important thing is that the tag means the same thing everywhere. Although, I do wonder what the Brits call an unpaved sidewalk, and why bridleways didn’t get assigned highway=horseway as the tag.

3 Likes

Yup, I’d just go with using the name ‘expressway’ in OSM for what are sometimes called “semi-motorways” and it’s described well on the Wikipedia page but I recommend not blindly copying all official classifications. For instance, the great majority of expressways in Hungary and Poland have such parameters that they would easily be recognised as motorways in other parts of Europe. Switzerland on the other hand is a good example of an actual expressway which is probably closer to what’s described on this Wikipedia page.

Depends on if you’re someplace that largely subscribes to the Vienna Convention or to the MUTCD. In MUTCD parts of the world, freeways and motorways are synonymous if they have 2+ carriageways and fully controlled, grade separated access. If you’re missing any ingredients, you’ve got a highway=trunk (possibly less), expressway=yes situation. If you’re in the Vienna Convention parts of the world, motorway is likely similar, expressway=yes isn’t a thing, but some non-motorway highway with motorroad=yes is likely a factor for the proto-motorway situations.

So, after not getting any suggestions to a previous post, I thought about the solutions myself.

First and foremost, motorway=* and expressway=*. I really think these could have a common key and be used as values and I finally realised what they could be. We could come back to the parameter classification, highway:quality, whatever you want to call it concept but this time the difference is that this tag is primarily for renderers and slightly less for routers. The way it would work is: each country defines their own criteria, similarly to how it is with international equivalence for tags like highway=trunk. To give an example, in Poland a motorway would be a dual carriageway, at least 2-lane, fully access-controlled, limited access road. Roads that fulfill this criteria would be tagged as =motorway though each one of the parameters should be also tagged. A residential or local road would be a 1+1 road usually in a 30 km/h zone with speedbumps and tagged as =residential or =local. The difference this makes is:

  • Renderers display the road with a certain width depending on the value.
  • Routers have default parameters for each of the values but they only use them if a certain tag is missing. What this means is if the router’s default motorway speed limit is 120 and maxspeed isn’t tagged on that road, the router acts like maxspeed=120 is tagged but if the road is tagged with e.g. maxspeed=130, that value is then used.
    Also defaults relations, if supported by the data consumer, would also be applied to these values.

This solves the problem with parameter interpretation which I initially tried to solve with some weird grade=* tag as well as gives the answer to people saying that functional classification is also important.

Now, for the tag’s name. To be honest, it could even be highway=*. I know that the whole time I was arguing for highway=road but since railway=* has values like =rail, =tram, =narrow_gauge instead of railway=track + tram/train/etc.=yes, maybe let’s not make such a big change which won’t even make it consistent with railways (yes, railway tagging isn’t great but it is better than current highway tagging). When looking at taginfo, the actual majority of highway=* values are the functional ones (residential, service, track), so maybe we can adapt the values not to importance one, such as highway=primary or highway=local + service=driveway, but instead to the functional ones. This means the only deprecated values are trunk, primary, secondary, tertiary, unclassified, maybe residential in favour of local and get moved to adequate importance=* values.
The alternative is highway=road + service=motorway/expressway/etc. which just sounds stupid and many people opposed the very usage of the service=* key.

The proposed new values are:

  • highway=motorway_ramp,
  • highway=expressway,
  • highway=expressway_ramp,
  • highway=ramp,
  • highway=slip_lane/slip_road
  • I’m debating whether the current service=driveway, etc. should stay as subtags or be moved to their own highway=driveway, etc. tags.

And last but not least these, which, keep in mind, all depend on parameters and not function, so the name of these values could be improved:

  • highway=arterial,
  • highway=collector,
  • highway=local.

Well, that was a lot. Moving to the second point, I’m still open to hear what these roads should be tagged as because motorway=ramp doesn’t fit and I don’t think motorway=yes works the best—right now the road is tagged as highway=motorway_link, not highway=motorway.

Now, you might be confused why I wrote motorway=ramp when I had just stated that highway=motorway_ramp would be used instead. That’s because the current highway=* tags can’t be replaced without breaking data consumers and if all goes right, I’ll be proposing and implementing these changes in parts, with importance=* being the first. motorway=* and expressway=* can be used right away and as a temporary tag when the conception for highway=* values, or perhaps a different key, is being finalised.

Lastly I still am not sure what tag to use for admin_level related values for highway managing entities. I was going to use highway:category but I then realised that doesn’t work internationally with e.g. UK’s B-roads unless it could be country dependent and countries with such classifications will maybe use highway:class=B instead. I’ll think about it more but feedback is welcome.

Why is it a problem that motorway and expressway are in separate keys? I mean, sure, the 3,200 or so highway=motorway expressway=yes combinations are redundant and maybe a little nonsensical, probably mostly the result of back-and-forth among mappers, but couldn’t we have validators flag that as a likely tagging mistake and move on to more interesting problems?

Vector tile schemas can also cope with disparate keys just fine. For example, OpenMapTiles combines bridge=yes and tunnel=yes into a brunnel attribute, and Mapbox Streets further combines it with ford=yes in a structure attribute. No need to overhaul two of the oldest, most popular keys in OSM just to avoid the possibility of accidentally mapping bridges inside tunnels.

1 Like

I don’t think validators will do enough of a job. Already I’ve had people change a road to highway=motorway without removing expressway=yes. I’m not fully opposed to the tag as it already has its usages. I just think that ultimately it makes more sense as an option of road quality, like others have suggested with highway:quality. Are you against having highway=expressway in the future? I think that’s a nice compromise having kept most of the highway=* values which included motorway so similar values just go along with that.

That’s not the only aspect. You can have different values of bridge=* and tunnel=* while motorway=* and expressway=* currently have boolean values and yes, I’m planning on extending them with a ramp, but since we’ve had highway=motorway_link, we can do something like highway=expressway_ramp also and there won’t be too many options after the underscore opposed to a brunnel=bridge_aqueduct which just sounds dumb and is very impractical.

Even if I agree with using expressway=yes to cover both standards, what would be the answer when I ask to distinguish between them as a subclass of expressway ? If expressway=val1 vs expressway=val2 is to be used. it can simply be replaced by key2= =yes / val0 (unspecified replacing expressway=yes ). =val1 , =val2 in the first place.
The argument against to such a common yet vague word can be compared to using soccer not football , and sidewalk not pavement , for the British English criteria. The difference is that a better non-uncommon word isn’t found yet, but other methods of expressing this can be sought.
I don’t understand how access_control doesn’t work in Poland from the summary by @pavvv yet. Anecdotally, the Wikipedia article is titled as limited-access, with “expressway” listed as a synonym only. Doesn’t that suggest access_control= would have a similar level of acceptance in reality?
Alternatively, it could be eg high_speed_road= or something, or even highspeed= following railway=rail directly. That’s the literal translation in many languages too. The issue to be considered is there can be “low speed” “expressways”, and it can have a special technical definition officially (eg 80km/h) for the purpose of construction works at roads. For the former, again unlike the reporting of Poland’s community, there can be 50km/h to even 40km/h grade-separated roads, which may further relate to urban vs rural differences.
In this regard, is expressway=yes supposed to be used differently between urban and rural. on top of international differences? If yes, that would add to its variation. To be fair, this can indeed still show they are more used, and potential (ignoring congestion) higher travel speeds relatively and locally.

It’s a common problem with many tags, not only expressway. Unfortunately a lot of people simply ignore any tag that doesn’t “show” on the map. I have seen situations when somebody splitted a road from one line to two lines ignoring completly additional tags on the original line. In result we have one carriegeway with all set of (now incorrect) tags like maxspeed, lanes etc. and second carriegeway with only basic highway and name.

And of course, there are so many tags on roads that is easy to miss something. I’m pretty sure that everyone is guilty of missing some tags from time to time :slight_smile:

2 Likes

What would you define it as? Is a singular access-controlled interchange enough to tag a road as access_control=full? How would you define access_control=partial? Perhaps you could understand it by checking out the thread, especially this post.

You seemed to be misunderstanding the word. There’s nothing as a “access-controlled interchange”. An interchange is a grade-separated junction, which is one requirement of a (full) controlled-access road.
I don’t understand what does a single interchange mean. The unit of classifying access_control= should be the same as expressway= by you and others. What’s the smallest length of road you are deciding as expressway= then?

Right here you have one grade-separated junction followed by regular forest roads that obviously aren’t access-controlled.

Opposed to a road with either no connection between other roads or via grade-separated junctions:

The interesting thing is that after applying the extra criteria, all expressways make sense and there aren’t any that I’d consider too short.

Either way, I’m asking once again—how would you define access_control=partial? Because that’s the main problem here and if it shouldn’t be a value then we could just use access_control=yes.

How about a Diverging Diamond interchange? Grade separated, but with surface intersections? Feels like we could come up with some shades of gray on terminology.

@pavvv, what are the goals that you are trying to achieve with your suggestions for tagging? Is it the two I mentioned or something else?

It is difficult to provide constructive feedback and real discussion of the pluses and minuses of alternative options if we are not in agreement on what the purpose of any tagging changes would be.

1 Like