Discussion:
[cc-devel] License Compatibility Checker using ccREL
Vítor Baptista
2010-09-18 00:37:29 UTC
Permalink
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?

* I'm thinking about how I could, using ccREL, check if two licenses are
compatible. 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);
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?

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.



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

Thanks in advance,
--
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ibiblio.org/pipermail/cc-devel/attachments/20100917/19bd64c6/attachment.html
Mike Linksvayer
2010-09-18 19:16:00 UTC
Permalink
Post by Vítor Baptista
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.
Post by Vítor Baptista
* 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.)

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.
Post by Vítor Baptista
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#
Post by Vítor Baptista
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/ :-)
Post by Vítor Baptista
These attributes seems more prohibitions than permissions to me. I don't
think I'm understanding them fully.
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,
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.
Post by Vítor Baptista
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?

Mike
--
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
Vítor Baptista
2010-09-18 22:24:58 UTC
Permalink
Hi Mike,
Post by Vítor Baptista
* I'm thinking about how I could, using ccREL, check if two licenses are
Post by Vítor Baptista
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.".
Post by Vítor Baptista
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.
Post by Vítor Baptista
Post by Vítor Baptista
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#
Post by Vítor Baptista
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
Post by Vítor Baptista
Post by Vítor Baptista
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,
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].
Post by Vítor Baptista
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
<http://www.mibsoftware.com/librock/lidesc/tags.htm>[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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ibiblio.org/pipermail/cc-devel/attachments/20100918/b093fef3/attachment.html
Vítor Baptista
2010-10-06 14:48:00 UTC
Permalink
Hi,

I started building the software (now named licc -- License Compatibility
Checker) a few weeks ago. It's begining to take shape, the code is at
http://gitorious.com/vitorbaptista/licc. Suggestions, critiques and patches
are welcome.

I made tests following the compatibility chart at
http://wiki.creativecommons.org/FAQ and it passes them. Also added a few GNU
licenses' checking.

I found a possible inconsistency between the compatibility chart at
http://wiki.creativecommons.org/FAQ and CC Taiwan's Compatibility Wizard at
The blank rows for the by-nc-nd and by-nd licenses indicate that derivative
works or adaptations are not permitted by the license of the original work,
therefore you are never allowed to re-license them.
But into CC Taiwan consider BY-ND relicensable to BY-NC-ND and BY-ND. Which
one is right?

Regards,

On Sat, Sep 18, 2010 at 7:24 PM, V?tor Baptista <vitor at vitorbaptista.com>
Hi Mike,
On Sat, Sep 18, 2010 at 4:16 PM, Mike Linksvayer <ml at creativecommons.org>
Post by Mike Linksvayer
Post by Vítor Baptista
* 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.".
Post by Mike Linksvayer
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
Post by Mike Linksvayer
is usually only among very similar licenses, eg among any
version/jurisdiction of BY or among jurisdiction ports of a single
version
Post by Mike Linksvayer
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.
Post by Mike Linksvayer
Post by Vítor Baptista
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
Post by Mike Linksvayer
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#
Post by Vítor Baptista
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
Post by Mike Linksvayer
Post by Vítor Baptista
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
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].
Post by Mike Linksvayer
Post by Vítor Baptista
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
[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
--
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ibiblio.org/pipermail/cc-devel/attachments/20101006/b2649bdf/attachment.html
Loading...