[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Is a Cow an Animal?



This discussion reminds me of controversies in the AI
Knowledge Representation (KR) community in the early 80's
concerning the semantics of various KR formalisms.  A
couple of interesting articles are Donald Woods' "What's
in a Link?" and Ronald Brachman's "I Lied About the Trees".
Woods' complaint was that the then-current practice of
leaving links of semantic networks uninterpreted led to
confusion and error.  Brachman followed up on Woods'
ideas by developing a semantic net formalism, KL-1, in
which links had a pre-defined semantics.

In KL-1 you could say that there is a role link called
Eats between an Animal class and a Food class.  Then
when you subclass Animal to Cow you also would also
subclass Food to Grass, thus refining the Eats role.
The first-order logic semantics were *not* that "every
member of the Animal class stands in the Eats role to every
member of the Food class"; rather, it was that "Each
member of the Cow class stands in the eats role to a
subset of of the Food class".  Additional constraints
would determine whether the subset was all-inclusive or not.
Thus, subclassing Animal to Cow and Food to Grass could result
in a (sub)role which was all-inclusive: "all cows eat grass"
(are we in tune?).

Lisp's lambda expressions made it easy to link code to objects,
known as "procedural attachment".  Some investigators found
this so confusing to KR semantics that they distinguished
"object-centered" KR formalisms with their logical semantics
from "object-oriented" programs with their execution semantics.
I think the distinction is valid; it is very difficult to
design an OO class hierarchy to *simultaneously* express the
logical relationships of a taxonomy and useful computational
relationships among procedures and classes of data objects.

BTW, KL-1 had an interesting feature that I've never seen
in OO languages -- it distinguished between the concept of
an individual member of a class and an instance of the class.
Thus you could build a taxonomic hierarchy containing the Mermaid
class and then define the individual concept Little-Mermaid
without committing yourself to the belief that a mermaid actually
existed.

 -- Bill Wood