Chinese government reveals Microsoft’s secret list of Android-killer patents
arstechnica.com
arstechnica.com
This is like a blub programmer complaining about lisp being unreadable. I am no attorney or patent agent, let alone part of a "select tribe of professionals", just a typical software geek. Yet I can read patents pretty easily. Took me some practice to get the hang of it, but I needed absolutely no training for it, and neither do you!
Of course, if it's a legal matter (you're being sued), you need a lawyer. But if you just want to evaluate the technical merits of a patent, you can interpret the claims yourselves. All you have to realize is that patentese is just a particular form of English -- English that has to be overly specific (e.g. avoid pronouns) while at the same time trying to be as broad as possible, but English nonetheless. And you usually only need to read the independent claims (those that don't reference other claims) get a sense of the scope, as those are the broadest ones.
For instance, look at the claims conveniently posted at the top of the thread: https://news.ycombinator.com/item?id=7901544
I really cannot see what's so complicated about those. They seem a bit vague (e.g. what's an "entity"?) but applying the common meaning of the terms involved (e.g. maybe "entity" as in "person, place or thing") reveals a pretty straightforward description. It's nowhere near groundbreaking, but popular narrative of lightbulbs and flying machines notwithstanding, patents rarely are.
You'd require a judge to start deciding if a company is _really_ using the patent. Which seems hard to tell. Especially if the patent is for something requiring a ton of work/capital. Like a patent for a new spaceship or rocket or jet engine.
NPEs would quickly find a way to stay NPEs but get passed the legal definition of "non practising".
From http://www.wilmerhale.com/pages/publicationsandnewsdetail.as...
> Laches defenses have been successful in cases in which a patent owner knows about an infringement and then delays many years before bringing suit. Laches typically bars the recovery of any past damages but allows for the recovery of damages arising after the filing of the lawsuit
The idea is just the idea. It's execution that matters.
Also, in the linked article by Brad Smith, uSoft wrote: We pledge that by April 1 of this year, we will publish on the web information that enables anyone to determine which patents we own.
How was it impossible to determine prior to April 1st? Did they update the patent database or something?
Thank you.
If you really wanted to be safe from Microsoft and not pay them licensing fees, you could have paid some professionals to review their patent holdings for you, and identify any patents that could potentially be asserted against your smartphones. This list is essentially the result of Microsoft doing that.
My understanding is that it is not practical to do this. Have you done this before or known people who have? How much did it cost?
In the fantasy world of "patents protecting innovation", it seems rather dubious that The Inventor should actually obscure the details of his invention under incomprehensible legalese and vague threats with litigation. Quite the contrary, we should expect The Inventor to widely disclose and promote his intellectual product, so that manufacturers find out a Better Way to do it has been Invented, and it's available for licensing.
Could it be that (gasp) the whole premise of the patent system is flawed, that the vast majority of patented methods are trivial, obvious and sometimes unavoidable by the practitioner, and that the benefits companies derive from patents are anticompetitive as opposed to stimulative for research and development ?
Because it's impossible for any small player to know if they're following the law if they don't know what the law is. In effect, undisclosed patents are like a law that someone says they know you are breaking, but they won't tell you why unless you agree not to tell the next guy. That's no way to run a society.
Undisclosed patents? That's quite an oxymoron. "patent" literally means out in the open. There are no undisclosed patents here. Even patent applications are public.
It should be perfectly clear from context that I am referring to specific patents that are used as a threat against competitors, without the specific patent numbers being revealed. No amount of searching the patent database will tell you conclusively which patents those are.
Aren't they being revealed to the competitors that are being approached for licensing? Are you implying that, for example, Acer doesn't know which patents it bought a license to?
Also, this list is essentially the top ~300 patents that MS thinks Android infringes on. There's absolutely no guarantee that other patents don't apply now or in the future so the utility of the list is kind of low.
Or just stop being a competitor, I think this is what they're going for. Barring that, pay them some protection money.
A good example RE40989 Atomic Operations on Data Structures.
If you read the claims you'll notice they have basically patented the way of 'atomically' changing arbitrary sized data by simply acquiring a mutex (or atomically setting a 'do not touch' flag), making the changes and then removing the flag.
If you want to do parallel programming at all you will have some sort of locking mechanism to prevent multiple threads from writing the same data structure at the same time. And if you do, you are infringing the patent.
P.S. You can all thank me now. You know of this patent so it's 3x penalty for willful infringement ;)
Go read http://www.webmproject.org/license/bitstream/ and tell me what patents I am licensing.
Why wouldn't MS use a similar technique for Android licensees?
> CLAIMS(20) A method comprising: receiving a query that is configured by an issuer of the query to perform a local search, wherein the local search is performed over a first dataset and a second data set, wherein the first dataset comprises a first entity and the second dataset comprises a second entity, and wherein the query comprises a first token and a second token; parsing the query such that the first token of the query is mapped to the first entity in the first dataset and the second token of the query is mapped to the second entity in the second dataset; and returning search results based at least in part upon the parsing of the query, wherein the method is executed by a processor of a computing device. 2. The method of claim 1, wherein the first dataset is a custom dataset, wherein the custom dataset comprises a plurality of entities generated by an end user, and wherein the plurality of entities comprise attributes that describe the plurality of entities and shapes pertaining to the plurality of entities. 3. The method of claim 2, wherein the second dataset comprises street-level vector data. 4. The method of claim 3, wherein parsing the query comprises determining an approximate geographic region pertaining to the query. 5. The method of claim 4, further comprising determining the approximate geographic region pertaining to the query based at least in part upon mapping the second token of the query to the second entity in the dataset. 6. The method of claim 1, wherein parsing the query comprises identifying which words and phrases in the query correspond to attributes in the first dataset and the second dataset. 7. The method of claim 1, wherein parsing the query comprises generating a plurality of different partial interpretations of the query. 8. The method of claim 7, wherein each partial interpretation in the plurality of partial interpretations comprises a set of mappings between tokens in the query to attributes in the first dataset and the second dataset and an approximate region of interest pertaining to the query. 9. The method of claim 8, further comprising refining at least one partial interpretation, wherein the at least one partial interpretation is refined by way of spatial processing. 10. The method of claim 9, wherein the at least one partial interpretation is refined by determining that an entity in the first dataset spatially corresponds with a region of interest pertaining to the query. 11. The method of claim 10, wherein the region of interest is altered based at least in part upon a geographic overlap of a previous region of interest and an entity. 12. The method of claim 1, wherein the query is received in a first language, and further comprising translating at least a portion of the query to a second language. 13. The method of claim 1, wherein the query is a free-form text query that comprises misspelled terms, erroneous terms, out of order terms, or valid but wrong terms. 14. A system that facilitates custom local search, the system comprising: a processor; and a memory that comprises a plurality of components that are executed by the processor, the plurality of components comprising: a receiver component that receives a query from a user, wherein the query comprises a plurality of tokens, wherein the query is configured to retrieve custom content with respect to a particular geographic region, and wherein the query comprises a first token and a second token; and an interpreter component that parses the query such that the first token is mapped to a first entity in a first dataset and the second token is mapped to a second entity in a second dataset, wherein the first dataset is a custom dataset that comprises custom data provided by an end user and the second dataset is a contextual dataset that comprises street-level geographic data. 15. The system of claim 14, wherein the first entity comprises a shape that describes a geographic region pertaining to the first entity, an attribute that describes the first entity, and a unique identifier that identifies the entity. 16. The system of claim 14, wherein the query comprises at least one token that is indicative of a custom dataset amongst a plurality of custom datasets to which the query pertains, free-form text, and at least one token that is indicative of geographic scope pertaining to the query. 17. The system of claim 14, wherein the interpreter component comprises a query interpreter component that outputs multiple partial interpretations of the query, wherein each partial interpretation comprises a list of mappings between subsequences of tokens of the query and sets of entities in the custom dataset and the contextual dataset and an approximate region of interest pertaining to the partial query interpretation. 18. The system of claim 17, wherein the interpreter component further comprises a refinement component that refines at least one of the partial interpretations, wherein the refinement component modifies the approximate region of interest pertaining to the partial query interpretation when refining the at least one of the partial interpretations. 19. The system of claim 18, wherein the interpreter component further comprises a ranker component that ranks refined partial interpretations. 20. A computer-readable data storage device comprising instructions that, when executed by a processor, cause the processor to perform acts comprising: receiving a query, wherein the query comprises a plurality of tokens, wherein the query is configured to execute over one or more custom datasets and one or more contextual datasets; generating a partial interpretation of the query, wherein generating the partial interpretation of the query comprises mapping a first subsequence of the tokens to a first attribute in the custom dataset and mapping a second subsequence of the tokens to a second attribute in the contextual dataset; refining the partial interpretation of the query to generate a refined interpretation, wherein refining the partial interpretation comprises mapping a first entity in the custom dataset that has the first attribute to the first subsequence of the tokens and mapping a second entity in the contextual dataset that has the second attribute to the second subsequence of tokens; and causing graphical items representative of the first entity and the second entity to be displayed on a display screen of a computing device.
There should be a non-profit organization that files arbitrary new patents preemptively on behalf of the public and then release them into the public domain.
So, a fancy parser, a per-user list of places of potential interest and a Solr collection with geospatial data.
P.S. the irony is that at no point in that overly verbose spec, is there anything that in any way tells you how to build that system. It's like patenting a device for enabling one to force a resistance against achieving minimum possible potential energy in a gravity field upon a mass of fluid, i.e. the concept of a bucket (or a glass, or the act of cupping your palms). And while that is surely only the preface of the patent, I seriously doubt the body is any more illuminating. Maybe while completely abolishing software patents remains impossible, we should try to enact reform that forces them to be specific enough that just by reading the patent one would be able to write a program that performs the actions described therein. Even if it's just "take a solr server, configure it like this, take this particular natural language parser, generate the possible forms of the query like so...". At least then they would be useful in a decade or so.
In other fields, such as mechanical engineering, patents are required to describe an invention in enough detail that a person "skilled in the art" could reproduce it.
In the field of software, the patent merely has to describe the invention (software) well enough that it can be identified, not written. To match other fields, where it's common to require essentially full bluprints, it would make sense to require working source code (if only a reference implementation) for any software patent.
As is, the patenter "gifts" the public with the knowledge of an idea which is rarely in itself useful; the source code could at least be potentially useful.
The patent lawyers have figured out that requiring that software patents make sense and reveal actual new engineering knowledge would make them useless for extracting cash for lawyers from actual working programmers.
[0] http://caselaw.findlaw.com/us-federal-circuit/1229938.html
However, it has a fundamental problem. Patents do not protect abstract ideas; they protect concrete inventions. I cannot patent "a means of traveling backwards in time" because that is an idea. As far as we know it's also impossible. You can't get a patent on "A surface that has zero friction" unless you also create that surface and explain how to do so. The idea that any physicist who is "skilled in the art" could figure out how to create such a surface from the laws of physics (which it surely must follow) is silly.
On the other hand, software patents are exactly like that. I can patent "A method whereby clicking a button solves P=NP" and simply claim that the solution is produced somehow. I have to give no example implementation or even very specific details. This is highly at odds with other industries.
I do understand the legality of it, but it's still significantly different than other fields and leads to inane results.
[0] http://www.google.com/patents/US8255379 [1] https://www.google.com/patents/US5889522
No. That is the game that is imposed by entrenched players, the wealthy, & lawyers to protect their interests (and maintain their dominance). They found a way to "hack" the system to their benefit over creators.
> There should be a non-profit organization that files arbitrary new patents preemptively on behalf of the public and then release them into the public domain.
You need to have a working prototype to file the patent. This non-profit would need the inventors to cooperate.
[edit] Actually you don't need to have a working prototype. Now my question is isn't that the role that open source and free software / hardware fills?
Of course, someone has to look at the explanation to determine whether the prototype could be built and be functional to have the patent granted. But who has time to deal with all that noise when you just grant the patent to let someone else deal with it?
One of you is right. Which one?
For instance,
1. A system for sending and receiving email.
You can probably find prior art for that.
2. Claim 1 where the email is sent over a TCP/IP network
And probably you can find prior art for that.
3. Claim 2 where the network is wireless
NTP won over $1 Billion for filing a patent with a claim about this serious, mostly from Blackberry.
Now you can continue like this indefinitely. That's why every time there's a new system, there are thousands of new patents that can be issued. Email on a phone, email over multipath TCP, email with a touchscreen, email with MIME messages, email with MIME messages on a touchscreen, &c. Each of those is considered valid to patent by the PTO. Then instead of email, try playing MP3s, or word processing, or online backup. You quickly arrive at a thicket of a million valid software patents covering everything you might ever want to program many times over.
Could it be possible for a patent crash to happen? Maybe the way to get rid of this absurdity is to push it to the extreme, produce industrial quantities of silly patents and force the whole system to a stop, then a single match would easily burn all of it.
That part of the original deal around patents has been lost, then - to wit, that after the 17 years elapsed, the world would know how to implement this 'non-obvious invention'.
I've wondered before if a group of hackers could DDOS the patent system.
It could be a modern form of civil disobedience.
It is clear that with their investment in the patent troll, Microsoft is evil. However, Google has tried to hold up the evil companies by using standards essential patents as well. I can try to justify it in my mind but is Google really better than Microsoft? We have yet to see (as far as I know) Google sue anybody but isn't having a trove of nuclear weapons enough of a reason to distrust someone? It is not like they have to blatantly display it for it to be a part of negotiations (might be hand wrangling if you're on the wrong end of it).
I am conflicted because the more I think about it, the more I doubt my previous assertion. A pledge to not use frivolous patents in an aggressive way is not sufficient. However, wouldn't I rather Google or Twitter hold a frivolous patent knowing they likely won't sue me directly (I have very small dreams and I doubt I'd ever show up on their radar). If it keeps one more patent off of the hands of Intellectual Ventures (or even the likes of Amazon.com, Apple, and Microsoft), isn't that a good thing for the world?
There is such a group and they're already doing it. One of the players is the focus of this article, in fact.
here it comes after 716 characters 0r 130 words. After this they seem to be lot more frequent.
Looks like the idea was to put people to sleep after 5 seconds.
[1] And that doesn't mean, "on some long-forgotten website in the dank corners of the internet". That means academic papers or other patents.
Good idea. Let's call it "Bell Labs".
There's really no difference between publishing your ideas in a public, searchable forum and patenting them, except that you get monopoly rights in the second case, but not in the first. Trolls can still leverage the cost of legal services against you whether you have a patent or prior art.
A claim is just a list of "AND" conditions, i.e. all the conditions must be met for the claim to be asserted. To defeat a patent claim, it's a matter of adding enough variance in your code to defeat ONE of the conditions.
I will demonstrate the decrypting of claim 1. The other claims are just dependent claims of 1 to make the whole thing looks meatier. If claim 1 is defeated, all other claims are irrelevant.
Claim 1 basically saying a user issues a query with two parameters on two tables to do search in a program in the local machine, with the following conditions:
1a. the query runs against two data sets, Table1 and Table2.
1b. Table1 has one type of data, e.g. Food. Table2 has another type of data, e.g. Drink.
1c. the query has two parameters: param1, param2. E.g. FoodEaten and DrinkConsumed
1d. parse the query to use Param1 against Table1, and to use Param2 against Table2. E.g. select * from Food where food_type=:FoodEaten union select * from Drink where drink_type=:DrinkConsumed
1e. the query result should based on the parsing of the query and the mapping of parameters to the tables. The result should relate to the parameters in the query.
1f. the whole procedure is run by a process in a computer.
See, it's not too bad once you break it down. The claim conditions are kind of BS individually. The basic idea of the patenting process is to string together a number of day-to-day common items and make the whole thing as patentable.
To defeat claim 1, just make one of the conditions false. The easiest is to attack 1c, which uses the phrase "comprises a first token and a second token," which means the query contains exactly two tokens as parameters. Just add a dummy parameter to all 2-parameter query to fail that condition.
Attacking 1a with more than 2 tables query also works.
Also breaking a 2-table query into two separate queries works, too.
Since claim 1 is gone, all other dependent claims are irrelevant.
Disclaimer: the above are purely for educational purpose only and are not considered as legal advice. Consult a lawyer for real legal advice.
This (along all your other circumventions) seems to me to only side-step the "spirit" of the invention -- to my mind any implementation using the techniques you suggest works more or less precisely as the patent describes.
If this is defeating I want no part of this charade.
Like in the example above, the word "comprise" has very specific legal meaning - to be all of it, no more no less. Having 1 parameter or more than 2 parameters would not fit the claim description. You would see the word used again and again in patents. It's like the word "concurrent" in CS. Programmers just understand its meaning and the connotation of it.
Most of patents are BS anyway. You just need to learn to defeat it in its own game.
See, eg http://www.patentlens.net/daisy/patentlens/202.html
The transition words or phrases commonly used are "comprising," "consisting of" and "consisting essentially of" and have very distinct meanings:
"Comprising" is open-ended language, meaning that the claim encompasses all the elements listed but does not exclude additional, unnamed elements. For example, if a claim recites elements "A" and "B", an individual that practices the invention using elements "A" and "B" is infringing, and using "A", "B", and a new element "C" is infringing, whereas if she only uses element "A" or "B", she is not infringing.
In contrast, the transitions "consisting of" and "consisting essentially of " have more limited scope. "Consisting of" means that the device (or method) has the recited elements (or steps) and no more. For example, if a claim recites " A" and "B" and the individual uses only "A", or "A" and "C" but not "B", or even "A", "B", and "C", the claim is not infringed.
The meaning of "consisting essentially of" is intermediate to comprising and consisting of. A claim using this transition includes additional elements only if they do not affect the basic and novel characteristics of the claim. " Consisting essentially of" is not often used.
Drafting a claim to use open-ended language will enable the patent to be as broad as possible. Narrowing the claims to be more specific is the kind of thing that a patent examiner might demand in order to approve the patent.
(And this is why you have to employ lawyers whenever patents are involved, as otherwise your opponents will rip you to pieces in court.)
The alternative phrase is "consists of" which means that only the listed elements may be present. I think it's mostly used when claiming chemical or molecular formulas.
Make sure you name all the constituent parts when using comprise or compose. The word to use when other elements are may also be present is include.
The elements one, two, and three composed the set {1,2,3}. The set {1,2,3} is comprised of three elements. The set {1,2,3,4} includes the elements one, two and three.
Some writers insist that include be used only when it is followed by a partial list of the contend of the reference of the subject. This restriction is too strong. The use of comprise or consist of will avoid ambiguity when a listing is meant to be exhaustive."The transitional term “comprising”, which is synonymous with “including,” “containing,” or “characterized by,” is inclusive or open-ended and does not exclude additional, unrecited elements or method steps." http://www.uspto.gov/web/offices/pac/mpep/s2111.html
There are other non-standard interpretations in patent language. For example, "a" or "an" is not necessarily a singular but can mean "one or more". Also the inventor is free to provide their own definitions for words they use in the patent specification.
When engineers are advised by lawyers to never read patents that pertain to their field, you know the entire system is a fucking joke.
That's not true. Thanks to the doctrine of equivalents you can still infringe on a patent even if your invention differs from what the claim describes. (Now, if you want your invention to count as prior art, it does have to exactly match the claim - whether two inventions are considered the same for prior art purposes is different from whether they're considered the same for infringement purposes.)
https://news.ycombinator.com/item?id=7281319
http://hal2020.com/2014/03/03/satya-shuffles-his-leadership/...