It is almost certain that Bernhard is a rhino. It is certain that Julius is white. There is a better than even chance that John took the football. It is impossible that if either 'Bernhard is a rhino' or 'Julius is white' but not both then Mary moved to the office. There is almost no chance that if either 'Julius is white' or 'Bernhard is a rhino' but not both then Brian is yellow. It is unlikely that if 'Bernhard is a rhino and John took the football' then Jessica is a cat.
It is impossible that either 'Mary moved to the office' or 'Brian is yellow' but not both.
It is impossible that either 'Mary moved to the office' or 'Brian is yellow' but not both.
We believe that either 'Mary moved to the office' or 'Brian is yellow' 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.95::factA.
  1.0::factB.
  0.6::factC.
  %hop1
  0.0::factX:-xor(factA,factB).
  0.02::factY:-xor(factB,factA).
  0.2::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'Mary moved to the office' or 'Brian is yellow' but not both.