Monday, June 9, 2008

Open Source - Myths and Legends

What is "Open Source" software? Wikipedia gives this definition:

"Open source is a development methodology,[1] which offers practical accessibility to a product's source (goods and knowledge). Some consider open source as one of various possible design approaches, while others consider it a critical strategic element of their operations. Before open source became widely adopted, developers and producers used a variety of phrases to describe the concept; the term open source gained popularity with the rise of the Internet, which provided access to diverse production models, communication paths, and interactive communities.

The open source model of operation and decision making allows concurrent input of different agendas, approaches and priorities, and differs from the more closed, centralized models of development.[2] The principles and practices are commonly applied to the development of source code for software that is made available for public collaboration, and it is usually released as open-source software."

Lots of words but not what some have defined as Open Source. Some have defined Open Source according to the Free Software Foundation, aka, Richard Stallman. Others have used the Apache License as the defining criteria. Others, such as my editor with InfoWorld, maintains that if the software is free, the source code is free (or available for a nominal fee), and others are allowed to contribute to the core code, then the blinking stuff is, for all practical purposes, OPEN SOURCE!

Several have taken me to task for this definition: Jason Morris, Dr. Ernest Friedman-Hill (he of Jess fame), Mark Proctor (the Drools guy), and one or two others. They feel that Drools is Open Source while Jess and CLIPS are not. (Gary Riley has not weighed in on this one - not yet.) While I respect their opinion (and indeed I have to respect their opinion since they wrote this stuff) I do feel that if it walks like a duck, quacks like a duck, swims like a duck, has a bill like a duck and webbed feet like a duck, then a swan it ain't. Now we can have Mallard ducks, Brown ducks, Mottled ducks, Green ducks, but they are all ducks.

Quite some time ago, about November of 2006, InfoWorld ran an article on Rulebase Open Source Software in which I called Jess an Open Source product. It seems that this stirred up a hornet's nest and both Dr. Friedman-Hill and Mark Proctor let me know about it the following week at the BR 2006 Forum in D.C. Their complaint (and they both agreed) was that Jess was not true Open Source. Well, again, who is the official Open Source committee members? Richard Stallman wrote an article on this ( in which he argues that the GNU General Public License should be the controlling factor.

Bruce Peren et al have come up with the following "Open Source" definition and (I think - don't know for sure) that they also copyrighted this slogan. (How can you copyright something that is not yours?):

"Under the Open Source Definition, licenses must meet ten conditions in order to be considered open source licenses. Below is a copy of the definition, with unauthorized explanatory additions. There is a link to the original unmodified text below. It was taken under fair use.

1. Free Redistribution: the software can be freely given away or sold. (This was intended to expand sharing and use of the software on a legal basis.)
2. Source Code: the source code must either be included or freely obtainable. (Without source code, making changes or modifications can be impossible.)
3. Derived Works: redistribution of modifications must be allowed. (To allow legal sharing and to permit new features or repairs.)
4. Integrity of The Author's Source Code: licenses may require that modifications are redistributed only as patches.
5. No Discrimination Against Persons or Groups: no one can be locked out.
6. No Discrimination Against Fields of Endeavor: commercial users cannot be excluded.
7. Distribution of License: The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.
8. License Must Not Be Specific to a Product: the program cannot be licensed only as part of a larger distribution.
9. License Must Not Restrict Other Software: the license cannot insist that any other software it is distributed with must also be open source.
10. License Must Be Technology-Neutral: no click-wrap licenses or other medium-specific ways of accepting the license must be required."

Under that definition, Jess is NOT Open Source. However, CLIPS probably gets in just under the wire. As do many other free, Open Source projects.

All of that being said to say this: My deepest and most humble apologies to anyone who has been offended by my suggestion that Jess is Open Source. But I'm still right - I'm just apologizing for offending. :-) In other words, I didn't do it and I promise never to do it again.



Mark Proctor said...

Clips is absolutely open source, it's public domain the most open of open source licenses - no one has claimed otherwise, I think you got a bit confused there. Jess isn't open source, it's "view" or "shared" source. With Open Source there is an expectation to be able to distribute derivative products of some sort, which Jess does not allow.

Because Richard Stallman does not like the loose definition of OSS, the term FOSS has been used to encompass the various movements out there - Free and Open Source Systems.

woolfel said...

CLIPS is about as open as one can get :)

thanks heaven gary has kept up the development and been a great steward of CLIPS. Though steward is an understatement.

Karl said...

Yep, I'm one of the "and one or two others" who contacted you regarding the consideration of JESS as open source.

First, the cost for viewing JESS source is not something like a nominal cost-of-media fee - it's a substantial outlay for the average individual.

Second, and most important, is exactly what Mark points out here: you cannot redistribute JESS source, or distribute derivative works. This will continue to hamper JESS as a platform for research. The C folks will stick with CLIPS, and the Java folks will continue to migrate towards Drools or something similar.

Gary Riley said...

When I looked into rehosting CLIPS at Google Code and SourceForge, I came to the conclusion that CLIPS didn't meet the definition of "Open Source" as defined by either site. While a public domain license appears to meet all of the requirements of the open source definition,, there is no clearly identified public domain license among the list of OSI approved licenses. At the very least, it appears that open source licenses require preservation of the original license with any redistribution. Perhaps this is part of the "free as in liberty" issue. SourceForge does allow you to label a project as public domain while Google Code restricts you to a limited number of open source licenses. Count me among the group that thinks that 70 different OSI approved licenses is sadly amusing.