It is probably not the case that Lily is a frog. It is certain that Greg is green. It is improbable that Jeff moved to the garden. It is probably the case that if either 'Lily is a frog' or 'Jeff moved to the garden' but not both then Mary got the football. There is a better than even chance that if 'Greg is green' or 'Jeff moved to the garden' or both then Brian is a swan. There is almost no chance that if 'Greg is green and Jeff moved to the garden' then John discarded the apple.
There is little chance that either 'John discarded the apple' or 'Jeff moved to the garden' but not both.
There is little chance that either 'John discarded the apple' or 'Jeff moved to the garden' but not both.
It is almost certain that either 'John discarded the apple' or 'Jeff moved to the garden' 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.25::factA.
  1.0::factB.
  0.1::factC.
  %hop1
  0.7::factX:-xor(factA,factC).
  0.6::factY:-or(factB,factC).
  0.02::factZ:-and(factB,factC).

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

  query(conclusion).
  
Either 'John discarded the apple' or 'Jeff moved to the garden' but not both.