I have a natural language processing model that I've compiled from several gigs of text data. The format of the model does not contain in itself any of the input copyrighted material, it has been reduced to simple words and named entities with weights and categories to put it simply, in case that matters.

That said, I can't release the original input documents as the "source" to build this binary, but I can release the compiled model as my copyrighted material and I'd like to do just that. I'd like to release this binary model under the AGPL.

My question is, will the AGPL apply the way it was intended to? This model is technically content that the software (the NLP library) can function without, but when combined with this loaded content, produces unique program output that relies explicitly on the input model to generate.

Would the AGPL apply correctly? It's a binary that isn't directly executable code, making it more like content, but when combined with the software it's meant to be used with, acts more like a shared library (dll, so etc) which provides unique program functionality and output.

After writing this question I believe the fact that I can't release something that fulfills the role of the "source" code, that I'm not able to license the binary under the AGPL or GPL. I'm seeing if it's possible to decompose the binary form back into an editable format like JSON which can be edited and then turned back into a binary model to satisfy this requirement.

  • 1
    You are able to license the binary under the AGPL. However, recipients won't be able to comply with its terms if they distribute it, because you haven't released the Corresponding Source.
    – EMBLEM
    Commented Aug 12, 2016 at 16:06
  • Wouldn't the binary then become the source?
    – Zizouz212
    Commented Aug 12, 2016 at 16:56
  • @Zizouz212 I found a way to convert the binary model to an editable ASCII form, which can then be converted back to the released binary form used in the NLP library. I think this would satisfy the definition of "source code".
    – user3570
    Commented Aug 12, 2016 at 20:28
  • 1
    It seems like your use-case would be rather open data than open source. There are also licenses specifically for datasets.
    – Philipp
    Commented Sep 12, 2016 at 10:45

2 Answers 2


It depends. What do you mean by apply correctly?

You are correct that any form of the GPL will require you to release source code, should you be asked for it. However, as far as I am aware, it does not require you to release source material that is not code.

I'm assuming that to generate this model, you wrote some code to parse and process the original texts, and put the resulting data together into a model. This is your source code.

Given that, you can release

  • the model as a precompiled binary object form
  • the generation code as the source code which generates new binaries

and you'll satisfy the requirements for source code.

  • 1
    +1, I guess what I'm asking by "apply correctly" is I don't want people loading this binary model behind a network service and using it classify text content without having to comply with the full terms of the AGPL. I'm not sure if it meets the definition of a compiled piece of software since it is technically content, but it also changes the functionality of the host software to function in a unique fashion, meaning that the function of the host software is entirely dependent on the content of the loaded binary.
    – user3570
    Commented Aug 12, 2016 at 20:31
  • Also if you see my new remarks on the question, I've discovered a way to "decompile" the resulting classification binary (the thing I want to release) back to a plain text version which is human editable, which can then be converted back to a modified or original version of the binary I released. I think this might satisfy the definition of source code.
    – user3570
    Commented Aug 12, 2016 at 20:32
  • @user3570 Is the binary blob "the preferred form of the work for making changes to it"? If so, then it would seem that it's its own source code Commented Jul 3, 2020 at 16:17

If I get you right, what you want to release isn't software in the general sense and thus shouldn't be licensed as such. To me it looks like more of a database - they are also often required and affect program execution, but contain only data.

IMO more proper way would be to license it as non source code content (with CC licenses for example). Or you could go the complicated way if you can convert it to another database format - certain databases specifically cover data usage.

  • True true, +1. I considered this as well using CC. Another thought might be to unroll the binary data into code structures and compile it statically into source, then license at-will.
    – user3570
    Commented Aug 12, 2016 at 22:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.