4

I have recently ran into a research paper which explains a technique of image-processing. Now, the paper just explains the process and is not based on any specific coding-language, but we can say that explains the algorithm used for that image-processing technique.

The paper was not published under any specific license, or it is not specifically mentioned. So, I do not know whether it is copyrighted and patented or not.

If I write a code based on that paper, can I publish it on GitHub or another website under any open-source license or am I legally barred from doing that?

I have looked at this question, but that does not answer mine.

3

Let me start by saying that the nice thing to do, is to inform the authors of the research paper that you're creating software that implements the technique they described. They might be very happy to see that their work was useful. You might even get help (or contributions) from them, especially if you release your code as open source.

Now for the legal part of my answer.

Disclaimer: I am not a lawyer. I am merely repeating what I have heard from lawyers, namely that the authors of the research paper can protect their work with copyright, trademarks and patents.

Copyright

Usually, authors get this right automatically, at the moment they put the first words (or the first lines of code) on paper (figuratively speaking: online publications also count).

Unless they've licensed their work to you (e.g. by releasing it under an open source or a creative commons license), you infringe this right if you make a literal copy of (parts of) their work. There's something called "fair use" which implies that you can take snippets of their work, e.g. to quote them literally, explicitly referring to the original work, but the line between infringement and fair use isn't clearly defined in the law. When there's discussion, you'll often see that a judge is involved to decide whether something was allowed under fair use or should be considered an infringement.

Does this apply to you? Probably not. You are reading their description of a mechanism and you are going to create new, original code without literary quoting parts of the research paper. That's not a copyright infringement.

Personally, I like to document my code. If I were you, I would love to add parts of the text of the research paper in the comment sections of my code so that people who want to contribute know the rationale that led to the implementation. However, I would always ask for permission from the authors before doing so.

Trademark

If the authors are creating a commercial product based on their research, they can trademark certain names.

I once bumped into this problem with RC4. The RC4 algorithm used to be a trade secret owned by RSA until it was (allegedly) published on a news group. From that moment on, everyone was allowed to write implementations of the algorithm. I used such an implementation in my open source project, and I created a constant named RC4_ENCRYPTION. This was not allowed because although the alleged RC4 algorithm can be used, it was illegal for me to use the name RC4 because that name is trademarked by RSA. I didn't infringe any copyright in my code, but I did infringe a trademark. I had to solve this problem by changing the name of the parameter into either ARC4_ENCRYPTION or ARCFOUR_ENCRYPTION where ARC4 stands for the "Alleged RC4" algorithm.

Does this apply to you? I don't think so. I didn't read the full paper, but at first sight, I didn't see any ™ or ® symbol in the text related to the mechanism they describe. I leave it up to you to read the paper more thoroughly, looking for those symbols.

FYI: you can put ™ behind any name you use in business, indicating that you intend to use that name in a commercial context. You can only put ® behind such a name if you effectively registered the trademark with the USPTO. Once you have registered a trademark, you have the obligation to defend it. If you don't defend it, you can lose your legal rights on the trademark.

Patents

Patents are the most tricky potential issue. You can't patent source code (it's already protected by copyright), but you can patent the mechanisms that are later expressed in source code.

For a mechanism to be patented, the mechanism needs to be new. If there is "prior art" that already describes the mechanism and that was available in the open, you won't be able to patent your invention. Suppose that the mechanism isn't patented yet, the publication of the paper makes it extremely hard to patent the mechanism in the future. If you would file a patent for the mechanism, a patent office will search for "prior art" and probably find this paper because it's available online.

Personal note: filing a patent, obtaining and maintaining it costs plenty of money. At the start of my career, I didn't have that kind of money, so I chose to protect my inventions by publishing my work as open source. By making the source code and the mechanisms I designed publicly availably, I protected myself against attempts by third parties to patent my inventions. I didn't want to end up in a situation where a big corporation with a big wallet would sue me for infringing a patent they filed on an invention I made. (Often, the "first to patent" has a better legal position than the "first to invent"; in any case: I wanted to avoid legal troubles and going open source was the best option for me at the time.)

Does this apply to you? I didn't see any reference to a patent in the paper—but I admit that I didn't fully read it. At the end of the paper, I noticed the following:

The work described in the paper is supported by a grant from the Research Grants Council of the Hong Kong Special Administrative Region (Project No. 413110).

Chances are that this grant implied that the work was created for the greater good, to advance science. Patenting the work would go against this philosophy, but you can't know for sure.

You should try finding out if the mechanism is patented before you start implementing it. That's the tricky part. I have written patents myself, and before writing them, I tried finding out on my own if what I had invented already existed. Being an engineer, I had a hard time searching existing patent databases, so I involved a lawyer to do this in my place.

That's why I started this answer by saying "inform the authors that you're creating software that implements their technique." While doing so, ask them if you can use their copyright to copy snippets of their text into your code, and also ask if there are any other issues that might prevent you from implementing the mechanism they documented.

4
  • There's a thing called "nominative fair use" where you can use a trademarked name to refer to same thing that the trademark owner uses it for, and it doesn't make you liable for trademark infringement. Your RC4 example seems very similar to that, and while I do see how there could be a legal difference, I think it may be too confusing to be a good example. Also, AFAIK the lack of the ™ or ® symbol doesn't mean that something is not a trademark, although it does allow for the infringer not to have known that the trademark was a trademark. – David Z Jun 13 at 1:10
  • In the case of RC4, RSA never admitted that the alleged RC4 was identical to the actual RC4 algorithm. Legally, it may not have been the same algorithm. The legal team that helped me review my code didn't want to take the risk. – Bruno Lowagie Jun 13 at 5:22
  • Using the ™ or ® symbol is indeed not mandatory. However, if you discover that someone infringes your trademark and you don't take action, you can lose your trademark right. – Bruno Lowagie Jun 13 at 5:25
  • Yeah, I figured that the ambiguity about whether it was or wasn't the same algorithm was why I said I do see how there could be a legal difference, but it's also why the example is confusing IMO. I think a better example would be one in which that ambiguity doesn't exist. – David Z Jun 13 at 5:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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