Logic programming in Datalog: A long tour from theory to practice