next up previous contents
Next: Slots Represent Relations Up: Example: FramesAccess Paths, Previous: The Structure of an


The Algernon knowledge base starts with an ontology of fundamental sets and a few individual objects.

  (tell '((:taxonomy (things
                       (sets things objects sets slots partitions
                             (partitions main-partition set-partition
                                         slot-info-partition partition-partition))
                       (booleans true false :complete)
                       (contexts *context*))

Additional sets and individuals can be defined using the :taxonomy form. Each :taxonomy form asserts a tree-structured set of containment and membership relations between sets and elements. A set is described by a list whose first element is its name, whose sublists are descriptions of its subsets, and whose atomic elements are names of its elements. Subsets are not necessarily disjoint. Lattice-structured containment hierarchies can be asserted using multiple :taxonomy forms. The set at the root of the taxonomy must already exist, and all names must be uniquely designating. By convention, the names of sets are plural nouns.

The above example describes part of the taxonomy created in the background knowledge base. The set things contains at least the subsets rules, objects, and slots. The set booleans contains exactly the two elements true and false. Several of the sets in the hierarchy are also explicitly declared as individual elements of the set sets, but those individuals are not completely enumerated.

The following creates, names, and asserts some additional subsets to the set objects, including the new set time-units and its element years.

  (tell '((:taxonomy (objects
                       (genders male female))
                      (time-units years)))))

Micheal S. Hewett
Tue Oct 29 10:54:13 CST 1996