Should software be patentable? Well, let’s first be sure that we understand what people mean when they talk about patenting software. Because it’s really not clear to me that everyone who has an opinion on the subject is seeing this in exactly the same way.
We know software can be copyrighted, and there are usually very good reasons to protect it that way. However I can’t say that I’ve ever personally seen a patent that defines a specific piece of software and I doubt that there are many situations in which that would be a good way to protect the relevant intellectual property.
Utility patents are concerned with invention – the creation of a new way of solving a problem that is not obvious to people who are skilled in the field. However, for inventions that are intended to be implemented as software, a genuine inventive step – i.e. the novel idea that is not obvious to other skilled practitioners – is usually defined at a much higher level of abstraction than the code itself.
To illustrate, here are a couple of patents I’ve been involved with myself –
I don’t expect these to make sense to many people (sadly, that often includes patent examiners!). However both of them involve significant, original insights into how to solve some very challenging, and (according to me :)) important, technical problems. These inventions resulted from extensive commercial R&D investment of precisely the kind that I believe patents are intended to foster. I can tell you that the world would almost certainly never know about them if they hadn’t been patented.
Note that there’s nothing in the specification of these patents that refers explicitly to software, and certainly no specific code is defined. Yet it is *completely* obvious to anyone who understands these patents that the only sensible way to implement them is in the form of software. But the details of what that software might look like is completely incidental to the essence of the inventions. And since the process of translating the invention as it’s described into a specific software implementation would not itself pass the ‘non-obvious’ test (that’s just what software engineers do), that process and any software that results from it could not possibly be part of any claims within the patent (but copyright protects the code itself anyway).
And then we have Clause 10A:
(1) A computer program is not an invention for the purposes of this Act.
(2) Subsection (1) prevents anything from being an invention for the purposes of this Act only to the extent that a patent or an application relates to a computer program as such.
I’m happy to be corrected on this by anyone directly connected with the Committee, but taken at face value my impression is that the intent of this statement is simply to exclude patents in which the software – i.e. the code itself – is (or at least purports to be) the actual essence of the invention – that would certainly make sense to me and be consistent with my own experience of how patents work in the real world. I’m guessing that the proposed wording “a computer program as such” is intended to get at precisely this point. A paraphrase would therefore be “a patent may not include as one or more of its claims a specific piece of computer software, in either source or object code form”.
In my view, this is a very reasonable position for the Government to take. But note that it would not in any way prevent patents being granted for inventions that are implemented purely as software, as long as they involve substantive inventive claims that are genuinely novel, useful and not obvious to those skilled in the field.
I’ll let others debate how well “as such” actually conveys this idea. But let’s set that issue aside for now. What about the ’embedded computer program’ idea? The folks at no.softwarepatents.org.nz maintain that this is what the Government actually meant to say, and to support this they’ve referenced a press release from Craig Foss dated 28/8/12 (http://www.beehive.govt.nz/release/progress-towards-modernising-patent-law). Here is what he said –
“Under the amendment, computer programs as such would not be eligible for patent protection. However, inventions that make use of embedded computer programs will be patentable.”
It’s pretty clear that no.softwarepatents are interpeting the second sentence as defining a (comparatively narrower) exception to the (more widely applicable) restrictions prescribed in the first. But that may not really be exactly what Foss thinks he said (assuming he understands the concepts at all). The wording that the Committee have actually chosen to put in the Amendment, together with my own experience I outlined before leads me to think that a more natural way to understand the second sentence may be as a clarifying contrast to the second. So what Foss really means by “embedded computer programs” would be “inventions embodied (implemented) using software”. Note that the term ’embodiment’ is very common in patent language. So it wouldn’t be a complete surprise if that somehow morphed in someone’s mind into “embedded”. Again to paraphrase, the overall meaning would be “you can’t patent software itself (regardless of the kind of software), but (clarifying contrast…) you can patent any invention implemented using software as long as the claims of the invention meet the usual criteria of utility, novelty and non-obviousness”.
So this interpretation does not attempt to differentiate between two different kinds of software – i.e. embedded and something else, which seems to be no.softwarepatents’ perspective. Because no.softwarepatents interpret embedded software as a different type of software, Guy Burgess’s article is mostly focused on whether that term is sufficently well-defined within the industry. Ok, but remember this is only relevant if that’s really what Foss and the Committee had in mind. And remember, Foss is an MP, who used to be an investment banker (though of course we don’t know who actually wrote the release). He’s not from ‘the software industry’.
As to whether the term itself does in fact have a well-defined meaning, well yes and no. Historically (and forgive me if I’m stating the obvious), it’s been used mainly to reflect the distinction between:
– on one hand a more or less ‘traditional’ view of a computer as “a thing in itself”, e.g. something that sits on your desk, often with a screen and keyboard etc and which you use to ‘run computer programs’, and
– on the other hand something principally viewed as “other than” a computer, but which nonetheless has computing elements within it – washing machines, petrol pumps, engine control systems, medical instruments…
The examples given by both Burgess and no.softwarepatents.org.nz indicate that they have in mind essentially the same understanding.
A very large amount of the software development done worldwide falls within the broad scope of ’embedded software’ as I’ve described it. So it’s no surprise at all that there are lots of papers published on the subject and lots of jobs advertised for embedded software engineers and that people understand broadly that these roles involve particular kinds of platforms, skills and techniques (e.g. certain kinds of processors, programming languages, memory constraints, development methodologies etc…).
But even if this really was what Craig Foss was referring to, I still couldn’t agree at all that this would make the term ’embedded software’ useful in the current legislative context, for two reasons… First, as technology platforms are evolving, these boundaries are blurring rapidly. Software in a cellphone was certainly viewed as embedded code a few years ago (such as the voice compression software I was writing for cellphones 12-14 years ago). But what about the latest smartphones? These are used to ‘run computer programs’. Some of these ‘programs’ inter-operate with (e.g. control) embedded components and other embedded devices. But plug some smartphones into a dock with screen and keyboard and you have something that acts just like a ‘computer’ (on more or less this point, see Eric Schmidt at 21:59 in this video recorded yesterday – http://www.youtube.com/watch?v=0VkIpT3-kBM).
But the problem is even more complicated than that. Take the example patents I referred to earlier… either one of them could equally well be deployed in an embedded device, or as part of an application on desktop computer, or within a server farm. And these are far from being strange exceptions. The patents themselves simply don’t tell you anything about the kind of environment/device/platform in which they should be used. So if the legislation were to use the “embedded computer program” terminology in the sense that Burgess and co. want, what would that legislation tell a patent examiner or a judge that they should do with patents like these? So really I just don’t see that this language makes sense here.
Hoping to better understand where people are coming from, I went and dug a little deeper into the no.softwarepatents.org.nz website, and I found this… http://no.softwarepatents.org.nz/background, where they say the following, regarding the Commerce Commission Select Committee’s deliberations on the Patents Bill –
The Select Committee agreed, recommending unanimously that the new Patents Bill explicitly exclude software. Their report said:
‘We recommend amending [the Bill] to include computer programs among inventions that may not be patented… A number of submitters argued that there is no “inventive step” in software development, as “new” software invariably builds on existing software. They felt that computer software should be excluded from patent protection as software patents can stifle innovation and competition, and can be granted for trivial or existing techniques. In general we accept this position.’
The Select Committee did, however, make one important caveat: that inventions containing embedded software should still be patentable:
‘We received advice that our recommendation to include computer programs among the inventions that may not be patented would be unlikely to prevent the granting of patents for inventions involving embedded software. We recommend that the Intellectual Property Office of New Zealand develop guidelines for inventions containing embedded software.’
Again we see the ’embedded software’ language, but once more I’m less than convinced from the context that the Committee are knowingly using that term in the sense that it’s understood in the industry. And there are some curious ideas here…
– “A number of submitters argued that there is no “inventive step” in software development, as “new” software invariably builds on existing software.”
First, the fact that one system builds on another tells you absolutely nothing about whether there is an inventive step involved. Patent law requires an inventive step. There is no need to distinguish between software and hardware if this were genuinely the concern.
Furthermore, the statement seems not to recognise that there are multiple levels of abstraction involved in defining and developing complex software systems. The idea that there is “no inventive step” *can* be true at the level of pure implementation but *completely* false at a higher level representation of system design. And this is true regardless of whether we are talking about embedded or non-embedded software.
– “They felt that computer software should be excluded from patent protection as software patents can stifle innovation and competition, and can be granted for trivial or existing techniques.”
At least part of this is just wrong – if patents are being granted for trivial or existing techniques, it’s not because the law allows it and it’s not because they are composed of software. It’s because the tests of novelty, utility and non-obviousness are not being applied correctly. As to whether they stifle innovation and competition, there are probably cases where this is true. But there are also cases where the publication and licensing of patents that have software embodiments foster innovation and competition, and others where the developers of software based IP freely choose by themselves not to patent their work, often precisely in order to better foster innovation and competition.
– “We received advice that our recommendation to include computer programs among the inventions that may not be patented would be unlikely to prevent the granting of patents for inventions involving embedded software”
It’s kind of difficult to tell what this means. If you decide to exclude software, you won’t actually be excluding some software? What’s the justification for this claim? Did anybody ask?
Thanks to Mark for a very useful post.