Commitment-based semantics for Agent Communication Languages