A multi-agent system is described that uses software agents to represent
objects in a chosen real world environment. Each agent has structure
having certain characteristics where a relation with other agents can be
established if the other agents have characteristics that are suitable to
the requesting agent. The multi-agent system is able to perform dynamic
negotiations autonomously between agents so as to establish relations
when a new event enters the system or to offer compensation to modify
existing relations and to self-organise to optimise the overall value of
the system.