Hacker News new | ask | show | jobs
by astrodust 4435 days ago
I'd submit that "obviousness" relates not to the general concept of the solution, but to the implementation of it, something that's absent from virtually every software patent out there. The hindsight bias is an important factor, but only at a very abstract level.

For example, RSA encryption is conceptually simple and fairly obvious (prime factors of large numbers, of course!), but the implementation is exceedingly tricky. Patenting RSA does not preclude people from patenting other encryption methods, but it would if the patent covered "prime factor-based encryption".

It would be a lot better if a patent application was rejected until a workable implementation was described, one that included enough detail to verify that it was a viable solution to the problem. No code, no patent.

For example, if the patent being reviewed here included a specific way of encoding the date and time with the photograph to facilitate some kind of easy sorting, then patenting that specific, non-obvious (e.g. proprietary) method wouldn't be so disruptive.

1 comments

I see general concept and specific implementation as being on a spectrum. If an invention is sufficiently novel/nonobvious, I believe the inventor is entitled to a patent on the general concept. However, if the invention is an incremental advance, or in a crowded field, the inventor should only be entitled to a patent on the narrower invention that is actually new, and usually this is going to be a specific implementation.

This is not to say that a patent application should not describe the invention in detail. The law requires that the patent application describe the invention in sufficient detail that one of skill in the art would be able to practice/implement the invention without "undue experimentation." This feels like the right standard to me. I believe that a software patent application that provides a functional description of the invention, even without code showing a specific implementation, that would allow a skilled programmer to implement the invention, should suffice. Whether that invention is novel/nonobvious is a separate question. The broad idea may or may not be. A narrow aspect of the idea may or may not be. You don't need actual code to figure this out.