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