It is certain that Sandra left the milk. It is improbable that Fred is in the cinema. There is little chance that Bernhard is a swan. We doubt that if 'Fred is in the cinema' or 'Sandra left the milk' or both then Winona is a sheep. It is probably not the case that if either 'Sandra left the milk' or 'Fred is in the cinema' but not both then Mary got the apple. It is unlikely that if 'Bernhard is a swan' or 'Sandra left the milk' or both then Greg is a lion.
It is highly likely that either 'Fred is in the cinema' or 'Sandra left the milk' but not both.
It is highly likely that either 'Fred is in the cinema' or 'Sandra left the milk' but not both.
It is impossible that either 'Fred is in the cinema' or 'Sandra left the milk' 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
  1.0::factA.
  0.1::factB.
  0.1::factC.
  %hop1
  0.2::factX:-or(factB,factA).
  0.25::factY:-xor(factA,factB).
  0.2::factZ:-or(factC,factA).

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

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