Hi, I'm Wookey, Chief Nerd at Aleph One, a small software and hardware producer in Cambridge. We do both free and proprietary software, these days largely around embedded systems and GNU/linux on ARM processors, - those are the ones found in most mobile phones and PDAs.
I've been asked to come and speak to you about software patents today. This is currently a hot topic because there is a directive going through the EU at the moment which could either make software patents illegal or legal, depending on its exact wording. This will set the programming legal environment for the next 10 or 20 years, so it's important that anyone working in the field of computing understands the issues and implications.
Now, I don't claim to be an expert in this area, but my interest was piqued some 18 months ago by hearing Richard Stallman of the Free Software Foundation speak on the subject, and since then I've been to a conference in Brussels, and various discussions in and around Cambridge, talking to people on both sides of the debate, so I've now got a reasonable grasp of the arguments, and I hope I can adequately explain them to you. It's a big subject, but I'll try and cover the main points here today, and leave time for some questions & discussion. I've recently been to a 1hr version of this talk and that's a bit much even for dedicated geeks, so this one will be more like half an hour.
This talk is not entirely neutral - after examining the arguments I've come firmly to the conclusion that software patents are a very bad thing for society. The viewpoint I'll give today is essentially is that of the FFII - a European (German-based) organisation campaigning for a free information infrastructure, concentrating largely on software patents for the last 2 years. They have amassed an amazing amount of info on software patents on their website, and are an excellent resource should you wish to read further about this.
I'll be putting this talk on the web when I get back home in a week or so, so if you want to refer to it for URLs or references, just search for Wookey or Aleph One (and ignore Wookey Hole Caves, who beat me to the top Google spot).
The basics
Patents are a bargain between state and public - a monopoly granted in exchange for publication of information. This is intended to promote inventive activity and preserve information so it doesn't get lost.
They are granted for inventions in a technical field, which are new, suitable for industrial use, and unobvious to an expert in the field.
There is an assumption of balance: that the width of protection granted is justified by the significance of the achievement. When a patent is granted - there is one winner who can exploit the invention exclusively, and potentially many losers who must forgo the invention, or buy a licence (if the patent owner chooses to sell them one). Where this balance holds, then the system is effective: the resources put into researching the invention justify the negative effects of the patent monopoly, as is often the case in pharmaceutical research. But software patents are very close to patents on pure ideas. The achievement is minor, and the research usually negligible, but the protection can be very wide, as a patent can affect an enormous number of pieces of software.
A patent only gives exclusive rights in the country of issue (unlike copyright, which automatically applies everywhere that has signed up to the Berne Convention), so a US patent only applies in the US, a French patent in France. The European Patent Office (the EPO) exists to simplify the process of getting numerous national patents in European countries. It deals with the examination process, and translations and the issuing of British, French, Polish, etc patents in the countries you have chosen to pay for patents in.
We've got very used to patents, but they are not a free market, or a right, or a natural state of things, and need to be justified in a given sphere of activity. Most people on the street will say 'yes, patents are a good thing' if asked, but at least in the sphere of software, the assumption that patents are good needs to be questioned and some evidence produced for why.
Copyright.
Copyright already exists for software and is well-suited. It stops wholesale copying of your implementation, but it doesn't stop someone making something that does the same job. To copy your program legally someone will have to re-implement it - that's about the same amount of work as it took you, which is fair enough, and you have a head start of however long it took. By the time they've caught up you'll be on the next version. Innovation, copyright and trade secrets (for proprietary software) are all that is needed to protect software in the market.
Patent lawyers will say copyright is only for poetry and the like, but in fact it works quite well for music scores, music sound, pictures, films etc. Copyright is also free and automatic to obtain, and automatically applies internationally.
The biggest problem with patents, for programmers and businesses, is uncertainty: You can easily run your business so you don't trip over copyright - just don't plagiarise. But it is impossible to run it such that you are safe from unexpected attack by patent lawyers. Patents are written in a special language which even experts in a field find difficult to understand. In order to decide if you infringe a patent you normally have to ask a patent lawyer, and they charge several thousand pounds per patent for an opinion. Examining thousands of patents every year to check if you infringed is impossibly expensive and/or time-consuming for most small to medium sized businesses (SMEs), so they don't do it. Thus, in practice, every day a programmer writes code she infringes a patent or two, and one day someone will turn up telling her she infringed. It makes software writing into a minefield - suddenly one day a patent mine will blow up under you or your company - and the costs could easily destroy it, whether or not you really did infringe - 2 or 3 such attacks will almost certainly be fatal.
In practice patent lawsuits generally cost about half a million dollars. Those involved in real cases said that even when the accusations were obviously frivolous, it was still cheaper to just pay up than go to court and try to prove them wrong or demonstrate prior art. And do you realise that if you had invented the relevant technique prior to the patent then that might get you off the hook, but if you didn't publish it then the patent remains valid and others can still be hassled with it?
None of this helps companies write software and innovate. If they play the game they need to employ some lawyers and spend a lot of engineer time writing patent applications. If they don't, they will one day find that they got big enough to sue.
...
The existing software market isn't broken - software and software companies developed just fine without patents, so the premise that they are necessary to encourage investment and innovation is clearly wrong. (For example Microsoft never had any patents before it got be huge, but now that it's a dominant incumbent it's buying hundreds of them). No-one had any before about 1982 and the floodgates didn't open (in the US) until around 1994, and plenty of software got written, some of it highly innovative. To change the software legal environment in this fundamental way needs some very good reasons and evidence. And that evidence simply doesn't exist. You can find lots of legal argument promoting the idea but almost no economic arguments or studies.
Patent lawyers always talk about this subject from a legal perspective, not from a social or economic one - they believe all patents are a good thing per se and don't even consider the idea that they might not be. We, and MPs and MEPs, must consider the overall economic, social and innovation effects to see if they really are a good idea.
The classical idea of patents is that they protect individual inventors with great ideas from large corporations, and whilst they may work like this occasionally for software, in practice they seem to do exactly the opposite.
Having one patent on something is very little defence against a large corporation that wants to use your idea. Because any useful piece of software uses many many ideas and algorithms the corporation will just say, "ah, yes we may be infringing your patent, but you're infringing six of ours - do you really want to go to court about it?" IBM are masters of this strategy and there are many stories of cohorts of stony-faced lawyers turning up to give anyone threatening them with patent infringement a hard time.
So in practice, allowing software patents simply leads to a numbers game, where all the players need lots of patents and it doesn't matter if most of them are rubbish - they just need to cover as much of the field of computer science as possible. Only large corporations can absorb the costs and get lots of software patents and use them to stifle competition from innovative startups. It's largely big corporations, lawyers who make a living from them, and parasitic companies that use patents for extortion but never invent anything, that promote software patents. The vast majority of software developers and SMEs are not in favour of them. 300,000 signatories, including 700 companies signed a FFII petition against them, for example.
The only evidence that does suggest SMEs benefit from patents in the US includes in its definition of SMEs companies which do no research or development of their own at all - so-called 'patent-trolls'. These outfits buy up patents from defunct companies and then go round suing other companies which are making real products. Is this the sort of development and innovation we wish to encourage?
Patenting works reasonably well where one patent corresponds to one product, as in chemistry and pharmaceuticals. But every program of any significance has thousands of ideas in it, and thus can be affected by thousands of patents. Avoiding them all becomes increasingly difficult as more and more patents on fundamental building-blocks and useful ideas are issued.
The US is a handy test case, being some 4 or 5 years ahead of us in swpat terms, and the evidence clearly shows that patents cause plenty of problems. The longer the patent-grab game goes on the worse it gets. The Federal Trade Commission recently held hearings on the state of the patent system and company after company said the situation was out of control in the field of software and was not helping at all. That study was published in August 2003 and is a fine example of a very staid government body concluding that they are actively unhelpful.
Nevertheless, there is a lot of pressure from the US for the EU to legalise software patents. This comes primarily from large companies which stand to gain from them, but even companies that don't like software patents, realise that they will lose out unless we operate under the same restrictive regime, so they tend to support the idea of software patents in the EU too.
....
In principle the problems of software patents would be enormously reduced if they were only given for things that were genuinely complex or hard to invent, but the system itself encourages very low standards of examination. Patents are supposed to be 'not obvious to an expert in the field'. But how many of you think that these typical European patents are not obvious:
Progress Bar, electronic shopping trolley, dynamically extensible webserver (CGI scripts), controlling one computer from another (RPC, telnet, client-server), displaying objects in overlapping windows, or transferring pupil data between computers over a wireless network.
These are all just the obvious way you would do something if asked to provide that functionality. And they are not particularly unrepresentative examples - if you look at the patent database and read through the legalese, nearly all software patents are this trivial. You can get a patent for almost any computing idea if it is dressed up in the right language. The FFII maintains a database of patents translated back into something software engineers can understand, to show the sort of ridiculous things that already get patents.
The problem is that there are so many areas of expertise needed that it is now impossible to have patent examiners proficient in every sphere of software, so trivial patents will always get through. And the economics of patent offices also drive this process, because they want to give value for money to their customers - people pay to be granted patents, not to be refused them, but the office has to do nearly the same amount of work in both cases. Th EPO charges more than any other patent office (several thousand pounds), but still grants all sorts of trivial patents. The US Patent office is much worse.
Another irony of the system is that in the days of the industrial revolution a patent included a technical drawing of the invention that could be used to build it - the 'publication' side of the 'monopoly in exchange for knowledge' balance I mentioned earlier. But software patents only include a description of the idea, not an actual implementation that could be used for someone to build on. There is no requirement to publish working source code, and indeed patent lawyers resist this idea, claiming that it is much clearer to have them re-write your program in patent-speak, which if you have ever tried to read a patent, clearly isn't true. This process just makes it easier for lawyers to keep the whole system under their control, as you need them to apply for patents and to interpret patents, and programmers find the published patents completely useless as a source of knowledge, even though that is supposed to be a major part of their purpose.
One of the main arguments given in favour of software patents is "The Americans have them- so we must too, in order to compete". This is a barmy argument. The EU currently has an advantage because European companies can write software without tripping over patents all the time. They can still get US patents if they want to use them in the US, but are safe at home. Americans are finding it harder and harder (or at least increasingly expensive) to write software, and are liable to being sued at home.... There have already been a lot of software patents granted in the EU, despite their dubious legality, and most of them are owned by US and Japanese corporations. Making them legal would simply hand a significant chunk of the EU software business to foreign companies.
(Standards)
Patents are making it increasingly difficult to set standards. JPEG was specifically created as a patent-free standard, even forgoing a few percent of speed to ensure no patents were infringed. But now 15 years later a patent-troll has bought a relevant patent and is enforcing it. They got 22 Million dollars out of a couple of Japanese digital camera companies last year, and when the president of the JPEG committee said that there was prior art they accused him personally (not the JPEG committee, or his company) of 'patent libel'. This claim has not put them off and they are still hassling businesses that write JPEGs.
The MPEG2000 standard is probably already dead in the water due to arguments about patents. Anything that does legalise them must have strong safeguards to stop things like the JPEG hijacking. There can be agreements amongst those involved in the discussions but it's very difficult to do anything about people who don't join in and wait till afterwards to come and sue. A 'Use it or lose it' provision, and and interoperability defence would both help here.
(Free software)
Free software has both advantages and particular problems with respect to patents. The fact that it is all published is a useful 'prior art'
defence. It also makes it very easy to see if there has been an infringement so its authors are particularly open to being sued. As nearly all Free Software is distributed at no cost, there is no mechanism to pay for licenses so it can't use any patented algorithms or features. A clause in the law is essential to allow free software to interoperate, and even 'royalty-free' patent agreements in standards could cause problems as they only allow using the code for the specified purpose, not any other possible use someone might come up with later.
It seems to me that 'Independent invention', which happens all the time in software development, should be a sufficient defence, but that is anathema to the patent system.
In principle a much shorter period for patents (3-5 years?) would help reduce the bad effects, but this is legally extremely difficult to do. The international agreement (TRIPS) says that patents must be 20 years for all fields of endeavour. This is clearly inappropriate for software - imagine having to write all your software using only ideas from when the ZX-spectrum was the state of the art. 20 years is an eternity when most software products have a life of around 18 months. This 20 yrs-or-nothing aspect is actually a good argument for nothing.
One argument of the pro-patent lobbyists is that we can't cause trouble with the EPO or pass laws that would invalidate existing patents. This is the line taken by the UK government. But this reasoning is simply caving in to the EPO who have pushed the current status quo miles beyond what the law states. It's not our fault that clarifying the situation to a sensible state will mean a lot of patents have been issued on very shaky ground. They are mostly worthless anyway and should be treated as such.
So where are we now?
Software patents are currently illegal in Europe according to the European patent convention, agreed in 1973. The legislation says quite clearly that a number of things are not patentable
* discoveries, scientific theories, mathematical methods,
* aesthetic creations,
* schemes rules and methods for performing mental acts, playing games or doing business
* presentations of information
* and computer programs
You can see from this list how software is filed alongside things which are essentially ideas, discoveries, and creative acts like writing a novel or a symphony.
We don't allow patents on the arrangement of words in a particular form of clause or story;
We don't allow the creation of a particular motif or structure in music to be patented, and;
We don't allow patentability of a new sort of provision in a legal contract.
We do allow the complete arrangement of notes or words in these things to be copyrighted. Software is like these - it is the bringing together of many small obvious components into a coherent whole, and this process is a creative act, not an invention in the sense of patent law.
So how come we have 30,000 software patents in Europe already? It's because patent lawyers at the European Patent Office (EPO) have, over 20 years of case law, twisted the word and spirit of the law out of all recognition, essentially saying a 'computer program as such' (the wording in the EPC) is not the same as a 'computer program' and that because software runs on hardware which is inherently 'technical' (gets hot, uses electricity') - it can be patented.
This is why you have to be really paranoid when considering the wording of legislation. Nearly everyone involved says they don't want software patents, and they certainly don't want business method patents, but then write legislation that allows unlimited patentability of ideas (business methods in computer program terms) either through ignorance or mendacity. The existing 1973 text is pretty clear - if that doesn't work we have to be astonishingly careful in the wording of new law to ensure that there are meaningful limits on what is and isn't patentable.
The legislative process
I need to step back a moment here and explain the legislative process in the EU. There is a tripartite system involving the European Commission, the European Parliament (your MEPs) and the Council of Ministers, (which is composed of representatives of each of the EU member governments).
Law is proposed by the Commission, amendments are proposed by committees and parliament, then voted on by the parliament. Next it goes to the Council of Ministers for a vote. With this particular piece of legislation (the directive on computer-implemented inventions), this is where we have currently got to. Next it goes back to the parliament where further amendments are possible, and finally back to the Council again for ratification.
The commission originally proposed a terrible directive, which effectively allowed unlimited software patentability. However, a huge lobbying campaign led by the FFII (which apparently produced the biggest petition the Parliament has yet been presented with) persuaded the Parliament to add a large number of amendments which put real limits on patentability, and included an interoperability clause. But then when the directive went on to the Council of Ministers, they discarded all of the Parliament's significant amendments and produced a version which was even worse than the Commission's original, as it included program claims too. (I'll explain what that means in a mo).
This was bizarrely described as a 'compromise position', given that it totally ignored the democratically-elected parliament's position. This version was narrowly agreed two weeks ago by the Council, so now we go back to the Parliament. Unfortunately, second time round amendments are significantly harder to get passed as they need a majority of all MEPs, not just the ones present at the vote, and whilst that's not impossible, it won't happen unless your MEP hears from you that this is an important issue. It is also important to work on National governments. The UK has been at the forefront of those pushing for unlimited patentability via this directive, apparently driven by the UK Patent Office, and changing goverment policy is going to be very difficult, but many other European governments are getting rather nervous about this issue, and it is definately an argument that can still be won.
Key Issues
There are three key issues in the legislation:
* Program Claims
* Interoperability, and
* the meaning of the word "technical" - i.e. what is patentable.
"Program Claims" means that software patents can cover the publication of programs in machine-readable form, not just the use of those programs. This means that sending someone a file containing patented software becomes illegal without a license, and even discussing the software would become difficult, as there is nothing to say that discussing algorithms using code fragments (the way programmers normally discuss code) is allowed.
This is the provision that was added in the Council of Ministers draft, showing how the national patent offices (who obviously like this sort of maximisation of the reach of patent law) are currently controlling the views of our governments.
A 'fair use' provision would at least offer an olive branch, but really the scope of patent protection should be kept to use of the invention, not extended to include information about the invention itself. Software is different from normal manufactured goods because it is just information - it is both the invention, and the description of it, in one thing. This is why Program claims make sense to Patent Lawyers, and equally explains why programmers believe software simply shouldn't be patentable at all, because it is information, not an industrial process.
Interoperability:
There is nothing in the proposed draft, short of a full-scale EU Competition Investigation, to prevent dominant patent owners preventing competitors from interoperating by refusing them licenses. The most obvious example is the recent patent Microsoft has been given on the particular XML format used in its newest Word documents. It must be possible for others to write software that is compatible without having to buy patent licenses, and this is the position backed by the European Parliament, which allowed automatic unfettered use.
The Danish parliment suggested a compromise of a fast-track procedure for courts to require compulsory RAND licensing - i.e. a paid licence, but available to all, and at the same cost. This would work for proprietary software but is not much use for Free Software. Should it be illegal for Openoffice to read and write MS Word documents, or the Linux movie software Mplayer not to be able to play films you bought?
Your MP and MEP needs to hear that you consider interoperability essential.
Technical
As I said earlier - According to the European Patent Convention, computer programs are excluded from patentability, to the extent that the claimed invention relates to the computer program "as such".
The new directive legislates for a framework in which the crucial test for patentability is whether the claimed "computer-implemented invention" has a "technical effect".
This has given supporters of patentability a figleaf that "pure software as such will not be patentable".
But what is "software", and what is "technical"
There are essentially three views:
1) There is general agreement that newly invented physical processes should be patentable, regardless of whether software control is needed for the process to be achievable. The classic example is an anti-lock braking system, if a particular non-obvious process of applying the brakes has a particular physical benefit.
This was the view taken by the parliament, and is supported by the German government - the characteristic wording is that "control of the forces of nature" is technical, but that internal processing of data is not technical.
2) UK case law goes further than this. So whilst processing of generic data is not generally patentable, the invention becomes "technical" if the data has technological relevance, so things like image-enhancement software is patentable because the image data is 'technical'.
Because the UK has been giving software patents like this for some years now the goverment is steadfastly refusing any stricter definition of technical because it will invalidate existing patents.
3) The EPO has gone further still and takes the position that all computing is inherently technical and so anything that has practical usefulness makes a "technical contribution". Thus they say that a new algorithm "as such" is not patentable, but any algorithm with any identifiable practical usefulness (runs faster, uses less memory) is patentable.
This third option is what the Council of Ministers draft proposes, and is what UK ministers are backing despite saying "nothing shall be patentable which is not patentable already".
Here's a few more examples of what the EPO has already decided is 'technical' (and granted patents for):
- emailing the recipient of a gift, to ask where they would like their gift delivered (Amazon gift ordering)
- using the same data without retying to update both a sales ledger and stock control
- Tabbed windows (making more efficient use of screen space)
This laughable list is, unfortunately, almost endless.
This 'computing is technical, so software should be patentable' argument is like saying that music should be patentable because playing it in a stereo system produces physical effects in the loudspeaker. Software ideas are independent from the hardware in the same way that music is independent of the reproduction equipment.
Here is another way to look at why the 'controllable forces of nature' definition of 'technical' makes sense:
A computer is a Turing machine - programs are logically equivalent to maths, and that is why they should remain unpatentable. As soon as you allow algorithms to be patented, then ideas and everything in human endeavour follows, including voting systems and social organisation methods.
The question boils down to the two sides of the argument:
a) If physical processes are patentable, why should it make any difference whether they run on special hardware for that process or on general purpose hardware (i.e. a computer)?
b) If rules of organisation and calculation are not patentable why should it make any difference whether I run them in my head, with pencil and paper, or with today's normal tool - a universal computer?
Both these apparently-logical arguments cannot be right, and in fact the 2nd argument is right because the economic argument comes in here: abstract ideas, regardless of their applicability, are produced without experimentation cost, applicable to an infinite number of problems and are replicated at zero cost, with no overhead to which patent costs could be added. This is the right place to draw the line between what is and isn't patentable.
Ideas should not be patentable. The FFII proposals distinguish between mind and matter and invention and implementation. In the real world making complex systems that work is difficult - in software it is easy. Your for loops will not overheat and melt a nearby function, and neither will an array cause electrical interference in your hash function. So patents are applicable to the industrial world of 'controllable forces of nature', not to the world of algorithms and rules of organisation and calculation.
There will always be borderline cases and FFII have set up a
benchmarking suite of example patents against which legislation can be tested.
Advances in software are like advances in science. Everyone is building on the work of those who went before by making small improvements - 'standing on the shoulders of giants'. Free publication and re-use of ideas is an essential component of this development. Would having to pay a licensing fee for the use of every idea or reference in your PhD thesis increase your innovation? Where would we be if Newton or Einstein, or any others of a host of scientists in the last 200 years had patented their ideas?
The Free software movement has shown in the last 15 years that a co-operative model of software writing is more efficient than a closed, proprietary one, at least within the commodity zone of general-purpose software such as operating systems, data protocols and office software. The internet has become a remarkably pervasive thing over that same time period, precisely because it runs on open, patent-free standards. Everyone can use it on an equal footing and write interesting applications for it without payments or legal restrictions.
If Tim Berners-Lee had patented HTTP back in 1987 the whole world would be a great deal poorer. We wouldn't have the web in the ubiquitous form we have it today - perhaps we wouldn't have it at all. And he probably wouldn't even be better off as he's just won a prize of a million dollars for his contribution to mankind. He would have struggled to make that much money from a patented, and thus stangled-at-birth web. Just because something is a good idea, doesn't mean it must be patented, or even patentable.
So far as I can see software patents are a bad thing and have no overall benefit to society or developers. In the long term, all the evidence shows that they will constrain development, reduce innovation, and prevent Free Software and small businesses from competing on a level playing field. They seem to be little more than an effective tool to allow large businesses and lawyers to suppress competition from small ones and individuals, and to move fundamental ideas and algorithms from the public domain to private ownership.
However, powerful forces - the ones who stand to benefit from this legislation - disagree with this and are largely getting their own way in legislation-land at the moment. So, if you don't want to see everything under the sun patented, then you need to say so very clearly to your representatives right now.
