Verifies that one frame is the root class of another, or returns the root class of a class.


The class frame.
Either a frame to be tested or a variable to be bound.
If the :INCLUSIVE keyword is present and the root argument is a variable, the class will be included as one of the bindings of the variable.


  (:ROOT-CLASS Canines :THING)
  (:ROOT-CLASS Canines ?root)
  (:ROOT-CLASS Canines ?root :INCLUSIVE)

Success criteria

The argument class must be a class. If the clause is ground, succeeds if the relationship is true. If the clause is not ground, succeeds if it can retrieve the root class.

Failure criteria

Fails if class is not a class, if the correct root class is not suppliced, or if the class has no instances.


The root class is the top of the class hierarchy. A KB may have more than one root class, so the root class of two classes may not be the same class.

Related commands

Back to...

Algernon commands
Algernon Documentation Central
Algernon home page