It is impossible that Daniel dropped the milk. There is little chance that Bernhard is a frog. It is highly unlikely that John got the apple. It is probable that if 'John got the apple' or 'Daniel dropped the milk' or both then Fred went to the garden. It is likely that if 'Daniel dropped the milk' or 'Bernhard is a frog' or both then Julius is gray. It is probably the case that if 'Bernhard is a frog' or 'Daniel dropped the milk' or both then Brian is a swan.
There is a better than even chance that either 'John got the apple' or 'Bernhard is a frog' but not both.
Chances are slight that either 'John got the apple' or 'Bernhard is a frog' but not both.
There is a better than even chance that either 'John got the apple' or 'Bernhard is a frog' but not 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.0::factA.
  0.1::factB.
  0.05::factC.
  %hop1
  0.7::factX:-or(factC,factA).
  0.7::factY:-or(factA,factB).
  0.7::factZ:-or(factB,factA).

  %hop2
  conclusion:-xor(factC,factB).

  query(conclusion).
  
Either 'John got the apple' or 'Bernhard is a frog' but not both.