A new probabilistic constraint logic programming language based on a generalised distribution semantics