Complete Definitions

Next: Partial Definitions Up: Definitions Previous: Definitions

## Complete Definitions

Complete definitions specify an equivalent term or sentence for the constant being defined as described below. If a constant has a complete definition in a knowledge base, then no other definition for that constant may occur in the knowledge base. Complete definitions are guaranteed to be conservative extensions of the language.

The following table shows the defining axiom specified by each form of complete definition:

#&#Definition&Defining Axiom

(defobject := )&(= )&(deffunction ( ... []) := )&(= (lambda ( ... []) ))&(defrelation ( ... []) := )&(= (kappa ( ... []) ))

Object constants are defined using the defobject operator. In the complete definition of an object constant, the first argument, , is the constant being defined, and the argument, , following the := keyword, is a term. For example, the following definition defines the constant origin to be the list (0,0,0).

(defobject origin := (listof 0 0 0))

The defining axiom specified by this definition of origin is:

(= origin (listof 0 0 0))

Function constants are defined using the deffunction operator. In the complete definition of a function constant, the first argument, , is the constant being defined, the second argument is a list of individual variables with an optional final sequence variable specifying the arguments of the function, and the argument, , following the := keyword is a term. For example, the following definition defines the function paternal-grandfather in terms of the father function.

(deffunction paternal-grandfather (?x) := (father (father ?x)))

The defining axiom specified by this definition of paternal-grandfather is:

(= paternal-grandfather (lambda (?x) (father (father ?x))))

Relation constants are defined using the defrelation operator. In the complete definition of a relation constant, the first argument, , is the constant being defined, the second argument is a list of individual variables with an optional final sequence variable specifying the arguments of the relation; and the argument, , following the := keyword, is a sentence. For example, the following sentence defines a bachelor to be an unmarried man.

(defrelation bachelor (?x) := (and (man ?x) (not (married ?x))))

The defining axiom specified by this definition of bachelor is:

(= bachelor (kappa (?x) (and (man ?x) (not (married ?x)))))

Next: Partial Definitions Up: Definitions Previous: Definitions

Vishal I. Sikka
Wed Dec 7 13:23:42 PST 1994