This week, Advogato rambles on about his views on patents and free software.
This week, Advogato rambles on about his views on patents and free software.
Free software and patents have had an uneasy co-existence for a while. The usual response from free software is staunchly anti-patent. Of course, abolishing all software patents is not realistic any time soon. Advogato believes that patents are not inherently evil, and that an intelligent response to them is not only possible, but desirable. In particular, developers should become conversant with the basics of patent law, and learn how to search patents effectively. This cat also believes that there are times when filing for a patent is appropriate.
A patent grants the inventor the exclusive right to "make, use, or sell" the invention for a limited period of time. The patent system in the United States was started to benefit inventors, giving them financial incentive. One of the other goals was to ensure that inventions were publicly disclosed. Thus, after the patent expired, it would become entirely public domain. Thus, good inventions that vanished into obscurity when the inventor died or went out of business would be eliminated.
Patents have traditionally been for machinery, although the history of information-only patents is quite rich as well. In fact, one of the earliest recorded patents was for the French Royal font, especially commissioned by Louis XIV to be designed "mathematically".
Unfortunately, the rhetoric of the Constitutional founding of the US patent system, "To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries", does not hold up particularly well when you look at the present day patent system, especially as it applies to software patents.
There are a number of problems. Perhaps the most important is that the patent office is just not very good at its job of examining patents. All patents are supposed to be novel, nonobvious, and useful. However, a huge volume of patents slip through which don't meet these criteria. My experience with software patents (primarily in image processing, one of the more troublesome areas) is that perhaps the majority are not novel at all. In addition, the "obviousness" requirement doesn't stop very many bad patents. Some of the examples are ridiculous, such as the infamous Y2K Windowing Patent. This is not only an obvious technique, but one that had been published for years before the patent filing date. The patent office is currently reexamining the patent, most likely in response to the publicity.
The other major problem is that the patent process is expensive and time-consuming, qualities that certainly favor large corporations over independent inventors. Simply filing for a patent costs $5,000 or so, and a full-scale legal challenge to a patent (or asserting a patent against an infringer) costs $250,000 up.
So-called "blocking patents" are particularly dangerous. Patents on specific techniques and implementations can be invented around, something free software developers are pretty good at, probably because of our inherent NIH syndrome. The patent system actually encourages inventing around as an incentive to create new inventions. However, a lot of patents have claims so broad that they really cover the idea of the patent. One that particularly bothers this cat is the Schreiber patent on color management. Schreiber did do original work, but was he really entitled to a patent on the general idea of colorimetric matching between scan, display, and print? Or perhaps was he the researcher into electronic color reproduction who just happened to be first?
Patents are also particularly dangerous when they are encoded in standards. While the IETF and some other standards bodies have intellectual property guidelines that discourage patents, most standards organizations don't, including some of the big heavyweights such as ISO. Indeed, many of the more important ISO standards for interchange, such as MPEG4, MPEG4 audio, and JPEG2000 are positively patent-encrusted.
In this cat's opinion, free software developers should be vigilant against implementing patented standards when patent-free alternatives exist. The most dramatic example is of course GIF, which includes the patented LZW compression algorithm. This algorithm is one of a large family of algorithms including at least one good patent-free compression algorithm (used in zlib. The GIF patent issue would likely not have happened had the free software developers who popularized it had been aware of the patent issue and boycotted it.
The biggest problem with LZW was probably its "snake in the grass" nature. When the patent first came to light, Unisys did not enforce it, so many assumed there was no problem. Wrong.
While this discussion has been US-centric, most of the patent systems in the rest of the world have similar problems. However, in many cases patent-holders don't bother to file in other countries (it's expensive, for one). Thus, one cool way around patents is just to do the work outside the US, approach taken by the Lame and libicc projects, among others. This is especially cool when the patent is (a) a blocking patent and (b) about to expire soon (as in the case of color management).
Otherwise, it's better to seek a patent-free alternative. Sometimes this is relatively easy (at least in hindsight), as in the GIF example. Other times, it might take a little digging. Advogato definitely supports work such as OggVorbis audio codec, an attempt to make a totally patent free alternative to MP3.
Reforming the patent system is often proposed, but Advogato feels there's little or no chance of it happening.
Now we move on to a more sensitive topic. Should free software developers apply for patents? According to anti-patent zealots, the answer would clearly be "no," but I believe there are times when it is appropriate. The present day patent system does retain vestiges of the original goals of rewarding inventors, and additional sources of funding for doing free software are always interesting (how else would this cat be able to afford those imported anchovies?).
Of course, it isn't free software unless the the software is actually free to use the technology. A grant of patent rights under your favorite license takes care of this. While it would be tempting to grant rights for all free software or Open Source licenses, this creates the hazard that an infringer of the patent could create a libpatent.so and distribute it under the MIT license, making it legal to use without paying royalties. GPL should be fine though.
One advantage that patented free software has over the "pay to get out of jail" model is that it doesn't necessarily require copyright assignment forms from contributors. Similarly, potential licensees can't get around paying the inventor just by doing a cleanroom implementation.
The idea of a "patent pool", or an organization to manage free software patents, comes up periodically. It seems like a good idea, but Advogato is skeptical for a number of reasons. For one, patents are very expensive, so this pool would have to accept large quantities of money, be very efficiently run, or lose money. In a lot of these cases, the actual inventor shouldn't count on seeing a lot of profits. The other major problem is whether the organization can be trusted. An established nonprofit such as League for Programming Freedom probably could be, but many other possibilities could simply be too corporate to trust.
Perhaps a patent pool could be created, addressing these problems. In that case, Advogato would happily support it.
Once again a case of a GPL advocate that hasn't read the GPL. Please, do not advocate the GPL unless you have read it and thought the implications through. If your implications do not include that it blocks a lot of open source contributions, and that it ultimately blocks a lot of consumer choice, you're not through thinking.
Apart from that, I think you americans should challenge the present practice of the patent system on constitutional grounds - it is backed in a single sentence in the US constitution (section 8, Congress shall have the power [...] To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries;) and as far as I can tell, the changes to the way the system is practiced is very clearly moving away from this backing, not towards it.
Could you please take the time to explain why the GPL disallows such a use of patents? It may be clear to you, but it's probably not as obvious to everyone reading.
Also, Advogato is not Slashdot. I'm hoping that this site becomes known for informed, civil discussion of the issues. Not to mention that flaming cats is just a Bad Idea (tm).
I believe it is possible to create a system of patent pools that address the problems you point out; I am trying to promote such a system at www.openpatents.org with the Open Patent License, or OPL.
General description of the license:
The underlying idea is that you agree to abandon your patent(ish) monopoly powers over all those who abandon theirs to the same or greater degree. Everyone gains benefits as they license their IP, while no one gains benefits by imposing encumbrances.
I haven't yet figured out how to describe or write the license in detail without causing my audience to fall asleep, so here is a simplified description of how a few Options of the license are intended to work:
Patents submitted under Option 1 of the license can be used in instances of code for which the work as a whole is distributable under an Open Source license. Patents submitted under Option 2 can also be used in those works, as well as works for which the work as a whole incorporates only patents submitted under Options 1 and 2, (and 0, the give-away-this-patent Option that is likely to see little use.)
The license goes on from there. There are 7 Options in all under which you can submit patents, and 7 Pools from which you can use patents. Each Option and Pool has its own terms and conditions.
To go over your objections:
If applying for patents is so expensive, then Patents in the Public Interest, Inc., will tend to avoid the activity. I don't think it's necessary for PPI to own patents of its own; PPI can promote the idea of companies and individuals using the Open Patent License to cross-licensing their patents without PPI acquiring any patents of it's own to cross-license.
I have two underlying goals:
Neither goal requires PPI to have patents of its own. Both goals can be met by merely convincing patent owners to license their patents under the Open Patent License. The trick is to write a license to which it is to the advantage of many parties to agree, and to write the license such that mass agreement will tend to remove the encumbrances we all complain about. (That is, it should be to almost everyone's advantage to solve almost everyone's problems.)
So I'd like to have things set up so that those who agree to the OPL needn't pay PPI any money, and PPI needn't pay the patent office any money. It's easier to do things and sell people on ideas when both sides can minimize their expenses, and "zero monetary costs" is about as minimal as you can get. I vote for $0 payments.
(To be fair, individuals andcompanies will be giving up exclusive rights to their IP, and those are the payments that will make the OPL contract work. But it should be easier to sell a company on the idea of making that sort of payment when the company won't have to pay any explicit $10k fee to the selling organization. )
Back to my response to your point: I think it is unnecessary for PPI to apply for patents of its own; I think merely selling other groups on the idea of cross-licensing their patents will do the trick. Not applying for patents will save PPI money as well as make it easier to promote the cross-licensing idea.
(Note: Eventually, I would want PPI to act as a clearinghouse that pays inventors who solve problems that others have bid on a solution for, and in that case PPI might effectively be paying for patent applications, but that's a different situation, a different topic, and a long way off.)
Yes and no. OPL'd patents will be able to be incorporated in any Open Source code as well as code that incorporates no non-OPL'd patents. As the license becomes popular, more code will be listed as including OPL'd patents.
It's to the advantage of an inventor to be able to show a prospective client that the main products the client uses incorporates the inventor's own patents. Perhaps that will help convince the client that the inventor might be able to understand their problems and come up with appropriate and workable solutions.
Right now owning patents can help an inventor monetarily 1) if the inventor licenses the patents for royalties and is known to be willing to take suspected violators to court or 2) by demonstrating competence to prospective clients. My understanding is that (1) is practically difficult to do, now or under the OPL, but the OPL should make (2) easier.
Companies will still need to negotiate with the inventor in order to use the patents in ways the OPL does not allow.
I agree that a blanket patent license for Open Source use would not be helpful if the license were worded poorly, but keeping up with a list of acceptable Open Source licenses seems too cumbersome to me for it to be the solution I would prefer. The way I address the problem is by having the OPL allow the use of submitted patents in any instance of code that is distributable under an Open Source license.
With those rules, a company could always distributed GPL'd code but would need to negotiate patent licensing for instances of code once merely distributed under the MIT license but now incorporated into a work distributed under a proprietary license.
Granted, PPI is not built up enough for you to trust, nor does it have a long enough history yet for you to trust it. I will work to change that, but it will take some time. However, not only does the organization need to be trustworthy, but the license needs to be so, and IMHO that's much more important.
I'm quite literally asking for companies to license billions of dollars worth of intellectual property. No matter how well-debugged version 1.0 of the license becomes, and no matter how much PPI or the large companies spend on sending it past their lawyers, the fact remains that there may be some flaw in the license that everyone overlooks. If the license doesn't meet its goals, that's one thing, but if it "leaks" billions of dollars worth of IP and threatens the livelihood of corporations that trusted it, that's a disaster of unspeakable proportions!
I have a positive responsibility to add safeguards against that sort of disaster. It's not possible to completely guard against every problem, and having more than a few trivial escape clauses would be dangerous and counterproductive anyway, but I want to include something like the following, which I think is enough to avoid disaster while still preserving the usefulness of the license:
Point (1) allows a company to "safely" agree to the license. It lets them agree to the license soon after (or before) the release version, while leaving it if unforeseen problems develop within those first few months. After version 1.0 of the license is released and things settle down, businesses can still withdraw from the license if they realize within a few days of joining that it doesn't (yet) fit in with their business plans.
Point (2) lets PPI update the license over time without giving it the ability to abuse this authority.
Point (3), which I'm still debating, still allows PPI to void the agreement if things go wrong in the first year and industry doesn't recognize that to be the case. (Nothing would stop anyone from starting over with a similar license, so it would be difficult for PPI to effectively abuse this provision.)
There are still quite a few rough edges on the proposed license, so many that reading the whole thing without falling asleep halfway through may be impossible, as I alluded to before, but it should improve over time. (Also, I've gone to a patent attorney with the goals and rough sketch of how the license works, to (fortunately) be told that such a license should be able to be made workable in principle. However, I didn't ask him to go over the particular license itself in detail, as I saw little point in paying for legal debugging of something that would be in flux for some time. Once the license settles down, I'll go back to ask for that more detailed legal debugging.
The GPL block such use of patents because it is explictly in the license text; see section 7.
Sorry for the heated tone of the previous reply; I am just sick and tired of people thoughtlessly advocating the GPL, because I love Open Source Software, and the restrictions of the GPL restricts its forward progress for no effective gain (beyond a slight sating of paranoia.)
I'll do penance by writing up and submitting an article analysing how the type of restrictions in the GPL influence Open Source development; it will take some time, though.
Section 7 of the GPL deals with what happens if someone else alleges that you infringe upon their patent by creating and/or distributing the free software you're making. Specifically, it says that if you make a piece of software available under the GPL, and someone comes along and says "you can't do that, that infringes upon our patent, so all people you distribute to will need a license", then as a consequence, you can't distribute the software at all.
This is totally reasonable, and is the way just about any copyleft-type license would have to be worded in order to be able to do anything at all. If license infringement claims can be used as a means to circumvent the license terms, then the license is worthless, since it doesn't perform what it was designed to.
It's important to point out that regardless of your opinions on the GNU GPL per se, it performs the task it was designed for extremely well. As for your comments about its restrictions serving no purpose other than to alleviate some paranoia, I disagree. Historically speaking, the main virtue of viral licenses has been to prevent project forking, something it has done to a great degree, as opposed to what has happened to projects under licenses that have traditionally been considered "more free", at least by some parties.
You say you're tired of people advocating the GPL. Well, it works. I'm tired of people dumping on the GPL because they don't like it. It's a license, it's your choice to use it or not on the software you make, and it's your choice to use or not use software that's under the GPL. In many cases, the extreme hatred of the GPL that I've seen from some camps seems to smack of jealousy because systems licensed under it are more successful in the public eye than the systems of said camps. I, for one, have a pretty decent insight into what the GPL does, and as a result, I'm placing all the software I make under it. It's insulting when it's suggested that I do so because I'm ignorant.
Section 7 restricts other people from re-distributing your GPLed software, which again makes it sort of pointless to place it under an open source license in the first place. If what your cat wants is to place the project under a different viral open source license than the GPL (e.g, a modified GPL)- say that. Otherwise, people are just lured to think the GPL is suitable for things it isn't.
Next point: Fork prevention is, IMO, a myth. True forks are influenced by project size, project movement, and version control technology, but I've not seen any evidence that they are strongly influenced by license. Since you say it has done this "to a great degree", I would like to see your arguments to support this - taking into consideration at least project size and project movement as other factors, and prefably disregarding "irrelevant forks" - forks that don't compete with the original for mindshare.
And the reason I'm suggesting most people that place things under the GPL have not fully analyzed its consequences is that I have not ever met a person that both regularly use the GPL, and have analyzed its consequences. I've met a lot that use (or often, after I've spent time with them, used) the GPL but do not understand the consequences before they are pointed out to them, and believe a lot of GPL myths (like the fork myth, or the GPL-causes-more-free-software-as-companies-are-forced-to-release-things myth.)
When you then come along and propose something that is in direct violation of the GPL (except for the people that get a copy directly from you, thus in effect turning the GPL into a proprietary license) I can't but conclude that you haven't carefully thought the GPL through. If you feel that as insulting, I'm sorry, but you would be in very good company. Historically, that company would include me - I used to like the GPL, work on GPLed projects, and think the GPL created a "fair exchange" and would create more free software. Alas, now believe I was severely wrong.
I respect a lot of the people that use the GPL - as programmers, as persons, and as having constructive intentions. However, in order to have that respect, I have so far found that I have to conclude that they have not analyzed the GPL consequences, as they do not (as far as I can tell, and I've spent a lot of time on this) mesh with having constructive intentions.
The original article stated:
"Of course, it isn't free software unless the the software is actually free to use the technology. A grant of patent rights under your favorite license takes care of this"
This sentence seems to have caused the confusion: I take it to mean that the Patent would be licensed in such a way that those who complied with the relevant Open Source license, GPL is suggested, would be allowed to use the patented technology. Those who did not comply with the Open Source license would have to apply for licensing and pay the patent owner in the normal manner.
Lets deal with Eivind's contention that the 'GPL disallows such use of
patents' in section 7. The core of section 7 is:
"If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all."As Radagast suggests this section is meant to deal with external entitites making sections of the license unenforceable. In sum it says 'this is an all or nothing deal' either all the license can be applied or you can't distribute the software.
However, this could also apply to the software programmer trying to apply an additional restriction beyond the GPL and it goes on to illustrate how this section would apply in this circumstance:
"if a patent license would not permit royalty-free redistribution of the Program 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 some senses this is a restatement of section 2 as it specifically applies to patents, clearly the author had a overriding concern for them.
Since the GPL concerns itself wholly with the copying, distribution and modification of software released under it's license Patents can be licensed to be used as long as the Patent license complies with the GPL. In other words there would have to be a secondary license which said something like
'you can use the technology of patent ### as long as any software that you use it within is licensed under the GPL. If you wish to use it in other circumstances please contact the Patent Owner Y for details of license terms'
Certainly then Eivind is correct that the GPL does not contain any sections for the licensing of Patents so a separate license would be required although as my example shows the use of the technology could be made to apply in a context where the GPL would be used.
I shall not comment on the other aspects as it all comes down the purpose you have for licensing your software: that is the point of a license after all. The BSD license seeks to encourage the use of the program and source code at heart. The GPL seeks to maintain the freedoms it grants to each licensor equally and in perpetuity. It is certainly a question well worth considering if you have some software which you want to release: unfortunately I have not been in that position whereas Eivind has, his decisions and opinion can be respected on that basis alone.
To sumarise, there is no reason why Patent licenses should not be used with GPL programs as long as the license agrees with the GPL. What is done where the GPL doesn't apply is beyond that license's purview so the patent owner can license the technology under whatever terms are desired: where the software was not going to be released under the GPL the patent owner could earn some useful money!
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!