next up previous contents index
Next: Helpful Hints Up: Short Algernon User's Manual Previous: Frills

 

The Built-In Knowledge-Base

 

The built-in knowledge-base sets up the top level of the taxonomy as well as several basic slots. The current built-in knowledge-base is a rather odd collection of sets, slots and rules which we have found useful in our examples, however, we hope to eventually expanded it into a true ontology for common-sense reasoning.

The following conventions have been used in naming frames and slots:

The taxonomy is set up as follows:

 

(:taxonomy (things
             (objects
               (sets things objects sets slots partitions
                     (partitions main-partition set-partition
                                 slot-info-partition partition-partition))
               (booleans true false)
               (physical-attributes
                 (colors)
                 (genders male female))
               (physical-objects
                 (people))
               (contexts global-context))
             (slots
               (order-relations
                 (tc-order-relations
                   (equivalence-relations))))))

Every frame in the knowledge-base is a member of the set things which breaks down into the sets objects and slots, and so on. In the knowledge-base, the taxonomy is represented using isa  and superset  relations (and their inverses member  and subset ). isa links an object to a set of which it is a member, and superset links a set to a superset of it (thus member links a set to one of its members, and subset links a set to one of its subsets).

A basic design decision in building large taxonomies is whether to link an object in the taxonomy to every set it is a member of, to link it to just the `lowest' set in the taxonomy it is a member of (and then link this set up to the sets higher up in the taxonomy using superset links), or to link it to some of the sets it is a member of. We have chosen to take the third course, and link objects to just the ``important'' sets they are a member of. This distinction is represented using the relations superset and imp-superset. Intuitively, imp-superset  links a set to an `important' superset. Operationally this means that if Algernon learns that an object, x is a member of a set s, and s has an important superset S, then Algernon immediately adds an isa link between x and S.

The slot declarations for the important slots defined in the built-in knowledge-base are given below:

(:slot isa (things sets)
       :partition main-partition
       :comment "(isa ?x ?s) = ?x is a member of the set ?s.")

(:slot member (sets things)
       :partition set-partition
       :backlink isa
       :comment "(member ?s ?x) = A member of ?s is ?x.")

(:slot subset (sets sets)
       :partition set-partition
       :comment "(subset ?s1 ?s2) = A subset of ?s1 is ?s2.")

(:slot superset (sets sets)
       :partition set-partition
       :inverse subset
       :comment "(superset ?s1 ?s2) = A superset of ?s1 is ?s2.")

(:slot superset (sets sets)
       :partition set-partition
       :inverse subset
       :comment "(superset ?s1 ?s2) = A superset of ?s1 is ?s2.")

(:slot selfset (things sets)
       :cardinality 1
       :backlink member
       :comment "The selfset of x is the set consisting exactly of {x}.")



(:slot less (objects objects)
       :comment "(less ?x ?y) = ?x less than ?y.")

(:slot greater (objects objects)
       :inverse less
       :comment "(greater ?x ?y) = ?x greater than ?y.")

(:slot equal (objects objects)
       :inverse equal
       :comment "(equal ?x ?y) = ?x is equal to ?y.")

(:slot least (objects sets)
       :comment "(least ?x ?s) = ?x is the least member of ?s.")

(:slot greatest (objects sets)
       :comment "(greatest ?x ?s) = ?x is the greatest member of ?s.")



(:slot color (physical-objects colors)
       :cardinality 1
       :comment "(color x c) = The color of x is c.")

(:slot gender (physical-objects genders)
       :cardinality 1
       :comment "(gender x g) = The gender of x is g.")

(:slot temperature (physical-objects nil)
       :cardinality 1
       :comment "(temperature x temp) = The temperature of x is temp.")



(:slot spouse (people people)
       :cardinality 1
       :backlink spouse
       :comment "(spouse a b) = The spouse of a is b.")

(:slot wife (people people)
       :cardinality 1
       :backlink spouse
       :comment "(wife a b) = The wife of a is b.")

(:slot husband (people people)
       :cardinality 1
       :inverse wife
       :comment "(husband a b) = The husband of a is b.")

(:slot friend (people people)
       :comment "(friend a b) = A friend of a is b.")



(:slot current-context (contexts contexts)
       :cardinality 1
       :backlink super-context
       :comment "(current-context c1 c2) =
                The current sub-context of c1 is c2.")

(:slot speaker (contexts people)
       :cardinality 1
       :comment "(speaker c s) = The speaker in c is s.")

(:slot recent (contexts objects)
       :comment "(recent c r) = A recently mentioned thing in c is r.")


next up previous contents index
Next: Helpful Hints Up: Short Algernon User's Manual Previous: Frills

Micheal S. Hewett
Tue Oct 29 11:15:33 CST 1996