There is almost no chance that Julius is a swan. It is highly likely that Greg is yellow. It is improbable that John went to the garden. Chances are slight that if 'Julius is a swan' or 'Greg is yellow' or both then Brian is green. It is probable that if either 'John went to the garden' or 'Greg is yellow' but not both then Bernhard is gray. It is almost certain that if 'Greg is yellow and Julius is a swan' then Mary left the football.
Chances are slight that either 'Mary left the football' or 'Greg is yellow' but not both.
It is highly likely that either 'Mary left the football' or 'Greg is yellow' but not both.
Chances are slight that either 'Mary left the football' 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.02::factA.
  0.9::factB.
  0.1::factC.
  %hop1
  0.1::factX:-or(factA,factB).
  0.7::factY:-xor(factC,factB).
  0.95::factZ:-and(factB,factA).

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

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