Monday, January 23, 2006

GNU Thoughts

With the release of the GNU3 or threeGNUS as I like to call it we are seeing FSF take a square aim at one of the greatest threats that free software has - software patents. I have spent some time looking at the New GNU and have gathered some thoughts on the matter. Before I go any further I want to say right off I bat I am a big believer in property rights and understand the importance of various forms what is currently deemed "intellectual property." I use quotes because despite the efforts to treat these rights as property, they are not. To use the term property in regard to them is it confuse what the term property means.

Despite what many people think software has only be considered patentable in the last nine years. That's right, software patents have emerged relatively recently when the Patent Office issued their Final Computer Related Examination Guidelines. There are several implications of the relative newness of software patents.

Despite the mantra that patents are ALWAYS good. It's not entirely clear that most software patents are written in a way that is clearly implementable. Patents are mostly prepared by attorneys which instead of seeking of clarity of langauge in order to convey the method or idea seek to obfusticate the idea so that they will have more flexibility on interpreting the patent at trial.

This is quite different than previous patents where the clarity of language and thought is rewarded with a 20 year monopoly. Remember at one time the US Patent office required models to accompany patents, reflecting the utilitarian nature of the US patent office. No other patent office at the time required models so in a way the US patent office did.

This utility streak has long been a cultural aspect of the US patent office which with the addition of business process patents and software patents has taken a turn for the murky.

Because of the way that software patents are currently written, it nearly impossible to really understand what a software patent may do. This is because instead of being written in clear easy to understand code, imprecise language is used. Additionally almost all software patents lack an actual implementation of the patented idea. This is done because the people wanting to do the software patenting don't want to limited in the way they enforce the patent. Actual code would mean that the invention might be circumscribed (or at least accurately described).

Let's remember what a patent is for. It's a limited monopoly granted by the state. In return the inventor is supposed to accurately describe the invention. While patent infringement certainly has occurred often enough in business, the very inaccurately described nature of software means that patents are written for ambiguity, not clarity. Software is one of the few categories where accidental infringement is quite commonplace.

Because of the very nature of software patents and the way they are currently being implemented (no pseudo code for example or actual examples of the software), it is quite commonplace for a company to assert a patent covers something when it doesn't. For example British Telecom asserting that hyperlinks were a BT patented technology when they were demonstrated in 1968 and had been written about in the late forties.

Additionally the patent office currently still doesn't have the expertise to effectively judge whether a software patent is unique and non obvious. People with the familarity with patent law and software can find better paying jobs in the private sector.

So software patents as they are currently implemented have problems. The New GNU license takes aim at this by essentially requiring companies that use GNU software, to license their patents down stream. Let's take an example.

Company A produces routers. They also currently use a modified GNU library in the device. Thy comply with the GPL and release their changes publically. In the course of operations they have developed several software patents improving reliabilty of routing etc. Let's give them the benefit of the doubt and say these are non obvious, true inventions (I know this is the definition of a patentable idea. However after reading and writing several software patents, I know this is often not the case). The developer of this library has decided move to the GPL3 as his license.

At this point the company has a choice. They can continue to use the old library under the GNU Public License (which will probably entail more work and money as they will be supporting the project themselves with developers) or they can chose to accept the GPL3 terms. In accepting the GPL3 terms they then are licensing their patent portfolio to the GPL developer and downstream developers as a world wide royalty free license. Please note this license is only granted to those developers who comply with the the terms of the GPL3. They in no way give up their patent or their ability to enforce their patent against other companies.

As much as I hate quoting Tony Soprano in this context but it's simple. "You want get respect, you gotta give respect." In short don't take someone else's code and then sue him with a patent you derive from it.

I think Richard Stallman has done a great job of trying to tackle the problems with software patents. It effectively balances the rights of patent holders and the rights of GPL developers. It's going to be interesting to see how it will all play out over the next year as that's how long the comment period is.

BSD