[comp.ai.digest] Object-Oriented Programming

Laws@KL.SRI.COM.UUCP (08/15/87)

Those interested in programming methodology (including expert systems)
will probably enjoy reading Russell Abbott's article on "Knowledge
Abstraction" in the August issue of Communications of the ACM.  It
clarifies the role of domain knowledge in programming and suggests
that object-oriented programming may be the wave of the future.  This
supports the impression of Jeffrey Stone in the Spring issue of AI
Magazine ("The AAAI-86 Conference Exhibits: New Directions in Commercial
AI") that most of the expert system vendors have found rules too limiting
and are incorporating object-oriented features in future software.

A related, but somewhat different, "knowledge level" view is taken
by B. Chandrasekaran in his Fall 1986 IEEE Expert paper: "Generic
Tasks in Knowledge-Based Reasoning: High-Level Building Blocks for
Expert System Design."  While not incompatible with object-oriented
programming, his generic tasks are at a level between that of common
shell languages (rules, frames, nets, etc.) and the full specifics
of real-world domain knowledge.

I sense a new view of AI coalescing ...

					-- Ken
-------

shebs@CS.UTAH.EDU (Stanley Shebs) (08/17/87)

In article <12326542058.16.LAWS@KL.SRI.Com> Laws@KL.SRI.COM (Ken Laws) writes:

>Those interested in programming methodology (including expert systems)
>will probably enjoy reading Russell Abbott's article on "Knowledge
>Abstraction" in the August issue of Communications of the ACM.  It
>clarifies the role of domain knowledge in programming and suggests
>that object-oriented programming may be the wave of the future.

Perhaps I missed the point, but I found this paper rather boring.
It didn't seem to say much new - is there really anybody that doesn't
believe programs are encrypted knowledge, and that making the knowledge
more explicit is a Good Thing?  Ditto for OOP - at least in the language
community, it's started to move from fanaticism to realism.  Perhaps the
AI community is just getting started on the slide to object fanaticism?

Also, some more explicit examples of what is and is not knowledge abstraction
would have been useful.  In fact, the concept of "knowledge" itself is pretty
vague - is "barks(X) :- dog(X)" a piece of knowledge or not, and how crucial
is a context or not?  Or putting it in a more practical way, why would a
Silogic Prolog program be considered a "knowlege program" and not a Fortran
program?

>A related, but somewhat different, "knowledge level" view is taken
>by B. Chandrasekaran in his Fall 1986 IEEE Expert paper: "Generic
>Tasks in Knowledge-Based Reasoning: High-Level Building Blocks for
>Expert System Design."  While not incompatible with object-oriented
>programming, his generic tasks are at a level between that of common
>shell languages (rules, frames, nets, etc.) and the full specifics
>of real-world domain knowledge.

This same idea may be found amidst all the glitzy results in Lenat's
Eurisko papers - heuristics are objects with their own sorts of hierarchy
and inheritance.  The so-called weak methods tend to be near the root of
hierarchies, while more specialized and domain-specific heuristics are
at the leaves.

>I sense a new view of AI coalescing ...

Or at least a new view of AI tools.  Some exciting and relevant papers
may be found in a book edited by Gary Lindstrom and Doug DeGroot, called
"Logic Programming: Functions, Relations, and Equations" and published by
Prentice-Hall last year (reviewed in latest Computing Reviews).  The papers
speak more to language types than to AI types, but there is much food for
thought...

							stan shebs
							shebs@cs.utah.edu