[cc-devel] License Compatibility Checker using ccREL

Mike Linksvayer ml at creativecommons.org
Sat Sep 18 15:16:00 EDT 2010

On Fri, Sep 17, 2010 at 5:37 PM, Vítor Baptista <vitor at vitorbaptista.com>wrote:

> Hi,
> My name is Vitor, I am a brazilian CompSci student. I'm in my bachelor's
> last semester, and I'm building a free license compatibility checker as my
> thesis. I would like to ask some questions, any help will be greatly
> appreciated. Sorry for the long e-mail.
> * If I were to describe the "default" copyright schema (as in "I made
> something but haven't made any explicit license"), I should simply use ccREL
> with no permissions, no requirements and no prohibitions? With all
> attributes unset?

Yes, starts from default, so no permissions = default.

> * I'm thinking about how I could, using ccREL, check if two licenses are
> compatible.

You can check for incompatibility (but even then an edge case/limited
circumstances potential for compatibility could be missed, eg imagine if FDL
1.3 were so modeled; it would appear incompatible with BY-SA, but under
circumstances and for a limited time, it was), but can't be certain of
compatibility based on CCREL-level permissions/requirements/prohibitions.
Licenses could be incompatible for reasons not modeled. For example, BY-SA
1.0 is not upwards compatible with later versions. (Perhaps this indicates
we should add another assertion to the description of BY-SA 1.0 and look for
other such cases to allow more reasoning with just CCREL level

It's also important to realize that "compatible" (or "interoperable") often
is too imprecise to be useful without specifying up/down, donor/recipient
(or whatever your preferred term is); two-way compatibility is usually only
among very similar licenses, eg among any version/jurisdiction of BY or
among jurisdiction ports of a single version of BY-SA.

> At a first glance it seems that I could simply:
> 1. You can't give more permissions than those that were given to you (but
> you can give less);
> 2. You can't remove prohibitions (but you can add);
> 3. You must comply to the requirements of each and every part of your
> software (and might add some more);
> These seems to work for the simple case (no copyleft/sharealike parts).
> But, before I go into that, there're two attributes that I find confusing.
> 1. High Income Nation Use -- If I don't this permission, what does it
> means? That I can't distribute the work in the USA, for example? I couldn't
> find any licenses that uses this (not CC licenses, at least);

Uh oh, you found a bug in our schema -- this is a prohibition developed for
the ill-fated http://creativecommons.org/licenses/devnations/2.0/ -- glad
you couldn't find it. :-) If you find this prohibition, you don't have
permission to distribute in the USA, for example.

Bug: http://code.creativecommons.org/issues/issue663
Schema, for those following along described at

> 2. Sharing -- Also, couldn't find no licenses using it. It means that I may
> create a derivative work and sell it, but can't sell the unmodified program?

Right. Associated with another ill-fated license I'm happy you couldn't find
-- http://creativecommons.org/licenses/sampling/1.0/

Devnations and sampling received almost no use and were retired 3 years ago,
see http://creativecommons.org/weblog/entry/7520 and my mini-celebration
http://gondwanaland.com/mlog/2007/06/04/eol/ :-)

> These attributes seems more prohibitions than permissions to me. I don't
> think I'm understanding them fully.
> * For compatibility between copyleft licenses, there're x rules:
> 1. Is it the same license? If so, they're compatible; if not, use rule 2;
> 2. Are they explicitly compatible? For this, I have to use a pre-calculated
> database like "GPLv2+ is compatible with GPLv2 or any later version", etc.
> (maybe it'll be nice to have an extension to ccREL to support this? (Thanks
> RDF))
> If there's a Lesser Copyleft license, my program (as I think of it) cannot
> decide, so just tell the user to contact a lawyer. If there's a ShareAlike,
> use:
> 1. Compatible if it's just a newer version of the license;
> 2. Compatible if it's the same version but for a different jurisdiction;
> 3. Incompatible if not.

Those rules sound right to me, but need a test suite. As above, it might be
useful to extend CCREL to support more compatibility reasoning.

> Any thoughts or ideas about this? Does these rules makes sense?

 Really appreciate that you're doing this work/research! Where can one find
your code?


http://creativecommons.org/about/people/#ml <https://creativecommons.net/ml>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ibiblio.org/pipermail/cc-devel/attachments/20100918/cb95adf2/attachment.html 

More information about the cc-devel mailing list