There's a lot of legal mumbo jumbo in this post. So, let me preface it with the official disclaimer that I am not a lawyer. But I'm pretty sure I've got most of this right.
Last week, in a post that details how Microsoft's CEO Steve Ballmer took the "Linux infringes on our intellectual property" sabre-rattling to an entire new level (he made it pretty clear that Microsoft will be seeking payment from Red Hat), I erred with a slip on a very important legal technicality: a mistake that most didn't notice, but a mistake that I never should have made given that it's one of my areas of expertise.
In that post, I wrote:
If users of Linux have any concerns about being the target of a Microsoft-sponsored patent infringement suit, then Microsoft's CEO Steve Ballmer apparently wants them to know that those concerns are justified.
I ended the post with a poll (one that you can still vote on by the way) that asks if ZDNet's readers if they think Microsoft will sue for patent infringement and, if so, who will it sue?
One ZDNet reader with an extremely sharp eye (he goes by the name of Yagotta B. Kidding and he's a regular) zapped me. In the very first comment that appears at the bottom of the blog post, Yagotta wrote:
"Intellectual Property" != "Patents"....You (David) fell for the sleight of word. Ballmer didn't say "Patents" even once. He repeatedly said, "intellectual property."
It's an error that people who are not well-versed in the subtleties of intellectual property (IP) often make. But I should have known much better since I've spent a fair amount of my time educating and correcting people on the very same issue.
Ballmer did indeed say "intellectual property." Given that most if not all of the speculation around the sort of IP infringement suit that Microsoft may bring against Red Hat has discussed patent infringement (as it may relate to enforceable patents that Microsoft might have on operating system kernels, Office productivity software, the SMB networking protocol, it's messaging API -- aka: MAPI, and/or .Net), I dove straight for the patent angle and never once considered that patents may have nothing to do with it.
That could be in the case. Especially since Novell, in its watershed deal with Microsoft, has taken great care to reiterate that it still believes that it has not infringed on any Microsoft patents. Why then would Novell pay such a huge sum of money (with a promise of longer-term royalities) if it really believed this? Answer? Microsoft may have presented Novell with compelling evidence that Linux (or something that Novell was distributing) infringes on its copyright. Or maybe a trademark (or a servicemark).
Yagotta is right. Just because "Patent" = "Intellectual Property" doesn't mean "Intellectual Proerty" = "Patent". So, we have to be careful about the assumptions we jump to when someone like Steve Ballmer says the word "Intellectual Property." Quite often, usage of the phrase "Intellectual Property" in the context of a potential infringement suit is a form of deliberate ambiguity. In other words, the person using the phrase is deliberately avoiding the usage of anything more specific like patent, copyright, or trademark.
The intent could be to keep people guessing (and fearful). In other words, Microsoft may not want to show its hand just yet. It could mean that Microsoft isn't sure about the type of infringement suit it might bring, if it brings one at all. It could mean that Microsoft will file suit on the basis of multiple forms of IP infringement. Or, it could mean nothing. Maybe Ballmer wasn't trying to be ambiguous. Maybe he was doing what a lot of people do -- casually using the phrase "intellectual propety" where he really meant something more specific like a patent, copyright, or trademark.
So, what's the big deal? The differences between the three, in the context of software, are extremely subtle but very important. It's actually worth it for all of us to understand those subtleties so that, in what we say and write, we can be specific where specificity is important and ambiguous when ambiguity is called for (for example, when you want to refer to multiple forms of intellectual property with one word).
Let's start with copyrights. I'm sure someone will nail me for being overly simplistic (I'm trying to keep this as brief as possible), but copyrights pretty much refer to any thing that can be copied. Sheet music is copyrightable. Architectural designs are copyrightable. The programming code (otherwise known as "source code") written in some computer programming language (for example, something written in C++) is copyrightable. What ever the form of "art" may be, once someone creates an independently derived work (basically derived from their brain), it's copyrightable which means that other people cannot create reproductions without the original artist's OK.
Copyrights are the fundamental form of intellectual property that is openly shared or "licensed" amongst open source developers. The basic idea is I can write some source code and I can license it to other developers in such a way that they can reproduce it, change it, improve it, and redistribute it, and everyone downstream (to whom code is repeatedly distributed) inherits those same rights. Those developers are getting access or a license to my copyrights (and a liberal one at that). There are a lot of open source licenses that have been approved by the Open Source Initiative (the de facto consortium that the open source community relies on for such certifications), all of which are slightly different in terms of obligations to both licensors and licensees. So, it's difficult to generalize.
Patents are the ultimate form of intellectual property because, for as long as a patent is enforceable, they actually trump copyrights. In the context of software, when someone gets a patent from the US Patent and Trademark Office (USPTO) for the software they've developed, what they're really getting is a patent on a business process. A business process is the ordered execution of a set of discreet steps. Take a look at any source code and you'll see that it's pretty much the same thing. Business processes have long been patentable. But some business processes (for example, Amazon's One-Click on-line buying patent) can't exist outside of a software context. Such software implementations were not patentable until a series of court cases in the 1980s set a new precedent.There's a lot of debate around whether those were wise precedents to set and if software should be patentable. But for the time being, it is.
But prior to that period of time, software could not be patented. For example, most Unix users will recognize the utilities and functionality in GNU Linux as being the same as what's in Unix. But, when much of Unix was developed, the authors did not seek to patent the software (and the business process contained within). Instead, the source code was copyrighted. So, when the Free Software Foundation (the FSF) developed clones of many of the utilities found in Unix for GNU Linux, there was no way it could infringe on a Unix patent. To avoid infringement of any kind, the FSF only needed to recreate the process of each utility, but with source code of its own so as not create a reproduction of the source code used in Unix (which would have constituted copyright infringement). Look for example at SCO's infringement suit against IBM over Unix and Linux. Forgetting for a minute the question of whether SCO is actually the rightsholder to some or all of Unix, the infringement suit is about misappropriation of copyrighted source code, not patents.
But, had the authors of those Unix utilities patented their work, things would be different (and this is why patents trump copyrights). If for example, some utility was patented, then it wouldn't matter what source code the FSF cooked up in the process of cloning that utility. The source code is irrelevant. Software patents are not specific to implementation. They're specific to process. So, once a software patent has been issued, it doesn't matter what code, or fruit, or vegetables you use to emulate the process contained within. Such emulation, (aka: an implementation of the patent) is only allowed if the patent holder says its allowed and under the terms the patent holder specifies.
Using Amazon's One-Click patent as the example, it really doesn't matter how original the source code you used on your Web site to enable one-click purchasing is (in other words, how non-infringing it might be on other copyrighted code). If your one-click feature bears enough of a resemblance in process to Amazon's One-Click, you may very well be infringing on Amazon's patent. Now, just supposing you got a copy of Amazon's source code and used that too. Well, then, not only would you have infringed on Amazon's copyright, you would have basically ruined any chances of defending yourself against a patent infringement suit because if you're copying their code, then you're also copying their implementation of their patent. Talk about a smoking gun!
If you follow Mary Jo Foley's blog, then you'll probably recognize this discussion around the Amazon One-Click patent. Between Yagotta B. Kidding's comment on my other blog and a series of e-mails that went back and forth between Mary Jo and me earlier today, I thought that now would be a good time to do a bit of a deeper dive on this issue. With all the rhetoric around potential infringement on Microsoft's intellectual property, last Friday, Mary Jo asked Microsoft to show us the proof in the form of infringing code (something that's normally asked for when investigating copyright infringement). Actually, Mary Jo's mixed metaphors of patents and copyrights was a good thing. Microsoft has been so coy and has left us so guessing with ambiguous language and rhetoric that she's right: it's time to get down to brass tacks. Is it patent infringement? Or is it copyright infringement. And if it's one, the other, or both, what is it in GNU Linux that's infringing?
Or, is it trademark infringement? Trademark infringement is one of those forms of infringement that nobody stops to think about in a software context. But it's actually quite relevant. Intellectual property basically amounts to control. When you have IP, be it a patent, a copyright, or a trademark, you end up in control of certain things and their destinies. Trademarks are one way to assert control over a software ecosystem. One case in point is Java. For many years, various companies were trying to tap into the riches of the Java ecosystem without having to answer to Java's inventor, Sun. Most notable were the open source implementations of J2EE (the enterprise edition of Java) from JBoss (with its namesake offering) and a French consortium known as ObjectWeb (with JOnAS).
Much the same way GNU Linux has a kernel and then a bunch of accoutrements (mainly utilities) that come with it, J2EE was a package of the J2SE (standard edition) virtual machine at its kernel with a bunch of very enterprise-driven accoutrements. One way JBoss and JOnAS got away with their open source implementations of J2EE is that they never actually delivered the J2SE portion with their software. They provided the accoutrements but you had to go get J2SE itself from Sun (the download has always been free). But there was still one problem. The sorts of businesses that run J2EE servers needed to know that those J2EE servers were certifiably up to snuff. Proof that a J2EE server met Sun's acid test for J2EE compatibility came in the form of a Java imprimatur that Sun made available to J2EE providers like IBM, Oracle, and BEA only after the official test was passed. Getting J2EE certification was (and still is) a big deal because it's the sort of assurance that many IT shops look for before they'll part with their dollars. This is where the trademark comes into play.
"Java" and all other derivations of Java (like "J2EE") are trademarks that belong to Sun. So, before JBoss or ObjectWeb could could say that their products were Java servers or J2EE servers in their literature, documentation, advertising, etc., they needed a license to the Java trademark. In the case of J2EE, they had to go through the certification process as well. Not only did this affect JBoss and JOnAS, it impacted downstream distributors. For example, before Red Hat acquired JBoss, it was distributing JOnAS with Red Hat Enterprise Linux (RHEL). In doing so, Red Hat had to be extremely careful about two things: First, that JOnAS had not somehow misappropriated the Java trademark in a way that RHEL was inheriting the liability and second, that in talking to its customers about the inclusion of JOnAS in RHEL, that Red Hat wasn't inadvertently misappropriating the trademark by saying something like "Red Hat Enterprise Linux includes a J2EE server."
As a reminder, I'm not a lawyer. But, much the same way Sun's control over the Java trademark centers around compatibility, I can't help but wonder if, in distributing open source software that is often described as being compatible with Microsoft's software, the distributors of that open source software could have been infringing on Microsoft's trademarks. It would depend on the specific usage of the trademarks. Going back to the Java example, it probably would have been OK for JBoss to say something like "JBoss is the pre-eminent open source target for Java developers" versus something like "JBoss is the pre-eminent open source J2EE server". The differences are subtle. The latter probably constitutes trademark infringement. The former probably doesn't. If, somewhere in the documentation, literature, or software user interfaces that Red Hat and other distributors are distributing, Microsoft's trademarks were subtley infringed upon in this fashion, that could also put them in a bit of legal pickle (in addition to any copyright and/or patent infringement).