It is likely that John went to the office. It is unlikely that Yann is tired. It is likely that Greg is gray. It is unlikely that if 'John went to the office' or 'Yann is tired' or both then Mary is in the hallway. It is probably not the case that if 'Greg is gray' or 'John went to the office' or both then Bernhard is a swan. It is unlikely that if 'John went to the office' or 'Greg is gray' or both then Sandra put down the milk.
There is almost no chance that either 'John went to the office' or 'Greg is gray' but not both.
Chances are about even that either 'John went to the office' or 'Greg is gray' but not both.
There is almost no chance that either 'John went to the office' or 'Greg 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.7::factA.
  0.2::factB.
  0.7::factC.
  %hop1
  0.2::factX:-or(factA,factB).
  0.25::factY:-or(factC,factA).
  0.2::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'John went to the office' or 'Greg is gray' but not both.