University of Washington
borning@cs.washington.edu, (206) 543-6678 (voice), (206) 543-2969 (fax)
Research project home page: http://www.cs.washington.edu/research/constraints
Michael Sannella, "SkyBlue: A Multi-Way Local Propagation Constraint Solver for User Interface Construction", in Proceedings of the 1994 ACM Symposium on User Interface Software and Technology, pages 137-146.
Gus Lopez, Bjorn Freeman-Benson, and Alan Borning, "Kaleidoscope: A Constraint Imperative Programming Language", In Constraint Programming, B. Mayoh, E. Tougu, J. Penjam (Eds.), NATO Advanced Science Institute Series, Series F: Computer and System Sciences, Vol 131, Springer-Verlag, 1994, pages 313-329.
It is useful to extend the basic notion of constraints to that of a constraint hierarchy: a collection of constraints, some of which must hold, and some of which are preferences but not requirements. Using constraint hierarchies, we can express such desires as "place window1 above window2 if possible, and, less importantly, place window1 above window3". In addition, a frequent application of constraint hierarchies is to express the desire that objects in an interactive display not move unless there is some stronger constraint that forces them to do so.
Constraints have a number of highly desirable properties that make them useful in building computer systems, in particular interactive graphical applications. They are declarative statements of what the programmer or designer would like, rather than imperative statements of how that relationship should be satisfied. They often closely match ways designers of interactive systems describe their tasks to other humans. Without explicit constraints, programmers must translate them in their heads into procedural code, often scattered in multiple locations. This results in added difficulties in writing the initial program, in debugging, and in maintenance.
Krishna Bharat and Scott Hudson, "Supporting Distributed, Concurrent, One-Way Constraints in User Interface Applications", to appear in UIST'95.
Alan Borning, Bjorn Freeman-Benson, and Molly Wilson, "Constraint Hierarchies", Lisp and Symbolic Computation, Vol. 5 No. 3, (September 1992), pages 223-270.
Michael Sannella, John Maloney, Bjorn Freeman-Benson, and Alan Borning, "Multi-way versus One-way Constraints in User Interfaces: Experience with the DeltaBlue Algorithm", Software--Practice and Experience, Vol. 23 No. 5, (May 1993), pages 529-566.
Michael Gleicher, "Practical Issues in Programming Constraints", Principles and Practice of Constraint Programming: The Newport Papers, Vijay Saraswat and Pascal van Hentenryck (eds), MIT Press, 1995, 407-426.
Scott E. Hudson, "A System for Efficient and Flexible One-Way Constraint Evaluation in C++", Georgia Tech TR 93-15.
Brad Myers et al., "Garnet: Comprehensive Support for Graphical, Highly-Interactive User Interfaces", IEEE Computer, Vol. 23 No. 11, Nov 1990, pages 71-85. (See also papers on the more recent system: http://www.cs.cmu.edu/afs/cs.cmu.edu/project/amulet/www/amulet-home.html)
In addition, see the proceedings of the constraint programming conference CP'95 and its antecedent workshops PPCP'94 and PPCP'93. Papers on constraints and user interfaces often also appear in the ACM UIST proceedings.
Proceedings of the 1995 International Conference on Constraint Programming (Ugo Montanari and Francesca Rossi, eds, published as Springer-Verlag LLNCS 976)
Proceedings of the 1994 Workshop on Principles and Practice of Constraint Programming (Alan Borning, ed, published as Springer-Verlag LLNCS 874);
Principles and Practice of Constraint Programming: The Newport Papers, Vijay Saraswat and Pascal van Hentenryck (eds.), MIT Press, 1995.