There is little chance that Fred went to the office. It is improbable that Mary discarded the milk. It is probably the case that John moved to the garden. It is almost certain that if 'Fred went to the office' or 'John moved to the garden' or both then Bill left the milk. It is unlikely that if 'Mary discarded the milk and John moved to the garden' then Bernhard is gray. It is highly likely that if 'Mary discarded the milk' or 'John moved to the garden' or both then Brian is a lion.
There is a better than even chance that either 'Fred went to the office' or 'Bill left the milk' but not both.
There is a better than even chance that either 'Fred went to the office' or 'Bill left the milk' but not both.
It is highly unlikely that either 'Fred went to the office' or 'Bill left the milk' 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.1::factB.
  0.7::factC.
  %hop1
  0.95::factX:-or(factA,factC).
  0.2::factY:-and(factB,factC).
  0.9::factZ:-or(factB,factC).

  %hop2
  conclusion:-xor(factA,factX).

  query(conclusion).
  
Either 'Fred went to the office' or 'Bill left the milk' but not both.