Licensing of Haskell code

Graham Klyne
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 



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.


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
>         Simon
>Haskell mailing list

Graham Klyne
PGP: 0FAA 69FF C083 000B A2E9  A131 01B9 1C7A DBCA CB5E