Constraint-oriented programming specifies relations between variables and leaves it to the language runtime system to satisfy the relations. Concurrent constraint systems merge constraint-oriented programming with blackboard-style data distribution. Soft concurrent constraints extend concurrent constraints so they can express preferences, fuzziness, and uncertainty.
Soft concurrent constraints require modifications to the runtime system to modulate the requirements on satisfying relations, and to the language to specify approximate or satisfactory solutions. This paper describes a framework for making those modifications to a concurrent constraint system.
The essence of the framework involves modeling soft constraints as semirings, mathematical structures that include a value set and two operations. One operation allows values to be combined, and the other operation compares (and orders) values.
The approach to soft concurrent constraints developed in this paper extends related results by generalizing previous attempts at soft concurrent constraints, and by showing how concurrent constraint systems can be extended to include soft concurrent constraints. The paper provides several small examples, and one extended one involving networked agents, to show how such a system might be used. The paper is technically thorough, requiring from the reader a working knowledge of the semantic formalisms for concurrent constraint systems.