Subject: From: AIList Moderator Kenneth Laws <AIList-REQUEST@SRI-AI>

From: [email-masked]
Date: Mon, 26 Aug 85 16:00:34 edt

Received: from sri-ai.arpa by csnet-relay.arpa id a000975; 9 Aug 85 17:38 EDT
Date: Fri  9 Aug 1985 13:14-PDT
Reply-to: AIList@SRI-AI
US-Mail: SRI Int., 333 Ravenswood Ave., Menlo Park, CA  94025
Phone: (415) 859-6467
Subject: AIList Digest   V3 #106
To: AIList@SRI-AI
Received: from rand-relay by vpi; Sat, 10 Aug 85 03:28 EST

AIList Digest           Saturday, 10 Aug 1985     Volume 3 : Issue 106

Today's Topics:
  Journal - Machine Learning,
  Expert Systems - Knowledge-Based Spelling Corrector &
    Expert System Definition

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

Date: Fri, 9 Aug 85 01:22:57 pdt
From: gluck@SU-PSYCH (Mark Gluck)
Subject: A new journal: MACHINE LEARNING

Machine Learning will publish papers on the processes through which
intelligent systems improve their performance over time, and will
cover ares such as: concept acquisition, strategy learning, language
development, reasoning by analogy, and scientific discovery.

Machine Learning will be published four times a year. Individual Rate:
$35.00, Institution Rate: $78.00.

Executive Editor: Pat Langley
Editors: Jaime Carbonell, Ryszard Michalski, Tom Mitchell

Orders to: Kluwer Academic Publishers, 190 Old Derby Street, Hingham, MA 02043
           or call 617-749-5262.

First Issue: January, 1986

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

Date: Wed 7 Aug 85 14:41:38-PDT
From: Ken Laws <[email-masked]>
Subject: Knowledge-Based Spelling Corrector

Those who objected to Bob Amsler's suggestion that all spelling correctors
are "knowledge-based" may be happier with Dr. Dave Fawthrop's Expert Speller.
There's a 2-page article on it in Vol. 1, No. 1, of Expert Systems User,
April 1985.  (The article is rather superficial and contains some editing
blunders, so interested readers should probably track down the true story
in "The Rules of Spelling Error" and "An Intelligent Spelling Error
Corrector" by E.J. Yannakoudakis and D. Fawthrop, Int. J. of Information
Processing and Management, 1983.)

The spelling program uses a bit-vector hash table and two slower dictionary
structures to detect misspelled words, then invokes a rule base of about
3,000 rules to predict the correct spelling.  The system contains some
knowledge of parts of speech, but bases most of its guesses on commonly-
occurring transformations of letter patterns.  I assume that suggested
corrections are looked up in the dictionaries before being offered to
the user (although I can imagine wanting to see all its hypotheses).
New words can be provided (or confirmed) during a session, so that
the program adapts itself to the specific document during the editing
session and to the user across sessions -- AI learning in the best tradition.

The probabilities of different transformations were adaptively
adjusted (at a cost of 250,000 pounds in computer time) for the best
correction performance, and Dr. Fawthrop makes the point that the
system now knows more than he does about correction probabilities.
(The system cannot "explain its reasoning", since no human is able
to "understand" the true explanation.)

The program is written in Fortran77, and runs mainly on Unix systems.
The article didn't supply an address.

                                        -- Ken Laws

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

Date: 7 Aug 85 15:11 PDT
From: [email-masked]
Subject: Re: Expert System definition

I think it was Roger Schank that said "If it can't learn, it isn't AI".
In a nutshell, I think the main thing that distinguishes a true ES from
the hypothetical FORTRAN program mentioned earlier is that knowledge
isn't hard-coded and can be added at run time, becoming immediately
useful both for inferences and explanations.

This highlights the difference in architectures: separation of inference
engine and knowledge base (knowledge=rules+facts) should be considered
an essential part of the definition of ES or KBS, so add "DYNAMIC
KNOWLEDGE BASE" to "perform tasks requiring expertise" and "ability to
explain".  By the way, the ability to gracefully expose and resolve
knowledge base inconsistencies is also highly desirable in any system
with a dynamic KB, hopefully with a precedence mechanism and/or
weighting and/or consulting a human being when all else fails.

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

Date: 7 Aug 85 15:12 PDT
From: [email-masked]
Subject: Expert System Definition

I believe that the term "expert system" is best thought of as a process,
rather than a thing; that is, it is a way of building programs rather
than something that a program can be. In this light, most of the thorny
issues that arise in trying to decide whether a program is or is not an
"expert system" become much clearer.

The "expert system" programming methodolgy has some simple
characteristics:

* An expert is involved in the construction of the program.
* The knowledge of the expert is couched within a representation
framework in which the objects of the domain and the relations between
them are explicitly represented.
* The expert is involved in refinement of the program after its initial
construction.

To answer the question "is this FORTRAN program an expert system", you
have to know "how did it get built?" and "how would you add more
knowledge to it?"

The various AI languages and systems make writing expert systems much
easier; that's their advantage.  However, their use is not criterial:
writing it in OPS-5 doesn't make it an expert system, and not all expert
systems are written using "expert system tools."

Rule-based programming is one mechanism for encoding knowledge, but its
use isn't criterial either: there are rule-based programs that are
trivial (the microprocessors that control traffic lights, for example),
and there are "expert systems" that do not use a rule-based paradigm for
performing inference.

Generally, experts aren't programmers, and their knowledge of their
field isn't explicit. The process of producing domain-descriptions and
rules usually involves running the system against test cases and
debugging the results. "Explaination facilities" are very helpful in
that debugging process, in localizing where the procedure has gone
wrong. It seems to be an important part of the development tools for the
expert-system methodology, even if it plays no part in final application.

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

Date: 07 Aug 85 18:01:34 PDT (Wed)
From: Sanjai Narain <[email-masked]>
Subject: What is an expert system

Wyland is absolutely right in encouraging the asking of simple questions.
I think many more simple questions need to be asked in AI.

According to him an expert system is a program which can not only do
reasoning but also explanation. I believe this definition is a special
case of a more general one:

        Given some fixed amount of knowledge think of the various ways in
        which  an (intelligent) human could use it.  If a program
        possessing the same knowledge could also use it in similar ways
        then it could be said to behave intelligently.

For example, when a human has medical knowledge, his intelligence allows
him to do diagnosis, to explain his diagnosis as well as to determine
whether a new piece of knowledge conflicts with something he already
knows. So, if a program which has medical knowledge can also do
diagnosis, explanation and integrity checking, it could reasonably be
regarded as intelligent.

Conversely, even though common word processing software allegedly "knows"
about letters, words, sentences, lines, paragraphs it could hardly be
expected to determine whether a sentence is well formed, or whether the
numbering scheme for sections is consistent throughout the text. Such
functions are normally associated with a competent copy editor.

It is quite hard to obtain flexibility of use of knowledge in procedural
languages. So, most software written in such languages can only be used
in a rigidly defined set of ways, and so is not considered intelligent.

Not surprisingly then, a central concern of AI is developing maximally
flexible representations of knowledge so it can be used in a great
diversity of ways.

-- Sanjai Narain

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

Date: 8 Aug 1985 07:50-PDT
From: JWOLFE@USC-ECLB
Subject: KNOWLEDGE SYSTEM DEFINITION

     I read your comments on a definition of expert systems.
I think the views you express are useful and sorely needed.
If AI is to succeed, then it is necessary to precisely define
the terms used within the discipline.
     However, I do have one comment. The discussion I read
differentiated between a "true" expert system and a simple
FORTRAN program with a sequence of IF...THEN statements by
asserting that the expert system could explain its conclusions
in terms of the rules used to derive those conclusions.
Furthermore, there was a qualification that the expert system
merely had to have the potential of explaining itself and that
it was not necessary that the explanation mechanism be
implemented. I submit that the distinction is artificial in that
the FORTRAN program could easily implement an explanation
mechanism via a stack. In my opinion, the definition of
expert system should require that the explanation mechanism
be implemented or drop the requirement altogether.
     Perhaps another distinction would be the degree of
separation between the knowledge specific data and the
reasoning mechanism. This would exclude programs in which
the knowledge was totally embedded in the program code. I
don't believe the distinction is wholy satisfactory since all
but the most trivial systems have some knowledge embedded
in the program in order to gain performance. The line at
which a system is or is not an expert system becomes fuzzy.
     Thank you again for sharing your views with the community.
I hope to hear from you.
                          Jim Wolfe
                          [email-masked]
               (usual disclaimers apply)

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

Date: Thu 8 Aug 85 09:53:53-PDT
From: [email-masked]
Subject: Expert System Definition

        Thank you for your comments.  I should have been more
precise when I said that it was not necessary to implement the
explanation mechanism, since I used it as the essential
ingredient of the definition of an expert system.

        I agree with you that for a program to be an expert
system, the explanation mechanism is required.  There is a
marginal case of an expert system where the explanation mechanism
has been implemented but is removed or disabled in the
application environment, as in a real-time pilot advisor or
process control program.  However, the clearest definition of an
expert system would allow only systems that had the explanation
mechanism implemented, but not necessarily used (i.e., it could
be disabled).  Otherwise, the definition is void since "any" rule
based system has the "potential" for the addition of an
explanation mechanism - i.e., "....the FORTRAN program could
easily implement an explanation mechanism via a stack."

        I like the definition of an expert system as a "decision
system which can explain its decisions" because it is functional
and objective.  Using this definition, other characteristics
associated with expert systems - such as the degree of separation
between the knowledge data and the reasoning mechanism and/or the
amount of knowledge embedded in the code - become design topics
on how to implement a system that meets the definition rather
than part of the definition itself.  This is good because - as
you pointed out - topics like "separation between the knowledge
base and the reasoning mechanism" are a matter of degree and are
subjective in that design/artistic judgement is involved in their
evaluation.

        Thank you again for helping to further clarify the
discussion.  I hope we can keep in touch.

Dave Wyland
WYLAND@SRI-KL

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

Date: Friday, 9 August 1985 03:39:57 EDT
From: [email-masked]
Subject: Discussion on Expert Systems Definition

Although  the  ability to explain things is one of the characteristics
of an Expert, only classification-type expert systems (ES)  have  this
feature.    These systems explain their actions by providing the rules
that have been used or being used in that context. However, a majority
of ES (or the so-called ES), such as R1, in the  market  do  not  have
this feature.

The main difference (with conventional languages) I see is the ease of
programming  with  rules. Try implementing the code provided by Wyland
in a conventional programming language. It may take you at least 1  to
2  hrs, while one could do the same in a rule-based framework in 10-15
minutes, assuming familiarity with the tool. The ES frameworks provide
a neat programming methodology for incorporating heuristic  knowledge.
Also, the completeness, uniqueness, and proper sequencing criteria,
required of many conventional languages can be relaxed in an ES envir-
onment.

Any Comments ==> AILIST

Sriram

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

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