It is probably the case that Winona is a cat. It is almost certain that Daniel grabbed the milk. It is likely that Sandra left the milk. There is almost no chance that if 'Daniel grabbed the milk' or 'Sandra left the milk' or both then Antoine is hungry. It is highly unlikely that if either 'Winona is a cat' or 'Sandra left the milk' but not both then Jessica is a mouse. There is almost no chance that if 'Winona is a cat' or 'Sandra left the milk' or both then John moved to the office.
There is almost no chance that 'Sandra left the milk and John moved to the office'.
There is almost no chance that 'Sandra left the milk and John moved to the office'.
It is probable that 'Sandra left the milk and John moved to the office'.

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

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

  query(conclusion).
  
'Sandra left the milk and John moved to the office'.