I find this statement potentially misleading:
"SPARQL and non-recursive safe Datalog with negation have equivalent
expressive power, and hence,
by classical results, SPARQL is equivalent from an expressiveness
point of view to Relational Algebra"
SPARQL, to its detriment, does not have a model-theoretic semantics (whereas
logic languages like CommonLogic
do). The most obvious difference is that in logic, the AND operator is
commutative, while in SPARQL, the
order of conjuncts in an AND (a ".") makes a difference -- commute them, and
you sometimes change the
result/meaning of the query.
My impression is that Datalog is in fact declarative (unlike Prolog). I
suppose its possible that a declarative language,
nrs Datalog wn, and a non-declarative one, SPARQL, could have the same
expressive power, even though
they cannot be equated semantically (on the surface, that seems
counterintuitive). On the other hand, I'm
wondering if you have somehow "dressed up" SPARQL to make it more principled
than it really is to make your
claim of "equivalence" -- are you talking about the real SPARQL, or some
idealized version?
- Bob