Constraints Based Learning