FixPhrase – open-source, patent-free what3words alternative
fixphrase.com
fixphrase.com
The wordlist is surprisingly hard work. The first location I clicked on fixphrase had as one of its words 'french'. That's potentially pretty confusing. It's super hard to get a good wordlist, and it's not just negative words, words that are particularly unusual or words likely to create bad combinations, it's also removing homonyms, words likely to be confused (capital/capitol, carless/careless), geographic words, or words that are combinations of other words in the word list.
I talk a little about my own wordlist choice here http://wherewords.id/+about my word list is here https://github.com/kybernetikos/wherewords/blob/main/lib/wor...
> big red plate, small fuzzy ball, wavy green brick
With three disjoint short lists, and two disjoint adjective lists you get permutation robustness.
"A few disjoint lists" are the same thing as one big list if they are used identically in your generation process. There is no difference between "flip a coin, and pick from this 256-word list or that 256-word list according to the result" and "pick from this 512-word list".
If your system is to pick from a 16-word list of adjectives, then another 16-word list of adjectives, and then from one of three 256-word lists of nouns, you are generating codes of 17.6 bits, which is a bit of a downgrade from 48 bits.
With plus codes you can both have a short, memorable address and gauge relative distance with other nearby addresses. I'm not sure I can think of a reason to ever use fixphrase or w3w as an alternative to this already existing open standard.
with w3w if you can't contact the person with the address again, you've no idea where on the planet this place might be.
Some words may also be difficult to pronounce/hear/spell by non-native speakers. Unlike regular sentences, there's no context to disambiguate.
Even for my attempt at the problem, I did various experiments on the word list, but an ideal attempt would check for similarity across common accents, etc and I certainly wasn't able to do that.
Having said that, I think it's a valid and realistic goal for good word encoder systems to aim for good roundtripability via voice or memory.
More seriously, English is such a terrible language for this, because it's so full of ambiguities.
English is no more prone to the problem of "some words sound exactly the same as other words" than any other language.
For the second point, -teen/-ty numbers sound different, are spelled differently, and mean different things. How are they supposed to support your point?
For the fourth, it's just false; "ghoti" in the pronunciation /fɪʃ/ does not come close to being valid written English. There is no such thing as syllable-initial "gh" /f/ or syllable-final "ti" /ʃ/.
The -ough suffix is a real case of one sound diverging into two sounds, but that is obviously not relevant to the problem of determining, from the sound of a word, which word you just heard. It comes up in the opposite problem of determining how to pronounce a word from the spelling, which we aren't talking about here.
The spelling bee is a cultural artifact; every language whose writing system is not extremely recent exhibits the phenomenon that the spelling of a word cannot be predicted from its sound. (In China, where spelling is much, much tougher, they don't have spelling bees. They do have traditional dictation exercises.)
You might find this wikipedia article interesting: https://es.wikipedia.org/wiki/Homofon%C3%ADa
The document appears to be a savings account "passbook" from a post office.
Did you notice how you can't "decode" the code without looking it up on Google Maps? That's not a location code, that's just using Google Maps.
If the system allows it, you can also use fewer words to target a bigger area. For example https://wherewords.id/juniper/detailed/ is an area of Paris, while https://wherewords.id/juniper/detailed/rate/thunder is a specific point in the Gare du Nord. Or if you're standing in Paris, talking to someone else in Paris, you can use context and drop the 'juniper'.
The only real reason I think it can be good to avoid a hierarchy is because having one makes the sensitivity of the word list much more significant. For example, if an entire country has a negative association word like 'stingy' or 'lying' in its first word, that could be a significant problem.
If you really need a checksum, https://wherewords.id/ supports an optional emoji checksum.
With w3w, Gare Du Nord is sunshine.frame.acted while sunshine.frames.acted is Abu Dhabi and sunshine.frame.actor is in Malaysia.
https://what3words.com/sunshine.frame.acted https://what3words.com/sunshine.frames.acted https://what3words.com/sunshine.frames.actor
While in wherewords.id, changing rate to fate or late or gate still produces Paris, but wrong location.
https://wherewords.id/juniper/detailed/rate/thunder https://wherewords.id/juniper/detailed/fate/thunder https://wherewords.id/juniper/detailed/late/thunder
Having an accurate location is important for emergency services. If you’re on a phone call trying to get an ambulance for someone having a seizure, or reporting a fire, shooting, whatever, it’s important to get the accurate location straight away.
If the call centre person misheard your location, but the code is still in Paris, they will think it’s correct and dispatch to the wrong location. It would take too much time after realising the mistake to get the correct location. So with w3w it is far more obvious when these issues happen as suddenly the map is showing as Middle East or Asia, not Paris!
I don’t think an emoji checksum would help here either. Wink. Was that a tongue wink or smirk or etc.
(Full disclaimer: I don’t see the point in w3w either. It assumes people are prepared in advance to have the app on their phone, otherwise if they need to download it/visit its site they have internet so there are better ways of getting the location)
The benefits of a random allocation vanish if you are building an application where Abu Dhabi, Malaysia and Paris are all reasonable answers. The w3w case is particularly bad because their wordlist is enormous and has so many ways you can confuse things.
I still think that a hierarchical system with an optional checkword/digit/emoji is the best solution to situations where you want to be 100% sure you got it right first time, but I accept that maybe the emoji is a bit too cute, and a normal word or number might be better.
I think the endgame for these types of systems doesn't need to assume online usage. It'd be fantastically useful in vehicle GPS systems for example, especially in countries with poor addressing.
What3Words is very much unsuitable for emergency situations and has been in the media for that several times.
GPS coordinates are better.
Some wordlist use words that are uniquely identifiable after some set prefix length (e.g. 4 characters) or use metaphone codes so you can type anything that sounds roughly right (e.g. keewee is the same as kiwi).
Sometimes, the combination of words can also be confusing, because you can't tell where the words end. before.head, bee.forehead.
Another issue I remember was that the plural version pointed to a different place altogether.
I used w3w (the triwords are great drawing prompts), and I had to repeat them multiple times to my friend drawing across the table. I didn't remember them after drawing them for a few minutes.
The metaphone wordlist I was talking about is verbal-id https://github.com/bandrews/verbal-id#readme which shouldn't suffer from the problems you mention.
> verbalid.parse("vacant brand orchestra kiwi")
'8aab9b999'
> verbalid.parse("vaycant brahnd orchistra keewee")
'8aab9b999'
My own wordlist has 'flower' but not 'flour', neither 'ants' nor 'hence', none of 'its', 'hits' or 'tits', neither 'lead' nor 'led', and 'let' but not 'lit', precisely because of the problems you mentioned. I went through my wordlist automatically first of all (with soundex filtering), then manually afterwards, trying to spot all of these problems and removing them.But does it accept 'flour' in lieu of 'flower' (or indeed 'floor' since I could well understand someone getting that from a slightly garbled / heavily accented phone call...)?
0, 0 catatonic magnetism sandworm swimsuit "Null Island"
90, 0 abacus magnetism sandworm swimsuit "South Pole"
-90, 0 "North Pole"
85.0511, 0 detonator magnetism snowboard theft "South Limit"
-85.0511, 0 activity magnetism smudge vicinity "North Limit"
0, -90 catatonic gloater sandworm swimsuit "Easter Island"
0, 90 catatonic pogo sandworm swimsuit "Indian Ocean"
0, 180 catatonic sandblast sandworm swimsuit "East Limit"
0, -180 catatonic driver sandworm swimsuit "West Limit"
Latitude is limited to ±85.0511 in OSM and Google Maps. Could someone request the words for "90, 0" and "-90, 0" manually? Second line above is glitchy but seems to be off-map South, at the pole, as expected. 0, 0 catatonic magnetism sandworm swimsuit
90, 0 dimmed magnetism sandworm swimsuit
-90, 0 abacus magnetism sandworm swimsuit
0, -90 catatonic gloater sandworm swimsuit
0, 90 catatonic pogo sandworm swimsuit
0, 180 catatonic sandblast sandworm swimsuit
0, -180 catatonic driver sandworm swimsuitCybergibbons: Why What3Words is not suitable for safety critical applications (2021)[1]
HN discussion here[2].
[1] https://cybergibbons.com/security-2/why-what3words-is-not-su...
https://patents.justia.com/assignee/what3words-limited
---
I've poked around the website. They claim an "open-source, patent-free algorithm" is used, and therefore the entire concept doesn't infringe on W3W's patents. Yikes. They can expect letters and lawyers.
https://source.netsyms.com/Netsyms/fixphrase.com/wiki/How-It...
W3W doesn't have a patent on looking up words by array index.
Makes it a little hard to use :-/
Non-rhetorical question: who has to remember it and why?
Is this primarily a work-around for the problem of it not being possible for a mobile phone handset to display the location during a voice call? If so, maybe someone should fix that problem because there might be other things that the caller might want to refer to on the screen while calling.
It's slightly hilarious, in a way. I can imagine a conversation with the inventor: How much memory does a typical phone have? And you're telling me that we should use this proprietary system for encoding coordinates so that the user can more easily memorise the coordinates? Tell me, do you use a similar system for memorising your friends' telephone numbers?
Of course in the case of emergency calls it really should not be beyond the wit of man to implement a system so that the owner of a phone can configure it to automatically send its location to the other party when an emergency call is initiated. I'm fairly privacy-conscious but I'd probably enable that one.
I have used the major system for memorizing numbers including phone numbers. It's a very similar system.
Long streams of numbers are not great for memorizability or accurate entry or human communication. Did you ever try https://file.pizza/ ?
This is also why private keys are typically described as a sequence of words from a wordlist. Used in blockchains, PGP, keybase, etc. It does solve a real problem.
The biggest issue this type of solution faces is a lack of standardization. There's this, What3Words, other people's hobbyist versions, Google has something like this built into their map product, etc. Every additional implementation is yet another nail in the coffin of the very concept.
The only way it would gain traction is if it were a government-mandated system. But every government already has one, and the benefits of adopting such a system don't outweigh the costs yet.
Mercedes, Ford, Jaguar, Land Rover, Lamborghini, Mitsubishi, Subaru, Lotus, Triumph & Tata Motors all accept what3words.