It is probably the case that John got the milk. There is a very good chance that Lily is a rhino. We believe that Greg is white. It is highly likely that if 'Lily is a rhino' or 'Greg is white' or both then Emily is a wolf. It is unlikely that if 'John got the milk and Greg is white' then Sandra took the football. It is probably not the case that if either 'John got the milk' or 'Lily is a rhino' but not both then Mary moved to the garden.
We believe that either 'Mary moved to the garden' or 'Lily is a rhino' but not both.
We believe that either 'Mary moved to the garden' or 'Lily is a rhino' but not both.
It is highly unlikely that either 'Mary moved to the garden' or 'Lily is a rhino' 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.
  0.75::factC.
  %hop1
  0.9::factX:-or(factB,factC).
  0.2::factY:-and(factA,factC).
  0.25::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'Mary moved to the garden' or 'Lily is a rhino' but not both.