It is certain that Bernhard is gray. It is probably the case that Sandra got the football. It is probably the case that Julius is green. There is a better than even chance that if 'Julius is green' or 'Bernhard is gray' or both then John went to the bedroom. It is unlikely that if 'Bernhard is gray and Julius is green' then Lily is a swan. It is highly likely that if either 'Bernhard is gray' or 'Julius is green' but not both then Mary put down the milk.
It is impossible that either 'Mary put down the milk' or 'John went to the bedroom' but not both.
Chances are about even that either 'Mary put down the milk' or 'John went to the bedroom' but not both.
It is impossible that either 'Mary put down the milk' or 'John went to the bedroom' 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.7::factB.
  0.7::factC.
  %hop1
  0.6::factX:-or(factC,factA).
  0.2::factY:-and(factA,factC).
  0.9::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Mary put down the milk' or 'John went to the bedroom' but not both.