BDI agent languages provide a useful abstraction for complex systems comprised of interactive autonomous entities, but they have been used mostly in the context of single agents with a static plan library of behaviours invoked reactively. These languages provide a theoretically sound basis for agent design but are very limited in providing direct support for autonomy and societal cooperation needed for large scale systems. Some techniques for autonomy and cooperation have been explored in the past in ad hoc implementations, but not incorporated in any agent language. In order to address these shortcomings we extend the well known AgentSpeak(L) BDI agent language to include behaviour generation through planning, declarative goals and motivated goal adoption. We also develop a language-specific multiagent cooperation scheme and, to address potential problems arising from autonomy in a multiagent system, we extend our agents with a mechanism for norm processing leveraging existing theore...