It is likely that Bernhard is a swan. It is highly unlikely that Sandra left the milk. It is impossible that John moved to the office. It is highly likely that if 'Bernhard is a swan and Sandra left the milk' then Julius is green. It is probable that if 'Sandra left the milk' or 'Bernhard is a swan' or both then Mary discarded the milk. Chances are about even that if 'John moved to the office and Sandra left the milk' then Brian is yellow.
It is likely that 'Bernhard is a swan' or 'Sandra left the milk' or both.
It is likely that 'Bernhard is a swan' or 'Sandra left the milk' or both.
It is unlikely that 'Bernhard is a swan' or 'Sandra left the milk' 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.7::factA.
  0.05::factB.
  0.0::factC.
  %hop1
  0.9::factX:-and(factA,factB).
  0.7::factY:-or(factB,factA).
  0.5::factZ:-and(factC,factB).

  %hop2
  conclusion:-or(factA,factB).

  query(conclusion).
  
'Bernhard is a swan' or 'Sandra left the milk' or both.