Chances are slight that Bernhard is gray. There is a very good chance that Jeff moved to the garden. There is almost no chance that Mary left the football. It is almost certain that if either 'Mary left the football' or 'Jeff moved to the garden' but not both then John went to the kitchen. It is likely that if 'Bernhard is gray and Mary left the football' then Brian is green. It is improbable that if 'Bernhard is gray' or 'Mary left the football' or both then Greg is a rhino.
There is almost no chance that either 'Mary left the football' or 'Greg is a rhino' but not both.
There is almost no chance that either 'Mary left the football' or 'Greg is a rhino' but not both.
It is almost certain that either 'Mary left the football' or 'Greg 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.1::factA.
  0.8::factB.
  0.02::factC.
  %hop1
  0.95::factX:-xor(factC,factB).
  0.7::factY:-and(factA,factC).
  0.1::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'Mary left the football' or 'Greg is a rhino' but not both.