I'm looking for experienced comments. Not peanuts from the gallery. Please comment with true experience, not gut feel or lack of common sense. Actually I put away the idea long ago but the patent director initiated the meeting. I am in Alexandria VA staying at an associates condo around the corner from USPTO. I'm going to listen to what an expert has to say rather than some wannabe on the web dishing out their limited common sense.
Aww, did I hurt your feelings. Hey, you need to put yourself on ignore and do everyone a favor, including yourself. hahaha
If you did receive a patent (it may be possible, there are weirder things patented), how would it benefit you? Having a patent doesn't automatically force people to adhere, you must actively defend it. You have to prove that someone is infringing in order for the courts to order them to pay you. Or blow enough smoke to get them to pay you (like TT did to Ninja over the DOM order ladder). Do you have a plan in place for this defense? If not, it seems counter-productive to reveal the details of the algo in order to receive a patent.
I want to start by saying that I am by no means a patent expert, but in a previous job I worked on developing technology patents. I was the technical person, I worked with the CEO who was non-technical, and the patent attorneys to write the patents. To ensure they met certain criteria to increase odds of approval and so forth, so while I'm far from an expert, I do have some experience in writing patents that have actually been approved. Logically one would assume that an algorithm can't be patented, but to anyone that thinks the USPTO doesn't allow this, you should read about software patents. One of the patents I got approved was something I think was absolutely ridiculous from a developer perspective. It was a rather logical extension of existing technology that if you wanted to do what we did, that the way we did it was the most logical route. As such, it was what I would consider trivial and while we didn't patent the source code itself, we patented the algorithm from a flow chart level (which then means it applies to the implementation in any language). My point to all of this is as follows: I am fully aware of how silly it sounds to a programmer to be able to patent an algorithm, but it can and does happen. A patent isn't generally like: I hereby patent the following algorithm in C: float calculateimpliedvolatility(struct mktdata *md) { // some code here } What they do is write claims based on some abstraction such that any algorithm that follows that form, written in any language, is in violation of that patent. So a patent on a trading system would likely contain language similar to the follow (this is how we wrote our patents that were ultimately approved, so I'm just kind of going by memory here, but these were key items the lawyers instructed me on): A system or collection of systems comprised of a hardware or software component or combination thereof in which input data including, but not limited to data related to pricing data, quotes, trade, intent to trade, sizes, pricing, timing and other data related to the price of equities, options, futures contracts, physical items, indexes, options on indexes, futures of indexes, options on futures of indexes, weather, economic data, news events, for the purpose of processing said data through any means including, but not limited to software implementations, hardware based computing devices, systems, abstractions, or any combination thereof, for the purpose of generating signals related to, but not limited to, blah blah blah you get the picture. The patent is written in a generic form and you write claims regarding the abstraction of that concept. Having said all of that, what is your goal in patenting? Once you patent something, that patent is public, so either your patent is vague, in which it won't hold up in court if challenged (assuming it's approved and there's lots of patents that get approved that are so simple and obvious that they shouldn't be approved) or your patent is specific enough that someone can just steal your idea and profit from it without you ever knowing. So what do you hope to gain by patenting your algorithm? Generally people patent to 1) prohibit competitors from using their idea or 2) to license their idea. If your goal is 1) how do you know your competitors (which is every market participant in the world, including every person on this very forum) is using your idea? Once you patent it, the patent is public and we can all see your algorithm, so in this sense, if the goal is prohibiting your competitors from using it, well I'm just not sure how that would be enforced and a patent that isn't enforced does not satisfy this goal. If your goal is 2) then it's all about marketing, but lets say you inform some firm of your algorithm and they say they don't want to license it because they have something better, blah blah. OK so, how do you know that they're not actually using their idea? These companies aren't exactly distributing software on the market place for people to buy and reverse engineer to see if they're violating your patent. Granted there may be some firms that are on the up and up and would actually pay your license fee, but just consider the implications. For these reasons, there are many cases where companies opt to not patent something and instead consider it a trade secret. So what benefit do you get by patenting vs just keeping it a secret? Well, it allows, in theory, you to show your algorithm to someone, for them to independently verify it, and for you to have legal recourse if they steal it whereas if you didn't patent it, you wouldn't, right? Well, you could have them sign a contract before showing them the algorithm that says they won't use it without paying you a licensing fee and they won't disclose it to anyone not covered by that agreement, but we still fall in to the case of 2 above. How do you know if they're using it without paying your license fee and therefore how do you enforce your patent? Patents aren't enforced by government agencies like laws are. Enforcement of the patent is up to the patent holder -- they must, at their own cost, identify infringements and bring suit on their own, at their own expense. Granted if you win, the defendant will likely be forced to pay your legal fees, but how do you really know, and how do you prove, that your patent is being violated? This gets in to the realm of patent trolling and that can be profitable. Many companies just bring frivolous patent suits and hope the defendants just settle because it can be cheaper to settle (even if they're not violating the patent) than to defend themselves in court (and defending themselves may require disclosing information to the court that they'd rather not have disclosed). Anyway just trying to get you to logically consider the implications of getting a patent based on what your goals are and what benefit you'll actually derive from getting a patent approved as well as the risks associated (ie you effectively publish your algorithm). Up to you to determine what makes sense to you.
Thanks! Very helpful. I've shelved the patent idea long ago but I'm here in Alexandria VA and i'm having drinks with some USPTO people tonight, where I use too work. Now i remember why I shelved the patent idea...
It's not viable to patent an algo because patenting requires exposing it to the market so the market is aware of what it might or might not be breaching. Once it's exposed to the market there is no way of monitoring a potential breach, almost anyone could use it without detection defeating the whole purpose of patenting it in the first place.
Thanks, I will mention that during the meeting. However, I am programming the algo and the patent may protect intellectual property. When marketing the end product, having a patent in place may help in the long run.