There is a better than even chance that John took the milk. It is probably not the case that Bernhard is yellow. It is certain that Brian is a rhino. It is probably the case that if 'Bernhard is yellow' or 'John took the milk' or both then Mary moved to the garden. It is improbable that if 'John took the milk' or 'Bernhard is yellow' or both then Greg is a lion. It is highly unlikely that if either 'John took the milk' or 'Bernhard is yellow' but not both then Winona is a mouse.
There is almost no chance that either 'Mary moved to the garden' or 'Brian is a rhino' but not both.
Chances are about even that either 'Mary moved to the garden' or 'Brian is a rhino' but not both.
There is almost no chance that either 'Mary moved to the garden' or 'Brian 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.6::factA.
  0.25::factB.
  1.0::factC.
  %hop1
  0.7::factX:-or(factB,factA).
  0.1::factY:-or(factA,factB).
  0.05::factZ:-xor(factA,factB).

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

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