We discuss open collaborative constraint solving, a programming style which integrates the constraint solving capabilities of various constraint solvers in a unified framework: the system can configure itself dynamically by accessing the constraint solving services deployed in the open environment, such as the Internet. We present our system called open CFLP (Constraint Functional Logic Programming system) for collaborative constraint functional logic programming in open environments. The system provides support for higher-order functional logic programming over constraint domains equipped with specialized solvers. Reasoning over functional logic programs is realized by specialized solvers based on higher-order lazy narrowing calculi. The system transparently accesses specialized solvers (e.g., linear solver or solver for differential equations) via the lookup service of a specialized broker. Solvers are registered by service providers with the lookup service of a broker. The system further provides a collaboration language that enables the user to specify the most common ways in which constraint solvers should collaborate to achieve the desired results.
Principles of Programming Seminars