Since a basic Prolog construct schema represents a Prolog programming techniqe that is the generalization of a set of programs, it is useful for presenting the general idea of the technique to the student. It is also useful for being presented to the student in the form of prorgam templates for instantiation and modification. A basic Prolog construct schema is, however, less useful for recognizing a student program since it does not provide much grammatical information and relies on pattern matching to matching the schema to the student program. (Gegg-Harrison 91,92,93,99)
The use of program schemata has been shown to be effective for the optimization of logic programs (Fuchs&Fromherz92, Fuchs96, Richardson&Fuchs98). In this approach, a set of program schemata is first defined. Transformation schemata are further defined as pairs of prorgam schemata. A transformation schema consisting of a pair of program schemata represents a transformation technique that transforms one program schema in the pair into another. Given a program to be optimized, one of the transformation schemata is selected such that one program schema in it covers the given program under a particular substitution. The same substitution is then applied to another program schema in the transformation schema to create the transformed program.
Schema-based logic program transformation (Flener&Deville96, Buyukyildiz&Flenr98, Chasseur&Deville98): The main difference is that instead of searching for a transformation schema in which the covering program schema is discovered, a program is synthsized from one program schema in a transformation schemato match the given program.