There is a very good chance that Mary left the football. It is impossible that Fred dropped the milk. It is almost certain that John went to the garden. It is improbable that if 'Mary left the football and Fred dropped the milk' then Bernhard is green. It is impossible that if 'John went to the garden' or 'Mary left the football' or both then Jessica is a cat. There is almost no chance that if either 'John went to the garden' or 'Mary left the football' but not both then Yann is hungry.
There is a better than even chance that 'Bernhard is green and Jessica is a cat'.
It is impossible that 'Bernhard is green and Jessica is a cat'.
There is a better than even chance that 'Bernhard is green and Jessica is a cat'.

  and(A,B) :- A,B.
  or(A,B) :- A;B.
  nand(A,B) :- not(and(A,B)).
  nor(A,B) :- not(or(A,B)).
  xor(A,B) :- or(A,B), nand(A,B).

  %hop0
  0.8::factA.
  0.0::factB.
  0.95::factC.
  %hop1
  0.1::factX:-and(factA,factB).
  0.0::factY:-or(factC,factA).
  0.02::factZ:-xor(factC,factA).

  %hop2
  conclusion:-and(factX,factY).

  query(conclusion).
  
'Bernhard is green and Jessica is a cat'.