It is almost certain that Emily is a wolf. Chances are about even that John put down the apple. There is little chance that Bernhard is yellow. There is almost no chance that if 'Bernhard is yellow and Emily is a wolf' then Sandra dropped the milk. There is little chance that if either 'Bernhard is yellow' or 'John put down the apple' but not both then Fred went to the garden. Chances are slight that if either 'Emily is a wolf' or 'John put down the apple' but not both then Greg is a swan.
It is highly unlikely that 'Fred went to the garden' or 'Sandra dropped the milk' or both.
It is highly unlikely that 'Fred went to the garden' or 'Sandra dropped the milk' or both.
It is probable that 'Fred went to the garden' or 'Sandra 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.95::factA.
  0.5::factB.
  0.1::factC.
  %hop1
  0.02::factX:-and(factC,factA).
  0.1::factY:-xor(factC,factB).
  0.1::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Fred went to the garden' or 'Sandra dropped the milk' or both.