Expressing preferences declaratively in logic-based agent languages