There is a better than even chance that John picked up the apple. There is a better than even chance that Jessica is a sheep. We doubt that Mary left the football. Chances are about even that if 'Jessica is a sheep' or 'Mary left the football' or both then Julius is a swan. It is certain that if 'John picked up the apple and Mary left the football' then Lily is green. There is little chance that if either 'Mary left the football' or 'Jessica is a sheep' but not both then Bernhard is a rhino.
It is probably not the case that either 'Mary left the football' or 'Bernhard is a rhino' but not both.
It is probably not the case that either 'Mary left the football' or 'Bernhard is a rhino' but not both.
It is certain that either 'Mary left the football' or 'Bernhard is a rhino' 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.6::factB.
  0.2::factC.
  %hop1
  0.5::factX:-or(factB,factC).
  1.0::factY:-and(factA,factC).
  0.1::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Mary left the football' or 'Bernhard is a rhino' but not both.