RE: Licensing of Haskell code
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
participants (1)
-
Graham Klyne