Generalising Modular Logic Programming Carlos Viegas Damásio and João Moura ⋆ CENTRIA, Departamento de Informática Universidade Nova de Lisboa, 2829-516 Caparica, Portugal Abstract. Answer set programming is a prominent declarative rule-based pro- gramming paradigm. Even though modularity has been studied extensively in conventional logic programming, there are only few approaches on how to incor- porate modularity into Answer set programming. A major approach is Oikarinnen and Janhunen’s Gaifman-Shapiro-style architecture of program modules, which provides the composition of program modules. Their module theorem properly strengthens Lifschitz and Turner’s splitting set theorem for normal logic programs. However, this approach is limited by module conditions that are imposed in order to ensure the compatibility of their module system with the answer set semantics, namely forcing output signatures of modules to be disjoint and disallowing posi- tive cyclic dependencies between different modules. These conditions turn out to be too restrictive in practice. In this paper we discuss alternative ways of lifting both restrictions independently, widening the applicability of this framework and the scope of the module theorem. 1 Introduction Over the last few years, the answer set programming (ASP) paradigm [7, 2, 15, 17, 19] developed as one of the most important methods for declarative knowledge representation and reasoning. Despite its declarative nature, developing ASP programs resembles conventional programming: one often writes a series of gradually improving programs for solving a particular problem, e.g., optimizing execution time and space. Until recently, ASP programs were considered as integral entities, which becomes problematic as programs become more complex, and their instances grow. Even though modularity is extensively studied in logic programming, there are only a few approaches on how to incorporate it into ASP [9, 20, 6, 1] or other module-based constraint modelling frameworks [14, 23]. The research on systems of logic program modules has followed two main-streams [4]. One is programming in-the-large where compositional operators are defined in order to combine different modules, e.g., [16, 9, 21]. These operators allow one to combine programs algebraically, which does not require an extension of the theory of logic programs. The other direction is programming-in-the-small, e.g., [12, 18], aiming at enhancing logic programming with scoping and abstraction mechanisms available in other programming paradigms. This approach foments the introduction of ⋆ The work of João Moura was supported by the grant SFRH/BD/69006/2010 from Fundação para a Ciência e Tecnologia (FCT) from the Portuguese MEC - Ministério do Ensino e da Ciência.