We doubt that Lily is white. It is impossible that John took the football. It is likely that Mary discarded the apple. There is a very good chance that if either 'Mary discarded the apple' or 'Lily is white' but not both then Bernhard is gray. It is probably not the case that if 'Lily is white' or 'John took the football' or both then Julius is a frog. It is highly likely that if either 'John took the football' or 'Mary discarded the apple' but not both then Brian is a rhino.
There is a very good chance that either 'John took the football' or 'Lily is white' but not both.
We doubt that either 'John took the football' or 'Lily is white' but not both.
There is a very good chance that either 'John took the football' 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.2::factA.
  0.0::factB.
  0.7::factC.
  %hop1
  0.8::factX:-xor(factC,factA).
  0.25::factY:-or(factA,factB).
  0.9::factZ:-xor(factB,factC).

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

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