Rewriting Constraint Models with Metamodels

An important challenge in constraint programming is to rewrite constraint models into executable programs calculating the solutions. This phase of constraint processing may require translations between constraint programming languages, transformations of constraint representations, model optimizations, and tuning of solving strategies. In this paper, we introduce a pivot metamodel describing the common features of constraint models including different kinds of constraints, statements like conditionals and loops, and other first-class elements like object classes and predicates. This metamodel is general enough to cope with the constructions of many languages, from object-oriented modeling languages to logic languages, but it is independent from them. The rewriting operations manipulate metamodel instances apart from languages. As a consequence, the rewriting operations apply whatever languages are selected and they are able to manage model semantic information. A bridge is created between the metamodel space and languages using parsing techniques. Tools from the software engineering world can be useful to implement this framework.

[1]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[2]  Ian P. Gent,et al.  Minion: A Fast Scalable Constraint Solver , 2006, ECAI.

[3]  Thom W. Frühwirth,et al.  Constraint Handling Rules , 2009, Constraint Programming.

[4]  Jean-Marc Jézéquel,et al.  Weaving executability into object-oriented meta-languages , 2005, MoDELS'05.

[5]  Laurent Granvilliers,et al.  The Design of COMMA: An Extensible Framework for Mapping Constrained Objects to Native Solver Models , 2007 .

[6]  Ian P. Gent,et al.  Tailoring Solver-Independent Constraint Models: A Case Study with Essence' and Minion , 2007, SARA.

[7]  Jean-francois Puget,et al.  A C++ implementation of CLP , 1997 .

[8]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[9]  Peter J. Stuckey,et al.  ACD Term Rewriting , 2006, ICLP.

[10]  Ricardo Soto,et al.  Model-driven constraint programming , 2008, PPDP.

[11]  Jean Bézivin,et al.  TCS:: a DSL for the specification of textual concrete syntaxes in model engineering , 2006, GPCE '06.

[12]  Frédéric Benhamou,et al.  Algorithm 852: RealPaver: an interval solver using constraint satisfaction techniques , 2006, TOMS.

[13]  Christian Schulte,et al.  Views and Iterators for Generic Constraint Implementations , 2005, CSCLP.

[14]  Krzysztof R. Apt,et al.  Constraint logic programming using Eclipse , 2007 .

[15]  Arabellastrasse,et al.  Constraint Handling Rules ? , 1995 .

[16]  Ricardo Soto,et al.  The Design of COMMA: An Extensible Framework for Mapping Constrained Objects to Native Solver Models , 2007, 19th IEEE International Conference on Tools with Artificial Intelligence(ICTAI 2007).

[17]  Frédéric Jouault,et al.  Rule-based modularization in model transformation languages illustrated with ATL , 2007, Sci. Comput. Program..

[18]  Pascal Van Hentenryck,et al.  Constraint Programming in OPL , 1999, PPDP.

[19]  Christian Schulte,et al.  Views and Iterators for Generic Constraint Implementations , 2005, CSCLP.

[20]  Frédéric Jouault,et al.  Evaluation of rule-based modularization in model transformation languages illustrated with ATL , 2006, SAC '06.

[21]  Pascal Van Hentenryck,et al.  Numerica: A Modeling Language for Global Optimization , 1997, IJCAI.

[22]  Jean Bézivin,et al.  KM3: A DSL for Metamodel Specification , 2006, FMOODS.

[23]  Warwick Harvey,et al.  Essence: A constraint language for specifying combinatorial problems , 2007, Constraints.

[24]  Ian Miguel,et al.  The Rules of Constraint Modelling , 2005, IJCAI.

[25]  Philippe Codognet,et al.  The GNU Prolog system and its implementation , 2000, SAC '00.

[26]  Peter J. Stuckey,et al.  MiniZinc: Towards a Standard CP Modelling Language , 2007, CP.