A multi-agent system for programming robots by human demonstration | Synapse