I work as a software developer in industry, but I like to read various academic papers to get exposure to ideas that may benefit my work. I may not apply exactly the technique described in a single paper, but my work is certainly influenced by the ideas I've encountered. My question, though, is what is the proper way to provide attribution for the papers that have influenced my work?

If the product of my work were an academic paper, the rules would be quite clear, but here I'm making a product that is ultimately my employer's IP, for which the implementation details may even be considered trade secrets. I'm struggling to find the proper ethical reconciliation between my professional obligations and the spirit of academia that favors free dissemination of knowledge in the hope that it encourages more of the same in return. I don't want to steal anyone's work, but neither do I want to shut myself off from valuable lines of thought.


You don't need to do anything. Academic journals are published for the betterment of mankind. If you acquired said articles legally, then you are entitled to use their contents within your corporation as you see fit as long as you do not directly copy and distribute text or software code that is under copyright without a license. If you reimplement an algorithm described in a paper, you are fine. The only problem may come if you try to implement something covered under a patent (like the RSA patent), but these kinds of things are not typically published in journals these days.

There are more reasons that academic publish than encouraging more published work. When I publish, I hope that my ideas are used by any and all to fulfill their own goals. When I want specific kinds of returns on my work, I will choose other avenues of dissemination than publishing in conferences and journals.

There's no ethical issue here, in my opinion.

  • 2
    Just to add to this answer: if you are concerned about your employer overzealously protecting it's IP by unknowingly going after either the authors of the paper or someone else who has used the information, it might be a good idea to put the citation info as comments in the code. That way, anyone who looks at the code can see that the algorithm (for instance) is not their IP or trade secret, even if the code implementing it is. It might prevent misunderstandings later on. May 1 '15 at 3:18
  • 1
    I agree that most algorithms in papers aren't patented, but this is still a real risk, especially for attention-getting algorithms, and you can't tell without a patent search. E.g., seam carving was patented. So I'd disagree that "these kinds of things are not typically published in journals these days". May 1 '15 at 3:47
  • @AnonymousMathematician, I was speaking in informal statistical terms. By "typical" I meant that most are not patented. Do you think that the average algorithm in a paper has been patented?
    – Bill Barth
    May 1 '15 at 11:50
  • Nope, I agree with you. I think it was "these days" that threw me off; my interpretation was that patents used to be an issue worth worrying about but weren't as much nowadays. May 1 '15 at 13:17
  • @AnonymousMathematician, oh, I meant it in the sense that people made a huge deal about the RSA patent, and that we haven't heard much complaining about other software/algorithm patents coming out of published academic work since. There's certainly plenty of noise off and on about software patents generally, though.
    – Bill Barth
    May 1 '15 at 13:29

Using published work is not stealing it, so rest easy on that score. This is particularly the case with algorithms, which in theory cannot be patented though the practice is a bit muddier. You are also not bound by the formal stricture of citation, because you are not writing a scientific paper.

As a practical matter, however, you should provide citations. The reason you should provide citations is because an idea obtained from a scientific paper generally has some subtlety to it, and somebody going over the code needs to know that there's some precise reasons that it's set up in the way that it is---whether that's a co-worker who's never read the paper, or you in six months when you've forgotten its details.

So put citation-style references in the comments relevant to the code. For example, if it's an algorithm, put it in the class file that implements the algorithm; if it's an architectural idea, put it in the README that describes the architecture choices you have made. Give the next programmer a trail back to the source of the ideas so that they are less likely to accidentally break everything by "improving" something to violate a subtlety of the work that is being applied.

  • This is very good coding practice and should be done whether one draws the algorithm from a recent paper or Knuth or anywhere else.
    – Bill Barth
    May 1 '15 at 13:35
  • Thanks for the practical suggestion; I do try to follow this for things like algorithms taken from books or code used under permissive license from places like CodeProject or StackOverflow, so it makes sense to extend this to research papers. My uncertainty was due to the fact that a research paper represents a much greater investment of effort than an article or answer on a Q&A site. It's encouraging, though, to hear from academics that they actually welcome their work being put to use. Perhaps my surprise reflects too much time in an environment where everything has a profit motive.
    – Dan Bryant
    May 1 '15 at 17:44
  • @DanBryant In fact, getting used by commercial companies is generally great for academics, since that evidences "broader impact" and "technology transition" and things of that sort that they get rated on by funding agencies.
    – jakebeal
    May 1 '15 at 17:57

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.