Skip to Content.
Sympa Menu

cc-devel - Re: [cc-devel] License Compatibility Checker using ccREL

cc-devel AT lists.ibiblio.org

Subject: Developer discussion for Creative Commons technology and tools

List archive

Chronological Thread  
  • From: Vítor Baptista <vitor AT vitorbaptista.com>
  • To: Mike Linksvayer <ml AT creativecommons.org>
  • Cc: cc-devel AT lists.ibiblio.org
  • Subject: Re: [cc-devel] License Compatibility Checker using ccREL
  • Date: Sat, 18 Sep 2010 19:24:58 -0300

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

[2] http://creativecommons.org.tw/licwiz/english.html
[3] http://swan.iis.sinica.edu.tw/LicenseWizard/index.htm?en

Regards,

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

http://www.ensol.org.br



Archive powered by MHonArc 2.6.24.

Top of Page