Chances are slight that Greg is gray. It is unlikely that Sumit is thirsty. It is highly likely that Lily is a rhino. It is unlikely that if 'Lily is a rhino' or 'Sumit is thirsty' or both then Brian is a swan. It is highly likely that if 'Sumit is thirsty and Greg is gray' then Sandra got the football. There is little chance that if either 'Sumit is thirsty' or 'Greg is gray' but not both then John picked up the apple.
It is probably the case that either 'John picked up the apple' or 'Greg is gray' but not both.
Chances are slight that either 'John picked up the apple' or 'Greg is gray' but not both.
It is probably the case that either 'John picked up 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.1::factA.
  0.2::factB.
  0.9::factC.
  %hop1
  0.2::factX:-or(factC,factB).
  0.9::factY:-and(factB,factA).
  0.1::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'John picked up the apple' or 'Greg is gray' but not both.