Chances are about even that Gertrude is a cat. It is certain that Jeff discarded the milk. It is unlikely that Bernhard is a frog. There is a better than even chance that if 'Bernhard is a frog and Jeff discarded the milk' then Bill moved to the office. It is unlikely that if either 'Jeff discarded the milk' or 'Bernhard is a frog' but not both then John put down the apple. There is almost no chance that if 'Bernhard is a frog and Gertrude is a cat' then Mary went to the bedroom.
It is certain that 'John put down the apple' or 'Bill moved to the office' or both.
It is probably not the case that 'John put down the apple' or 'Bill moved to the office' or both.
It is certain that 'John put down the apple' or 'Bill moved to the office' or both.

  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.5::factA.
  1.0::factB.
  0.2::factC.
  %hop1
  0.6::factX:-and(factC,factB).
  0.2::factY:-xor(factB,factC).
  0.02::factZ:-and(factC,factA).

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

  query(conclusion).
  
'John put down the apple' or 'Bill moved to the office' or both.