Protecting Developers From Patents
By webmink on Dec 01, 2005
A few weeks ago I was quoted in the announcement of the OSDL Patent Commons Library. I've done a lot of thinking about the problem of software patents in connection with open source software communities, and I'd like to explain why I support the OSDL effort and more importantly how I support it.
You'll recall IBM's interesting declaration at the start of the year, that 500 patents could be used without further licensing if the resulting work was licensed under an OSI-approved license published before mid-January 2005. People talk about patents as "protection for innovation" and one would expect a huge grant like this to spur great innovations. If there was any evidence that this "500-gambit" spurred innovation by anyone outside IBM I would be fascinated to see it, however. The good I know that it did was more in the protection of one or two communities by one or two of the patents. As it is, I believe that while the approach of declaring software patents usable by open source programmers is a good gesture and one to be praised, it is not the only - or even the best - approach to actually freeing most open source developers from the fear of patent action.
That's why, when OSDL approached me to see if Sun wanted to have its patent grants listed in their new directory, I had serious questions to ask them. In particular, I wanted to know why they were only interested in patent grants - what about listing other approaches to giving software developers freedom from fear of patent litigation?
In truth, software patents are not about innovation. Unlike other patents, they do not form a body of searchable 'prior art' as they do not contain within the patent the sort of 'sketch' that another technician would need. Programmers need sample code, and software patents never contain a reference implementation. Instead, software patents are about protection and control. In the corporations where I have worked, programmers have been incented along with other engineers to constantly watch their work for ideas that could be encapsulated in a patent. This "parallel filing" - developers doing work and filing patents on their innovations at the same time - results in the creation of a ring-fence around each activity in which the engineers participate.
The fact is that all US corporations and many EU corporations are "parallel filing" as they engage in software development. That includes corporations who are investing heavily in open source communities. What open source needs is not just the donation of individual patents. While that is a fine gesture of solidarity, it is sadly little more as the patents themselves break the social contract by not actually offering a pattern developers can use to re-apply the patented idea. A software patent does not free me to innovate; it just provides a constraint to my thinking. What a developer needs is the certainty that any innovation they create is safe from hostile action. Under present law that's not achievable, but I believe a growing, meshed community creating a patent commons from parallel filed patents gives more certainty than the donation of point-patents.
The idea of patents came from an age of mass production. Innovation was running free during the industrial revolution. Patents expressed an agreement in society to trade a temporary monopoly on an invention to its inventor for the description of the invention so that others could build on it and increase the common good. They were a 'social contract', with rights and obligations both on the inventor and on society at large. Without patents, inventors would obfuscate their inventions so as to evade counterfeiters, and consequently the know-how they created would be lost to future generations. The timescales envisioned by the patent system were predicated on physical inventions requiring manufacturing investment.
Pure ideas - business methods, philosophies, strategies for solving problems - were never subject to the same approach. The lack of manufacturing investment required for exploitation combined with the adequacy of copyright protection meant there was no useful social contract to be established.
We're at a transition point for society. We have moved from the age of mass production to the age of mass connection - the Participation Age. More and more invention is happening in the grey area beyond the manufactured. As Lessig pointed out in "Free Culture", this shift has stretched the laws governing creativity to their limits. As we reconsider patents, we must consider what they are and more importantly we must revisit the social contract on which they are based. Just trying to force fit the old approach of patents to the new world of participation isn't working.
I thus believe the idea of enumerating the patents granted misses the whole point of the needs of developers with software patents. The threat from software patents is less in the detail and more in the uncertainty, and it's that I think we need to address. The whole point of OSI, for example, was to rescue software developers from uncertainty over licensing - maybe the most important developer freedom is a freedom from lawyers?
What open source needs is instead a declaration by corporations who choose to be involved in open source that all the patents they parallel-filed during the development process are granted with the contribution of the code or in the implementation of the standard. The grant needs to be (at least initially) a blanket, unenumerated grant to the community receiving the contribution so that developers know they are safe from any action by that participant. Getting those declarations is the most pressing need of the open source meta-community today. We can't expect corporations to stop parallel filing - they have a duty to their shareholders to at a minimum protect themselves in the dog-eat-dog world of corporate politics. But we can expect them to share the protection with the communities in which they participate.
This is one of the reasons Sun chose CDDL for OpenSolaris. I believe it is a valuable approach because the evolving OpenSolaris community will be able to proceed in the knowledge that they have full patent grants from all project participants, as an automatic effect of the code being licensed under CDDL. We've got an idea of how many of Sun's patents are involved but the details seem less important than the fact that all the OpenSolaris code is known to be without any risk of patent action from Sun (which almost certainly could mean even hardware patents if they read on the use of the source - I'm not sure a strict definition of "software patent" is really possible any more). More than that, anyone deriving works from Sun's source is immune from hostile action from any project participant. That still leaves a risk from submarine patents (against which mandating non-assert covenants would help) and patent terrorism but that risk will diminish as the "commons" has more and more participants.
It's also important that the work of software standards bodies is free from patent implications. In the case of the OASIS OpenDocument Format, Sun delivered a clear, unilateral, irrevocable covenant that it would not initiate patent lawsuits against implementers of the OASIS ODF standard. By doing this, we removed all the concerns developers had about Sun's relationship with the specification, ending uncertainty and freeing people to implement the standard. However, not all non-assert covenants are equal, and we need recognised benchmarks for such things. Going forward, open source developers must be able to be sure that standards they are implementing won't ever result in licensing requirements from the corporations who contributed to the standard. And they need to be able to reach that confidence without consulting a lawyer every time. RAND is not enough, the word "covenant" is not enough. Effective non-assert covenants need to become the norm and getting there will need role models.
I intend to continue working on this line of thought as I believe the blanket-grant approach - expressed as a licensing feature or as a patent non-assert covenant - provides a more practical patent defence for communities than the donation of individual patents. I'd be interested in your views, especially of the role that community bodies like OSI should be playing in establishing norms for patent protection.