Distributed artificial intelligence