Software developers need to be aware of the implications and extent of patent law, despite its arcane complexity, or risk losing their work. Ensuring you don't infringe another's patent is both difficult and costly, but an essential part of protecting intellectual property.
That was the message given to a gathering of the local IT community last week organised by Pia Smith, president of Linux Australia in collaboration with the Open Source Industry Association and legal firm Baker & McKenzie.
The audience comprised attendees from government and government organisations such as CSIRO, small business and multinationals, universities and developers. Speakers tackled the complex, and at times confusing area of software patents and how it relates to software development and open source software.
First up was a definition: just how do copyright and patents intersect?
According to Baker & McKenzie patent layer, Derek Neve, copyright is intellectual. It automatically springs up as soon as a work, a document or a software program is written. "It does not require a substantial degree of originality."
This distinguishes it from patents. Patents only come into existence when they have been applied for. "It must be sufficiently original to amount to new invention," he said.
If software developers are scrupulous about not copying copyrighted software they do not need to worry. However, being as vigilant for patented software is significantly harder and costly, Neve said.
And it is third parties which have most of the playing cards. Developers cannot license third party patent rights unless the third party authorises it. "If software is subject to a third party patent, the third party can prevent that software being distributed or used," he said
But that is just one of the obstacles. "Searching for relevant patents is a real challenge if setting out to avoid infringing patents," said Neve.
As a result developers can infringe patents even if they haven't heard of that patent.
A reason for this is the difficulty and cost searching for patents: "It is an expensive area of endeavor," said Bob Kemp, MD of patent research firm R. E. Kemp & Co.
He said people needed to be heavily funded to really gain the benefits of a search. The average cost for a patent search was $15,000. Patent researchers in his office took about two weeks to read patent abstracts, and he joked that it took a "special kind of person" to do this because of the complexity.
The trend today is for software patents to be applied "en masse" by the multinational corporations, said John MacPhail, also a partner at Baker & McKenzie. "It's a rich players business. If you don't have patents you don't have weapons in your armoury."
He opened his presentation with a screenshot of Adobe Acrobat Reader which lists 39 patents when the application loads. "It shows the scale of the problem," he said.
He outlined four difficulties for small players, and described the patent world as resembling "secret men's business".
The first difficulty is that patent information is not public: it can take researchers and patent lawyers as long as 36 months to see what patents have been filed.
Secondly, there are searching issues. Because patents are filed in so many countries searches cannot be done with complete certainty. "You'd be a fool if you think you are getting 100 per cent certainty," MacPhail said.
After this hurdle is the actual interpretation of the patent claim, which is largely because of the very (deliberate) general wording of patents: Lawyers struggle [to understand] what it is a patent covers."
Finally, if a developer is confident of their patent, they must go through a validity and examination system. Is the patent valid? Is it novel and inventive? The examiners here play the role of the devil's advocate and look to discredit a patent, with the applicant having to prove themselves.
An open source threat?
An example of how software patents can pose a threat to developer and to development projects was presented by Rusty Russell of Linux Australia.
Russell spoke about the RProxy program created by Andrew Tridgell which uses the rsync algorithm, also developed by Tridgell in the 1990s.
RProxy is an extension to HTTP which allows transferring of differences between a Web server and client, using an algorithm similar to rsync's, says the description on SourceForge. This works particularly well for dynamically-generated sites, where the pages are often similar but not the same on each visit. Transferring just the difference in these pages reduces network traffic and therefore loading time. Overall, Russell said, RProxy tests led to 85 per cent reduction in Web traffic.
But Tridgell's design hit a snag because rsync appears to be covered by an existing US patent. Because the US patent does not directly relate to RProxy or intends to use the rsync technology, Tridgell reached a gentleman's agreement with the patent holder saying that they would take no legal action over the rsync program. But despite this agreement, Russell said Tridgell was not allowed to publish RProxy. And nor could Apache or Squid incorporate the technology, although relevant, into their products because it included patented code.
As a result, RProxy has been shelved.
Because RProxy was an open source product, Russell said he could also relate to that as an open source developer.
"I see writing open source software is a public good and I would like to see some sort of protection [from patent lawsuits]," Russell said.
In this regard, the audience was also told that most open source developers follow the GNU General Public License. And clause seven of the GPL states that if a patent license does not permit royalty-free redistribution of a "Program", or software application, "by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program."
In her concluding remarks, conference chairperson, Linux Australia's Smith, said the community was concerned: "There isn't enough knowledge out there."
With most software's patent lifespan lasting 20 years from the time of the application, one suggested remedy was to reduce the lifespan to five years.
It was also suggested that patents be written in less general terms, so as not to be so vague and possibly infringe on other applications which had little to do with the original patent -- for example, RProxy.
Another suggestion was to make it easier to gain access to patents during the application process -- a process which today is extremely difficult.
The next Linux Australia event will be in about two months, and will be titled "Linux on the Desktop".