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 comprises providing a prompt requesting a further constraint that, when applied, resolves said conflict. 10. 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. 11. A method comprising: identifying at least two priority groups of members having an interest in one or more variables within a solution to a problem, the at least two priority groups each having a defined relative priority in relation to at least one other group of the at least two priority groups; obtaining a first set of model-constraints, where the first set of the stored model-constraints restrict choices that can be submitted by respective members of each of the at least two priority groups; receiving the choices from the respective members of each of the at least two priority groups, the choices including chosen values that can be assigned to a respective variable of the one or more variables; populating the chosen values into a first set or a second set according to a membership in a priority group of the member from whom the choice was received, the first set corresponding to a first priority group and the second set corresponding to a second priority group; determining the solution assigning chosen values from the first set and then by assigning chosen values from the second set, wherein a particular constraint restricts a choice that can be submitted by a higher priority member with respect to a relatively lower priority member; and wherein the method is performed by one or more computers. 12. The method of claim 11, further comprising: determining that one of the chosen values received from the second priority group priority is in conflict with one of the chosen values received from the first priority group; and resolving the conflict according to a second set of constraints used to resolve conflicts. 13. The method of claim 12, wherein resolving the conflict comprises: determining that the one of the chosen values received from the first priority group was received after the one of the chosen values received from the second priority group. 14. The method of claim 13, further comprising: rejecting the one of the chosen values received from the first priority group according to the second set of constraints. 15. The method of claim 13, further comprising: retaining the one of the chosen values received from the first priority group and removing the one of the chosen values received from the second priority group according to the second set of constraints. 16. The method of claim 12, wherein resolving the conflict comprises: determining that the one of the chosen values received from the second priority group was received after the one of the chosen values received from the first priority group. 17. The method of claim 16, further comprising: rejecting the one of the chosen values received from the second priority group according to the second set of constraints. 18. The method of claim 16, further comprising: retaining the one of the chosen values received from the second priority group and removing the one of the chosen values received from the first priority group according to the second set of constraints. 19. The method of claim 16, further comprising: moving the one of the chosen values received from the second priority group to the first priority group according to the second set of constraints; and moving the one of the chosen values received from the first priority group to the second priority group according to the second set of constraints. 20. The method of claim 12, wherein the second set of constraints instruct providing a prompt to the respective member who submitted at least one of the chosen values, the prompt including the one of the chosen values received from the second priority group priority that is in conflict with the one of the chosen values received from the first priority group.