[comp.ai] Survey: how do we really use objects?

timm@runxtsa.runx.oz.au (Tim Menzies) (11/28/90)

Are inheritance hierarchies a good way you represent
knowlege?

I  recently presented a paper  (by  proxy, thanx  Alan) to
the 1990 Australian Joint Artificial Intelligence
conference. In that, I  observed  that in the three years
that  I have been using OO  tools for expert systems, I have
**never** shown  an object  hierarchy to a  expert.  My own
hierarchies were so intiricate, I ended up hiding them
behind interfaces that presented some abstarcted/filtered
view of  networks of instances to the experts.

One of  the comments  after the presentation was that
hierachies **MUST BE** a good  way of representing knowlege
because of the all  the real world knowledge represented as
hierarchies. For example, in biology, the classification of
plants and animals  are all presented hierarchically.  (I
don't agree with this argument BTW, see below).

Now, we could debate this issue, or we subject it  to an
emperical test.  Could  anyone  who has actually built  a
non-trivial object system email me (or  the net) and let me
know how  much of the explicit  business/expert knowledge
was clearly defined in an inheritance hierarchy? If there is
enough interest in this,  I'll post a reply.

As to the above argument re plant/animal classification:
Just what are those  hierarchies used for? Actually expert
processing of significant biologically problems?  Or only as
a learning tool for new biologists?  (I suspect  the
latter.)

My own experience has been that in order  to make an
inheritance hierarchy useful (in some non-trivial sense),
then we need to surround/bury the hierarchy in such an
intricate architecture that the significance/usefulness of
the hierarchy reduces  to zero. Hierarchies, I have found
are useful for  storing programmer knowledge, but not non-
programmer expert knowledge.

--
 _--_|\  Tim Menzies (timm@runxtsa.oz)        "Two years ago, I couldn't even
/      \ HiSoft Expert Systems Group,          spell 'knowledge engineer'.
\_.--._/ 2-6 Orion Rd Lane Cove, NSW, 2d066    Now I r 1."
      v  02 9297729(voice),61 2 4280200(fax)                John McDermont

sticklen@cps.msu.edu (Jon Sticklen) (12/02/90)

From article <2588@runxtsa.runx.oz.au>, by timm@runxtsa.runx.oz.au (Tim Menzies):


I think the issues that Tim raises are very good ones. If you take the
issue as he posed it (What good are inheritance hierarchies in terms
of direct representation of expert knowledge?), then I think he is
correct that the (purely representational) hierarchies will become
very complex.

For example, if I tried to build a system for medical diagnosis around
the represetational idea of hierarchies, then I would have a very
complex structure in which some objects were diseases, some objects
were signs and symptoms, some were lab tests, and ... Moreover the
relationships between all these different types of nodes would let me
to a very tangled structure indeed.

But what is missing here is a decomposition of the overal problem
solving in some meaningful way such that all of these "hierarchies"
will be untangled. The job of diagnosis in a clinical setting 
has deeply embedded hierarchies of disease such that most clinical
practioneers will readily recognize them. 

These disease specialization hierarchies can be used to perform a type
of classificaiton problem solving. Other types of problem solving
necessary to drive the diagnosis (like inferences leading from known
data value to another, e.g., temp=105 => high fever) will not be
represneted in the hierarchy of diseases, but in a seperated knowledge
structure. 

The point here is that expert knowledge may well be hard to organize
if you use a syntax level representation tool like "object hierarchy".
On the other hand, if you have in your repetoire epistemic level tools
of analysis (like hierarchical classificaiton), then expert level
knowledge may be easier to represent in some semi-direct fashion.

	---jon---