61

The papers I write contain all the source code required to reproduce results. I have written a series of papers that build on each other over the years. My intention has been to release an open-source libary that encapsulates all of this, but I have not yet done so.

Before releasing anything I was contacted by the employee of a large company. They have been using my techniques and have decided to release an open-source version of their library. Their library contains code almost exclusively from my papers, copied verbatim. They clearly acknowledge my work in the documentation of their library.

My question is whether I ought to ask to be an author of the library. While I didn't commit code to the particular repository of that library, I did write the original code in papers. I'm worried that I'm not getting credit due for the work I've done if I'm not listed as a developer. I don't want to upset the authors of the library because a large ecosystem now depends on what they have done.

  • 74
    Which license did you put your code under? This plays a major role whether they can behave as they do. However, asking them friendly to be listed as author does not hurt. – J-Kun Oct 31 '18 at 8:44
  • 4
    @SolarMike The wheel seems somewhat irrelevant, I was sticking with it because it fit within your example. Clearly it was not patented, because it pre-dates the patent system. Getting back to the OP, copyright probably applies to their code (albeit jurisdiction dependent) and the code is probably owned by their institute (jurisdiction/contract dependent). – user2768 Oct 31 '18 at 12:43
  • 37
    @SolarMike Yes, that's the important point. I think you're missing a crucial detail though: The OP authored code (in addition to creating a tool). Recall, "The papers I write contain..._source code_" and "[a large company has] decided to release an open-source version of their library [containing] code almost exclusively from my papers, copied verbatim." So, the OP implemented the code. The large company integrated the code into a library. The large company doesn't necessarily have the IP rights to use that code. – user2768 Oct 31 '18 at 13:15
  • 42
    Careful: Licensing is unrelated to authorship. You are the author of the code, regardless of which license you put it under. – Konrad Rudolph Oct 31 '18 at 16:13
  • 6
    @alephzero - Your use of "public domain" is a poorly-chosen phrase. The existence of pay-to-read academic journals and their efforts to block access via SciHub or other "non-subscriber" routes rather clearly demonstrates that copyright is retained on journal articles and journal publication does not place the published work into the public domain. – Dave Sherohman Nov 1 '18 at 13:36
98

In fact something great happened: Your research did have impact in the real world and seems to be useful - not everyone can say that!

When it comes to legal issues, things are usually complicated and will involve copyright issues (of yours and of the journal / publisher) as well as authorship issues. Those vary between countries and it will be difficult to give an advise without proper juristical background and line by line comparison of your publications and the library code.

But as I understood your question, you are more interested in the academic credit, and therefore I would suggest to contact the authors, tell them you are happy that your work is used by them, and offer to be part of the development team. You might add a phrase like it would be a pleasure to be listed as author of the library - an in most cases they will understand...

  • 4
    I would take your answer even further and suggest active collaboration on the project that could lead to being named as one of the authors. Following what people mentioned in the comments under original question, working through legal issues will be a nightmare and probably not worth the hassle. – Konrad Nov 2 '18 at 14:34
  • And I would take it further yet - if the work you've done has been useful to this company, it may be worth talking to them about employment or contracting for them.. – UKMonkey Nov 5 '18 at 11:04
41

Here's how I would view it:

I got to do all the fun work of research and discovery. Somebody else voluntarily did the not-fun work of wrapping this work up in a nice software package. They're even volunteering to maintain it, and they're properly giving me all the credit for inventing what they've implemented! So people can use what I created and I can keep focusing on research, rather than on details of software packaging, distribution, and maintenance.

All I would do is thank them and make sure that their documentation suggests that users cite your papers. I certainly wouldn't be in a hurry to get any lawyers or bureaucrats (e.g. from my university) involved.

This is subjective, but I think many academics would align with this view of things.

  • 18
    While I agree with your assessment that it should be viewed as a great thing that somebody wrapped up the OPs code in a library, the fact that they used the code snippets he published almost verbatim kindof makes me reluctant to just "thank them and let them go". It would be different if they've... re-implemented his approaches, I feel. I also agree on not escalating this to the level of lawyers, but I still feel that something could/should be done. – penelope Oct 31 '18 at 13:53
  • 38
    I contend: Somebody stole my code and re-branded it under their company name inside their library (with an acknowledgement buried inside the documentation), violating my rights and the rights of my employer. – user2768 Oct 31 '18 at 13:54
  • 2
    To the commenters: I agree that many people will feel differently! As I said, this is just how I would view it, not how you need to. – David Ketcheson Oct 31 '18 at 19:34
  • Mention (cite) their software in your next paper. It will help your audience, too. – usr1234567 Nov 3 '18 at 21:34
11

The first question is, how complex is the code in your paper? Trivial code may not be protected by copyright. This is somehow related to length, but length is NOT the most important criteria, when you invented something new which did not exist before.

And then the question is who owns the copyright of your paper. Often you transfer the copyright to the journal, so you cannot claim the copyright anyway. The journal may have licenced the paper by a CC-licence (or similar) if it is open access, or hold proprietary rights on the paper.

You usually retain the full copyright and usage rights on your source code, but grant a licence to the publisher, who usually can sublicence your code, e.g., by allowing readers to use the code from your paper.

The next question is, if the library licence is compatible to the paper licence. Again, this is probably a question for the publisher and not for the author.

Code from some separate repo is another issue, as long as they used code which is only in your repository and not in the paper itself.

My question is whether I ought to ask to be an author of the library.

Ask for appropriate acknowledgement, if major parts of the code are from your paper. You should not only be acknowledged by "based on paper ...", but also be in the AUTHORS file (or similar files with author information). Existing licence headers in your source files should be retained.

Be aware, that being listed as an author can mean that users will ask you for support or questions about the library. Maybe you prefer a simple acknowledgement.

Personally, I would ask if some paragraph could be included, that academic users should consider citing your paper.

5

Treat your code as a preprint, that you can archive on a repository as green open access, so that you are in control of what gets attributed to you and under what terms. (Ideally you deposit before the final version of the work gets published, but you can always retrieve your original work and deposit it later.)

Pick whichever open source or free software license you prefer, preferably a copyleft one like GPL (see why in last paragraph). Use the git history to record the code made exclusively by you, either in a single version or multiple (e.g. the original version published in the articles, plus the reformatted one you were working on).

You can also deposit the whole repository on Zenodo, which will create a DOI for it. (Zenodo items can also have an embargo or other restrictions.)

Then tell the company to credit this newly created, self-standing artefact, and to follow its license. If you end up not liking what they produced, no problem: the git history shows what is actually your work. If you end up liking their work, you can incorporate or adapt it in your code thanks to the copyleft license, which forces them to use the same license.

  • 2
    a copyleft one like GPL for the reasons below - which reasons, where? I don't see these in your answer. Are you referring to another answer? – Mathieu K. Nov 1 '18 at 4:37
  • @Mathieu, last sentence. – prl Nov 2 '18 at 1:48
  • Oh. Sorry, I was scanning the page for a list of reasons and scanned too fast to catch that one. Sorry. My bad. – Mathieu K. Nov 2 '18 at 2:06
  • Thanks, changed to "last paragraph" rather than "below" – Nemo Nov 2 '18 at 9:03
4

Since they acknowledge you as the original author, the only issue is to find an arrangement acceptable for everyone. The first step would be to contact the IP office in your institution, they know how to deal with this kind of issue.

My suggestion would be to actually publish your own open-source library as soon as possible, and there you clearly specify the conditions in which your code can be reused: typically a license (some exclude commercial use of the software), but also requirements for anybody reusing your code. You can ask them to credit you in any way you see fit. In particular is common to ask for the paper to be cited. This means that they would have to satisfy this requirement, as well as anybody reusing their library.

4

Since the library includes code that you've written, you are an author and should be recognized the same way that other authors are recognized. There's nothing wrong with asking about this. I strongly doubt anyone at the company would be upset by such a request; authorship recognition is standard practice when it comes to using third-party code. The particular license you used for your code will determine the specific way that the company must document your authorship.

The code that I've seen included in papers falls into two categories. How you should approach this will vary based on which applies to you.

You published your code with an explicit license

It's extremely important (for both you and the company) that the company's use of your code is compatible with the license you initially released it under. Otherwise, one or both parties could end up with legal problems. If you let us know what license you used, we can give some more-specific advice. In general, most popular open-source licenses would require the company to retain your existing copyright statements and license notices, and possibly to include a separate note indicating that the library includes code written by you. If the library will include a separate list of authors and contributors, it would not be unreasonable for you to ask to be included there as well.

You published your code without specifying a license

You need to be extremely careful. Even if you made the code public, no one has the right to use source code that doesn't have a license in their products, be they commercial or otherwise. International copyright law says that as soon as you wrote it, you owned the exclusive copyright to it. A license is how you indicate that you are granting others certain rights pertaining to the use of the software. Without a license, there is no grant of rights and a third party may not use your code.

With this in mind, the company must not publish their library at this time. It contains code that you hold the copyright for and that they do not have a license to use. Publishing the library would be a legal risk for them, and could put you at risk of legal liability.

Your best course of action here would be to release the source code yourself under an explicit license. You don't have to put it all together as a library for the time being. The simplest approach is to place each paper's code in separate files, store all of the files in a public repository somewhere, and include an explicit software license and copyright notice in each file. Ask the company to delay releasing their library until you have done this. They should now be clear to publish their library, provided they've met the terms of whatever license you've chosen.

If you aren't sure what license to use, the MIT license is straightforward, permissive, and easy to comply with. The Apache 2.0 license is essentially the same, except it also provides some protection against patent trolls.

  • "as soon as you wrote it, you owned the exclusive copyright to it." Not necessarily. If the code was written in an academic setting, the university might own it. (Or if written in the employ of another company, then that company might own it.) – jamesdlin Nov 1 '18 at 7:26
  • "You need to be extremely careful. Even if you made the code public, no one has the right to use source code that doesn't have a license." This is the opposite of the law in the United States. In the United States, every person who possesses a lawfully-made copy of any copyrighted work has the right to its ordinary use. Were you correct, I would not have the right to read any of the books that I own that do not include some kind of license, which is obviously wrong. In the United States, use of a work is permitted to all who lawfully possess a copy of that work. – David Schwartz Nov 1 '18 at 9:45
  • @jamesdlin true, but the copyright is still with the author, even if it is a rung up the chain, and not with a third party who wants to use it. – Baldrickk Nov 1 '18 at 10:20
  • 3
    @DavidSchwartz I was referring to the specific situation at hand and may have over-generalized. I meant "use" as in "use in their product", which implies creating a derivative work or at the least, copying and redistribution. I'll edit my answer and clarify. – bta Nov 1 '18 at 19:58
  • 2
    What they don't have is the right to distribute it. – Elin Nov 3 '18 at 15:52
3

I was contacted by the employee of a large company. They have been using my techniques and have decided to release an open-source version of their library. Their library contains code almost exclusively from my papers, copied verbatim.

IP protections may prohibit the large company from releasing their library (legally). You should check what rights you have. (Given they are a large company, they surely already know what rights they/you have.)

My question is whether I ought to ask to be an author of the library.

I think you should. You might also want to raise the issue of IP, because it probably needs to be dealt with by your institute's lawyers, probably their lawyers too.

0

You can ask yourself a couple of questions.

  1. Were they allowed to use your code in a library?

Depends on the copyright policy (license) of the journal you published the code in. The journal terms of services should clarify that or you can just contact the journal directly about that.

  1. If they were allowed, did they have to obey certain rules like giving credit to the author and did they obey them?

Depends again on the copyright policy (license) of the journal you published the code in. Many licenses require you to give attribution, others not. If they had to give attribution, but didn't already and also refuse upon you asking them to give attribution, you could refer them to the relevant terms of the license.

Even if they didn't have to, asking for more visible attribution never hurts.

  1. If they were not allowed, did they ask you to give your permission?

You could probably still give your permission (grant them a license). However that would be up to negotiations between the copyrights holder (you, your employer) and them. Giving proper attribution could be one point in these negotiations.

  1. Are you an author?

Yes. You are the author of the code that you have written.

  1. Are you an author of the library?

Yes. Code (I take it's not just trivial code) that you have written is verbatim in the library. You are an author of the library.

Note: In some jurisdictions (not all) you can completely detach yourself from a work, for example by putting it into the Public Domain.

  1. What should you do?

    • Clarify the legal situation.
    • Find out if they have to give attribution.
    • Ask them to give attribution and be listed as a developer.
    • If they refuse but had to give attribution, remind them of their obligations.
    • Suggest that they put references to the papers in their documentation if this has not already been done.
    • As soon as the open source version is online, make a copy of it and publish it (forking on Github, ...).
    • Thank them for their effort.
    • Decide if you want to add future code contributions to their library, to your copy of it or just continue publishing through papers and let them do the copying.
0

First, of course you should be acknowledged, and the company is well aware of this, which is why they contacted you. Big companies do not release open source libraries without a legal review and most likely the lawyers have told them they need to get permission from you. They copied code without a clear license that allowed them to do so and definitely without a license that allows them to release it, so now they have to fix that in order to release.

Second, you should think about what license you are comfortable with and what kind of acknowledgement you want, assuming you are comfortable with them releasing. However they are unlikely to be willing to use a license like GPL, although you never know. You can visit the Open Source Initiative and Free Software Foundation websites to learn more about the different licenses. As someone with open source projects myself I think if you can come to an agreement with them about this you're probably better off with them releasing and maintaining because it is a lot of work and headaches to deal with users who show up wanting bug fixes, updates and improvements. It's fun for a while but it gets tiring too. Since they have people they pay to do things like that, it's pretty nice.

Third, if they do a release you can always fork their release and continue your development, contributing back to their project if you want (or they can watch you).

That said, personally, I'd want my name in the licensing file as the original author. Depending on the language and code style I might want it elsewhere too.

This overall is a legal issue, and I suggest you talk to a lawyer who knows about software licensing. You might be able to get advice at your campus but you might also be able to get advice from an open source advocacy organization.

You should also consider what licenses you are comfortable with and you will also want to consider what licensing they are proposing. If you can't come to an agreement with them then it can't be released by them. Your code is your copyright (or possibly that of your employer). I do think it's unusual for academic code to be copied verbatim because a lot of times it is pseudocode and in that case it is really about "discovery" (which unlike an invention is not patentable). But in your case it sounds like there is clear copyright.

Addition: Also, if I were you I would discuss with them writing a paper with your as an author about their version of the library. That gives you what you need in terms of academic productivity metrics. I also put links to code repositories of formally released code in a citation format and the estimated number of downloads into my annual accountability reports.

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