It is likely that Bernhard is white. Chances are about even that John went to the bedroom. There is little chance that Julius is yellow. There is a better than even chance that if 'John went to the bedroom' or 'Julius is yellow' or both then Sandra left the football. It is probably the case that if 'John went to the bedroom' or 'Bernhard is white' or both then Mary moved to the garden. It is almost certain that if either 'Julius is yellow' or 'Bernhard is white' but not both then Greg is green.
It is impossible that either 'Mary moved to the garden' or 'Julius is yellow' but not both.
There is a better than even chance that either 'Mary moved to the garden' or 'Julius is yellow' but not both.
It is impossible that either 'Mary moved to the garden' or 'Julius 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.7::factA.
  0.5::factB.
  0.1::factC.
  %hop1
  0.6::factX:-or(factB,factC).
  0.7::factY:-or(factB,factA).
  0.95::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'Mary moved to the garden' or 'Julius is yellow' but not both.