We believe that Greg is yellow. It is unlikely that Mary left the milk. There is almost no chance that Emily is a mouse. It is almost certain that if 'Greg is yellow' or 'Emily is a mouse' or both then Winona is a wolf. It is highly likely that if 'Emily is a mouse' or 'Greg is yellow' or both then Jeff went to the bedroom. Chances are about even that if 'Mary left the milk' or 'Greg is yellow' or both then Lily is a rhino.
There is a better than even chance that either 'Jeff went to the bedroom' or 'Greg is yellow' but not both.
There is little chance that either 'Jeff went to the bedroom' or 'Greg is yellow' but not both.
There is a better than even chance that either 'Jeff went to the bedroom' or 'Greg 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.75::factA.
  0.2::factB.
  0.02::factC.
  %hop1
  0.95::factX:-or(factA,factC).
  0.9::factY:-or(factC,factA).
  0.5::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Jeff went to the bedroom' or 'Greg is yellow' but not both.