  There is a growing need for abstractions in logic specification languages
such as FO(.) and ASP. One technique to achieve these abstractions are
templates (sometimes called macros). While the semantics of templates are
virtually always described through a syntactical rewriting scheme, we present
an alternative view on templates as second order definitions. To extend the
existing definition construct of FO(.) to second order, we introduce a powerful
compositional framework for defining logics by modular integration of logic
constructs specified as pairs of one syntactical and one semantical inductive
rule. We use the framework to build a logic of nested second order definitions
suitable to express templates. We show that under suitable restrictions, the
view of templates as macros is semantically correct and that adding them does
not extend the descriptive complexity of the base logic, which is in line with
results of existing approaches.
