
(def-named-kb-class truck ()
((location :initarg :location)
(destination :initarg :destination)))
(make-instance 'truck
:kb-name 'ford1
:location 'cambridge)
creates the instance #<KB-OBJECT FORD1> .
(make-instance 'truck :location 'london) creates the instance #<KB-OBJECT TRUCK123> , and
(get-object 'ford1) returns #<KB-OBJECT FORD1> and
(name (get-object 'ford1)) returns FORD1 . The class definition
(defclass truck (named-kb-object) ...) would have been identical except that the second truck would have been given a name such as OBJECT345 rather than TRUCK123 (as def-named-kb-class overrides the inherited initform for the kb-name slot (gentemp "OBJECT") with a more specific one (gentemp <class-name>) ).