It is likely that John went to the garden. It is highly likely that Fred is in the cinema. It is probably not the case that Mary grabbed the milk. Chances are slight that if either 'Fred is in the cinema' or 'John went to the garden' but not both then Greg is a swan. It is impossible that if either 'Fred is in the cinema' or 'John went to the garden' but not both then Bernhard is a lion. There is a very good chance that if either 'Mary grabbed the milk' or 'Fred is in the cinema' but not both then Gertrude is a mouse.
There is little chance that either 'Mary grabbed the milk' or 'Fred is in the cinema' but not both.
It is likely that either 'Mary grabbed the milk' or 'Fred is in the cinema' but not both.
There is little chance that either 'Mary grabbed the milk' or 'Fred is in the cinema' 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.9::factB.
  0.25::factC.
  %hop1
  0.1::factX:-xor(factB,factA).
  0.0::factY:-xor(factB,factA).
  0.8::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Mary grabbed the milk' or 'Fred is in the cinema' but not both.