Relational Programming
From the programmer’s point of view, relational programming extends declara- tive programming with a new kind of statement called a “choice.” Conceptually, the choice statement nondeterministically picks one among a set of alternatives. During execution, the choice is implemented with search, which enumerates the possible answers.