[EMAIL PROTECTED] wrote:
>
> No. CLIPS uses its own object-oriented language, "COOL," for defining
> objects which can be pattern-matched. Because Jess is hosted by a
> dynamic OO language, it has no need for this, and so uses Java as its
> object system directly.
>
<soapbox>
The uncaveated usage of "dynamic OO language" applied to Java is
something I find unsettling...
It should be noted (with great despair) that Java is a relatively poor
object-oriented substrate for an expert system. It is not "dynamic" in
the way Smalltalk, Lisp (CLOS), COOL, or even Perl are dynamic. Its
dynamism isn't inherent to the system, and it is thus more difficult to
use (Java's dynamism is rather like a dog walking on its hind legs.)
Many workarounds exist (dynamic class loading is possible, reflection is
possible, etc.), but the "Java way" often complicates what can otherwise
be simple operations in languages designed for dynamism from the start.
Additionally, Java lacks dynamic multimethods, interpretive compilation
and evaluation, multiple inheritance, and many of the slot/attribute
annotations to objects.
Unrelenting type enforcement, casting games, class compilation, and
method lookup for a .invoke() are all painful. Tinkering with an expert
system while running that is full of expensively derived state (it may
take a long time to get to the state desired for inspection/evalution)
is very difficult if part of that tinkering is with the methods of your
objects. The recompile, rerun to test, stop, edit, recompile... cycle
can be very expensive relative to dropping in new code fragments
on-the-fly. Along with this, COOL allows interactive inspection of
state (and correction of state as needed), which can often provide a
huge savings in time. Interpretive, interative reflection on objects is
a *big* deal (YMMV).
(BTW, has anyone tried using VisualAge for Java with Jess to mitigate
some of these issues?)
COOL, though burdened by certain quirks and limitations, is inspired by
CLOS with some useful artifacts of description logic/KL-ONE added.
These features, along with COOL's native dynamism, interpretive method
compilation, and *optional* type enforcement just might be more
important than native Java integration. In today's market, the COOL
niche may be vanishing, but there can be a cost to using Java (if a
group is used to "truly" dynamic languages the more expressive
features).
</soapbox>
FWIW, I agree that re-implementing COOL for Jess wouldn't have made a
lot of sense, particularly if it were a completely faithful
CLIPS-compatible version. (If you want COOL, use CLIPS. If you want
Java, use Jess.)
- Mike Smith
> I think =?iso-8859-1?Q?S=E9bastien_Darveau?= wrote:
> [Charset iso-8859-1 unsupported, filtering to ASCII...]
> > Hi,
> > I'd like to know if there is a way to define classes (as in clip) without
>using javabean and defclass.
> >
> > thanks
>
> ---------------------------------------------------------
> Ernest Friedman-Hill
> Distributed Systems Research Phone: (925) 294-2154
> Sandia National Labs FAX: (925) 294-2234
> Org. 8920, MS 9012 [EMAIL PROTECTED]
> PO Box 969 http://herzberg.ca.sandia.gov
> Livermore, CA 94550
>
> ---------------------------------------------------------------------
> 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]
> ---------------------------------------------------------------------
---------------------------------------------------------------------
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]
---------------------------------------------------------------------