It is impossible that Gertrude is a sheep. We doubt that Mary dropped the milk. There is little chance that John put down the apple. It is certain that if 'Gertrude is a sheep' or 'Mary dropped the milk' or both then Jason is tired. There is little chance that if 'Gertrude is a sheep' or 'John put down the apple' or both then Bernhard is white. Chances are about even that if either 'Mary dropped the milk' or 'Gertrude is a sheep' but not both then Greg is a swan.
It is almost certain that either 'John put down the apple' or 'Jason is tired' but not both.
It is probably not the case that either 'John put down the apple' or 'Jason is tired' but not both.
It is almost certain that either 'John put down the apple' or 'Jason is tired' 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.0::factA.
  0.2::factB.
  0.1::factC.
  %hop1
  1.0::factX:-or(factA,factB).
  0.1::factY:-or(factA,factC).
  0.5::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'John put down the apple' or 'Jason is tired' but not both.