[comp.lang.smalltalk] expert system shell written in Smalltalk

napoli@loria.crin.fr (Amedeo Napoli) (12/26/90)

Bonne annee a tous,

I am searching for a free expert system shell with true variables,
forward or/and backward chaining, written in Smalltalk,
any pointers are welcome,
many thanks in advance,
can you send me directly the replies,
I will post a summary if anyone is interested,

napoli@loria.crin.fr (Amedeo Napoli) (02/16/91)

Hello, a few weeks ago, I asked for a free expert system shell written
in Smalltalk,
I got information about 5 systems, KNOWLEDGE FACTORY, LAURE, HUMBLE,
NEOPUS and CLIPS, LAURE and CLIPS being not systems written in Smalltalk.
Here is a (short!) summary of the replies.

Many thanks to:
gt4084c@prism.gatech.edu (SRINIVASAN,K)
ea5@prism.gatech.edu (ANDERSON,EDWARD D.)
caseau@maya.bellcore.com (Yves J Caseau)
warner@scubed.scubed.com (Ken Warner)
Piersol@Apple.com (Kurt Piersol)
Francois PACHET <fdp@litp.ibp.fr>
stevep@SLC.COM (Steve Peterson)
Andrew Jones <andrew@computing-maths.cardiff.ac.uk>
Robert Greer <GREBM@CUNYVM.bitnet>


1- Knowledge Factory (E.D. Anderson of Georgia Tech. Education)
   =================

>Date: Wed, 26 Dec 90 12:08:34 -0500
>From: gt4084c@prism.gatech.edu (SRINIVASAN,K)
>To: napoli@loria
>Subject: Re: expert system shell written in Smalltalk
>Newsgroups: comp.lang.smalltalk,comp.object
>In-Reply-To: <3015@loria.crin.fr>
>Organization: Georgia Institute of Technology
>Cc: ea5@prism.gatech.edu

You can contact Mr. E.D. Anderson of Georgia Tech. Education
Exrension. He has a shell by name Knowledge Factory, developed in ST
V. It also supports black board architecture.

CONTACT FOR KNOWLEDGE FACTORY:
ea5@prism.gatech.edu (ANDERSON,EDWARD D.)

SRINIVASAN,K
School of Textile Engineering Georgia Tech.
uucp: ...!{allegra,amd,hplabs,seismo,ut-ngp}!gatech!prism!gt4084c
ARPA: gt4084c@prism.gatech.edu


2- LAURE (Yves Caseau, Bellcore) not written in Smalltalk
   =====

>Date: Thu, 27 Dec 90 07:34:04 -0500
>From: caseau@maya.bellcore.com (Yves J Caseau)
>To: napoli@loria
>Subject: Faute de grives ....

Bonjour .. et bonne annee !
If you do not find any free expert system shell written in Smalltalk,
you can try LAURE, which includes an inference engine with backward and
forward chaining, which is free, and which is, I think, among the fastest
inference engine that one can find now (the performances of the
inference engine are better than most good implementations of RETE,
these implementations being not free...).
-- Yves Caseau.


3- HUMBLE (Kurt Piersol)
   ======

>Date: Thu, 27 Dec 90 07:42:55 PST
>From: warner@scubed.scubed.com (Ken Warner)
>To: napoli@loria
>Subject: Re: expert system shell written in Smalltalk
>Newsgroups: comp.lang.smalltalk,comp.object
>In-Reply-To: <3015@loria.crin.fr>
>Organization: S-CUBED, A Division of Maxwell Labs; San Diego CA

I'm interested in this also. I know of one shell, HUMBLE from Xerox
Special Information Systems in Pasadena. However, it doesn't have
backward chaining.
It makes up for this by being Smalltalk so one could extend it--with
time.
I've also thought about integrating CLIPS with Smalltalk by writing a
user primitive interface (you are aware of CLIPS from NASA?).
Let me know what you find out.
Ken Warner

>Date: Mon, 31 Dec 90 10:30:18 PST
>From: warner@scubed.scubed.com (Ken Warner)
>To: napoli@loria
>Subject: Re:  expert system shell written in Smalltalk

Here is info on both CLIPS and HUMBLE.  Remember CLIPS is in C
and would need a Smalltalk interface written.

HUMBLE:
Xerox Special Information Systems
Vista Laboratory
250 North Halstead Street
PO Box 5{{8
Pasadena,Ca 91107-0608
(818) 351-2351

Information about CLIPS is farther.
===================================

>From: Piersol@Apple.com (Kurt Piersol)
>To: napoli@loria (Amedeo Napoli)
>Cc: Piersol@Apple.com
>Subject: Re: expert system shell written in Smalltalk
>Date: Thu, 17 Jan 1991 10:22:53 PDT
>References: <3015@loria.crin.fr>
>Organization: Apple Computer, Inc.

You can get the package I wrote at Xerox, while I was there. It's
called HUMBLE, and while it has a few rough edges, it's basically an
enhanced EMYCIN style backward chaining engine, with a modular
certainty system and hooks to the rest of Smalltalk.
You should contact Evelyn Van Orden, at US phone 818-351-2351.
It's fairly cheap (a few hundred bucks).

Kurt Piersol                                           Apple Computer ,Inc.
arpa: Piersol@Apple.com                                  20525 Mariani Ave.
uucp: ...!apple!piersol                                Cupertino, CA 95014
ALink: PIERSOL.K                                              408/974-1201

Disclaimer: My opinions are my own, NOT Apple's. So There.


4- NeOpus
   ======

>Date: Tue, 8 Jan 91 11:42:22 +0100
>From: Francois PACHET <fdp@litp.ibp.fr>
>To: napoli@loria
>Subject: Re: expert system shell written in Smalltalk
>Newsgroups: comp.lang.smalltalk,comp.object
>In-Reply-To: <3015@loria.crin.fr>
>Organization: Institut Blaise Pascal, Paris, France

Bonjour,
I am currently building a system, which is based on Opus (see Laursen,
OOPSLA'87), a transposition of OPS5 in Smalltalk. NeOpus is an
inference engine which works with true variables in forward chaining.
This is not a commercial tool but it is used by people here. I can
send you some papers about the system if you want.
A bientot
        Francois Pachet
LAFORIA (LAboratoire FOrmes et Intelligence Artificielle)
        aile 46-00 2eme etage
        Universite Pierre et Marie Curie
        4 place Jussieu
        75252 PARIS CEDEX 05, FRANCE
phone : 44 27 62 81
telex : 200_145 F
email : fdp@litp.ibp.fr


5- CLIPS
   =====

see the following articles :
============================

4032, 4059 and 4066 of comp.ai
2184, 2187, 2190, 2199, 2204 and 2229 of comp.lang.lisp

Info sent by Ken Warner:

>Thu Mar 17 09:00:36 PST 1988
>Article 1478 of comp.ai:
>Relay-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site scubed.UUCP
>From: shprentz@bdmrrr.bdm.com (Joel Shprentz)
>Newsgroups: comp.ai
>Subject: Re: Every heard of KLIPS ???
>Message-ID: <964@bdmrrr.bdm.com>
>References: <31922@gt-cmmsr.GATECH.EDU>
>Organization: BDM Corp., McLean, Virginia
>Lines: 82
>Summary: Clips is NASA's C implementation of OPS5

In article <31922@gt-cmmsr.GATECH.EDU>, rr@gt-cmmsr.GATECH.EDU
(Richard Robison) writes:
> A professor here is interested in a program called KLIPS.  He was
> very vague about what it was, but did say that it was some kind of
> AI application. Any help locating this program would be very
> helpful.  Thanks.

HOW TO GET CLIPS

Clips is available as program #MSC-21208 from COSMIC, NASA's software
distribution center at the University of Georgia.  Their address is:

        COSMIC
        The University of Georgia
        382 East Broad Street
        Athens, Georgia  30602

        Phone: (404) 542 3265
        Fax: (404) 542 4807
        Internet: service@cossack.cosmic.uga.edu

We received Clips on six IBM-PC floppy disks.  Other formats are
available.  The disks included the C source code, PC executables,
utility programs, and some examples.  The C source code is portable;
we compiled it on a Sun workstation.

CLIPS VS. OPS5

Clips (C Language Integrated Production System) is similar to OPS5.
OPS5 skills are directly transferable to Clips.  Clips rules, like OPS5
rules, are compiled into a network for efficient matching with the Rete
algorithm.  This algorithm is inherently forward chaining.

One noticeable difference between OPS5 and Clips is that OPS5 tags 
values in working memory elements but Clips does not.  For example,
an OPS5 memory element may be

        (Person ^name Smith ^age 23 ^eyes blue)

Because the OPS5 values are tagged, they may be reordered without
changing their meaning:

        (Person ^age 23 ^name Smith ^eyes blue)

When matching OPS5 patterns, partial working memory elements may be
specified.  This pattern selects people with blue eyes:

        (Person ^eyes blue)

Clips uses the value's position within the memory element to associate
it with some meaning.  The Clips version of the same person is

        (Person Smith 23 blue)

To match blue eyed people with Clips, wildcards must match values that
don't matter:

        (Person ? ? blue)

The value tagging difference makes Clips program development more
error prone than OPS5 development.  

THE C INTERFACE

Clips can interface to C programs in three ways.  First, Clips rules can
call C functions.  This is great for complex calculations and 
user interfaces. The C functions must be listed in a table compiled
into Clips.

Second, C programs may call the Clips inference engine to do logical
processing.  The Clips system is embedded within a C program.

Third, Clips provides C functions to assert information, define rules,
etc.  The standard clips user environment simply provides interactive
access to these functions.

Clips may also be interfaced with languages other than C.  Examples
show how to interface to Ada and FORTRAN.

-- 
Joel Shprentz                   Phone:  (703) 848-7305
BDM Corporation                 Uucp:  {rutgers,vrdxhq,rlgvax}!bdmrrr!shprentz
7915 Jones Branch Drive         Internet:  shprentz@bdmrrr.bdm.com
McLean, Virginia  22102


==================================
c'est tout pour aujourd'hui,
au revoir,
Amedeo