We believe that Julius is yellow. There is a better than even chance that Bernhard is green. It is certain that Jessica is a cat. There is a very good chance that if 'Julius is yellow' or 'Bernhard is green' or both then Gertrude is a sheep. It is highly likely that if either 'Jessica is a cat' or 'Julius is yellow' but not both then Lily is a frog. It is likely that if 'Bernhard is green and Julius is yellow' then Mary left the milk.
It is impossible that either 'Julius is yellow' or 'Bernhard is green' but not both.
Chances are about even that either 'Julius is yellow' or 'Bernhard is green' but not both.
It is impossible that either 'Julius is yellow' or 'Bernhard is green' 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.75::factA.
  0.6::factB.
  1.0::factC.
  %hop1
  0.8::factX:-or(factA,factB).
  0.9::factY:-xor(factC,factA).
  0.7::factZ:-and(factB,factA).

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

  query(conclusion).
  
Either 'Julius is yellow' or 'Bernhard is green' but not both.