At the risk of stepping into waters that are way over my head, I would like to offer some comments on software patents, an area where many people with a lot more expertise than I have been weighing in.
The National Innovation Initiative (NII) in its December 2004 report declared that "intellectual property protection is a cornerstone of the innovation economy", and called for the creation of a 21st century IP regime that would "build quality into all phases of the patent process." Books like "Innovation and its Discontents” by Adam Jaffe and Josh Lerner have concluded that patents are being issued irresponsibly and at an unreasonable rate, and that the patent system, especially in the US, is now creating litigation and uncertainty that could have a terribly negative impact on innovation and economic productivity.
Patents are intended to encourage the disclosure of innovation to the public by granting the inventor exclusive rights to benefit from their invention for a limited period. Those rights allow the inventor to exclude others from taking advantage of the patented invention unless they get a license. If the quality of the innovation covered in patents is high, society benefits because then innovations make their way into the common good much faster than if the inventor had kept the innovation a trade secret. But, if the quality of the innovation covered in patents is low, that is to say neither significant nor new, then patents undermine the common good, allowing a few businesses and individuals to enrich themselves by invoking their low-quality patents to “extort” fees from others who are attempting to innovate and thwarting the efforts of those who refuse to pay.
Many blame this state of affairs on software patents, and strongly advocate that perhaps they should be eliminated altogether, an issue that is being debated worldwide. Just this past July, for example, the European Parliament rejected the Computer-Implemented Inventions (CII) Initiative, in which software patents were prominently featured.
There is no one definition of software. I think of software primarily as the instructions or programs that tell a computer what to do. As such, software is a language, one that is particularly useful for describing many ideas and innovations because it is both highly expressive and very precise. Natural languages like English, Spanish or Chinese have virtually no limitation on what can be expressed in them, but they are much too imprecise, that is, readers can give their own interpretations to what has been described.
Formal languages like mathematics or logic usually have the opposite characteristics. When something is written down in a formal language, it is very precise, not typically subject to reinterpretation. Thus, formal languages are ideal ways of describing ideas and innovations when you want everyone to know precisely what is being described.
Software then is simply a rich, expressive, and readable formal language, nothing more, nothing less. When thinking about software patents, the focus should be on the quality of the idea being patented, not on whether it is about software or is being expressed as a software computer program. A number of functions that in the past could only be done in hardware are now being carried out in software due to advances in technology and programming tools. If the function was innovative enough to legitimately qualify for a patent when expressed in hardware, it should still merit a patent if now carried in software. Admittedly, a lot of software patents have been nothing more than computer-automated versions of well known procedures and should never have been granted, but I feel that disallowing all software patents regardless of the merits of the innovation expressed in software makes no more sense than disallowing all patents in French or some other language. For a very good discussion on issues surrounding patent reform and software patents, let me refer you to a recent interview with Steve Mills who is the overall leader of IBM’s software business.
I wholeheartedly agree that the patent system needs to be reformed, but I don’t think that getting rid of software patents completely is the answer, a position that is not shared by many in the open source community with whom I usually see eye to eye. It is ironic that if software patents were disallowed altogether, it might cause legitimate software innovations to then be protected as trade secrets, and thus keep them away from open source projects. I think that all the energy and passion devoted to eliminating software patents would be better spent on the very tough task of implementing the patent reform recommendations in the NII report, the Jaffe and Lerner book and the many other similar proposals.
I am convinced that more and more innovation in IT will take place "up the stack", for example, in understanding how to make the world of business services and solutions much more disciplined and rigorous, and in coming up with truly innovative business processes (not to be confused with the rightfully controversial area of business method patents) in all kinds of industries. Most of these new innovations will be in the general category of software, and the only way to write them down in a clear, precise way will be to use the language of software.
Thus, I am concerned that if we eliminate software patents, an unintended consequence will be a slowing of innovation in services, business solutions, business processes, and similar new fields of endeavor, and will cause people applying for legitimate patents in these areas to attempt to express their ideas in some other less precise way just to avoid their being viewed as software innovations.
Patent regimes around the world, especially in the US, are in dire need of reform. We should focus all our energies on getting this done and not let the debates over software patents divert us from that very important task.
You say, "When thinking about software patents, the focus should be on the quality of the idea being patented." The problem seems to be that the patent examiners aren't qualified to judge that "quality." I'm not sure anyone is.
As you point out, the essence of software is that it's just an idea, formally expressed. It happens to be translatable into an executable, but it's just a narrative; eventually we'll be able to do that with something written in English. This is distinctly unlike a physical invention, where the essence of the invention has a specific, unique instantiation, and which can be constructed and evaluated against all other known constructions. Further, the evaluation process can be expedited because physical constructions conform to relatively few patterns. Software (and literature) has a virtually infinite range of expression, numerous variants of which are essentially the same. How do you extract the underlying invention in a way that it can be compared to previous inventions? How do you test whether two instantiations are essentially equivalent?
Judging whether an invention instantiated in software is new and unique is an impossible task, when viewed in the perspective of the many billions of lines of code AND the many billions of lines of English, French, Chinese, mathematics, etc. that already exist. Too many software patents seem to be granted to those arrogant enough to claim the invention of the obvious, without regard to what is already implemented. One could "mine" existing code, even open source, to identify good ideas, then patent them without regard to the prior art, since mere existence of the idea in a specific instantiation doesn't render the patent invalid (without an expensive fight).
You also suggest, "If the function was innovative enough to legitimately qualify for a patent when expressed in hardware, it should still merit a patent if now carried in software." I cannot agree with this statement.
Example: once upon a time a patent was issued for the cursor on a character screen; you create the cursor (reverse highlight) by XORing the byte (in hardware). This was known to pretty much everyone at the time and an inherent property of XOR, but apparently unique enough to warrant a patent. Hardly true today in software (and not the method generally used today), but still a potential exposure for the software developer who might inadvertently infringe.
My concern is that "software" is written everyday by many, many people, often people who don't know that's what they're doing, e.g., Excel macros. The probability of infringing increases exponentially as software patents are granted, making it extremely costly to evaluate a piece of code to verify it doesn't infringe. The risk isn't at the time of creation; it's many years later, when the offending code is buried deep in some system or process. This exposure is already sufficient to dissuade cautious companies from pursuing new software development -- or to demand indemnification against infringement. Small software development organizations can neither afford the search costs to assure non-infringement nor the risk of indemnification.
I concur that without some form of protection, many innovative ideas will remain hidden by trade secrets, limiting the possibility that new innovations will build upon the previous inventions of others. But creating a legal morass doesn't seem to be an effective way to enhance innovation.
One alternative might be to make the protection period for software patents relatively short, say 3-5 years. That's probably the useful life of most new ideas expressed in software anyway.
Roger Loeb
President
The MarTech Group, Inc.
Posted by: Roger Loeb | August 29, 2005 at 04:52 PM
interesting that you dont mention the IBM open source patent grant. should we take it IBM is having second thoughts about such approaches?
i am very skeptical that IBM, or any other major firm, is really putting its weight behind patent reform. you are too addicted to patenting and being able to say you filed more patents that anyone else each year. its an IBM "indicator of success" and you're addicted to it.
Posted by: james governor | August 30, 2005 at 10:13 AM
IBM is not addicted to patenting, as James mentions. IBM's major initiative is innovation, which runs counter to strategies such as the commodities business. Being an innovative company means you create new, high margin markets through creative research and development. This is not an inexpensive task, and if IBM invests significant money into this process, there should be a certain amount of protection to prevent other companies from being the main beneficiary of IBM's development efforts.
Patents provide this important protection, in exchange for disclosing how the invention works so that other people can use this information if they are willing to pay royalties or cross license. Patent reform is most beneficial to a company such as IBM. It is not in IBM's interest for the existence of so many low-quality patents. This reduces the value of IBM's legitimate, quality patents and makes true innovation more difficult.
There is no doubt that inventions and innovation occur in both hardware and software, and protection for such inventions are important. A reformed patent process will provide such protection while also reducing frivolous litigation. This reform is best not only for IBM, but for all technology companies.
Posted by: Zachary Garbow | August 30, 2005 at 11:50 AM
One change that I have long thought would be a clear improvement to the current patent licensing regime would be the imposition of some form of duty to exercise the patent. In plain terms a "use it or lose it" clause that would require an entity claiming damages under patent law to show that it was actively attempting to build and market products or services featuring the protected invention. This would put a firm stop to the many "IP only" firms whose main business activity is litigation, and would protect those inventors who are actually creating value.
There are probably several problems that I have not thought of with this proposal, and I would be very interested to hear what they are.
Posted by: Larry Price | August 31, 2005 at 03:12 AM
I have to take major exception to one of the main tenets of this post. If IBM creates a new process in software, and chooses to protect it through trade secret instead of patent, are you really asking me to believe that in the next twenty years (which is how long IBM would own that process exclusively under patent law) nobody else would implement it?
Of course you're not asking me to believe that; it's completely ridiculous on the face of it, and we all know it. However, unless you accept that ludicrous proposition, then the patenting of software holds innovation back rather than promoting it.
What does the Constitution say about patents (well, monopolies, really)? To promote the progress of science and the useful arts? Point to the software innovations which were unmatched and otherwise unimplemented for two decades, and we can speak about the utility of software patents. Otherwise, you must accept and admit that software patents merely reserve the fruits of innovation to those who are most able to manipulate the patent system, while locking out those who are most likely to actually advance the state of our particular art.
Posted by: alan | August 31, 2005 at 04:09 AM
Let me first address James Governor's comment questioning whether we are having second thoughts about our open source patent grants because I did not mention it in this blog. Let me just copy a sentence from a blog (http://irvingwb.typepad.com/blog/2005/08/the_economic_an.html) I posted just two weeks ago: "We're walking the talk in lots of ways -- including our pledge earlier this year of open access to the innovation contained in more than 500 software patents to individuals and groups working on open source software."
James, just because I did not say it again in this blog does not mean we are not really serious about patent reform or continuing to support open communities. Don't take my word, just continue to watch our future actions.
When reading Roger Loeb's comment, my feeling is that I failed to communicate the main point in my blog to Roger. In the blog I said that the key merit of software is that it is a formal language, like those use in hardware design, which happens to also be very expressive, and thus suitable for clearly writing down many kinds of innovations. Natural languages like English are way too imprecise. Software is not at all like natural languages. Expressing an instantiation of an idea being patented in a formal language, whether software, hardware or math, then makes it easier to see exacly what the idea is and whether it works or not. Moreover, we are hoping that with such a formally expressed idea, one can search for prior art in vast repositories using automated tools, as a number of patent reform books and articles have recommended.
I think that most of the objections to software patents are primarily (very valid) objections to low quality patents that should never have been granted in the first place, whether described as software, hardware or anything else. Patent reform is badly needed to significanly raise the bar for patents, provide far better tools for patent examiners as well as collaborative platforms so that the community can help in patent evaluation.
I believe that Alan is saying that there have never been any software patents that are bona fide innovations, so getting rid of software patents and having all such ideas remain trade secrets would be no loss to society. I don't agree. There have been quite a few very good patents in RSA encryption and LZW compression, for example. Also, there have been very good patents in the area of accessability like Raymond Kurzweil's "Reading Machine System for the Blind Having a Dictionary".
You can ask whether others would have eventually come up with the same ideas anyway, so why grant patents. But, that is an argument against the patent system altogether, not just about software patents.
I appreciate the comments. These are very important issues to discuss and debate.
Posted by: Irving Wladawsky-Berger | August 31, 2005 at 03:20 PM
I was not saying there have been no true innovations in software; that's obviously untrue. I was speaking more to the nature of those innovations.
When the patent system was introduced in this country (and let us remember that the reason it exists is to add to the knowledge base of the populace, not to enrich the patent holders) innovating was *hard*. Existing knowledge could be prohibitively difficult to access, the infrastructure with which to create new knowledge almost always had to be built from scratch by those seeking it, and it could take a lifetime to build up enough of these to create true innovation. In that context offering a time-limited legal monopoly in order to share new knowledge made sense because of the extreme effort required to gain it.
Today, in software, those barriers simply don't exist. Existing knowledge on which to build is available from nearly countless sources, likewise the tools with which to do it. I simply find it unfathomable that given two decades, any innovation which is implemented in software would not be independently reimplemented, which is the only situation under which patents (as currently granted) are a greater good to society than trade secrets.
Having said all that, after re-reading what you've said a couple of times and giving it some thought, I think you have me coming closer to your side of things. For one thing I think I paid too little attention to your statements about software as formal language. Would it be fair to say that you are not advocating software patents per se, but that you are saying software is sometimes the best way to express otherwise patentable processes? It seems a minor difference, but looking at it that way has changed my thinking a little. In particular it has me thinking that you are perhaps correct: it is not the ability to patent itself which I find onerous, but the extremely low quality of those being granted.
I would have to ask, though, if you think that a 20 year monopoly on an innovation expressed in software is justifiable? Let's accept for the moment that granting some period of monopoly is desirable as a way to incentivize someone to get an implementation of their innovation out there. Would not a five year period serve just as well? Would IBM refuse to bring a software innovation to market because they were aware that in five years that product would face competition?
For those who believe their idea is more novel and valuable than that, trade secret still works, and overall I think the loss to society (if any) caused by those who go that route would be far less than the losses caused by the abuses which always have and probably always will occur within the patent system, and those caused by disallowing independent reimplementations of any particular innovation for such a long period.
Posted by: alan | August 31, 2005 at 05:00 PM
Alan, I wish I had been clearer in communicating the central idea in my "Software Patent" blog, and I really appreciate your articulating it in your comment, when you point out that I am not so much strongly advocating software patents per se, but I am saying that software is often the best way to formally express otherwise legitimate patentable ideas.
I totally agree that many software patents that have been granted to date should not have been granted. A patent system that raises the bar on patents, and provides an Internet-based platform for the community to weigh in to help patent examiners, would probably have rejected many such software patents. But as I pointed out in my comment back to you, and as I believe you agree, there have been legitimate innovation where software or a software-like language is the best, perhaps the only formal way in which to write down the idea being patented.
Moreover, as I look at the future and all the work being done in new fields from bio-informatics, to services sciences to solutions/systems engineering of all sorts, I am convinced that there will be a large number of legitimate innovations in these new disciplines, and I don't know how they can be precisely described in a language other than software. I don't know whether we would call such patents "software patents", and I doubt that they will be filed primarily by software companies, but I really do believe that the language of software is needed to accurately express such new algorithms and processes. That is why, I believe it is best to focus on the ideas in question, whether they deserve a patent or not, and on mechanisms to help patent examiners evaluate whether the ideas are truly innovative or not, independent of whether the ideas are best expressed in the language of math, logic flows, hardware or software.
I totally agree that as part of patent reform it makes a lot of sense to explore different terms for different kinds of patents, as you suggest and was also brought up by Roger Loeb in his comment. Since I am far from an expert on the subject, I don't know what would be the best methodologies to use for such variable grant periods, but I know this is a subject that has been discussed quite a bit by a number of experts, and should be extensively investigated as part of wider patent reform discussions
Posted by: Irving Wladawsky-Berger | September 02, 2005 at 05:03 PM
Irving, I appreciate your thought that software is often the best way to formally express new algorithms and processes. I'd prefer the term "programming language" rather than "software," since software is generally the end result after the program code has been compiled, possibly linked with other code, etc.
Programming languages are definitely more rigorous than human languages, such as English. However, they are still not as rigorous as, say, a blueprint for constructing a device. In almost every programming language there are many ways to express a specific concept, particularly if it has any complexity, and there are many such languages. Your expectation that it should be possible to compare a collection of program code against all prior (patented) art is stretching a bit. Actually, stretching a lot.
Having written over a million lines of code, I have the experience of having written the same algorithms over and over and over, rarely the same way twice. Sometimes I got smarter, sometimes I couldn't remember, sometimes I figured out the error of my prior ways, sometimes I added error-handling logic, and sometimes it was simply a challenge to do it differently, with fewer lines, more elegantly, etc. It would take some rather impressive logic to be able to discern that all of those code snippets actually performed the same process.
Mathematics has a few simple rules for transforming equations. For example, if we are given the assertion that "1+1=2", then we also know that "2-1=1". Program code lacks formal transformation rules (across blocks of code). It is also sequence dependent, but not strictly. In math we know that A+(B+C)=(A+B)+C, i.e., the order of the operations is not important. In program code the order may or may not be important, and that is not obvious from the code without careful inspection, particularly with large collections of code.
Certainly, programming languages provide more rigor in expressing algorithms and processes, but I'm not sure it's enough to serve as the foundation for adjudicating patents.
Rog
Posted by: Roger Loeb | September 02, 2005 at 08:50 PM
Roger, I appreciate your comments.
I really think that a lot of the progress that has been made in unstructured information analysis and search will serve us well in being able to analyze and compare different software/programming implementations of ideas. I totally agree with you that this will require a lot of work, but give the progress in analyzing unstructured information, I feel confident that we will make even faster advances with structure information, i.e., formal programming specifications, meta-language descriptions, and the like.
In fact, one of the areas that patent reform must address is in sufficiency of disclosure, http://en.wikipedia.org/wiki/Sufficiency_of_disclosure, that is, whether the invention has been described in a sufficient clear and complete manner. Requiring a formal specification in a programming language or similar formal language would not only help with sufficiency, but also make it then easier for advanced tools to help in comparing the disclosure against prior art.
Finally, tools can only help so much, especially in the near term. I think that it is very important to let the community of experts weigh in and give their opinons to patent examiners on the merits of applications, whether there is prior art that invalidates it, and so on.
I really think that between strenghtening sufficiency requirements, developing increasingly advanced tools to automatically search and compare against prior art, and community participation we will make a lot of progress.
Posted by: Irving Wladawsky-Berger | September 06, 2005 at 09:52 AM
"I believe that Alan is saying that there have never been any software patents that are bona fide innovations, so getting rid of software patents and having all such ideas remain trade secrets would be no loss to society. I don't agree. There have been quite a few very good patents in RSA encryption and LZW compression, for example."
Since a patent is supposedly only granted for an invention that is (at least) new, it really shouldn't fail to be an innovation and maybe some reforms to the system can help ensure that. But then who decides, fairly, objectively and without the advantage of hindsight, what is a "bona fide" and patentable new software invention, and how? How high must the inventive step be and how narrow must the claims be to ensure that the TRIPS mandated 20 years looks reasonable and that there is enough certainty and transparency in the system not to damage the interests of all the millions of affected software authors and users? It seems to me that the RSA and (the two!) LZW patents are in fact very good examples of how utterly unnecessary and unjustifiable software patentability is. Could they have remained undisclosed trade secrets for the next ten to twenty years if they'd not been published in the form of a patent? I hardly think so. Would they, and software based on them, have failed to materialise without the incentive of a patent? Inconceivable. Circumstances may have changed for IBM since Frank Thomas, following IBM's policy on patents on software and algorithms, helped save us all from the outrage of a patent on the FFT, but there has never been any economic justification for what Peter Prescott QC terms "foreclosure to the public" of mathematical algorithms and computer programs by patent, and there probably never will be.
Posted by: P.L.Hayes | February 21, 2006 at 03:53 PM
"It is ironic that if software patents were disallowed altogether, it might cause legitimate software innovations to then be protected as trade secrets, and thus keep them away from open source projects."
Can you explain a bit more this statement? I don't see what is the link between open source developers and software patents.
Posted by: zoobab | December 01, 2008 at 08:56 PM
"It is ironic that if software patents were disallowed altogether, it might cause legitimate software innovations to then be protected as trade secrets, and thus keep them away from open source projects."
From what I read around in the Web you would be hard pressed to find a programmer that reads patents to get ideas. Since trade secrets allow for independent invention and reverse engineering, using trade secrets to protect software innovations would in fact be a welcome change in the eyes of most, if not all, open source programmers.
The current chilling effect of any single piece of code potentially infringing multiple patents is many times worse; if you think about it, the only reason software development has not ground to a halt is because software patents are usually not enforced. If every patent owner demanded the rights he is due with the current patent legislation, software development would surely stop.
Posted by: Fabio Capela | December 02, 2008 at 06:09 AM
bciyue pwtd mpkda exnldpfzs iuvhc swpnmfgd eslfpyz
Posted by: hmnkfce ewxujp | March 18, 2009 at 02:05 PM
interesting that you dont mention the IBM open source patent grant. should we take it IBM is having second thoughts about such approaches?
i am very skeptical that IBM, or any other major firm, is really putting its weight behind patent reform. you are too addicted to patenting and being able to say you filed more patents that anyone else each year. its an IBM "indicator of success" and you're addicted to it
Useable Technology
Posted by: Useable Technology | July 03, 2010 at 02:11 AM