A logical operational semantics for full Prolog. Part I: Selection core and control