Section: Scientific Foundations
Distributed algorithms and computation
Several models have been proposed for distributed computation. The message passing model [20] relies on a communication graph, in which each node only knows the local neighboring topology, and can only communicate with its one-hop neighbors. Distributed algorithms for graphs, such as spanning tree, coloring, dominating sets, etc. have been widely investigated and constitute still an active area of research.
In multihop networks, the networking information is fully distributed over the entire network. Many applications rely on multihop networks which are dynamic, with failures and moving nodes, and moreover, nodes are generally constrained, with limited CPU, memory, energy, etc. The decentralized evaluation of logical formalisms over multihop networks thus requires high efficiency, scalability, and fault tolerance.
The locality of distributed algorithms is of special interest in this context. An algorithm is local [32] , [31] , if it solves a global problem in distributed time which is either a constant, that is independent of the size of the network, or at least smaller than the diameter of the network. We consider generalization of these definitions to communications bounded but not necessarily local, resulting in the class of frugal computations.
The centralized evaluation of classical logical formalisms for graphs has been intensively investigated. It is well-known that FO can be evaluated in linear-time over bounded degree graphs [41] , and MSO can be evaluated in linear-time over bounded tree-width graphs [26] . Can such results in a classical computational setting offer insights in the complexity of their distributed computations over graphs? We have shown that this is indeed the case for FO and MSO over restricted classes of graphs, which can be computed frugally, thus relating somehow the logical locality of FO with a weakened notion of locality of the computation.
The distributed evaluation of declarative rule languages, used at the local level of abstraction, has been considered by several researchers. Abiteboul et al. introduced distributed Datalog (dDatalog), by adding locations to the relations and rules (but not to the tuples), and devised distributed query-by-subquery technique (dQSQ) to evaluate dDatalog [17] . On the other hand, Loo et al. adapted the bottom-up evaluation techniques of Datalog, e.g. semi-naive evaluation and magic set rewriting, to NDlog, another version of distributed Datalog with locations for tuples [33] . Our purpose is to adapt both the bottom-up and top-down evaluation techniques of Datalog queries to the distributed setting, and combine them in a fully decentralized way.