  As software systems are getting increasingly connected, there is a need for
equipping nonmonotonic logic programs with access to external sources that are
possibly remote and may contain information in heterogeneous formats. To cater
for this need, HEX programs were designed as a generalization of answer set
programs with an API style interface that allows to access arbitrary external
sources, providing great flexibility. Efficient evaluation of such programs
however is challenging, and it requires to interleave external computation and
model building; to decide when to switch between these tasks is difficult, and
existing approaches have limited scalability in many real-world application
scenarios. We present a new approach for the evaluation of logic programs with
external source access, which is based on a configurable framework for dividing
the non-ground program into possibly overlapping smaller parts called
evaluation units. The latter will be processed by interleaving external
evaluation and model building using an evaluation graph and a model graph,
respectively, and by combining intermediate results. Experiments with our
prototype implementation show a significant improvement compared to previous
approaches. While designed for HEX-programs, the new evaluation approach may be
deployed to related rule-based formalisms as well.
