It is highly unlikely that Bernhard is gray. It is highly unlikely that Sandra took the milk. We believe that Fred moved to the office. It is highly likely that if 'Fred moved to the office and Sandra took the milk' then Bill went to the bedroom. Chances are about even that if 'Bernhard is gray and Fred moved to the office' then Julius is a swan. There is a better than even chance that if either 'Fred moved to the office' or 'Sandra took the milk' but not both then Mary dropped the milk.
We believe that 'Fred moved to the office' or 'Mary dropped the milk' or both.
We believe that 'Fred moved to the office' or 'Mary dropped the milk' or both.
It is highly unlikely that 'Fred moved to the office' or 'Mary dropped 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.05::factA.
  0.05::factB.
  0.75::factC.
  %hop1
  0.9::factX:-and(factC,factB).
  0.5::factY:-and(factA,factC).
  0.6::factZ:-xor(factC,factB).

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

  query(conclusion).
  
'Fred moved to the office' or 'Mary dropped the milk' or both.