Constraint programming is used to solve problems that have many variables and that have many possible solutions. An interactive constraint solver application provides additional information to a user if a conflict arises between two choice-constraints so that the additional information can be used to resolve the conflict according to a model-constraint set up by an application developer. The additional information identifies a priority group, or queue, to which the constraint was added. Depending on the particulars included in the additional information, and the model-constraints, the conflict is resolved by the interactive constraint solver application.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method, comprising: adding a plurality of constraints to a plurality of queues having different priorities, each constraint of the plurality of constraints associated with a respective priority of a queue to which that constraint is added, the plurality of queues comprising a first queue and a second queue that has a lower priority than said first queue; adding a choice-constraint to either the first queue or the second queue based on a role of a user who submitted the particular choice; determining a conflict between the choice-constraint and a particular constraint in either said first queue or said second queue; and returning information about said conflict, said information identifying the particular constraint and a priority of the queue that holds said particular constraint, wherein the method is performed by one or more computers. 2. The method of claim 1, wherein returning said information about said conflict comprises returning a resolution of said conflict based on a further constraint that indicates said higher priority of said first queue relative to said second queue. 3. The method of claim 1, wherein returning said information comprises providing a prompt requesting a further constraint that, when applied, resolves said conflict. 4. The method of claim 1, further comprising moving said choice-constraint from said second queue to said first queue in compliance with a further constraint. 5. The method of claim 1, wherein returning said information about said conflict comprises returning a resolution of said conflict, said resolution being rejecting said choice-constraint and retaining said particular constraint. 6. The method of claim 1, wherein returning said information about said conflict comprises returning a resolution of said conflict, said resolution being retaining said choice-constraint and removing the particular constraint. 7. The method of claim 1, wherein each queue is associated with a different role, and further comprising: selecting either the first queue or the second queue according to the role of the user who submitted the particular choice-constraint, and adding the particular choice-constraint to the selected queue. 8. A non-transitory computer-readable medium having instructions embodied thereon that when executed by one or more computing devices, cause the one or more computing devices to perform: adding a plurality of constraints to a plurality of queues having different priorities, each constraint of the plurality of constraints associated with a respective priority of a queue to which that constraint is added, the plurality of queues comprising a first queue and a second queue that has a lower priority than said first queue; adding a choice-constraint to either the first queue or the second queue based on a role of a user who submitted the particular choice; determining a conflict between the choice-constraint and a particular constraint in either said first queue or said second queue; and returning information about said conflict, said information identifying the particular constraint and a priority of the queue that holds said particular constraint. 9. The non-transitory computer-readable medium of claim 8, wherein returning said information about said conflict comprises returning a resolution of said conflict based on a further constraint that indicates said higher priority of said first queue relative to said second queue. 10. The non-transitory computer-readable medium of claim 8, wherein returning said information comprises providing a prompt requesting a further constraint that, when applied, resolves said conflict. 11. The non-transitory computer-readable medium of claim 8, wherein the instructions, when executed by the one or more computing devices, further cause: moving said choice-constraint from said second queue to said first queue in compliance with a further constraint. 12. The non-transitory computer-readable medium of claim 8, wherein returning said information about said conflict comprises returning a resolution of said conflict, said resolution being rejecting said choice-constraint and retaining said particular constraint. 13. The non-transitory computer-readable medium of claim 8, wherein returning said information about said conflict comprises returning a resolution of said conflict, said resolution being retaining said choice-constraint and removing the particular constraint. 14. The non-transitory computer-readable medium of claim 8, wherein each queue is associated with a different role, and wherein the instructions, when executed by the one or more computing devices, further cause: selecting either the first queue or the second queue according to the role of the user who submitted the particular choice-constraint, and adding the particular choice-constraint to the selected queue.