The configuration sample is an initial prototype for a configuration system, using door units as a sample. It uses an architecture that separates the generic configuration reasoning predicates from the specific configuration knowledge, in this case for door units.
As it is a prototype, the knowledge uses a subset of Prolog. With a little more work the knowlegdge could be stored in a format easier for the lay person to understand. The work would involve putting more of the work in the configuration reasoning engine.
It uses a subset of Prolog to store the knowledge for a particular domain. Configurations are built up using Prolog's ability to create a structure from the top down, filling in the 'holes' as the configuration process proceeds.
Comments in the code provide documentation.
To run the system from the listener:
?- consult(configure_ui). ?- main.
The files in the sample are: