Chances are about even that Jessica is a mouse. Chances are about even that Lily is gray. It is certain that Mary went to the garden. It is impossible that if either 'Lily is gray' or 'Mary went to the garden' but not both then Sandra left the football. It is highly unlikely that if 'Lily is gray' or 'Mary went to the garden' or both then Greg is yellow. It is improbable that if 'Lily is gray and Jessica is a mouse' then Julius is a lion.
It is likely that either 'Greg is yellow' or 'Sandra left the football' but not both.
It is highly unlikely that either 'Greg is yellow' or 'Sandra left the football' but not both.
It is likely that either 'Greg is yellow' or 'Sandra left the football' 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.5::factA.
  0.5::factB.
  1.0::factC.
  %hop1
  0.0::factX:-xor(factB,factC).
  0.05::factY:-or(factB,factC).
  0.1::factZ:-and(factB,factA).

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

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