Typically, multi-agent systems are composed of agents developed by parties with competing interests, and there is no access to an agent’s internal state. The members of such systems may inadvertently fail to, or even deliberately choose not to, conform to the system specification. Consequently, it is necessary to provide a specification with formal, unambiguous semantics. One way to achieve this, is to employ action languages, such as the Event Calculus, that may sufficiently capture the features of complex multi-agent systems, while at the same time offering clear and declarative semantics. In this tutorial, we will present machine learning techniques that facilitate the construction of such logic-based multi-agent systems specifications, taking advantage of large datasets.