It is probably the case that Lily is a frog. Chances are slight that Julius is a lion. It is highly likely that Mary moved to the garden. It is impossible that if 'Lily is a frog' or 'Julius is a lion' or both then Bernhard is green. There is almost no chance that if 'Lily is a frog' or 'Julius is a lion' or both then Sandra left the football. It is probably not the case that if 'Julius is a lion and Mary moved to the garden' then John got the milk.
There is a better than even chance that either 'Bernhard is green' or 'Sandra left the football' but not both.
There is almost no chance that either 'Bernhard is green' or 'Sandra left the football' but not both.
There is a better than even chance that either 'Bernhard is green' or 'Sandra left the football' 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.7::factA.
  0.1::factB.
  0.9::factC.
  %hop1
  0.0::factX:-or(factA,factB).
  0.02::factY:-or(factA,factB).
  0.25::factZ:-and(factB,factC).

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

  query(conclusion).
  
Either 'Bernhard is green' or 'Sandra left the football' but not both.