2

According to Wikipedia:

In copyright law, a derivative work is an expressive creation that includes major copyrightable elements of an original, previously created first work (the underlying work). The derivative work becomes a second, separate work independent in form from the first. The transformation, modification or adaptation of the work must be substantial and bear its author's personality sufficiently to be original and thus protected by copyright.

Documenting software does not by itself make the documentation a derivative work of the software being documented. For example, someone can write a book on how to use a certain library. With normal licenses, nothing stops the author to include example code snippets on how to use the library, yet remain free to license the book as they please.

How does this apply to a Jupyter Notebook? A Jupyter Notebook could be considered as literate programming; a piece of software liberally commented performing a certain role. This would make it a derivate work — if it needs a GPL-library to run, it would need to be licensed appropriately. Or a Jupiter Notebook could be considered documentation: the main purpose is not, after all, to produce functionality, but rather to educate the reader on how to use software. In this interpretation, the notebook is documentation with a lot of examples.

There is a related question Do I need to license a Jupyter Notebook that uses a forked AGPL library?, but that one doesn't raise the question about documentation at all

2
  • I think this really depends on the specifics of what you do. Let's say you take some GPL software, make some minor but crucial modifications to that, and then place all the code into a nice Jupyter Notebook and try to license your notebook under a different license (e.g. a proprietary one). That might be possible, but in such a case you'd still have to comply with the GPL license for the code part. In practice you'd still have to find some way to ship the GPL-only portions (and all that is required to execute it), and to allow your own customers of your proprietary Notebook to do so as well.
    – Brandin
    Nov 10 at 9:20
  • Why the downvote? How can I improve this question?
    – gerrit
    Nov 10 at 10:09
3

As always, this depends on what is considered a derivative work, which is a legal question rather than a licensing one.

If I have a substantial notebook which is 99% code and is clearly tightly coupled with the libraries it is using, then that is almost certainly a derivative work of the code. If I have a notebook which is 99% documentation and just contains some trivial code snippets, you could probably argue it is not a derivative work of the code. Something in the middle is a grey area, and different jurisdictions may make different rulings so there is no simple answer.

2
  • 1
    Sorry, I didn't mean to say documentation cannot be a derivative work. I meant that if I document a particular piece of software, the documentation does not as such become a derivative work of the software. I've edited the question to clarify.
    – gerrit
    Nov 9 at 14:49
  • Updated, although the core of the answer doesn't really change. Nov 9 at 15:12
-3

IANAL but I have worked with many on this specific topic. From those past discussion, the majority (but not all) consider the stuff you have done as content rather than code, and so not either derivative or combined works. If you apply the same principle to open source editors or compilers - would using these create combined/derivative works? They don't, and for good reason - no one would use them!

5
  • As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.
    – Community Bot
    Nov 12 at 9:36
  • Interesting - what specifically is unclear? Nov 12 at 11:02
  • What does "content" in "content rather than code" mean?
    – gerrit
    Nov 14 at 16:19
  • I don't understand how the compiler analogy fits in with the Jupyter Notebook example. To me, the Jupyter Notebook parts which are not code could be considered 'content' (or documentation), while the code parts which can be executed are still clearly code.
    – Brandin
    Nov 15 at 15:42
  • Thanks for the clarification - now that I re-read it i see what you mean. I think what I was trying to say is that the licence that a tool is used under is decoupled from the output of whatever is created using that tool. So if I am using LibreOffice, my spreadsheets that could contain code/logic, are not covered by the licence despite still being like code. The same holds true for other tools such as IDEs, compilers. I was trying to say would a notebook not be the same? Nov 15 at 17:25

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.