> Could anybody give me the definitions of committed choice, don't > know, and don't care nondeterminism, please? Don't know/don't care nondeterminism: If I say to a class of students ``Write all your names on this piece of paper'' then I know that I want ALL the names, but I don't KNOW which ORDER they will be written in. If I say to a class of students ``One of you must clean the board before the lesson'' then I only want ONE of them to do it, and I don't CARE who. Or, in an operating system, when I save a file in the editor, I don't care which particular block of the disk the file is written on. But once the OS has started writing the file to one block, I don't want it to change its mind half-way through -- I want it to COMMIT to the CHOICE it has made. So don't know nondeterminism is what you get from Prolog's search rule whereas don't care nondeterminism (sometimes called `indeterminism') is what you would expect from an OS, or from ``Committed choice parallel logic languages'' such as Parlog or FGHC. Committed choice is linked to the idea of a `guard' or `commit' operator which is like the `cut' in Prolog (but imagine having to have a cut at the begining of every clause, so once you have selected it, you are committed to it and there is no back-tracking). Committed-choice and don't care --> you lose the link between declarative (model-theoretic) and operational semantics which is one of the nice things about Prolog.Go Back Up