There is little chance that Mary moved to the office. It is almost certain that Julius is a lion. There is little chance that John took the football. It is probably not the case that if 'Mary moved to the office and John took the football' then Fred left the apple. It is highly unlikely that if either 'Mary moved to the office' or 'John took the football' but not both then Bernhard is gray. It is highly likely that if either 'Mary moved to the office' or 'Julius is a lion' but not both then Greg is white.
There is a very good chance that either 'Fred left the apple' or 'Greg is white' but not both.
There is a very good chance that either 'Fred left the apple' or 'Greg is white' but not both.
There is almost no chance that either 'Fred left the apple' or 'Greg is white' 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.1::factC.
  %hop1
  0.25::factX:-and(factA,factC).
  0.05::factY:-xor(factA,factC).
  0.9::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'Fred left the apple' or 'Greg is white' but not both.