Hendrik Weimer's Quantenblog

Having fun with science and technology.

MS launching a Patent Ambush on Free Software?


Print version

Slashdot me! Digg me! Stumble me! del.icio.us Reddit me!

Yesterday, Microsoft and Milan-based Sourcesense announced they collaborate to contribute code to Apache POI, a Java library for manipulating Microsoft Office files. This collaboration has two possible consequences: either it will turn POI into the greatest patent laundry of all time, or it will help Microsoft to launch a patent ambush on the project. Feel free to decide which one is more likely.

Of course, the collaboration is all about getting POI to support Office Open XML (OOXML). So let's put things in perspective first. Microsoft makes their patents on OOXML available under the terms of the Open Specification Promise (OSP), which is hardly worth the webspace it uses. So it's hardly surprising that Microsoft grants real patent licences to companies requesting it (and paying big money).

So, what's so special about Microsoft's work for POI? Well, POI is being licensed under the terms of the Apache License, version 2.0. This license requires contributors to explicitly grant a patent license:

3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted.

The exception deals with patent litigation and is not of interest here. In a nutshell, this means that if Microsoft contributes code to POI implementing OOXML, they would grant a patent license to every free software developer. It is very hard to imagine that Microsoft really wants to do this.

However, there are two ways around this. The simplest idea would be to release the code under a different license that does not require giving a patent license, but can be re-licensed under the Apache license. One example of such a different licensed would be the BSD license. Another possibility would be that Microsoft does not contribute the code itself, instead, Sourcesense comes into play. Since Sourcesense does not hold any patents on OOXML, they cannot grant a patent license for them.

But no matter which workaround Microsoft chooses, POI might end worse up than relying on the OSP alone. By effectively letting Microsoft choosing the code, Microsoft can in fact bring patents into play not covered under the OSP (sometimes it is possible to write code in different ways, with one implementation infringing the patent while an other does not). In patent terminology, such behavior is called a patent ambush.

So in any case it will be interesting to see what finally comes out of this, and the POI guys are advised to closely watch Microsoft's actions.

Copyright 2006--2011 Hendrik Weimer. This document is available under the terms of the GNU Free Documentation License. See the licensing terms for further details.