Section: Scientific Foundations
Logic and query languages
Logical formalisms, such as first-order logic (FO), fixed-point logic (FP), and monadic second-order logic (MSO) for instance, allow to express problems in a declarative way. Instead of describing how to compute problems step by step, only the desired results of the computation are specified by logical expressions. The use of declarative query languages based on logical formalisms for data management was largely exploited by Codd in the 1970's [25] in the relational model in which there is a separation between the logical and the physical levels. Since then, the investigation of the theoretical foundations of query languages has been a strong focus of the database theory community.
Two important measures characterize query languages: their expressive power and their complexity. Given a query language, deciding which problem can be expressed in this language characterizes its expressive power. How complex it is to compute the queries in a given query language, characterizes its computational complexity.
The expressive power and the complexity of classical logics have been intensively studied. The expressive power of FO, for instance, has been shown to be rather limited: it can only express local properties, and for many interesting problems, it lacks recursion and the power of counting [27] . The complexity of FO has also been shown to be quite low: FO formulas can be evaluated in space logarithmic in the size of their input [42] . The parallel complexity of FO has also been considered, it was shown [29] that FO formulas can be evaluated in constant time, independently of the size of their inputs, on Boolean circuits with arbitrary fan-in gates, the well-known AC0 class.
Although classical query languages have been intensively studied in the context of centralized and parallel computation, their distributed computation on graphs has attracted only little attention. We consider the expressive power of classical query languages for describing distributed data structures, such as spanning trees, routing tables, and dominating sets, etc., and study their distributed complexity. We also propose to introduce new primitives into classical query languages to design proper logical formalisms for multihop networking (global level abstraction), while achieving a nice balance between expressive power and distributed computational complexity.
For the local level of abstraction, declarative rule languages (variants of Datalog) have been used to describe communication protocols [35] , [33] , thus reviving the recursive languages developed in the 80's for deductive databases [21] , [43] , [22] , well-suited to define routes in networks. Query languages allow the expression of protocols, one or two orders of magnitude simpler than classical imperative programming languages. We continue this trend to demonstrate the potential of declarative rule languages for the local abstraction level, clarifying their semantics in asynchronous distributed computation, investigating further their expressive power and the complexity of their distributed evaluation.