Ask Slashdot: Using Code With an Expired Patent?
kruhft writes "I was recently doing some research into Genetic Programming and found a library through a blog post that looks to be useful. After looking over the code and license, I found that this was the first piece of code I had seen that was protected by a patent, issued on June 19, 1990. I read that patents last for 20 years, meaning that the patent that this code refers to is expired. Is there any way for me to be sure that using this code is safe from any patent troll attacks if I choose to use it? Would rewriting the code keep me from violating any other patents that the author might have regarding the use of such an algorithm? Does the code pass into the public domain after the patent expires?" Note to Chrome users: the above link ("a library") works for me in Firefox, but not in Chrome on Linux; YMMV.
The original Koza stuff? I can't imagine how useful that would be in these modern times, but you know your problem better than I do.
What I can tell you is that Koza never stopped working on it, so even if the exact code you're looking at isn't covered by patents, whatever you adapt it to do might be covered by a different patent that was assigned after that date.
A patent covers the method, not the implementation. If the patent is expired and the code is not covered under copyright, you can use it. If there are other patents that cover it that aren't expired, then you'd still be exposed to trolling.
(IANAL)
>Is there any way for me to be sure that using this code is safe from any patent troll attacks if I choose to use it?
Short answer: No
Long answer: There are duplicate patents of everything out there. This was explained in the This American Life episode 441. http://www.thisamericanlife.org/radio-archives/episode/441/when-patents-attack
Solution:
Stop looking at patents, you idiot. Actively looking at patents and then violating someone's patent means that you "knew or should have known" of the other patent, infringed on it deliberately, and are now liable for triple damages. This is in contrast to "incidental" infringement of someone's patent.
--
BMO
patents issued before ~1996 lasted 17 years from date of issue. So the patent theoretically would have expired June 19, 2007.
I say theoretically, because then, and now, patents can be delayed to make up for delays at the patent office. My guess is that this patent probably did not receive a term adjustment of five years, but you don't know, and you can't know until you look up the patent file and research.
Unless I have read your question wrong, it's copyrigth I'd be thinking about. The process would be most likely okay in different code, but the copyright still stands. Do you want to use it within the terms of licence? You are good to go. If not, rewrite, but the process will be fine to use.
The patents may have expired, but there may have been others granted for different, new, novel uses that are still in effect and which may bite you. The other issue is that the author claims copyright on the code.
Copyright is for the life of the author + so many years (the exact amount negotiated by the Senators from Disney escape me right now), so that could be another way you could get stung.
I'd simply use the code as the author wishes, and give credit in the headers to the patents - expired as they may be...
Hope this helps...
You will have to rewrite the code to avoid copyright.
You could ask him if you can use the code if it was never used for anything profitable he could be a nice person and let you credit him.
Relying on Slashdot for legal advice ? Not wise.
The code is also protected by copyright, which is the real opposite of public domain, and lasts basically forever. The idea is no longer protected by patent, so you can now make your own, clean-room implementation of the idea without violating the patent.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
The copyright doesn't expire after 20 years, so you cannot copy the code. You can re-write it, though. As long as you have never seen the original.
Note that nothing makes you safe from patent troll attacks, but using 20-year old code is as close as you will ever get. Mind you, someone will probably claim that combining two obvious techniques covered in Knuth, written in expired patents, in the same software, is covered by their patent issued last year. Even if you just copied an example from K&R.
Prediction for end of Universe #42: Fencepost error in Quantum_bogosort.cpp
Even if the patent has expired, the code is presumably covered by copyright (which has a much longer term than a patent). You can use the underlying method described in the patent, but you'll have to write your own code implementing that methodology.
Patents cover ideas, not implementations. Rewriting the code with the same idea still violates the patent. Rewriting would allow you (maybe, depending on how you rewrite) to avoid a copyright violation claim. But for patents, you are busted no matter what you do if you use the same idea/mechanism as the patent holder. Again, they have power over the invention's premise, not its specific implementation.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
Its expired but its actually a bit more complicated than that to determine the length of a patent. First, you have to check whether this was filed before or after June 8th, 1995 which is when the US adopted the so-called "twenty year" term. If it was filed before that date, it was 20 years from the date of filing, or 17 years from the date of grant. The 4935877 ("'877") patent for example falls in this category. Therefore, we can tell right away that its already guaranteed to be expired. If its after that date, its 20 years from the date of the earliest non-provisional application that it claims priority to. (divisionals, continuations, continuation-in-parts all count for this). Second, you need to adjust for a terminal disclaimer (the patent will die at the same time of an earlier one to ensure there's no double patenting - fairly rare to see this), or term extension (days added to the twenty-year term due to delays at the USPTO - fairly common to see a year to two added). Third, you need to check to see if the maintenance fee's have been paid at 4, 8 and 12 years after the date of issue. If they haven't been paid - it dies. That said, if its less than 5,000,000 it has to be expired by now.
Now as to whether you can use the code in the patent? It's probably safer to use the code in the expired patent than go for a variation that still may fall under a valid patent somewhere else. The point of the patent system is to disclose your invention to the public in return for your term of exclusivity. Once its expired, the public gets to enjoy the benefits.
also patents != copyrights
It's public domain now, so go ahead and use it.
There is no copyright issue because the inventors did not reserve their copyright. If they had, there would be a notice at the beginning of the description. This patent is expired. While new patents get 20 years from their filing date, this one would have received 17 years from its issue date. That means that this patent expired in 2007.
The nice benefit of using this patented method is that no one has a realistic chance of suing you. No one else can reasonable assert that their patent is valid if you show them this patent.
OK .. seriously RTFL .. it says explicitly right there under what circumstances you can use the code. Did you read it? Did you attempt to contact the Author? Do you need your nose wiped by the /. crowd as well?
I am Slashdot. Are you Slashdot as well?
Since it was published in 1992, the easiest way to be competely sure it's clean is wait till 2002 (and figure out what month) -- at that point, any extant patents either does not cover it or is perforce invalidated by the code itself as prior art.
If you want to start now, though, just search for Koza's other patents from that time period (August 1, 1991 through the publication date in 1992) and see if any of them seem to cover it.
Rewriting can avoid copyright (if done correctly, such that you're not just non-literally copying it to make a derivative work) -- it doesn't help at all with patents. In fact, rewriting it may cause you to inadvertently violate other patents, and costs you the 100% bulletproof defense that your code is older than the 20 year patent term, though it's still pretty safe.
The code is copyrighted, it doesn't pass into the public domain until Congress stops extending copyright terms, so forever+1 day seems about right. If you can't use it under the proffered academic-only non-profit license, you'll need to rewrite to get around that. Which should be no end of fun if the author's inclined to get litigious -- you'll want to keep signed journals of your reverse-engineering work to reach a purely functional (thus non-copyrighted) description, and preferably another coder who hasn't seen the original to do the reimplementation.
Verify that a patent was filed, then check with a lawyer. The lawyer should be able to tell you:
a) if the patent has actually expired
b) how to reproduce the library as closely as possible to the patent's description without being sued over copyright (over the original library)
If it has expired and you can reproduce the library without violating copyrights, that patent should be a good defence if someone claims that you violated their patents (on that portion of your code).
That's also why you were supposed to put your patent # on your useful invention, so that other people could know how to look it up.
Really? I honestly thought is was a "don't copy this or I'll sue your ass off for infringement" warning; like the "Patent Pending" folks like to put on their stuff.
Patents applied for (or claiming continuity) before 8 June 1995 have a term of either 17 years from date of issue or 20 years from the filing date (or the earliest filing date in the continuity chain), whichever is longer. On or after that date, the term expires 20 years from the filing date (or the earliest filing date in the continuity chain). This is modified by any patent term adjustment printed on the face of the patent, which results from some kinds of delays during examination caused by the USPTO. If the applicant filed a terminal disclaimer in the patent, then they have disclaimed additional patent term beyond the expiration of some other patent because of "double patenting" issues. Additionally, the patentee must pay maintenance fees at 3.5, 7.5, and 11.5 years after the date of issue to avoid abandonment of the patent.
And that's not even all of the potential caveats related to patent term expiration.
In this case, of course, the patent in question expired a few years ago at least. A clean room implementation of that patent (to avoid copyright issues) will have no patent hassles arising from that particular patent. There could be other patents covering related techniques or improvements on that same technique that are still in force, although the risks associated with that are similar to the risks faced by anyone writing code these days.
The 20 years is not hard-and-fast. For one thing, it used to be 17 years from issue, and I believe in 1990 they used the old calculation method. Now it is 20 years from filing. The 20 years is very often extended using a complex equation that comes out different if you look at it funny. So get a patent attorney to confirm that it's expired, and that there are no other patents that you might be infringing (where there is one...).
...may mean you are screwed.
"This post is an artistic work of fiction and falsehood. Only a fool would take anything posted here as fact."
Write to the guy and ask for his terms for licensing the library. If it's not too expensive, well and good.
If it's not worth it for your product, you know what to avoid in your own code.
That's not just any code you found there. And it's protected by more than one (maybe, probably not) expired patent:
United States patents 4,935,877 5,136,686, and 5,148,513, foreign counterparts, and other patents pending.
That's code written by a University of London Computer Science professor, and he didn't pay for those patents out of his university salary. UCL paid for them. I would imagine those patents are quite intact, as large research universities don't often let go of IP like this. Especially genetics code in the age of Big Pharma.
You won'y have to worry about a troll. You'll get the scientist and the university that hold these patents. Good luck! You're gonna need it!
Given that the patent has expired, and the state of software licenses on sample implementations have moved on a lot since the 90's ask the author. Just write him an email or snail mail asking if he'd be willing to license it under a more modern license. Modified BSD, LGPL, GPL or Creative Commons etc which would protect him and you. You'd be surprised how often that works, mainly because most authors hate to see a bit of code go to waste and it's nice to know something you wrote so long ago can be of use.
Before seeking questionable guidance from slashdot, why didn't you address your question to Mr. Koza. John Koza is a naturally intelligent and good-natured gentleman. I have no doubt that he would respond to your query. He is the type of person that would probably be willing to suggest additional GP software that you might want to explore.
Before getting your panties in a knot, please, drop a note to Dr, Koza.
Assuming you can prove the code is 20 years old either patents used in the code have expired or later patents are invalid due to prior art that would hard to ignore.
Unless the code modified to include new patents he should be safe?
Paying for a lawyer to tell you he can't actually help you, not wise.
You'd think computer programmers wouldn't be quite so stupid. I'm researching building codes for secondary suites today, as someone I know is looking at purchasing a nearby property. There's the official act, which is buried behind a paywall. There are also unreliable secondary sources, which I can click through immediately. Should I even bother?
Here's the thing. Willing to take on the risk if:
plumbing + electrical conversion < $refit_budget
Either *alone* (you've heard of short circuit evaluation) could render the decision negative. Each might have a fee required to obtain authoritative information. Money is saved by accessing *first* the official code with the greatest chance of rendering a negative decision (suitably weighted by the fee required).
Now how am I supposed to weight the odds without asking complete idiots? The authoritative sources are stuck behind the fee I'm trying to minimize.
Rely upon is so "Wikipedia will never work" it makes me puke. There's a lot of potential for prudent cost minimization long before you have to pay the fucking lawyers their extortionate fees. Excellent lawyers that don't charge fees are as common on the ground as massless pulleys.
The whole point of social group-think is to retune the balance of power until you're pretty sure you aren't paying a lawyer his hostage fee for a hostage he doesn't actually have.
I don't mind paying lawyers for services rendered. A proper title search is real work. I do mind paying lawyers for making me feel like chicken shit. I live every waking hour of my professional life navigating rule based systems, but somehow the building code surpasses my intellectual powers of first appraisal?
Primo Levi once wrote a book titled, "If not now, when." If the technologists of the world are not willing to stand up and say "your rule based system is full of shit" then what?
After self-driving cars become routine, textual analysis of laws and bylaws is in the gun sights. There are already TED talks setting up traffic cones for the battle to come:
Four ways to fix a broken legal system
No shit, Sherlock. And that's just the first one I found. Adding a strikethrough attribute to "get a lawyer" as sage advice concerning matters of everyday practicality would make a decent life mission. Don't get me wrong: conflict happens. With the potential for real conflict, you most definitely want to talk to professionals, and the fees won't be trivial. But no-one asks any more "Is there potential for real conflict?" What we ask is "Would you rather feel chicken-shit wise or self-assured stupid?" Who wants to live in a world like that?
No, the point was to get inventors to publish how things work. In exchange they were given exclusive rights for a number of years. This is the first I've ever heard of the unfortunate wording you chose (get ideas of things to license). The point was to spread know-how. The sacrifice was limited exclusivity.
First of all, there are so many overlapping idea patents that it almost certainly has contemporaries. The adaptation of the patent system to cover "processes" has lead us to a quagmire that a corrupt government (such as ours) is paralyzed to strike down. The only way we will see an end to the idea of idea ownership is when it hurts the big dogs. Then.... things will change. I see it starting to crumble now, let's hope this oppressive, startup crushing culture of "more IP better" comes to an abrupt halt soon.
I would think that asking a patent lawyer would be the only thing to do. Any advice here is just that, advice.
Jack of all trades,master of none
>Is there any way for me to be sure that using this code is safe from any patent troll attacks if I choose to use it?
Short answer: No Long answer: There are duplicate patents of everything out there. This was explained in the This American Life episode 441. http://www.thisamericanlife.org/radio-archives/episode/441/when-patents-attack
If you look up the patents they're referring to, one is a continuation of the other. They're not duplicates - an inventor is allowed to file a patent application, and then later file a continuation application claiming priority to the first. The first one is not "prior" art for the second one, because they have the same effective filing date.
This American Life simply got it wrong.
Solution:
Stop looking at patents, you idiot. Actively looking at patents and then violating someone's patent means that you "knew or should have known" of the other patent, infringed on it deliberately, and are now liable for triple damages. This is in contrast to "incidental" infringement of someone's patent.
This is also not correct. The author looked at a patent and reasonably believes it has expired. Accordingly, the author has a reasonable belief that the claimed subject matter is no longer subject to an active patent. Thus, performing the patented method would not knowingly be infringing a valid patent.
Disclaimer: I'm not your lawyer, this is not legal advice, and should not be relied on.
Further disclaimer: You're not a lawyer either, BMO, and so you shouldn't be giving incorrect legal advice without a disclaimer.
Did you warn them???
Looking at the original code is and developing ANYTHING, including a set of requirements/specs means that your implementation is no longer a clean room.
To be clean room you have to start from ZERO, using nothing but published specs ... not specs and/or requires written by somebody looking at the original source covered by a patent and non-public-domain copyright.
I'm sure someone has refiled by appending "using the Internet" to the original claims.
Have gnu, will travel.
Chrome on Linux can't open a text file that happens to have a .Lisp extension?
The "won't open in Chrome on Linux, YMMV" reminds me of the old "Best viewed in Netscape" you used to see on Geocities sites etc.
Longtime reader, first-time poster here.
Even if the specific patent you're talking about has expired (which it may not have, because the patent term depends on when and where it was issued, and it may have been renewed, as others have mentioned)...The facts of the matter are:
(1) Things that are ridiculously broad, obvious, and already-been-done are quite regularly patented in our industry.
(2) Something that is broad, obvious, and/or already-been-done should, legally speaking, not be issued a patent in the first place, and if it somehow gets one, a court should be able to overturn it.
(3) The patent office is so overworked that they don't check those things and a lot of patents that shouldn't be issued, get issued, particularly software patents.
(4) It's ridiculously time-consuming, expensive, and uncertain to hire lawyers and fight in court to get a patent invalidated or show your code doesn't infringe.
(5) As others have noted, even though it seems to be morally right to actually read all the possibly relevant patents and carefully code around them, if you make a mistake and accidentally put something in that's covered, or you think that something's not covered and a court later finds that it is, you get hit with triple damages. This is one of those situations where the legal system will actually punish you for going out of your way to do what most of us would think is morally right -- which IMHO indicates a badly broken legal framework.
Here are the common strategies for dealing with it:
A. Write your code and pray that it doesn't become high-profile enough to make a lawsuit profitable enough for a patent troll looking for cash or strategic enough for an unscrupulous company to target you as a potential competitor. :) :( :)
B. Write your code and pray that you or your employer has deep enough pockets to pay your lawyers to fight and the troll if you lose.
C. Write your code and pray that all the trolls are sensible enough not to "kill the goose that lays the golden eggs." That is, hope the trolls ignore it if it's unprofitable and otherwise, work out some sort of profit-splitting arrangement (alternate spelling: "protection racket") with you if it turns out to be worth something. Of course, you'll need a separate racket with each troll that decides to threaten to sue you.
D. Write your code and buy a bunch of other peoples' broad, obvious, already-been-done patents. If you're sued by someone for violating their patents, countersue them for violating your patents. Pray that trolls are rational enough to realize it's a situation of mutually assured destruction, or pray that your legal warchest is larger than all the trolls' combined, so you have the advantage if things go to court. This strategy is quite popular with the Googles and Microsofts of the world.
E. Write your code and lose your job when your company is sued into bankruptcy, or your house and kids' college funds if it's something you wrote on your own time.
F. Write your code and hide a bunch of suitcases full of Benjamin Franklins and/or gold bars by digging holes deep in the woods in a nearby state park, next to where your friendly local serial killer buried all the bodies. When you're sued and lose your house, dig it up and pray you don't go to jail for hiding assets from the courts, or because the cops get confused and think the bodies belong to you
G. Don't write your code. If you're a professional code monkey, this implies a career change
H. Since the situation generally favors patent trolls and patent lawyers, maybe those are financially lucrative, if morally questionable, directions for your career change
I. Write your President and Congress, and pray that sanity rears its ugly head in Washington, DC -- a rare sight indeed, at least in this twenty-something's lifetime, regardless of which party seems to be in control of things at the moment. Patents are Constitutionally a federal matter
J. Move somewh
Looking at the original code is and developing ANYTHING, including a set of requirements/specs means that your implementation is no longer a clean room.
You're wrong. http://en.wikipedia.org/wiki/Sony_Computer_Entertainment,_Inc._v._Connectix_Corporation
In some cases, it can be justified to use original code in the process of reverse engineering. This is particularly the case if the original code is the only available reference to the actual behaviour you need to implement.
it's an old CL source being used again.. and here you are talking patents?!
Rewrite it in Perl, if they can't read it they can't prove you copied it.
If the original is in Perl, your defense would be that you can't have copied it, since you couldn't read it...
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Read the first paragraph of the license. It's covered by three patents, two of which are still in effect because they were granted in 1992. You have until September 2012 before they expire, assuming no continuations have been granted, and there is still the matter of copyright.
I work with genetic algorithms and genetic programming (GP), which is what the code in question is used for. John Koza once used the GP code to evolve a circuit that designed around an existing Wi-Fi patent. http://ipbiz.blogspot.com/2007/10/evolutionary-approach-to-design-around.html. I find it ironic that the current question is how to write code that designs around the original GP code. Technically you could use the GP code to evolve code that didn't infringe on the copyright or patent of the GP code.
Just a clarification. John Koza wrote the possibly expired patent code. Their also seems to be a lot of interest in patents recently as witnessed in this Economist article and story on Planet Money. http://www.economist.com/blogs/democracyinamerica/2011/08/intellectual-property?fsrc=scn/tw/te/bl/patentsagainstprosperity
Just move to Canada and stop worrying about software patents.
It's very nice here. As long as I start from scratch (and check licenses on things I do copy/use) I can sleep soundly at night knowing nobody can suddenly go "AHA, you re-implemented something I created 10 years ago, but silently patented without ever using!"
Even more interesting, if there have been revisions to the code following the patent expiration, the owner would be responsible to remove the patent references for any expired patents, or anyone could sue them for "false marking."
http://www.terralex.org/publication/pca1092ea98/developments-in-us-law-“false-patent-marking”-under-35-u-s-c--292
Comment removed based on user account deletion
You have to be concerned with both patent and copyright. The patent will protect the functionality and structure - and may not be expired. Although 20 years has passed, patents can benefit from term extensions due to delays in processing at the USPTO. These term extensions can last for years, depending on the length of delay. Also, be aware that if in the public domain, the public has the right to use the inventions claimed by the patent (or disclosed but not claimed) - and EXACTLY those inventions. Improvements, feature additions, or other enhancements may be covered by another patent. This means that you can independently write code that would be covered by the patent if it was still in force.
As for the *code* that is protected by copyright. In the US, code authored by a company has a copyright of 95 years after publication. Code written by an individual probably has a copyright term of the duration of the life of the author plus 70 years after the author's death. You may not be able to copy the code without a license.
The intersection between patents and copyrights can be a tricky one for software. You should consult an experienced software IP attorney who represents you to get advice.
Laws affecting technology will always be bad until enough techies become lawyers.
... and if a patent troll appears threatening you with a "patent" ridiculously broad and obvious, shoot him in the head. twice.
Religion: The greatest weapon of mass destruction of all time
Anything described in an expired patent may be exactly copied and produced. There is legal precedent in the case of sowing machines. Alle referenced patents will also have expired so any use of their inventive ideas is also protected. If you run into trouble it will be either with a bogus repatenting, or with other aspects of your code.
Patents where meant (originally) to allow the inventor to earn back his investment of time and labour, It's a a temporary monopoly. When it expires the invention is in the publc domain.
I patents wheren't tradable this would be a much much better world.
Posts like this are risky. If you have a "paper" trail that you are writing code that may infringe on patents, then if there was ever patent litigation against you, they could take this article as proof that you knowingly infringed on their patent. If you knowingly infringe, then the damages are tripled.
If you're an engineer, and you're looking up patents to make sure that you steer clear of patent trouble, don't leave any trace that could be subpoena. Don't email, don't post to Slashdot, etc. Talk on the phone to a lawyer, or speak in person.
That's why a lot of tech companies actually block patent websites for their engineering staff.
the link works for me with xubuntu maverick and firefox 3.6.18
The only way to protect yourself from patent trolls is to not implement your idea, you can thank President George Washington for signing patenting into law. But back then it wasn't common for a large multitude of companies to come out with very similar products around the same time. Because it was not common for many companies to develop the same product at the same time we developed a system to protect the lone inventor just in case someone other than the inventor developed a similar product which could prevent the inventor from profiting from the idea. The problem is that in a capitalist economy where competition creates fair markets a patent system prevents competition because it is meant to allow one individual or company ownership over an idea for a period of time (20 years in the US). And in our technological age where new technologies come out almost everyday any period of time to protect the inventor prevents the competitors of the inventor from making any profits on the invention or that is what the system is intended to do.
The only way for competition to exist is for competitors to disregard the inventors patents and just sell the invention outright. One way to help protect you from major losses if you are sued by the inventor is to have a portfolio of patents that you can also use against the person suing you. By doing this the inventor may win a lawsuit for $300,000 for the one patent but if you sue them back for the same amount and you win you suit than neither person gains or losses (except for the lawyers). The only other way to prevent yourself from being sued if you implement a patented idea is to stay under the radar and make sure you don't make enough money to become a target. If you only make a few thousand dollars by implementing the idea and the competitor makes millions they probably will not sue you because it would cost more for them to sue you than how much they would make from you.
The only way you can protect yourself from patent suits if you decide to implement the idea is to get the government to get rid of at least software patents but even better would be to get rid of the whole patent system all together. The problem with our patent system is that it has not evolved with the changing times and we are still trying to protect the lone inventor even though similar inventions these days are being created simultaneously, and the patent office has such a backlog of patents to look at that many invalid patents get through the system and become full patents.