Agents, Multi-Agent Systems and Declarative Programming: What, When, Where, Why, Who, How?