It is probable that Julius is green. It is highly unlikely that Sandra dropped the milk. It is highly likely that Bernhard is yellow. It is probable that if 'Bernhard is yellow and Julius is green' then Mary got the football. There is a very good chance that if 'Julius is green' or 'Bernhard is yellow' or both then Bill went to the garden. There is a better than even chance that if 'Julius is green and Sandra dropped the milk' then Lily is a lion.
There is almost no chance that either 'Sandra dropped the milk' or 'Lily is a lion' but not both.
There is almost no chance that either 'Sandra dropped the milk' or 'Lily is a lion' but not both.
We believe that either 'Sandra dropped the milk' or 'Lily is a lion' 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.05::factB.
  0.9::factC.
  %hop1
  0.7::factX:-and(factC,factA).
  0.8::factY:-or(factA,factC).
  0.6::factZ:-and(factA,factB).

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

  query(conclusion).
  
Either 'Sandra dropped the milk' or 'Lily is a lion' but not both.