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.
>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
Yes, daedae has it right except for a few omissions. A patent that issued in 1990 would indeed be expired today, so you don't have to worry about that patent. However, there may be later patents, perhaps even a submarine patent, lurking in wait for you. Furthermore, you are never safe from patent trolls.
Copyright is probably your biggest issue though. Simply rewriting the code doesn't always work unless you take some type of positive step to ensure that the new code is "clean". For example, do not just go through the old code changing variable names and cleaning things up here and there. The folks that do clean implementations 'for real' will actually hire programmers and give them specifications but absolutely no code or psuedo-code. A little more googling may turn up another implementation. Genetic algorithms and programs were all over the place 20 years ago.
I am a lawyer, but not yours. Anything I tell you might be a total lie intended to benefit my clients at your expense.
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.