Forward chaining expert system recommendation

209 views
Skip to first unread message

frr

unread,
Dec 28, 2003, 10:02:25 AM12/28/03
to
Hi,

Could someone please recommend a good low-cost forward chaining
expert system shell that works with Win32 (if possible with Corman Lisp)? O:-)

Thanks

Ray Dillinger

unread,
Dec 28, 2003, 12:49:49 PM12/28/03
to

Look around on the net for CLIPS. I think it ports to Corman Lisp fairly
easily, but I could be wrong about that.

CLIPS is basically a free version of ART*Inference, which was the Automated
Reasoning Tool developed by Inference Corporation. Inference, however, did
some things that seem, in hindsight, to indicate terminal stupidity. They
had NASA as a client, and NASA developed mission-critical software using
ART (IIRC it had something to do with the shuttle's landing gear deployment
system). But Inference formed a partnership with Sun and quit providing
DOS/Windows versions of their software. Meanwhile NASA had a budget office
to satisfy and had to buy all their computers from the same low-bid source,
which meant they could only get Intel-compatible machines.

This resulted in NASA having mission-critical software written in a language
that was only available on the computers they weren't allowed to buy. After
a certain amount of wailing and gnashing of teeth, what it boiled down to was
that they were legally able to hire programmers to implement the language on
"standard" hardware, but they weren't legally able to buy the "nonstandard"
hardware. Within a few months they had enough of the language running to
handle their mission-critical software, and as a taxpayer-sponsored effort,
it was released to the public.

This put Inference between a rock and a hard place, since a free version of
their main product, which ran on much cheaper hardware than their partner
would allow theirs to, was now available. They eventually put their eggs
in a different basket ("Case-Based Reasoning," a major buzzword at the time)
and spun off ART in a startup named Brightware, which marketed a Windows
version of ART until about 1995 and developed a few more tools, then got
eaten by Kana Communications during the very early part of the dot-com
collapse.

Brightware's Services Group, which I was part of for a while, spun off
independently as an expert-systems company named Mindbox, which as of a
couple years ago was still servicing a few clients who either had CLIPS
systems or had legacy installations of ART.

Meanwhile, CLIPS became the major tool of many, many, one-coder shops
that produced expert systems software for clients, and has seen modest,
but sustained, development as a freeware project -- mainly folks have
been contributing just enough time and attention to it to stave off
bit rot.

Bear
(The guy who wrote the HTML and Parsing
libraries for ART*Inference)

frr

unread,
Dec 28, 2003, 2:24:53 PM12/28/03
to
On Sun, 28 Dec 2003 17:49:49 GMT, Ray Dillinger <be...@sonic.net> wrote:

>frr wrote:
>>
>> Hi,
>>
>> Could someone please recommend a good low-cost forward chaining
>> expert system shell that works with Win32 (if possible with Corman Lisp)? O:-)
>>
>> Thanks
>
>Look around on the net for CLIPS. I think it ports to Corman Lisp fairly
>easily, but I could be wrong about that.

Actually I did check CLIPS, but it seemed to be written in C, not CL. This
wouldn't be a terrible problem, but the dll version of CLIPS
(http://eppe.tamu.edu/~xuxj/prog/download/dll/clipsdll.htm) isn't thread-safe.
Unfortunately, this is a major showstopper for me...

The production system must be embedable in a multithreaded C++ app for
Windows. Another constraint that I forgot to mention is that it should be
good (well, at least decent) at handling text.

I'm a bit puzzled now, and I'm not sure if we are talking about the same
CLIPS... :-?

>CLIPS is basically a free version of ART*Inference, which was the Automated
>Reasoning Tool developed by Inference Corporation. Inference, however, did

I remember an extremely cool meta search engine called InferenceFind. Is ti
related to this company?


Marc Battyani

unread,
Dec 28, 2003, 2:35:28 PM12/28/03
to

"frr" <frr...@telefonica.net> wrote

> Actually I did check CLIPS, but it seemed to be written in C, not CL. This
> wouldn't be a terrible problem, but the dll version of CLIPS
> (http://eppe.tamu.edu/~xuxj/prog/download/dll/clipsdll.htm) isn't
thread-safe.
> Unfortunately, this is a major showstopper for me...

Have you looked at LISA (http://lisa.sourceforge.net/)?

Marc


Jeff Greif

unread,
Dec 28, 2003, 5:01:13 PM12/28/03
to
Ray's history of ART vs. CLIPS is incorrect in a number of respects.

The first ART product from Inference was written in Lisp. NASA used it
starting in 1984. It had no DOS/Windows version and only ran on Lisp
Machines and later, some Unix workstations. In the mid-80's, NASA decided
to fly expert systems, particularly on the space shuttle, and required a
system that would run on PC's or some other kind of tiny embedded machines,
which had memory limitations at the point that were fairly tough for a
lisp-based system (remember 640K limits?). NASA built a public-domain ART
knockoff called CLIPS, written in C and using a subset of ART syntax as the
expert-system language, so it could run its existing expert systems.
Inference later built a proprietary C engine called ART-IM which started
from the CLIPS base but greatly improved performance and added all kinds of
stuff (an object system integrated with the rules, case-based reasoning, a
development environment). CLIPS acquired some of these features later also
through independent development. Eventuially ART-IM expanded further into
something called ART-Enterprise, which is what Brightware sold. The
original Lisp product was also very sophisticated, having significant
additional capabilities (truth maintenance, a hypothetical reasoning module,
and a backward-chaining engine, a generic CLOS UI based on CLX, as well as
all the aforementioned) but was phased out around 1992-3 when the company
decided Lisp was no longer of interest to the big companies to which they
wanted to sell. There are probably still some copies in production use.

In 1985-7, Inference also tried to produce a C version of ART by
automatically translating the Lisp version into C and being able to run the
ART-syntax constructs on top of that translated engine. This project failed
for a number of reasons. The ART-IM system based loosely on CLIPS
represented a way out.

Jeff


Ray Dillinger

unread,
Dec 28, 2003, 5:54:01 PM12/28/03
to
Jeff Greif wrote:
>
> Ray's history of ART vs. CLIPS is incorrect in a number of respects.
>
> The first ART product from Inference was written in Lisp. NASA used it
> starting in 1984. It had no DOS/Windows version and only ran on Lisp
> Machines and later, some Unix workstations. In the mid-80's, NASA decided
> to fly expert systems, particularly on the space shuttle, and required a
> system that would run on PC's or some other kind of tiny embedded machines,
> which had memory limitations at the point that were fairly tough for a
> lisp-based system (remember 640K limits?). NASA built a public-domain ART
> knockoff called CLIPS, written in C and using a subset of ART syntax as the
> expert-system language, so it could run its existing expert systems.

Thanks for the corrections, Jeff.

(Jeff was actually there through all of this; this was my second-hand
understanding of history that happened before I ever arrived at Brightware).

It's a shame though that CLIPS is C based instead of LISP-based;
I remember coding LISPy code (a dialect of Lisp reminiscent of LISPs in
the middle 80's) on ART*Enterprise (which had a truly slick dev environment),
but the underlying runtime, now that I think about it, was in C.

I wasn't aware of the CLIPS code reuptake into ART; I thought that
Inference had continued its own line of development.

Bear

Clark Wilson

unread,
Dec 28, 2003, 7:20:11 PM12/28/03
to
In article <4mauuvs9sh982va2f...@4ax.com>, frr149
@telefonica.net says...

> On Sun, 28 Dec 2003 17:49:49 GMT, Ray Dillinger <be...@sonic.net> wrote:
>
> >frr wrote:
> >>
> >> Hi,
> >>
> >> Could someone please recommend a good low-cost forward chaining
> >> expert system shell that works with Win32 (if possible with Corman Lisp)? O:-)
> >>
> >> Thanks
> >
> >Look around on the net for CLIPS. I think it ports to Corman Lisp fairly
> >easily, but I could be wrong about that.
>
> Actually I did check CLIPS, but it seemed to be written in C, not CL. This
> wouldn't be a terrible problem, but the dll version of CLIPS
> (http://eppe.tamu.edu/~xuxj/prog/download/dll/clipsdll.htm) isn't thread-safe.
> Unfortunately, this is a major showstopper for me...
>
There is a for-money ActiveX component that packages CLIPS. Not sure if
that kind of component is thead safe. But here is the URL:

http://www.athenainfsvcs.com/

There is a for-money Delphi component implementation of CLIPS and more,
but to the best of my knowledge it doesn't have any COM interface.
Don't know if it is packaged as a DLL. But here is the URL:

http://www.riversoftavg.com/inferenceengine.htm

Clark Wilson

Sashank Varma

unread,
Jan 2, 2004, 2:21:28 PM1/2/04
to
In article <JoIHb.502284$275.1412999@attbi_s53>,
"Jeff Greif" <jgr...@spam-me-not.alumni.princeton.edu> wrote:

> The first ART product from Inference was written in Lisp. NASA used it
> starting in 1984. It had no DOS/Windows version and only ran on Lisp
> Machines and later, some Unix workstations. In the mid-80's, NASA decided
> to fly expert systems, particularly on the space shuttle, and required a
> system that would run on PC's or some other kind of tiny embedded machines,
> which had memory limitations at the point that were fairly tough for a
> lisp-based system (remember 640K limits?). NASA built a public-domain ART
> knockoff called CLIPS, written in C and using a subset of ART syntax as the
> expert-system language, so it could run its existing expert systems.

I had assumed CLIPS was a C implementation of OPS5, of which
a Common Lisp implementation was in the public domain...I
guess I was wrong.

Was there any intellectual relationship between OPS5 and ART?
For example, did ART use the rete algorithm?

Sashank Varma

unread,
Jan 2, 2004, 2:23:56 PM1/2/04
to
In article <4mauuvs9sh982va2f...@4ax.com>,
frr <frr...@telefonica.net> wrote:

> The production system must be embedable in a multithreaded C++ app for
> Windows. Another constraint that I forgot to mention is that it should be
> good (well, at least decent) at handling text.

I hate to steer you away from Lisp, but you should check out
Rob Doorenbos' mid-1990s dissertation, which among other things
presents a highly-optized C implementation of the rete algorithm
at the heart of many forward chaining expert/production systems.
Look for it through the school of computer science at Carnegie
Mellon.

Sashank Varma

unread,
Jan 2, 2004, 2:12:08 PM1/2/04
to
In article <33otuvomcc33ilgk6...@4ax.com>,
frr <frr...@telefonica.net> wrote:

> Could someone please recommend a good low-cost forward chaining
> expert system shell that works with Win32 (if possible with Corman Lisp)? O:-)

David Young posts occasionally here about a CLIPS-like system
he has written in thoroughly modern Common Lisp. I believe
it's called LISA, and I *highly* recommend you check it out.

Ray Dillinger

unread,
Jan 3, 2004, 2:08:55 PM1/3/04
to

Yes, ART did use the Rete Algorithm. I remember it from working with
ART*Enterprise -- you could tune your code for efficiency if you knew
how Rete was applied in this case (matching from left to right).

Bear

frr

unread,
Jan 4, 2004, 7:22:53 AM1/4/04
to
On Fri, 02 Jan 2004 13:12:08 -0600, Sashank Varma <no...@vanderbilt.edu> wrote:


>> Could someone please recommend a good low-cost forward chaining
>> expert system shell that works with Win32 (if possible with Corman Lisp)? O:-)
>
>David Young posts occasionally here about a CLIPS-like system
>he has written in thoroughly modern Common Lisp. I believe
>it's called LISA, and I *highly* recommend you check it out.

Do you have experience using it? Is it stable for production code? O:)

Thanks

frr

unread,
Jan 4, 2004, 10:14:22 AM1/4/04
to
On Fri, 02 Jan 2004 13:23:56 -0600, Sashank Varma <no...@vanderbilt.edu> wrote:


>> The production system must be embedable in a multithreaded C++ app for
>> Windows. Another constraint that I forgot to mention is that it should be
>> good (well, at least decent) at handling text.
>
>I hate to steer you away from Lisp, but you should check out
>Rob Doorenbos' mid-1990s dissertation, which among other things
>presents a highly-optized C implementation of the rete algorithm
>at the heart of many forward chaining expert/production systems.
>Look for it through the school of computer science at Carnegie
>Mellon.

Thanks for the link, I'll check it out. :-)

I had to google like crazy, but finaly found it. Here's the link, in case
someone else is interested too.
http://reports-archive.adm.cs.cmu.edu/anon/1995/CMU-CS-95-113.pdf

Kenny Tilton

unread,
Jan 4, 2004, 10:23:46 PM1/4/04
to

You might check with the author. I believe he has at least one user
using it for Real Work. I also recall a mention on the SourceForge site
that the code was mature/finished/done. Sounds like it is worth a look
at least.

kt

--
http://tilton-technology.com

Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film

Your Project Here! http://alu.cliki.net/Industry%20Application

David E. Young

unread,
Jan 5, 2004, 1:32:31 PM1/5/04
to
frr <frr...@telefonica.net> wrote in message
> Do you have experience using it? Is it stable for production code? O:)
>
> Thanks

Hi. Lisa is certainly stable. Is it production quality? Hmm... As the
author, there are things I would add before describing Lisa that way.
However, there are numerous people using it, and I've heard from
several folks planning on using Lisa for commercial systems. Whether
or not they've been successful, I don't know. I would hope if Lisa
just wasn't working out I would hear about that from users, but I
haven't. The comments have been all positive, and several folks have
submitted enhancements and bug fixes.

I suspect you'll need to judge for yourself the viability of Lisa for
your application.

Cheers,

David.

Sashank Varma

unread,
Jan 5, 2004, 1:39:04 PM1/5/04
to
In article <1b1gvv86g6jb7skfl...@4ax.com>,
frr <frr...@telefonica.net> wrote:

> >David Young posts occasionally here about a CLIPS-like system
> >he has written in thoroughly modern Common Lisp. I believe
> >it's called LISA, and I *highly* recommend you check it out.
>
> Do you have experience using it?

No, but the author asked the right questions when he was
initially developing it, and the code I saw then was
excellent.

Christopher C. Stacy

unread,
Jan 5, 2004, 5:24:01 PM1/5/04
to
I missed the beginning of this thread, but Xanalys has an
expert system programming product as part of their Lisp suite.
Reply all
Reply to author
Forward
0 new messages