Multi-Garnet is a package that implements multi-directional constraints
within Garnet. When the Multi-Garnet package is loaded into Garnet, the
normal Garnet constraint system (formulas, etc) is still accessible. In
addition it is possible to create multi-way constraints relating slot
values. Each constraint is defined by a set of methods, where each method
contains a Lisp form to propagate values in a different direction. The
constraints are organized into a hierarchy of different strength
constraints, where stronger constraints can override weaker constraints.
For an overview of multi-way hierarchical constraints, see the article "An
Incremental Constraint Solver" by Freeman-Benson, Maloney and Borning in
Communications of the ACM, January 1990 (v33, n1, pp54-63).
The Multi-Garnet package is available by anonymous ftp to
june.cs.washington.edu (22.214.171.124), cd pub/constraints/multi-garnet. This
directory contains the following:
This file is a compressed Postscript file containing a 50-page tech report
on Multi-Garnet. This report includes an overview of the system and a
This directory contains the code for Multi-Garnet v2.1, as well as several
example files containing commented code written using Multi-Garnet.
Multi-Garnet v2.1 has been tested under Garnet v2.0 and v2.1 and Franz
Allegro Common Lisp version 4.1. It may require small changes to run under
other versions of Lisp. It will probably not work with other versions of
Garnet. Eventually other versions will be created to work with newer
versions of Garnet.
Important note: Multi-Garnet is not an official part of the Garnet project.
The Garnet maintainers are not responsible for maintaining this package.
Any bug reports on Multi-Garnet should be sent to Michael Sannella
(email@example.com), not the garnet mailing lists.
Any comments on the Multi-Garnet system would be welcome.
~~ Michael Sannella