There is almost no chance that Daniel dropped the milk. There is a very good chance that Bernhard is a lion. Chances are slight that Brian is a frog. Chances are slight that if either 'Bernhard is a lion' or 'Brian is a frog' but not both then John moved to the garden. There is a better than even chance that if either 'Bernhard is a lion' or 'Brian is a frog' but not both then Lily is yellow. There is almost no chance that if 'Brian is a frog and Daniel dropped the milk' then Greg is a swan.
It is improbable that 'Daniel dropped the milk' or 'John moved to the garden' or both.
It is improbable that 'Daniel dropped the milk' or 'John moved to the garden' or both.
It is almost certain that 'Daniel dropped the milk' or 'John moved to the garden' 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.02::factA.
  0.8::factB.
  0.1::factC.
  %hop1
  0.1::factX:-xor(factB,factC).
  0.6::factY:-xor(factB,factC).
  0.02::factZ:-and(factC,factA).

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

  query(conclusion).
  
'Daniel dropped the milk' or 'John moved to the garden' or both.