Datalog has well defined semantics and can actually be formalised through different means, which are proven to be equivalent.
* Model theoretic (logical)
* Fixpoint (imperative)
* Proof theoretic (functional)