It is impossible that Mary left the football. We believe that Brian is a frog. It is unlikely that John moved to the office. There is a better than even chance that if either 'John moved to the office' or 'Brian is a frog' but not both then Julius is yellow. It is almost certain that if 'Mary left the football' or 'John moved to the office' or both then Lily is gray. Chances are about even that if either 'Brian is a frog' or 'Mary left the football' but not both then Bernhard is a rhino.
It is certain that either 'Brian is a frog' or 'Bernhard is a rhino' but not both.
It is probably not the case that either 'Brian is a frog' or 'Bernhard is a rhino' but not both.
It is certain that either 'Brian is a frog' or 'Bernhard 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.0::factA.
  0.75::factB.
  0.2::factC.
  %hop1
  0.6::factX:-xor(factC,factB).
  0.95::factY:-or(factA,factC).
  0.5::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'Brian is a frog' or 'Bernhard is a rhino' but not both.