Subject: AIList Digest V5 #74

From: vtcs1::in% <[email-masked]>
Date: Tue, 10 Mar 87 00:48:40 est

AIList Digest             Monday, 9 Mar 1987       Volume 5 : Issue 74

Today's Topics:
  Query - Checking Rule-Based Expert Systems &
    Public-Domain Expert System Request,
  Source - Eliza, Doctor, Parry, Ractor, etc,
  Expert Systems - Explanation & Analysis of Unknown Data,
  Philosophy - Self-Recursive Functions == Consciousness

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

Date: Sun, 8 Mar 87 9:31:01 WET
From: "G. Joly" (Birkbeck) <[email-masked]>
Subject: Checking Rule-Based Expert Systems (Info Request).

We are at the start of a project which is examining the area
of validation and verification of rule-based expert systems.
CHECK [1] and ONCOCIN [2] are the two major systems of which
we are aware. Are there any others? How isomorphic are rule-based
systems; can these and other techniques be applied in general?
Are any other (e.g. database) techniques applicable?

Thanks in advance for any pointers and information,
Gordon Joly,
Dept. of Computer Science,
Birkbeck College,
University of London.

ARPA: [email-masked]
BITNET: [email-masked]
UUCP: ...{seismo,decvax,ucbvax}!mcvax!ukc!uk.ac.bbk.cs!gordon

[1] T.A.Nguyen, W.A.Perkins, T.J.Laffey and D.Pecora, "Checking
    an Expert Systems Knowledge Base for Consistency and Completeness".,
    IJCAI 1985, pp 375-378.
[2] M.Suwa, C.Scott and E.H.Shortliffe, "An Approach to Verifying
    Completeness and Consistency in a Rule-Based Expert System",
    The AI Magazine, Fall 1982, pp 16-21.

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

Date: 6 Mar 87 12:20:04 GMT
From: [email-masked]  (S.Saal)
Subject: Expert System Request

I am trying to set up a seminar to review expert systems.  Is
there any public domain expert systems available that I could
get my hands on so that we can walk through the source code?

Beggers can't be choosers so I really don't care what language
it is in.  All I want is source (commented code would be nicer,
though :-).

Please reply by E-MAIL to

Sam Saal        ..!attunix!sfbai!saal

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

Date: 6 Mar 87 16:00:12 GMT
From: [email-masked]  (David H. Copp)
Subject: Re: Eliza, Doctor, Parry, Ractor, etc, ...

"The Policeman's Beard is Half Contructed,"
authored by Racter (with a little help from
William Chamberlain), Warner Books Inc., 666 Fifth Avenue,
New York, NY  10103, USA.  First printing Oct 1984.

This is a new publisher.  You may have to write directly to
Warner Books, P.O. Box 690, New York, NY  10019, USA.
They ask for a check for the list price ($9.95) plus
$0.75 per order and $0.50 per copy.

This is not a technical book.  It tells you very little about
Racter.  It is an amusing addition to your coffee table.

Martin Gardner (or was it Hofstedder?) devoted two or
three pages to Racter about three years ago (Scientific American).
Good article.  The program itself can be purchased, IBM PC format,
for about $75--see the SA article.)
--
                                David H. Copp
                                (201) 829-4337
                                bellcore!copp

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

Date: 6 Mar 87 21:58:32 GMT
From: [email-masked]  (Larry Yang)
Subject: Re: dear abby....

In article <[email-masked]> [email-masked] (Crah) writes:
>In article <[email-masked]>, [email-masked] (Roy Masrani) writes:
>>
>> Dear Abby.  My friends are shunning me because i think that to call
>> a program an "expert system" it must be able to explain its decisions.
>> "The system must be able to show its line of reasoning", I cry.  They
>> say "Forget it, Roy... an expert system need only make decisions that
>> equal human experts.  An explanation facility is optional".  Who's
>> right?

In medical decision systems, the ability to explain the decision
is very important.  I believe that most medical 'expert' systems
(MYCIN and INTERNIST come to mind) have a 'why' or 'explain'
feature.  My understanding is that these systems were to
have applications in teaching, and such a feature would help
medical students understand the medical decision-making process.

But beyond the educational application, it seems that an 'expert'
system will gain greater acceptance if it had an 'explain'
feature.  Would you accept a solution that some black-box,
electronic oracle offered you, without any why or wherefore?
Imagine two doctors diagnosing a condition.  Suppose one were
asking the other for his/her advice.  Would the first doctor
accept just a diagnosis from the second, or would he/she also
ask for an explanation?

================================================================================

--Larry Yang [[email-masked],{backbone}!sun!lyang]|   A REAL _|> /\ |
  Sun Microsystems, Inc., Mountain View, CA      | signature |   | | /-\ |-\ /-\
  "Build a system that even a fool can use and   |          <|_/ \_| \_/\| |_\_|
   only a fool will want to use it."             |                _/          _/

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

Date: 5 Mar 87 17:39:06 GMT
From: [email-masked]  ( U of Dundee)
Subject: Re: dear abby....

Dear Abby,
      My problem is that I think I may be schizophrenic..
When I say "expert system" I mean a program which advises
or searches for solutions in a restricted domain of data.
Since I am British this program would be written at first
in prolog. When others use the phrase "Expert System"
they mean some kind of all singing, all dancing REAL WORLD
EXPERT ... a human being not a program....
I have the same mismatch problem with the words "knowledge based",
"knowledge aquisition", "intelligent", and most
importantly with explanations...
If a friend wants an "expert system" to help diagnose faults
in cooking(say), I write a program to choose oven settings
and help out with sensible advice for drooping souffles.
When they ask for "the reason why" should I have written
a huge explanation database instead of relying on the
programming language internal logic control???????
Abby please help me decide if I should use a different,
more technical phrase like advice giving database program
instead of the confusing and misunderstood "expert system"
or join a less demanding profession like brain surgery?
yrs, a sad hacker.

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

Date: Sat,  7 Mar 87 17:23:29 est
From: [email-masked] (Zalman Stern)
Subject: Re: Dear Abby, Analysis of unknown data.

Dear Abby:

Explanation of results in an expert system should be viewed as a method of
communication between intelligent entities. Conventional groups of human
experts tend to fail very badly when nobody tells anybody else what is going
on. If you expect anything different to happen with artificial experts, you
are very disillusioned. I think explanation facillities must be designed into
the standard interface a program uses to communicate with humans and other
expert systems. Of course teling too much tends to bore people also... Why
not view AI as a chance to fix some of the bugs in human communication?

Analysis of unknown data:

I guess the idea here is to come up with an expert version of the UNIX file
program. (file is a program which is executed like "file core" and it tells
you "core:      core file from 'loseprog'") The file program is written
using very ad hoc techniques. It knows about all the magic numbers commonly
used in a UNIX system, about keywords for common languages, patterns that
occur in various kinds of text... As you can guess, it assumes a lot.

One of the first things to realize is that there are files for which your
system is not going to be able to come up with any useful information. Try
feeding it 156MB of perfectly random numbers for example. One must also
figure out what kind of explanations this system is going to give. In the
organization category do you want explanations of the form "The file is
columnized data." or "This file is in the proper format of a doctoral
disertation in Computer Science at Carnegie Mellon University?"

Once the program has figured out what the file is, it can easily extract the
"representation, organization, and content" of the file using information
from its knowledge base. So the problem has become one of designing a pattern
matcher, and coming up with a knowledge base that knows about all kinds of
files. Optionally, the program could try and deduce all the information
desired from the file, but I think that would be much more difficult to do.

Here is one way to approach this problem:

Design a number of representations of a file. Examples of these are:

        - ASCII text in line format. (i.e. like your favorite editor does
it).
        - A numerical dump of the file.

Also, there are many formats specific to certain programs. For these, the
representation is derived from firing up the appropriate program on the file.
For example, if you are trying to classify a system executable, you will want
to run the system debugger (or disassembler) on the file. There is an
assumption here that files don't exist in a vacuum. If they did, they would
be useless.

Now that this is done, you are ready to start building a knowledge base. To
do this you want to have a driver program that allows an expert to examine
files and enter information into the system. The driver progam will need
enoug "intelligence" to ask the expert why he did certain things. Of course
you can have humans analyze the experts answers and encode them
appropriately. Then just get a bunch of experts, and a large file system and
let them hack at it...

I think this may even be doable, but I doubt it would be worthwhile.

Have I made too many assumptions? Is this general enough? Is this what you
consider automated?

Sincerely,
Zalman Stern
ARPA: [email-masked]

Disclaimer: I am not involved in any kind of AI research and never have been.

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

Date: Sun, 8 Mar 87 00:30:56 EST
From: [email-masked]
Subject: self-recursive functions == consciousness

While trying to come up with some "characteristically lisp" code
to benchmark different implementations with (since we didn't have
R.Gabriel's collection at the time), the following argument occurred
to me:
        Suppose one has two large, intelligent systems, both of which
can speak English, know about baseball and politics, and can accurately
report on their past experiences, yet one is conscious and the other
is not.  If we take away language, baseball, politics, and the past,
we are left with two *content-free* mental systems, i.e. pure structure.
One structure exhibits the properties of consciousness, while the other
does not.  What are the differences in structure that cause the differences
in properties?  Can we write them in Lisp?  Since we have by hypothesis
removed all content from the systems, we are left with no data, but
pure control flow, i.e. an unnamed lambda expression.
        Now the intuitive essence of consciousness seems to be self-
reference.  Without self-reference we have only unidirectional
entropy-processing, which is done by everything.  Can one write a
content-free self-referential function, which gets its work done
by pure control flow and lambda-binding?  How about:

        (LAMBDA (self n) (COND ((ZEROP n) 0)
                                (T (+ n
                                      (self self (1- n))
                                        ))))

The function this expresses is very simple because what's important
is how it's expressed, not what it does.  In order to work, it has
to be called with itself and an integer as arguments; it then computes
the sum of the first n integers.  But it can do this without touching
the static part of its environment, not by define's, defun's, set's,
or anything else.  (It does require a quote to get it started.)
It is completely dynamic, as pure consciousness seems to be.
        The key feature of self-recursive functions like this appears
to be the applicative loop that occurs when the function is a lambda-
expression that (1) has been given itself as an argument and (2) calls
itself (i.e. its arg) recursively using the self-arg in the same
argument position.  A general pattern for this looks like:

        (LAMBDA (A1 ... Ai ... An)
                             ... (Ai Bi ... Ai ... Bn) ...)

where any corresponding Aj and Bj pair may be identical, but at least
one Bj must be different from its Aj or an infinite recursion will
result. (There are other conditions on how they have to differ which
are irrelevant as long as they guarantee termination.)  Again, this
only works if it is initiated with itself as argument Ai.
        It seems to me that this pattern captures the only aspect
of consciousness that is writable in lambda calculus and essential
for consciousness while not essential for not-necessarily-conscious
activities such as speech, memory, vision or problem-solving.
The fact that it's a pattern explains a lot of the trouble people
have with consciousness, since its elements could be broken apart,
scattered, renamed, and passed through other functions before
being resurrected as one funcall among many.  (In a system as complex
as a human mind, make that "many, many, many, many"...)
        A function that recognizes self-recursion in an arbitrary
function definition is not small even in a tiny language, since
it has to be able to track the components of the critical argument
through potential decomposition and reconstruction, quoting, lambda-
binding and other tortures.  The recognition function for a real AI
language like common lisp will be even bigger, since it will have to
deal with macros, reader modifications and STRING/MAKE-SYMBOL pairs.
It may even turn out to not be a computable function, for all I can tell.

        It seems to me that there are four classes of reasonable
objections to this claim that self-recursion is the essence of
consciousness:
1.  "Consciousness is an ill-posed problem" in the sense that Tomaso
    Poggio has been talking about in vision.  There's no unitary,
    simple, elegant way of expressing what we're talking about.
    I'm unhappy with this because it means we'll never "understand"
    consciousness, though we may be able to construct large
    more-or-less-convincing systems that appear to act as if they
    were conscious.
2.  "Consciousness cannot be expressed in pure lisp."  A strong
    claim, since accepting it requires modification of Church's
    Thesis, and claiming that there are material objects that
{_    perform computations that cannot be expressed in the lambda
    calculus.  I'm not entirely opposed to this, since one can
    envision massively parallel systems becoming so large that
    it might be useful to start thinking in terms of "density of
    computation" and taking the limit as the density approaches
    continuity in the same way the rational numbers approach
    the reals.  Physically, you run into quantum limitations first,
    but continuous computation may be theoretically interesting.
    (No, I don't think this is the same as analog computation,
    but I can't explain why.)
3.  "Consciousness can be expressed in lisp, but the pattern
    shown here isn't it."  Please show us the correct answer.
    But remember Occam's razor: in science, small is beautiful.
4.  "Consciousness is an illusion.  It can't be expressed in lisp
    because it doesn't exist."  This is my favorite.  Steven Harnad's
    colleague Julian Jaynes has written a fascinating book which
    argues that consciousness first appeared on the planet less
    than 3000 years ago.  I see no reason why consciousness couldn't
    vanish once we learn how to avoid spending valuable mental
    resources on introspection.  It of course remains to be explained
    why consciousness has been such a powerful illusion.

I apologize if I'm rediscovering ground already covered in this forum;
I've only been reading the AIlist for a few months. This is about
all I have to say on the subject, so if the moderator decides to
distribute this, I hope he doesn't mind if I request that responses
be sent to the net, not to me.

"...a region of sight, of sound, of mind.
    Submitted for your consideration, from"

        - George McKee
          College of Computer Science
          Northeastern University

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

End of AIList Digest
********************