Extending Social Logic Programming to Represent Cooperative Work with Flexible Requirements