It is almost certain that John went to the garden. It is highly unlikely that Brian is white. We believe that Mary discarded the milk. There is little chance that if either 'John went to the garden' or 'Mary discarded the milk' but not both then Sandra took the football. There is almost no chance that if 'Brian is white and John went to the garden' then Bill got the milk there. It is certain that if 'Brian is white and Mary discarded the milk' then Bernhard is a swan.
It is impossible that 'Sandra took the football and Bernhard is a swan'.
It is impossible that 'Sandra took the football and Bernhard is a swan'.
It is probably the case that 'Sandra took the football and Bernhard is a swan'.

  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.95::factA.
  0.05::factB.
  0.75::factC.
  %hop1
  0.1::factX:-xor(factA,factC).
  0.02::factY:-and(factB,factA).
  1.0::factZ:-and(factB,factC).

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

  query(conclusion).
  
'Sandra took the football and Bernhard is a swan'.