It is probable that Lily is white. It is unlikely that John took the apple. It is probably not the case that Mary went to the office. It is certain that if 'Lily is white and Mary went to the office' then Greg is yellow. There is almost no chance that if 'John took the apple and Mary went to the office' then Gertrude is a cat. It is likely that if either 'John took the apple' or 'Mary went to the office' but not both then Julius is a frog.
It is almost certain that either 'John took the apple' or 'Greg is yellow' but not both.
It is probably not the case that either 'John took the apple' or 'Greg is yellow' but not both.
It is almost certain that either 'John took the apple' or 'Greg is yellow' 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.2::factB.
  0.25::factC.
  %hop1
  1.0::factX:-and(factA,factC).
  0.02::factY:-and(factB,factC).
  0.7::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'John took the apple' or 'Greg is yellow' but not both.