[comp.ai] question on knowledge representation

siping@b.cs.wvu.wvnet.edu (Siping Liu) (01/14/89)

  As we know, we should distinguish between "defaults" and "truth"
when trying to inherent something through "isa" relation in frame-based
representation. I only know there is a system called ZERO in Japan
which can do it. Can someone tell the systems in US which can
do the similar thing ? Can KEE do it ?

  Thanks in advance.

  P.S. to make my point clearer, here is an example.

        bird: can_fly: "TRUE"
         |
         |isa
         |
       penguin : can_fly: "FALSE"

{here "can_fly" should be treated as default value and not inherented in
 penguin since it has local value.}


        human: sports: "tennis" "swim"
          |
          |isa
          |
         man: sports: "boxing"

{here "sports" describes truth without exception. "man" should inherent
  it from human even they have their exclusive sports.}

apl_aimh@jhunix.HCF.JHU.EDU (Marty Hall) (01/17/89)

In article <252@h.cs.wvu.wvnet.edu> siping@b.cs.wvu.wvnet.edu (Siping Liu) writes:
>  [Asks re distinguishing inherited from local values, asks if KEE
> has this capability]
>
>  P.S. to make my point clearer, here is an example.
>
>        bird: can_fly: "TRUE"
>         |isa
>       penguin : can_fly: "FALSE"
>
>{here "can_fly" should be treated as default value and not inherited in
> penguin since it has local value.}

All the frame systems that I'm familiar with (ART, KEE, KnowledgeCraft, 
CLOS/Loops, Flavors, etc) have the capability to have local values
override inherited ones.  Is that what you were asking?

>        human: sports: "tennis" "swim"
>          |isa
>         man: sports: "boxing"
>
>{here "sports" describes truth without exception. "man" should inherit
>  it from human even they have their exclusive sports.}

KEE has the ability to specify different inheritance roles for different
slots.  The default is "Override.values", which would apply in your
"Tweety is a bird" example.  One of the others is "union", which might
apply in your second example: combining values but not repeating any
ones they have in common.  There are a bunch of other options as well,
plus you can specify that inheritance will be controlled by a method
that you write yourself.

I don't recall ART too well, but I think it would at least allow combining
inherited values as well as the default of overriding the inherited with
the local.

KnowledgeCraft has this type of capability as well
and is even more flexible than KEE in allowing user-defined
inheritance roles.

Hope that was helpful-
			- Marty Hall