Semirings for Soft Constraint Solving and Programming by Stefano Bistarelli