I think John wrote:

I hesitate to get involved in this discussion, but perhaps by
supplying some of the missing information early on, I can avoid
turmoil later.

> 
> Well...let me start will the fundamentals of rule-based programming in both
> Jess and CLIPS. Rule-based programming resembles event-based programming
> (like exceptions in Java). If we can program rules in Java or C++, then what
> is the need for Jess and Protege. What role does these tools play?

First and foremost, the right tool for any job is the one that lets
you solve the problem at hand, such that the result is fast enough,
scales well enough, and such that the resulting code can be
maintained. No one tool is right for every job.

> 
> Today, I re-programmed my entire ontology in VC++ using MFC(event-based).
> The result is faster and highly portable ontology.

I am amused to hear VC++ and MFC referred to as being more portable
than Java. But in any case, if what you've written solves whatever
problem you're solving easily enough and well enough, then indeed,
you've found the right tool for the job. No arguments there.

Rule engines are used by many companies for a number of reasons, but
among them are modularity (the individual rules are independent),
scalability (continues to work well as the number of rules and working
memory elements increases), liveness (the ability to modify a running
rulebase,) performance, and maintainability (due largely to the
modularity.) If you read up on the Rete algorithm, as described in the
Jess manual and elsewhere, you'll get an idea of the kind of
siutuation in which a good rule engine can perform much better than
the sort of code you've written.

> OK ....let me compare CLIPS and Jess. Both have the same syntax...CLIPS can
> be portable to almost any language. Also, since it is built in C, the
> run-time is extremely fast comparing Jess. On the other hand, Jess depends
> on Java and Java programming alone for external interface.

Jess was written to use largely the same syntax as CLIPS to make
transitioning from CLIPS to Jess easier. But Jess was (as should go
without saying) intended to improve upon CLIPS, and many people feel
that it has succeeded in that regard.

What I'm hearing from you is that you're not a Java person, and that's
really fine. The world of programming still divides fairly neatly into
Java and non-Java camps, into Microsoft and non-Microsoft camps. This
is not the place to have those kinds of discussions. Suffice to say
that for many programming shops, being Java-based is an advantage
rather than a liability.

The claims about C/C++ being intrisically faster than Java are just FUD;
there are many benchmarks available on the Web showing that this
simply isn't true, and hasn't been since Java's earliest days. One
thing about Java that *is* slow is program startup, so if you're
writing toy programs that run for only a second, then Java is indeed
going to seem slower. For substantial programs, or even small programs
that run in a persistent application server, then this startup issue
isn't there. Of course, most code being written today falls into this
last category. 

But in fact, the truth is that Jess is often much faster than CLIPS
for nontrivial programs due to the advanced algorithms is uses. Jess's
performance on the standard Miranker rule-engine benchmarks is orders
of magnitude better that CLIPS for large problem sizes, as has been
independently measured. Jess' performance really shines in situations
where there are many objects in working memory and your rules need to
make comparisons across multiple memory elements.

> 
> CLIPS (developed by NASA) is well documented and been the language of AI
> systems for almost two decades. I learned Jess syntax from CLIPS
> documentation.

There are many commercial rule engines, Jess being but one; it's a
large and thriving market. You'll have to draw your own conclusions there.

> 
> Maybe I am wrong about Jess, but with my current perspective, i dont see any
> good reasons to use Jess instead of CLIPS, C++, or even sole Java coding.

I think you've hit the nail on the head right there: "with your
current perspective," the reasons why rule engines are used aren't
obvious to you. With some experience, you may come to understand.

---------------------------------------------------------
Ernest Friedman-Hill  
Advanced Software Research          Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
PO Box 969, MS 9012                 [EMAIL PROTECTED]
Livermore, CA 94550         http://herzberg.ca.sandia.gov
--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to