We believe that Bernhard is yellow. Chances are about even that Brian is green. It is certain that Mary picked up the milk. It is highly unlikely that if 'Brian is green' or 'Mary picked up the milk' or both then Winona is a wolf. Chances are slight that if either 'Brian is green' or 'Bernhard is yellow' but not both then John left the football. There is almost no chance that if either 'Mary picked up the milk' or 'Bernhard is yellow' but not both then Julius is a rhino.
It is impossible that either 'Brian is green' or 'Julius is a rhino' but not both.
Chances are about even that either 'Brian is green' or 'Julius is a rhino' but not both.
It is impossible that either 'Brian is green' or 'Julius 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.75::factA.
  0.5::factB.
  1.0::factC.
  %hop1
  0.05::factX:-or(factB,factC).
  0.1::factY:-xor(factB,factA).
  0.02::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'Brian is green' or 'Julius is a rhino' but not both.