Monday, June 9, 2008

Was Jess a CLIPS Spin-Off?

Here we go again - same article in 2006 I said that Jess was a CLIPS spin-off. It wasn't and isn't and wont' be. I suppose that I "ass-u-me"ed that it was derived from CLIPS because CLIPS came first and Jess uses the same defrule, deftemplate, etc., syntax that is used by CLIPS. It even uses the same file name extension that is used by CLIPS. And, sometimes, if it isn't too complex or too tool-specific, you can import a Jess file straight into CLIPS or a CLIPS file into Jess. (Or so I've been told.)

OK, I should have checked with the authors of the tools before I said that. BUT, in my own defense, if I saw a tool that used ILOG JRules code with the same file name extensions and the same syntax, I would HAVE to "assume" that it was a JRules spinoff. The same thing goes for Drools or any other tool.

So, just to set the record straight, Jess is NOT a CLIPS spinoff and is NOT derived from CLIPS!! Got it? Got it!! Can we close this case now? Two years later? Please?



Johan Lindberg said...

Hi James,

what do you make of the first question and answer in the Jess FAQ? ;-)

James Owen said...

In the FAQ, Ernest says that Jess was a clone of CLIPS which led me to believe that it was a CLISP spinoff. However, I got my "correction" at the 2006 BR Forum conference. Ernest was, and is, a true gentleman. He just pointed out my errors in the article and we let it go at that. However, since then I've found out that this printed article has been quoted in several sources so I just wanted to set the record straight.

According to Ernest, a clone is NOT a spinoff nor a derivation - I'm just guessing that if it were a spinoff then that would have made the $100 code charge or the few paltry thousand for commercial applications not possible. Shame that we have to get caught up with legalities. (Remember the DBase III problem where they lost their copyright for about three weeks when it was discovered that some of their code had come from open source projects?)

Good question. Thanks,


woolfel said...

even though ernest didn't use CLIPS as a basis for JESS, it is derivative to me. By derivative, I mean it uses the same principles, ideas and rule language. Most rules that run in CLIPS will run in JESS, so it's rather easy mistake to make. After I studied CLIPS code, it's pretty clear the design and implementation share nothing in common. Even though both implement the same language and RETE algorithm, the design is completely different.

Johan Lindberg said...

According to Ernest, a clone is NOT a spinoff nor a derivation ...

But Jess isn't a clone anymore! The Jess FAQ #1 (parts of it anyway) says:

1. What is Jess?
... Jess was originally conceived as a Java clone of CLIPS, but nowadays has many features that differentiate it from its parent. ...

It used to be a clone and then grew into something else. Better, larger, faster, whatever... how is *that* not a spinoff or a derivative work?

Maybe it's all splitting hairs and various shades of gray regarding how to use the words. And since I'm not a native speaker I'll fold. But I still think it sounds funny (peculiar, not haha).

... I'm just guessing that if it were a spinoff then that would have made the $100 code charge or the few paltry thousand for commercial applications not possible.

I don't think so. CLIPS is in the public domain meaning that you can pretty much do anything you want with it and its derivatives (oops, sorry about that ;-)

James Owen said...


According to what I've been told, a "clone" is not an exact copy. The Jess code in Java is not exactly like the C/C++ code in CLIPS. To do that would be really bad on several levels. Almost as bad as trying to duplicate COBOL code in C/C++ or Java.

For example, Linux is a "clone" of Unix. Had they been an exact copy (and both were written in C) then Linus Torvalds would have left himself open to a very protective law suit from AT&T, the original owners. Unix is now owned by, of all companies, SCO - who are themselves 25% owned (or used to be) by Microsoft. Fortunately, Mac OS X is based on the Free BSD systems.

Anyway, back to your question: The important thing is that if you portray yourself as a derivative or spinoff of a product, then you have to pay the original product some kind of licensing fee. I'm pretty sure that nothing would ever have happened but Ernest put a lot of work into avoiding such legal entanglements by completely writing all new code, even though the syntax is the same.

It was confusing to me at the time and I'm still not sure that I have all of the "t's" crossed and the "i's" dotted, but I'm just trying to keep out of hot water with everyone. And believe me, easy it isn't. :-)

BTW, just because it's now "all grown up" doesn't take away it's heritage as a clone of CLIPS since the syntax still remains the same.


Johan Lindberg said...

Ok. I think I get it now. You're talking about the source code not being derivative work. Right? I completely understand that.

Karl said...

The distinction here is between the sourcecode and the ideas/concepts.

JESS was essentially a clone of CLIPS in terms of ideas, concepts, rule language, etc. But JESS does not use any sourcecode from CLIPS.

The US Copyright law makes a legal definition for derivative works which involves the use of copyrighted aspects of another work.

Ernest has to be very careful not to use the term "derivative" because it could create an impression that he used CLIPS sourcecode.

Me? I like to say that JESS and CLIPS are in the same "family", and I draw the lines of their heritage back up to ART, OPS5, etc.

There is also a similar discussion that can be had about the relationship between CLIPS and ART depending on which history you read.