Licensing of Haskell code
Graham Klyne
GK@ninebynine.org
Fri, 23 May 2003 12:42:56 +0100
This sounds like a possible application for the description logic (DL) [1]
based systems that are being built for the semantic web...
E.g. use DL-type structures to describe different software licensing terms
... what is permitted, what conditions apply, etc. If the licences
concerned fall within the expressive constraints of DLs, a DL subsumption
calculation should be able to derive the appropriate description of terms
of if one is required to conform to multiple such licences (and if the
permitted uses in such a subsumption is the empty set, one may deduce the
licences are incompatible.) ALl of which, I think, would be readily
expressed in Haskell.
Another related, but different, approach might be based on some work I did
for content negotation in Internet protocols, some time ago [2]. This
takes a different slice through the form of logical expressions used to
describe some set of possibilities, and algorithms for combining those
expressions.
#g
--
[1] http://citeseer.nj.nec.com/borgida95description.html
This is one of very many possible citations... it happens to be one that I
found useful as an introduction to description logic ideas. I've also
found some of Deborah McGuinness' papers in this area to be helpful.
[2] http://www.ietf.org/rfc/rfc2533.txt
At 12:16 23/05/03 +0100, Simon Marlow wrote:
>Ashley Yakely writes:
> > OK, this may not be immediately practical, but... as
> > contracts, would it
> > be possible to express licenses in a Haskell-like language?
> > Didn't Simon
> > PJ do some kind of work on this? There seem to be interesting
> > covariant/contravariant properties here, for instance, if I
> > require you
> > to allow A to anyone who does B, then that is satisfied if you allow
> > more than A to anyone who does less than B.
>
>I think that's a great idea. I've often thought that there ought to be
>a formal system for reasoning about source code licenses, at least so
>there would be a way to unambiguously decide when one license is
>"compatible" with another, and what precisely are the obligations on a
>programmer when distributing a work consisting of code licensed in two
>different ways.
>
>An DSL for licenses would be even better, since you'd presumably be able
>to interrogate the system to determine the properties of license
>combinations.
>
>Cheers,
> Simon
>
>_______________________________________________
>Haskell mailing list
>Haskell@haskell.org
>http://www.haskell.org/mailman/listinfo/haskell
-------------------
Graham Klyne
<GK@NineByNine.org>
PGP: 0FAA 69FF C083 000B A2E9 A131 01B9 1C7A DBCA CB5E