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