There is a description at

Some CSP problems are easily solved by the language, eg. Soduku, Queen, TSP, VRP...

I want to learn and use the language, but the references about it on the net are very poor.

Can anybody help me? who has any references? pls?

asked 16 Feb '11, 09:12

Kevin's gravatar image

accept rate: 0%

edited 02 Mar '12, 04:12

fbahr's gravatar image

fbahr ♦

Drools Planner already supports a natural constraint language, through DSL (domain specific language) support in Drools Expert. We even have a webapp (Guvnor) to edit those constraints by end-users and also an Eclipse plugin for the developers among us.

Basically, we allow constraint to be shown and written (*) in a human language. So we can leave up to the domain expert (head nurse, ...) to define the score function.

(*) Not 100% free form, but by selecting sentence parts.

alt text

Once I have some time, I 'll create a good example and link it here.


answered 16 Feb '11, 13:05

Geoffrey%20De%20Smet's gravatar image

Geoffrey De ... ♦
accept rate: 6%

edited 16 Feb '11, 13:10

NCL (Natural Constraint Language) is a description language for solving constraint satisfaction problems. If you are interested, there exists an industrialized software POEM for the language. A trial version of POEM can be downloaded at:


answered 13 Jun '11, 03:54

Josline's gravatar image

accept rate: 0%

This is to present the NCL Natural Constraint Language.

A paper on an old NCL prototype was published in Journal of Logic Programming (2000). Recently a book "The NCL Natural Constraint Language" was published by Springer (2012)(

NCL is a description language in conventional mathematical logic for modeling and solving constraint satisfaction problems. It models problems naturally in a simplified form of first-order logic with quantifiers, Boolean logic, numeric constraints, set reasoning, logical functions, and date/time operations; it solves problems by mixed set programming over the mixed domain of real numbers, integers, Booleans, dates/times, references, and in particular sets.

In addition to intelligent parsing and mixed set programming, NCL uses search rules to specify a solution strategy in a straightforward way; this facilitates the use of heuristics and business rules.

Another feature of NCL is its logical function in addition to sub-model and included file. Programmer can define user functions and use them like conventional functions such as cosine. Logical function not only enables recursive definition, but can also encapsulate controls such as input, output, query and even a whole solver in a logical manner, which is especially useful in local optimization and iterative optimization.

As a practical programming language, NCL still contains: a message system, debugging facilities (expectation constraints, programmed break, custom messages), embedded SQL, etc. Furthermore, it allows low-level access to a variable's partial information and jump at input/output state.

By "simplified first-order logic", NCL differs from other declarative languages: It is different from Prolog (predicate logic), CLP (Prolog + constraints), CHIP (Prolog + constraints, in particular global constraints), AMPL (modeling language, MP), OPL (algebraic modeling, MP+CP), and Oz (functional constraint programming), just to name a few.

Compared to (algebraic) modeling languages, NCL adopts quantifier logic instead of loop, mixed domain instead of mainly numeric domain, and logical function instead of procedure. The grammar of NCL conforms to mathematical logic conventions (coding formulas in TeX); typing in NCL is implicit though NCL also supports explicit typing; mixed set programming highlights the expressive and algorithmic power of set theoretic reasoning; types and operations of date/time make planning and scheduling more natural.

Compared to constraint programming systems, another difference is worth being noted: CP uses global constraints in an explicit way. NCL also uses efficient algorithms like those in global constraints, but in an implicit way.

NCL solves problems depending neither on global constraints nor on combining different solvers, but mainly on mixed set programming which cooperates all algorithms (either global or local) in one solver.


answered 26 Mar '12, 06:14

Sophie's gravatar image

accept rate: 0%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 16 Feb '11, 09:12

Seen: 6,029 times

Last updated: 26 Mar '12, 06:14

OR-Exchange! Your site for questions, answers, and announcements about operations research.