CRAPL — Community Research and Academic Programming License

The Community Research and Academic Programming License (CRAPL) is an open source license drafted by Matt Might and is directed at researchers who produce code that is a byproduct of research.  This license is tuned to the current academic environment and its emphasis on publishing moreso than licenses like GPL, LGPL, and BSD.

Might’s writeup of the license is great and the license itself is very readable (and funny!).  But in three bullet points: what does the CRAPL (version 0, beta 0) do for you?

  • Preemptive social protection: the author can signal that the published code is crap and that he or she knows this so calm down already
  • Attempt to balance GPL-like sharing of code and data with idiosyncrasies of the publication process
  • Does not itself allow commercial nor community use

What might the CRAPL lifecycle look like?

Stage 1:

  1. Researcher tackles a problem, sketches a beautiful system architecture diagram on the whiteboard
  2. Weeks pass, the stack of coffee filters shrinks, and another xkcd comic appears on the wall
  3. “Oh smeg,” says the researcher, “five days until the conference deadline.”
  4. Code is hacked, commented in and out, copy-pasted, and… this part never gets old… made to work and produce results
  5. Paper and CRAPL’d code is submitted for peer review
  6. Peer-reviewers read the paper and have their grad students examine the source code
  7. Paper is published.  Huzzah!

Stage N+1:

  1. On the other side of the globe, a lone grad student decides to extend the result
  2. Student finds the CRAPL’d code– lucky for them, because you can’t fit everything into an 8 page paper
  3. Student fixes some bugs and reports them to the original researcher (as-per at least the spirit of CRAPL)
  4. Student extends the code, writes a paper, and submits the paper and CRAPL’d code
  5. Paper doesn’t make the cut, but the new code remains confidential so the student can try again at his leisure (as-per CRAPL)
  6. One month later, the revised paper is accepted, and the student is required to publish the new code, also CRAPL’d (as-per CRAPL)

Might clearly describes the social benefits of the CRAPL.  I’ll pick on some of the issues with the use-control aspects of the license.

The second permission #2 (heh, I will report this bug) is vague.  It requires someone who extends CRAPL’d code to make a “good-faith effort” to contact the original author.  As long as the license is tailored to our current academic model, why not define a minimum “good faith effort”?  I propose that sending an email to the authors’ email addresses (specified in the CRAPL license file) with attached code modifications OR bugfixes relevant to the original code?  (Luca Ferrari pointed out this issue)

The last permission, concerning the release of any input data used to generate published results, is contentious.  Acceptable or not, there are a lot of research results generated from data that cannot be released to the public.  Company-confidential data may be used in a publication from Google or Microsoft.  Data from experimental subjects is often protected by confidentiality requirements, as in some medical and psychological studies.  Data may only be available for a hefty fee from a third-party or may require several hard drives and hours of a researcher’s time.  I would modify the license to allow the original author to decide whether input data must be released and how, with a default of no restrictions.  Perhaps a later version of the CRAPL should fight the open data battle.

Where does the CRAPL fit into my licensing philosophy?  As a first approximation, I feel that the GPL is appropriate for end-user software, the LGPL or BSD/Apache is appropriate for libraries or “good” code, and the CRAPL is appropriate for means-to-an-end research code.  Apart from social signaling, releasing under the CRAPL allows you to release code for scientific reasons while still holding the door open for later commercialization or alternative licensing.  For the benefit of science, it encourages peer-review of code, communication of bugs and issues, and a kind of parallel continuity between code and published papers as scientific ideas wend their way through the literature.  While it may need a lot of work to be a legally bulletproof license, it is probably worthwhile to use as-is because it (1) doesn’t seem to give up the author’s copyright and (2) the scientific community has a decent sense of right and wrong concerning the correct use of other scientists’ materials.

Tags: ,

One Response to “CRAPL — Community Research and Academic Programming License”

  1. Tom Rod Says:

    Excellent writeup. I look forward to seeing the result of CRAPL, as although it is a rather tongue-in-cheek writeup, the idea is ready for some attention.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: