It is certain that Greg is a rhino. It is unlikely that Jessica is a cat. Chances are about even that Mary went to the bedroom. It is highly likely that if 'Mary went to the bedroom' or 'Greg is a rhino' or both then Sandra left the milk. It is probably the case that if either 'Greg is a rhino' or 'Mary went to the bedroom' but not both then Bernhard is green. It is likely that if either 'Greg is a rhino' or 'Mary went to the bedroom' but not both then Julius is a lion.
There is almost no chance that either 'Sandra left the milk' or 'Bernhard is green' but not both.
There is a better than even chance that either 'Sandra left the milk' or 'Bernhard is green' but not both.
There is almost no chance that either 'Sandra left the milk' or 'Bernhard is green' 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
  1.0::factA.
  0.2::factB.
  0.5::factC.
  %hop1
  0.9::factX:-or(factC,factA).
  0.7::factY:-xor(factA,factC).
  0.7::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Sandra left the milk' or 'Bernhard is green' but not both.