[comp.object] Combining AI and OOP ?

koenig@urz.unibas.ch (07/05/90)

Could somebody give me references to articles or books that discuss
the application of OOP concepts to artificial intelligence problems,
esp. rule-/knowledge-based expert systems ?

Please send any information to  koenig@urz.unibas.ch
Thanks.
===================================================================
stefan koenig                              Institut fuer Informatik
                                           Univ. Basel, Switzerland

ballou@databs.enet.dec.com (07/06/90)

>
> Could somebody give me references to articles or books that discuss
> the application of OOP concepts to artificial intelligence problems,
> esp. rule-/knowledge-based expert systems ?
> 
> Please send any information to  koenig@urz.unibas.ch
> Thanks.
> ===================================================================
> stefan koenig                              Institut fuer Informatik
>                                            Univ. Basel, Switzerland
 
I don't know about books on the topic, but you might want to check out a
workshop entitled
"Object-Oriented Programming in AI" at AAAI '90.  I believe attendance
is by invitation only
(send mail to Scott Woyak - sww@edsdrd.eds.com).  There are several
talks that may interest
you (I'm sure you can at least get the text for these):

  "Frames or Objects, or Both?"  Ora Lassila, Helsinki University of Technology
  "Frames and Object-Oriented Programming" Christian Ranthke, University
of Stuttgart
  "Efficient Pattern Matching in Object-Oriented Programming" Mark
Auburn, Inference Corp.
  "Object Oriented Programming for an Expert System Shell" Betrand Neveu, INRIA

And many more...  In short, the entire workshop looks very interesting.
  Cheers,
     Nat Ballou
     DEC OODB

timm@runxtsa.runx.oz.au (Tim Menzies) (07/09/90)

In article <1990Jul5.175708.809@urz.unibas.ch> koenig@urz.unibas.ch writes:
>Could somebody give me references to articles or books that discuss
>the application of OOP concepts to artificial intelligence problems,
>esp. rule-/knowledge-based expert systems ?
>
>Please send any information to  koenig@urz.unibas.ch
>Thanks.
>===================================================================
>stefan koenig                              Institut fuer Informatik
>                                           Univ. Basel, Switzerland

i have a thesis that objects are not a knowledge representation techhique.
yes, minsky's frames can be done as objects, but in a practical sense how
useful are they? by that i mean, what portion of all the code of your expert
systems can usefully be represented as objects?

the other month, i made a strange observation. in three years of working with
object tools while writing expert systems (in KEE & Smalltalk), i've never shown
a domain expert my hierarchy of objects. this puzzled me greatly since 
"everyone" knows that objects are a great way to represent knowledge. the more
i thought about it, the more i thought that objects are a great way of
representing "programmer" knowledge, not expert knowledge. if i implement a
user-friendly specification environment that can specify and execute  
nouns and verbs are taken from the expert's vocabulary (my usual method of
operation), then when i review my code i find that i am using a whole
host of constructs **NOT** in the vocabulary of the domain experts. i can
cleverly devise a whole host of abstract classes that tease apart some
useful functionality of my specification environment and the expert's
domain. but i wouldn't dream of confusing a domain expert with constructs
that they did not invent themselves.

yes. i would use objects to build expert systems. i would rigourously
apply meyer's shopping list approach to the development (i.e. view
objects as a collection of services that can be delivered to the outside
world and delay the writing of the top-level loop till as late as 
possible). this allows for incremental modification. BUT, i would "black-box"
the hierarchy and offer the experts a succcinct, high-level logical
specification environment that **HIDES** the implementation complexity of
the hierarchy. 

my objections to objects as a KR method are based on pragmatic considerations.
brachman has a set of logical objections. in 1983 he surveyed the field of
people using frame/object tools. he listed out all the things that inheritance
was being used for. his list included:

-	superset/ subset
-	specialisation/ generalisation
-	set membership
-	predicates that act on an individual
-	sharing of common properties
-	conceptual containment (e.g. a triangle is a polygon with
	three sides).

then, a dramatic chord. nowhere, observes brachman, in that list is
"pass this property" or "block this property". inheritance has no
semantics per se. it can be used to implement (read, muddle up) a
variety of semantic properites. brachman's thesis is that these
semantic properties should eb offerred as seperate building blocks in a 
KR tool and not thrown in together in a mess. 

as a programmer, i like inheritance hierarchies. i can normalise all my
code. i know that i can specify the behaviour of a whole sub-tree of 
objects by changing code at some high level. but thats all by-the-by
for knowledge representation. back to brachman...

but what about default knowledge? surely thats a useful KR trick that needs
a hierarchy of inheriting objects? not so says brachman. with defaults comes
the ability to override defaults. the ability to override defaults effectively
negates any knowledge representation power. if john is-a bachelor and john
can override any or all of the properties of bachelor, then all you can say
about john is that at sometime in the past, john had all the properies of a
bachelor. since then, john could have done anything with his bachelor-ness.
if defaults can be over-ridden, then you can 'tbe sure about any of john's
properties right now.

this is all blasphemy of course. objects give you a window into the 
fundamental truths of the universe. as soon as you buy your copy of your
KEE/Eiffel/ C++/ CLOS/ Smalltalk/ ADS 5.1/ KAPPA/ Egeria/ (etc. etc.) 
system, then all your specification problems will disappear and all will
become so clear. any we certainly don't need programmers like YOU
mr menzies.

i just smile, and wait. sooner or later the project folds or my phone rings. 

anyway, you may find the following references useful:

the classic frame paper:
	Minsky, M	"A Framework for Representing Knowledge",
			The Psychology of Human Vision, Winston P.H.(ed)
			McGraw Hill, 1975.

a survey of commercial oo/es tools:
	Tello, E	"Object Oriented Programming 4 Artificial Intelligence"
			Howard W. Sams & Company (i think), 1989, (i think)

Brachman's blasphemies:
	Brachman R.J.   "What IS-A Is and Isn't: An Analysis of Taxonomic
			Links in Semantic Nets" IEEE Computer, October 1983,
			vol 16, No. 10, pp66-73
	Brachman R.J.	"I Lied About the Trees", or Defaults and Definitions
			in Knowledge Representations. The AI Magazine, Fall
			1985, pp80-85.

my own dissidents view:
	Menzies T.J. 	"Why You Shouldn't Respecy Your Parents", Proceedings
			of AI '90, in preperation.

someone using frames for soemthing interesting:
	Reggia J et al	"Diagnostic Expert Systems based on a set covering 
			model", International Journal of Man-Machine Studies,

the software engineer's perspective:
	Meyer B. 	"Object-oriented Software construction",
			Prentice-Hall, 1988.

plogan@mentor.com (Patrick Logan) (07/10/90)

In article <1947@runxtsa.runx.oz.au> timm@runxtsa.runx.oz.au (Tim Menzies) writes:
 >   [...]
 >
 >   [Missing is a list of various ways the typical IS-A inheritance relation has
 >    been used/abused.]
 >
 >   then, a dramatic chord. nowhere, observes brachman, in that list is
 >   "pass this property" or "block this property". inheritance has no
 >   semantics per se. it can be used to implement (read, muddle up) a
 >   variety of semantic properites. brachman's thesis is that these
 >   semantic properties should eb offerred as seperate building blocks in a 
 >   KR tool and not thrown in together in a mess. 
 >
 >   [...]
 >
 >   this is all blasphemy of course. objects give you a window into the 
 >   fundamental truths of the universe. as soon as you buy your copy of your
 >   KEE/Eiffel/ C++/ CLOS/ Smalltalk/ ADS 5.1/ KAPPA/ Egeria/ (etc. etc.) 
 >   system, then all your specification problems will disappear and all will
 >   become so clear. 

The Carnegie Representation Language, part of the Knowledgecraft
system from Carnegie Group, has a very flexible facility for defining
custom relationships. It is highly declarative, falling back on the
underlying CommonLISP if necessary. Relationships and entire classes
or individual objects can be refined on the fly. Very powerful for
prototyping. I used it for nearly two years and thoroughly enjoyed it.
I'd like to use something like it again.

It's not a be-all-and-end-all, it just offers a powerful way to
implement the domain's concepts. It's still necessary to build
supporting objects that are not a part of the actual domain.
There's still a long way to go.
-- 
Patrick Logan  uunet!mntgfx!plogan        |
Mentor Graphics Corp. 8500 SW Creekside P |
Beaverton, Oregon 97005-7191              |

pepke@gw.scri.fsu.edu (Eric Pepke) (07/12/90)

In article <1947@runxtsa.runx.oz.au> timm@runxtsa.runx.oz.au (Tim Menzies) 
writes:
> but what about default knowledge? surely thats a useful KR trick that 
needs
> a hierarchy of inheriting objects? not so says brachman. with defaults 
comes
> the ability to override defaults. the ability to override defaults 
effectively
> negates any knowledge representation power. if john is-a bachelor and 
john
> can override any or all of the properties of bachelor, then all you can 
say
> about john is that at sometime in the past, john had all the properies 
of a
> bachelor. since then, john could have done anything with his 
bachelor-ness.
> if defaults can be over-ridden, then you can 'tbe sure about any of 
john's
> properties right now.

I don't see any real problem with this.  I have a bicycle.  Bicycles have 
two wheels.  This is one of the most basic properties of bicycles and is 
the one from which it derives its name.  Let's say I forget to lock it up 
with the chain, only the U-lock, and somebody steals the front wheel.  
Would smoke come out of my ears if I were to say, "I have a bicycle, but 
it's front wheel is missing."?  Would it be unreasonable to say or think, 
"I need a new front wheel for my bicycle" rather than "I need a new front 
wheel for my that-which-is-not-a-bicycle but which, upon addition of a new 
front wheel, shall become a bicycle."?

Would it not make more sense to be able to look at the default that is 
overridden, see that it is a fundimental property of a bicycle, and be 
able to conclude thereby that there is something wrong with the bicycle?

I don't know whether objects are the best way to represent knowledge, but
to conclude that they are useless on the basis of such reductio ad absurdum
arguments is silly.

Eric Pepke                                    INTERNET: pepke@gw.scri.fsu.edu
Supercomputer Computations Research Institute MFENET:   pepke@fsu
Florida State University                      SPAN:     scri::pepke
Tallahassee, FL 32306-4052                    BITNET:   pepke@fsu

Disclaimer: My employers seldom even LISTEN to my opinions.
Meta-disclaimer: Any society that needs disclaimers has too many lawyers.