BAAL: an agent-oriented language for modelling and simulation