It is certain that Jeff left the apple. Chances are slight that Mary got the football. It is likely that Lily is a swan. It is probably the case that if 'Jeff left the apple' or 'Mary got the football' or both then Winona is a mouse. It is likely that if 'Lily is a swan and Mary got the football' then John dropped the milk. It is impossible that if 'Mary got the football and Jeff left the apple' then Julius is yellow.
It is likely that either 'Winona is a mouse' or 'Julius is yellow' but not both.
It is likely that either 'Winona is a mouse' or 'Julius is yellow' but not both.
It is impossible that either 'Winona is a mouse' or 'Julius 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
  1.0::factA.
  0.1::factB.
  0.7::factC.
  %hop1
  0.7::factX:-or(factA,factB).
  0.7::factY:-and(factC,factB).
  0.0::factZ:-and(factB,factA).

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

  query(conclusion).
  
Either 'Winona is a mouse' or 'Julius is yellow' but not both.