ProcedureNodes represent procedures, both external (do something to the outside world) and internal (do something to the AtomSpace or calculate something about the AtomSpace). It is divided into two subtypes, PredicateNodes, which, when evaluated, produce a TruthValue and SchemaNodes, which, when executed, produce Atoms.
The ProcedureNode hierarchy is as follows:
ProcedureNode +PredicateNode +GroundedPredicateNode +DefinedPredicateNode +SchemaNode +GroundedSchemaNode +DefinedSchemaNode
Grounded and defined procedures
Defined procedures are those that are defined by using the DefineLink. They resemble grounded procedures, except that they are written in "atomese"; i.e. defined in terms of other atoms.