It is highly unlikely that Mary got the milk. It is highly likely that John went to the garden. We believe that Julius is white. It is probably the case that if 'Julius is white and John went to the garden' then Greg is yellow. It is impossible that if either 'Julius is white' or 'Mary got the milk' but not both then Bernhard is a swan. There is a better than even chance that if 'Julius is white' or 'Mary got the milk' or both then Lily is a frog.
There is almost no chance that 'Julius is white' or 'Bernhard is a swan' or both.
We believe that 'Julius is white' or 'Bernhard is a swan' or both.
There is almost no chance that 'Julius is white' or 'Bernhard is a swan' 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.9::factB.
  0.75::factC.
  %hop1
  0.7::factX:-and(factC,factB).
  0.0::factY:-xor(factC,factA).
  0.6::factZ:-or(factC,factA).

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

  query(conclusion).
  
'Julius is white' or 'Bernhard is a swan' or both.