Software patents -- more than copyright laws, commercial software companies, and uninformed legislators -- are the biggest threat to the future of free software. While software patents have only been issued regularly in the United States since about 1982 (after Diamond v. Diehr), and guidelines for granting software patents weren't established by the United States Patent and Trademark Office (USPTO) until 1996, software patents are now granted by the USPTO at the rate of nearly 30,000 per year, or over 15 percent of all patents issued.
Software patents — more than copyright laws, commercial software companies, and uninformed legislators — are the biggest threat to the future of free software. While software patents have only been issued regularly in the United States since about 1982 (after Diamond v. Diehr), and guidelines for granting software patents weren’t established by the United States Patent and Trademark Office (USPTO) until 1996, software patents are now granted by the USPTO at the rate of nearly 30,000 per year, or over 15 percent of all patents issued.
It’s easy to understand why a programmer or company that writes code for financial gain would want to patent code: where copyright law protects only the expression of an idea — that is, the source code itself — a patent protects the idea behind the source code.
If you hold a software patent and another programmer writes code that performs the same task in the same way as your patented code, you can block the other programmer from using his or her own program. Moreover, it doesn’t matter that the other programmer didn’t use any of your source code or that you were (previously) unheard of: programmers can’t avoid infringing a patent by developing a product in a “clean room.” Even if someone else comes up with the same idea through his or her own creativity, you, as the patent holder, can stop the other programmer from distributing any software that uses the same “idea” as claimed in your patent. A patent grants this right for twenty years from the date the patent application was filed.
The patent right is a negative right, which means it doesn’t give you the right to do anything. It just gives you the right to stop others from doing something. That means that if you patent something, but you must rely on someone else’s patent to use what you invented, you can’t use your invention without the other patent holder’s permission. When two patents depend on each other in this way, the result is called a blocking patent.
The heart of a patent is its claim. When someone files a lawsuit and says, “You infringed my patent,” the federal court compares the claim of the patent (not any device or software, just the claim) with the technology that’s allegedly infringing. If all parts of the claim are included in the alleged infringing technology, then the other party is infringing and must both stop using the technology and (typically) pay damages for all of the infringing material they’ve distributed.
Hence, the broader your claim in a patent, the more power you have to find and prosecute infringers. However, a broader claim is also subject to more attacks that argue that the patent doesn’t accurately reflect the invention or tries to include something that already existed when the patent was filed (prior art).
A single patent can have multiple claims, either independent or dependent, related to the same innovation. By including multiple variations, the inventor hopes that even if one claim is invalidated, others can remain to protect the invention. Many software patents issued today have dozens of claims that run on for pages. You can read any patent that’s been issued in recent years by searching the USPTO web site at http://www.uspto.gov.
The FAT Patent
Let’s look at some sample claims. Microsoft’s FAT patent, which the Public Patent Foundation (http://www.pubpat.org) is seeking to have invalidated, is patent number 5,579,517. The first claim of the Microsoft FAT patent reads:
1. In a computer system having a processor running an operating system and a memory means storing the operating system, a method comprising the computer-implemented steps of:
(a) storing in the memory means a first directory entry for a file wherein the first directory entry holds a short filename for the file, said short filename including at most a maximum number of characters that is permissible by the operating system;
(b) storing in the memory means a second directory entry for a the file wherein the second directory entry holds a long filename for the file and wherein the second directory entry includes an attributes field which may be set to make the second directory entry invisible to the operating system and the step of storing the second directory entry further comprises the step of setting the attributes field so that the second directory entry is invisible to the operating system, said long filename including more than the maximum number of characters that is permissible by the operating system; and
(c) accessing the first directory entry with the operating system.
While the language of patent claims seems stilted, it’s intended to be very precise. For example, the word “comprising” in the first paragraph has a specific legal meaning: it says that any invention that uses all of the elements of the claim (a, b, and c above) plus any other elements infringes the patent. If the inventor’s lawyer thinks she can’t qualify for such a broad patent, she’ll use the phrase “consisting of” instead of “comprising.”
Though the United States has been issuing software patents for over twenty years, European countries never have. Their view is that patenting software is too much like patenting an algorithm or formula, which you still can’t do in the United States either. But the fight continues in Europe and the precedent set there may have an influence on future United States patent law, given the desire of so many to harmonize the world’s intellectual property laws (for general information, see http://www.wpio.int). The European Parliament has been blocking software patents, but the European Council of Ministers recently voted to move towards permitting them. Then the Dutch Parliament changed their minister’s vote. So, the heated debate continues. You can read more at http://swpat.ffii.org.
The original intent of a patent (established in the United States in 1790) was to reveal how your invention works so that others could build upon it and innovate further. In exchange for revealing your secrets, you receive exclusive use of the technology in the marketplace for a period of time.
But software patents today pose serious dilemmas to anyone working in technology. First, they last much too long. A twenty-year term may be appropriate in other technical fields, but in software, a twenty-year patent means that nearly every software technology now being patented will effectively be useless when the patent expires. Second, the breadth of claims in so many of the software patents tends to stifle innovation rather than promote it. The Public Patent Foundation estimates that roughly half of all software patents issued contain no innovation at all.
Examples of invalidated patents include the famous Amazon 1-Click patent (patent number 5,960,411), a client-server computing patent (5,974,444), and two patents on preemptive, multithreading software (5,694,603 and 5,694,604). (The web site http://www.bustpatents.com maintains a list of invalidated patents from all fields, though many of the patents were invalidated for violating patent laws other than those that make software patents so problematic. For example, a company sold products for a year or more, then tried to patent them.)
Counter to their original intent, the goal of many modern-day “inventors” is simply to lock up everything so that competitors can’t use an invention without paying a royalty. IBM now generates over $1 billion each year from intellectual property licensing — most of it from patents. And recent news has discussed Microsoft’s plans to be much more active in asserting its patent portfolio to generate royalty revenue (and, one might assume, to affect the market for products that cannot pay a royalty).
It’s Obvious, Stupid
Patents are supposed to be for non-obvious innovations. But developers often look at many software patents (such as the FAT claim above) and say, “Sure, if I was trying to solve that particular problem, I would have come up with a similar solution. It’s not rocket science.” But since someone else faced the problem first and patented a reasonable solution, everyone else has to either license the patent or develop a workaround to avoid it.
That’s a waste of resources, and the result is contrary to what patent law was intended to do. Ideally, patent law would reward innovators who solve a sticky problem with a solution that no one else has figured out. Then the financial rewards would be well-justified, and others could learn from the disclosures in the patent to further innovate, instead of simply being locked out of the market.
You can try to have any patent invalidated, of course. But obtaining a patent sends a message to many people to simply stay away from the technology. Patent litigation is extremely expensive, costing $2 to $4 million dollars to defend against an infringement suit, by one estimate. So, going to court on purpose to try to invalidate a patent seems foolhardy to most companies.
But several organizations are working to do just that, sensing the danger that software patents pose to free software, if not to the software industry as a whole. Groups like The Public Patent Foundation, the Electronic Frontier Foundation (http://www.eff.org), The Foundation for a Free Information Infrastructure (http://www.ffii.org), and the Free Software Foundation (http://www.fsf.org) are all working to bring a more measured approach to granting software patents. EFF recently released a list of ten patents they hope to have invalidated. The Public Patent Foundation focuses exclusively on the problems of current patent policy, and also files lawsuits seeking to invalidate patents that they believe should not have been issued. They are already having some success with their requests to have the USPTO re-examine previously issued patents.
Software patent policy generates a lot of debate among both legal scholars and technology professionals. But changing the current status of patent law and policy will be difficult. Lobbying the USPTO to take a more sensible approach to granting software patents is a first step. Of course, changes in patent laws and decisions by the U.S. Federal Circuit Court of Appeals have a more lasting effect, but are even harder to directly influence.
Every company that profits from software has a motivation to patent everything they possibly can to avoid paying royalties except when they absolutely must. But free software developers don’t have the money to obtain patents (which typically cost at least $20,000) or to pay royalties for patents that their work infringes on. And even if money were available through foundations or donors, the problems caused by unwise software patent policy wouldn’t be solved. Innovation would still suffer, products would be even more expensive, and free software would no longer be free.
Nicholas Wells has written numerous books on Linux, Apache, network security, and related topics. You can reach him at firstname.lastname@example.org.