Logic Programming and Multi-Agent Systems: a Synergic Combination for Applications and Semantics