can generally be defined as software programs that assist their user and act on his or her behalf: a computer program that helps you in newsgathering, acts autonomously and on its own initiative, has intelligence and can learn, improving its performance in executing its tasks (Woolridge and Jennings, 1995).