It is highly likely that Lily is white. It is highly unlikely that Sandra dropped the milk. There is almost no chance that Mary took the football. It is highly unlikely that if 'Lily is white and Sandra dropped the milk' then Greg is a lion. It is highly unlikely that if 'Sandra dropped the milk and Mary took the football' then John discarded the apple. It is probably the case that if 'Lily is white and Mary took the football' then Bernhard is green.
It is highly likely that either 'John discarded the apple' or 'Lily is white' but not both.
It is highly likely that either 'John discarded the apple' or 'Lily is white' but not both.
Chances are slight that either 'John discarded the apple' or 'Lily is white' 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.9::factA.
  0.05::factB.
  0.02::factC.
  %hop1
  0.05::factX:-and(factA,factB).
  0.05::factY:-and(factB,factC).
  0.7::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'John discarded the apple' or 'Lily is white' but not both.