Semantics for Logic Programs