It is probably the case that Bernhard is a frog. It is almost certain that Julius is gray. We doubt that Brian is yellow. There is almost no chance that if 'Brian is yellow' or 'Bernhard is a frog' or both then Jeff went to the hallway. It is impossible that if either 'Brian is yellow' or 'Bernhard is a frog' but not both then Mary got the football. It is impossible that if either 'Brian is yellow' or 'Julius is gray' but not both then Gertrude is a mouse.
It is almost certain that either 'Brian is yellow' or 'Mary got the football' but not both.
We doubt that either 'Brian is yellow' or 'Mary got the football' but not both.
It is almost certain that either 'Brian is yellow' or 'Mary got the football' 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.7::factA.
  0.95::factB.
  0.2::factC.
  %hop1
  0.02::factX:-or(factC,factA).
  0.0::factY:-xor(factC,factA).
  0.0::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Brian is yellow' or 'Mary got the football' but not both.