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 bothrequired andpreferential 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. Aconstraint 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.
Similar content being viewed by others
References
Barth, Paul. An Object-Oriented Approach to Graphical Interfaces.ACM Transactions on Graphics, 5, 2 (April 1986) 142–172.
Böhringer, Karl-Friedrich. Using Constraints to Achieve Stability in Automatic Graph Layout Algorithms. InCHI'90 Conference Proceedings, ACM SIGCHI, Seattle, Washington (April 1990) 43–52.
Borning, Alan H. The Programming Language Aspects of ThingLab, A Constraint-Oriented Simulation Laboratory.ACM Transactions on Programming Languages and Systems, 3, 4 (October 1981) 353–387.
Borning, Alan. Graphically Defining New Building Blocks in ThingLab.Human-Computer Interaction, 2, 4 (1986) 269–295.
Borning, Alan, Maher, Michael, Martindale, Amy, and Wilson, Molly. Constraint Hierarchies and Logic Programming. InProceedings of the Sixth International Conference on Logic Programming, Lisbon (June 1989) 149–164.
Borning, Alan H. and Duisberg, Robert A. Constraint-Based Tools for Building User Interfaces.ACM Transactions on Graphics, 5, 4 (October 1986).
Borning, Alan, Duisberg, Robert, Freeman-Benson, Bjorn, Kramer, Axel, and Woolf, Michael. Constraint Hierarchies. InProceedings of the 1987 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, ACM (October 1987) 48–60.
Brewka, Gerhard. Preferred Subtheories: An Extended Logical Framework for Default Reasoning. InProceedings of the Eleventh International Joint Conference on Artificial Intelligence (August 1989) 1043–1048.
Carter, C. A. and LaLonde, W. R.The Design of a Program Editor Based on Constraints. Technical Report CS TR 50, Carleton University (May 1984).
Cohen, Ellis S., Smith, Edward T., and Iverson, Lee A. Constraint-Based Tiled Windows.IEEE Computer Graphics and Applications (May 1986) 35–45.
Cohen, Jacques. Constraint Logic Programming Languages.Communications of the ACM, 33, 7 (July 1990) 52–68.
Colmerauer, Alain. An Introduction to Prolog III.Communications of the ACM (July 1990) 69–90.
Descotte, Yannick and Latombe, Jean-Claude. Making Compromises among Antagonist Constraints in a Planner.Artificial Intelligence, 27, 2 (November 1985) 183–217.
Dincbas, M., Hentenryck, P. Van, Simonis, H., Aggoun, A., Graf, T., and Bertheir, F. The Constraint Logic Programming Language CHIP. InProceedings Fifth Generation Computer Systems-88 (1988).
Duisberg, Robert A.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.
Ege, Raimund, Maier, David, and Borning, Alan. The Filter Browser—Defining Interfaces Graphically. InProceedings of the European Conference on Object-Oriented Programming, Association Française pour la Cybernétique Économique et Technique, Paris (June 1987) 155–165.
Epstein, Danny and LaLonde, Wilf. A Smalltalk Window System Based on Constraints. InProceedings of the 1988 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, ACM, San Diego (September 1988) 83–94.
Fox, Mark S.Constraint-Directed Search: A Case Study of Job-Shop Scheduling. Morgan Kaufmann, Los Altos, California (1987).
Freeman-Benson, Bjorn. A Module Compiler for ThingLab II. InProceedings of the 1989 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, ACM, New Orleans (October 1989).
Freeman-Benson, Bjorn. Kaleidoscope: Mixing Objects, Constraints, and Imperative Programming. InProceedings of the 1990 Conference on Object-Oriented Programming Systems, Languages, and Applications, and European Conference on Object-Oriented Programming, ACM, Ottawa, Canada (October 1990) 77–88.
Freeman-Benson, Bjorn and Borning, Alan. Integrating Constraints with an Object-Oriented Language. InProceedings of the 1992 European Conference on Object-Oriented Languages (June 1992).
Freeman-Benson, Bjorn and Borning, Alan. The Design and Implementation of Kaleidoscope'90, A Constraint Imperative Programming Language. InProceedings of the IEEE Computer Society International Conference on Computer Languages (April 1992) 174–180.
Freeman-Benson, Bjorn and Maloney, John. The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver. InProceedings of the Eighth Annual IEEE Phoenix Conference on Computers and Communications, IEEE, Scottsdale, Arizona (March 1989).
Freeman-Benson, Bjorn and Wilson, Molly.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).
Freeman-Benson, Bjorn, Maloney, John, and Borning, Alan.The DeltaBlue Algorithm: An Incremental Constraint Hierarchy Solver. Technical Report 89-08-06, Department of Computer Science and Engineering, University of Washington (August 1989).
Freeman-Benson, Bjorn, Maloney, John, and Borning, Alan. An Incremental Constraint Solver.Communications of the ACM, 33, 1 (January 1990) 54–63.
Freeman-Benson, Bjorn, Wilson, Molly, and Borning, Alan. DeltaStar: A General Algorithm for Incremental Satisfaction of Constraint Hierarchies. InProceedings of the Eleventh Annual IEEE Phoenix Conference on Computers and Communications, IEEE, Scottsdale, Arizona (March 1992).
Freeman-Benson, Bjorn N.Multiple Solutions from Constraint Hierarchies. Technical Report 88-04-02, University of Washington, Seattle, WA (April 1988).
Freeman-Benson, Bjorn N.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.
Freuder, Eugene. Partial Constraint Satisfaction. InProceedings of the Eleventh International Joint Conference on Artificial Intelligence (August 1989) 278–283.
Gangnet, Michel and Rosenberg, Burton. Constraint Programming and Graph Algorithms. InSecond International Symposium on Artificial Intelligence and Mathematics (January 1992).
Ginsberg, Matthew L., editor.Readings in Nonmonotonic Reasoning. Morgan Kaufmann, Los Altos, California (1987).
Gosling, James A.Algebraic Constraints. PhD thesis, Carnegie-Mellon University (May 1983). Published as CMU Computer Science Department tech report CMU-CS-83-132.
Hill, Ralph. Languages for the Construction of Multi-User Multi-Media Synchronous (MUMMS) Applications. In Myers, Brad, editor,Languages for Developing User Interfaces, Jones and Bartlett, Boston (1992) 125–143.
Hill, Ralph D. A 2-D Graphics System for Multi-User Interactive Graphics Based on Objects and Constraints. In Blake, E. H. and Wisskirchen, P., editors,Advances in Object Oriented Graphics I, Springer-Verlag, Berlin (1990) 67–91.
Horn, Bruce. Constraint Patterns as a Basis for Object-Oriented Constraint Programming. InProceedings of the 1992 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Vancouver, British Columbia (October 1992). To appear.
Horn, Bruce. Properties of User Interface Systems and the Siri Programming Language. In Myers, Brad, editor,Languages for Developing User Interfaces, Jones and Bartlett, Boston (1992) 211–236.
Ignizio, James P. Generalized Goal Programming.Computers and Operations Research, 10, 4 (1983) 277–290.
Ignizio, James P.Introduction to Linear Goal Programming. Sage Publications, Beverly Hills (1985). Sage University Paper Series on Qualitative Applications in the Social Sciences, 07-056.
Jaffar, Joxan and Michaylov, Spiro. Methodology and Implementation of a CLP System. InProceedings of the Fourth International Conference on Logic Programming, Melbourne (May 1987) 196–218.
Jaffar, Joxan, Michaylov, Spiro, Stuckey, Peter, and Yap, Roland. The CLP (R) Language and System. (1992). To appear inACM Transactions on Programming Languages and Systems.
Jaffar, Joxan and Lassez, Jean-Louis. Constraint Logic Programming. InProceedings of the Fourteenth ACM Principles of Programming Languages Conference, Munich (January 1987).
Kamada, Tomihisa and Kawai, Satoru. A General Framework for Visualizing Abstract Objects and Relations.ACM Transactions on Graphics, 10, 1 (January 1991) 1–39.
Konopasek, M. and Jayaraman, S.The TK!Solver Book. Osborne/McGraw-Hill, Berkeley, CA (1984).
Kristensen, Bent Bruun, Madsen, Ole Lehrmann, Iler Pederson, Birger Mø, and Nygaard, Kirsten. Abstraction Mechanisms in the BETA Programming Language. InProceedings of the Tenth Annual Principles of Programming Languages Symposium, ACM, Austin, Texas (January 1983).
Leler, William.Constraint Programming Languages. Addison-Wesley (1987).
Mackworth, Alan K. Consistency in Networks of Relations.Artificial Intelligence, 8, 1 (1977) 99–118.
Maher, Michael J. Logic Semantics for a Class of Committed-choice Programs. InProceedings of the Fourth International Conference on Logic Programming, Melbourne (May 1987) 858–876.
Maher, Michael J. and Stuckey, Peter J. Expanding Query Power in Constraint Logic Programming. InProceedings of the North American Conference on Logic Programming, Cleveland (October 1989).
Maloney, John.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.
Maloney, John, Borning, Alan, and Freeman-Benson, Bjorn. Constraint Technology for User-Interface Construction in ThingLab II. InProceedings of the 1989 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, ACM, New Orleans (October 1989).
McDonald, John Alan, Stuetzle, Werner, and Buja, Andreas. Painting Multiple Views of Complex Objects. InProceedings of the 1990 ACM Conference on Object-Oriented Programming: Systems, Languages, and Applications and the European Conference on Object-Oriented Programming, Ottawa, Canada (October 1990) 245–257.
Murty, Katta G.Linear Programming. Wiley (1983).
Myers, Brad.Creating User Interfaces by Demonstration. PhD thesis, University of Toronto (1987).
Myers, Brad A. Creating Dynamic Interaction Techniques by Demonstration. InCHI+GI 1987 Conference Proceedings (April 1987) 271–278.
Myers, Brad A., Guise, Dario, Dannenberg, Roger B., Vander Zanden, Brad, Kosbie, David, Marchal, Philippe, Pervin, Ed, Mickish, Andrew, and Kolojejchick, John A.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).
Myers, Brad A., Guise, Dario, Dannenberg, Roger B., Vander Zanden, Brad, Kosbie, David, Marchal, Philippe, and Pervin, Ed. Comprehensive Support for Graphical, Highly-Interactive User Interfaces: The Garnet User Interface Development Environment.IEEE Computer, 23, 11 (November 1990) 71–85.
Nelson, Greg. Juno, A Constraint-Based Graphics System. InSIGGRAPH '85 Conference Proceedings, ACM, San Francisco (July 1985) 235–243.
Ohwada, Hayato and Mizoguchi, Fumio. A Constraint Logic Programming Approach for Maintaining Consistency in User-Interface Design. InProceedings of the 1990 North American Conference on Logic Programming, MIT Press (October 1990) 139–153.
Olsen, Jr., Dan R. Creating Interactive Techniques by Symbolically Solving Geometric Constraints. InProceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, ACM SIGGRAPH and SIGCHI, Snowbird, Utah (October 1990) 102–107.
Robinson, A.Non-Standard Analysis. North-Holland Publishing Company, Amsterdam (1966).
Rotterdam, Ernst.Physiological Modeling and Simulation with Constraints. Technical Report R89001, Medical Information Science, Department of Anesthesiology, Oostersingel 59, 9713 E2 Groningen (June 1989).
Sannella, Michael.The Multi-Garnet Reference Manual. Technical Report 92-07-01, Department of Computer Science and Engineering, University of Washington (July 1992).
Saraswat, Vijay A.Problems with Concurrent Prolog. Technical Report CS-86-100, Carnegie-Mellon University (May 1985). Revised January 1986.
Saraswat, Vijay Anand.Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, Computer Science Department (January 1989).
Saraswat, Vijay A., Rinard, Martin, and Panangaden, Prakash. Semantic Foundations of Concurrent Constraint Programming. InProceedings of the Eighteenth Annual Principles of Programming Languages Symposium, ACM (1991).
Satoh, Ken. Formalizing Soft Constraints by Interpretation Ordering. InProceedings of the European Conference on Artificial Intelligence (1990).
Satoh, Ken and Aiba, Akira.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).
Satoh, Ken and Aiba, Akira.Computing Soft Constraints by Hierarchical Constraint Logic Programming. Technical Report TR-610, Institute for New Generation Computer Technology, Tokyo (January 1991).
Satoh, Ken and Aiba, Akira.The Hierarchical Constraint Logic Language CHAL. Technical Report TR-592, Institute for New Generation Computer Technology, Tokyo (September 1991).
Shapiro, Ehud. Concurrent Prolog: A Progress Report.IEEE Computer, 19, 8 (August 1986) 44–58.
Shapiro, Linda and Haralick, Robert. Structural Descriptions and Inexact Matching.IEEE Transactions on Pattern Analysis and Machine Intelligence, PAMI-3, 5 (September 1981) 504–519.
Sistare, Steven.A Graphical Editor for Constraint-Based Geometric Modeling. PhD thesis, Department of Computer Science, Harvard (December 1990). Published as Technical Report TR-06-9.
Steele Jr. Guy, L.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.
Sutherland, Ivan.Sketchpad: A Man-Machine Graphical Communication System. PhD thesis, Department of Electrical Engineering, MIT (January 1963).
Sutherland, Ivan. Sketchpad: A Man-Machine Graphical Communication System. InProceedings of the Spring Joint Computer Conference, IFIPS (1963).
Takahashi, Shin, Matsuoka, Satoshi, and Yonezawa, Akinori. A General Framework for Bi-Directional Translation between Abstract and Pictorial Data. InProceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, Hilton Head, South Carolina (November 1991) 165–174.
Vander Zanden, Bradley T.An Incremental Planning Algorithm for Ordering Equations in a Multilinear system of Constraints. PhD thesis, Department of Computer Science, Cornell University (April 1988).
Vander Zanden, Brad, Myers, Brad, Guise, Dario, and Szekely, Pedro. The Importance of Pointer Variables in Constraint Models. InProceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, Hilton Head, South Carolina (November 1991) 155–164.
Van Hentenryck, Pascal.Constraint Satisfaction in Logic Programming. MIT Press, Cambridge, MA (1989).
van Wyk, Christopher J.A Language for Typesetting Graphics. PhD thesis, Department of Computer Science, Stanford (June 1980).
van Wyk, Christopher J. A High-level Language for Specifying Pictures.ACM Transactions on Graphics, 1, 2 (April 1982).
Wadge, William W. and Ashcroft, Edward A.Lucid, the Dataflow Programming Language. Academic Press, London (1985).
Walinsky, Clifford. CLP(Σ*): Constraint Logic Programming with Regular Sets. InProceedings of the Sixth International Conference on Logic Programming, Lisbon (June 1989) 181–196.
Wilson, Molly.Hierarchical Constraint Logic Programming. PhD thesis, Department of Computer Science and Engineering, University of Washington (1992). Forthcoming.
Wilson, Molly and Borning, Alan. Extending Hierarchical Constraint Logic Programming: Nonmonotonicity and Inter-Hierarchy Comparison. InProceedings of the North American Conference on Logic Programming, Cleveland (October 1989).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Borning, A., Freeman-Benson, B. & Wilson, M. Constraint hierarchies. Lisp and Symbolic Computation 5, 223–270 (1992). https://doi.org/10.1007/BF01807506
Issue Date:
DOI: https://doi.org/10.1007/BF01807506