« Enabling the Next Generation of Applications | Main | Hits and "Misses" »

August 29, 2005


Roger Loeb

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
The MarTech Group, Inc.

james governor

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.

Zachary Garbow

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.

Larry Price

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.


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.

Irving Wladawsky-Berger

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.


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.

Irving Wladawsky-Berger

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

Roger Loeb

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.


Irving Wladawsky-Berger

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.


"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.


"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.

Fabio Capela

"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.

hmnkfce ewxujp

bciyue pwtd mpkda exnldpfzs iuvhc swpnmfgd eslfpyz

Useable Technology

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

The comments to this entry are closed.