Declarative Logic Programming