We believe that Julius is gray. It is likely that Jason is thirsty. It is probable that Greg is a swan. We doubt that if 'Greg is a swan and Jason is thirsty' then Mary went to the bedroom. Chances are about even that if 'Jason is thirsty' or 'Julius is gray' or both then Bernhard is green. Chances are slight that if 'Greg is a swan and Jason is thirsty' then John discarded the milk.
Chances are about even that either 'Julius is gray' or 'Bernhard is green' but not both.
Chances are about even that either 'Julius is gray' or 'Bernhard is green' but not both.
It is highly unlikely that either 'Julius is gray' 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.7::factB.
  0.7::factC.
  %hop1
  0.2::factX:-and(factC,factB).
  0.5::factY:-or(factB,factA).
  0.1::factZ:-and(factC,factB).

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

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