It is almost certain that Bernhard is green. It is almost certain that John went to the kitchen. It is improbable that Jason is tired. There is little chance that if 'Jason is tired and John went to the kitchen' then Lily is white. There is little chance that if 'John went to the kitchen' or 'Jason is tired' or both then Mary got the football. It is certain that if 'Jason is tired' or 'Bernhard is green' or both then Greg is a swan.
There is a very good chance that either 'Jason is tired' or 'Mary got the football' but not both.
It is unlikely that either 'Jason is tired' or 'Mary got the football' but not both.
There is a very good chance that either 'Jason is tired' or 'Mary got the football' 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.95::factA.
  0.95::factB.
  0.1::factC.
  %hop1
  0.1::factX:-and(factC,factB).
  0.1::factY:-or(factB,factC).
  1.0::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Jason is tired' or 'Mary got the football' but not both.