Directional prefixes and suffixes in US street names

Are you suggesting that directional prefixes tagged in name:prefix are useful even if in some cases the prefix is included in name and in other cases it is not? For example if some areas tag like this:

name=East 4th Street
name:prefix=East
addr:street=East 4th Street

And others tag like this?

name=4th Street
name:prefix=East
addr:street=East 4th Street

It would seem to me that this would make things even more confusing for data consumers, but maybe I’m not thinking it through deeply enough.

Everything I’ve seen about name=* says it should be the most commonly used name for a feature, not necessarily the “full name”. From the name=* wiki page:

This key is set to the primary name of the feature in the real world. […] As a rule of thumb, the primary name is the most obvious name of the feature, the one that end users expect data consumers to expose in a label or other interface element.

I can’t imagine any local that would expect a street to be labeled on a map “East 600 South” (or “E 600 S”), because it is never named like that in conversation. It is just “600 South”. The only time the prefix is ever used is as part of an address. So the prefix needs to be documented somewhere, but it is definitely not part of the “primary name”.

The only reason a local would be used to seeing the prefix as part of the name is because Google Maps does a horrible job of handling our street names, sometimes including the prefix and sometimes not. Sometimes even missing the suffix! (I’ve literally had it give me directions to turn onto “400”, which is absolute nonsense.) I would expect that the OSM community to do better than that.

2 Likes

Yes, exactly. In both cases it is easy to determine that two variants of the street name may be in use: ‘East 4th Street’, ‘4th Street’. It may take a couple of lines of code but they are trivial. That gives the variants any search should match against. And the contents of name and addr:street tell me (or the map maker) which variant is more frequent, i.e. what should be displayed in different situations.

Note that I fully expect that somewhere in the US you’d want to use:

name=4th Street
name:prefix=East
addr:street=4th Street

meaning: no local would ever use the prefix but technically it exists and may appear in some obscure address databases, for example.

Again, I think I’ve been unclear. You wouldn’t use the prefix tag in the US because it would always have name=East 4th Street even if “locals” do not use the prefix in every day language. The name tag is a collation of all of the data. If you want to strip it apart into various smaller chunks for comparisons that’s fine but it would be very out of practice for the vast majority of the country to have the “East” part dropped into a different tag.

4 Likes

I’ve seen so much variety in how directional words are used in street names just within my own state (California) that I don’t dare presume what is “normal” for the rest of this country. I think this proposed change would be madness making rather than problem solving.

2 Likes

These two points are true, but they don’t determine whether someone will enter the directional into Nominatim and expect a result. Taking a step back, a street name may contain a directional for two different reasons, with different implications for practical usage:

  • The street grid is divided into four quadrants. A street name indicates the quadrant as a matter of course. If the street lies wholly within one quadrant, then the directional is inessential, merely a formality. Otherwise, if the street straddles two quadrants, the directional is essential for distinguishing an address from its antipode. Regardless, it’s still optional for some purposes, such as wayfinding by car. After all, the driver only travels on one side of the grid at a time. So one may reasonably refer to “Market Street” in general, but if they’re referring to a specific location or address along that street, they need to specify “North Market Street”.

  • The city wound up with two streets by the same name, often by annexing another city with its own street grid or by abandoning the middle section of the street. The directional disambiguates the two disconnected streets, as in East Taylor Street versus North Taylor Street. This can happen whether or not the city’s street grid is divided into quadrants. Sometimes one of the streets has a directional while the other does not, such as Main Street versus West Main Street. The directional is essential for all purposes.

A Utah-style coordinate grid system combines both situations. 100 East consists of North 100 East and South 100 East. It runs parallel to 100 West across town, which consists of North 100 West and South 100 West. Just as a more conventional grid’s North/South Market Street can be simply “Market Street” in conversation and navigation, so too can North/South 100 East be simply “100 East”. Moreover, the regularity of a numeric coordinate grid allows Utahns to avoid the directional prefix more often than in other places where the street names are a mix of names and numbers. That has led to a tagging solution that I suspect would feel somewhat disorienting elsewhere.

In general, there aren’t any firm rules about whether a directional is meaningful to the public, only guidelines. In Cincinnati, North Bend Road is the road that goes out to the town of North Bend. “West North Bend Road” is how that long road formally appears on street signs and in addresses, but locals always drop the “West” in conversation, because East North Bend Road is only a block long and most people don’t even know about it.

Is there a strong need to overhaul street tagging just for cardinal (or ordinal) directions? There are only eight English words to detect as prefixes or suffixes. It seems to me that generic suffixes would pose a much greater problem. William Howard Taft Road is so often called just “William Howard Taft” or simply “Taft” in conversation that I’m not sure people would remember whether it’s a Road or a Street or an Avenue or a Boulevard. So they’d enter just “William Howard Taft” and expect to get that Road as a result. Should the street be tagged name:suffix=Road? What if the local grid uses directional suffixes? Should Martin Luther King Junior Way South have name:suffix=Way South or name:suffix=Way;South?

name:prefix=* and name:suffix=* remind me of earlier efforts to isolate the specific from the generics. The TIGER import had dedicated keys such as tiger:name_base=*, tiger:name_type=*, and tiger:name_direction_suffix=* to provide additional structure. In a separate experiment, a mapper once blanketed Central Ohio with shortest_name=* set to the specific. With a reliable scheme for isolating the specific, a renderer could reliably abbreviate the directionals and generics without guesswork, resulting in “North Bend Rd.” rather than an incorrect “N. Bend Rd.” It could also drop directions and generics to save space and increase label density. Meanwhile, a navigation interface could emphasize the specific, as in “N. Market St.”, for better readability at a glance. Isolating only the directionals seems like stopping short of a fantastic solution.

This has long been a firm rule within the U.S. community (much to the chagrin of people in Washington, D.C.). But you’re probably going to have a hard time convincing the western Canadians to go along with it.

5 Likes

Nowhere have I said that Nominatim would make such an assumption. The only thing they can (but not necessarily do) determine is the display of a search result/address.

Yes, that is the whole point of this discussion! If the directional suffix shows up in the name tag should always be left to the local mapper to decide. They know best if for any given street the directional prefix is meaningful.

However, if a prefix/suffix is meaningful for public use or if it exists at all are two different kinds of shoes. Right now, the directional prefixes/suffixes are reasonably well covered in the US when they are official enough to appear on the street sign (in the street’s name tag) or when they appear in official (and thus imported) address databases (in the addr:street tag). In practice that means that a) the information is scattered over two very different kind of objects (streets and address points) that are difficult to consolidate, are b) missing where they are relevant for the address but no addresses have been mapped yet and c) entirely missing when the directional prefix/suffix is not in popular use anywhere but still officially defined.

Once again: all I’m asking is to start documenting the directional prefixes/suffixes in a systematic way because, yes, they are very relevant in the US and OSM absolutely should have that information. So what I’m suggesting is to do that in a way that takes into account the popular usage of the prefixes/suffixes.

If the situation were as @watmildon suggests, and the directional prefixes/suffixes would always be added to the name tag of streets in the US, then we wouldn’t need to have this discussion. That’d be sufficient to work with within a low enough margin of error. But that simply isn’t the case. Utah is just one prominent example. Fact is that the rest of the US is not in a better state. Do you really want to retag all 50k streets in Utah?

That’s a completely different topic. If you want to discuss that (or pretty printing signs or abbreviations in Canada), please open a new thread.

OK, I thought you had started this discussion in response to a bug report about not being able to find an address in Utah that put the directional in name:prefix=* but omitted it from name=*. I don’t see a request there to hide the directional from the display name of a result that is being returned. Essentially, it’s asking for Nominatim to be more lenient about directionals, treating them as stop words in the user input.

If this is really just about display, then in my opinion, showing the directional is fine. Aligning Nominatim’s display names with addresses would improve usability more than making the street name match the signs. Even where directionals are obscure, they don’t confuse users nearly as much as the nearby subdivisions and hamlets and the surrounding county that are also included in the display name.

If anyone is complaining about seeing the directionals, the street signs probably aren’t at the heart of the matter. After all, so many localities only include the specific on street signs, omitting any generic, let alone the directional. The signs only come up as justification for the tagging scheme.

As far as I know, the nationwide consensus has always been to include directionals in name=*, even when they’re considered inessential in speech or for wayfinding. TIGER basically sealed that fate. I know of two major exceptions:

  • Numbered routes. A mapper went around the country deleting name=* in favor of ref=*. They didn’t spare name=* tags that contained directionals, so data has been lost. As you know, numbered routes are a problem for Nominatim regardless of directionals.

  • Utah. The style of relegating the directional to name:full=* and name:prefix/suffix=* came from Salt Lake City and was proposed for the whole country. By and large, only Utah has adopted the proposal. I would chalk this up to the coordinate grid system that’s endemic to that state.

    Similar coordinate grids are common in rural counties in other states like Indiana, or Wisconsin where the directionals appear as part of the house number instead, but so far they have not adopted this tagging scheme. Also, over the past decade, many counties have abandoned their coordinate grids in favor of names for Enhanced 911 purposes.

Is the situation different than what I’ve described? Have mappers been going around systematically removing directionals from street names in more conventional street grids? Or are we seeing lots of directionals only in addresses because of mismatches between TIGER and more local address datasets? If there are such disagreements, we should be placing more credence on the local address datasets. In my experience working on address imports, the local datasets are much more accurate, albeit still imperfect.

So far I haven’t advocated for retagging Utah’s streets because I figured we can justify it as essentially a different addressing system than the country’s mainstream system. Retagging the rest of the country’s streets would be a far larger challenge. If displaying directionals elsewhere were such a faux pas, the same tagging scheme would’ve caught on more by now.

4 Likes

Possible explanations could include a disagreement between federal and local authorities (in which case we should probably lean toward the local authorities), mappers unfamiliar with local signing practices, or some back and forth about the street’s name=* that caused the addresses to get out of sync after iD had suggested one form over the other.

The reason I don’t find the Utahns’ sign argument persuasive elsewhere is that elsewhere there is deliberate inconsistency between different kinds of signs for the same street. This includes much of Ohio, which was inaccurately used as justification for the proposal.

1 Like

We could take this to the extreme (which I’m not advocating for). For example, South Dakota has a state-wide rural addressing system, with housenumbers starting at 10000 on the western and northern borders and increasing as you go south and east. This implies that the entire state has either name:prefix=East or name:prefix=South depending on the orientation of the road (and even in the presence of other directionals, for instance Way: ‪North Rochford Road‬ (‪278142120‬) | OpenStreetMap has housenumbers that increase as you go south).

I fail to see how this would be useful.

I’ve been fixing this where I find them in the northern plains, but it’s a slow process.

Preface: while my interest in this indeed comes from Nominatim (the directional designation issue is celebrating its 10th birthday this year), I’d like to emphasize that I’m not looking for a simple workaround for search. Directional prefixes/suffixes are a unique challenge with North American street names that currently isn’t given much attention. The result is highly inconsistent data that is hard to work with. Just to give you a glimpse of the issue: there are currently about 1.5M addresses in the US where there is a mismatch between the street in addr:street and the street’s name. Only a fraction of those is due to directional designations. There are other systematic issues which I’m happy to discuss in other threads. I’ve made the directional designations a topic here because I believe that having explicit guidelines around them is a first necessary step to get them sorted. I’d basically like to be able to point to some description of the tagging practice and tell people that if they follow those rules, then Nominatim will get it right. (And if they don’t all bets are off.)

Alright, while I still think it would be valuable to have an explicit tagging of the directional prefixes/suffixes, I can see that always adding name:prefix and name:suffix doesn’t fly because it requires too many changes. A simple rule to always have the directional designation in the name won’t work either, though. We’ve had this discussion previously and people have made good cases where the directional designation should not show up in the name in their area of the world.

So, thinking a bit more along the lines of explicitly tagging the exceptional cases, would guidelines like these be closer to common practice:

  • for naming of streets

    • The street’s name tag should usually contain the directional prefix/suffix.
    • If adding a directional designation to the name is confusing, then leave the directional prefix/suffix out of the name tag and put the directional into name:prefix/name:suffix. (Alternatively put the full name with directional designation into alt_name or maybe official_name. That would have better support by tooling but make it quite a bit harder to determine the presence of a prefix/suffix.).
    • If the directional designation is sometimes used as a prefix and sometimes as a suffix for the same street, put the alternate form into alt_name.
    • In the rare case that a street’s name contains a direction word in prefix or suffix position that is not a directional designation (e.g. North Road) and there is no name:prefix/name:suffix set, mark it somehow (how?), so that data users know it must not be stripped away.
  • for streets in addresses

    • addr:street should usually contain exactly the same name as the name tag in the street it refers to.
    • If the directional designation is used in the address but doesn’t appear in the street’s name, nothing needs to be done because you should have already added name:prefix/name:suffix/alt_name as per rule above.
    • If the directional designation is not used in the address but does appear in the street’s name, add the short form explicitly in alt_name (or maybe better in short_name).
    • TBD: the other special case where the postal address contains a highway or country road number. Lets discuss this in a different thread, please.

Another variant would be adding something like addr:street:prefix to the address when there is a deviation between postal name and on-the-ground name of the street. In the end it is better to have all the name variations on the street because then it has to be done only once and can even be applied to virtual addresses that are not (yet) mapped.

The guidelines above would hopefully mean minimal surprises for the mapper while maintaining maximal flexibility for local quirks. They are compatible with the Utah scheme (when completely ignoring name:full which, I suspect, was just a hack for Nominatim anyways). And I think they are sufficient to allow a data user to reliably determine the directional designation if necessary.

1 Like

That would make for a good MapRoulette challenge to clean that up!

3 Likes

Just to understand the possible solution space here, is it important that our guidelines around directionals be general enough to avoid conflict with other countries? Or do you mean particular localities in North America?

Frankly, I think the concern about extraneous directionals is overstated. Yes, laypeople in some localities get annoyed seeing a directional on the map, finding it pedantic. I used to live along a street like that. But as long as people are able to find an address with or without the directional, omitting the directional from display is really just a matter of style, not really rising to the level of correct versus incorrect. Grid-style addresses could be an exception, because they’re inherently more confusing without the optional complications. I just hope data consumers like CoMaps don’t feel like they need to make a solution for grid-style addresses apply everywhere else.

Your suggestion to tag the exceptions is the best way forward in terms of tagging. In parallel, we should fix as many discrepancies between addresses and street names as possible. In my experience, whether the directional appears only in the local address dataset or only in TIGER, the fuller name is more likely to be correct. I’d feel comfortable stating that in a MapRoulette challenge’s instructions.

Seems pretty reasonable to me. This already happens 10,104 times all over the U.S. in alt_name=*, official_name=*, or full_name=*, not counting the 24,037 name_1=*, name_2=*, etc. that we’re supposed to be turning into alt_name=* after verifying that TIGER didn’t screw up. The reverse happens 22,715 times in alt_name=*, official_name=*, or short_name=*, and 28,513 times in name_#=* tags.

Do you suspect any data consumers would have a need for the directional prefix or suffix in isolation, but only in exceptional cases? I can only think of use cases for deemphasizing or eliding them for non-groundtruth reasons, such as limited screen real estate.

(Special mention to Saint Louis River Road, also known as West St Louis River Road, West Saint Louis River Road, Saint Louis River Road, St Louis-Carlton Co Jud Highway, East St Louis River Road, Saint Louis River Road West, and County Road 696… if TIGER is to be believed.)

Yes, this is a good idea, though we need to decide whether it would contain just the specific (e.g., “North Bend”) or the generic and specific without any directionals (“North Bend Road”). I’ve previously used name:etymology=* to clarify the specific to other mappers, but there’s no guarantee that it’s a substring of name=*. We also need to distinguish cases like E Street versus East Street, or E-Business Way versus East Business Way. Some of us use not:name=East Street and not:name=East Business Way for that, but something like name:specific=E-Business would be more direct.

1 Like

And don’t forget ‪North North Drive!

2 Likes

I like idea of tagging the specific part of the name. name=West North Street + name:specific=North seems pretty clear to me. “North” is the essential part of the name. The parts before and after may be optional in certain contexts.

2 Likes

So maybe in short:

  1. name should be equal to however the street itself is called/sign-posted.
    If the name contains an optional prefixes/suffixes (regardless if it’s part of name or not) should be added to name:prefix/name:suffix. As an alternative alt_name, official_name or loc_name can be used.

  2. addr:street should be equal to the name required for the address, like to ship something over or put in the gps to get there.

Ideally combinations of 1) and 2) somehow match/are match-able.

  1. street:name or is_sidepath:of:name should be equal to name ( another thing to keep in mind :wink: )

Let’s call it rather tiger:name_base and we are 90% done already :rofl:

6 Likes

Repetition like that, Street Street, and Avenue Avenue are a good argument for a prefix/suffix tagging scheme as opposed to a generic/specific tagging scheme. Maybe we need both options, along the lines of what TIGER has. :thinking:

I don’t follow. Can you elaborate? Neither of those have a prefix or suffix, just a generic and a specific that are (confusingly) the same word.

2 Likes