Hacker News new | past | comments | ask | show | jobs | submit login
What3Words – The Algorithm (cybergibbons.com)
305 points by ykat7 on May 2, 2021 | hide | past | favorite | 176 comments



I'm baffled they used any plurals at all. I feel like "only one form of a word" should have been near top priority for generating the dictionary. No plurals, no conjugations (even better would be to pick one conjugation, say, infinitive) maybe even no adjective/adverb forms of verb.

I wonder how many words in the english language would be left? I know the english language is massive


The word list already is 40k long. That's beyond most people's vocab and includes really awkward to spell words.

IMO, if the solution is to use words, then What4Words would have had a word list of less than 3000, resulting in a word list with less confusable words and more accessible to children and people who struggle to read or write.


Spelling is the Achilles' heel of all word-based systems.

People who have trouble with spelling (such as non-native speakers of whatever language the words come from or children) may not be able to rely on word-based systems. Word-based systems are also going to be hampered by speakers of different accents.

Letter- and number-based systems are probably always going to be much more robust, especially when used with a standard phonetic alphabet[1]. There could even be a checksum letter/number to make the system even more robust. Unfortunately, such systems will never be as memorable or as easy to say as a few words (spelling issues aside).

[1] - https://en.wikipedia.org/wiki/NATO_phonetic_alphabet


Spelling is very much an underappreciated problem. Written English is particularly bad, sometimes requiring memorization that's not much unlike Chinese characters, because of the written language not adapting to the vowel shifts and changes in pronunciation, as well as the mess of a history the language has gone through as it developed in the UK.

Children, dyslexics, non-native speakers, all will have a hard time writing down many words even if they're part of the top 1000 list.

With the right word set (avoiding homophones) and the presence of autocorrect (or an input only allowing the limited word list), you could probably create a pretty resilient system if you only take the most common words (top 1k would likely be sufficient). You'll need a longer address, but remembering six words is a lot easier than remembering six letters.

Sadly, the entire concept is flawed and doomed for as long as the goons of What Three Words operate their business like a failed media company, sending out threats, falsifying legal documents to enforce takedown requests, and lawyering up to anyone who even considers applying "their" algorithm on their own. "Their" idea may be patentable in the US, but in areas of the world where there is no such patent, these goons cannot take down the competition without lying and dishonesty and they've shown to do anything to prevent any competitor from entering the market.


Using spelling correction on a limited word set that avoids ambiguities is a brilliant idea. It wouldn't solve every issue with word-based systems (for instance, people who don't speak the language will still have problems, and it obviously wouldn't be as reliable without a computer) but it's much better than W3W, and I hope whoever implements an open W3W alternative implements it.


This is how competently-designed word list systems (like the PGP word list) work. The problem is that W3W appears to be a sloppy first approximation of a solution.


The sad part is that this problem was solved decades ago with grid locators like Maidenhead[1]. It's a purely mathematical conversions with no lookup tables, cover the entire world and alternate pairs of letters with pairs of digits (so no confusing or language and culture dependent words).

Code becomes longer according to the required precision, so eight digits are enough for a typical city neighborhood, ten digits goes to a 30x20m block that is good for disambiguation even in the most dense urban areas. Adding more digits will work too, but that just more work.

A typical location would be something like: fm19oc75hv

[1] https://en.wikipedia.org/wiki/Maidenhead_Locator_System


Exactly. Admittedly, fm19oc75hv feels much less 'friendly' than broken.turned.ahead, but it is significantly more functional.


> Spelling is the Achilles' heel of all word-based systems.

Stick with nouns? Then you can use icons as supplements. Ball, Pen, Light bulb, Burger, Guitar.

Possibly easier to translate between languages, too.


How do you spell "guitar"?

It's not spelled like it sounds, and not every English speaker (never mind people who can't speak English) is going to know how to spell it. Some may try to spell it "gitar", "geetar" or even "getar", for example. While these maybe be "obviously" wrong spelling for skilled spellers, they're not so for everyone.

Even with a simple word like "ball", it's not obvious that it should have two l's at the end. Someone might spell it "bal" when they hear it.

Spelling reform[1] movements have pointed out these and many other issues with English spelling, but unfortunately the alternatives they've come up with are just not widely known, and at least some of them still have their own problems (such as lack of standardization due to different phonemic spellings for words spoken by people with different accents).

Even were there some magical alternate spelling system for English that was widely known among English speakers, it would still be a stumbling block for people who don't know English, as would the words of any other language.. as long as there are people who don't speak that language.

So any word-based system is going to be problematic and error-prone for some people.

[1] - https://en.wikipedia.org/wiki/Spelling_reform


We should clearly use Esperanto words.


Ah yes, simple phonetic words like ‘light’ and ‘guitar’...


I don't disagree, but not sure why you associate poor spelling with non-native speakers.


Because native speakers are much more likely to use English every day and therefore much more likely to successfully remember how to spell "successfully"?

I'm not sure why you think that part of the comment was controversial. Certainly you would agree that the vast majority of people who don't natively speak English would be unable to spell such words as "read"?


Native speakers don't necessarily use their native language every day, and in fact a non-native English speaker might use English every day.

There are cases in which non-natives might have better grasp of orthography compared to natives (which might be what GP is objecting to).

I'd be surprised if the vast majority of non native English speakers would fail to spell "read"... Otoh as a non-native, I struggle to be understood and properly differentiate letters like a-e, p-b, etc. So for that reason I use the Nato alphabet whenever I need to spell something


I don't think you understand the difference between "likely" and "guaranteed".

> There are cases in which non-natives might have better grasp of orthography compared to natives (which might be what GP is objecting to).

Certainly. Neither me, nor the "GP" to which you refer ever said anything to the contrary.

> I'd be surprised if the vast majority of non native English speakers would fail to spell "read"

Really? Depending on how you pronounce it, if they even spelled an English word, it would be "red" or "reed". Are you trolling? You do realize most people who aren't native speakers of English don't speak any English, right?


> [..] fail to spell "read"

That's an excellent example to pick :)

"I find that book very hard to read" ( "An oboe is a reed instrument" )

and

"I read that book yesterday" ( "My car is red" )

Q: How do you explain to a non-native speaker how to pronounce the word 'read' when you say it aloud...


> Q: How do you explain to a non-native speaker how to pronounce the word 'read' when you say it aloud...

Easy! just give them some latitude and longitude coordinates and tell them to match it up on what3words.com.


If you see someone write "reed" instead of "read" or "rite" instead of "write", that's likely a native speaker.


Bingo. Either more words, or fewer grid squares (f.e. instead of 3x3m grid, a 4x4m grid). I truly don't understand why they thought they needed 3m (10ft) of precision: my home has something like 10 What3Words addresses (80 if you count the yard and the other side of the duplex!). The old outhouse at the family ranch has more than one!

IMO, they also should have built redundancy (some form of error checking at least) into the encoding.


Funnily enough I did that math the other day when this kicked off.

It comes out to 4th root of ((510.1 trillion)/9) which is ~2743.8

Where it gets interesting is that it's only ~4752 for 1mx1m cells :)

Another use for `Correct Horse Battery Staple` I guess.


I did one of these for fun at the beginning of the year, and ended up needing to spend way more time on the wordlist than I'd expected. In the end I felt that a list of 4096 words was a decent compromise between accuracy and is still fairly managable for trying to remove words that are too easy to mistake for each other. It lets you do everywhere on earth to slightly more accuracy than what3words in 4 words.

Something that what3words does is not have an obvious hierarchy of words (e.g. where the first one covers a larger area, and subsequent words home in). I didn't like that, but I understand why they do it - if a single word is going to cover a large area, you have to be extra careful that you don't choose something offensive for a particular region. By having no obvious structure, they get away with being less careful on the wordlist.


The issue of hierarchy is that it's orthogonal to having very different results for nearby areas.

With a hierarchy you immediately run into, "Am I in gibbons.apple.banana or was it gibbons.apple.bandana" which is just down the road.

Without hierarchy it jumps out that one of those results is improbable if tallied with any knowledge of roughly where the person is.


As you say, the issues are orthogonal. I randomise my wordlist so places next to each other don't have words necessarily close to each other in the alphabet. But because it's hierarchical e.g. most places in the uk start 'bishop'. I think this is good because you learn to recognise places,but imagine if loads of places in India started with the word 'colony'... it's a problem you don't have to worry about if you don't use a hierarchical scheme.

https://wherewords.id/


> The word list already is 40k long

To be fair, if the lookup table is created properly, the majority of habited locations should be within the first two bands, which means you're really only using 2500, or 5000 of those words. That was the whole point of the banding system, I assume.


It's promoted for use in search and rescue, so other bands are in use.


I used to do SAR. Lost persons do a terrible job of communicating because they are afraid and often emotionally and physically drained. But if you have them on a radio or a cell phone, you can generally locate them without the persons direct assistance.

One of the many things that really annoys me about W3W is that it sucks for actual navigation. If I am at waffle.tire.sigh is that north or south of keys.sad.tree? Am I heading in the right direction?


Yeah, multiple MRT members have contacted me to say this is a real struggle. If someone is on the move, it's virtually impossible to work out what direction they are going.


I wonder where "correct horse battery staple" would be located...


Looking at the 3 word-based W3W, for some reason they have "horses" and not "horse," but you can find both https://what3words.com/correct.horses.battery and https://what3words.com/horses.battery.staple, and interestingly enough they are both in Canada, one in Nunavut and the other in Quebec.


"...if the solution is to use words, then What4Words would have had a word list of less than 3000, resulting in a word list with less confusable words..."


I had ninja-edited to be clearer, but perhaps I was too slow. I was simply noting what the equivalent two locations would be in W3W.


English wiktionary had over 500k entries as of a few years back.

A "word family" is the term for the related forms of a word resulting from derivation, inflection, and other processes. Usually "conjugation" only refers to inflection of verbs whereas "declension" is used for inflection of nouns. And "lexeme" or "headword" are sometimes used to refer to some canonical form of a word family.

https://en.wikipedia.org/wiki/Word_family

https://en.wikipedia.org/wiki/Lexeme


I did a words lat/long system as a couple day project at Christmas. https://wherewords.id/

I used the google S2 mapping, and spent quite a bit of time on my own wordlist. I like the S2 mapping - it lets you use fewer words to refer to a bigger area. I write a little bit about it here: https://wherewords.id/+about

I would have really liked to have found some good research on 'words that are hard to mistake when spoken aloud across various accents', but in the end I just spent ages going through my word list with various libraries and manually. And having friends point me to locations that had incredibly rude or offensive wherewords!

Really there should be a free, open source word<->location system that we all just standardise on and build into GPS systems and maps, because a common, free system would be genuinely useful.


How many times has the wheel been reinvented with these phonetic word list schemes? Loads of crypto apps use them, e.g. for bitcoin wallet recovery. Do they all roll their own scheme? Someone should attempt to make a standard if none exists.

Interoperability isn't even that important, I just want to pull something into my project.


I originally planned to use the crypto bip39 wordlist but ultimately it proved not to be suitable. I talk a little about it https://wherewords.id/+about


Great summary, thanks


Crypto wallets may use BIP39 protocol, it might be close to a 'standard'?

https://github.com/bitcoin/bips/blob/master/bip-0039.mediawi...

Edit: 2048 English wordlist is here https://github.com/bitcoin/bips/blob/master/bip-0039/english...


In addition to BIP39 cited below, the EFF also published some useful wordlists a few years ago... https://www.eff.org/deeplinks/2016/07/new-wordlists-random-p...

One has the nice property that all words have unique 3 letter prefix. But not as many in prefix list (1296) as their "long" list (7776).

That said I'm kinda partial to BIP39... first four letters are unique, and words are more uniform than EFF prefix list.

But it looks like GPS addressing schemes like w3w need a MUCH larger list by an order of magnitude.


> But it looks like GPS addressing schemes like w3w need a MUCH larger list by an order of magnitude.

If you're trying to get down to 3 words yes, but if you're happy with 4 words (and I am), then the long list would be more than enough. One problem I found was that I think people don't want strongly negative phrases being used to describe where they live (rural poverty assault, evil disease island). The BIP39 wordlist can create word groups that are very offensive, or that would feel rascist if applied to particular parts of the world. It also has words that are easily confused for other words like era/error, son/sun, alter/altar, aisle/I'll, floor/flaw, .

I did use words from BIP39, but had to remove quite a few in the end for my wordlist (e.g. blast, load, black, finger, female etc.) because of the unfortunate clusters it could create.

Ultimately, I think coming up with a good wordlist is still a bit of an unsolved problem. The ideal wordlist for something like this

1. can't form obviously rascist or overtly sexual word clusters

2. can be easily distinguished in spoken communication

3. can be easily distinguished in written communication

4. doesn't have words that sound similar to other words in any of the most common accents

5. doesn't have geographic words (it'd be confusing)

6. is mainly positive or neutral words

7. consists of words that are common and easy to spell, avoiding words that are commonly misspelled and where there are different standard ways of spelling the words depending on region

8. has words that are not too long, a small number of syllables

9. doesn't contain words that are concatenations of other words in the wordlist

Obviously not easy if you need a significant number of them.


I did the same thing as you and had the exact same experience. S2 made the mapping trivial, and I spent nearly all time on the word list.

I was really surprised to find there's not much out there in the way of cross language most commonly used word lists. I assume such lists are out there somewhere in the computational linguistics community but I couldn't find them. I ended up using a list of the most common english words, filtered via pairwise levenstien distance, and then I did a manual scan to drop any words that seemed problematic.

It really would be nice if someone would solve this, but I'm not being flippant about just how much effort would be involved.


Is there somewhere I can see the wordlist you came up with? My wordlist experiments are mostly here: https://github.com/kybernetikos/wherewords/tree/main/lib/wor...


Sorry no. I never got around to putting the code up on github and that laptop died. My list wasn't great either anyhow. This is an annoyingly tough problem.


> I just want to pull something into my project

My experimentation mostly lives here: https://github.com/kybernetikos/wherewords/tree/main/lib/wor...

If you're coding in JS, I'd use https://www.npmjs.com/package/verbal-id for 10bits, bip39 for 11 bits, and maybe my wordlist for 12 bits.


Wow, I love this! It is such a great application of S2, which is an awesome concept itself. A drilldown of the words would be a neat way to explore the mapping. In other words: first you see the largest areas, and you can click on them, then you see areas/words within that area, and as you drill down you form the wherewords location.


You're right that would be cool. I haven't done anything on it since the beginning of the year.

There is a small easter egg though - wherewords.id works with fewer than the four words, so for example, if you go to https://wherewords.id/system/festival/ you'll see it highlight a particular part of New York City, while https://wherewords.id/system covers a big part of New York State and Pennsylvania.


What3Words accounts at Companies House in the UK are extremely interesting.

They burned through just over £15,000,000 in 2019, for a total revenue just under £400,000 from 100+ employees.


I thought you were kidding, but apparently not. Even worse : £320k of that revenue was from sales to Daimler AG (a shareholder) and is described as "services". I would love to understand the business model here, they've maintained £23M ish cash at hand since end 2017 but I'm not clear what the play here is...


I think that £23m is just capital from issued shares. Anyway, it's certainly not viable. I guess it remains to be seen how long investors will keep on chucking money at it to keep it afloat.

Filing history, if anyone else is interested: https://find-and-update.company-information.service.gov.uk/c...


No, it's definitely cash and equivalents. The shareholder account is virtually £50m at this point, and they had nothing like that cash until the raises in 2017.


IIRC Daimler wanted to integrate w3w into their onboard navigation units.



You mean people thought they were going to make a load of money with this? And that they spend 5 times more money on this simplistic google maps ripoff than the 40 employee company I work for, which runs a £250k profit? I am baffled.


Costs a lot to get all the free publicity from journalists, got to avoid them pointing out it's a private company trying to control access to a coordinate system, or mentioning any alternatives.


I always wondered if they were actually used by anyone then I saw their recent advertising and it seems to focus on emergency services and finding places in large fields

I created a project using an alternative method using gifs for directions: http://gif.direct which I personally think is more useful (if less refined!)


They are dangerous for emergency services, here is a case where W3W showed a location many miles away: https://twitter.com/isleofmandan/status/1386455377949122561

Someone have also compiled a list of pairs that only differs by one letter, like these two:

instants.lightening.precedents

instants.lightning.precedents

You can see the whole map here: https://twitter.com/cybergibbons/status/1385891425108250626

I wish they would just use "pluscodes" instead, the algorithm is opensource and doesn't depend on a specific dictionary: https://en.wikipedia.org/wiki/Open_Location_Code


Sheesh, lightening and lightning? Not to mention, "instants" when "instance" is also a valid word.

Try distinguishing between

https://what3words.com/instants.lightening.precedents

https://what3words.com/instants.lightning.precedents

https://what3words.com/instance.lightening.precedents

https://what3words.com/instance.lightning.precedents

Three of them are in Australia, two in South Australia. Imagine being stranded in the Outback trying to communicate your location...


You also need to distinguish between the contexts where you need addresses versus coordinates.

Lat-longs, plus codes, and word-encoding schemes are all coordinates -- they identify a point or area on the globe.

Addresses are last-mile navigational instructions. "Apt D, 123 Main St" allows anyone with local knowledge to navigate efficiently to the location indicated: first they drive to Main Street, then they proceed along the ~monotonically numbered parcels to 123, then continue to the apartment labeled "D".

The advantage of coordinates is that they don't require local knowledge and can identify arbitrary points; the advantage of addresses is that they encode instructions for land navigation that takes into account which parts of the land are passable.


What is wrong with classical coordinates for emergencies? Like 42 degrees north, 13 minutes and 4.5 seconds?


I know of one rescue that didn't go smoothly because there was confusion between degrees, minutes, seconds and decimal degrees.


You could just read off a fractional N-W GPS coordinate like an average person. Every smartphone comes with a GPS app these days.


Assuming you're reading these values off a device, most can display them in various different formats. It's pretty confusing and converting them isn't easy either.


Yes, but does a system which uses singular and plural of words as a distinguishing feature really help here. (not saying that there couldnt be a better system based on words)


It's easier to get confused. And there's still ambiguity. A few months back I was fighting my phone over this--typing degrees/minutes/seconds into Google on a phone isn't easy. I ended up using the calculator to convert it to degrees with fractions. Finding the spot along the road was a pain.


What real-world problem does this product solve that would justify such level of investment?

I'm personally horrified by the idea of another geolocation standard in data--it's already a pain dealing with addresses, lat/long, UTM, et cetera, not to mention various representation standards of same. I burned a half day on this exact issue for a data visualization demo last week, so perhaps my antibodies are more current than usual.


Going by other people's experience with them[0], I wonder how long this post will stay up.

[0] https://twitter.com/AaronToponce/status/1387933438305394690


Aaron posted an update. As of an hour ago they "consider the matter closed": https://twitter.com/AaronToponce/status/1388828107407245312


Given that cybergibbons has spent the past weeks looking into this very loudly and publicly, don't expect him to back down.




Here [1] is the same thread on nitter (a twitter alternative that does not require Javascript to read). Other nitter instances can be seen here: [2]

The twitter thread also contained a reference to this interesting article on "Why bother with What Three Words?"[3], which itself links to other interesting articles: [4][5][6][7][8][9][10][11][12]

W3W is a neat core idea poorly thought through. Hopefully one day there'll be a truly open alternative that solves the many issues W3W itself has.

[1] - https://nitter.cc/AaronToponce/status/1387933438305394690

[2] - https://github.com/zedeus/nitter/wiki/Instances

[3] - https://shkspr.mobi/blog/2019/03/why-bother-with-what-three-...

[4] - https://blog.ldodds.com/2016/06/14/what-3-words-jog-on-mate/

[5] - https://knowwhereconsulting.co.uk/blog/location-grid-not-an-...

[6] - https://medium.com/@piesse/open-location-code-what3words-74a...

[7] - https://news.ycombinator.com/item?id=18646650

[8] - https://www.quora.com/What-is-your-review-of-what3words

[9] - https://stiobhart.net/2016-01-15-stupidest-idea-ever/

[10] - http://blog.telemapics.com/?p=589

[11] - https://www.grcdi.nl/Address_encoding_versus_traditional_add...

[12] - https://www.grcdi.nl/linkspas.htm


check out Open Location Code (https://github.com/google/open-location-code) (aka PlusCodes)


The cat may be far enough out of the bag at this point.


A bunch of replies to this are "I implemented my own version of What3Words". That sport has been around for a few years now. https://what3emojis.com/ is probably the most long-lived; I'm writing from telephone bus eggplant. (Hacker News' lack of emoji support makes interop here a little difficult.)

Unfortunately http://www.what3fucks.com/ seems to have ended their incredible journey.

It's a really stupid idea for addressing, triply so when you consider the pathetic little proprietary word database that's What3Words tool for extracting rents. Geohash is the oldest system that solves the problem of "give me a short textual name for a place" and has a nice ability to get more precise.


A location near me

geohash: gcuvz30z w3w: drift.march.donor

I had to switch tabs 3 times to copy across the geohash since the page I found it on wouldnt let me copy and paste, I remembered the w3w immediately.

I am 100% against something like a global addressing standard being owned by a single company, however the amount of people ignoring w3w's extremely obvious utility and pointing to pluscodes, geohashing, grid references, geocoords etc is pretty tiring.

We have a standards body for emojis, cant we just agree on an open w3w implementation.


Nelson is right. A bunch of us have played around with designing our own human friendly geohash scheme.

If you divide earth up into 4m x 4m cells using something like the S2 projection, you can uniquely address these using phrases of 3 words drawn from a database just under 32,000 words. The S2 projection ensures that the words in the higher levels of the hierarchy will change quite slowly. In most local contexts there will be only a single commonly repeated word. In a small number of more exceptional points there'd be just 2 or 3 unique values in use. So in practice you could use longer addresses and a smaller dictionary if you liked. This is probably a good idea for ergonomic reasons, as we can pick a set of words that are readily translated between languages, weed out any that are overly similar, etc.

I never uploaded the code anywhere, and it's on a laptop that died, but I busted out a toy version of the above in an afternoon a couple years ago just for fun. I used 4 word addresses and a database of about 2,500 of the most common english words.

W3W's entire value proposition is that they should earn a global rent off the use of addresses vs the above. It's absurd. And they intentionally avoid hierarchical organization of the addresses specifically to make it necessary to use their app/service to look crap up, which makes their service hilariously worse than the scheme described above.

With an S2 style hierarchy people will intuitively begin to recognize the common words in their living area at each level, and can use them in conversation without even consulting software. This is completely impossible with W3W's scheme.

The problem isn't figuring out a good scheme. Most of the people on this forum can manage that in a couple hours. The problem is the same with all other standardization efforts: getting a critical mass of people who give enough of a crap to use the standard.

This is an area where Google could ship something in maps and it'd have a decent chance of adoption outside of it. If you work on maps consider pitching a more ergonomic version of plus codes.


> I remembered the w3w immediately.

But in what situation is this useful? How is it more convenient or useful than a regular address? Even if you’re somewhere where there are no addresses, and you need to describe a location that has no other descriptive characteristics, isn’t it a lot easier to just drop a pin/bookmark on the map in your smartphone? Especially considering you can’t reasonably run the algorithm without a digital device of some kind.


Classic example is emergency services.

Having the ability to turn your location into three words that will easily survive communication over a phone with dodge signal is very useful.

You could argue that that lat/lon or a street address should be fine. But memorising a two sequences of numbers, then repeating them accurately over a poor phone line is hard.

Street addresses are also hard, there’s frequently not a nearby road sign, or worse, the road name is ambiguous (your city may have multiple streets with the same name). Hell there’s no guarantee that the emergency services even have your street name in their database if it’s a new street, or it’s name was changed recently.

So basically any scenario where you need to transmit a location accurately between two parties who are operating two different mapping systems, and communicating over an unreliable comms link (phone, radio etc), is a good use case for W3W. W3W is like the phonetic alphabet for locations.

Personally I hate the fact the W3W are extracting rents from this services. But I can’t deny the utility of their service.


That’s honestly incredibly far-fetched. I need to have a GPS and a device that is able to do the conversion from lat/long to words. Given that prerequisite there are about a dozen better ways to solve the issue. Both me and the emergency services in the area need to know what these word codes are, or we’re spending time explaining that in an emergency situation. The ability to use it offline is nice but assumes that I prepared for that ahead of time.

Not to mention that a 40000 word word list has a lot more room for misremembering and mishearing than spelling out a sequence of digits. If it had used a word list that was designed to be easily recognized by sound, had no plurals etc, that would have been a different thing.

Also, emergency services are local, but this system wastes bandwidth on being able to describe any location in the world.


> Not to mention that a 40000 word word list has a lot more room for misremembering and mishearing than spelling out a sequence of digits. If it had used a word list that was designed to be easily recognized by sound, had no plurals etc, that would have been a different thing.

Not only that, the word list is localised in different languages, and those are untranslatable as each locale uses a different coefficient table.


Transferring the location from one place to another

So aside from the fact that my address has around a 50/50 success rate with people trying to find it (My address is a building + street name that has a mirror building + street name across the other side of a motorway)

Transferring the address, the obvious example people give is emergency services but this applies to so many situations, I volunteer with a litter picking group and they have found w3w extremely useful to communicate locations, you "can" transfer a pin but you need those devices set up to do a transfer already, with w3w I can check the website for the location on my way out the door and enter it to my map on the way, people who arent setup as contacts can transfer it without having to trade phone numbers etc.

Its hard to understand how someone could not find a way to easily memorize and communicate a specific location a very useful thing?


Which is absolutely fine in a non-critical scenario such as picking litter, or finding your mates at a festival. But, as the article demonstrates in detail, there are too many possibilities for error, which in a life or death scenario we cannot afford. Emergency services often deal with exactly that kind of scenario.


It makes sense more in some countries than others.

In Japan, for e.g. there are no street numbers.

In the U.K. we have postal codes that generally refer to a street. But they sometimes can be only a portion of a street, sometimes they’re a building, sometimes they’re a large business who might be across multiple sites. At other times (usually rural) they’re very very long roads, so sticking the address into a Sat Nav takes you to that road but not the point on the road that you want to travel to. Because the system is so mixed, 99/100 nthe address is absolutely fine, but occasionally it isn’t. I agree dropping a pin is more useful though.

Ireland had no postal codes at all until recently.


Japan has a perfectly functioning addressing system that works more or less like street numbers. It seems complex to outsiders, sure, but somehow this advanced country seems to get along just fine. https://en.wikipedia.org/wiki/Japanese_addressing_system

Postal codes aren't addresses in most places; they're an overlay system on top of addresses to make it easier for the post office to route mail. They're great! And there's absolutely no reason why a country should pay eternal rent to What3Words to use their proprietary code system when they can develop their own.


But in what situation is this useful?

On the phone? There's a bit I don't like about W3W, but efficiency of communication is their killer feature.


> cant we just agree on an open w3w implementation.

They don't want that to happen, at least not an open source implementation. They want to be in the position of Pantone and colour.


Why 3 words? Why not 4?


Because it is enough to provide sufficient accuracy.


Why not 4 words and a smaller, less error-prone word list?


Only with a ridiculously long word list containing plurals and words people can't spell.


The fundamental flaw for me goes deeper.

Both services mimic the principle of URL shortener applied to geographic location. (Even if, as you point out, one is public domain machine readable and the other is proprietary human readable one).

But why are url shortener so popular in the first place? Why are they perfectly usable even if competing services exits? (and I'd bet most popular are self-generated like youtu.be/dQw4w9WgXcQ).

I think they are popular mainly because they rely on the ubiquitous HTTP protocol to be fully interoperable with almost any HTTP client.

There is no such universal protocol or library to manage geospatial data provided in "custom hashed format". But all of the various tools available will gladly accept a latitude/longitude XY coordinate pair because they are perfectly machine readable and while not human friendly they actually mean something so that professionals can make sense of the numbers if needed. Also as far as variable precision is needed, let's throw a round(,) function and be set with it.

So as of now both solution are essentially some kind of private API with no widely available and stadardised support to revert to a usable latitude/longitude. So I would guess many GIS power users look at this suspiciously secretly hoping that no one will ever share such obfuscated data format to them for any critical use.

NB : For more complex data representations there is a whole standard defining organisation https://www.ogc.org that define horribly complex (yet useful) data structures and gladly make the standard freely and publicly available. Maybe they could enforce a flavor of geohash into a FOSS standard so that tooling could refer to it, but I'm not sure it's on their roadmap.


Hi Nelson, maybe you can explain this to me: why so much hate towards what3words? Chris once came to our office to see if there was a fit for us to use their invention. We did not find that it solved a pain point for us, so nothing came out of it... but the amount of rage that I see that they have been accumulating towards the years. Is there a story behind it beyond "I want to do something similar and can implement it, but <patent>?" Thanks in advance


Hi Ragi! My complaint with What3Words is 85% their proprietary business model. They are literally trying to convince less developed countries to adopt their system in lieu of developing their own addressing systems. So that What3Words can forever force that country and anyone sending mail to it to pay them fees. It is evil.

This is not theoretical; back in 2017 they were bragging at how they'd convinced the nations of Kiribati, Mongolia, Sint-Maarten, Côte d’Ivoire, Djibouti, Tonga, Nigeria and the Solomon Islands to use them as a national standard. I'm certain that the actual usage is exaggerated on their part but imagine if it were really true. Addressing is far too important to be held by a proprietary company. Addressing is a national service that countries should provide as part of being a nation, and there's a long history of countries developing addressing systems that does not rely on some predatory intellectual property system.

5% of my annoyance is What3Words pretends like they invented some brilliant new idea that's unique and should be IP protected. No, the idea is older than them. And the implementation is obvious to anyone with ordinary skill in the art of addressing. Anyone competent with GIS concepts can design a similar system in a few days' work. And there are many better alternatives.

The other 10% of my complaint is their static addressing model. It's not good that two houses nearby have completely different addresses; real addressing always has hierarchical names and there's a reason for that. There's also a problem using words in that they are localized to the country's language. That's better than forcing English everywhere but makes interoperability way more confusing. Finally there's all the problems people keep finding with their word lists; that's covered well by other writers so I won't go into it.

PS: I misspoke when I said Geohash is the oldest similar system. MGRS dates to the 1940s. There may be older ones, too.


A standard for global addressing should not rely on a proprietary algorithm or wordlist, as it means that there is no legal method for using the standard besides using (paying for) What3Words’ API. This fits the common definition of rent-seeking behavior.

This couples with the technological issues outlined in the article above. I believe the vitriol against W3W is fueled by the combination of rent-seeking behavior on a standard of poor technical quality.

I’m also bothered that one of the main use cases W3W’s marketing highlights is for specifying locations in emergencies, a totally non-commercial/public-good application. W3W presents itself convincingly to laymen as this sort of public-good open standard, but they’re just another startup with a proprietary product they’re hoping to monopolize.


Furthermore, there's a payola scheme behind the scenes, to make sure automakers implement it in their infotainment systems and stuff, which they hope will force others to license it.

It's a great idea, a mediocre implementation, and a set of business practices that make the antichrist jealous.

On top of that, their bloodthirsty pursuit of any criticism means that legitimate discussions of the system's flaws can't happen in the open. The lack of that criticism may have encouraged some services to adopt W3W without realizing its flaws, and there's already some hinting that such a flaw may have already interfered with actual rescue operations:

https://www.bbc.com/news/technology-56901363

Thankfully the rescue was able to proceed once they switched to another coordinate system, and that case didn't result in a fatality. How many other such cases are there? We might never know. The company may have literal blood on its hands at this point, but fixing the flaws would require discussing them first, which we can't do as long as they're empowered to shut down discourse.


The hate is because they patented it. It is a useful idea, but it would be far more useful if the algorithm and wordlist were public domain and didn't require a license to use it.


W3W has sent a legal threat to a security researcher[1][2] for tweeting about and sharing the open-source software alternative WhatFreeWords. Great way to make friends!

and here[3] is a long article of why w3w isn't safe for the use-cases they're peddling.

tl;dr: they're a garbage company, with a garbage product, run by ghouls.

[1] https://techcrunch.com/2021/04/30/what3words-legal-threat-wh...

[2] https://twitter.com/AaronToponce/status/1387933438305394690

[3] https://www.linkedin.com/pulse/what3words-confusion-suitable...


There is an alternative to what3fucks https://www.fourkingmaps.co.uk/ idk how long it'll be up for though


Yes, geohash makes more sense, letter numbers are better, since people would still have to memorize words, which is a little similar with letters. They would still write it down or copy paste it.

Another solution would be a smaller set of easier words, on subgrids like geohash, because gradual precision is really better.


Other similar implementations were either DMCA'd off of various platforms or had their domains seized by lawyers, their legal actions go back a few years already

I suppose the emoji version survives because it doesn't infringe on their word list or patent, which specifically is for "words"


> https://what3emojis.com/ is probably the most long-lived

What's the spatial resolution of that? Seems to be dozens of meters at best.


By my measurement, no finer than 4290 feet / 1.31 km. https://i.imgur.com/HKN3hyN.jpg

Both of these endpoints (and everything in between) are [telephone][megaphone][currency-exchange]. https://i.imgur.com/TzUU1cG.png https://i.imgur.com/5iTtm6c.png


The about page says 4m, but I could drag their example map over multiple blocks in my city without the emojis changing.


That's exactly the thing I noticed, too.


My phone doesn't have the emoji character for the second element around Dartford, London, UK so I just see an invalid grey box.

Not a resilient solution.


I regret to inform you this parody of What3Words is not a completely usable and accurate system.


I learned about pluscodes because of this and they seem quite elegant: https://maps.google.com/pluscodes/


The algorithm is also extremely simple, I've seen code golf with less than 100 char in most languages, and realistically just a couple lines of code.

I like that you can recursively add more precision after the plus, as well as truncate some of the start if you provide context like the country or city. For example all of Montreal lives within the "87Q8" block, so I can just truncate that away if I specify that I'm in Montreal.


Doesn’t the plus code algorithm rely on tiling the globe with a space filling curve? I’d be surprised if that could be done simply.


No, the plus code system is purely grid based.


pluscodes are also known as "Open Location Code" and the github repo is: https://github.com/google/open-location-code


My personal opinion of W3W, while a cool experiment, has always been: over-engineered. To hear they're raising their hackles is disappointing.

From Amateur Radio: Maidenhead grid squares + NATO phonetic alphabet are technical but adequate for purpose. It's hard to confuse "Foxtrot November Zero Three" with "Delta Mike Zero Four" even if you're communicating over a VHF/UHF satellite flying overhead in LEO.

You can get more or less specific by adding or removing symbols. Eg: "EK64ab" or just "EK". It's a challenge to log radio contacts from all of the major [AZ##] grids. https://twitter.com/GridMasterHeat


As an idea, what3words appears to exist only to make money for its owners.

The UK already has an open, easy to use, well documented and battle-tested way of defining any point in the country. Grid references.

What3Words doesn't actually solve a problem that isn't already solved.


Yes! The national mapping agency (Ordnance Survey) make the algorithm for highly accurate GPS conversion (OSTN02) available for free.

This is my implementation in C, for example: https://github.com/jawj/OSTN02c


For anyone wondering what what3words is, it's some kind of stupid way to refer to a geographic location using 3 numbers... sort of like a quadtree. Except for patent purposes, they replace numbers with 40,000 english words, so instead of 128.0.1 your house might be located at battery.horse.staple. The UK seems to be head over heels for this advanced technology, and the company that sells it has millions of dollars to spend on harassing people who try to make open-source clones.


A proprietary geocode solution remains a terrible idea in general, and especially in this case.

The government should buy them, close them, and invest in replacing the system with an open and international standard.


I used to think that w3w is kinda neat and really liked them, but then I've learned that they basically stole the idea from some guy from India, and their predatory copyrastic practices.


Note that this company believes this algorithm to be proprietary, and seem to have threatened people publishing information about it.

I avoid using or publicizing it for that reason.


If you abandon the requirement to completely replace the existing systems you can have a much smaller wordlist. For example, if we trust people to know what county they are in we could have duplicate triples in each country. Arguably we could go even smaller, to the national subdivision (eg state) level


Isn't that what... zip codes/postal codes are? The whole point of systems like this is to be able to point to any place on earth.


The point is to easily uniquely identify a point. I'm arguing the tuple (California, some, simple, words) solves for that use case better than (cromulently, extraneous, uniquely). We're (I hope) not doing this just to be different but because it has useful new properties. For example, street address + zip isn't ideal when you're talking to Search and Rescue.

Edit: You can think of this like 9 square meter resolution zip codes with a human friendly representation, yes.


Fair enough. That being said, I think PlusCodes are basically the better worldwide "zipcodes", and while they don't have the "three simple words" property, they do have the property you speak of.

You can basically truncate the first 4 character of the 8 character chunk if you specify a city/country that's within one block. You can also add arbitrary precision after the + sign by adding more sub-blocks.


That does sound great. I'll look into it.


Can't say I'm fond of their '///word1.word2.word3' notation. Why couldn't they just use a URI scheme?


To me that’s clear. Firstly most of their target audience has no knowledge of what a URI scheme is and only care about the three words. Secondly would be the branding ///x.y.z is subjectively better branding then w3w://x.y.z


I must admit that I don't really care much for how marketable their notation is.


Their whole "business model" (in quotes because thankfully it doesn't seem to be anywhere near profitable) is to convince naive people that they're the good guys helping emergency services locate people, that their system is flawless and that they're the first to solve this "problem" so they can then rent-seek from GPS/mapping developers once enough idiots swear by this system and start demanding it as a feature.


The only reason we're talking about them is how marketable they have managed to be.


Geohash can give an accuracy of 0.019 KM at 8 characters, with each additional character reducing error by nearly 1 or half an order of magnitude and uses just 32 characters.

Why not just map geohash to words? 32^9 << 40000^3, or if you want higher accuracy, 32^12 << 40000^4.

The mapping is very simple, 32^3 < 40000, map 32^3 to words and back, then split geohash to 3 character long chunks, look them up and combine them. Going back is equally trivial.


The "words for location" thing is kind of a non goal anyway. They aren't good addresses, which benefit from following patterns and being predictable, so the use case is for communicating a location.

It really only makes sense if you have an electronic device that implements the algorithm and a communications channel that only works for voice. Otherwise a beacon sent as data makes more sense, and that can be the coordinates directly.


In some places (even in "first-world" countries like Spain, my own experience) postal services, the police and visitors don't have a clue where your house is located at.

I'd pay 0,50€ per delivery if amazon.es would allow me to specify a what3word-address and have UPS/DHL/etc use it. For years the drivers have been calling us, asking where the address ist at...

Also really fun when there were burglars in your house and the police doesn't know where to drive to.


But as parent says, for that use case, the word-ness isn't relevant - picking coordinates of a map or any of the other position encodings would work just as well. And not require paying W3W license fees for no good reason.


In the US we bit the bullet and regularized addresses (to the county level, which is typically the biggest entity providing urgent emergency services).

A rural place I used to live formerly had a named road, that got switched to a number that roughly locates it east to west in the county, and then the house number was set to roughly give the distance north from the nearest crossroad to the south. So anyone that understands the addressing system in the county can basically drive directly to any address without any further information (with perhaps a few short detours where roads don't continue or the like).

Of course this works much better in a place that has relatively new properly lines that were drawn based on a regular survey, but I'd think there would be some momentum to at least make things simpler over time.


It might be worth a try even if Amazon doesn't have an official field for it. Amazon UK has an "add delivery instructions" button in the address book, intended for building codes and suchlike. Failing that, you could try writing "what3words: foo.bar.baz" as your name.


I remember this guy way back from alt.ph.uk, he was always doing quality posts back then. A brilliant fellow. Great to see another excellent write-up from him.


Old skool! Those were the days :)


I built a latlon<->word system using geonames as the source of the words. https://3geonames.org 146000 global place names in total.

The first word is the name of the most important geographical location in the given area while the other 2 words are quasi random. https://3geonames.org/LONDON-MOSCOW-PARIS is next to https://3geonames.org/LONDON-MOSCOW-GASSIN . (places that are about 160 metres apart will share both the first and the second word)

Lately I've been thinking of modifying the system to only use place names from the country where the point falls in, so you will only get British place names for locations that fall inside Great Britain. You could also modify the code (it is open source) to whatever you like.

There is an infinite number of ways to skin this cat, but I doubt we will ever all agree on just one.


Seems confusing to me to describe a location using the names of unrelated other places. It would be even more confusing to limit the word set in the way you describe. "Where do you live?" "London-Oxford-Leeds." "Where is that?" "Outside Brighton."



Skip What3Words, use Placekey: https://www.placekey.io/

It's a better identifier and a much friendlier organization. Technical details here: https://docs.placekey.io/Placekey_Technical_White_Paper.pdf


Is that another proprietary algorithm?


Placekey appears to be more about database management and de-duplication than about communication.


Placekey seems neat, but it only fully supports the USA and partially supports the Netherlands.


lol it says "universal"


Slick site, but I'm not able to use it as I'm not in the USA.


Placekey identifier is hard to remember and read.


seems open, that's much better than w3w


What an extraordinary piece of analysis. Really thorough, detailed and well-explained work.


Is this algorithm based on the "clean room" reverse engineering effort?



Is there any reason why they didn't use a simple hashing algorithm? At first sight it seems to me like they are just trying to invent one, but without actually knowing how.


Two reasons: 1. It needs to be reversible so you can go from words to lat/lon. 2. They wanted to use shorter words in cities, so the distribution of low n didn't want to cover the full range of m. (this could probably be solved by some sort of banding though).


They wanted it to be proprietary.


They have to do that if they want to ensure locations near one another never share two of the three words, due to the birthday paradox.

Given their 9-square-meter locations and their urban area word list of 2500 words, if you assigned the mapping randomly then within London you'd expect there to be about 70,000 locations with another location sharing two words within 50m.

To put it another way, there would be a 13% chance of a soccer pitch containing two locations that shared two words.


Everyone knows numbers. Just use semi accurate GPS co-ordinates. Been around for decades, and already built into that phone you are holding.


Coordinates are also ordered and predictable, given your current position you can intuitively determine in what direction (and approximately how far) where other positions are.


I think I'm missing something. The algorithm shuffles to prevent words in adjacent squares from being the same? Why not just draw from the set of 3-permutations and if satisfies that adjacency constraint, remove from the pool of available permutations (conditional draw without replacement). A solution would only have to be found once anyway, right?


Their business model is to own access to the dataset. They don't want hierarchy as they want people to be required to use their software every time they interact with these addresses. They're just scummy. There's no reason to use this scheme vs a hierarchical decomposition using something like S2.


Storing a full lookup database on every device is not pratical.


With ~3 million squares it would fit in a couple hundred megabytes at the very most, even without any compression. It may not be optimal, but it's certainly not unrealistic either.


The squares are 9m^2, surface area of the earth is 510 trillion m^2, so there’s about 50 trillion squares. You’re not fitting that in an app


I think the surface area of the earth is 196,936,994 m^2 That's 21,881,888 3x3 squares. The surface area of Jupiter is 23 trillion m^2.


It is 510.1 trillion m² (google result).

3x3 is 510.1/9 - 56 trillion (and change).

> 196,936,994 m^2

Is equivalent to a perfect square with sides 14km long...they say it's a small world..but not that small.


The explanation of the discrepancy is that I had interpreted the numbers in OP article and in parent as miles, not meters.

https://solarsystem.nasa.gov/planets/earth/by-the-numbers/ Volume: 6.73 x 1011 cubic miles (1.083 x 1012 km3) Radius: 3,959 miles (6,371 km) Diameter: 7,918 miles (12,742 km) Surface Area: 1.97 x108 square miles (5.1 x 108 km2) Mass: 5.972 x 1024 kg


The standard symbol for "square miles" is "sq mi."

"m²" or "m ^ 2" universally refers to square meters (unless you've established unambiguously that you're talking about miles — and even if you have it should still be "sq mi").


Your surface area is totally incorrect.


It is not incorrect. Its in US miles, not meters. I mistook the original as posting in miles and responded in kind. meters makes more sense--more fine-grained.


Yes, that's pretty much the definition of incorrect.


Again, I think I'm missing something. Apps don't maintain a complete local database or resource records for the domain name system either. We access name-servers for that information. So I think I'm missing the use case for this system.


A design requirement of the app is it works offline.


Ok. That makes sense.


Repeating what I wrote in the other HN thread:

Wouldn't a 4-word system be much easier to implement, be reversible and probably avoid their patent?


And there was I thinking that the main problem with What3Words was a total lack of error detection/correction.


is the problem just that they treat plural and singular words differently? Wouldn't just removing plurals, homophones, and difficult to spell words get rid of most of these problems?


You would still get high densities of cells which share two words being present close together, leading to any issue with the third word causing a confusing location.


Yes, mostly if you try to use voice recognition though. Example: arrows vs arose, picture vs pitcher etc. https://mobile.twitter.com/cybergibbons/status/1388416763549...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: