[cc-devel] License Compatibility Checker using ccREL

Vítor Baptista vitor at vitorbaptista.com
Sat Sep 18 18:24:58 EDT 2010

Hi Mike,

On Sat, Sep 18, 2010 at 4:16 PM, Mike Linksvayer <ml at creativecommons.org>wrote:
> * 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
> descriptions.)

Before I found ccREL, I was looking into LIDESC [1]. I prefer ccREL over
LIDESC's tags because they are more simple, organized, better maintaned and,
mainly, because CC and FSF support it. But LIDESC's attributes are more
specific than ccREL's. It has more than 60 versus ccREL's 12. A license
could almost be 100% described with LIDESC's tags, but I thought that I
didn't need this, as my aim is "just" to say "they're not compatible", and
not "you can distribute but you have to keep Foo's notices in every source
code, Bar's notices in your About, etc.".

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

If I remember well, what I am trying to solve is downwards compatibility. My
use case is "I have a software which is composed by 10 modules, each with
it's own license. Can I license the whole as GPLv3?". At first, it'll be
used in OpenGinga, a free implementation of the brazilian's digital tv

> 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
> http://creativecommons.org/ns#
>> 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/ :-)

Great! One less thing to confuse me :P

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

Yes, that's one of the first things that I'll do. Just checking first if I
am on the right track. I think that [2] could be used as a first test
suite... :-)

Maybe I could find some useful attributes to extend ccREL in LIDESC's list
[1] and the license wizard at [3].

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

I still haven't written anything, just some tests of Ruby's RDFa support.
But, as soon as I begin coding, I'll post a link to my repository here.

Thanks for your thoughtful comments.

[1] http://www.mibsoftware.com/librock/lidesc/tags.htm
[3] http://swan.iis.sinica.edu.tw/LicenseWizard/index.htm?en


Vítor Baptista
Comissão Organizadora
IV Encontro de Software Livre da Paraíba
6, 7, 8 e 9 de Maio de 2010
Estação Ciência, Cultura e Artes Cabo Branco
João Pessoa, PB.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ibiblio.org/pipermail/cc-devel/attachments/20100918/b093fef3/attachment.html 

More information about the cc-devel mailing list