It is probably the case that John moved to the office. It is highly unlikely that Brian is a frog. There is little chance that Mary went to the garden. It is unlikely that if 'Brian is a frog' or 'John moved to the office' or both then Gertrude is a cat. Chances are about even that if 'Mary went to the garden' or 'John moved to the office' or both then Daniel left the football. It is impossible that if either 'Mary went to the garden' or 'Brian is a frog' but not both then Greg is yellow.
It is probably the case that either 'John moved to the office' or 'Brian is a frog' but not both.
It is probably the case that either 'John moved to the office' or 'Brian is a frog' but not both.
There is almost no chance that either 'John moved to the office' or 'Brian is a frog' 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.05::factB.
  0.1::factC.
  %hop1
  0.2::factX:-or(factB,factA).
  0.5::factY:-or(factC,factA).
  0.0::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'John moved to the office' or 'Brian is a frog' but not both.