There is a very good chance that Greg is gray. It is probably the case that Lily is a rhino. It is improbable that Daniel left the apple. It is probably not the case that if 'Greg is gray' or 'Lily is a rhino' or both then Mary took the football. It is probably the case that if 'Lily is a rhino and Greg is gray' then Brian is white. Chances are slight that if 'Daniel left the apple' or 'Greg is gray' or both then Julius is green.
It is impossible that either 'Daniel left the apple' or 'Greg is gray' but not both.
We believe that either 'Daniel left the apple' or 'Greg is gray' but not both.
It is impossible that either 'Daniel left the apple' or 'Greg is gray' 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.8::factA.
  0.7::factB.
  0.1::factC.
  %hop1
  0.25::factX:-or(factA,factB).
  0.7::factY:-and(factB,factA).
  0.1::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Daniel left the apple' or 'Greg is gray' but not both.