Licensing of Haskell code
Fri, 23 May 2003 12:42:56 +0100
This sounds like a possible application for the description logic (DL) 
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 . 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
>An DSL for licenses would be even better, since you'd presumably be able
>to interrogate the system to determine the properties of license
>Haskell mailing list
PGP: 0FAA 69FF C083 000B A2E9 A131 01B9 1C7A DBCA CB5E