On the Semantics and Complexity of Probabilistic Logic Programs