Chances are slight that Mary moved to the office. It is almost certain that Bernhard is yellow. We doubt that John went to the garden. It is highly likely that if either 'Bernhard is yellow' or 'Mary moved to the office' but not both then Greg is a frog. It is highly unlikely that if 'Mary moved to the office and Bernhard is yellow' then Brian is gray. It is unlikely that if 'John went to the garden' or 'Mary moved to the office' or both then Daniel got the football.
It is almost certain that either 'Bernhard is yellow' or 'Brian is gray' but not both.
It is almost certain that either 'Bernhard is yellow' or 'Brian is gray' but not both.
There is almost no chance that either 'Bernhard is yellow' or 'Brian is gray' 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.1::factA.
  0.95::factB.
  0.2::factC.
  %hop1
  0.9::factX:-xor(factB,factA).
  0.05::factY:-and(factA,factB).
  0.2::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Bernhard is yellow' or 'Brian is gray' but not both.