It is highly unlikely that Bernhard is yellow. There is little chance that Sandra grabbed the apple. It is almost certain that Brian is gray. There is a better than even chance that if 'Bernhard is yellow' or 'Sandra grabbed the apple' or both then John got the milk. There is a better than even chance that if either 'Bernhard is yellow' or 'Brian is gray' but not both then Greg is green. Chances are slight that if 'Bernhard is yellow and Sandra grabbed the apple' then Mary went to the bedroom.
It is improbable that either 'Sandra grabbed the apple' or 'Mary went to the bedroom' but not both.
It is improbable that either 'Sandra grabbed the apple' or 'Mary went to the bedroom' but not both.
It is probable that either 'Sandra grabbed the apple' or 'Mary went to the bedroom' 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.05::factA.
  0.1::factB.
  0.95::factC.
  %hop1
  0.6::factX:-or(factA,factB).
  0.6::factY:-xor(factA,factC).
  0.1::factZ:-and(factA,factB).

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

  query(conclusion).
  
Either 'Sandra grabbed the apple' or 'Mary went to the bedroom' but not both.