It is likely that Bernhard is a frog. There is a very good chance that Mary moved to the garden. It is certain that John took the football. It is highly likely that if 'Mary moved to the garden and John took the football' then Greg is a swan. It is probable that if 'Bernhard is a frog and Mary moved to the garden' then Lily is a rhino. There is a better than even chance that if either 'John took the football' or 'Mary moved to the garden' but not both then Sandra grabbed the milk.
It is almost certain that either 'Greg is a swan' or 'John took the football' but not both.
It is probably not the case that either 'Greg is a swan' or 'John took the football' but not both.
It is almost certain that either 'Greg is a swan' or 'John took the football' 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.8::factB.
  1.0::factC.
  %hop1
  0.9::factX:-and(factB,factC).
  0.7::factY:-and(factA,factB).
  0.6::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Greg is a swan' or 'John took the football' but not both.