It is certain that Julius is gray. It is highly unlikely that Mary moved to the garden. Chances are slight that John got the milk. There is little chance that if 'John got the milk and Mary moved to the garden' then Brian is a swan. It is probable that if 'John got the milk' or 'Julius is gray' or both then Daniel left the apple. There is a better than even chance that if 'Julius is gray' or 'Mary moved to the garden' or both then Winona is a sheep.
It is certain that 'Brian is a swan' or 'John got the milk' or both.
It is improbable that 'Brian is a swan' or 'John got the milk' or both.
It is certain that 'Brian is a swan' or 'John got 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
  1.0::factA.
  0.05::factB.
  0.1::factC.
  %hop1
  0.1::factX:-and(factC,factB).
  0.7::factY:-or(factC,factA).
  0.6::factZ:-or(factA,factB).

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

  query(conclusion).
  
'Brian is a swan' or 'John got the milk' or both.