Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've written a recursive search algorithm to find the boundaries of a voxel data structure in order to render it more efficiently. I've looked around, and either it's such a simple and obvious technique that nobody's bothered to patent it, or it's novel and nobody's done it this way before.

It's openly "published" on GitHub and protected under the GPL. I'd like to show it to others, to see if it can be improved, however...

I fear that although I've written and published it, someone may attempt to patent the same idea.

Am I safe, protected by the banners of open source software, or must I attempt to protect myself like the big guns and patent trolls do?

It's my belief that software patents are evil, and that in order for the best software to be written, many eyes need to see it. I'm worried this may be a rather naïve viewpoint on how software is written, though, and I'm curious as to what others think.

share|improve this question
    
I just patented your question. Please remove it! Seriously though, what country are you in? You're better off talking to a lawyer. Read up on Prior Art. –  James Jan 16 '13 at 13:10
3  
James, I'm in the U.S., home of the Texas Eastern District Court. My question is prior art and you cannot patent it! –  CryptoQuick Jan 16 '13 at 13:14
4  
better fit for patents.SE –  ratchet freak Jan 16 '13 at 13:14
    
Theoretically, patenting algorithms could be a great defense in case someone like, oh I dunno, Microsoft, decides to stomp on any project of yours. They'd think twice about leveraging any absurd patents against you if you had some absurd patents of your own :) (e.g., I patented using "database software" on the iPhone, LOL!) –  Philip Jul 2 '13 at 1:15

5 Answers 5

up vote 19 down vote accepted

Disclaimer: I am not a lawyer. If you are concerned enough, seek professional legal advice.

Assuming we are dealing with US law, it would be very difficult for someone to patent it now because the code on GitHub would be prior art. However, someone may have already filed a patent before you first published the work to GitHub. Make sure you keep any notes, source code or similar material if it significantly predates the GitHub work.

I would not recommend looking for similar patents because they can be very difficult to read and, if you do find one and continue, your liability triples under US law.

However, I would recommend searching for similar implementations outside patents as there may be existing prior art elsewhere. As someone whose professional work used to include reviewing patent applications and looking for prior art, if you do not find anything similar, I would guess you are not searching in the right places or using the correct terms.

Also note that, even if someone else does patent it, they may not assert their right to prevent you using the invention. They would only do so if your use of the invention materially impacts their sales or otherwise made them more money than taking legal action against you.

As mentioned above, seek professional advice if it concerns you.

[Edit: Added the following.]

Also remember that the GitHub code is only prior art for that exact implementation. There may be variations, alternatives or improvements, for example, so keeping notes or a diary for potentially patentable work is critical.

share|improve this answer
    
That all sounds reasonable. I agree about the point about "not searching in the right places or using the correct terms." It's likely that I'm wrong, given how obvious the technique feels to me. In any regard, thanks for the advice. I don't necessarily feel any better, but at least I feel more informed on the matter. –  CryptoQuick Jan 16 '13 at 13:47
    
@akton - I'm not sure notes / a diary helps to establish prior art. Prior art has to be published in some form. –  Stephen C Jan 18 '13 at 14:13
    
@StephenC You are correct in that publishing it certainly makes it stronger. However, in the absence of anything published, anything which is dated or credible (like a trade secret) is better than nothing. Once again, I am not a lawyer so I am happy to stand corrected. –  akton Jan 18 '13 at 14:19
1  
@akton - Definition: Prior art is all information that has been disclosed to the public in any form about an invention before a given date. inventors.about.com/od/definations/g/prior_art.htm. Information that has not been disclosed to the public might be relevant for other purposes (e.g. in "first to invent" disputes) ... but it is NOT prior art. (IANAL either ... but I know how to google :-)) –  Stephen C Jan 19 '13 at 3:46
    
@StephenC Sorry. I should have been clearer. Yes, prior art must be published but, particularly if you are dealing with older patents covered under US's "first to invent" rather than "first to file" law, anything you have, published or otherwise, can be helpful in settling patent disputes. An important distinction I did not make clear. –  akton Jan 21 '13 at 0:56

Having read @akton's answer, it is important to recognize how software patents are playing out at the moment.

While it shouldn't happen, a lot of bad software-related patents get issued in the United States. Patents with overly broad or indefinite claims, patents that where there is clear prior art, and patents that are blatantly obvious. The problem is that the US Patent Office is not diligent enough, and the appeals court is too patent-holder friendly, and jury trials are a lottery because most jurors are technically clueless.

So how is this relevant to the Question?

Well the problem is that publishing your algorithm as source code on Github won't prevent someone from applying for a patent on it. It is then up to the patent examiner assigned to the application decide whether to grant the patent. The chances are that the examiner won't find your work for various reasons:

  • Searching for algorithms is hard.
  • Reading through reams of source code to try to understand an algorithm takes a lot of time.
  • Deciding that two algorithms are similar is hard, especially if one is couched in language that is designed to obfuscate rather than reveal.
  • Patent examiners don't have lots of time to spend on each patent.

So if the examiner then decides that the patent is sufficiently novel relative to the (other) prior art presented / found, and so on, the patent could get issued ... despite your prior art.

What can you do about this? Not a lot! However, it is still better if you do publish the algorithm, etc. Because if you don't, there won't be the evidence of prior art to help get the bad patent overturned.

share|improve this answer
    
I think it just changed, but the USPTO were only required to check their own filings for prior art, it was upto the courts to consider any other examples, hence the US drug company that patented Tumeric as a anti-sceptic –  Martin Beckett Jan 17 '13 at 19:03
    
@MartinBeckett - I still don't think the USPTO is required to check other sources, 'cos it doesn't really make sense. (What other sources are they required to check?) I think that the change might have been that they are allowed to check other sources ... or encouraged to ... or something. –  Stephen C Jan 17 '13 at 23:59
    
Good stuff, all around. I, too, feel it is best for me to have published this work. Source control helps provide earlier work which established my thought process. Besides, I think the benefits outweigh the risks. –  CryptoQuick Jan 18 '13 at 0:14

It's not as simple as people are making it out to be.

They would have a hard time patenting your code/ algorithm (even though technically these are not patentable, in fact, abstract methods are patented all the time through the device of using a certain phraseology which is little more than a canned incantation involving the words "in one embodiment...")

What they could and will do, which is just as destructive and limiting to you and your future freedoms, is patent every *single* obvious *continuation* of the stream of thought or idea you were developing.

So on day 1 you release your code and on day 2 they are busy patenting the most obvious applications of your code as a process patent and every single natural extension of your code - what would have been version 1.2 to you. So you still have your code, but it's been relegated to a progress-ghetto that it can't get out of.

If you think about it, this is all they do already. They don't own the basis of any technology per se (although it took numerous court decisions and hundreds of millions of tax payer dollars to tell them this) . What they do lay claim to and what American courts uphold on a regular basis is just the further extension or natural elaboration or application of other people's ideas.

There is nothing stopping them from including in this what would have otherwise been the natural course of development of your code.

There is no way to improve the quality of software patents because once you've permitted the patenting of ideas- which is all software patents are- there exists no natural line such patents can't cross with enough lawyering and weasel words.

The dog and pony show the USPTO is putting on now is just because the general public is aware that software patents are insane, thanks mostly to NPR's show about patent trolls and the insane patent wars between Apple and Samsung over smartphones and rounded rectangles and every other twit and twiddle of an idea.

The only result that is ever going to keep you free to code and create in the US without fearing the day you get served and sued for damages is complete ban on all software patents. Since lawyers run the US to a greater degree than any other country on earth and the USPTO's bread and water is the fees people pay to patent things, there is no motivation on the part of anyone in power to just shut up and ban software patents.

All this is relevant to your question. No, you cannot meaningfully reach a safe harbor for code, non-trivially defined to include your future releases, away from litigation and software patents. Yes, it would be hard to patent the exact thing you opened source, but that doesn't actually do you that much good. No, this is not going to change in the near future in the US because banning software patents is not even on the table.

Your best solution is to not release code into countries that permit and have a history of enforcing software patents. I also suggest you fight like heck against the forces that seek to extend software patents into countries that currently ban them.

You can make a good living selling into those countries which permit software to be written without fear of lawyer-based terrorism. Releasing software into the US is just asking for trouble until and unless the laws which permit software patents change.

Sorry if this sounds harsh, but you're better off knowing the truth and acting upon it than being guided by a hopeful delusion and then having a rude awakening one fine day.

I hope you and everyone reading this realize I am actually being a good friend by speaking frankly and without prejudice or distortion on this topic.

share|improve this answer

According to German patent law, an method can only be patented if it is new. That means, that it must not be publicly accessible before the patent was applied for. Normally making your algorithm available via GitHub is making it publicly available according to German patent law. However there are edge cases. However German patent law is very much restrictive than US patent law for example when it comes to patenting software.

Consulting a lawyer is a good idea.

share|improve this answer

In the US, anyone can patent any idea at any time that doesn't already have a patent attached to it. If someone patents your idea, the burden of proof is then on you to prove that the original idea was yours and yours alone and also that the person who registered the patent got that idea from your work.

In all cases like this, it ends up in a court of law. If you're truly worried about it, you should:

  1. Consult a patent attorney
  2. Remove your code from open source until you've resolved the issues your attorney brings up
  3. Document everything about your idea from the moment of inspiration to the work involved in bringing this idea to fruition.
share|improve this answer
    
I think removing my code from my open source repository would be a rather drastic thing to do, and I don't really want to get tangled up in this field, or spend much time thinking about it when I could be writing more code. I don't think I'll do that. –  CryptoQuick Jan 16 '13 at 13:45
    
@CryptoQuick: Keep in mind that I'm not a lawyer, and only you (and I guess potential patent idea thieves) know the true value of what you have out there. Removal doesn't mean taking it down completely, but perhaps purchasing an account so you can privatize this code and share it with much more selective choices. In the end, even a patent can't protect you if you don't have the resources to pay for the legal team necessary to track down a patent crook. –  Joel Etherton Jan 16 '13 at 13:47
    
This makes sense. I still want others to be able to look over my code, though. –  CryptoQuick Jan 16 '13 at 13:50
4  
-1 - Sorry but this is just plain wrong, and it contradicts the purpose of prior art searches. The OP should not take down the project. The burden of proof for originality is not upon the OP but rather the party filing for the patent. Your comments would be more appropriate if the OP was attempting to patent the work, but even then they still aren't correct. –  GlenH7 Jan 16 '13 at 14:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.