AbstractThe research on modular logic programming has evolved along two different directions during the past decade. Various papers have focused primarily on the problems of programming-in-the-large. They have proposed module systems equipped with compositional operators for building programs as combinations of separate and independent components. Other proposals have instead concentrated on the problem of programming-in-the-small in an attempt to enrich logic programming with abstraction and scoping mechanisms available in other programming paradigms. The issues that arise in the two approaches are substantially different. The compositional operators of the former allow one to structure programs without any need to extend the theory of Hor...