I define a backend algorithm as a set of rules and steps hidden inside of a black box that outputs something.

Everybody can see the output, but nobody knows how the output is generated.

The how is the algorithm.

For example, an algorithm to rank web pages. Nobody can know exactly how the pages are ranked. They only see the output, which is a set of ranked pages.

Can this algorithm be patented? Is there any reason to patent this algorithm, since nobody will know hows its done anyways?

2 Answers 2


You also embedded a second question:

Is there any reason to patent this algorithm, since nobody will know hows its done anyways?

If the code is truly not reverse engineerable, then there is not much reason to patent. For one thing, patents are expensive and time consuming to obtain. In addition, they are territorial which means you might want one for each country your website serves.

The other option is keeping the algorithm (and code) as a trade secret. This is a viable intellectual property strategy. You have to take reasonable steps to keep something a trade secret but those are off topic for this site. However is someone manages to reproduce your algorithm without actually stealing it, you are out of luck.


Yes - a process that is not externally visible can be patented. Most manufacturing process are not externally visible. While a patent must show how to use the invention, a later, optimized, implementation of the process can also be trade secret even if the basic steps are patented.

Page rank is patented US 6285999. The wording in claim 1 includes "adjusting the score of each of the one or more linking documents based on the identified weighting factor". An equation is even given.

In the U.S. a patent needs to be enabling and needs to explain the "best method" of executing it known to the applicant at the time of filing but it does not need to be optimized and production-ready. Improvements like later tuning of tunable parameters can be kept as a trade secret.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .