It is highly likely that John took the milk. It is impossible that Lily is white. There is a very good chance that Brian is gray. We doubt that if 'Lily is white and John took the milk' then Gertrude is a sheep. It is unlikely that if 'Lily is white' or 'Brian is gray' or both then Sandra left the milk. Chances are about even that if 'Brian is gray' or 'John took the milk' or both then Bernhard is white.
It is highly likely that either 'John took the milk' or 'Gertrude is a sheep' but not both.
It is highly likely that either 'John took the milk' or 'Gertrude is a sheep' but not both.
It is improbable that either 'John took the milk' or 'Gertrude is a sheep' 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.9::factA.
  0.0::factB.
  0.8::factC.
  %hop1
  0.2::factX:-and(factB,factA).
  0.2::factY:-or(factB,factC).
  0.5::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'John took the milk' or 'Gertrude is a sheep' but not both.