What3Words – The Algorithm
cybergibbons.com
cybergibbons.com
I wonder how many words in the english language would be left? I know the english language is massive
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.
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.
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.
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).
Stick with nouns? Then you can use icons as supplements. Ball, Pen, Light bulb, Burger, Guitar.
Possibly easier to translate between languages, too.
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.
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.
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
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"?
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
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...
Easy! just give them some latitude and longitude coordinates and tell them to match it up on what3words.com.
> 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?
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.
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?
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.
IMO, they also should have built redundancy (some form of error checking at least) into the encoding.
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.
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.
Interoperability isn't even that important, I just want to pull something into my project.
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...
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.
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 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.
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.
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.
They burned through just over £15,000,000 in 2019, for a total revenue just under £400,000 from 100+ employees.
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!)
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
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.
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...
Filing history, if anyone else is interested: https://find-and-update.company-information.service.gov.uk/c...
https://tech.eu/brief/london-based-location-tech-what3words-...
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.
[0] https://twitter.com/AaronToponce/status/1387933438305394690
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...
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.
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.
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.
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...
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.
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.
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.
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.
On the phone? There's a bit I don't like about W3W, but efficiency of communication is their killer feature.
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.
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 only that, the word list is localised in different languages, and those are untranslatable as each locale uses a different coefficient table.
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?
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.
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.
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.
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.
What's the spatial resolution of that? Seems to be dozens of meters at best.
Not a resilient solution.
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
Another solution would be a smaller set of easier words, on subgrids like geohash, because gradual precision is really better.
I suppose the emoji version survives because it doesn't infringe on their word list or patent, which specifically is for "words"
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.
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
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.
This is my implementation in C, for example: https://github.com/jawj/OSTN02c
The government should buy them, close them, and invest in replacing the system with an open and international standard.
I avoid using or publicizing it for that reason.
Edit: You can think of this like 9 square meter resolution zip codes with a human friendly representation, yes.
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.
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.
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.
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.
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.
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.
It's a better identifier and a much friendlier organization. Technical details here: https://docs.placekey.io/Placekey_Technical_White_Paper.pdf
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.
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.
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
"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").
Wouldn't a 4-word system be much easier to implement, be reversible and probably avoid their patent?