It is unlikely that Brian is yellow. It is almost certain that Mary moved to the office. There is a very good chance that Fred went to the garden. We believe that if 'Mary moved to the office and Brian is yellow' then Jason is tired. It is impossible that if 'Fred went to the garden and Mary moved to the office' then Winona is a sheep. There is little chance that if either 'Brian is yellow' or 'Mary moved to the office' but not both then Bernhard is gray.
It is certain that either 'Mary moved to the office' or 'Fred went to the garden' but not both.
It is probably not the case that either 'Mary moved to the office' or 'Fred went to the garden' but not both.
It is certain that either 'Mary moved to the office' or 'Fred went to the garden' 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.2::factA.
  0.95::factB.
  0.8::factC.
  %hop1
  0.75::factX:-and(factB,factA).
  0.0::factY:-and(factC,factB).
  0.1::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'Mary moved to the office' or 'Fred went to the garden' but not both.