It is unlikely that Jessica is a cat. It is certain that Sandra dropped the apple. Chances are slight that Bernhard is a lion. It is highly unlikely that if 'Jessica is a cat and Bernhard is a lion' then Bill got the milk there. It is highly unlikely that if 'Jessica is a cat' or 'Bernhard is a lion' or both then Mary moved to the office. It is impossible that if 'Sandra dropped the apple' or 'Jessica is a cat' or both then Lily is white.
Chances are about even that 'Mary moved to the office and Bill got the milk there'.
It is impossible that 'Mary moved to the office and Bill got the milk there'.
Chances are about even that 'Mary moved to the office and Bill got the milk there'.

  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.2::factA.
  1.0::factB.
  0.1::factC.
  %hop1
  0.05::factX:-and(factA,factC).
  0.05::factY:-or(factA,factC).
  0.0::factZ:-or(factB,factA).

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

  query(conclusion).
  
'Mary moved to the office and Bill got the milk there'.