[comp.ai] NEXPERT: Its Use In Larger System Development

sire@PacBell.COM (Sheldon Rothenburg) (11/15/90)

We are looking to develop the requirements for a new system utilizing
object oriented analysis. We are looking at several alternatives.
Colleagues have suggested that we investigate Nexpert, which we know 
has some of the object and/or frame features we desire. Yes, we also
know it sells the most copies of any shell.

I would like to pose a few questions from my project's team concerning
the capabilities of Nexpert to handle large system development.

1. How well does Nexpert handle largenumbers of objects, like
thousands? Hundreds?

2. How capable was Nexpert of handling user-defined inheritance
structures?

3. Does Nexpert handle hypothetical worlds/viewpoints? How does it han-
dle process suspension/resumption?

4. Re developing a graphics oriented requirements definition language,
how well do you think Nexpert would support it?

The underlying concern is can this tool be considered in the same 
class as Kee and Art for handling large, complex applications, or 
is it a general purpose tool that occupies some mid-range position
as far as functionality and performance?

Last, but not least, could someone cross-post this to the Nexpert
users' group, or let me know how to caontact it?
THanks

Shelley

jkk@aiai.ed.ac.uk (John Kingston) (11/15/90)

In article <1990Nov14.192306.27466@PacBell.COM> sire@PacBell.COM (Sheldon Rothenburg) writes:
>We are looking to develop the requirements for a new system utilizing
>object oriented analysis. We are looking at several alternatives.
>Colleagues have suggested that we investigate Nexpert, which we know 
>has some of the object and/or frame features we desire. Yes, we also
>know it sells the most copies of any shell.

>The underlying concern is can this tool be considered in the same 
>class as Kee and Art for handling large, complex applications, or 
>is it a general purpose tool that occupies some mid-range position
>as far as functionality and performance?

There was a discussion on the relative merits of CLIPS and NEXPERT a while
ago which I saved a copy of. I've included a summary below. Mail me for a full
version, Shelley (with several mail addresses if possible).

From what I know of NEXPERT, it is a 'mid-range' tool rather than being in
the same class as ART or KEE. Other tools in the same category include
ART-IM (Inference), KAPPA-PC (IntelliCorp), and ADS (Aion). There are
several other tools which might be claimed to fit this category, including
ProKappa (IntelliCorp), which is probably near the top of this range, based
on hearsay (I haven't seen it yet).




CLIPS
Pros
------
C Source available makes it very flexible
Easy to learn - you can "Get going" right away
Easy to use for embedded applications (with good documention)
Easy to call C routines from within CLIPS
Uses Rete algorithm

Cons
------
Not object-oriented (changing in 5.0)
One user found it slow and a memory hog on the Sun 3/50 
	(this was with using only 10 rules)
Lack of backward chaining

----------------------------------------------------------------------------

NEXPERT

Pros
------
Easy to embed.
Agenda Monitor to observe inference engine
Graphical Interface

Cons
_____
This was a big complaint - 
   Documentation hard to understand (suggest taking formal training)
One user found forward chaining "tortuously" slow" with medium to large
   rule base (doesn't use Rete algorithm)
Object-Oriented features overrated because does not have message 
   sending capabilities
Rule editor is "cumbersome"
Debugging painful


  * I fear for the freedom fighter who chose the bloody road               *
  * Who tried to harness evil to try to lift an evil load                  *
  * And I understand the righteous wrath that drove him to what he's done  *
  * But forgiveness lies in nail-scarred hands, not in the hand with a gun *
     -- Garth Hewitt, **Road To Freedom**

John Kingston, AI Applications Institute, University of Edinburgh,
	       80 South Bridge, Edinburgh EH1 1HN, Scotland
E-mail jkk@uk.ac.ed.aiai, phone 031-225 4464 ext. 229   FAX: 031 226 2730
Arpanet: J.Kingston%uk.ac.ed@nfsnet-relay.ac.uk    TELEX: 727442 UNIVED G

sga@redwood19.cray.com (Steve Anderson) (11/16/90)

Sheldon:

I've tried sending email but it keeps bouncing.  I disagree with Mr.
Kingston's comment that Nexpert is a midrange tool, and also with most of the Cons listed for Nexpert from the previous discussion.  Send me a good email
path and I will elaborate.

Steven Anderson
Cray Research, Inc.
Eagan, MN
sga@cray.com or uunet!cray!sga

johner@portia.Stanford.EDU (John Lynch) (11/16/90)

In article <133558.21166@timbuk.cray.com> sga@redwood19.cray.com (Steve Anderson) writes:
>Sheldon:
>
>I've tried sending email but it keeps bouncing.  I disagree with Mr.
>Kingston's comment that Nexpert is a midrange tool, and also with most of the Cons listed for Nexpert from the previous discussion.  Send me a good email
>path and I will elaborate.

I also have some thoughts on Nexpert I'd like to pass on but my mail is
bouncing as well. could you please post the good email path to this group?
Thanks,
John Lynch
Trilogy Development Group
johner@portia.stanford.edu

jkk@.uucp (John Kingston) (11/16/90)

>In article <133558.21166@timbuk.cray.com> sga@redwood19.cray.com (Steve Anderson) writes:
>
> I disagree with Mr.
>Kingston's comment that Nexpert is a midrange tool, and also with most of the Cons listed for Nexpert from the previous discussion.

>
In article <1990Nov15.212044.19864@portia.Stanford.EDU> johner@portia.Stanford.EDU (John Lynch) writes:
>I also have some thoughts on Nexpert I'd like to pass on but my mail is
>bouncing as well. could you please post the good email path to this group?


Since this discussion is getting lively, I am posting all the comments on
Nexpert which I saved from the CLIPS vs Nexpert discussion. Hope this is
useful. 

John K.



COMMENTS ON NEXPERT: 

We have both Clips and Nexpert.  As far as documention goes, if you
want to understand how the inference engine works - CLIPS wins out
hands down.  Nexpert is a good rule-based system, but I strongly
believe their object-oriented features are WAY oversold. 

I have been a KEE user for several years and it is what I would
consider to be a true object-oriented tool.

My experience with Nexpert is that you get
very tired of the spreadsheet like rule and object editors, once
you learn their commands.

BTW, the  Lisp-like syntax of Nexpert comes from its origin.  The tool
was originally written in Lisp, and then recoded in C.

===============	regards   'mark  =============================================
Mark Ahlenius 		  voice:(708)-632-5346  email: uunet!motcid!ahleniusm
Motorola Inc.		  fax:  (708)-632-2413
Arlington, Hts. IL, USA	 60004




I've been using Nexpert for several years and have a number of
objections.

The documentation is opaque or missing on a number of areas that are
essential to building a large real-world application.  In particular,
the internal mechanics of the inference engine are not described at
all.  Hence it is impossible to determine how mechanisms such as
normal rule-firing and if-change actions interact.

The user interface is often cumbersome to use.  We have built much of
our knowledge base in a normal text editor (using Nexpert's lispy
internal syntax) rather than use the rule editor.  There are also some
strikingly bad design decisions, such as organizing the knowledge base
according to the name of the hypothesis rather than the name of the
rule.

Debugging can be painful.  If the inference engine enters a loop it 
will often not respond to user commands, forcing an interrupt and 
restart.  Many of the error messages are nearly useless.  If a loop
is detected during backward chaining, the user gets a message to that
effect - but no indication as to what rule caused the message!

Overall, Nexpert strikes me as having been designed by the marketing
department and never tested on real problems.  (I know, it is the best
selling tool.  What can I say?  I'm merely reporting my experiences.)
Don't be too impressed by the spiffy features such as the graphic
display of the inference tree.  That's the kind of thing that looks
great during a demo and is rarely used during development.

I do not recommend Nexpert.  Our own group is looking for a different
tool for our future projects.

					-- Scott Turner
>From: srt@aerospace.aero.org (Scott "TCB" Turner)
This posting reflects my opinions, and not those of The Aerospace
Corporation.


>From: srt@aerospace.aero.org (Scott "TCB" Turner)

As long as I'm bitching about Nexpert...

I'm in the process of debugging a problem with two interacting
knowledge bases, so I load them up, open up the "Current Rule" and
"Current Hypotheses" windows, and run the inference engine (called
"Knowcess" for some unknown marketing reason) so I can watch what's
happening.  Result: absolutely nothing in the "Current Rule" and
"Current Hypotheses" windows.  Makes them kind of useless.

Decided to check the documentation to see if I'm doing anything wrong.
That turns out to be difficult to do; the documentation doesn't have
an index.  And from examining the table of contents of each chapter 
(which are numbered independently!) I can't find any mention of these
windows.  

This is the kind of thing I run into every time I use Nexpert.  Not 
recommended.

				-- Scott Turner



>From: vcr@ROUGE.EDRC.CMU.EDU (V C Ramesh)

nexpert-users@cam.edrc.cmu.edu
  is the mailing list set up for nexpert users
for correspondence regarding nexpert object.

Those who would like to be added to this list,
can send mail to:
   nexpert-users-request@cam.edrc.cmu.edu

Thanks,
Ramesh
vcr@cs.cmu.edu


>From: vcr@ROUGE.EDRC.CMU.EDU (V C Ramesh)

To clarify my earlier post,
  nexpert-users@cam.edrc.cmu.edu
is a distribution list.  Mail sent to this address
gets automatically forwarded to all the users in 
the list (which is a mail alias).

This mailing list is intended to serve as a bboard-
like forum, for communicating problems (and soliciting
solutions), initiating discussions, and offering
suggestions concerning usage of Nexpert Object expert
system shell.  Anything pertaining to Nexpert Object
should be fair game.

Again, users who would like to be added on to 
the list, can send mail to: 
   nexpert-users-request@cam.edrc.cmu.edu

Any questions, comments or suggestions concerning
this list may be sent to this (nexpert-users-request)
address (or to the list, nexpert-users@cam.edrc.cmu.edu)
as well.

Ramesh
vcr@cs.cmu.edu



From: barshay@Stars.Reston.Unisys.COM ( Unisys)

Hi, 
  Thanks to everyone who posted and mailed responses
to my CLIPS v. NEXPERT question!

... I am curious about the SQL interface that I heard
NEXPERT is incorporating in their latest release

Thanks again.
Jane

Summary:

CLIPS
Pros
------
C Source available makes it very flexible
Easy to learn - you can "Get going" right away
Easy to use for embedded applications (with good documention)
Easy to call C routines from within CLIPS
Uses Rete algorithm

Cons
------
Not object-oriented (changing in 5.0)
One user found it slow and a memory hog on the Sun 3/50 
	(this was with using only 10 rules)
Lack of backward chaining

----------------------------------------------------------------------------

NEXPERT

Pros
------
Easy to embed.
Agenda Monitor to observe inference engine
Graphical Interface

Cons
_____
This was a big complaint - 
   Documentation hard to understand (suggest taking formal training)
One user found forward chaining "tortuously" slow" with medium to large
   rule base (doesn't use Rete algorithm)
Object-Oriented features overrated because does not have message 
   sending capabilities
Rule editor is "cumbersome"
Debugging painful








John Kingston, AI Applications Institute, University of Edinburgh,
	       80 South Bridge, Edinburgh EH1 1HN, Scotland
E-mail jkk@uk.ac.ed.aiai, phone 031-225 4464 ext. 229   FAX: 031 226 2730
Arpanet: J.Kingston%uk.ac.ed@nfsnet-relay.ac.uk    TELEX: 727442 UNIVED G

augs@redwood23.cray.com (Paul Algren) (11/17/90)

I have used Nexpert to build a large and complex tool for cpu instruction
failure debugging. 
I my opinion Nexperts most powerful feature is its inheritance
mechanism, which allows for multiple inheritance of: values,  code for determining a value,
general functions for these objects etc.  
I can see that the comment regarding the editors used in the graphical interface may be
too simple-minded for your basic programmer who would rather use VI. 
There are short-cuts for using the editor.  Like key word completion (type just the necessary
characters to denote a particular keyword),  syntax checking,  dependancy checking,  automatic
creation of needed simple structures, and more.

The comment about not seeing anything in the current rule and current hypothesis is stupid.
There is a pop-up window that allows the user to turn on writing to these windows.  
There is a reason they are not always on.  Performance.   
            
I could go on, but I'm not sure anyone really wants to know more......

Please send email to augs@cray.com if you have some specific questions/misunderstandings.

-Paul