There is a better than even chance that John left the football. It is probable that Mary went to the bedroom. It is certain that Jeff moved to the garden. Chances are slight that if either 'Jeff moved to the garden' or 'John left the football' but not both then Gertrude is a sheep. It is probably not the case that if either 'Jeff moved to the garden' or 'Mary went to the bedroom' but not both then Lily is yellow. It is probable that if 'John left the football and Jeff moved to the garden' then Greg is yellow.
It is improbable that either 'John left the football' or 'Lily is yellow' but not both.
There is a better than even chance that either 'John left the football' or 'Lily is yellow' but not both.
It is improbable that either 'John left the football' or 'Lily 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.6::factA.
  0.7::factB.
  1.0::factC.
  %hop1
  0.1::factX:-xor(factC,factA).
  0.25::factY:-xor(factC,factB).
  0.7::factZ:-and(factA,factC).

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

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