A bot, which is a shorthand for robot, is a system that interacts through network, like a server, but in a humanlike manner.
There are numerous bots talking on Internet. Probably most of them are IRC bots, that join channels like other IRC users do, and wait for commands. They are used to give informations (like give status of some services, or statistics), to log activity, to janitor channels (they are given operator rights, and give them back to some registered users when to join the channel), and so on.
Another classical type of bot is a bot simulating human chat, like the famous Eliza.
Like in all computer activity, it would be valuable to separate different functions to be esaily reusable. In this case, the bots typically gather two functions:
The bot framework would provide the network part. The bot author would only have to deal with the text interaction, that is to parse the received text and to send back the answer. The framework would deal with:
A working bot could be used on any number of protocol supported by the framework, sometimes without any modification of the bot itself or of it's backend for the framework. A chatting bot, in particular, would be used the same way through IRC, Jabber or even an HTTP interface…