Abstract
Constraints allow programmers and users to state declaratively a relation that should be maintained, rather than requiring them to write procedures to maintain the relation themselves. They are thus useful in such applications as programming languages, user interface toolkits, and simulation packages. In many situations, it is desirable to be able to state both required and preferential constraints. The required constraints must hold. Since the other constraints are merely preferences, the system should try to satisfy them if possible, but no error condition arises if it cannot. A constraint hierarchy consists of a set of constraints, each labeled as either required or preferred at some strength. An arbitrary number of different strengths is allowed. In the discussion of a theory of constraint hierarchies, we present alternate ways of selecting among competing possible solutions, and prove a number of propositions about the relations among these alternatives. We then outline algorithms for satisfying constraint hierarchies, and ways in which we have used constraint hierarchies in a number of programming languages and systems.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Paul Barth. An Object-Oriented Approach to Graphical Interfaces. ACM Transactions on Graphics, 5(2):142–172, April 1986.
Karl-Friedrich Böhringer. Using Constraints to Achieve Stability in Automatic Graph Layout Algorithms. In CHI'90 Conference Proceedings, pages 43–52, Seattle,. Washington, April 1990. ACM SIGCHI.
Alan Borning. The Programming Language Aspects of ThingLab, A Constraint-Oriented Simulation Laboratory. ACM Transactions on Programming Languages and Systems, 3(4):353–387, October 1981.
Alan Borning. Graphically Defining New Building Blocks in ThingLab. Human-Computer Interaction, 2(4):269–295, 1986.
Alan Borning and Robert Duisberg. Constraint-Based Tools for Building User Interfaces. ACM Transactions on Graphics, 5(4), October 1986.
Alan Borning, Robert Duisberg, Bjorn Freeman-Benson, Axel Kramer, and Michael Woolf. Constraint Hierarchies. In Proceedings of the 1987 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 48–60. ACM, October 1987.
Alan Borning, Michael Maher, Amy Martindale, and Molly Wilson. Constraint Hierarchies and Logic Programming. In Proceedings of the Sixth International Conference on Logic Programming, pages 149–164, Lisbon, June 1989.
Gerhard Brewka. Preferred Subtheories: An Extended Logical Framework for Default Reasoning. In Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, pages 1043–1048, August 1989.
C. A. Carter and W. R. LaLonde. The Design of a Program Editor Based on Constraints. Technical Report CS TR 50, Carleton University, May 1984.
Ellis S. Cohen, Edward T. Smith, and Lee A. Iverson. Constraint-Based Tiled Windows. IEEE Computer Graphics and Applications, pages 35–45, May 1986.
Jacques Cohen. Constraint Logic Programming Languages. Communications of the ACM, 33(7):52–68, July 1990.
Alain Colmerauer. An Introduction to Prolog III. Communications of the ACM, pages 69–90, July 1990.
Yannick Descotte and Jean-Claude Latombe. Making Compromises among Antagonist Constraints in a Planner. Artificial Intelligence, 27(2):183–217, November 1985.
M. Dincbas, P. Van Hentenryck, H. Simonis, A. Aggoun, T. Graf, and F. Bertheir. The Constraint Logic Programming Language CHIP. In Proceedings Fifth Generation Computer Systems-88, 1988.
Robert A. Duisberg. Constraint-Based Animation: The Implementation of Temporal Constraints in the Animus System. PhD thesis, University of Washington, 1986. Published as UW Computer Science Department Technical Report No. 86-09-01.
Raimund Ege, David Maier, and Alan Borning. The Filter Browser—Defining Interfaces Graphically. In Proceedings of the European Conference on Object-Oriented Programming, pages 155–165, Paris, June 1987. Association Française pour la Cybernétique Économique et Technique.
Danny Epstein and Wilf LaLonde. A Smalltalk Window System Based on Constraints. In Proceedings of the 1988 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 83–94, San Diego, September 1988. ACM.
Mark S. Fox. Constraint-Directed Search: A Case Study of Job-Shop Scheduling. Morgan Kaufmann, Los Altos, California, 1987.
Bjorn Freeman-Benson. A Module Compiler for ThingLab II. In Proceedings of the 1989 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 389–396, New Orleans, October 1989. ACM.
Bjorn Freeman-Benson. Kaleidoscope: Mixing Objects, Constraints, and Imperative Programming. In Proceedings of the 1990 Conference on Object-Oriented Programming Systems, Languages, and Applications, and European Conference on Object-Oriented Programming, pages 77–88, Ottawa, Canada, October 1990. ACM.
Bjorn Freeman-Benson and Alan Borning. Integrating Constraints with an Object-Oriented Language. In Proceedings of the 1992 European Conference on Object-Oriented Programming, pages 268–286, June 1992.
Bjorn Freeman-Benson and Alan Borning. The Design and Implementation of Kaleidoscope'90, A Constraint Imperative Programming Language. In Proceedings of the IEEE Computer Society International Conference on Computer Languages, pages 174–180, April 1992.
Bjorn Freeman-Benson and John Maloney. The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver. In Proceedings of the Eighth Annual IEEE Phoenix Conference on Computers and Communications, Scottsdale, Arizona, March 1989. IEEE.
Bjorn Freeman-Benson, John Maloney, and Alan Borning. The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver. Technical Report 89-08-06, Department of Computer Science and Engineering, University of Washington, August 1989.
Bjorn Freeman-Benson, John Maloney, and Alan Borning. An Incremental Constraint Solver. Communications of the ACM, 33(1):54–63, January 1990.
Bjorn Freeman-Benson and Molly Wilson. DeltaStar, How I Wonder What You Are: A General Algorithm for Incremental Satisfaction of Constraint Hierarchies. Technical Report 90-05-02, Department of Computer Science and Engineering, University of Washington, May 1990.
Bjorn Freeman-Benson, Molly Wilson, and Alan Borning. DeltaStar: A General Algorithm for Incremental Satisfaction of Constraint Hierarchies. In Proceedings of the Eleventh Annual IEEE Phoenix Conference on Computers and Communications, pages 561–568, Scottsdale, Arizona, March 1992. IEEE.
Bjorn N. Freeman-Benson. Multiple Solutions from Constraint Hierarchies. Technical Report 88-04-02, University of Washington, Seattle, WA, April 1988.
Bjorn N. Freeman-Benson. Constraint Imperative Programming. PhD thesis, University of Washington, Department of Computer Science and Engineering, July 1991. Published as Department of Computer Science and Engineering Technical Report 91-07-02.
Eugene Freuder. Partial Constraint Satisfaction. In Proceedings of the Eleventh International Joint Conference on Artificial Intelligence, pages 278–283, August 1989.
Michel Gangnet and Burton Rosenberg. Constraint Programming and Graph Algorithms. In Second International Symposium on Artificial Intelligence and Mathematics, January 1992.
Matthew L. Ginsberg, editor. Readings in Nonmonotonic Reasoning. Morgan Kaufmann, Los Altos, California, 1987.
James A. Gosling. Algebraic Constraints. PhD thesis, Carnegie-Mellon University, May 1983. Published as CMU Computer Science Department Technical Report CMU-CS-83-132.
Ralph D. Hill. A 2-D Graphics System for Multi-User Interactive Graphics Based on Objects and Constraints. In E. H. Blake and P. Wisskirchen, editors, Advances in Object Oriented Graphics I, pages 67–91. Springer-Verlag, Berlin, 1990.
Ralph D. Hill. Languages for the Construction of Multi-User Multi-Media Synchronous (MUMMS) Applications. In Brad Myers, editor, Languages for Developing User Interfaces, pages 125–143. Jones and Bartlett, Boston, 1992.
Bruce Horn. Constraint Patterns as a Basis for Object-Oriented Constraint Programming. In Proceedings of the 1992 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Vancouver, British Columbia, October 1992.
Bruce Horn. Properties of User Interface Systems and the Siri Programming Language. In Brad Myers, editor, Languages for Developing User Interfaces, pages 211–236. Jones and Bartlett, Boston, 1992.
James P. Ignizio. Generalized Goal Programming. Computers and Operations Research, 10(4):277–290, 1983.
James P. Ignizio. Introduction to Linear Goal Programming. Sage Publications, Beverly Hills, 1985. Sage University Paper Series on Qualitative Applications in the Social Sciences, 07–056.
Joxan Jaffar and Jean-Louis Lassez. Constraint Logic Programming. In Proceedings of the Fourteenth ACM Principles of Programming Languages Conference, Munich, January 1987.
Joxan Jaffar and Spiro Michaylov. Methodology and Implementation of a CLP System. In Proceedings of the Fourth International Conference on Logic Programming, pages 196–218, Melbourne, May 1987.
Joxan Jaffar, Spiro Michaylov, Peter Stuckey, and Roland Yap. The CLP(\(\mathcal{R}\)) Language and System. ACM Transactions on Programming Languages and Systems, 14(3):339–395, July 1992.
Tomihisa Kamada and Satoru Kawai. A General Framework for Visualizing Abstract Objects and Relations. ACM Transactions on Graphics, 10(1):1–39, January 1991.
M. Konopasek and S. Jayaraman. The TK!Solver Book. Osborne/McGraw-Hill, Berkeley, CA, 1984.
Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller Pederson, and Kirsten Nygaard. Abstraction Mechanisms in the BETA Programming Language. In Proceedings of the Tenth Annual Principles of Programming Languages Symposium, Austin, Texas, January 1983. ACM.
William Leler. Constraint Programming Languages. Addison-Wesley, 1987.
Alan K. Mackworth. Consistency in Networks of Relations. Artificial Intelligence, 8(1):99–118, 1977.
Michael J. Maher. Logic Semantics for a Class of Committed-choice Programs. In Proceedings of the Fourth International Conference on Logic Programming, pages 858–876, Melbourne, May 1987.
Michael J. Maher and Peter J. Stuckey. Expanding Query Power in Constraint Logic Programming. In Proceedings of the North American Conference on Logic Programming, Cleveland, October 1989.
John Maloney. Using Constraints for User Interface Construction. PhD thesis, Department of Computer Science and Engineering, University of Washington, August 1991. Published as Department of Computer Science and Engineering Technical Report 91-08-12.
John Maloney, Alan Borning, and Bjorn Freeman-Benson. Constraint Technology for User-Interface Construction in ThingLab II. In Proceedings of the 1989 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 381–388, New Orleans, October 1989. ACM.
John Alan McDonald, Werner Stuetzle, and Andreas Buja. Painting Multiple Views of Complex Objects. In Proceedings of the 1990 ACM Conference on Object-Oriented Programming: Systems, Languages, and Applications and the European Conference on Object-Oriented Programming, pages 245–257, Ottawa, Canada, October 1990.
Katta G. Murty. Linear Programming. Wiley, 1983.
Brad Myers. Creating User Interfaces by Demonstration. PhD thesis, University of Toronto, 1987.
Brad A. Myers. Creating Dynamic Interaction Techniques by Demonstration. In CHI+GI 1987 Conference Proceedings, pages 271–278, April 1987.
Brad A. Myers, Dario Guise, Roger B. Dannenberg, Brad Vander Zanden, David Kosbie, Philippe Marchal, Ed Pervin, Andrew Mickish, and John A. Kolojejchick. The Garnet Toolkit Reference Manuals: Support for Highly-Interactive Graphical User Interfaces in Lisp. Technical Report CMU-CS-90-117, Computer Science Dept, Carnegie Mellon University, March 1990.
Brad A. Myers, Dario Guise, Roger B. Dannenberg, Brad Vander Zanden, David Kosbie, Philippe Marchal, and Ed Pervin. Comprehensive Support for Graphical, Highly-Interactive User Interfaces: The Garnet User Interface Development Environment. IEEE Computer, 23(11):71–85, November 1990.
Greg Nelson. Juno, A Constraint-Based Graphics System. In SIGGRAPH '85 Conference Proceedings, pages 235–243, San Francisco, July 1985. ACM.
Hayato Ohwada and Fumio Mizoguchi. A Constraint Logic Programming Approach for Maintaining Consistency in User-Interface Design. In Proceedings of the 1990 North American Conference on Logic Programming, pages 139–153. MIT Press, October 1990.
Dan R. Olsen, Jr. Creating Interactive Techniques by Symbolically Solving Geometric Constraints. In Proceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, pages 102–107, Snowbird, Utah, October 1990. ACM SIGGRAPH and SIGCHI.
A. Robinson. Non-Standard Analysis. North-Holland Publishing Company, Amsterdam, 1966.
Ernst Rotterdam. Physiological Modeling and Simulation with Constraints. Technical Report R89001, Medical Information Science, Department of Anesthesiology, Oostersingel 59, 9713 E2 Groningen, June 1989.
Michael Sannella and Alan Borning. Multi-Garnet: Integrating Multi-Way Constraints with Garnet. Technical Report 92-07-01, Department of Computer Science and Engineering, University of Washington, September 1992.
Vijay A. Saraswat. Problems with Concurrent Prolog. Technical Report CS-86-100, Carnegie-Mellon University, May 1985. Revised January 1986.
Vijay A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, Computer Science Department, January 1989.
Vijay A. Saraswat, Martin Rinard, and Prakash Panangaden. Semantic Foundations of Concurrent Constraint Programming. In Proceedings of the Eighteenth Annual Principles of Programming Languages Symposium. ACM, 1991.
Ken Satoh. Formalizing Soft Constraints by Interpretation Ordering. In Proceedings of the European Conference on Artificial Intelligence, 1990.
Ken Satoh and Akira Aiba. CAL: A Theoretical Background of Constraint Logic Programming and its Applications (Revised). Technical Report TR-537, Institute for New Generation Computer Technology, Tokyo, February 1990.
Ken Satoh and Akira Aiba. Computing Soft Constraints by Hierarchical Constraint Logic Programming. Technical Report TR-610, Institute for New Generation Computer Technology, Tokyo, January 1991.
Ken Satoh and Akira Aiba. The Hierarchical Constraint Logic Language CHAL. Technical Report TR-592, Institute for New Generation Computer Technology, Tokyo, September 1991.
Ehud Shapiro. Concurrent Prolog: A Progress Report. IEEE Computer, 19(8):44–58, August 1986.
Linda Shapiro and Robert Haralick. Structural Descriptions and Inexact Matching. IEEE Transactions on Pattern Analysis and Machine Intelligence, PAMI-3(5):504–519, September 1981.
Steven Sistare. A Graphical Editor for Constraint-Based Geometric Modeling. PhD thesis, Department of Computer Science, Harvard, December 1990. Published as Technical Report TR-06-9.
Guy L. Steele. The Definition and Implementation of a Computer Programming Language Based on Constraints. PhD thesis, MIT, August 1980. Published as MIT-AI TR 595, August 1980.
Ivan Sutherland. Sketchpad: A Man-Machine Graphical Communication System. In Proceedings of the Spring Joint Computer Conference. IFIPS, 1963.
Ivan Sutherland. Sketchpad: A Man-Machine Graphical Communication System. PhD thesis, Department of Electrical Engineering, MIT, January 1963.
Shin Takahashi, Satoshi Matsuoka, and Akinori Yonezawa. A General Framework for Bi-Directional Translation between Abstract and Pictorial Data. In Proceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, pages 165–174, Hilton Head, South Carolina, November 1991.
Pascal Van Hentenryck. Constraint Satisfaction in Logic Programming. MIT Press, Cambridge, MA, 1989.
Christopher J. van Wyk. A Language for Typesetting Graphics. PhD thesis, Department of Computer Science, Stanford, June 1980.
Christopher J. van Wyk. A High-level Language for Specifying Pictures. ACM Transactions on Graphics, 1(2), April 1982.
Brad Vander Zanden, Brad Myers, Dario Guise, and Pedro Szekely. The Importance of Pointer Variables in Constraint Models. In Proceedings of the ACM SIG-GRAPH Symposium on User Interface Software and Technology, pages 155–164, Hilton Head, South Carolina, November 1991.
Bradley T. Vander Zanden. An Incremental Planning Algorithm for Ordering Equations in a Multilinear system of Constraints. PhD thesis, Department of Computer Science, Cornell University, April 1988.
William W. Wadge and Edward A. Ashcroft. Lucid, the Dataflow Programming Language. Academic Press, London, 1985.
Clifford Walinsky. CLP(∑ *): Constraint Logic Programming with Regular Sets. In Proceedings of the Sixth International Conference on Logic Programming, pages 181–196, Lisbon, June 1989.
Molly Wilson. Hierarchical Constraint Logic Programming. PhD thesis, Department of Computer Science and Engineering, University of Washington, 1992. Forthcoming.
Molly Wilson and Alan Borning. Extending Hierarchical Constraint Logic Programming: Nonmonotonicity and Inter-Hierarchy Comparison. In Proceedings of the North American Conference on Logic Programming, pages 3–19, Cleveland, October 1989.
Author information
Authors and Affiliations
Corresponding author
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Borning, A., Freeman-Benson, B., Wilson, M. (1996). Constraint hierarchies. In: Jampel, M., Freuder, E., Maher, M. (eds) Over-Constrained Systems. OCS 1995. Lecture Notes in Computer Science, vol 1106. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61479-6_17
Download citation
DOI: https://doi.org/10.1007/3-540-61479-6_17
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61479-1
Online ISBN: 978-3-540-68601-9
eBook Packages: Springer Book Archive