It is likely that Bernhard is a rhino. It is probable that Mary went to the garden. It is probable that Sandra dropped the milk. There is a very good chance that if 'Bernhard is a rhino' or 'Sandra dropped the milk' or both then Greg is white. It is almost certain that if 'Mary went to the garden' or 'Bernhard is a rhino' or both then Gertrude is a cat. We believe that if either 'Sandra dropped the milk' or 'Mary went to the garden' but not both then John left the milk.
We believe that 'Sandra dropped the milk and John left the milk'.
It is unlikely that 'Sandra dropped the milk and John left the milk'.
We believe that 'Sandra dropped the milk and John left the milk'.

  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.7::factA.
  0.7::factB.
  0.7::factC.
  %hop1
  0.8::factX:-or(factA,factC).
  0.95::factY:-or(factB,factA).
  0.75::factZ:-xor(factC,factB).

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

  query(conclusion).
  
'Sandra dropped the milk and John left the milk'.