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.

Chip
  • 611
  • 1
  • 5
  • 5
  • 2
    Does the inventor of the wheel get credit for all wheelbarrows, cars and airplanes? You created a "tool", they implemented it... – Solar Mike Oct 31 '18 at 08:41
  • 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 08:44
  • 3
    @SolarMike Well, yes, they do (if they patented their invention). (Albeit, only for a limited period.) – user2768 Oct 31 '18 at 11:15
  • 1
    @user2768 so who was the inventor of the wheel? And did they patent it? Or did the OP patent or copyright the code or algorithm? Or was it "owned" by the institution he?she worked or works for? – Solar Mike Oct 31 '18 at 11:26
  • 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
  • @user2768 the real point is the second bit : the OP created a "tool", they implemented it.... – Solar Mike Oct 31 '18 at 13:05
  • 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
  • 43
    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
  • 1
    @KonradRudolph True, but the license can state that authorship does not have to be mentioned (eg CC0). – Jessica B Oct 31 '18 at 16:24
  • 2
    The answers given do not seem to address the line 'I'm worried that...' How would you expect to get the 'credit' you are thinking about? If you are thinking about getting promotion, you can actively point out your contribution, with or without the 'author' title. If you are thinking about others on their own seeing the work and thinking 'look how great this coder is' then having your name as an author would be more important. – Jessica B Oct 31 '18 at 16:49
  • 1
    If you want to be paid for your code, you are in an excellent place to negotiate. You don't have to be mean about it, or angle it like you're extorting the company. In the software industry, it is not uncommon at all for companies to pay for licenses for others' code. If the company is on the up-and-up, there's absolutely no reason why they should be offended by you asking to be paid a reasonable amount of money for a license. – Kevin Oct 31 '18 at 22:12
  • You might have a moral case, but I doubt you have much of legal one. The main purpose of publishing anything in an academic journal is to put it in the public domain. If you have wanted to protect the exact source code you used, you should have published algorithms in pseudocode instead - and in that case, the company would clearly have ownership of their independent implementation of the ideas that you had put in the public domain for anyone to use. – alephzero Nov 01 '18 at 09:23
  • 1
    We don't know anything about the OP's code, but in my experience (from industry's point of view) most code written and published by academics is close to worthless as an implementation of their ideas. It usually gets completely rewritten for "industrial-strength" use, and often the rewrite runs orders of magnitude faster than the original! – alephzero Nov 01 '18 at 09:26
  • 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 01 '18 at 13:36
  • 3
    You could ask parts of this in opensource.SE or law.SE. – Keith McClary Nov 01 '18 at 15:24
  • "...whether I ought to ask to be an author of the library..." You wrote X percent of the code of the library, they just copied that part. You are an author and should be acknowledged as such. – NoDataDumpNoContribution Nov 02 '18 at 09:27
  • Which license did you put your code under? Please tell us you didn't release the code without any license? – smci Nov 02 '18 at 13:35
  • @smci The code was published in the paper so unless another license was specified it was released under the (somewhat inadequate) license of the paper publication. In particular, this would generally (almost always?) preclude republication as a library, since journals usually use restrictive licenses (the most lenient one I’ve ever encountered being CC-BY-NC-ND, i.e. no derivative works). – Konrad Rudolph Nov 02 '18 at 14:44
  • @KonradRudolph: we don't know whether the code was published in the paper with a line specifying a specific license type (and my understanding is if so, that would take precedence over the journal's implicit license). Hence that's why I ask. OP has not stated. Very important to know. Without OP telling us, nearly impossible to answer well. – smci Nov 02 '18 at 23:54
  • @smci: I don't know why you would think anything would take precedence over the license for the journal contents. The subscriber has purchased a journal license -- they are clearly entitled to exercise their right under said license. If the same content is offered under another license, the user can choose that one instead (assuming they pay any associated acquisition cost). Neither "has precedence" over the other; both are equally valid. – Ben Voigt Nov 04 '18 at 04:11
  • @BenVoigt: can you cite any source for that claim? – smci Nov 04 '18 at 23:16
  • @smci: The "entire agreement" clause in the license? Besides, the existence of dual (or multiple) licensing is common knowledge. A license is not limited by the existence of some other offer for some other contract. – Ben Voigt Nov 04 '18 at 23:19
  • -1 for not answering the clarification questions, especially in the top-voted comment. That would have excluded a lot of guessing from the answers. – Dmitry Grigoryev Nov 05 '18 at 09:22

9 Answers9

99

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...

OBu
  • 13,113
  • 3
  • 34
  • 59
  • 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 02 '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 05 '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.

David Ketcheson
  • 36,304
  • 9
  • 109
  • 162
  • 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 03 '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.

allo
  • 3,547
  • 2
  • 12
  • 23
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.

Nemo
  • 861
  • 9
  • 23
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.

Erwan
  • 13,558
  • 1
  • 30
  • 63
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.

bta
  • 2,107
  • 12
  • 13
  • "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 01 '18 at 07: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 01 '18 at 09: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 01 '18 at 10:20
  • @DavidSchwartz what does "ordinary use" mean? In the context of a movie, that would be home viewing. In the context of code, that's what? putting into your own personal projects? I don't believe that publishing a library consisting of copyrighted content that you don't have a licence to publish doesn't fall under "ordinary use" – Baldrickk Nov 01 '18 at 10:22
  • @Baldrickk My point is simply that the statement I cited is the exact opposite of the truth -- bta said "no one has the right to use source code that doesn't have a license" (and "may not use your code") when in fact use is the one right they clearly have. They don't have the right to copy or modify it except when such copying or modification is reasonably necessary for ordinary and expected use. But whatever the ordinary and expected use is, that is one right that you definitely do have, at least in the US. This is why you have the right to read a book you own without needing a license. – David Schwartz Nov 01 '18 at 10:25
  • 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 01 '18 at 19:58
  • 2
    What they don't have is the right to distribute it. – Elin Nov 03 '18 at 15:52
  • This is the correct answer. I know that I didn't sign anything giving my school copyright to anything. All code I submitted as homework or part of a paper I explicitly licensed under the GPLv2. Publishing in a journal, I don't know - that would depend on any legal agreement/contributor agreement. Would be interesting to see this same question asked over on opensource.stackexchange.com – ivanivan Nov 03 '18 at 19:28
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.

user2768
  • 40,637
  • 9
  • 93
  • 144
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.

Elin
  • 2,916
  • 9
  • 19